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

کمک و پشتیبانی => برنامه‌سازی => نویسنده: AmirrezaGhaderi در 29 آبان 1391، 03:44 ب‌ظ

عنوان: ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 29 آبان 1391، 03:44 ب‌ظ
احتمالا اسم زبان برنامه نویسی Go رو شنیدید. چون یکی از Idol های من در زمینه‌ی کامپیوتر، آقای Ken Thompson در طراحی این زبان نقش داشته، من از همون اوایل بیرون اومدن این زبان به شدت بهش علاقه مند شدم.این نوشته رو آماده کردم برای دوستانی قصد آشنایی با این زبان رو دارن، و یا اینکه خودشون باهاش آشنایی دارن اما می‌خوان منبعی داشته باشن که به بقیه دوشتانشون معرفی کنن تا با این زبان بهتر آشنا بشن.

لینک زیر حاوی نوشتاری است (به زبان پارسی) که قصد آن معرفی زبان برنامه‌نویسی Go و مفاهیم‌ ایست که در آن به کار رفته. البته در این نوشتار مباحثی وجود دارد که خواندن آن برای برنامه‌نویسان دیگر زبان‌ها نیر توصیه می‌شود (مانند صحبت در باره مفاهیم Concurrency ). امیدوارم دوستان علاقه‌مندان از خواندن آن لذت ببرند.

https://www.dropbox.com/s/nq1ba5e628xi74a/golang-persian-intro-v1.1.zip

عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: H2010n در 02 آذر 1391، 05:52 ب‌ظ
احتمالا اسم زبان برنامه نویسی Go رو شنیدید. چون یکی از Idol های من در زمینه‌ی کامپیوتر، آقای Ken Thompson در طراحی این زبان نقش داشته، من از همون اوایل بیرون اومدن این زبان به شدت بهش علاقه مند شدم.این نوشته رو آماده کردم برای دوستانی قصد آشنایی با این زبان رو دارن، و یا اینکه خودشون باهاش آشنایی دارن اما می‌خوان منبعی داشته باشن که به بقیه دوشتانشون معرفی کنن تا با این زبان بهتر آشنا بشن.

لینک زیر حاوی نوشتاری است (به زبان پارسی) که قصد آن معرفی زبان برنامه‌نویسی Go و مفاهیم‌ ایست که در آن به کار رفته. البته در این نوشتار مباحثی وجود دارد که خواندن آن برای برنامه‌نویسان دیگر زبان‌ها نیر توصیه می‌شود (مانند صحبت در باره مفاهیم Concurrency ). امیدوارم دوستان علاقه‌مندان از خواندن آن لذت ببرند.

https://www.dropbox.com/s/nq1ba5e628xi74a/golang-persian-intro-v1.1.zip
مرسی!
من واقعا جذب این زبان شدم :)
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: majidkamali1370 در 02 آذر 1391، 07:04 ب‌ظ
واقعا کتابخونه قوی ای داره.
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 02 آذر 1391، 08:09 ب‌ظ
مرسی!
من واقعا جذب این زبان شدم :)

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

واقعا کتابخونه قوی ای داره.

من هم هیچ زبانی رو ندیدم که چنین کتابخونه ایی رو به صورت استاندارد داشته باشه. انگار کلا به هیچ پکیج جانبی نیازی نداره  :D
تمام چیزهایی که برای کار خودشون توی گوگل نیاز داشتن رو سعی کردن توی کتابخونه ی استاندارد قرار بدن که وقتشون هدر نره.
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: hamed.asl در 02 آذر 1391، 09:27 ب‌ظ
من برنامه نویس نیستم!

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

اول بابت نوع نگارش و صفحه بندی و رنگ بندی و شوخی هایی که کرده بودید (اینا خیلی مهمه برام!) و بعد به خاطر معرفی زبان ازتون ممنونم  ;)







عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: دانیال بهزادی در 03 آذر 1391، 01:24 ق‌ظ
خیلی خوبه. فقط در صفحه‌ی ۱۹ تلفّظ اسم Dijkstra رو نوشتی دایکسترا (احتمالاً با تصوّر انگلیسی)، ولی در هلندی این اسم دِکستْرا خونده می‌شه و خب از لحاظ شأن و منزلت حتا جا داشت بالای اسم استالمن بیاد اسمش ;)
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 03 آذر 1391، 02:16 ق‌ظ
من برنامه نویس نیستم!
اما گرافیک فوق العاده ی فایل متنی تون باعث شد قسمت زیادیش رو مطالعه کنم و بقیهاش رو هم به زودی میخونم.و خیلی علاقه مند شدم به این زبان...
اول بابت نوع نگارش و صفحه بندی و رنگ بندی و شوخی هایی که کرده بودید (اینا خیلی مهمه برام!) و بعد به خاطر معرفی زبان ازتون ممنونم  ;)

خوشحالم که یکی به این قضیه دقت کرد  :D من طراح نیستم و سلیقه ی خیلی خوبی ندارم، برای همین خیلی برام سخت بود که طراحی
نوشته رو خوب در بیارم. راستش برام خیلی مهم بود این قضیه. چون فکرم این بود که ممکنه یکی این نوشته رو برای معرفی به رییس شرکتش نشون بده، برای همین باید جوری می بود که خواننده متوجه کلاس کار نوشته بشه. چون این چیزها واقعا توی فکر خواننده تاثیر داره.

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


خیلی خوبه. فقط در صفحه‌ی ۱۹ تلفّظ اسم Dijkstra رو نوشتی دایکسترا (احتمالاً با تصوّر انگلیسی)، ولی در هلندی این اسم دِکستْرا خونده می‌شه و خب از لحاظ شأن و منزلت حتا جا داشت بالای اسم استالمن بیاد اسمش ;)

من سر این قضیه نتونستم به خودم اعتماد کنم، برای همین رفتم توی یوتیوب تا ببینم خارجی ها موقع حرف زدن چجوری این اسم رو تلفظ
میکنن. دو تا ویدیو مربوط به کلاس درس توی MIT دیدم که اسم رو به همون صورتی که توی نوشته هست تلفظ می کردن. فکر کنم کلا انگلیسی
ها به همین شکل تلفظ اش میکنن. در مورد قرارگیری جایگاه اسم توی نوشته، خواستم ترتیب اسم ها جوری باشه که معروف تر ها (از نظر عموم برنامه نویسان **ایرانی** ) در اول باشن. خوب دایکسترا رو هر کسی آشنایی نداره باهاش (متاسفانه)، وگرنه حقش بود اسمش در اول بیاد.
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: سلمان م. در 03 آذر 1391، 03:06 ق‌ظ
خیلی خوبه. فقط در صفحه‌ی ۱۹ تلفّظ اسم Dijkstra رو نوشتی دایکسترا (احتمالاً با تصوّر انگلیسی)، ولی در هلندی این اسم دِکستْرا خونده می‌شه و خب از لحاظ شأن و منزلت حتا جا داشت بالای اسم استالمن بیاد اسمش ;)
عزیزم ببخشیدا ولی جفتتون اشتباه می‌گید :)
من هلندی بلدم.

در هلندی استاندارد تلفظ اون:‌ دِیکستْرا هست
و در هلندی با لهجه‌ی مردم هلند (که ترجیح بر این تلفظ هست): دَیکستْرا تلفظ می‌شه.


پانویس: قسمتی از مردم بلژیک هم هلندی صحبت می‌کنند (با لهجه‌ی فِلامس (یا به انگلیسی: فِلِمیش). و به کشور خودشون می‌گن بِلخیه :)
پانویس ۲: http://en.wikipedia.org/wiki/IJ_%28digraph%29
پانویس ۳: اینم تلفظ اسمش توسط یه هلندی تو ویکی‌پدیا: ‌http://upload.wikimedia.org/wikipedia/commons/8/85/Dijkstra.ogg (http://upload.wikimedia.org/wikipedia/commons/8/85/Dijkstra.ogg)
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 03 آذر 1391، 03:14 ق‌ظ
درسته، من هم که گفتم تو کامنت قبلی، من بر حسب تلفظ انگلیسی اسم رو نوشتم.
باز خیلی بهتر از تلفظ «دایجسترا» هست که توی کتاب ها و دانشگاه های ایران تلفظ میشه!
هرچند که خیلی هم مهم نیست از نظر من، یه آدمی مثل اون رو به هر شیوه ای تلفظ
کنید چیزی از ارزش هاش کم نمیشه  :)
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: hamed.asl در 03 آذر 1391، 10:23 ق‌ظ
نقل‌قول
خوشحالم که یکی به این قضیه دقت کرد   من طراح نیستم و سلیقه ی خیلی خوبی ندارم، برای همین خیلی برام سخت بود که طراحی
نوشته رو خوب در بیارم. راستش برام خیلی مهم بود این قضیه. چون فکرم این بود که ممکنه یکی این نوشته رو برای معرفی به رییس شرکتش نشون بده، برای همین باید جوری می بود که خواننده متوجه کلاس کار نوشته بشه. چون این چیزها واقعا توی فکر خواننده تاثیر داره.

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

خوب واقعا هم مهمه...دید اول همیشه مهمه...الان من با یه دید خیلی خوب با Go اشنا شدم و این همیشه تو پیش زمینه ی ذهنم میمونه...

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

من به شخصه فقط openSuse و CrunchBang رو قبول دارم توی زمینه ی گرافیک و زیبایی از همون ابتدای کار.نمیگم عالیه! اما از بقیه بیشتر فکر کردن روی این قضیه.

ببخشید بی ربط بود این چند خط...به هر حال من به شخصه از کارتون لذت بردم..کار اینجوری خیلی کم دیدم تا حالا  ;)
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: سید مسعود امامیان در 03 آذر 1391، 10:34 ق‌ظ
بابت زحمتی که کشیدید ممنونم در اسرع وقت مطالعه می کنم .
+1
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 03 آذر 1391، 04:35 ب‌ظ
اگه سوال یا پیشنهادی هم داشتید که به بهتر شدن نوشته کمک میکرد می تونید مطرح کنید.
مثلا من خودم ۳-۴ تا غلط املایی گرفتم از نوشته که توی نسخه‌ی بعدی اصلاح میشه.
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: حامد سپهر در 03 آذر 1391، 07:08 ب‌ظ
جالب بود. چند صفحه ایش رو که خوندم از این زبون خوشم اومد! :)

این زبون محیط ویژوال هم داره یا نه؟
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: دانیال بهزادی در 03 آذر 1391، 07:24 ب‌ظ
فقط اگه ممکنه توی یه تاپیک جدید مرجع‌ها اون مخالفت‌ها با شی‌گرایی رو هم بنویس، چون برای چند نفر تعریف مردم و مشتاقانه منتظر منابعش هستن ;)
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: H2010n در 03 آذر 1391، 10:04 ب‌ظ
اگه سوال یا پیشنهادی هم داشتید که به بهتر شدن نوشته کمک میکرد می تونید مطرح کنید.
مثلا من خودم ۳-۴ تا غلط املایی گرفتم از نوشته که توی نسخه‌ی بعدی اصلاح میشه.
راستی GFDL ه؟
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 03 آذر 1391، 10:07 ب‌ظ
فقط اگه ممکنه توی یه تاپیک جدید مرجع‌ها اون مخالفت‌ها با شی‌گرایی رو هم بنویس، چون برای چند نفر تعریف مردم و مشتاقانه منتظر منابعش هستن ;)


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

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

http://en.wikipedia.org/wiki/Object-oriented_programming#Criticism

اگه کتاب CODER AT WORK رو خونده باشی، متوجه میشی که کن تامپسون و ریچی هم نظر مثبتی راجع به شی گرایی ندارن که
هیچ، اصولا برنامه های شی گرایی نمی نویسن! یعنی اصولا به جز C با چیز دیگه ایی کار نمی کنن. راب پایک هم که توی خیلی از مقاله ها و مصاحبه هاش نظرش رو در این باره گفته، و خود GO نمونه‌ي بارزی هست برای اینکه متوجه بشی نظرش در این باره چیه. یا مثلا جو آٰرمسترانگ خالق ارلنگ مقاله ی معروفی داره در این باره که خوندنش رو **حتما** توصیه میکنم:

http://harmful.cat-v.org/software/OO_programming/why_oo_sucks

اگه شخص خاصی مد نظرت باشه می تونم برات دوباره در بیارم دقیقا، اما الآن این ها چیزایی بود که در خاطرم هست.
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 03 آذر 1391، 10:10 ب‌ظ
راستی GFDL ه؟

زیاد سخت نگیر، همون خط اول از صفحه‌ي دوم کافیه. راحت باش  :)
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: دانیال بهزادی در 04 آذر 1391، 05:13 ب‌ظ
آقا خیلی خوب بود. امروز نشستم کامل خوندمش. خود گوگل و تامپسون و این‌ها نتونستن این‌جوری که من رو به GO علاقه‌مند کنن.
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: محمدرضا ح. در 04 آذر 1391، 08:39 ب‌ظ
من همین الان خوندنش رو تموم کردم :) واقعا علاقمند شدم به این زبان :) .

ممنون میشم اگر خودتون در انجمن ما هم معرفیش کنید ---> http://iran-bsd.ir

{البته درسته اشاره شده به اینکه در تبلیغ و ترویج این E-Book آزادیم اما از زبان خودتون باشه هم بهتره و هم اگر کاربران سوالی داشتند از خودتون بپرسند}

همچنین چند جا e اضافه آخر Plan9 اضافه کرده بودید :) .
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 04 آذر 1391، 10:53 ب‌ظ
آقا خیلی خوب بود. امروز نشستم کامل خوندمش. خود گوگل و تامپسون و این‌ها نتونستن این‌جوری که من رو به GO علاقه‌مند کنن.

خوشحالم که می شنوم. این تازه اول راهش هست، قول میدم که تا ۳-۴ سال دیگه خیلی خیلی در زمینه ی وب معروف میشه. کسایی
سود می برن که از الآن سرمایه گذاری کرده باشن  ;)
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 04 آذر 1391، 11:09 ب‌ظ
جالب بود. چند صفحه ایش رو که خوندم از این زبون خوشم اومد! :)

این زبون محیط ویژوال هم داره یا نه؟

محیط ویژوال جرو قابلیت های یک زبان محسوب نمیشه. کاملا یک چیز جداگانه است و ربطی به خود زبان نداره.
اگه منظور از محیط ویژوال محیط های توسعه مثل IDE ها هستن که توی نوشته در موردش صحبت شده (ص ۵۲)
اما اگه منظورتون چیزهایی مثل gtk یا qt هست، باید بگم  که کلا GO برنامه نویسی سیستم و سرویس های شبکه
 رو هدف گرفته، مخصوصا سرویس های back-end در ابعاد وسیع و با نیاز بالا به Concurrency، به همین خاطر
اجتماع کاربرانش خیلی اشتیاقی به این موارد ندارند. اما تا جایی که من می دونم رابط gtk در وضعیت
خوبی قرار داره. در مورد qt مطمئن نیستم.

سال ۲۰۱۲ هم داره تموم میشه، دیگه برنامه نویسی دسکتاپ در حال کمرنگ شدنه. از طرفی gtk و qt تنها راه حل نیستن!
شما می تونید GUI های خودتون رو با تکنولوژي های «وب» طراحی کنید به صورتی که در دسکتاپ اجرا بشن. برای نمونه
Light Table که یه IDE جدید هست رو در گوگل جستجو کنید. Go تو این مدل برنامه سازی بسیار خوب عمل میکنه.
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 04 آذر 1391، 11:18 ب‌ظ
من همین الان خوندنش رو تموم کردم :) واقعا علاقمند شدم به این زبان :) .
ممنون میشم اگر خودتون در انجمن ما هم معرفیش کنید ---> http://iran-bsd.ir
{البته درسته اشاره شده به اینکه در تبلیغ و ترویج این E-Book آزادیم اما از زبان خودتون باشه هم بهتره و هم اگر کاربران سوالی داشتند از خودتون بپرسند}
همچنین چند جا e اضافه آخر Plan9 اضافه کرده بودید :) .

همونطور که اشاره کردید همه این اختیار رو دارن که این نوشته رو در هر سایتی معرفی کنن.
تازه اگه خودتون این کار رو بکنید بیشتر باعث خوشحالی من میشه تا اینکه خودم بخوام نوشته  خودم رو
معرفی کنم! البته بنا به علاقه ایی که به BSD ها دارم و برای بیشتر آشنا شدن با اجتماع کاربرانش
حتما در انجمن تون عضو میشم.

در مورد غلط های املایی، بله اشتباهاتی در قسمت های مختلف نوشته وجود داره. سعی میکنم تو نسخه های بعدی برطرف
کنم اون ها رو.
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: محمد باقر اهتمام در 11 آذر 1391، 11:45 ب‌ظ
سلام . آقا عالی بود عالی . من نمی دونم بد جوری آتیشش افتاده بجونم. دارم یک وقت واسه یادگیریش واسه خودم میزارم . واقعا ممنون .
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 12 آذر 1391، 01:10 ق‌ظ
سلام . آقا عالی بود عالی . من نمی دونم بد جوری آتیشش افتاده بجونم. دارم یک وقت واسه یادگیریش واسه خودم میزارم . واقعا ممنون .

مرسی،
اگه از قبل برنامه نویسی بلد باشی (مخصوصا زبان C رو ) یادگیری Go هم خیلی آسون میشه، هم اینکه زمان زیادی لازم نداره.
اصل کار که نیاز به زمان و تجربه داره کنار اومدن با مدل برنامه نویسی در Go‌ هست و همچنین آشنایی با مفاهیم Concurrency....
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: محمدرضا ح. در 12 آذر 1391، 12:59 ب‌ظ
امروز چند تا از مثالهای وبگاهش رو روی آرچ لینوکس و ویندوز تست کردم. به نظر میرسه با کمی تجربه کسب کردن میشه لذت برنامه نویسی رو با Go دو چندان کرد :)
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: محمدرضا ح. در 30 آذر 1391، 07:08 ب‌ظ
این کتاب رو امروز یافتم. واقعا عالیه ...

http://haghiri75.com/Go.pdf
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 30 آذر 1391، 08:45 ب‌ظ
این کتاب رو امروز یافتم. واقعا عالیه ...

http://haghiri75.com/Go.pdf

برگه هاش سفید نشون داده میشه. نمی دونم برای همه اینطوریه یا فقط من مشکل دارم؟
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: Geek در 30 آذر 1391، 09:08 ب‌ظ
سلام
از لینکی گه گذاشتید نمیتونم فایلو دان کنم اگه امکانش هست در یه سرور دیگه آپ کنید،ترجیحا پرشین گیگ... .
با تعاریفی که شما و دوستان کردید خیلی مشتاق به خوندن کتاب شدم...

با تشکر
عارف
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: محمدرضا ح. در 30 آذر 1391، 09:11 ب‌ظ
این کتاب رو امروز یافتم. واقعا عالیه ...

http://haghiri75.com/Go.pdf

برگه هاش سفید نشون داده میشه. نمی دونم برای همه اینطوریه یا فقط من مشکل دارم؟

شرمنده فایل بد آپ شده بود. الان اصلاح کردم :

http://haghiri75.com/Go.pdf

اگر مشکل داشت بگید روی هاست دیگری آپ کنم ...

(البته این یکی توسط خودم تست شد و کاملا صحیح بود).
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 30 آذر 1391، 10:23 ب‌ظ
شرمنده فایل بد آپ شده بود. الان اصلاح کردم :

http://haghiri75.com/Go.pdf

اگر مشکل داشت بگید روی هاست دیگری آپ کنم ...

(البته این یکی توسط خودم تست شد و کاملا صحیح بود).

کامل مطالعه نکردم ولی توصیه میکنم که از روی این فایل چیزی نخونید!! تاریخش قدیمی هست
و مال زمانی هست که نسخه ی 1.0‌ زبان منتشر نشده بود. چون قبل از اون زبان هر از گاهی تغییر میکرد
از نظر ساختاری. به نظر من همون سایت زبان بهترین منبع هست. کلا هر جا هر مطلبی راجع به Go‌می خونید
حتی اگه یک پست ساده در یک وبلاگ بود، حتما دقت کنید که مال نیمه ی دوم سال ۲۰۱۲ باشه.
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: ! در 09 دی 1391، 12:33 ق‌ظ
من الان پاشدم اومدم پشت سیستم که دانلود کنمش و بخونم.ممنون بابت کار قشنگت :D
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 09 دی 1391، 12:54 ق‌ظ
من الان پاشدم اومدم پشت سیستم که دانلود کنمش و بخونم.ممنون بابت کار قشنگت :D

امیدوارم از خوندنش لذت ببری.

به طرز بسیار واضحی معلومه که Go تا 4-5 سال آینده به یکی از اصلی ترین زبان های وب تبدیل میشه.
همین الآنش هم سیستم Backend سایت بزرگی مثل Youtube در Go‌ نوشته شده.

یه زبان کامپایلری native ، سینتکس تمیز، سیستمی و تقریبا سطح پایین، استاتیک، بسیار ساده، سریع، نیاز کم به حافظه، بسیار قدرتمند در برنامه نویسی Concurrent و.....

تیم توسعه اش هم که خالقین C و Unix و UTF-8 و memcached و livejurnal و OpenID و plan9 و ... هستن.

وقت ای که برای یاد گرفتنش می ذارید صد در صد ارزش داره.

-------------
پ.ن: زبان اول من که علاقه ی شدیدی هم بهش دارم Go‌ نیست!  8) اما Go رو واقعا دوست دارم، مخصوصا به خاطر وجود Thompson 
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: ! در 09 دی 1391، 01:31 ق‌ظ
تموم شد. ;Dبا تشکر از دوست خوبم آقا امیر رضا.خیلی جالب بود و حض کردم.درون مایه؛نگارش؛ گرافیک عالی بودن.به نظرم باید سرکی تو این زبان بکشم به زودی. 8)
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: سید مسعود امامیان در 09 دی 1391، 01:33 ق‌ظ
نقل‌قول
پ.ن: زبان اول من که علاقه ی شدیدی هم بهش دارم Go‌ نیست!

کنجکاو شدم بدونم زبان اول شما چی ؟
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 09 دی 1391، 01:50 ق‌ظ
تموم شد. ;Dبا تشکر از دوست خوبم آقا امیر رضا.خیلی جالب بود و حض کردم.درون مایه؛نگارش؛ گرافیک عالی بودن.به نظرم باید سرکی تو این زبان بکشم به زودی. 8)

خوشحالم که نوشته براتون مفید واقع شد.

کنجکاو شدم بدونم زبان اول شما چی ؟

Lisp ... البته توی اون جمله منظورم از «زبان اول»، از نظر محبوبیت قلبی بود...
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: کیان در 09 دی 1391، 10:23 ب‌ظ
http://www.amazon.com/Programming-Go-Creating-Applications-Developers/dp/0321774639 (http://www.amazon.com/Programming-Go-Creating-Applications-Developers/dp/0321774639)
http://comments.gmane.org/gmane.comp.lang.go.general/54502

تور زبان go (http://tour.golang.org)
ExpressivenessOfGo.pdf (http://go.googlecode.com/hg-history/release-branch.r60/doc/ExpressivenessOfGo.pdf?r=release-branch.r60)
GoCourseDay1.pdf (http://go.googlecode.com/hg-history/release-branch.r60/doc/GoCourseDay1.pdf?r=release-branch.r60) 2011
GoCourseDay2.pdf (http://go.googlecode.com/hg-history/release-branch.r60/doc/GoCourseDay2.pdf?r=release-branch.r60) 2011
GoCourseDay3.pdf (http://go.googlecode.com/hg-history/release-branch.r60/doc/GoCourseDay3.pdf?r=release-branch.r60) 2011
The Go frontend for GCC 2010 (https://go.googlecode.com/hg/doc/talks/gofrontend-gcc-summit-2010.pdf)

Writing Web Apps (http://talks.golang.org/2011/Writing_Web_Apps_in_Go.pdf) 2011


نام گذاری به Go بخاطر اسم Google انجام شده؟
عنوان: پاسخ : کتاب زبان برنامه نویسی Go چاپ 2012
ارسال شده توسط: AmirrezaGhaderi در 10 دی 1391، 12:06 ق‌ظ
http://www.amazon.com/Programming-Go-Creating-Applications-Developers/dp/0321774639 (http://www.amazon.com/Programming-Go-Creating-Applications-Developers/dp/0321774639)
http://comments.gmane.org/gmane.comp.lang.go.general/54502
اگه کسی گیرش آورد به منم لینک بده. (اینجا ایرانه و دسترسی نداریم. گیر ندید لطفا)

فکر نمیکنم نیازی به این کتاب داشته باشید. من مقداری از این کتاب رو خوندم،
مستندات خود سایت خیلی کامل هستش. حالا باز تصمیم با خودتونه.

تور زبان go (http://tour.golang.org)
ExpressivenessOfGo.pdf (http://go.googlecode.com/hg-history/release-branch.r60/doc/ExpressivenessOfGo.pdf?r=release-branch.r60)
GoCourseDay1.pdf (http://go.googlecode.com/hg-history/release-branch.r60/doc/GoCourseDay1.pdf?r=release-branch.r60) 2011
GoCourseDay2.pdf (http://go.googlecode.com/hg-history/release-branch.r60/doc/GoCourseDay2.pdf?r=release-branch.r60) 2011
GoCourseDay3.pdf (http://go.googlecode.com/hg-history/release-branch.r60/doc/GoCourseDay3.pdf?r=release-branch.r60) 2011
The Go frontend for GCC 2010 (https://go.googlecode.com/hg/doc/talks/gofrontend-gcc-summit-2010.pdf)

Writing Web Apps (http://talks.golang.org/2011/Writing_Web_Apps_in_Go.pdf) 2011

لطفا دقت کنید هر منبعی که برای زبان Go می خواید مطالعه کنید حتما برای نیمه ی دوم
سال ۲۰۱۲ باشه (حتی اگه یه پست ساده در یک وبلاگ بود) تقریبا تمام این منابعی که معرفی
کردید برای مطالعه مناسب نیست. زبان بعد از نسخه ی 1.0 پایدار شد، تا قبل از اون هر  چند ماه
از نظر ساختاری مقداری تغییر میکرد.

نام گذاری به Go بخاطر اسم Google انجام شده؟

ابدا خیر... زبان Go جزو محصولات گوگل نیست، اما گوگل ازش پشتیبانی مالی میکنه، مثل ده ها پروژه ی
متن باز دیگه ایی که ازشون پشتیبانی میکنه. این اسم به طور ناخداگاه به ذهن Rob Pike رسیده. دوست داشته
اسمی انتخاب کنه که بشه به عنوان پسوند سورس کدها هم ازش استفاده کرد (file.go)
عنوان: کتاب زبان برنامه نویسی Go چاپ 2012
ارسال شده توسط: کیان در 10 دی 1391، 12:34 ق‌ظ
ممنون از توضیحات.
کتاب رو پرینت میکنی میخونی

لینک دانلود کتاب Programming in Go چاپ 2012 - پی دی اف: http://libgen.info/view.php?id=855569
عنوان: پاسخ : کتاب زبان برنامه نویسی Go چاپ 2012
ارسال شده توسط: AmirrezaGhaderi در 10 دی 1391، 01:35 ق‌ظ
لینک دانلود پی دی اف: http://li---.info/view.php?id=855569
ای پاب: http://li---.info/view.php?id=855570
(با کپی رایت و از این چیا کلاس نذارین لطفا. اینجا ایرانه و دسترسی برای خریدنداریم. چکار کنیم؟)

درک میکنم که شما دوست دارید کتاب رو داشته باشید تا بتونید پرینت بگیرید، اما خواهش می کنم
متوجه باشید که نوشته ی شما می تونه باعث بسته شدن این پست بشه. این جزو قوانینی هست که همه ی ما
موقع ثبت نام در این فروم قول دادیم که رعایت کنیم. پیدا کردن اون کتاب در گوگل کاری نداره، اگه میشه لطف
کنید و اون لینک ها رو بردارید که این پست بسته نشه تا بتونیم دوستان بیشتری رو در رابطه با این زبان
رهنمایی کنیم.
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: کیان در 10 دی 1391، 01:41 ق‌ظ
IDE های زبان گو: http://go-lang.cat-v.org/text-editors/ (http://go-lang.cat-v.org/text-editors/)
SublimeText 2 (http://go-lang.cat-v.org/text-editors/sublimetext2/) Goclipse (http://code.google.com/p/goclipse/)  BBedit (http://go-lang.cat-v.org/text-editors/bbedit)  Eclipse (http://go-lang.cat-v.org/text-editors/eclipse/)  IntelliJ IDEA (http://go-lang.cat-v.org/text-editors/intellij-idea)  Gedit (http://go-lang.cat-v.org/text-editors/gedit/)  Mcedit (http://go-lang.cat-v.org/text-editors/mcedit/)  Textmate (http://go-lang.cat-v.org/text-editors/textmate/)  Textpad (http://go-lang.cat-v.org/text-editors/textpad/)  JEdit (http://go-lang.cat-v.org/text-editors/jedit/)  SciTE (http://go-lang.cat-v.org/text-editors/scite/)  Nano (http://go-lang.cat-v.org/text-editors/nano/) Notepad++ (http://go-lang.cat-v.org/text-editors/notepad-plus-plus/)  Geany (http://go-lang.cat-v.org/text-editors/geany/). SlickEdit (http://go-lang.cat-v.org/text-editors/slickedit/)  vim (http://go-lang.cat-v.org/text-editors/vim/)
GoSublime (https://github.com/DisposaBoy/GoSublime)
زئوس (http://www.zeusedit.com/go.html) روی wine

http://go-ide.com

پیدا کردن اون کتاب در گوگل کاری نداره
گوگل این چیزای کپی رایتی رو از نتایج جستجوش حذف میکنه
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: vandu در 10 دی 1391، 11:37 ب‌ظ
خیلی ممنون جتاب قادری
من هم الان مطالعه اش کردم. بسیار خوب و تمیز نوشتید.
فقط یه سوال: در مورد کار با دیتابیس‌های مختلف شخصا تجربه‌ای داشتید توی این زبان؟ پکیج‌های ارتباط با دیتابیسش چطوریه؟
ممنون...
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 11 دی 1391، 12:22 ق‌ظ
فقط یه سوال: در مورد کار با دیتابیس‌های مختلف شخصا تجربه‌ای داشتید توی این زبان؟ پکیج‌های ارتباط با دیتابیسش چطوریه؟

Go یه ست API واحد برای این کار داره. مثل DB-API‌ در پایتون یا JDBC در جاوا.

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

برای MySQL هم که چندین رابط وجود داره، اما من اصلا باهاشون کار نکردم پس نظر نمیدم. برای Redis‌ هم رابط
وجود داره. Sqlite‌ هم که رابطش توسط یکی از اعضای اصلی تیم Go نوشته شده...

کلا فکر نمیکنم مشکلی از نظر کار با دیتابیس پیدا کنید. تنها نکته ایی که میشه بهش اشاره کنم اینه که ORM ها زیاد در
جامعه ی Go محبوب نیستن. من شخصا با ORM ها رابطه ی خوبی ندارم. به نظرم مثل IDE ها یه چیز اضافه هستن!
البته فراموش نشه که ORM ها همونطور که از اسمشون پیداست تو زبان های شی گرا زیاد استفاده میشن و Go هم که موضعش در
این باره مشخصه  :D

یه چیز جالب دیگه هم هست اینه که به علت اینکه Go یک زبان سیستمی هست و رابطه ی خوبی با C داره، اکثر رابط های
این دیتابیس ها در خود Go نوشته شدن. مثلا pq رابط Postgres تماما در Go‌ نوشته شده!
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: aliboy در 18 بهمن 1391، 11:25 ب‌ظ

سلام

بابت مطالب و اطلاعاتتون تشکر  :)
به نظرم زبان موفقی میشه چون گوگل ازش حمایت میکنه و خودم به شخصه از شئی گرایی خوشم نمیاد  ;)
این نمونه کد رو توی homepage سایتشون دیدم و یه چیزی رو متوجه نشدم:
package main

import "fmt"

// fib returns a function that returns
// successive Fibonacci numbers.
func fib() func() int {
a, b := 0, 1
return func() int {
a, b = b, a+b
return a
}
}

func main() {
f := fib()
// Function calls are evaluated left-to-right.
fmt.Println(f(), f(), f(), f(), f())
}

اینکه توی این تابع بازگشتی چرا 4 بار تابع رو فراخونی گرده در حالی که همون یکبار باید کفایت میکرد( البته توی زبان های C و C++ و پاسکال یک بار می نوشتیم)
   fmt.Println(f(), f(), f(), f(), f())

تشکر
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 19 بهمن 1391، 11:05 ب‌ظ

اینکه توی این تابع بازگشتی چرا 4 بار تابع رو فراخونی گرده در حالی که همون یکبار باید کفایت میکرد( البته توی زبان های C و C++ و پاسکال یک بار می نوشتیم)
   fmt.Println(f(), f(), f(), f(), f())
سلام، چیزی که اینجا باید بهش دقت کرد مقداری هست که return برگشت میده. عبارت return‌ در تابع fib حاصل
محاسبه رو برگشت نمیده!! این عبارت داره یک «تابع بی نام» رو برگشت میده (صفحه ۴۶ از کتابچه) و در متغیر
f میریزه. حالا متغیر f برابر این تابع شده و میشه عین یه تابع معمولی صداش زد.

این تابعی که به عنوان خروجی از fib‌ اومد بیرون و الآن در f قرار گرفته، خودش هم یه عبارت return داره که
حاصل هر مرحله از دنباله‌ی فیبوناچی رو محاسبه میکنه. اما برای اینکه این مقدار از این تابع بی‌نام return بشه،
باید این تابع رو صدا زد. برای همین هست که متغیر f رو ۵ بار عین یک تابع معمولی صدا زده و در هر بار صدا زدن هم
یکی از اعداد دنباله‌ی فیبوناچی برگشت داده میشه. شما اگه آخرین تابع رو از داخل Println پاک کنی میبینی که توی خروجی
هم یک عدد کم شده.

در واقع تابع fib فیبوناچی رو محاسبه نمیکنه. این تابع، تابعی رو برگشت میده که میتونه عمل محاسبه‌ی فیبوناچی رو به شکل
مرحله ایی انجام بده. دقت کن که با اینکه تابع fib صدا زده میشه و کارش رو هم تموم میکنه، اما متغیرهای a و b از بین
نرفتن! چون هنوز به وجود اونها در تابع بی‌نام نیاز هست. به این صورت هست که میگیم f تبدیل به یک closure شده (صفحه ۴۷
از کتابچه).

این در واقع مثالی بود که چاشنی های برنامه‌نویسی فانکشنال در Go رو نشون میداد. برای کار با این قابلیت ها باید با شیوه
ی برنامه نویسی فانکشنال آشنا باشی. برنامه نویسی فانکشنال روش خیلی قدرتمندی هست. ارزش مطالعه رو داره.
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 22 بهمن 1391، 05:33 ب‌ظ
جهت اطلاع رسانی، دانشگاه معتبر MIT برای درس «سیستم‌های توزیع شده» (Distributed Systems) شروع به
استفاده از زبان Go کرده! برنامه نویسی Concurrent و پردازش های Parallel، مخصوصا در بستر شبکه، از جمله
هدف های اصلی به وجود اومدن Go‌ بوده و یکی از نقاط قوتش حساب میشه. اینطور که به نظر میاد نظر مسئولان
دانشگاه MIT هم کاملا متوجه این قضیه شده  8)
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: محمدرضا ح. در 22 بهمن 1391، 07:59 ب‌ظ
آیا میشه توسط GO برای میکروهای AVR و ARM برنامه نوشت؟ چقدر قدرت مانور داره؟
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 23 بهمن 1391، 02:20 ب‌ظ
آیا میشه توسط GO برای میکروهای AVR و ARM برنامه نوشت؟ چقدر قدرت مانور داره؟

برای AVR رو اطلاعی ندارم اما برای ARM آره. یه سرچ کوچیک بزنی میبینی که روی همین Raspberry Pi هم
استفاده کردن ازش و مشکلی نداشته.
البته همونطور که میدونید جهت گیری این زبان کاملا چیز دیگه ایی هست. برای این مدل برنامه نویسی
که شما مد نظرت هست بهتره که از همون برادر بزرگترش C استفاده بشه  :)
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: محمدرضا ح. در 16 اسفند 1391، 09:35 ب‌ظ
در این قسمت معرفی کردم (با امانت داری کامل ) :

http://iran-bsd.ir/showthread.php?tid=251

خوشحال میشم خودتون هم توضیحات رو کامل کنید .
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: aliboy در 07 فروردین 1392، 01:01 ق‌ظ

سلام

https://go.googlecode.com/hg/doc/go1.1.html (https://go.googlecode.com/hg/doc/go1.1.html)

کسی میتونه دانلود کنه بعد آپ کنه تا ما دانلود کنیم  :o

ببینبم چی هست
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: کیان در 07 فروردین 1392، 01:24 ق‌ظ
https://go.googlecode.com/hg/doc/go1.1.html (https://go.googlecode.com/hg/doc/go1.1.html)

کسی میتونه دانلود کنه بعد آپ کنه تا ما دانلود کنیم  :o
متنش رو اینجا میذارم. فقط بخاطر ادیتور انجمن ltr نیست:



Introduction to Go 1.1
The release of Go version 1 (https://go.googlecode.com/doc/go1.html) (Go 1 or Go 1.0 for short) in March of 2012 introduced a new period of stability in the Go language and libraries. That stability has helped nourish a growing community of Go users and systems around the world. Several "point" releases since then—1.0.1, 1.0.2, and 1.0.3—have been issued. These point releases fixed known bugs but made no non-critical changes to the implementation.This new release, Go 1.1, keeps the promise of compatibility (https://go.googlecode.com/doc/go1compat.html) but adds a couple of significant (backwards-compatible, of course) language changes, has a long list of (again, compatible) library changes, and includes major work on the implementation of the compilers, libraries, and run-time. The focus is on performance. Benchmarking is an inexact science at best, but we see significant, sometimes dramatic speedups for many of our test programs. We trust that many of our users' programs will also see improvements just by updating their Go installation and recompiling.This document summarizes the changes between Go 1 and Go 1.1. Very little if any code will need modification to run with Go 1.1, although a couple of rare error cases surface with this release and need to be addressed if they arise. Details appear below; see the discussion of 64-bit ints (https://go.googlecode.com/hg/doc/go1.1.html#int) and Unicode literals (https://go.googlecode.com/hg/doc/go1.1.html#unicode_literals) in particular

Changes to the language
The Go compatibility document (https://go.googlecode.com/doc/go1compat.html) promises that programs written to the Go 1 language specification will continue to operate, and those promises are maintained. In the interest of firming up the specification, though, there are details about some error cases that have been clarified. There are also some new language features.

Integer division by zero
In Go 1, integer division by a constant zero produced a run-time panic:
func f(x int) int
{
   return x/0
}
In Go 1.1, an integer division by constant zero is not a legal program, so it is a compile-time error.

Surrogates in Unicode literals
The definition of string and rune literals has been refined to exclude surrogate halves from the set of valid Unicode code points. See the Unicode (https://go.googlecode.com/hg/doc/go1.1.html#unicode) section for more information.

Method values
Go 1.1 now implements method values (https://go.googlecode.com/ref/spec#Method_values), which are functions that have been bound to a specific receiver value. For instance, given a Writer value w, the expression w.Write, a method value, is a function that will always write to w; it is equivalent to a function literal closing over w:

 
func (p []byte) (n int, err error) { return w.Write(p) }
 
Method values are distinct from method expressions, which generate functions from methods of a given type; the method expression (*bufio.Writer).Write is equivalent to a function with an extra first argument, a receiver of type (*bufio.Writer):

 
func (w *bufio.Writer, p []byte) (n int, err error) { return w.Write(p) }
 
Updating: No existing code is affected; the change is strictly backward-compatible.

Return requirements
before Go 1.1, a function that returned a value needed an explicit "return" or call to panic at the end of the function; this was a simple way to make the programmer be explicit about the meaning of the function. But there are many cases where a final "return" is clearly unnecessary, such as a function with only an infinite "for" loop. In Go 1.1, the rule about final "return" statements is more permissive. It introduces the concept of a terminating statement (https://go.googlecode.com/ref/spec/#Terminating_statements), a statement that is guaranteed to be the last one a function executes. Examples include "for" loops with no condition and "if-else" statements in which each half ends in a "return". If the final statement of a function can be shown syntactically to be a terminating statement, no final "return" statement is needed. Note that the rule is purely syntactic: it pays no attention to the values in the code and therefore requires no complex analysis. Updating: The change is backward-compatible, but existing code with superfluous "return" statements and calls to panic may be simplified manually. Such code can be identified by go vet.

Changes to the implementations and tools
Command-line flag parsing
In the gc tool chain, the compilers and linkers now use the same command-line flag parsing rules as the Go flag package, a departure from the traditional Unix flag parsing. This may affect scripts that invoke the tool directly. For example, go tool 6c -Fw -Dfoo must now be written go tool 6c -F -w -D foo.

Size of int on 64-bit platforms
The language allows the implementation to choose whether the int type and uint types are 32 or 64 bits. Previous Go implementations made int and uint 32 bits on all systems. Both the gc and gccgo implementations now make int and uint 64 bits on 64-bit platforms such as AMD64/x86-64. Among other things, this enables the allocation of slices with more than 2 billion elements on 64-bit platforms. Updating: Most programs will be unaffected by this change. Because Go does not allow implicit conversions between distinct numeric types (https://go.googlecode.com/ref/spec/#Numeric_types), no programs will stop compiling due to this change. However, programs that contain implicit assumptions that int is only 32 bits may change behavior. For example, this code prints a positive number on 64-bit systems and a negative one on 32-bit systems:
x := ^uint32(0) // x is 0xffffffff i := int(x)     // i is -1 on 32-bit systems, 0xffffffff on 64-bit fmt.Println(i)
Portable code intending 32-bit sign extension (yielding -1 on all systems) would instead say:
i := int(int32(x))


Unicode

To make it possible to represent code points greater than 65535 in UTF-16, Unicode defines surrogate halves, a range of code points to be used only in the assembly of large values, and only in UTF-16. The code points in that surrogate range are illegal for any other purpose. In Go 1.1, this constraint is honored by the compiler, libraries, and run-time: a surrogate half is illegal as a rune value, when encoded as UTF-8, or when encoded in isolation as UTF-16. When encountered, for example in converting from a rune to UTF-8, it is treated as an encoding error and will yield the replacement rune,
utf8.RuneError, U+FFFD.

This program,

 
import "fmt"
 func main() { fmt.Printf("%+q\n", string(0xD800)) }
 
printed "\ud800" in Go 1.0, but prints "\ufffd" in Go 1.1. Surrogate-half Unicode values are now illegal in rune and string constants, so constants such as '\ud800' and "\ud800" are now rejected by the compilers. When written explicitly as UTF-8 encoded bytes, such strings can still be created, as in "\xed\xa0\x80". However, when such a string is decoded as a sequence of runes, as in a range loop, it will yield only utf8.RuneError values. The Unicode byte order marks U+FFFE and U+FEFF, encoded in UTF-8, are now permitted as the first character of a Go source file. Even though their appearance in the byte-order-free UTF-8 encoding is clearly unnecessary, some editors add them as a kind of "magic number" identifying a UTF-8 encoded file. Updating: Most programs will be unaffected by the surrogate change. Programs that depend on the old behavior should be modified to avoid the issue. The byte-order-mark change is strictly backward-compatible.

The gc assemblers

Due to the change of the int to 64 bits and some other changes, the arrangement of function arguments on the stack has changed in the gc tool chain. Functions written in assembly will need to be revised at least to adjust frame pointer offsets. Updating: The go vet command now checks that functions implemented in assembly match the Go function prototypes they implement.

Changes to the go command
The go command has acquired several changes intended to improve the experience for new Go users.First, when compiling, testing, or running Go code, the go command will now give more detailed error messages, including a list of paths searched, when a package cannot be located.

 
$ go build foo/quxx can't load package: package foo/quxx: cannot find package "foo/quxx" in any of: /home/you/go/src/pkg/foo/quxx (from $GOROOT) /home/you/src/foo/quxx (from $GOPATH)

Second, the go get command no longer allows $GOROOT as the default destination when downloading package source. To use the go get command, a valid $GOPATH is now required.

 
$ GOPATH= go get code.google.com/p/foo/quxx package code.google.com/p/foo/quxx: cannot download, $GOPATH not set. For more details see: go help gopath

Finally, as a result of the previous change, the go get command will also fail when $GOPATH and $GOROOT are set to the same value.

 
$ GOPATH=$GOROOT go get code.google.com/p/foo/quxx warning: GOPATH set to GOROOT (/home/User/go) has no effect package code.google.com/p/foo/quxx: cannot download, $GOPATH must not be set to $GOROOT. For more details see: go help gopath

Changes to the go test command

The go test command no longer deletes the binary when run with profiling enabled, to make it easier to analyze the profile. The implementation sets the -c flag automatically, so after running,

 
$ go test -cpuprofile cpuprof.out mypackage

the file mypackage.test will be left in the directory where go test was run.

The go test command can now generate profiling information that reports where goroutines are blocked, that is, where they tend to stall waiting for an event such as a channel communication. The information is presented as a blocking profile enabled with the -blockprofile option of go test. Run go help test for more information.

Changes to the go fix command
The fix command, usually run as go fix, no longer applies fixes to update code from before Go 1 to use Go 1 APIs. To update pre-Go 1 code to Go 1.1, use a Go 1.0 tool chain to convert the code to Go 1.0 first.

Performance
The performance of code compiled with the Go 1.1 gc tool suite should be noticeably better for most Go programs. Typical improvements relative to Go 1.0 seem to be about 30%-40%, sometimes much more, but occasionally less or even non-existent. There are too many small performance-driven tweaks through the tools and libraries to list them all here, but the following major changes are worth noting:
  • The gc compilers generate better code in many cases, most noticeably for floating point on the 32-bit Intel architecture.
  • The gc compilers do more in-lining, including for some operations in the run-time such as append and interface conversions.
  • There is a new implementation of Go maps with significant reduction in memory footprint and CPU time.
  • The garbage collector has been made more parallel, which can reduce latencies for programs running on multiple CPUs.
  • The garbage collector is also more precise, which costs a small amount of CPU time but can reduce the size of the heap significantly, especially on 32-bit architectures.
  • Due to tighter coupling of the run-time and network libraries, fewer context switches are required on network operations.

Changes to the standard library
bufio.Scanner
The various routines to scan textual input in the bufio package, ReadBytes, ReadString and particularly ReadLine, are needlessly complex to use for simple purposes. In Go 1.1, a new type, Scanner, has been added to make it easier to do simple tasks such as read the input as a sequence of lines or space-delimited words. It simplifies the problem by terminating the scan on problematic input such as pathologically long lines, and having a simple default: line-oriented input, with each line stripped of its terminator. Here is code to reproduce the input a line at a time:

 
scanner := bufio.NewScanner(os.Stdin) for scanner.Scan() { fmt.Println(scanner.Text()) // Println will add back the final '\n' } if err := scanner.Err(); err != nil { fmt.Fprintln(os.Stderr, "reading standard input:", err) }
 
Scanning behavior can be adjusted through a function to control subdividing the input (see the documentation for SplitFunc), but for tough problems or the need to continue past errors, the older interface may still be required.

 net

The protocol-specific resolvers in the net package were formerly lax about the network name passed in. Although the documentation was clear that the only valid networks for ResolveTCPAddr are "tcp", "tcp4", and "tcp6", the Go 1.0 implementation silently accepted any string. The Go 1.1 implementation returns an error if the network is not one of those strings. The same is true of the other protocol-specific resolvers ResolveIPAddr, ResolveUDPAddr, and ResolveUnixAddr. The previous implementation of ListenUnixgram returned a UDPConn as a representation of the connection endpoint. The Go 1.1 implementation instead returns a UnixConn to allow reading and writing with its ReadFrom and WriteTo methods. The data structures IPAddr, TCPAddr, and UDPAddr add a new string field called Zone. Code using untagged composite literals (e.g. net.TCPAddr{ip, port}) instead of tagged literals (net.TCPAddr{IP: ip, Port: port}) will break due to the new field. The Go 1 compatibility rules allow this change: client code must use tagged literals to avoid such breakages. Updating: To correct breakage caused by the new struct field, go fix will rewrite code to add tags for these types. More generally, go vet will identify composite literals that should be revised to use field tags.

reflect
The reflect package has several significant additions. It is now possible to run a "select" statement using the reflect package; see the description of Select and SelectCase for details. The new method Value.Convert (or Type.ConvertibleTo) provides functionality to execute a Go conversion or type assertion operation on a Value (or test for its possibility). The new function MakeFunc creates a wrapper function to make it easier to call a function with existing Values, doing the standard Go conversions among the arguments, for instance to pass an actual int to a formal interface{}. Finally, the new functions ChanOf, MapOf and SliceOf construct new Types from existing types, for example to construct the type []T given only T.

time
On FreeBSD, Linux, NetBSD, OS X and OpenBSD, previous versions of the time package returned times with microsecond precision. The Go 1.1 implementation on these systems now returns times with nanosecond precision. Programs that write to an external format with microsecond precision and read it back, expecting to recover the original value, will be affected by the loss of precision. There are two new methods of Time, Round and Truncate, that can be used to remove precision from a time before passing it to external storage. The new method YearDay returns the one-indexed integral day number of the year specified by the time value. The Timer type has a new method Reset that modifies the timer to expire after a specified duration. Finally, the new function ParseInLocation is like the existing Parse but parses the time in the context of a location (time zone), ignoring time zone information in the parsed string. This function addresses a common source of confusion in the time API. Updating: Code that needs to read and write times using an external format with lower precision should be modified to use the new methods.

Exp and old subtrees moved to go.exp and go.text subrepositories
To make it easier for binary distributions to access them if desired, the exp and old source subtrees, which are not included in binary distributions, have been moved to the new go.exp subrepository at code.google.com/p/go.exp. To access the ssa package, for example, run

 
$ go get code.google.com/p/go.exp/ssa
and then in Go source,
import "code.google.com/p/go.exp/ssa"
 
The old package exp/norm has also been moved, but to a new repository go.text, where the Unicode APIs and other text-related packages will be developed.

 Minor changes to the library

The following list summarizes a number of minor changes to the library, mostly additions. See the relevant package documentation for more information about each change.

 
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 07 فروردین 1392، 01:10 ب‌ظ
از اونجایی که متن به درستی نمایش داده نمیشه، من فایل رو دانلود کردم و اینجا آپلودش کردم براتون:

https://www.dropbox.com/s/pqk1b3f0l2qwhu4/go1.1note.tar.gz

فقط نمی دونم چه مشکلی برای دسترسی بهش داشتید؟ با فیل‌کُش صفحه رو باز میکردید دیگه.

دقت کنید نسخه‌ی 1.1 هنوز منتشر نشده. این نوشته هم به صورت سطحی به تغییراتی که قراره این نسخه داشته باشه
اشاره میکنه. در واقعیت، (چون من هر روز پیگیر این قضیه هستم و دنبال میکنم ای مطالب رو) تغییرات 1.1 خیلی جالب تر
و اشتیاق برانگیز تر از چیزیه که توی این نوشته میخونید. برای خود من مهم ترین تغییراتش بهینه سازی های سیستم runtime و
سیستم gc هست. و بهینه سازی های مخصوص برنامه‌های concurrent که از نظر زمانبندی خیلی بهتر شدن. خیلی مباحث توی
این نوشته گفته نشده....
به طور خلاصه بگم، Go هر روز داره بی رقیب تر میشه. حتی از طرف کارمندهای داخل گوگل هم گفته شده
که ضریب استفاده از پایتون تو گوگل کاهش پیدا کرده و این قضیه داره گریبان جاوا و ++C رو هم میگیره. Youtube هم که همین
الآنش قسمت های زیادی از سیستم back-end اش با Go داره کار میکنه.

از زمان نوشتن اون کتابچه تا الآن کلی سایت و سیستم جدید با Go توسعه پیدا کردن. برنامه هایی کاملا سیستمی که
تنها انتخاب هایی که برای این مدل از برنامه ها تا قبل از این به عقل کسی میرسید فقط C و ++C بود اما الآن میبینیم
که دارن از Go استفاده میکنن. قابلیت های برنامه‌نویسی concurrent هم که به صورت درونی در Go قرار داره و جزئي زبان به
حساب میاد (که به این حالت در **هیچ زبانی** وجود نداره) هم اهرم قدرت این زبان هست.
بعد از منتشر شدن نسخه‌ی 1.1 ، من هم کتابچه رو به روزرسانی میکنم که با کلی مطالب جدید همراه هست. به هر حال، آینده برای
برنامه نویسانی هست که از الآن وقت خودشون رو روی یه همچین زبانی سرمایه گذاری کنن!
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: r_m1232002 در 07 فروردین 1392، 04:45 ب‌ظ
قابلیت های برنامه‌نویسی concurrent هم که به صورت درونی در Go قرار داره و جزئي زبان به
حساب میاد (که به این حالت در **هیچ زبانی** وجود نداره) هم اهرم قدرت این زبان هست.

با سلام

من متاسفانه هنوز فرصت نکردم زبان GO رو مطالعه کنم. اما این جمله شما برای من عجیب به نظر رسید. میشه لطفا توضیح بدید که قابلیت های Concurrent این زبان به چه شکلی هست که در «هیچ زبانی» وجود نداره؟

تا جایی که من اطلاع دارم زبان های بسیاری قابلیت Concurrent Programming  دارند از قبیل:

http://en.wikipedia.org/wiki/Concurrent_computing#Concurrent_programming_languages (http://en.wikipedia.org/wiki/Concurrent_computing#Concurrent_programming_languages)

و در میان این زبان ها هم برخی زبان ها قابلیت های بسیار قابل توجهی در این خصوص دارد مانند Erlang :

http://en.wikipedia.org/wiki/Erlang_programming_language (http://en.wikipedia.org/wiki/Erlang_programming_language)

جالب توجه که به طور مثال در یکی از بنچمارک ها توسط این زبان تونستند به عدد قابل توجه 20 میلیون پروسه موازی برستند!
اگر زبان Go قابلیت های متفاوتی داشته باشه ترغیب خواهم شد به یادگیری اون بپردازم.

پیشاپیش از توضیحات شما سپاسگزارم.
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: aliboy در 07 فروردین 1392، 08:27 ب‌ظ
تشکر از تمام دوستانی که زحمت دانلود و اپلود رو کشیدن.برای من باز نمیشد.   :)

نقل‌قول
فقط نمی دونم چه مشکلی برای دسترسی بهش داشتید؟ با فیل‌کُش صفحه رو باز میکردید دیگه.

شما فک کنم از P M 9 است که خوب باز میشه.برای من از این  ساده هاست . :)

خودم GO رو به 2 دلیل دوس دارم:
1-گوگل ازش حمایت میکنه

2-شئی گرا نیست

فقط یکم رمز گونه می مونه.



نقل‌قول
به طور خلاصه بگم، Go هر روز داره بی رقیب تر میشه. حتی از طرف کارمندهای داخل گوگل هم گفته شده
که ضریب استفاده از پایتون تو گوگل کاهش پیدا کرده و این قضیه داره گریبان جاوا و ++C رو هم میگیره. Youtube هم که همین
الآنش قسمت های زیادی از سیستم back-end اش با Go داره کار میکنه.

از زمان نوشتن اون کتابچه تا الآن کلی سایت و سیستم جدید با Go توسعه پیدا کردن. برنامه هایی کاملا سیستمی که
تنها انتخاب هایی که برای این مدل از برنامه ها تا قبل از این به عقل کسی میرسید فقط C و ++C بود اما الآن میبینیم
که دارن از Go استفاده میکنن. قابلیت های برنامه‌نویسی concurrent هم که به صورت درونی در Go قرار داره و جزئي زبان به
حساب میاد (که به این حالت در **هیچ زبانی** وجود نداره) هم اهرم قدرت این زبان هست.
بعد از منتشر شدن نسخه‌ی 1.1 ، من هم کتابچه رو به روزرسانی میکنم که با کلی مطالب جدید همراه هست. به هر حال، آینده برای
برنامه نویسانی هست که از الآن وقت خودشون رو روی یه همچین زبانی سرمایه گذاری کنن!

ادم رو وسوسه می کنی همین الان بشینه گو کار کنه.
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: محمدرضا ح. در 07 فروردین 1392، 11:51 ب‌ظ
درسته، من هم که گفتم تو کامنت قبلی، من بر حسب تلفظ انگلیسی اسم رو نوشتم.
باز خیلی بهتر از تلفظ «دایجسترا» هست که توی کتاب ها و دانشگاه های ایران تلفظ میشه!
هرچند که خیلی هم مهم نیست از نظر من، یه آدمی مثل اون رو به هر شیوه ای تلفظ
کنید چیزی از ارزش هاش کم نمیشه  :)

تو کتاب نظریه گراف انتشارات فاطمی نوشته "دایجکسترا" . فیل هم نمیتونه اینو تلفظ کنه  ;D
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 08 فروردین 1392، 12:56 ق‌ظ

من متاسفانه هنوز فرصت نکردم زبان GO رو مطالعه کنم. اما این جمله شما برای من عجیب به نظر رسید. میشه لطفا توضیح بدید که قابلیت های Concurrent این زبان به چه شکلی هست که در «هیچ زبانی» وجود نداره؟

برای درک این موضوع، اول باید با برنامه‌نویسی Concurrent آشنا باشید. اگه وقتی واژه‌ی Concurrent رو میشنوید
فکرتون سمت thread و عملیات موازی و async این موضوعات میره باید بگم که باید بیشتر تحقیق کنید. برنامه
نویسی Concurrent موجود دیگریست. برنامه نویسی Concurrent رو باید با برنامه نویسی Object Oriented مقایسه کنید،
یعنی در حقیقت یک پارادایم هست. ممکنه حرف هام مقداری عجیب باشه، اما احتمالا یه روزی متوجه منظورم میشید.

بعدش باید با برنامه نویسی Concurrent در زبان های مختلف آشنا باشی. نه فقط برنامه نوشتن، اینکه بدونید چجوری این قابلیت
هارو توی زبان پیاده سازی کردن. من بنابه دلایلی تقریبا ۳ سال گذشته رو کاملا توی اینجور مطالب غوطه ور بودم. تمام وقت مطالعه ام
رو در حال تحقیق روی این مباحث بودم. نباید انتظار داشته باشید که بشه همه ی این مطالب رو توی یه پست توضیح داد.

اما به طور خلاصه بخوام بگم، درسته، خیلی از زبان ها قابلیت برنامه نویسی Concurrent دارن. اما تا چه حدی و با چه کیفیتی
و چه قدرتی و سرعتی.... خیلی از ماشین ها هم قابلیت روندن دارن، اما همشون که بنز و پورشه نیستن!
در حال حاظر به جرات میتونم بگم زبان هایی که توی این زمینه در کلاس A‌ هستن، اینان:
Erlang, Go, Haskell, clojure, Scala

هر کدوم هم با سلیقه های خاص خودشون برنامه نویسی Concurrent میکنن. وقتی گفتم « به این حالت در **هیچ زبانی** وجود نداره»
منظورم این بود که مدلی که Go‌ قابلیت ها رو پیاده سازی کرده منحصر بفرده و توی زبان ای دیگه نیست. منظور این نبود که این مدل
بهتره، یا بدتره. (البته من اعتقاد دارم بهتره!). مثلا شیوه‌ی پیاده سازی Go رو توی یک سیستم مثل JVM‌ کلا نمیشه داشت. حتی توی C یا
کلای توی هیچ زبان دیگه ایی! برای همین Go رو از صفر نوشتن چون نمیشد با چیزای دیگه به این شکل از پیاده سازی رسید.

Erlang‌ که شما گفتید کاملا یک زبان ثابت شده اس و همه قبولش دارن تو این زمینه. پس اگه اینطوره چرا شما ممکنه بخوای
برای GO‌ هم وقت بگذاری؟ خوب erlang فانکشنال هست، از نظر مدل برنامه نویسی و سیسنتکس نا آشناست برای خیلی ها. اصولا زبان های
فانکشنال از زبان محاوره دور هستن و به زبان ریاضی نزدیک. همه با این مدل برنامه نویسی حال نمیکنن. نمونه اش خود کن تامپسون
یا لینوکس توروالدز. بعدش اینکه Go یه زبان سیستمی هست، مثل C. در واقعا راحت تره که بگیم خود تیم Go سال ها پیش زبان C رو ساختن.
اما erlang زبان سطح بالاتری هست. گزینه ی دیگه میتونه این باشه که Go ده ها برابر سرعت بالاتری نسبت به erlang داره و از نظر
حافظه هم ده ها برابر مصرفش بهینه تره. سرعت erlang در نهایت با پایتون و php قابل مقایسه است. البته همونطور که گفتم erlang در زمینه
ی Concurrency کاملا ثابت شده و بهینه است و هیچ کس حرفی روی قدرتش نداره. اما در کل به عنوان یک زبان (جدای از مباخث Concurrency)  من فکر میکنم Go انتخاب مناسب تری باشه. هرچند که این ها همه نظرات من هستن و دلیلی هم نیست حتما درست باشن! :)
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 08 فروردین 1392، 01:05 ق‌ظ

2-شئی گرا نیست


تو Go خیلی راحت تر از زبان های دیگه میشه شی گرایی کار کرد. اتفاقا اگه تحقیق کنید، متوجه میشید Go‌ از خیلی
از زبان ها شی گراتره! چون نگاه Go به شی گرایی مثل Java و ++C نیست نمیشه گفت که شی گرا نیست. Go شما رو آزاد گذاشته،
میل خودتونه که شی گرا کار کنید یا نکنید. مساله اینه که توی Go زیاد به شی گرایی نیاز پیدا نمیکنید. هر چی ساده تر کد
بنویسید بهتر نتیجه میگیرید...
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: محمدرضا ح. در 08 فروردین 1392، 01:12 ق‌ظ

2-شئی گرا نیست


تو Go خیلی راحت تر از زبان های دیگه میشه شی گرایی کار کرد. اتفاقا اگه تحقیق کنید، متوجه میشید Go‌ از خیلی
از زبان ها شی گراتره! چون نگاه Go به شی گرایی مثل Java و ++C نیست نمیشه گفت که شی گرا نیست. Go شما رو آزاد گذاشته،
میل خودتونه که شی گرا کار کنید یا نکنید. مساله اینه که توی Go زیاد به شی گرایی نیاز پیدا نمیکنید. هر چی ساده تر کد
بنویسید بهتر نتیجه میگیرید...

البته خوبه که اینجا دوستان با مفهوم شیء گرایی آشنا هستند. یک نفر رو دیدم میگفت زبان سی شیءگرا نیست چون طراح گرافیکی همراهش نصب نمیشه  :o
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 08 فروردین 1392، 01:21 ق‌ظ

البته خوبه که اینجا دوستان با مفهوم شیء گرایی آشنا هستند. یک نفر رو دیدم میگفت زبان سی شیءگرا نیست چون طراح گرافیکی همراهش نصب نمیشه  :o

:)))) دقیقا... خودم خیلی با این مدل برخورد داشتم :)
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: aliboy در 08 فروردین 1392، 01:31 ق‌ظ

البته خوبه که اینجا دوستان با مفهوم شیء گرایی آشنا هستند. یک نفر رو دیدم میگفت زبان سی شیءگرا نیست چون طراح گرافیکی همراهش نصب نمیشه  :o
منظورم از شئی گرایی این نبود.
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: محمدرضا ح. در 08 فروردین 1392، 01:37 ق‌ظ

البته خوبه که اینجا دوستان با مفهوم شیء گرایی آشنا هستند. یک نفر رو دیدم میگفت زبان سی شیءگرا نیست چون طراح گرافیکی همراهش نصب نمیشه  :o
منظورم از شئی گرایی این نبود.

بله عزیز میدونم. این شخص هم ترم آخر کارشناسی بود و داشت اینطور شکر افشانی میکرد و خیر سرش برتری های C# نسبت به C رو بیان میکرد  ](*,)
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 08 فروردین 1392، 01:43 ق‌ظ
منظورم از شئی گرایی این نبود.

اختیار داری قربان. 100% مطمئن هستم که منظور آقا محمدرضا شما نبودی.
داشت کلی مثال میزد برای شوخی. چون واقعا هستن همچین افرادی.
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: aliboy در 08 فروردین 1392، 01:47 ق‌ظ
خواهش میکنم


من فقط از PDF نقل قولی کردم.تاییدی بر مطالب.

ص 16

 Go سؤالی که برای تعداد زیادی از برنامه نویسان مشتاق پیش م یآید این است که آیا یک زبان ش یگراست؟

جواب این است: خوشبختانه، خیر !! حداقل نه به شکلی که در زبان های معروف ش یگرا با آن آشنا هستید

نقل‌قول
یک «مفهوم» هست نه یک »قابلیت».


ویرایش
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: محمدرضا ح. در 08 فروردین 1392، 02:26 ق‌ظ
خب زبان Go فرزند خلف C هست ;D مگه میشه شیء گرا باشه؟ توی C هم دیدم جاهایی که نوشتن چطور میشه از شیء گرایی استفاده کرد. این هم بالطبع همونطوره.

@AmirrezaGhaderi :

برای Lisp آماده نکردید؟ ;D من شدیدا علاقمند شدم بهش (نمونه هایی رو ازش توی ویکی osdev دیدم)
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 08 فروردین 1392، 10:52 ق‌ظ

من فقط از PDF نقل قولی کردم.تاییدی بر مطالب.


خوب اون جمله‌ی «حداقل نه به شکلی که در زبان های معروف ش یگرا با آن آشنا هستید» هم جزو مطلب بود دیگه :)
چون میدونستم وقتی صحبت از شی گرایی میشه همه فکرشون میره طرف Java و #C و ++C ایجور زبان ها، مجبور شدم به اون شکل بنویسم.

اون قسمت دوم هم برعکس نوشتید، اتفاقا من دقیقا نوشتم که یک «مفهوم» هست نه یک »قابلیت». شما برعکس برداشت کردی :)
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 08 فروردین 1392، 10:54 ق‌ظ
برای Lisp آماده نکردید؟ ;D من شدیدا علاقمند شدم بهش (نمونه هایی رو ازش توی ویکی osdev دیدم)

کو وقت... :(
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: aliboy در 08 فروردین 1392، 11:53 ق‌ظ

من فقط از PDF نقل قولی کردم.تاییدی بر مطالب.


خوب اون جمله‌ی «حداقل نه به شکلی که در زبان های معروف ش یگرا با آن آشنا هستید» هم جزو مطلب بود دیگه :)
چون میدونستم وقتی صحبت از شی گرایی میشه همه فکرشون میره طرف Java و #C و ++C ایجور زبان ها، مجبور شدم به اون شکل بنویسم.

اون قسمت دوم هم برعکس نوشتید، اتفاقا من دقیقا نوشتم که یک «مفهوم» هست نه یک »قابلیت». شما برعکس برداشت کردی :)
سلام

نقل‌قول
شما برعکس برداشت کردی
برداشتم درست بود
منظورم همین بود که شما گفتید،توی کپی و پیست از PDF جابجا شد (یه بار امتحان کنید) .تشکر.پست قبلی تصحیح شد.

پس باید جواب سوال تغییر  پیدا کنه!

نقل‌قول
سؤالی که برای تعداد زیادی از برنامه نویسان مشتاق پیش م یآید این است که آیا یک زبان ش یگراست؟

جواب این است: خوشبختانه، خیر !! حداقل نه به شکلی که در زبان های معروف ش یگرا با آن آشنا هستید

متاسفانه ،بله ولی بصورت پنهان.
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: aliboy در 08 فروردین 1392، 12:13 ب‌ظ

نقل‌قول
خوب اون جمله‌ی «حداقل نه به شکلی که در زبان های معروف ش یگرا با آن آشنا هستید» هم جزو مطلب بود دیگه :)
چون میدونستم وقتی صحبت از شی گرایی میشه همه فکرشون میره طرف Java و #C و ++C ایجور زبان ها، مجبور شدم به اون شکل بنویسم.


اتفاقا من با هیچ کدوم از این 3 زبان ها برنامه نویسی نکردم.
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 08 فروردین 1392، 02:11 ب‌ظ

متاسفانه ،بله ولی بصورت پنهان.

نمیدونم کجای حرفم طوری هست که برداشت شما اینطوری میشه. اینکه یه زبان شی گرا باشه فرق میکنه با اینکه
بشه توش شی گرایی داشت:
C یک زبان شی گراست؟ خیر. میشه توش به صورت شی گرا برنامه نوشت؟ بله
Go یک زبان شی گراست؟ خیر. میشه توش به صورت شی گرا برنامه نوشت؟ بله
Lisp یک زبان شی گراست؟ خیر. میشه توش به صورت شی گرا برنامه نوشت؟ بله
Java یه زبان شی گراست؟ بله. میشه توش به صورت غیر شی گرا برنامه نوشت؟ خیر

عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: majidkamali1370 در 08 فروردین 1392، 02:44 ب‌ظ
++C یک زبان شی گراست؟ بله. میشه توش به صورت غیر شی گرا برنامه نوشت؟ بله ;D ;)
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 08 فروردین 1392، 03:02 ب‌ظ
++C یک زبان شی گراست؟ بله. میشه توش به صورت غیر شی گرا برنامه نوشت؟ بله ;D ;)

درسته. اینم نکته‌ی خوبیه. البته برای پایتون و روبی و php هم برقراره این قضیه.

مساله اینه که Go یک زبان Concurrent هست. برای همین نیاز خاصی به شی گرایی نداره. (حالا پیدا کنید ربط
این دو تا قضیه رو باهم!)
امثال Go‌ یا Erlang ذاتا Concurrent هستن، نه اینکه به صورت یک قابلیت جانبی از Concurrency پشتیبانی کنن.
مثلا جاوا ذاتا شی گراست اما شی گرایی در C یک چیز جانبیه.
یا مثلا جاوا قابلیت های Concurrency داره ولی یک زبان COncurrent نیست.
به یک زبان وقتی Concurrent گفته میشه که اون زبان به صورت درونی دارای ساختارهایی برای اینکار باشه
(عین ساختار های if یا for) و سیستم اون زبان از پایه برای برنامه نویسی Concurrent طراحی شده باشه.
به همین صورت هم نمشیه به Go‌ گفت یه زبان شی گرا چون یک ساختار درونی برای اینکار نداره (مثل ساختار class)،
اما میشه به صورت جانبی توش شی گرایی داشت (اگه کسی یه وقت هوس کرد!، همونش هم به روش متفاوتی با چیزی که توی جاوا یا ++C‌ هست صورت میگیره )
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: majidkamali1370 در 08 فروردین 1392، 03:05 ب‌ظ
Concurrent همون threadها هستن؟
ربطش چیه؟ فرقش چیه؟
جدا از اینکه داخل زبون هست یا نه.
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 08 فروردین 1392، 03:23 ب‌ظ
Concurrent همون threadها هستن؟

خیر.
توضیحش واقعا توی یه پست نمیگنجه. مدتیه در حال نوشتن یک سری مقاله در همین زمینه هستم.
کامل که بشه مطمئن باشین که جواب همه‌ی سوال هاتون رو میگیرید.
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: aliboy در 08 فروردین 1392، 05:16 ب‌ظ
Concurrent همون threadها هستن؟

خیر.
توضیحش واقعا توی یه پست نمیگنجه. مدتیه در حال نوشتن یک سری مقاله در همین زمینه هستم.
کامل که بشه مطمئن باشین که جواب همه‌ی سوال هاتون رو میگیرید.


 :)

ان شاءلله

حتما منبع ارزشمندی خواهد شد.
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: سید مسعود امامیان در 08 فروردین 1392، 05:25 ب‌ظ
مفهموم «یک-رابطه است» و «یک-رابطه دارد» متفاوت ِ .
زبان سی++ به خودی خود شی گراست و نام اولی اون C with Classes هست .
خیلی از زبان ها از مفهموم «یک-رابطه دارد.» پشتیبانی می کنن، مانند سی، ولی سی از «یک-رابطه است.» پشتیبانی نمی کند.
در سی++ می توان از هردو مفهوم بهره برد .
مشتاق خواندن آقای قادری .  ;)
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: aliboy در 10 فروردین 1392، 12:31 ق‌ظ

 :)
نقل‌قول
Some web benchmarks, including Go.

http://www.techempower.com/blog/2013/03/28/framework-benchmarks/ (http://www.techempower.com/blog/2013/03/28/framework-benchmarks/)

Show me the winners!

(http://www.techempower.com/images/ec2-json.png)
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 10 فروردین 1392، 01:39 ق‌ظ
دیدم اون پیج رو قبلا... به نظر شما این قراره دقیقا چه چیزی رو ثابت کنه؟
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: aliboy در 10 فروردین 1392، 12:33 ب‌ظ
 :)

توی اجتماع مربوط به زبان Go دیدمش.گفتم بد نباشه که به اشتراک گذاشته بشه.
هدف بررسی جنبه های مختلف زبان GO هست.
احساس میکنید تناسب نداره پاکش کنم.؟
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 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 آشنا باشید.
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: aliboy در 10 فروردین 1392، 09:21 ب‌ظ

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

نقل‌قول
هنوز یک سال هم از انتشار نسخه‌ی
پایدارش نگذشته میاد و دقیقا بعد از اینها قرار میگیره، همینش برای من کافیه!
اتفاقا به همین دلیل آوردمش که در این مدت کم به این درجه رسیده،فک کنم اولش شما با دیدن پست من دید منفی داشتید.
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 10 فروردین 1392، 10:17 ب‌ظ

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

دقیقا، هنوز وقت داره برای رشد. این چیزی که الآن هست تازه قدم اولشه.
نه دیدم منفی نبود. اون بنچمارک ربطی به Go نداشت کلا، برای همه‌ی زبان ها بود (همه‌ي فریم ورک‌ها در حقیقت)
دیدم در حقیقت اینطوری بود: پیش خودم گفتم، «ای بابا، باز یه بنچمارک دیگه» :) آخه واقعا این مدل بنچمارک ها
(حالا برای هر زبانی که می خواد باشه) چیز خاصی رو ثابت نمیکنن. جنبه‌ی فان و ارضای کنجکاوی رو دارن بیشتر.
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: محمدرضا ح. در 11 فروردین 1392، 01:46 ب‌ظ
یک بخش برای Go باز کردم و افتخار دارم اولین جامعه مجازی فارسی زبان هستیم که بخش ویژه Go رو داریم :

http://iran-bsd.ir/forumdisplay.php?fid=74
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: AmirrezaGhaderi در 28 اردیبهشت 1392، 12:38 ب‌ظ
این پست فقط یک آپدیت هست...

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

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

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

اگر بسته‌ها رو نصب کنید، خود وب‌گاه golang.org هم به همراه نرم‌افزار روی سیستمتون نصب می‌شه و می‌تونید به صورت آفلاین ببینیدش.
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: کیان در 29 فروردین 1393، 08:44 ب‌ظ
بحثی روی گو
http://www.quora.com/Googles-programming-language-Go-seems-to-be-the-most-modern-and-well-featured-language-in-existence-today-Is-that-the-case-or-are-there-major-drawbacks-that-Im-not-seeing

شروعی با گو:
http://www.sitepoint.com/getting-started-go/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+SitepointFeed+%28SitePoint+Feed%29

منابعی برای گو:
http://forum.ubuntu.ir/index.php/topic,11771.msg685402.html#msg685402
http://forum.ubuntu.ir/index.php/topic,84777.0.html
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: lord_theone در 29 فروردین 1393، 09:23 ب‌ظ
ممنون و تشکر ویژه و خسته نباشید به شما و بابت معرفی این برنامه

من برنامه نویسی کار نکردم میتونم برای شروع از این برنامه استفاده کنم یا قبل احتیاج دارم به یک زبانی؟
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: احسان☺ - در 29 فروردین 1393، 09:49 ب‌ظ
این خودش زبانه.
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: salamis در 11 خرداد 1393، 11:52 ب‌ظ

نسخه 1 مطالب خوب و آموزنده ای داشت.امیدواریم نسخه(های) بعدی هم منتشر بشه.
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: ava در 14 تیر 1393، 05:40 ق‌ظ
بسیار عالی بود و خیلی از سوالاتی که داشتم یا بهتر بگم به همه سوالاتی که تا الان در مورد این زبان داشتم پاسخ داده شد
واقعا نوشته عالی بود از همه نظر
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: LibRebirth در 06 امرداد 1393، 12:15 ب‌ظ
بسیار عالی بود و خیلی از سوالاتی که داشتم یا بهتر بگم به همه سوالاتی که تا الان در مورد این زبان داشتم پاسخ داده شد
واقعا نوشته عالی بود از همه نظر
+1
ولی این گوگل ایرانی ها رو تحریم میکنه!!! از این نظر کار کردن با go برای ما دردسر سازه
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: alireza.crs در 07 امرداد 1393، 11:30 ق‌ظ
از زبان ها و نرم افزار هایی که مارو تحریم میکنند متنفرم  ](*,)
انگار قحطی زبانه .اگه به زبان های مدرن علاقه داشته باشین به نظر من vala از بسیاری جهات به این برتری داره
ولی من خودم که هیچ وقت c,c++ و pascal رو ول نمیکنم ;D
چرا باید ول کنم؟تنها بهانه ای که داره اینه که شی گرایی در سی پلاس پلاس باعث پیچیدگی میشه.خوب شما به سبک زبان C در c++ شی گرایی کن !تفاوت سی پلاس پلاس (مخصوصا c++11 )با C به شی گرایی با کلاس ختم نمیشه که. زبان پاسکال هم این قابلیتو داره که هم به صورت شی گرا و هم غیر شی گرا بنویسین.
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: samis در 07 امرداد 1393، 04:44 ب‌ظ
انگار قحطی زبانه .اگه به زبان های مدرن علاقه داشته باشین به نظر من لیسپ از بسیاری جهات به این برتری داره
خدا خیرت بده خداییش خیلی خندیدیم  ;D
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: alireza.crs در 08 امرداد 1393، 12:56 ق‌ظ
ببخشید  :'( اشتباه از من بود
همیشه این زبان های برنامه نویسی گمنام  :oops: رو قاطی میکنم
منظورم vala بود.
یه مدت قبل شروع کردم در مورد تخقیق در مورد این زبان و به ویژگی هاش علاقه مند شدم
ولی ولش کردم چون دلیلی نمیدیدم که از c++ بهش مهاجرت کنم (همچنین پاسکال)

یه سوال از جمیع مردم.
منی که الان c++ رو در حد متوسطی میدونم ایا دلیلی هست که ولش کنم بیام سمت Go ؟؟
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: امید توانا در 08 امرداد 1393، 01:09 ق‌ظ
Go جایگزین مناسبی برای C++ نیست. Go مناسب برنامه‌های سادهٔ سیستمی است، که اون هم به خاطر سیستم بازیافت خودکار، افراد زیادی علاقه بهش ندارند. Go به نظر من زبان خیلی ساده و خوبیه برای یادگیری برنامه‌نویسی. حتی می‌تونه جایگزینی برای پایتون باشه، به عنوان زبانی ساده و کارا برای تدریس و تحقیق، با این تفاوت که کمپایلی است و سرعتی مثل C رو به شما ارائه می‌ده.
زبانی که می‌تونه در آینده جایگزینی برای C++ بشه Rust است. بسیار زبان خوبیه که البته باید C++ رو در حد اعلا بلد باشید تا بتونید باهاش کار کنید. خوبی‌های همهٔ زبانها رو در خودش جمع کرده و هدفش اینه که کمپایلری بسازه که بتونه به برنامه‌نویس در جلوگیری از نشت حافظه و نداشتن اشاره‌گرهای آویزان کمک کنه. با اینحال هنوز هم خیلی زوده که کسی بخواد به Rust  مهاجرت کنه.
عنوان: پاسخ : ‫PDF پارسی - معرفی زبان برنامه نویسی ‪Go
ارسال شده توسط: alireza.crs در 08 امرداد 1393، 01:30 ق‌ظ
نقل‌قول
با این تفاوت که کمپایلی است و سرعتی مثل C رو به شما ارائه می‌ده.
ببینید الان بهانه جدیدی که زبان های مختلف دارند(مخصوصا گو) کامپایلری بودن و native بودن در عین سادگی هست.

الان qml داره تو کامپایلر c++ کامپیال و تجزیه تحلیل میشه که میشه راحتی + سرعت c++

یا حتی این بنده خدا C# هم داره کامپایلر native میده بیرون(شوخی نمیکنم) که میشه راحتی بیش از حد + native بودن

اصلا اینا به کنار سال ها قبل یه زبان برنامه نویسی به نام پاسکال(زبان اول من) اومد که شعار اصلیش راحتی و یاد گیری اسان بود.همزمان کامپایلر native هم داشت.البته فرزند صالحش(دلفی)تو راحتی زیاده روی کرد و delphi prism رو داد بیرون(خیانت کار ).این زبان رو خیلی دوست دارم ولی چون نمیتونم c++ رو ول کنم هردوشو دارم میخونم.البته شاید در اینده vala هم کار بکنم


همون طور که گفتم به نظر من زبان vala میتونه جایگزین مناسب و بهتری برای C باشه چون زبان C دیگه اپدیت نمیشه .برعکس زبان c++.
در مورد این "راست" هم تحقیق کردم و زبان خوبی هست ولی نمیشه در حال حاظر روش حساب کرد.زیاد مورد توجه قرار نگرفته.

اما این وسط یه حرف حساب هست.یه نفرو میشناسم که داره vb6 کار میکنه اونم در حدی که عمرا خیلی ها بتونن در c++,go,.... کار کنند.زبان مهم نیست.برنامه نویس مهم هست