Blog

زبان برنامه نویسی Go

توسط نرم افزاردر 1 نوامبر 2020

زبان برنامه نویسی Go

زبان برنامه نویسی Goگو . گو (به انگلیسی: Go) یک زبان برنامه‌نویسی ترجمه‌شده و دارای زباله جمع‌کن،

و همروند است که در شرکت گوگل و توسط رابرت گریسیمر، راب پایک و کن تامپسون توسعه داده می‌شود.

این زبان در نوامبر ۲۰۰۹ معرفی شد و در حال حاضر در چند سامانهٔ اجرایی گوگل استفاده می‌شود.

مترجم گو از لینوکس، مک او اس، ویندوز و انواع سیستم‌های عامل بی‌اس‌دی مانند FreeBSD پشتیبانی می‌کند.

از لحاظ معماری پردازنده نیز، معماری ایکس۸۶، معماری ایکس۶۴، معماری آرم و معماری POWER،

که مخصوص به شرکت آی‌بی‌ام است، توسط مترجم گو پشتیبانی می‌شوند.

“go”به عنوان یک آزمایش توسط مهندسان گوگل رابرت گریسیمر، راب پایک و کن تامپسون،

برای طراحی یک زبان برنامه‌نویسی جدید طراحی شده‌است که انتقادهای رایج زبانهای دیگر را ،

در حالی که ویژگی‌های مثبت خود را حفظ می‌کند، ایجاد می‌کند. زبان جدید شامل ویژگی‌های زیر بود:

به صورت ایستا نوشته شده، مقیاس پذیر به سیستم‌های بزرگ (به عنوان جاوا و C ++)
نیاز به محیط‌های توسعه یکپارچه ندارند، اما از آن‌ها حمایت می‌کنند پشتیبانی از شبکه و چند پردازش

اهداف ایجاد زبان گو :

کارایی زبان‌های ترجمه‌شده دارای سامانه نوع ایستا، برنامه‌نویسی زبان‌های پویا
امنیت نوع‌ها، و امنیت حافظه
پشتیبانی برای همروندی و ارتباط
زمان ترجمه کوتاه
مزایای برنامه گو

Go دارای Goroutine است :

سازندگان سخت‌افزار هر چه در توان دارند، هسته‌های بیشتری به پردازنده اضافه می‌کنند تا عملکرد آن‌ها را افزایش دهند.

همه مراکز داده (Data centers) بر مبنای این پردازنده‌ها عمل می‌کنند و می‌توانیم منتظر افزایش تعداد هسته‌ها،

در سال‌های آتی نیز باشیم. علاوه بر آن اپلیکیشن‌های امروزی از میکروسرویس‌های چندگانه برای حفظ اتصال‌های پایگاه داده،

صف‌های پیام و نگهداری کش استفاده می‌کنند. بنابراین نرم‌افزاری که توسعه می‌دهیم ،

و زبان‌های برنامه‌نویسی می‌بایست از «همزمانی» (Concurrency) پشتیبانی کنند،

و قابل مقیاس‌پذیری با افزایش تعداد هسته‌های پردازنده‌ها باشند. اما اغلب زبان‌های مدرن برنامه‌نویسی مانند جاوا،

پایتون و غیره در محیط تک نخی دهه 90 ایجاد شده‌اند. اغلب این زبان‌ها از چند نخی پشتیبانی می‌کنند؛

اما مسئله اصلی به اجرای همزمان، «قفل نخ بندی» (threading-locking)، شرایط رقابت و بن‌بست‌ها مربوط است.

این چیزها امکان ایجاد اپلیکیشن‌های چند نخی در زبان‌ها را فراهم می‌سازد.

نگهداری کدهای نوشته شده به زبان Go آسان است :

واقعیت این است که Go داری ساختار برنامه‌نویسی پیچیده‌ای مانند دیگر زبان‌های برنامه‌نویسی نیست.

ساختار آن کاملاً سرراست و ساده است.طراحان Go در گوگل با همین ذهنیت این زبان را خلق کرده‌اند.

از آنجا که گوگل دارای codebase بزرگی است و هزاران توسعه‌دهنده به طور همزمان روی این codebase کار می‌کنند،

بنابراین درک کد باید برای توسعه‌دهندگان دیگر ساده باشد و یک قطعه کد باید بدون کمترین اثر جانبی روی قطعه کد دیگر اجرا شود.

همین نکته باعث خواهد شد که کد به سادگی قابل نگهداری بوده و اصلاح آن آسان باشد.

Go عامدانه بسیاری از ویژگی‌های زبان‌های شیءگرای مدرن را کنار گذاشته است.

Go از سوی گوگل پشتیبانی می‌شود :

لبته شاید این یک مزیت مستقیم محسوب نشود، اما Go از سوی گوگل طراحی شده و پشتیبانی می‌شود.

گوگل یکی از بزرگ‌ترین زیرساخت‌های ابری دنیا را دارد و مقیاس‌پذیری آن بسیار عظیم است.

Go از سوی گوگل به منظور حل مشکلات آن‌ها در پشتیبانی از مقیاس‌پذیری و کارایی طراحی شده است.

این‌ها همان مسائلی هستند که همه افراد هنگام ایجاد سرورهای شخصی خود با آن مواجه می‌شوند.

همچنین کارهای زیادی از سوی شرکت‌های بزرگی مانند اینتل، IBM، ادوبی و حتی Medium در مورد Go صورت گرفته است.

سخن پایانی :

با این که Go از دیگر زبان‌های برنامه‌نویسی بسیار متفاوت است؛ اما همچنان مفاهیم مشترک زیادی با آن‌ها دارد.

Go مانند C یا ++C دارای عملکرد بالایی است و مانند جاوا مدیریت همزمانی بسیار کارآمدی دارد،

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

مجبور باشیم از Go استفاده کنیم. توسعه دهنگان نیاز دارند که سخت‌افزار را درک کنند،

و برنامه خود را بر همین مبنا بهینه‌سازی نمایند. نرم‌افزار بهینه‌شده می‌تواند روی سخت‌افزار ارزان‌تر ،

و کندتری نیز اجرا شود و به طور کلی تجربه کاربری بهتری برای کاربر نهایی رقم می‌زند.

 

دیدگاه خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    سبد خرید
    question