انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go  (دفعات بازدید: 42012 بار)

0 کاربر و 5 مهمان درحال مشاهده موضوع.

آفلاین AmirrezaGhaderi

  • Jr. Member
  • *
  • ارسال: 90
  • جنسیت : پسر
    • حساب تویتر من
پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
« پاسخ #75 : 10 فروردین 1392، 01:39 ق‌ظ »
دیدم اون پیج رو قبلا... به نظر شما این قراره دقیقا چه چیزی رو ثابت کنه؟

آفلاین aliboy

  • High Sr. Member
  • *
  • ارسال: 558
  • جنسیت : پسر
پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
« پاسخ #76 : 10 فروردین 1392، 12:33 ب‌ظ »
 :)

توی اجتماع مربوط به زبان Go دیدمش.گفتم بد نباشه که به اشتراک گذاشته بشه.
هدف بررسی جنبه های مختلف زبان GO هست.
احساس میکنید تناسب نداره پاکش کنم.؟
و ما میطوانیم

آفلاین AmirrezaGhaderi

  • Jr. Member
  • *
  • ارسال: 90
  • جنسیت : پسر
    • حساب تویتر من
پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
« پاسخ #77 : 10 فروردین 1392، 01:24 ب‌ظ »
نه بگذارید باشه. چون بد نیست یه توضیحی بدم راجع به همچین بنچمارک هایی. (یا کلا بنچمارک هایی که روی
اینترنت میبینید، برای همه‌ی زبان ها)
هر از چند گاهی یکی پیدا میشه و بچمارکی رو انجام میده و نتیجه‌ی اون رو منتشر میکنه. اونهایی که با قضیه آشنا
نیستن، همچین چیزایی روی فکرشون خیلی تاثیر میذاره و فکر میکنن که این اعداد و ارقام خیلی واقعی هستن. اما اون هایی
که سرد و گرم این جور مطالب رو چشیدن، میدونن که این بنچمارک ها همونقدر ارزش دارن که عددی که کنار لنز گوشیتون به
عنوان مگاپیکسل درج شده ارزش داره!!

من در اینجا فقط همین یه مورد بنچمارک رو بررسی میکنم، اما چیزی که توضیح میدم برای تمام بنچمارک هایی که روی
اینترنت میبیند صادق هست.

این بنچمارک به زبان کاری نداره. همونطوری که میبینید بنچمارکی هست برای تست سرعت فریم ورک های زبان های مختلف.
یک لحظه Go رو بیخیال شید، برید پایین سمت Django و Sinatra . اینها فریم ورک هایی هستن که تعدادی از بهترین سایت
های دنیا باهاشون ساخته شدن. مطابق این بنچمارک به نظر میرسه فریم ورک های بدرد نخوری هستن درسته؟

حالا بیاید بالا سمت netty و vertx. این دو تا رو نمیشه گفت که فریم ورک هستن. ابزارهایی هستن برای اعمال «ناهمگام» (async)
توی جاوا. جاوا، زبانیه که سال هاست داره توسعه پیدا میکنه و میلیاردها دلار خرجش شده. خود netty و vertx که اینجا میبینید،
میشه گفت در دنیای جاوا چیزی بالاتر از اینها وجود نداره. با کیفیت ترین ابزارهای دنیای جاوا در این زمینه هستن. اگه Go که
توسط یه تیم چند نفره توسعه پیدا میکنه و هزینه‌هاش هم احتمالا به چند ده هزار دلار هم نمیرسه، و هنوز یک سال هم از انتشار نسخه‌ی
پایدارش نگذشته میاد و دقیقا بعد از اینها قرار میگیره، همینش برای من کافیه!

حالا بیاید تخصصی تر نگاه کنیم. اگه با عملیات ناهمگام آشنا باشید میدونید که این عملیات فقط در رابطه با I/O کاربرد دارد و
فقط هم تحت یک thread اجرا میشن. یعنی فرقی نداره که cpu شما چند تا هسته داشته باشه، این ابزارها به حالت معمول از یک
هسته استفاده میکنن. چون اصلا برای پردازش ساخته نشده، برای کار با I/O ساخته شده.

خوب برسیم به اینکه خود بنچمارک قضیه اش چیه. یکی پیدا شده که ماشاالله توی همه‌ي این زبان ها و فریو ورکها وارده! و برای همشون کد نوشته!
دستش درد نکنه! توی این بنچمارک برای هر درخواست که میرسه، یک رشته‌ی JSON برگشت داده میشه که اندازه‌ی نصف خط هم طول نداره. در
نهایت یعنی چند بایت از داده بدون اینکه هیچ پردازشی انجام بگیره برگشت داده میشه. دقت کنید، هیچ پردازشی صورت نمیگیره و فقط
عملیات I/O داره اتفاق میفته. اینکه چند بایت رو بفرستیم روی شبکه. همین. در نهایت هم این بنچمارک از ۲۵۶ تا کانکشن همزمان داره
استفاده میکنه (که به طور کل ۱۰۰۰۰۰ کانکشن در طول زمان بنچمارک صورت میگیره)

توی بنچمارک از فریم ورک web.go استفاده شده. خوب توی Go اصولا شما نیاز به هیچ فریم ورکی ندارید. حالا این قضیه به کنار. پس کل
قضیه اینه که برای هر درخواست، چند بایت رو بدون اینکه کار خاصی صورت بگیره برگشت بدیم. آیا همه‌ي برنامه های وب به همین سادگی هستن؟
توی برنامه های وب هیچ پردازشی انجام نمیشه؟ مثال میزنم، وقتی یک درخواست میاد شما دوست دارید رشته‌ی مربوط به user-agent
رو بگیری و این رشته رو تجزیه کنی و بفهمی که کاربر از چه مرورگر و سیستم عاملی میاد تا آخر ماه یه آمار از سایتت داشته باشی.
این یه نمونه‌ي ساده بود فقط. یه برنامه‌ی واقعی پره از همچین پردازش هایی. مدل کار این فریم ورک ها در مقابل Go بیشتر به جوک شبیه!
Go قدرت تمام هسته ها رو آزاد میکنه. وقتی پردازش اتفاق میفته، این فریم ورک ها دستشون به چی بنده؟ وقتی هسته های cpu تعدادشون 8
تا باشه چی؟ وقتی هسته ها تعدادشون 300 تا باشه چی؟ این ها عین خنگ ها از همون یه هسته‌ی اول استفاده میکنن در حالی که Go گریه‌ي cpu شمارو در میاره! حالا همه‌ی اینها بعد از اومدن نسخه‌ی 1.1 زبان Go خیلی جالب تر میشه! :)

بحث سرعت به کنار، خیلی دوست دارم این آقا میزان مصرف حافظه رو هم منتشر میکرد! حاظرم شرط ببندم که Go با چند مگابایت کارش رو انجام
داده و بقیه اون فریم ورک هایی که ازش بالاتر هستن در بهترین حالت به چند صد مگ (اگه چند گیگ نباشه!) حافظه نیاز داشتن. حافظه هم به کنار، چقدر کد نوشته شده؟ مدل کد نویسی راحت‌تر بوده یا سخت تر؟ سرعت کد نویسی چقدر بوده؟ همه‌ی این ها دست به دامن فریم ورک های جانبی
 شدن در حالی که Go همه‌ی این قابلیت هارو توی خودش داره و به هیچ پکیجی نیاز نداره!....

اصولا امثال این بنچمارک ها اینقدر مسخره هستن که نیاز به توصیح دادن ندارن. نه فقط این بنچمارک به خصوص، بلکه اکثر بنچمارک هایی
که میبینید (برای زبان ها و فریم ورک های مختلف) هم به همین شکل هستن. ارزش وقت طلف کردن ندارن. واقعا فکر میکنید مثلا کسایی که دارن
 Django کار میکنن نمی دونن که پایتون و Django از جاوا و netty کند تر هستن؟ شده فکر کنید که پس دلیلشون برای اینکارشون چی بوده؟
چرا نرفتن از همون جاوا استفاده کنن؟ شده فکر کنید اگه همه چیز سرعت هست، چرا همه نمیان از اسمبلی یا C استفاده نمیکنن؟ از همه‌ی اینها
هم سریع تره :)

همچین بنچمارک هایی فقط یک چیز رو ثابت میکنن. اینکه در این تست بخصوص، و با این کد، و در این محیط، فلان مورد از اون یکی مورد سریعتر
یا کندتر بوده. همین. دلیلی بر این نیست که همیشه قرار باشه همچین چیزی اتفاق بیفته. همونطور که گفتم، این بنچمارک ها فقط به اندازه
ی همون عددی که کنار لنز گوشی موبایل شما به عنوان مگاپیکسل نوشته شده ارزش دارن. زیاد وقت خودتونو با اینها طلف نکنید....

------------------------
آپدیت: به نظر میرسه من یک جا رو اشتباه کردم. توی netty میتونید thread pool‌ایجاد کنید بنابراین میشه از هسته های
مختلف cpu هم استفاده کرد. هرچند که فرقی در اصل قضیه نداره چون در هر صورت پردازش ها مناسب مدل ناهمگام نیستن و در
هر حال این مدل برای I/O با مقیاس بالا مناسب هست نه پردازش های سنگین. این قضیه رو فقط موقعی میتونید درک کنید که با
برنامه نویسی asynchronous آشنا باشید.
« آخرین ویرایش: 10 فروردین 1392، 02:50 ب‌ظ توسط AmirrezaGhaderi »

آفلاین aliboy

  • High Sr. Member
  • *
  • ارسال: 558
  • جنسیت : پسر
پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
« پاسخ #78 : 10 فروردین 1392، 09:21 ب‌ظ »

 =D>
اطلاعات خیلی کاملی بود.تشکر.

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

آفلاین AmirrezaGhaderi

  • Jr. Member
  • *
  • ارسال: 90
  • جنسیت : پسر
    • حساب تویتر من
پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
« پاسخ #79 : 10 فروردین 1392، 10:17 ب‌ظ »

اتفاقا به همین دلیل آوردمش که در این مدت کم به این درجه رسیده،فک کنم اولش شما با دیدن پست من دید منفی داشتید.

دقیقا، هنوز وقت داره برای رشد. این چیزی که الآن هست تازه قدم اولشه.
نه دیدم منفی نبود. اون بنچمارک ربطی به Go نداشت کلا، برای همه‌ی زبان ها بود (همه‌ي فریم ورک‌ها در حقیقت)
دیدم در حقیقت اینطوری بود: پیش خودم گفتم، «ای بابا، باز یه بنچمارک دیگه» :) آخه واقعا این مدل بنچمارک ها
(حالا برای هر زبانی که می خواد باشه) چیز خاصی رو ثابت نمیکنن. جنبه‌ی فان و ارضای کنجکاوی رو دارن بیشتر.

آفلاین محمدرضا ح.

  • High Hero Member
  • *
  • ارسال: 3117
  • جنسیت : پسر
  • Your Future is our Past!
پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
« پاسخ #80 : 11 فروردین 1392، 01:46 ب‌ظ »
یک بخش برای Go باز کردم و افتخار دارم اولین جامعه مجازی فارسی زبان هستیم که بخش ویژه Go رو داریم :

http://iran-bsd.ir/forumdisplay.php?fid=74
قاضی : تو السالوادور چه کار میکردی؟
چه‌گوارا : آفتاب میگرفتم
قاضی : پس چرا ساختمان دادگستری رو منفجر کردی؟
چه‌گوارا : جلوی آفتاب رو گرفته بود

آفلاین AmirrezaGhaderi

  • Jr. Member
  • *
  • ارسال: 90
  • جنسیت : پسر
    • حساب تویتر من
پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
« پاسخ #81 : 28 اردیبهشت 1392، 12:38 ب‌ظ »
این پست فقط یک آپدیت هست...

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

چند تا پست قبل تر در مورد یه بنچمارک سوال شده بود. منم در رابطه باهاش (و بنچمارک های دیگه ایی
که روی نت میبینید) توضیح دادم. اما الآن که نسخه‌ی ۵ این بنچمارک منتشر شده، Go به طور میانگین
سریعترین لقب گرفته و یک جورایی فکِ همه رو خوابونده روی میز :) دقت کنید که Go تنهایی اینکار رو کرده و
تمام کدها توی کتابخونه‌ی استانداردش هست و نیاز به هیچ چیز اضافه ایی نداره. (و هنوز هم در ورژن 1.1 هست و اول راهه!)
اما همونطور که گفتم، به همون حالتی که در نسخه‌ی اولیه این بنچمارک، Go بهترین نبود، حالا هم که بهترین شده
نباید خیلی جدی گرفته بشه این بنچمارک. حرف من هنوز سر جاش هست. این بنچمارک ها ارزش چندانی ندارن.

آفلاین سلمان م.

  • ناظر انجمن
  • *
  • ارسال: 4106
  • جنسیت : پسر
  • GNU Operating System - سیستم عامل گنو
پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
« پاسخ #82 : 01 اسفند 1392، 03:26 ب‌ظ »
اگر به وب‌گاه زبان گو نمی‌تونید دسترسی پیدا کنید، من یه آینه ایجاد کردم، به نشانی زیر.

http://download.tuxfamily.org/shimool/mirror/golang

اگر بسته‌ها رو نصب کنید، خود وب‌گاه golang.org هم به همراه نرم‌افزار روی سیستمتون نصب می‌شه و می‌تونید به صورت آفلاین ببینیدش.


آفلاین lord_theone

  • Newbie
  • *
  • ارسال: 21
پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
« پاسخ #84 : 29 فروردین 1393، 09:23 ب‌ظ »
ممنون و تشکر ویژه و خسته نباشید به شما و بابت معرفی این برنامه

من برنامه نویسی کار نکردم میتونم برای شروع از این برنامه استفاده کنم یا قبل احتیاج دارم به یک زبانی؟

آفلاین احسان☺ -

  • Hero Member
  • *
  • ارسال: 937
  • جنسیت : پسر
  • !no power geek
پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
« پاسخ #85 : 29 فروردین 1393، 09:49 ب‌ظ »
این خودش زبانه.

آفلاین salamis

  • Newbie
  • *
  • ارسال: 14
  • جنسیت : پسر
پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
« پاسخ #86 : 11 خرداد 1393، 11:52 ب‌ظ »

نسخه 1 مطالب خوب و آموزنده ای داشت.امیدواریم نسخه(های) بعدی هم منتشر بشه.

آفلاین ava

  • High Hero Member
  • *
  • ارسال: 1330
پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
« پاسخ #87 : 14 تیر 1393، 05:40 ق‌ظ »
بسیار عالی بود و خیلی از سوالاتی که داشتم یا بهتر بگم به همه سوالاتی که تا الان در مورد این زبان داشتم پاسخ داده شد
واقعا نوشته عالی بود از همه نظر
صدای پلیس : هاپ هاپ

آفلاین milad.fashi

  • Hero Member
  • *
  • ارسال: 845
  • جنسیت : پسر
  • میلاد فشی
پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
« پاسخ #88 : 06 امرداد 1393، 12:15 ب‌ظ »
بسیار عالی بود و خیلی از سوالاتی که داشتم یا بهتر بگم به همه سوالاتی که تا الان در مورد این زبان داشتم پاسخ داده شد
واقعا نوشته عالی بود از همه نظر
+1
ولی این گوگل ایرانی ها رو تحریم میکنه!!! از این نظر کار کردن با go برای ما دردسر سازه
کیفیت زندگی شما را دو چیز تعیین می کند: کتابهایی که می‌خوانید و انسانهایی که ملاقات می‌کنید. (مک لوهان)
To love GNU/Linux, you don't need to hate Microsoft

آفلاین alireza.crs

  • Sr. Member
  • *
  • ارسال: 491
  • جنسیت : پسر
پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
« پاسخ #89 : 07 امرداد 1393، 11:30 ق‌ظ »
از زبان ها و نرم افزار هایی که مارو تحریم میکنند متنفرم  ](*,)
انگار قحطی زبانه .اگه به زبان های مدرن علاقه داشته باشین به نظر من vala از بسیاری جهات به این برتری داره
ولی من خودم که هیچ وقت c,c++ و pascal رو ول نمیکنم ;D
چرا باید ول کنم؟تنها بهانه ای که داره اینه که شی گرایی در سی پلاس پلاس باعث پیچیدگی میشه.خوب شما به سبک زبان C در c++ شی گرایی کن !تفاوت سی پلاس پلاس (مخصوصا c++11 )با C به شی گرایی با کلاس ختم نمیشه که. زبان پاسکال هم این قابلیتو داره که هم به صورت شی گرا و هم غیر شی گرا بنویسین.
« آخرین ویرایش: 08 امرداد 1393، 12:57 ق‌ظ توسط alireza.crs »