کتاب فارسی Go Succinctly
زبان Go زبان بسیار قدرتمند و پیشرفتهای است که در آیندهای نه چندان دور در بیشتر پروژههای موفق و بزرگ دنیا مورد استفاده قرار میگیرد. شاید تعجب کنید اگر بدانید 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 به صورت پایدار منتشر شد.
در زیر لیست تعدادی از شرکتهای استفاده کننده از این زبان را میبینید:
- YouTube
- BBC
- Canonical
- Nokia Siemens
- Bitly
- Heroku
- CloudFlare
- SmugMug
- Feedbooks
- Iron.io
- Moovweb
- AirBrake
- Swirl.us
- SoundCloud
تقریباً در تمام اسامی بالا، از Go برای طراحی سیستمهای Back-end استفاده شده است. جایی که زبانهای اسکریپتی قدرت مناسب را ندارند و معمولا از JVM استفاده میشود؛ در خیلی از مواقع هم برای رسیدن به سرعت بالاتر، پای کدهای C و ++C به میان میآید.
GO یک زبان مدرن و همه منظوره است
Go زبانی است که برای نیازهای امروز برنامه نویسان طراحی شده است. تمامی سعی طراحان بر این بوده که بتوانند تناسبی بین قدرت، سرعت و سادگی ایجاد کنند. ایدههایی که در آن بکار رفته با دقت و وسواس زیادی انتخاب و پیاده سازی شده اند. طبق گفته تیم توسعه، بر سر بعضی از قابلیتهای زبان تا یک سال بحث و تبادل نظر صورت گرفته است.
Rob Pike عنوان میکند که ایده اولیه آنها ساخت یک زبان سیستمی بود که بتواند جایگاه مناسبی برای ++C باشد. در روزهای اول، حتی سایت پروژه هم Go را به عنوان زبانی برای برنامه نویسی سیستم معرفی میکرد. اما با گذشت زمان متوجه شدند که تاکید آنها بر سادگی، باعث شده نظر برنامه نویسان زبانهای سطح بالاتری مثل Python یا Ruby هم به Go جلب شود؛ این قضیه برای تیم توسعه هم جالب بود.
در واقع میتوان گفت که Go با ظرافت فراوان قدرت و سرعت زبانی مثل C را با سهولت و سادگی زبانی مثل Python ترکیب کرده. به همین دلیل قادر است طیف بسیار وسیعی از برنامهها را پوشش دهد، از برنامههای سیستمی گرفته تا برنامههای ساده چند خطی. چه کسی گفته که یک زبان سیستمی، حتماً باید سخت باشد؟
GO یک زبان (آزاد) و متن باز است
با اینکه Go مستقیما از طرف گوگل پشتیبانی میشود، ولی یک زبان کاملاً آزاد است و تحت کنترل هیچ شرکتی نیست. Pike اعلام کرده که برای اثبات این موضوع، از قصد هیچ لوگوای از شرکت گوگل را در سایت این زبان قرار نداده اند!
این یعنی :
- سیاست کاری و تجاری هیچ شرکتی بر آینده زبان تاثیر نخواهد گذاشت.
- توسعه و بهسازی زبان با سرعت بیشتری انجام میشود.
- همه میتوانند به طور شفاف تمام مراحل توسعه را دنبال کنند.
- کتابخانهها و فریم ورکهای متن باز بیشتری برای زبان وجود خواهد داشت.
و....
آشنایی با ساختار کلی این زبان
برای آشنایی سریع وراحت با ساختار این زبان قدرتمند کتاب فارسی گولنگ به طور خلاصه (Go Succinctly) را به شما معرفی می کنم . بهترین کتاب فارسی برای آشنایی با ساختار کلی که به استارترهای می شود معرفی کرد .
مباحث کتاب
- اجرا اولین برنامه در زبان برنامه نویسی گو
- Values در گولنگ
- Variables در گولنگ
- Constants در گولنگ
- For در گولنگ
- If/Else در گولنگ
- Switch در گولنگ
- Arrays در گولنگ
- Slices در گولنگ
- Maps در گولنگ
- Range در گولنگ
- Functions در گولنگ
- Multiple Return Values در گولنگ
- Variadic Functions در گولنگ
- Closures در گولنگ
- Recursion در گولنگ
- Pointers در گولنگ
- Structs در گولنگ
- Methods در گولنگ
- Embedded types در گولنگ
- Interfaces در گولنگ
- Empty interface در گولنگ
- Type assertion در گولنگ
دانلود کتاب در :
مطلبی دیگر از این انتشارات
پیاده سازی یک سرویس قابل تست در Golang - قسمت ۱
مطلبی دیگر از این انتشارات
الو، Docker؟ (ارتباط GoLang با api داکر)
مطلبی دیگر از این انتشارات
جنریک ها در گو و بررسی پرفورمنس آنها با گرفتن بنچ مارک