آیا Go در سال ۲۰۲۳ نیز ارزش یادگیری دارد؟

دوشنبه 13 شهریور 1402

زبان Go یک زبان برنامه نویسی همه منظوره، کامپایلری، سریع و مقیاس پذیر است که توسط گوگل در سال 2009 عرضه شده است. اما Go چه ویژگی ای دارد که باعث می‌شود حتی در سال 2023 هم به یادگیری آن فکر کنیم؟

آیا Go در سال ۲۰۲۳ نیز ارزش یادگیری دارد؟

زبان Go یک زبان برنامه نویسی همه منظوره، کامپایلری، سریع و مقیاس پذیر است که توسط گوگل در سال 2009 عرضه شده است. اما Go چه ویژگی ای دارد که باعث می‌شود حتی در سال 2023 هم به یادگیری آن فکر کنیم؟

زبان برنامه نویسی Go بدون توجه به اینکه پروژه شما چه اندازه است، همه جا به یک شکل کار میکند. به عنوان مثال اگر شما قرار باشد پروژه ای در ابعاد گوگل را با استفاده از Python پیاده سازی بکنید، ناچار به تغییر معماری های خود خواهید بود و هزینه های زیادی را برای نگهداری از آن در سرور صرف خواهید کرد. اما برای Go فرقی نمیکند که پروژه شما در ابعاد گوگل باشد یا یک سایت فروشگاهی معمولی، Go همان کارکرد خود را خواهد داشت و با افزایش استفاده، صرفا کافیست منابع سرور خود را افزایش دهید، Go به صورت خودکار میتواند تمام منابع سرور را برای پشتیبانی از مشتریان شما به صورت کاملا بهینه استفاده کند.

زبان Go، همزمانی یا concurrency را به بهترین شکل ممکن پیاده سازی میکند. در زبان های مختلف شما نیازمند پیاده سازی انواع مختلف همزمانی با توجه به نیاز خود هستید، به عنوان مثال اگر سرور شما یک هسته CPU با یک ترد داشته باشد، شما ناچار به استفاده از ترد های مجازی (چیزی مثل همزمانی در جاوا‌اسکریپت) خواهید بود. یا اگر CPU چند ترد داشته باشد، باید از ترد های آن استفاده کنید. یا حتی اگر چند هسته باشد، ناچار به تغییر شکل پیاده سازی همزمانی خود برای استفاده از هسته های مختلف خواهید بود، اما Go تمام اینها را خود انجام میدهد! زبان Go همزمانی را با استفاده از تکنولوژی خود یعنی Goroutine پیاده سازی میکند، گوروتین‌ها ترد های مجازی، سریع و runtime خود Go هستند که با توجه به نوع سخت افزار شما، رفتار متفاوتی خواهند داشت. به عنوان مثال اگر شما چند هسته داشته باشید به طور خودکار می‌توانند از تمام هسته های شما استفاده کنند، اگر فقط یک هسته داشته باشید، می‌توانند از ترد های آن استفاده کنند. به طور کلی Go به برنامه نویس می‌گوید: اهمیتی ندارد که در چه سروری من را اجرا کنی، من عملکرد خودم را در همزمانی حفظ میکنم!

زبان Go بسیار سریع است. Go علارغم دارا بودن تکنولوژی GC و بسیار دیگر تکنولوژی های ساده سازی توسعه، همچنان یکی از سریع ترین زبان های برنامه نویسی محسوب می‌شود. اصولا این موضوع که "سرعت یا آسانی، یکی را انتخاب کنید" در دنیای برنامه نویسی جا افتاده است و اکثر زبان های سریع، فاقد ابزار های ساده سازی توسعه هستند. اما Go اینطور نیست! syntax ساده ای دارد، ابزار های ساده سازی توسعه مختلفی را دارد، و همچنین یکی از سریع ترین زبان های برنامه نویسی است!

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

زبان برنامه نویسی Go، مدرن است و مفاهیم بلااستفاده زبان های برنامه نویسی قدیمی را حذف کرده است! به عنوان مثال، Go هیچ شی ای ندارد، در عوض این نیاز را با استفاده از نوعی تایپ متغیر رفع کرده است، در Go مفهوم try-catch وجود ندارد! Go اجازه نمی‌دهد Overhead کد بزنید، هر خطایی را که دوست دارید نادیده بگیرید، اما اگر میخواهید خطا را دریافت کنید بایستی شخصا تعیین کنید که با آن خطا چه خواهید کرد! در واقع Go اجازه نمی‌دهد که معماری نرم افزار خود را بهم بزنید، Go حتی از استفاده نکردن متغیر ها یا پکیج های import شده‌ی بلااستفاده نیز خطا میگیرد تا مطمئن شود سربار اضافه ای به نرم افزارتان وارد نمیکنید!

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

حمیدرضا قهرمانی

نویسنده 16 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید

نظرات کاربران

برای درج نظر باید وارد سایت شوید