۹۶/۹/۲، ۰۳:۰۸ صبح
گوگل اخیرا کدهای زبان برنامهنویسی متن باز اپل را برای خود کپیبرداری کرد؛ اما چرا گوگل چنین کاری را انجام داده است؟
چند روز پیش جنجالی بر پا شد با این موضوع که گوگل کدهای سویفت، زبان برنامهنویسی متن باز اپل را کپی کرده است. گمانهزنیهایی انجام شده است مبنی بر اینکه گوگل قصد دارد این زبان به سلیقهی خود تغییر دهد و برای اهداف خود به کار ببرد، . کریس لتنر، خالق سویفت که در حال حاضر برای گوگل کار میکند، وضعیت را شفافسازی کرده است:
به گفته لتنر، گوگل تنها یک کپی از کدهای سویفت میخواست تا بتواند تغییرات خود را روی آن اعمال کند و سپس این تغییرات را با کدهای رسمی سویفت تلفیق کند و تا این طریق در این پروژه همکاری کرده باشد.
نکتهی جالب توجه اینکه یکی از این تغییرات هماکنون به کدهای سویفت اضافه شده است. عنوان این تغییر پشتیبانی از فیوژا (Fuchsia) است. راک بولینگ که چند سال پیش برای توسعهی پورت Objective-C برای اندروید همکاری کرد، این خبر را در پاسخ به توییت لتنر منتشر کرده است.
همچنین در کدهای گوگل یک نمونه برنامهی نوشتهشده با سویفت برای فیوژا مشاهده میشود که تعدادی ایموجی و کلمات چینی به معنی «سلام دنیا» در آن وجود دارد. هروقت گوگل اعلام کند که اعمال تغییرات در سویفت انجام گرفته است، این کدها باید قابل اجرا بشوند.
فیوژا، سیستم عامل نهچندان محرمانهی گوگل، بهصورت متن باز در حال گسترش است؛ اما هیچگونه اظهار نظری در مورد اینکه چه بوده و قرار است جای کدام سیستم عامل را بگیرد انجام نشده است. هستهی این سیستمعامل به زبانهای C و ++C نوشته شده و از زبان دارت (Dart) برای نوشتن محیط کاربری مبتنی بر فلاتر (Flutter) استفاده شده است؛ اما زبانهای برنامهنویسی دیگر نظیر گو (Go)، راست (Rust)، پایتون (Python) و حالا سویفت نیز در این پروژه دیده میشوند.
البته، صرفا به این جهت که میتوان سویفت را روی فیوژا اجرا کرد نمیتوان گفت که بعد از انتشار فیوژا شما بهسرعت قادر خواهید بود هر کدام از برنامههای iOS را که بخواهید روی سیستمعامل جدید گوگل اجرا کنید. هرچند اپل زبان برنامهنویسی سویفت را متنباز کرده است، بسیاری از بخشهای پلتفرم iOS مثل محیط کاربری همچنان اختصاصی بوده و کدهای آن محرمانه هستند. بنابراین، کدهایی که برای اجرا به کدهای اختصاصی اپل وابسته باشند قابل پورت نخواهند بود.
یکی از حالتهایی که برای آیندهی فیوژا و پلتفرمهای مشابه میتوان متصور بود این است که برنامهنویسان، هستهی برنامه یا «core logic» را به زبان دلخواه خود (سویفت، گو، راست، جاوا اسکریپت و...) نوشته و سپس محیط کاربری شخصیسازی شده را برای پلتفرمهای مختلف از قبیل اندروید، iOS، فیوژا، لینوکس، ویندوز، وب و... با استفاده از ابزار مخصوص هرکدام طراحی خواهند کرد.
آیندهی ممکن دیگری که میتوان متصور شد این است که ابزاری مانند گوگل فلاتر یا React Native متعلق به شرکت فیسبوک به کار خود ادامه دهند. این ابزار امکان استفاده از یک زبان مانند دارت یا جاوا اسکریپت را برای ساخت نرمافزار پلتفرمهای مختلف را به برنامهنویسان میدهند. همچنین فریمورک بینپلتفرمی دیگری به نام SCADE به زبان سویفت وجود دارد که میتوان با استفاده از آن، هم برای iOS و هم برای اندروید برنامه ساخت.
چند روز پیش جنجالی بر پا شد با این موضوع که گوگل کدهای سویفت، زبان برنامهنویسی متن باز اپل را کپی کرده است. گمانهزنیهایی انجام شده است مبنی بر اینکه گوگل قصد دارد این زبان به سلیقهی خود تغییر دهد و برای اهداف خود به کار ببرد، . کریس لتنر، خالق سویفت که در حال حاضر برای گوگل کار میکند، وضعیت را شفافسازی کرده است:
به گفته لتنر، گوگل تنها یک کپی از کدهای سویفت میخواست تا بتواند تغییرات خود را روی آن اعمال کند و سپس این تغییرات را با کدهای رسمی سویفت تلفیق کند و تا این طریق در این پروژه همکاری کرده باشد.
نکتهی جالب توجه اینکه یکی از این تغییرات هماکنون به کدهای سویفت اضافه شده است. عنوان این تغییر پشتیبانی از فیوژا (Fuchsia) است. راک بولینگ که چند سال پیش برای توسعهی پورت Objective-C برای اندروید همکاری کرد، این خبر را در پاسخ به توییت لتنر منتشر کرده است.
همچنین در کدهای گوگل یک نمونه برنامهی نوشتهشده با سویفت برای فیوژا مشاهده میشود که تعدادی ایموجی و کلمات چینی به معنی «سلام دنیا» در آن وجود دارد. هروقت گوگل اعلام کند که اعمال تغییرات در سویفت انجام گرفته است، این کدها باید قابل اجرا بشوند.
فیوژا، سیستم عامل نهچندان محرمانهی گوگل، بهصورت متن باز در حال گسترش است؛ اما هیچگونه اظهار نظری در مورد اینکه چه بوده و قرار است جای کدام سیستم عامل را بگیرد انجام نشده است. هستهی این سیستمعامل به زبانهای C و ++C نوشته شده و از زبان دارت (Dart) برای نوشتن محیط کاربری مبتنی بر فلاتر (Flutter) استفاده شده است؛ اما زبانهای برنامهنویسی دیگر نظیر گو (Go)، راست (Rust)، پایتون (Python) و حالا سویفت نیز در این پروژه دیده میشوند.
البته، صرفا به این جهت که میتوان سویفت را روی فیوژا اجرا کرد نمیتوان گفت که بعد از انتشار فیوژا شما بهسرعت قادر خواهید بود هر کدام از برنامههای iOS را که بخواهید روی سیستمعامل جدید گوگل اجرا کنید. هرچند اپل زبان برنامهنویسی سویفت را متنباز کرده است، بسیاری از بخشهای پلتفرم iOS مثل محیط کاربری همچنان اختصاصی بوده و کدهای آن محرمانه هستند. بنابراین، کدهایی که برای اجرا به کدهای اختصاصی اپل وابسته باشند قابل پورت نخواهند بود.
یکی از حالتهایی که برای آیندهی فیوژا و پلتفرمهای مشابه میتوان متصور بود این است که برنامهنویسان، هستهی برنامه یا «core logic» را به زبان دلخواه خود (سویفت، گو، راست، جاوا اسکریپت و...) نوشته و سپس محیط کاربری شخصیسازی شده را برای پلتفرمهای مختلف از قبیل اندروید، iOS، فیوژا، لینوکس، ویندوز، وب و... با استفاده از ابزار مخصوص هرکدام طراحی خواهند کرد.
آیندهی ممکن دیگری که میتوان متصور شد این است که ابزاری مانند گوگل فلاتر یا React Native متعلق به شرکت فیسبوک به کار خود ادامه دهند. این ابزار امکان استفاده از یک زبان مانند دارت یا جاوا اسکریپت را برای ساخت نرمافزار پلتفرمهای مختلف را به برنامهنویسان میدهند. همچنین فریمورک بینپلتفرمی دیگری به نام SCADE به زبان سویفت وجود دارد که میتوان با استفاده از آن، هم برای iOS و هم برای اندروید برنامه ساخت.