امروز در هیتوس می‌خواهیم مطلب دنبال دار جذابی را با هم بخوانیم که شاید در کمتر جایی در اینترنت به آن پرداخته شده باشد. زبان Go زبان بسیار قدرتمند و پیشرفته‌ای است که در آینده‌ای نه چندان دور در بیشتر پروژه‌های موفق و بزرگ دنیا مورد استفاده قرار می‌گیرد. شاید تعجب کنید اگر بدانید Go در برخی خصوصیات خود 20 الی 50 برابر از زبان‌های دیگر بهینه تر و سریع تر است. در این پست اول از مجموعه پست‌های آشنایی با زبان Go با تاریخچه این زبان به صورت اجمالی آشنا می‌شوید.

در این پست با مطالب زیر آشنا می‌شوید:

  • طراحان و ابداع کنندگان زبان Go
  • اهداف طراحی این زبان
  • شرکت‌های بزرگی که از Go استفاده می‌کنند
  • مقایسه مختصری از زبان Go و زبان‌هایی مانند C++ و Ruby و Python و جاوا
  • شرکت پشتیبان از زبان Go
  • مجوزهای انتشار این زبان

نمودار مقایسه تعداد درخواست‌های زبان Go نسبت به سایر زبان‌ها در یک ثانیه

در سپتامبر سال 2007، Ken Thompson و Rob Pike، دو تن از سرشناس ترین چهرها‌های دنیای نرم افزار که نیازی به معرفی شان نیست، ایده ساخت یک زبان برنامه نویسی سیستمی جدید را با Robert Griesemer، یکی دیگر از مهندسین مشغول در Google در میان گذاشتند.

آن‌ها کار بر روی این زبان جدید را شروع کردند و در این مدت تعداد دیگری از همکارانشان همچون Russ Cox و Brad Fitzpatrick و Andrew Gerrand به تیم آن‌ها ملحق شدند.

در نوامبر سال 2009، اولین نسخه آزمایشی زبان با پشتیبانی گوگل به صورت متن باز به عموم برنامه نویسان عرضه شد. از آن زمان تا کنون بیش از 300 نفر از برنامه نویسان داوطلب در توسعه این پروژه شرکت داشته اند.

از اولین ماه انتشار این زبان، شرکت‌های Startup زیادی استفاده از آن را شروع کردند. با اینکه زبان در نسخه آزمایشی به سر می‌برد، اما برای خیلی‌ها وجود نام Jeb Thompson و Rob Pike کافی بود تا از کیفیت زبان اطمینان حاصل کنند.

شرکت‌های بزرگ تر اما، منتظر نسخه پایدار ماندند. تا اینکه در ماه مارس سال 2012، نسخه 1.0 از زبان برنامه نویسی Go به صورت پایدار منتشر شد.

در زیر لیست تعدادی از شرکت‌های استفاده کننده از این زبان را می‌بینید:

  • Google
  • YouTube
  • BBC
  • Canonical
  • Nokia Siemens
  • Bitly
  • Heroku
  • CloudFlare
  • SmugMug
  • Feedbooks
  • Iron.io
  • Moovweb
  • AirBrake
  • Swirl.us
  • SoundCloud

تقریباً در تمام اسامی بالا، از Go برای طراحی سیستم‌های Back-end استفاده شده است. جایی که زبان‌های اسکریپتی قدرت مناسب را ندارند و معمولا از JVM استفاده می‌شود؛ در خیلی از مواقع هم برای رسیدن به سرعت بالاتر، پای کدهای c و C++ به میان می‌آید.

فکر نمی‌کنم در تاریخ زبان‌های برنامه نویسی بوده که توانسته باشد فقط با گذشت 7 ماه از انتشار اولین نسخه پایدارش، با چنین مقبولیتی روبرو شود.

مسلم است که Go هنوز در اول راه است، و برای رسیدن به جایگاه زبان‌هایی مثل C++ و Java و Python و... راه درازی در پیش دارد، اما به نظر می‌رسد که برای شروع بسیار موفق عمل کرده است.

Go یک زبان مدرن و همه منظوره است

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

Rob Pike عنوان می‌کند که ایده اولیه آن‌ها ساخت یک زبان سیستمی بود که بتواند جایگاه مناسبی برای C++ باشد. در روزهای اول، حتی سایت پروژه هم Go را به عنوان زبانی برای برنامه نویسی سیستم معرفی می‌کرد. اما با گذشت زمان متوجه شدند که تاکید آن‌ها بر سادگی، باعث شده نظر برنامه نویسان زبان‌های سطح بالاتری مثل Python یا Ruby هم به Go جلب شود؛ این قضیه برای تیم توسعه هم جالب بود.

در واقع می‌توان گفت که Go با ظرافت فراوان قدرت و سرعت زبانی مثل C را با سهولت و سادگی زبانی مثل Python ترکیب کرده. به همین دلیل قادر است طیف بسیار وسیعی از برنامه‌ها را پوشش دهد، از برنامه‌های سیستمی گرفته تا برنامه‌های ساده چند خطی. چه کسی گفته که یک زبان سیستمی، حتماً باید سخت باشد؟

Go یک زبان (آزاد) و متن باز است

با اینکه Go مستقیما از طرف گوگل پشتیبانی می‌شود، ولی یک زبان کاملاً آزاد است و تحت کنترل هیچ شرکتی نیست. Pike اعلام کرده که برای اثبات این موضوع، از قصد هیچ لوگو‌ای از شرکت گوگل را در سایت این زبان قرار نداده اند!

این یعنی:

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

در آینده منتظر قسمت‌های بعدی باشید.

تگ ها: golang