زبان گو (Go) در سال ۲۰۰۷ (به شمسی: ۱۳۸۶) توسط «شرکت گوگل» با هدف افزایش بهرهوری برنامهنویسی در محیط چندهستهای، رایانههای شبکهای و کدبیسهای بزرگ طراحی شد [به نقل از ویکی پدیا] و سپس به عنوان یک زبان کامپایلری و تایپ استاتیک در نوامبر سال ۲۰۰۹ بصورت عمومی با هدف کامپایل کارآمد ، اجرای کارآمد وسهولت برنامه نویسی معرفی شد که توسط شرکت گوگل توسعه داده شده است و بسیاری از اعضای تیم طراحی و توسعه زبان گو [Ken Thompson, Rob Pike, Robert Griesemer] سال ها تجربه در زمینه تحقیق و توسعه زبان برنامه نویسی دارند.
زبان گو دارای یک سری ویژگی های منحصر به فرد می باشد و برخی از ویژگی هایش از سایر زبان ها الهام گرفته شده است :
- پشتیبانی از برنامه نویسی همزمانی بصورت Built-in
- گوروتین ها امکان اجرای همزمانی توابع را فراهم می کند و همچنین گوروتین ها واقعا خیلی سبک هستند به طوری که شما می توانید هزاران گوروتین را همزمان در سخت افزارهای مدرن بدون هیچ مشکل عملکردی اجرا کنید.
- کانال ها برپایه مدل CSP می باشد که امکان همگام سازی داده ها بین گوروتین ها را فراهم می کند.
- پشتیبانی از تایپ های map و slice
- امکان پیاده سازی پلی مورفیسم با استفاده از اینترفیس ها
- پوینترها
- کلوژر توابع (یک تابع معمولی که داخل یک تابع دیگر به عنوان بازگشت تعریف می شود)
- متدها
- امکان defer برای تعویق فراخوانی یک تابع
- قابلیت جاسازی تایپ ها
- ایمنی حافظه در زبان گو
- قابلیت زباله جمع کن خودکار
- سازگاری کامل با انواع پلتفرم ها نظیر [linux, windows, mac, AIX, android, freeBSD] جهت توسعه و کامپایل
- امکان Cross-compile با این امکان می توانید در هر پلتفرمی برای سایر پلتفرم ها کامپایل کنید
- پشتیبانی از جنریک یا تایپ پارامتر (از نسخه ۱.۱۸)
- تست نویسی آسان
- اینترفیس و رفلکشن
- زبان گو برخلاف زبان هایی نظیر c, cpp یا java نیاز به نقطه ویرگول (Semicolons) ندارد و به نسبت زبان هایی که معرفی کردیم پرانتز کمتری استفاده می کند و همچنین ظاهر سینتکس گو خیلی خواناتر و راحتر می باشد.
علاوه بر ویژگی های که در بالا معرفی کردیم یک سری نکات برجسته در خصوص زبان گو وجود دارد که به شرح زیر می باشند:
سینتکس این زبان به گونه ای ساده و تمیز طراحی شده که فرآیند یادگیری آن را آسان تر می کند و از همه مهم تر توسعه پروژه های مقیاس پذیر مقیاس پذیر با زبان گو به دلیل سادگی و آشکار بودن مفاهیم خیلی سریعتر صورت میگیرد.
زبان گو دارای تعداد زیادی پکیج های استاندارد و کاربردی جهت توسعه می باشد که همه این پکیج ها در انواع پلتفرم ها جهت توسعه قابل استفاده است.
زبان گو دارای یک جامعه بزرگ از توسعه دهندگان و انجمن های فعال می باشد که خیلی سریع می توانید به پاسخ سوالات خود برسید.
برنامه نویس های زبان گو را گوفر صدا میزنند.