08-09-2020, 02:02 PM
پردیس فناوری کیش _طرح مشاوره متخصصین صنعت ومدیریت _دپارتمان فناوری اطلاعات وارتباطات
مختصری از تاریخچهی زبان برنامه نویسی Go
ایدهی طراحی زبان برنامه نویسی Go اولین بار در سال ۲۰۰۷ توسط پیکه و تامپسون مطرح شد. این دو این ایده را با رابرت گریسمر که یکی از مهندسین گوگل بود در میان گذاشتند. این زبان یک زبان برنامه نويسي ترجمه شده بود که توسط راب بایک، رابرت گریسیمر و کن تامپسون در کمپانی گوگل توسعه داده شد. شرکتهای استارت آپ زیادی در اولین ماه از حضور این زبان به استفاده از آن روی آوردند، دلیل آن این بود که نامهای آشنایی چون تامپسون و پیکه در پشت طراحی این زبان به چشم میخورد. در سال ۲۰۱۲ نسخهی پایدار و اصلی آن به صورت نسخهی ۰/۱ منتشر شد و به این صورت کمپانیهای بزرگتر نیز از نسخهی پایدار آن استفاده کردند.
زبان برنامه نویسی گو چه زبانی است؟
همهی اینها به این معنی هستند که سیاست اقتصادی و کاری هیچ یک از شرکتها بر این زبان اثری نخواهند داشت. این باعث خواهد شد که توسعه و پیشرفت زبان سریعتر انجام گرفته و مراحل توسعه در مقابل دید همگان باشد و در خفا انجام نگیرد و همچنین برای زبان برنامه نویسی فریم ورک ها و کتابخانههای زیادی وجود داشته باشد.
راحتی مدیریت و نگهداری کدها در زبان برنامه نویسی Go
یکی از مزیتهای غیر مستقیم این زبان شتیبانی گوگل از این زبان است. تیم توسعه دهنده زبان برنامه نویسی Go این زبان را برای بهبود عملکرد و گسترش پذیری طراحی و تولید کردند.
مختصری از تاریخچهی زبان برنامه نویسی Go
ایدهی طراحی زبان برنامه نویسی Go اولین بار در سال ۲۰۰۷ توسط پیکه و تامپسون مطرح شد. این دو این ایده را با رابرت گریسمر که یکی از مهندسین گوگل بود در میان گذاشتند. این زبان یک زبان برنامه نويسي ترجمه شده بود که توسط راب بایک، رابرت گریسیمر و کن تامپسون در کمپانی گوگل توسعه داده شد. شرکتهای استارت آپ زیادی در اولین ماه از حضور این زبان به استفاده از آن روی آوردند، دلیل آن این بود که نامهای آشنایی چون تامپسون و پیکه در پشت طراحی این زبان به چشم میخورد. در سال ۲۰۱۲ نسخهی پایدار و اصلی آن به صورت نسخهی ۰/۱ منتشر شد و به این صورت کمپانیهای بزرگتر نیز از نسخهی پایدار آن استفاده کردند.
زبان برنامه نویسی گو چه زبانی است؟
Go همانطور که گفته شد یک زبان ترجمه شده است و دارای همروندی و سیستم زباله روبی و بازیافت حافظه است. این زبان از سال ۲۰۰۹ که معرفی شد تا به امروز در چندین برنامهی اجرایی در کمپانی گوگل مورد استفاده قرار گرفته است.
مترجم زبان برنامه نویسی Go به صورت کامل از ویندوز، لينوكس، MAC OS و سیستمهای BSD مانند Free BSD پشتیبانی میکند. معماری X86، X64، معماری arm و پاور که به صورت تخصصی برای شرکت IBM است را پشتیبانی میکند. دارای ویژگی نوشته شدن به صورت ایستا و قابلیت مقیاس پذیری به سیستمهایی همچون جاوا، C++ و دیگر سیستمهای بزرگ و همچنین عدم نیاز به محیط توسعهی یکپارچه و یکنواخت را داراست.
این زبان با هدف کاهش دادن زمان لازم برای ترجمه، سیستم زباله روبی پایا و بدون دیر کرد، ارتباط و پشتیبانی از همروندی، کارایی داشتن زبانهایی که مورد ترجمه قرار گرفتند و دارای سامانههای ایستا هستند، امنیت حافظه و نوع و ساده تر کردن برنامه نویسی زبان پویا طراحی شد.
طراحی زبان برنامه نویسی Go برای رفع مشکلات سایر زبانها
Go یک زبانی است که برای رفع مشکلات سایر زبانها و برای نیازهای حال حاضر برنامه نویسان طراحی و نوشته شد. تناسب بین سرعت، سادگی و در عین حال قدرتمند بودن زبان از جمله عواملی بود که برنامه نویسان سعی داشتند در این زبان پیاده کنند. راب پیکه میگوید هدف اولیه از ساخت این زبان این بود که بتواند جایگاه قابل قبولی برای C++ باشد. در همان روزهای اول معرفی زبان برنامه نویسی Go این زبان، به عنوان زبان پشتیبان وارد بازار شد. اما چون تاکید برنامه بر سادگی بود بسیاری از برنامه نویسان موفق مانند پايتون و روبی نیز برای توسعهی این زبان وارد تیم توسعه شدند.
ویژگی منحصر به فرد زبان برنامه نویسی Go
در اصل میتوان گفت که زبان برنامه نویسی Go سادگی و راحتی پایتون را با سرعت و قدرت زبان c ترکیب کرده و همین باعث شده تا بتواند برنامههای پیچیده تا برنامههای چند خطی را به راحتی پشتیبانی کند. شاید دلیل برای ایجاد چنین زبان توانمندی پاسخ به این سوال بود که چه کسی گفته است که زبان برنامه نویسی لزوما باید دشوار باشد؟
یک زبان با متن باز و آزاد است. درست است این برنامه به صورت کامل توسط کمپانی گوگل پشتیبانی میشود اما در کنترل و نظارت هیچ شرکتی نبوده و به صورت کامل آزاد است. در اثبات این ادعا پیکه گفته است ما از روی قصد و کاملا مفهومی هیچ لوگویی از گوگل را در سایت زبان برنامه نویسی Go قرار ندادیم.
همهی اینها به این معنی هستند که سیاست اقتصادی و کاری هیچ یک از شرکتها بر این زبان اثری نخواهند داشت. این باعث خواهد شد که توسعه و پیشرفت زبان سریعتر انجام گرفته و مراحل توسعه در مقابل دید همگان باشد و در خفا انجام نگیرد و همچنین برای زبان برنامه نویسی فریم ورک ها و کتابخانههای زیادی وجود داشته باشد.
راحتی مدیریت و نگهداری کدها در زبان برنامه نویسی Go
سعی بر این شده تا برای خواناتر بودن کدها، اکثر ویژگیهایی که در سایر زبانهای شی گرا وجود دارد کنار گذاشته شود. به این ترتیب این زبان برنامه نویسی از لحاظ نحوی یک زبان بسیار ساده و قابل فهم است. در زبان برنامه نویسی شما به جای استفاده از کلاس از بسته استفاده میکنید به این صورت که به جای کلاس ساختار داده شده است.
عدم پشتیبانی از ارث بری
عدم پشتیبانی زبان برنامه نویسی Go از ارث بری باعث شده که کدها به سهولت ویرایش و تغییر یابند. این به این معنا است که اگر یک کلاس مانند ABC از کلاس دیگری مثل XYZ ارث ببرد چنانچه تغییراتی در یکی از کلاسها صورت بگیرد برای کل کلاسهای مشتق گرفته احتمال ایجاد تغییرات و پیامدهای ناشی از آن همواره وجود خواهد داشت. برنامه نویسی به دلیل وجود نداشتن سازندههایی از قبیل Annotation ، Exception وGenerics بسیار ساده تر شده است.
اجرای مستقیم زبان برنامه نویسی Go روی سخت افزار
زبان C ++ و C و زبانهایی شبیه به اینها به دلیل کامپایل شدن با هم نسبت به زبانهای قدرتمندی و ملموسی مثل جاوا و پایتون در وضع بهتری قرار گرفته و جز زبانهای تفسیری به شمار نمیآیند. وقتی که یک برنامه با استفاده از زبان برنامه نویسی جاوا که مبتنی بر ماشين مجازي است نوشته میشود؛ نوشتههای قابل فهم برای انسان به کدهایی تبدیل میشوند که برای ماشین قابل درک باشند.
به عبارت دیگر ماشین جاوا کدها را تفسیر کرده و به فایل دودویی تبدیل خواهد کرد. ولی در C و C++ نوشتهها چرخهی کندتری خواهند داشت و در نتیجه عملکرد بهبود خواهد یافت. به عبارتی تبدیل به فایلهای دودویی دقیقتر خواهد بود. بسیاری از زبانها برای رفع این مشکل از تکنیکGarbage Collector استفاده میکنند. زبان Go نیز مانند زبان C ++ و C کامپایل شده و از همان تکنیک برای خارج سازی متغییرها استفاده میکند.
پشتیبانی گوگل از زبان برنامه نویسی Go
یکی از مزیتهای غیر مستقیم این زبان شتیبانی گوگل از این زبان است. تیم توسعه دهنده زبان برنامه نویسی Go این زبان را برای بهبود عملکرد و گسترش پذیری طراحی و تولید کردند.
source:https://cibtrc.com