پروژه های متن باز گوگل
بدون شک، گوگل در دنیای فناوری به عنوان یکی از مهرههای اصلی شناخته میشود. گوگل در بیشتر فناوریهایی که این روزها درباره آنها میشنوید، تحقیقاتی انجام داده، نمونههای اولیه آزمایشی تولید کرده یا حتی نمونههای تجاری ابداعی را به فروش رسانده است. از زمانی که تغییرات بنیادی در این شرکت شکل گرفت و تغییر ساختار منجر به تشکیل شرکت مادری به نام آلفابت شد، ارزش این شرکت بیش از پیش افزایش یافت.
در حوزه نرمافزاری شاهد هستیم که گوگل کمکهای فراوانی به جامعه متنباز کرده و باعث پیشرفت آن شده است و شرکتهای دیگر را نیز مستقیماً یا غیرمستقیم مجاب کرده است که به سمت جامعه متنباز روی آورند. اندروید، سیستمعامل کرومیوم، زبان برنامهنویسی گو، تانسورفلو، Material Design Icons و مانند اینها، تنها گوشهای از تلاشهای موفقیتآمیز این شرکت بودهاند. بر همین اساس، در این مقاله بر آن شدیم تا برترین پروژههای متنباز گوگل را که امروزه بهوفور در هر مکانی و هر کسبوکاری استفاده میشوند و جزو برترینهای گیتهاب به شمار میروند، معرفی کنیم.
1. اندروید
گوگل در سال 2015 و در جریان برگزاری کنفرانس توسعهدهندگان اعلام کرد 1.4 میلیارد دستگاه متصل به اینترنت از اندروید استفاده میکنند. این بدان معنا است که اندروید یکی از محبوبترین سیستمعاملهای حال حاضر بوده و محبوبیت آن حتی از سیستمعامل ویندوز مایکروسافت نیز بیشتر است. دلایل مختلفی برای این محبوبیت و شهرت میتوان ارائه کرد. در این بین دسترسی رایگان تولیدکنندگان تجهیزات و سختافزارها به این سیستمعامل نقش بسیار مهمی در محبوبیت و همهگیر شدن آن داشته است.
به عبارت دیگر، دستگاهها میتوانند بسیار ارزان و مقرونبهصرفه تولید شوند، زیرا تولیدکنندگان برای اینکه بتوانند از این سیستمعامل استفاده کنند، مجبور نیستند هزینههای گزافی را برای صدور مجوز پرداخت کنند. این استراتژی باعث شده است گوگل بخش اعظمی از بازار طراحی محصولات را از آن خود کند. در مقطع فعلی، صدها میلیون کاربر در سراسر جهان از اندروید استفاده میکنند؛ همین موضوع باعث شده است اندروید در صدر این فهرست قرار بگیرد.
2. کرومیوم
بیشتر کاربران با مرورگر کروم آشنایی دارند، اما تعدادی بسیار کمی از کاربران از این موضوع باخبر هستند که کروم بر مبنای یک پروژه متنباز به نام کرومیوم طراحی و ساخته شده است. کرومیوم درست همانند کروم در اختیار کاربران قرار دارد و هر کاربری میتواند آن را دانلود کند. شایان ذکر است این مرورگر بههمان خوبی کروم قادر به انجام وظایف خود است.
تنها چیزی که کرومیوم در مقایسه با کروم از آن محروم است، دسترسی به چند مؤلفه کلیدی و اختصاصی است؛ مؤلفههایی که اکثر مردم حاضر نیستند از آنها چشمپوشی کنند. این مرورگر با استفاده از سی، سیپلاسپلاس و دیگر زبانهای برنامهنویسی نوشته شده است.
3. سیستمعامل کرومیوم
با شباهت بسیاری به کروم و کرومیوم، سیستمعامل کرومیوم نیز یک پروژه متنباز لینوکسمحور است که ویژه دستگاههای فوقالعاده قابل حمل و دستگاههای همیشهمتصل طراحی شده است. کرومیوم بر مبنای توزیع لینوکسی Gentoo ساخته شده، تا حد زیادی ناشناخته است و امنیت بسیار بالایی دارد. کرومیوم، سیستمعاملی سبک و پایدار است. این سیستمعامل از مرورگر کرومیوم استفاده کرده و از برنامههای وب بهخوبی پشتیبانی میکند. معماری این سیستمعامل سه لایه است. محبوبترین نسخه این سیستمعامل Chromium OS Flow است که لیام مک لوئین آن را ساخت. این سیستمعامل به صورت ازپیشساختهشده روی تعدادی از دستگاهها قرار دارد. اواخر سال 2015، گروهی به سرپرستی دایلن کالاهان نسخه قابل حمل این سیستمعامل را برای رزبری پای 2 عرضه کردند.
4. AngularJS
انگولارجیاس چهارچوب نرمافزاری تحت وب جاوااسکرپیتمحور است که هدفش سادهسازی چالش توسعه سایتهای تکصفحهای و برنامههای وب است. ابتدا، گوگل از انگولارجیاس پشتیبانی میکرد، اما در ادامه گروهی از متخصصان مستقل و شرکتهای بزرگ از آن حمایت کردند؛ افراد و سازمانهایی که راغب بودند به نگهداری و توسعه آن بپردازند. جدیدترین نسخه این چهارچوب در تاریخ 27 می 2016 منتشر شد.
5. GO
زبان برنامهنویسی گو در سال 2007 ساخته و در سال 2009 رسماً از آن رونمایی شد. گو یک زبان برنامهنویسی است که با هدف بهبود پیچیدگیهای زبانهای خانواده سی، پا به عرضه ظهور نهاد تا بتواند در حد امکان انعطافپذیری مطلوبی را در اختیار طراحان قرار دهد. فلسفه گو بر پایه سادهسازی قرار دارد و در بعضی موارد برخی از ویژگیها را قربانی این سادهسازی کرده است.
در حالیکه جنجالهای زیادی بر سر اینکه کدامیک از ویژگیها حذف شدهاند، برپا شد، نویسندگان زبان اینگونه استدلال میکنند که این کار با هدف موفقیت این زبان انجام شده است.
زنجیره ابزار (toolchain) و کتابخانه استاندارد گو در همه پلتفرمهای بزرگ از قبیل ویندوز، مک اپل و لینوکس در دسترس هستند. همچنین سیستمعاملهای خانواده BSD و یونیکس نیز به این ابزارها دسترسی دارند.
6. Dart
زبان برنامهنویسی دیگری که گوگل ارائه کرده است، دارت نام دارد. این زبان میتواند برای ساخت برنامههای وب، سرور، موبایل و دستگاههای اینترنت اشیا استفاده شود. برعکس گو، زبان برنامهنویسی دارت، یک زبان ترجمهشده نیست که برای پیادهسازی آن به کامپایلر نیازی باشد. دارت یک زبان اسکریپتنویسی است که روی یک ماشین مجازی همچون جاوا یا پایتون اجرا میشود. علاوه بر این، دارت ماشین مجازی خودش را نیز دارد.
دارت این قابلیت را دارد که به جاوااسکرپیت کامپایل شود؛ این کار بهمنظور دستیابی به ویژگی قابل حمل بودن بیشتر انجام میشود. توسعهدهندگان میتوانند برنامههای کاربری سمت سرور خود را که با زبان دارت توسعه پیدا کردهاند، در ماشینهای مجازی موتور اپلیکیشن گوگل اجرا کنند.
7. Material Design Icons
گوگل پروژههای بسیار زیادی دارد که روی گیتهاب میزبانی میشوند. مخزن Material Design Icons یکی از معروفترین آنها به شمار میرود. زمانی که Material Design Icons درون اکوسیستم اندروید معرفی شد، هدف گوگل تنها ارائه چارچوبی برای تولید برنامههای کاربردی زیبا و منسجم نبود، بلکه آنها داراییها و منابعی را ارائه کردند که تجربه بسیار غنی در زمینه تجربه کاربری در اختیار توسعهدهندگان قرار دهند. Material Design Icons صدها آیکون در اختیارتان قرار میدهد تا اطمینان حاصل کنید برنامه شما به صورت حرفهای به نمایش درخواهد آمد و همچنین به لحاظ بصری انسجام خوبی خواهد داشت.
8. Fuchsia OS
زمانی که صحبت از سیستمعاملهای یکپارچه به میان میآید، مایکروسافت همراه با سیستمعامل ویندوز 10 یا ویندوز 10 موبایل به ذهن بسیاری از ما خطور میکند. اما اخباری که از شرکت گوگل منتشر شده است، نشان میدهد که این شرکت در حال کار روی سیستمعاملی به نام Fuschia است؛ سیستمعاملی که به اعتقاد بسیاری از کارشناسان این ظرفیت را دارد که به صورت یکپارچه طراحی و استفاده شود. اگر اخبار دنیای فناوری را مرتب دنبال کرده باشید، بهخوبی میدانید که از مدتها قبل زمزمههایی درباره ادغام دو سیستمعامل کروم و اندروید به گوش میرسید؛ حتی گزارشهایی منتشر شد که نشان میداد سیستمعامل کروم بهخوبی قادر به اجرای برنامههای اندرویدی است. در نتیجه ادغام کردن این دو پلتفرم چندان هم عجیب نیست.
گوگل در توصیف این سیستمعامل از دو واژه purple + pick=Fuschia (سیستمعامل جدید) استفاده کرده است. اما معنای این ترکیب چیست؟ آیا صورتی و بنفش به معنای اندروید و کروم هستند؟ ما حدس میزنیم که اینگونه باشد. اما نشانههایی وجود دارد که میگوید این سیستمعامل جدید با دو کرنل متفاوت عرضه خواهند شد و این کرنلها بسته به دستگاهی که روی آن اجرا میشوند، فعال خواهند بود. این کرنلها LK و Magneta نام دارند.
LK کرنل طراحیشده برای سیستمهای کوچک است که بهطور معمول در سامانههای توکار استفاده میشود. مگنتا (Magneta) ویژه گوشیهای هوشمند و کامپیوترهای شخصی مدرن که پردازندههای سریعتری دارند، طراحی شده و استفاده خواهد شد. اگر این به معنای ادغامسازی دو سیستمعامل کروم و اندروید نیست، در نتیجه نمیدانیم سیستمعامل جدید چه خواهد بود.
با این حال، به نظر میرسد، Fuschia هنوز به طور کامل آماده عرضه نیست و هنوز بهدرستی مشخص نیست این محصول به طور کامل ساخته و عرضه خواهد شد یا خیر. گوگل معمولاً ایدههای زیادی را آزمایش میکند که در بعضی موارد هیچگاه مستقلاً عرضه نشده یا وارد بازار نمیشوند.
9. Protocol Buffers
وارد کردن دادهها میان فرایندها، خواه در یک شبکه باشد یا به صورت محلی روی یک ماشین انجام شود، ممکن است باعث به وجود آمدن مشکلات مختلفی شود؛ بهویژه اگر این فرایند ارسال و دریافت در خصوص برنامههایی انجام شود که به زبانهای مختلفی نوشته شدهاند. زمانی که در نظر داشته باشید نوعهای دادهای را در هوا (on the fly) تبدیل کنید، در بیشتر موارد این کار بهسختی انجام میشود.
این درست مکانی است که زبانهایی شبیه به XML و JSON به میدان وارد میشوند. Protocol Buffers یک پروتکل سریالیز کردن دادهها است که گوگل در مکانیزمهای ارتباطاتی بهطور گسترده از آن استفاده میکند.
Protocol Buffers شبیه به یک واسط میان برنامههای کاربردی به ایفای نقش میپردازد، وظیفه انتقال دادهها را در یک قالب موقت بر عهده دارد و میتواند فرایند تبدیل انواع مختلفی از نوعهای دادهای و نوعهای محلی را بهسادگی انجام دهد. Protocol Buffers یکی دیگر از پروژههای گوگل است که بسیاری از توسعهدهندگان در گیتهاب از آن استقبال کردهاند.
10. Google Web Toolkit
Google Web Toolkit یک کیت توسعه متنباز است که برای ساخت و بهینهسازی برنامههای کاربردی پیچیده مرورگرمحور استفاده میشود. این کیت به توسعهدهندگان وب اجازه میدهد برنامههایی را که با زبان جاوااسکرپیت نوشته شدهاند، در جاوا نگهداری کنند. بسیاری از محصولات گوگل همچون Google Adwords، از این کیت توسعه استفاده میکنند.
پاداش تلاشها
گوگل به دلیل اینکه به لینوکس اعتماد داشت، امپراتوری خود را بر مبنای سیستمهای لینوکسی پایهگذاری کرد. آنها در طول این سالها مشکلات و باگهای بیشماری را شناسایی و وصلههایی برای کرنل لینوکس ارائه کردند. حاصل این تلاشها پروژهای به نام اندروید بود. نقش گوگل در زمینه توسعه کرنل لینوکس به عنوان یک سیستمعامل ویژه دستگاههای همراه کاملاً مشهود است. اندروید باعث شده است حجم محاسبات دنیای لینوکس بهطرز چشمگیری افزایش پیدا کند. این کار در تعامل مستقیم با دستگاههای همراه انجام میشود. دستگاههایی که به هر کاربری اجازه میدهند کارهای روزمره خود را به بهترین شیوه ممکن سازماندهی کند. در حالی که نقش مستقیم گوگل در پیشرفت کرنل لینوکس کاملاً ستودنی است، با این حال، گوگل خود به تنهایی الهامبخش بسیاری از شرکتها و افراد بوده و زمینهساز حضور شرکتهای زیادی در عرضه فناوری و بهویژه گوشیهای هوشمند شده است؛ شرکتهایی که تا پیش از این هیچگاه نامی از آنها به میان نیامده بود.
زمانی که از نقش گوگل در زمینه پیشرفت کرنل لینوکس و الهامبخشی آبشاری این شرکت در خصوص اندروید صحبت به میان میآید، مشاهده میکنیم گوگل در طول این سالها به بسیاری از کسبوکارها کمک کرده است تا اندروید را در محصولات خود استفاده کنند؛ سیستمعامل متنبازی که صدها میلیون نفر از آن استفاده کردهاند. شاید از زمان شکلگیری بنیاد نرمافزار آزاد (Free Software Foundation) تا به امروز، اندروید بزرگترین پروژهای بوده است که در دنیای متنباز با چنین استقبال کمنظیری از سوی کاربران روبهرو شده است.
منبع شبکه