زبان برنامه نویسی GO – قسمت اول

زبان برنامه نویسی GO - قسمت اولReviewed by حسین یوسف زاده on Nov 2Rating: 4.5زبان برنامه نویسی GO - قسمت اولدر سالهای اخیر زبان های سطح بالای زیادی به جهان معرفی شده اند. هر زبان برنامه نویسی دارای مزایا و معایب مختص به خود است و البته هر زبان برنامه نویسی ویژگی های خاص خودش را دارا می باشد. زبان برنامه نویسی GO نیز جز زبان های نوظهور در دنیای تکنولوژی است. طراحی های اولیه این زبان از اواخر 2007 آغاز شد و به تازگی نسخه 1.2 آن هم معرفی شده است. عده ی این زبان را بازگشت به دهه های قبل و یک زبان برنامه نویسی قدیمی از لحاظامکانات می دانند که در مقابل زبان های برنامه نویسی پیشرفته ای مانند #C شانسی برای بقا ندارد.

با سلام خدمت شما خوانندگان عزیز و گرامی.

در سالهای اخیر زبان های سطح بالای زیادی به جهان معرفی شده اند. هر زبان برنامه نویسی دارای مزایا و معایب مختص به خود است و البته هر زبان برنامه نویسی ویژگی های خاص خودش را دارا می باشد. زبان برنامه نویسی GO نیز جز زبان های نوظهور در دنیای تکنولوژی است. طراحی های اولیه این زبان از اواخر ۲۰۰۷ آغاز شد و به تازگی نسخه ۱٫۲ آن هم معرفی شده است. عده ی این زبان را بازگشت به دهه های قبل و یک زبان برنامه نویسی قدیمی از لحاظ امکانات و سینتکس می دانند که در مقابل زبان های برنامه نویسی پیشرفته ای مانند #C شانسی برای بقا ندارد. البته شاید در مرحله اول دیدن کدهای این زبان شما را هم یاد کدهای C و شاید بدتر از آن بیاندازد! اما نگران نباشید. زبان برنامه نویسی GO علی رغم شباهت به زبان های برنامه نویسی باستانی و نداشتن قابلیت های زبان های برنامه نویسی مانند کلاس ها به معنای رایج آن، آزانگرها، برنامه نویسی تابعی و …. هنوز قابلیت ها (و مهمتر از آن فلسفه) بسیار جالب و کاربردی داراست که می تواند کد زدن شما را متحول کند.

GO

زبان برنامه نویسی GO دارای قابلیت های مختلفی است. برخی از این قابلیت ها مانند اجرای همزمانی ها و یا جمع آوری زباله ها از حافظه به صورت داخلی در این زبان پیاده شده اند. به عنوان مثال با قابلیت جمع آوری زباله ها از حافظه شما مانند زبان های برنامه نویسی مشابه C و در موارد خاصی در ++C دیگر لازم نیست که فضای گرفته شده ای در حافظه را بعد از اتمام عملیات به صورت دستی از حافظه خارج کنید بلکه این عمل به صورت خودکار انجام می پذیرد. البته سرعت این عمل در GO بسیار بالاست و مانند برخی دیگر از زبان ها باعث ایجاد وقفه ها و سربار محاسباتی در یک عملیات نمی شود. قابلیت اجرای همزمانی در GO بر خلاف دیگر زبان ها یک قابلیت کلیدی است که برنامه نویسان می توانند از این قابلیت حتی در برنامه های کوچک خود هم استفاده کنند. GO همچنین یک زبان کامپایلی است بدین معنا که در مرحله اجرا کدهای نوشته شده توسط شما برای ماشین عمل کننده برنامه به عنوان مثال windows ترجمه می شود و این کدهای ترجمه شده عملیاتی می شود. با این توضیح متوجه می شوید که کامپایلر GO بر روی ماشین های مختلف ترجمه های متفاوتی ارائه می دهد.

برنامه نویسی در GO از نظر سطح دسترسی به سخت افزار مشابهت هایی با ++C دارد ولی از طرف دیگر کد نوشتن با GO ساده تر است. همچنین GO علی رغم برخی شباهت های جزئی کاملا با ++C متفاوت است.

برخلاف زبان هایی مانند پایتون که در آن ها متغیر قابلیت پذیرش انواع مختلف به صورت پویا دارا می باشد GO یک زبان safe-type است بدین معنا که متغیری که تعریف می شود تا پایان برنامه نمی تواند نوع دیگری را بپذیرد. به عنوان مثال اگر در ابتدای برنامه عدد ۲ را به متغیر a نسبت دهیم در ادامه انتصاب “good” به a باعث خطا می شود. GO همچنین به دلیل اجتناب از پیچیدگی های غیر ضروری از وراثت پشتیبانی نمی کند! وراثت پیچیدگی های یک برنامه را به صورت غیر ضروری افزایش می دهد! روش های برنامه نویسی جایگزین وراثت وجود دارد که می تواند همان مفهوم را در قالب بهتری ارائه کند.

گفتیم که زبان برنامه نویسی GO تفاوت های اشکاری با زبان های دیگر دارد. این هم یک تفاوت دیگر: در GO تنها یک نوع loop داریم! بله. برخلاف اکثر زبان ها که کلمات کلیدی مختلفی برای ایجاد چرخه ها دارند GO تنها دارای یک کلمه کلیدی برای این موضوع است.

بیایم نگاهی به یک برنامه GO داشته باشیم. فرمت این برنامه go است و برای اجرای برنامه خود به عنوان مثال hello.go در محیط لینوکس از دستور go run hello.go استفاده می کنید!

در این برنامه کوتاه ما دو خط خروجی را چاپ کردیم. 🙂 در قسمتی از این کد شما واژه import مشاهده می کنید. اگر برنامه نویس پایتون باشید با دیدن این واژه خوشحال می شوید! مشابه این واژه در ++C واژه کلیدی include است با این تفاوت که در GO شما به بسته های نرم افزاری خارج از محیط Local نیز دسترسی دارید و می توانید آن ها را نصب کنید. 🙂

import

fmt همان format است که یکی از کتابخانه های موجود در بسته ی نصبی GO هست. جالب است بدانید GO به صورت کامل از UTF8 به صورت توکار پشتیبانی می کند و شما لازم نیست برای کار با عبارت فارسی از بسته های دیگر استفاده کنید. کلمه کلیدی func مانند برخی زبان ها نماینده function یا همان تابع است. تابع main تابع اصلی برنامه ی ماست.

به یاری خدا در قسمت بعد با شما از برخی دستورات GO و ساخت یک محیط برای پروژه های GO خواهیم گفت.