آشنایی کامل با زبان برنامه نویسی GO
همه چیز در مورد زبان برنامه نویسی GO
زبان برنامه نویسی GO یک زبان برنامه نویسی رویه ای است. زبان GO در سال 2007 توسط رابرت گریسمر، راب پیک و کن تامپسون در گوگل ساخته شد و در سال 2009 به عنوان یک زبان برنامه نویسی منبع باز راه اندازی شد.
این زبان همچنین از الگوهای سازگار با محیط مانند زبانهای پویا پشتیبانی می کند. برای مثال، این استنباط را تایپ کنید:
(y: = 0 عبارت صحیح از متغیر y نوع float است)
در زیر لیست انواع ثابت در زبان Go وجود دارد:
- عددی ثابت (ثابت بهره ، ثابت شناور ، ثابت پیچیده)
- لفظهای رشته ای
- بولی ثابت
عددی ثابت
ثابتهای عددی مقادیر با دقت بالا هستند. همانطور که زبان برنامه نویسی GO یک زبان با استاتیک تایپ شده است و اجازه نمی دهد عملیاتی را که می تواند انواع عددی را با هم مخلوط کند انجام گیرد. مثلا شما نمی توانید یک float64 به int یا حتی int32 به int اضافه کنید.
لفظهای رشته های
GO از دو نوع کلمات رشته ای یعنی “” “(سبک نقل قول دوتایی) و‘ ‘(نقل قول برگشت) پشتیبانی می کند. رشته ها را می توان با اپراتورهای + و + = ایجاد کرد. این رشته شامل کاراکترهایی است که شبیه به حرفهای شخصیت ها هستند: شخصیتهای ساده، توالیهای فرار، و شخصیتهای جهانی.
ثابت بولی
ثابتهای بولی شبیه ثابتهای رشته است. این قوانین همانند رشته ثابت اعمال می شود. تنها تفاوت این است که فقط دو ثابت درست و غلط وجود دارد. در کنار این مقاله می توانید با زبان برنامه نویسی پایتون نیز آشنا شوید.
شروع برنامه نویسی با زبان برنامه نویسی GO
IDE های مختلف آنلاین مانند The Play Playground ، repl.it و غیره وجود دارند که می توانند برای اجرای برنامه های Go بدون نصب استفاده شوند. برای نصب و استفاده از زبان برنامه نویسی GO در رایانه شخصی خود یا لپ تاپ به دو نرم افزار زیر نیاز داریم.
ویرایشگر متن: ویرایشگر متن بستری را در اختیار شما قرار می دهد تا کد منبع خود را بنویسید. در زیر لیست انواع ویراستاران متن وجود دارد:
- Windows notepad
- OS Edit command
- Brief
- Epsilon
- vm or vi
- Emacs
یافتن یک کامپایلر Go: توزیع به صورت دوتایی قابل نصب برای FreeBSD (نسخه 8 و بالاتر)، لینوکس، Mac OS X ) Snow Leopard and above) و سیستم عامل های ویندوز با 32 بیتی و 64 بیتی (amd64) است و معماری پردازنده x86.
توجه: پسوند فایل کد منبع go باید go باشد .
Writing first program in Go: package main import "fmt" func main() { // prints geeksforgeeks fmt.Println("Hello, geeksforgeeks") } Output: Hello, geeksforgeeks
توضیح برنامه Go
- خط 1: این شامل بسته اصلی برنامه است که دارای محتوای کلی برنامه است. این نکته اصلی برای اجرای برنامه است، بنابراین نوشتن آن اجباری است.
- خط 2: حاوی ورودی “fmt” است، این یک دستور پردازنده است که به کامپایلر می گوید پرونده های موجود در بسته را شامل شود.
- خط 3: عملکرد اصلی، این آغاز اجرای برنامه است.
- خط 4: fmt.Println () یک عملکرد کتابخانه ای استاندارد برای چاپ چیزی به عنوان یک خروجی بر روی صفحه است. در این بسته، fmt از روش چاپی منتقل شده است که برای نمایش خروجی استفاده می شود.
Comment: نظرات در زبان برنامه نویسی GO برای توضیح کد مورد استفاده قرار می گیرند و به روشی مشابه Java یا C یا C ++ استفاده می شوند. کامپایلرها ورودی های کامنت را نادیده گرفته و آنها را اجرا نمی کنند. نظرات می توانند از یک خط یا چند خط باشند.
Single Line Comment: Syntax: // single line comment Multi line Comment: Syntax: /* multiline comment */ Following is another example: package main import "fmt" func main() { fmt.Println("1 + 1 =", 1 + 1) } Output: 1 + 1 = 2
توضیح برنامه فوق
زبان برنامه نویسی GO که در بالا استفاده کردیم، همان خط بسته، همان خط ورودی، همان بیانیه عملکرد و همان تابع Println را که قبلاً در برنامه 1 GO استفاده کرده ایم استفاده می کند.
این بار به جای چاپ رشته “سلام ، geeksforgeeks” رشته را 1 + 1 = چاپ می کنیم و در نتیجه آن عبارت 1 + 1. چاپ می شود. این عبارت از سه قسمت تشکیل شده است: عبارات عددی 1 (که از نوع int است ) ، اپراتور + (که نشان دهنده addition) و علامت دیگر عدد 1 است.
چرا ” زبان برنامه نویسی GO “؟
از آنجا که برنامه نویسی GO تلاشی است برای سهولت برنامه نویسی به یک زبان تفسیر شده و پویا با کارایی بالا و دارای ایمنی یک زبان کاملاً مناسب و متناسب. این شرکت همچنین با پشتیبانی از محاسبات شبکه ای و چند هسته ای، مدرن کارامدی بسیار بالایی را در رقابت با سایر زبان های برنامه نویسی ارائه کرده است.
چه چیزی Go را نسبت به زبانهای دیگر متفاوت کرده است؟
- زبان برنامه نویسی GO تلاش کرده تا میزان تایپ برای کاهش استفاده در هر دو معنی مختلف کلمات را رعایت کند. در طول طراحی آن، توسعه دهندگان سعی در کاهش درهم و برهمی و پیچیدگی آن داشتند.
- هیچ اعلامیه رو به جلو و هیچ پرونده بلا استفاده وجود ندارد. همه چیز دقیقا یک بار اعلام شده است.
- ضعف زبان با اشتقاق نوع ساده با استفاده از: = اعلام و شروع ساختار کاهش می یابد.
- هیچ سلسله مراتبی از نوع وجود ندارد: نوع آنها فقط لازم نیست روابط خود را اعلام کنند.
محدودیت های سخت افزاری
طی یک دهه، پیکربندی سخت افزار و پردازش با سرعت بسیار کندی تغییر می کند. در سال 2004، P4 دارای سرعت ساعت 3.0 گیگاهرتز بود و اکنون در سال 2018 ، MacBook Pro دارای سرعت ساعتی تقریبی (2.3 گیگاهرتز برابر 2.66 گیگاهرتز) است.
برای سرعت بخشیدن به عملکرد، از پردازنده های بیشتری استفاده می کنیم، اما با استفاده از پردازنده بیشتر هزینه نیز افزایش می یابد. بد نیست کمی ماشین لرنینگ هم بیاموزیم.
و به همین دلیل ما از پردازنده های محدود استفاده می کنیم و با استفاده از پردازنده های محدود، یک مشکل کلی داریم. زبانی که نخ آن حافظه بیشتری را به خود می گیرد و عملکرد سیستم ما را کند می کند، از این رو برای غلبه بر چنین مشکلی Golang به گونه ای طراحی شده است که به جای استفاده از نخ، از Go routine استفاده می کند که شبیه به نخ است اما حافظه بسیار کمتری مصرف می کند.
مثلا پردازنده های عادی برای استفاده از نخ¬ها 1MB حافظه مصرف می کنند در حالی که Go routine 2KB حافظه را مصرف می کند، از این رو در همان زمان، زبان برنامه نویسی GO میتواند میلیون ها گو روتین را در همان میزان حافظه تحریک کند.
بنابراین نکته مورد بحث، Golan را به یک زبان قوی تبدیل می کند که همزمانی های زبانی مانند C ++ و Java را در اختیار دارد.
مزایا و معایب زبان Go
مزایا:
- انعطاف پذیر- مختصر، ساده و آسان برای خواندن است.
- همزمانی – این اجازه می دهد تا چندین فرآیند همزمان و به طور مؤثر اجرا شود.
- نتیجه سریع – زمان تدوین آن بسیار سریع است.
- کتابخانه – این زبان کتابخانه استاندارد غنی را ارائه می دهد.
- جمع آوری زباله – این یک ویژگی اصلی حرکتی است. کنترل زیادی بر میزان تخصیص حافظه دارد و تأخیر را در نسخه های قبلی جمع آوری زباله بطور چشمگیری کاهش داده است.
- برای رابط کاربری و نوع تعبیه اعتبار دارد.
معایب:
- این زبان پشتیبانی از ژنریک ندارد، حتی اگر بحث های زیادی در مورد آن وجود داشته باشد.
- بسته های توزیع شده با این زبان برنامه نویسی کاملاً مفید هستند اما Go به معنای متعارف شیء محور نیست.
- عدم وجود برخی از کتابخانه ها به ویژه کیت ابزار UI وجود دارد.
ویدیو پییشنهادی : آموزش پایتون جادی
برخی از برنامه های محبوب که با زبان Go توسعه یافته اند
داکر: مجموعه ای از ابزارها برای استقرار ابزار لینوکس
Openshift: یک بستر رایانش ابری به عنوان سرویس Red Hat.
Kubernetes: آینده روند استقرار یکپارچه خودکار
Dropbox: برخی از مؤلفه های مهم خود را از پایتون به زبان برنامه نویسی GO منتقل کرده است.
Netflix: برای دو بخش از معماری سرور آنها.
InfluxDB: یک پایگاه داده سریال منبع باز است که توسط InfluxData ساخته شده است.
Golang: این زبان به زبان Go نوشته شده است.
ویژگی های زبان برنامه نویسیGO
طراحی زبان: طراحان زبان هدف آگاهانه ای برای حفظ زبان ساده و آسان برای درک آن قرار داده اند. كليه جزئيات در تعداد كمي از صفحات است و برخي تصميمات جالب در طراحي از طريق پشتيباني شئ گرا در زبان گرفته مي شود.
به همين دليل، زبان به نوعی نظري است و يك روش اصطلاحي براي رسيدن به امور را توصيه مي كند. تركیب را بر سر وراثت ترجیح می دهد.
مدیریت بسته بندی
Go گردش کار جدید توسعه دهنده روز را با همکاری با پروژه های منبع آزاد ادغام می کند و شامل نحوه مدیریت بسته های خارجی می شود. پشتیبانی برای تهیه بسته های خارجی و انتشار بسته های شخصی خود در مجموعه ای از دستورات آسان به طور مستقیم در ابزار ارائه می شود.
کتابخانه استاندارد قدرتمند
زبان برنامه نویسی GO دارای کتابخانه استاندارد قدرتمندی است که به صورت بسته ها توزیع می شود.
تایپ استاتیک
Go زبان تایپی استاتیک است. بنابراین، در این کامپایلر نه تنها روی کامپایل کردن کد با موفقیت کار می کنید بلکه از تبدیل نوع و سازگاری آن اطمینان خواهید داشت. به دلیل این ویژگی Go از همه مشکلاتی که با زبان های پویا با آن روبرو هستیم جلوگیری میکند.
تست پشتیبانی
Go ویژگی های تست واحد را به خودی خود ارائه می دهد، یعنی مکانیزم ساده ای برای نوشتن تست واحد به صورت موازی با کد خود دارد، زیرا به این دلیل می توانید با تست های خود، از پوشش کامل کد خود مطلع شوید. این مورد به راحتی می تواند در تولید اسناد کد شما به عنوان نمونه مورد استفاده قرار گیرد.
Platform Independent
زبان برنامه نویسی GO درست مانند زبان جاوا است زیرا از استقلال پلتفرم پشتیبانی می کند. با توجه به طراحی مدولار و مدولار بودن آن، یعنی کد وارد شده به شکل دودویی تبدیل می شود که به همان اندازه کوچک است و از این رو، به هیچگونه وابستگی دیگری احتیاج ندارد. کد آن را می توانید در هر پلت فرم یا هر سرور و برنامه ای که روی آن کار می کنید کامپایل کنید.
تکامل Golang
Go (همچنین به آن Golang گفته می شود) یک زبان برنامه نویسی رویه ای و آماری است که دارای نحو مشابه زبان C است. این یک کتابخانه استاندارد غنی جمع آوری زباله و قابلیت تایپ پویا را در اختیار شما قرار می دهد.
همچنین دارای نقشه های دارای ارزش کلیدی، ویژگی های آرایه های طول است که انواع داخلی داخلی هستند. Go قدرتمندترین، کارآمدترین و مقیاس پذیرترین زبان برنامه نویسی برای ایجاد برنامه های وب، API وب، سرویس های میکرو و سایر خدمات توزیع شده است. این یکی از سریعترین رشد و پردرآمدترین زبان برنامه نویسی در آمریکا است.
در نوامبر 2009 به عنوان یک زبان برنامه نویسی منبع باز راه اندازی شد. هدف اصلی از طراحی Golang حل مشکلات سایر زبانها با حفظ ویژگیهای مفید آنها بود. در مارس 2012، نسخه 1.0 آن منتشر شد. آخرین نسخه 1.11.1 است که در سال 2018 منتشر شد.
چرا از Golang استفاده کنیم؟
هدف اصلی از طراحی زبان برنامه نویسی (Golang) GO از بین بردن مشکلات زبانهای موجود بود. بنابراین ما با از بین بردن مشکلاتی که با زبانهای پایتون، جاوا، C / C ++ مواجه هستیم، شروع کردیم:
پایتون
“آسان برای استفاده ، اما کند”: پایتون آسان است اما کند، چون یک زبان تفسیری است که باعث کندی کد می شود.
ویدیو پییشنهادی : آموزش رایگان برنامه نویسی سی شارپ
جاوا
“سیستم نوع پیچیده”: جاوا به دلیل ویژگیهای اضافی دارای سیستم نوع پیچیده ای است که باعث پیچیدگی و کندتر آن می شود. C / C ++ – “سیستم نوع پیچیده و همچنین زمان کامپایل آهسته”: C / C ++ زمانی طراحی شده است که کامپیوتر ها فضای زیادی در اختیار نداشتند، بنابراین برنامه نویس تصمیم گرفت که با استفاده از کمترین فضا کامپایلر را بهینه کند که منجر به کندی کامپایلر می شود.
همچنین، تمام این زبانها در زمانی طراحی شده اند که برنامه های چند رشته ای بسیار نادر بودند، بنابراین برای برنامه های بسیار مقیاس پذیر مانند زبان برنامه نویسی GO، همزمانی و موازی بودن کارایی چندانی ندارند.
متن پر از غلطهای ترجمهای، غلطهای املایی و غلطهای تخصصی بود.
برای مثال «ماشین لرنینگ» ربطی به نحوه عملکرد پردازنده نداره، فکر کنم منظورتون «معماری کامپیوتر» بوده.
وقتی میخواید چند زبان برنامه نویسی رو با هم مقایسه کنید باید با یه benchmark این کار انجام بشه، حرفهای کلی و صرفا کیفی کافی نیست.
لطفاْ قبل از گذاشتن متن داخل یه همچین سایتی که جنبه علمی و دانشگاهی داره، مطالب توسط یک متخصص بررسی، ویرایش و اصلاح شود.
سلام دوست عزیز.
مطالب همراه با متخصص این حوزه بررسی می شود.در صورت وجود غلط املایی خوشحال میشیم کلمه مربوط را برای ما ارسال کنید.در کل مقایسه زبان های برنامه نویسی نسبت به نیاز هر شخص برای کاری که از زبان می خواهد باید انجام بگیرد.ما برای سهولت در این امر توضیح مختصری را منتشر می کنیم.اگر در این حوزه تخصص دارید خوشحال میشم همکاری داشته باشیم.
موفق باشید
کلا زبان چرتی هستش ، من بک گراندم پایتون هستش ، کارایی که با پایتون به سادگی انجام میدادم ، توی گو باید کلی ارور رو چک میکردم و کلی عملیات casting انجام میدادم برای استفاده از ورودی تابع، گاهی وقتا حجم کد نویسیش واقعا زیاد میشه و واسه هر کاری کلی باید کد نوشت ، فریم ورک ها و کتابخونه هایی هم که داره به شدت ناقص هستن و خیلی هاشون چند ساله دیگه توسعه داده نمیشن، به عنوان مثال gin اوایل یه باگ مسخره ای داشت که نمیشد route با پارامتر تعریف کرد و پنیک میکرد 😂😂 ، کامپایل تایمش هم به نظرم هنوز زیاده ، اکسپشن هم نداره، ذباله جمع کنش هم مشکلاتی داره که باعث کندی اپلیکیشن میشه ، بازار کارش هم اونجوری که من توی لینکدین و چندتا سایت دیگه سرچ کردم ، به شدت کمه، تنها چیز دوست داشتنیش گوروتین ها و چنل ها هستن ، حد اقل توی بک اند حسابی رفیق نیمه راه بود برای من ، من بعد از دو سال دوباره برگشتم سمت پایتون عزیز .
سلام. فعلا به پایتون نمی رسه. اما از نظر من آینده خوبی داره.