رادیو بوت شماره یک

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

22/9/2014

https://mega.nz/#!GEoSUL5Z!AQX5VdL9HBBGN-KX4kwUS_vllxa9djApNqIKWBxv6aI

3 پسندیده

امکانش هست اینهارو توی یه پست قرار بدید و همون یک پست رو آپدیت کنید ؟ :pray: تا دسترسی بهش راحت بشه

1 پسندیده

یه پست ایندکس می سازم حتما. ممنون بابت پیشنهادت

2 پسندیده

عالیه البته به نظر من علاوه بر ایندکس هر شماره یه تاپیک داشته باشه تا توی شماره‌های جدید بشه در موردشون بحث کرد

اقا من جفتشم گوش دادم … اعتراض دارم :grin::sweat_smile: دومی رو کی ضبط کردید …
یکم بر اساس اطلاعات قدیمی هست… قسمت is python3 killing python و اینکه چرا راه حل دو ورژنی رو سویچ به یه زبون دیگه معرفی کردید :unamused: هزینه سویچ و یادگیری زبان دیگه و کتابخونه هایی ک عمدتا تو پایتون هستن و تو سایرین ممکنه کلا نباشن یا به این قدرت و قدمتش … خیلی بیشتر از تغییر از ۲ به ۳ هست …
چرا معتقدید پایتون ۳ فیچرای خفن و درخوری نداره :no_mouth: پایتون با asyncio کانکارنت واقعی شد : ( و کلی فریم ورک و لایبرری براش بر همین اساس نوشته شد …
اینم ببینید … از بزرگان روزگار(جت برینز) منتشر شده : )
اکثرا پایتون ۳ استفاده میکنن

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

سعادت بزرگی رو از دست دادید اقا سمیر :rofl::joy:

ایشالا به زودی شماره ها به ترتیب لیست میشه که مطالب قدیمی مشخص بشه

1 پسندیده

راستش سویچ منم ۲ سال پیش بود … وقتی جنگو 1.9 با پایتون سازگار شد … تا قبل از اون با پایتون ۲ میزدم …
اما از وقتی پایتون ۳ زدم… دیگه سراغ پایتون ۲ نرفتم … از مدت ریلیز پایتون ۳ خیلی وقته میگذره . . و تقریبا 95% کتابخونه ها و فریم ورکا بهش پورت شدن …

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

2 پسندیده

یه روز برمیگردید ولی دیگه دیر شده :joy::joy::joy::joy::joy: این پایتونی ک چندین ساله رنک اول IEEE و استک هست (گاهی با جاشو با جاوا عوض میکنه) … و بیشترین میزان رشد رو داشته … واژه killing براش تعریف نشده هست . بیشتر killer استفاده میشه :sweat_smile:

راستی IBM یه پست گذاشته بود چند وقت پیش… نوشته بود … پایتون کارا برای کار و کدنویسی روی کامپیوترای کوانتومی نگران نباشن :heart_eyes::kissing_heart: پایتون این قابلیت رو زودتر از همشون بدست خواهد آورد و همینطور زبونای جدیدی ک براش طراحی خواهند شد سینتکس پایتونی خواهند داشت : )

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

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

3 پسندیده

اقا سمیر بدون OOP هم مگه میشه پروداکشن بزرگ نوشت :thinking::no_mouth: منم یکی از دشمنان FP بودم :sweat_smile: به نظرم برای میکروسرویس و اپ های زیر 1k مناسبه FP …
بدون OOP نه گوگلی بود نه آمازونی … و نه هیچی ک الان داریم … و شاید اگرم بودن … انقدری کند پیش میرفتن … ک الان تو دنیای امروز نبودیم…

نکته برعکس دقیقا. همه این کمپانی ها از OOP استفاده کردند چون ترند اون زمان بود و الان خیلی از این پروداکت ها رو نمی صرفه که تغییر بدن. اما تقریبا همه اینا تو پروداکت های جدیدشون رو به FP اوردن. زبان های فانکشنال زیادی ساخته شدن و خیلی از شرکت های بزرگ جزء حامیان اصلی اونها هستند. OOP از پایته یه سری مشکلات داره که باعث شده برای دنیای امروز مناسب نباشه. مثلا اولین مشکلش اینه که یه shared state هست که به صورت پیشفرض thread safe نیست ( ممکن زبان OOP باشه که اینجوری باشه ولی من بی خبر باشم ازش) و خیلی چیزای دیگه.

در عوض FP خیلی سادست. درگیر پیچیدگی هایی که بهش نیاز نداری نمی شی.

2 پسندیده

اینجوریا هم نیستش … گوگل کنار گولنگ . یه Dart هم ساخت ک سینتکس و اصول جاوا / cpp رو در خودش داره OOPهم هست. .

اینکه FP یه شیوه فک کردن و بهینه سازی و سادگی و کوتاه شدن هست مورد قبوله . .

ولی اینکه همه جا immutable باشه … و چیزی مثل ارث بری …و رفتار آبجکتی نداشته باشیم … میشه Repeat over Repear … و به همین منظور دارم میگم تو پروداکشن خیلی بزرگ … کمتر بکار میاد . و حتی پیچیدگیو کم نمیکنه بلکه زیادم میکنه …

درباره thread safe بودن … قبول دارم زحمت زیادی باید کشیده بشه سر ترد سیف کردن چیز های انتزاعی (آبجکت / کلاس و…) ولی جاوا بعنوان یه OOP خالص و بالاترین میزان پاراللیسم و کانکارنسی تو دنیا مطرحه … DartVM هم کانکارنت و ترد سیف هست … با اینکه OOP هست . .

یه زبانی اون روزا به چشمم خورد Encore lang … یه مقاله هم برای رقابت با اسکالا درموردش نوشته شده …

ولی از نظر من … زندگی بدون کدنویسی oopمعنی و مفهومی نداره :roll_eyes:

توی FPها فقط و فقط میتونم C / rust رو تحمل کنم :sweat_smile: اینهارو هم برای به خدمت گرفتن برای ساخت ماژول پایتون :relaxed: یا اپ های کوچیک و متوسط…

Dart قدیمی هست و موفق نبودنش نشون می ده که طرز فکرش درست نبوده.

اصلا اینجوری نیست. من تا حالا هیج جا کدی رو تکرار نکردم و در کل این کا خیلی بد هست تو دنیای FP. ابجکتی وجود نداره اما بحث هایی شبیه به ارثبری و این ها هست.

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

https://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601

Rust رو در موردنش نمی دونم اما C فانکشنال نیست و فقط یه زبان دستوری هست. خیلی خیلی خیلی پیشنهاد می کنم در گیر زبان های FP بشی و امتحانشون کنی. هیچ ضرری برات نخواهد داشت.

2 پسندیده

من با Rust کد زدم . .با julia هم زدم یکم … و یکمم دارم توی لیسپ تفحص میکنم . .

بزرگترین advantage زبون های OOP اینه ک تو اکثرشون میشه به شیوه FP کد زد … شما فانکشن بچین پشت سرهم :sweat_smile: دیتا رو immutable کن … ساختار Code as Data میشه زد … و همینطور تو زبانی مثل پایتون فانکشن ها first class هستن … و هیچ اجباری برای استفاده از OOP نداره … تو جاوا هم صرف main classهست … وگرنه سایر مسائلش براحتی و سادگی میشه نوشت …

اما تو FP نمیشه ساختار و نیاز هایی شبیه OOP زد …

توی راست اون روز باهاش درگیر بودم … Traitها عینن اینترفیس های جاوا هستن ک به دنیای FP و راست وارد شدن …

دارت کی گفته موفق نبوده :thinking: تو طراحی صفحات داخلی و داکیومنت های گوگل بشدت استفاده شده … یه تلفیقی هم با انگولار براش زدن … یه فریم ورک نیتیو موبایلی هم براش اومد ک غوغا کرد و دوباره آوردش بالا Flutter ک پوز react native رو تو پرفورمنس و بهینه بودن خوابوند : ) و منم یه مدت کمی هست باهاش شروع کردم میخام جایگزین js استفادش کنم … .

به جز lisp بقیه رو امتحان نکردم و اطلاعی ندارم.

تا حدودی درست هست. ولی فانکشنال این نیست که یه سری فانکشن چین پشن بهم و دیتا immutable باشه. برنامه نویسی فانکشنال خیلی بیش از ایناست. در مورد جاوا هم باید بگم که اونم هم تو همین دسته بندی هست و در هرصورت OOP حتی lambda ای که تو جاوا ۱.۸ اضافه شده یه قاب خوشگل هست که توش بازم یه کلاس و ابجکت هست.

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

همه اینها به اضافه protocol ها و غیره از تحقیقات اکادمیک میان که ربط چندانی به زبان برنامه نویسی ندارن و عموما بیشتر اونها از روی یه سری مقاله با مفاهیم مشترک ساخته شده. یعنی اصلا اینجوری نیست که فکر کنین Java سازنده این مفهوم بوده.

والا دارت الان سنش زیاده ولی یه جورایی فقط خود گوگل ازش استفاده می کنه و در مقایسه با رشدی که ES5+ داسته نتونسته رشد کنه در صورتی که هر دو در نزدیک به هم بودن از لحاظ زمانی.

2 پسندیده

راست یک زبان functional کامل نیست و کد در زبانهای functional کوتاه تره چند مقاله علمی درمورد این نوشته شده
شما یک زبان functional کامل کار کن برای یک مدت بعد متوجه میشی OOP چه مشکلاتی داره

زبان functional کامل دو دسته کلی دارن خانواده ML
Haskell Scala OCamel

خانواده LISP
Clojure CLISP Scheme

دلیلی که OOP محبوب تره اینکه در اکثر دانشگاه ها درس داده میشه و مارکتینگ خوبی داره نه به دلیل برتری علمی

4 پسندیده