متن‌باز شدن دیگر اختیاری نیست، حتی برای اپل

مهمترین نکته کنفرانس توسعه‌دهندگان اپل در سراسر جهان تنها مختص به معرفی نسخه‌های جدیدی از او‌ا‌س‌-ایکس و آی-او‌اس یا حتی سرویس جدید اپل با نام اپل موزیک نبود بلکه زمانی بود که معاون اپل مهندسی کریگ فدریگی به روی صحنه آمد و اعلام کرد که سوئیفت «Swift» زبان برنامه‌نویسی اختصاصی اپل متن‌باز گشته است.

نکته هیجان‌انگیز ماجرا این است که اکثر توسعه‌دهندگان در حال حاضر به سمت توسعه محصولات با بهره‌گیری از ابزارهای آزاد / متن‌باز سوق یافته و استفاده از این ابزارها طی پنج سال گذشته افزایش قابل توجهی داشته است. همچنین اپل کاربران را به این سو سوق داده است که بهتر است از برنامه‌های خانگی اپل استفاده کنند و ابزار شخص ثالثی چون ادوبی فلش دوری گزینند چون معتقد است ابزاری بی‌منفعت هستند. اما به نظر نمی‌رسد حتی اپل هم بتواند جلو گزینه‌های شخص ثالث بایستد؛ به این دلیل که ابزارهای شخص ثالث بسیاری در دسترس هستند که برای انجام امور توسعه‌ای در اپل به کار بیایند پس اپل برای جلوگیری از استفاده از دیگر ابزارها باید ابزار خود را متن‌باز می‌کرد.

با متن‌باز شدن سوئیفت توسط اپل، این شرکت به توسعه‌دهندگان در دیگر سیستم‌عامل‌ها این امکان را نیز داده است تا به ایجاد برنامه‌های خود برای سیستم‌عامل دیگر نیز با استفاده از کدهای سوئیفت بپردازند؛ که منجر به ایجاد ویرایش مشابه از برنامه‌های کاربردی اپل در سیستم‌عامل های نوپایی مثل اوبونتو تاچ نیز خواهد بود به این شکل که می‌توان کاری کرد که برنامه‌های کاربردی آی-او-اس و نوشته شده در سوئیفت را در اوبونتو تاچ اجرا کرد و یا هر سیستم‌عامل دیگر.

به طور قطع سوئیفت در حال رشد است اما زبان‌های برنامه‌نویسی مشابه دیگری نیز وجود دارند که در چند سال اخیر توسعه داده شده‌اند. به عنوان مثال فیس‌بوک با زبان‌های D و Hack در حال خطا و آزمون است و گوگل نیز زبان جدید Go را در آستین دارد. در این بین بنیاد موزیلا نیز بیکار نبوده و زبان Rust را توسعه می‌دهد. هر یک از این زبان‌های برنامه‌نویسی دارای قوت و ضعف مختص به خود هستند. هرچه باشد آینده در اختیار چنین زبان‌هایی است که به طور ایده‌آل اکثر آنان متن‌باز هستند. از گزینه اپل  گرفته تا گزینه موزیلا.

مایکروسافت نیز سال گذشته اعلام کرد که چارچوب دات‌نت را متن‌باز خواهد کرد و با ایجاد ویرایشگر غنی (نوعی ویرایشگر با امکانات بالا) با نام «ویژوال‌استودیو کد»، قصد گسترش نفوذ ابزارهای توسعه نرم‌افزار خود به دیگر سیستم‌عامل‌ها دارد. مایکروسافت همچنین تلاش زیادی برای استفاده کاربران و توسعه‌دهندگان دیگر سیستم‌عامل‌ها از محصولات توسعه‌ای و زبان‌های خود دارد و در حال حاضر در حال تلاش برای فراهم کردن امکانی برای نصب برنامه‌های نوشته شده توسط دات‌نت در سیستم‌عامل‌های آی-او-اس و او-اس-ایکس است. به طوری که حتی بتوان برنامه‌های آی‌او‌اس را در ویندوز و یا او‌اس‌ایکس و با استفاده از ویژوال استودیو نوشته و به راحتی در آی-او-اس اجرا کنند. بنابراین با چنین شرایطی اپل چاره‌ای نداشت جز این که زبان برنامه‌نویسی جدید خود را به یک زبان توسعه‌پسند، تبدیل کند.

 زبان سابق اپل؛

زبان برنامه‌نویسی سابق اپل سی-شیءگرا بود که با نام «آبجکتیو-سی» شناخته می‌شد. بر اساس تعریف ویکی‌پدیا:

آبجکتیو-سی (به انگلیسی: Objective-C) یک زبان شیءگرا است که با اضافه کردن مفاهیم ارسال پیام از زبان اسمال‌تاک به زبان سی ایجاد شده. در حال حاضر استفاده اصلی آن در محیط‌های او-اس‌ایکس و iOS است.

اکثر برنامه‌های آی-او-اس و او-اس-ایکس توسط این زبان نوشته شده بودند. تا این که در سال گذشته و در کنفرانس توسعه‌دهندگان سرتا‌سر دنیا یا WWDC اپل از زبان جدید و آینده‌نگر خود با نام سوئیفت رونمایی کرد این زبان ویژگی‌ها و نکات جدیدی را در بر می‌گرفت که به زبان‌های تفسیری-اسکریپیتی همچون پایتون یا حتی کیوت-کیو-ام-ال شباهت داشت. در این زبان خطاهای رایج برنامه‌نویسی در روش‌های سنتی به خاطر استفاده ابزارها و روش‌ها نوین کاهش یافته است.

با این حال اپل در استفاده از متن‌باز قریب نیست. آن‌ها از داروین که انشعابی از بی‌اس‌دی است بهره گرفته و سیستم‌عامل او-اس-ایکس را به یک سیستم‌عامل شبه-یونیکس تبدیل کردند در ضمن وب‌کیت را نیز با استفاده از توسعه پروژه متن‌باز کی‌اچ‌تی‌ام‌ال ایجاد کردند که موتور اصلی برنامه کانکرور بود که با تبدیل به وب‌کیت به موتور اصلی سافاری و بعدها کروم مبدل گشت. همچنین «سامانه عمومی چاپ در یونیکس» CUPS هم ابزاری است متن‌باز که توسط اپل توسعه داده‌می‌شود و در سطح گسترده‌ای در توزیع‌های گنو/لینوکس مورد استفاده است.

شرکتی با نام زامارین نیز ابزاری را برای ویندوز و لینوکس و مک فراهم کرده که با استفاده از آن می‌توان برنامه‌هایی را با استفاده از دات‌نت و زبان‌های مایکروسافتی نوشته و در اکثر سیستم‌عامل‌ها اجرا کرد. آن‌ها نیازی نیست تا به زبان جاوا، سی، سوئیفت و … آشنا شوند فقط باید زبانی مانند سی‌شارپ را یاد گرفته و برای تمام این بستره‌ها برنامه بنویسند.

در هر حال اکثر توسعه‌دهندگان اپل از سوئیفت و سی-شیءگرا استفاده خواهند کرد ولی اپل می‌خواهد تا با متن‌باز کردن سوئیفت سر مایکروسافت را در زمینه نوشتن برنامه‌های بومی سیستمش ببرد و با به جان خریدن ریسک استفاده از زبان بومی خود، در رقباتی چون اندروید به تقویت زبان خود بپردازد حتی اگر در سیستم‌عامل دیگری نیز استفاده شود.

تا چه حد متن‌باز است؟

بر اساس نوشته وبلاگ اپل و خبری که در سلام‌دنیا خواندید، اپل قرار است هسته اصلی این زبان و تمامی موارد مرتبط هم چون کامپایلر را  تحت مجوز خاص خودش متن‌باز نماید که نشان‌دهنده این است که تا چه مقدار متن‌باز خواهد بود. به نظر می‌رسد هم چون فیس‌تایم که تا مدتی متن‌باز شد، سوئیفت هم از حالت متن‌باز خارج شود یا همانند جاوا به صورتی محدود باشد. با این حال استفاده از این زبان در سیستم‌عامل دیگر، برای سوئیفت یک تغییر بزرگ خواهد بود.

اپل بدون نیت، خود به اجرای برنامه‌های سوئیفت در گنو/لینوکس کمک کرده است، با متن‌باز شدن زبان سوئیفت کاربران و توسعه‌دهندگان لینوکس به راحتی می‌توانند از نحوه کار آن آشنا شوند و یا حتی با استفاده از آن زبان‌های دیگر مانند Rust موزیلا را ارتقاء دهند. با این وجود برای اجرای برنامه‌های آی-آو‌اس و او‌اس-ایکس در گنو/لینوکس نیاز به متن‌باز شدن کوکو (رابط برنامه‌نویسی) نیز هست. کوکو (انگلیسی: Cocoa) رابط برنامه‌نویسی شیءگرای محلی اپل برای سیستم‌عامل اواس ده است.. این کار لازم است؛ تا کاربران بتوانند به اجرای برنامه‌های iOS بپردازند. اپل در این مورد حرفی نگفته و یا نگارنده چیزی نشنیده است.

علی‌ای‌حال در استفاده از سوئیفت نیز نباید بسیار خوش‌بین بود! زیرا که شرکت اوراکل که سان را خریداری کرده بود با شکایت از گوگل به دلیل ایجاد تغییرات و اصلاحات در جاوا و ایجاد محیطی جدید برای سیستم‌عامل خود، درخواست جریمه‌ای سنگین داشت. با توجه به این مورد بهتر است تا با مشاهده و مطالعه دقیق همه جوانب مجوز انتشار سوئیفت از آن در امور تجاری استفاده نمایید. اما به نظرم در اموری ساده مشکلی پیش نیاید اما اگر بحث سر کسب درآمد و سود باشد ممکن است اپل برایتان مشکل ایجاد کند. با این حال متن‌باز شدن زبان یا نرم‌افزارهایی این چنین که شرکت‌های بزرگ پشت آنان هستند برای مطالعه کد‌‌منبع آنان و یا استفاده از روش‌ها و الگوریتم‌های مورد استفاده آنان و بهره‌گیری درست از این روش‌ها باعث بهبود دیگر گزینه‌ها نیز خواهد شد. هرچند که برنامه‌نویسی این روزها بدون دیدن اخطاری از جانب یک وکیل کاملا کم پیش‌می‌آید.