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

http://blog.afsharm.com/2016/01/blog-post.html

خوب گفته ها

پست رو نخوندم اما تجربه شخصیم رو میگم. نود که مفتش هم گرونه. اگه واسه سرعت نود رو انتخاب کنین باید بگم انتخاب های بهتری دارین مثلا Go و یا Clojure تو پایتون هم Django خیلی خوبه اما نه مثل ریلز

3 پسندیده

بستگی به مورد استفاده داره. سیب بهتر است یا پرتقال؟

2 پسندیده

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

خود ریلز برای کمپایل کردن asset از نود بهره می گیره

این چیزه بدی نیست اصلا.

منظوم این بود که نمیشه گفت نود بده. مود استفاده خودشو داره

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

1 پسندیده

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

1 پسندیده

به نظرم روبی زیبا‌ترین و ترتمیزترین زبونه از نظر سینتکس بین اونهایی که من استفاده کردم یعنی
C, Pascal, Java, Python, Go, Javascript, Swift. و البته یکی از کند‌ترین ها!

اما ریلز که البته ایده‌هاش در ده سال گذشته خیلی موثر و خط دهنده به دیگران بوده کلا یه وصله ناجوره تو وب. باور کنید وب از سر تا ته اگر با یک زبان نوشته بشه خیلی بهتره. جاوا اسکریپ هم مشکلات قدیمی خودشو حل کرده و ‌ES6 خیلی عالی و ترتمیز شده.
مثلا این http://www.nodaljs.com رو ببینید. تمام ایده‌های ریلز رو داره ولی با نود نوشته شده. سینتکس هم عالی شده چون از ES6 استفاده می‌کنه و ساختارهایی مثل Class داره.

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

1 پسندیده

در کمال احترام با نظرت در مورد جاوا اسکریپت مخالفم. ممکنه دستور زبان بهتر شده باشه اما ساختار هنوز مشکل داره. از همه بدتر اینه که هر کس یه پیاده سازی ازش داره و …

کند بودن روبی چیز عجیبی نیست و خوب طبیعی هست که مفسرها کند تر باشند.

1 پسندیده

ممکنه دستور زبان بهتر شده باشه اما ساختار هنوز مشکل داره.

مثلا چه مشکلی در ساختار زبان هست؟

از همه بدتر اینه که هر کس یه پیاده سازی ازش داره و …

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

کند بودن روبی چیز عجیبی نیست و خوب طبیعی هست که مفسرها کند تر باشند

اتفاقا چیز عجیبی است. جاوا اسکریپت و پایتون هم از زبان‌های تفسیرشونده اند! اما در مقایسه با روبی سرعت بهتری دارند. دلیل اصلی صرف پول و زمانه. گوگل و دیگران میلیون‌ها دلار در سال صرف بهتر کردن سرعت ویرچوال ماشین V8 میکنند. دنیای آکادمی همین وقت رو صرف پایتون می‌کنه. مسلمه که چنین پولی و انرژی پشت زبونی مثل روبی نیست.

https://coolaj86.com/articles/things-es6-should-have-fixed/
https://www.quora.com/Are-ES6-classes-bad-for-JavaScript


شرکت های زیادی هم روی روبی سرمایه گذاری کردند مثل Github Heroku 37Signals و … همه این زبان ها در حال پیشرفتند اما تو این سه تا زبان روبی پیشرفت منطقی و روبه جلو ای داشته اما برای مثال پایتون و داستان نسخه ۲ و ۳. در مورد سرعت هم باید بگم که من در رابطه با مقایسه روبی با زبان هایی که کامپایل می شن عرض کردم. که طبیعی هست که کند باشه. اما بازم راه حل های مناسبی مثل Jruby وجود داره.

اگر صرفا یکی بخواد به خاطر سرعت از نود استفاده کنه به نظر من کار اشتباهی هست. چون انتخاب های سریعتر و بهتری همیشه هست.

1 پسندیده

خود گوگل از js توي بكند هاش استفاده نمي كنه و angular js رو در فرانت اند به كار گرفته.
اينكه كي چقدر در كدم زبان پول خرج ميكنه مهمه اما اصلا تعيين كننده نيست چون جنبش نرمافزاري سالهاست كه به ثمر نشسته.

2 پسندیده

این سرعت کم رو قشنگ توضیح میدید؟ آیا تو کاراهای روزمره مثل ساخت وبسایت و فروشگاه هم خودشو نشدن میده یا فقط تو پروژه های بزرگ اینطور این کندی سرعت و قشنگ باز کنین

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

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

دليل ديگه اينه كه اصلا اين ها براي اين ساخته نشدن كه پر سرعت ترين باشن كه نا گفته نماند jvm هم از اي امر جدا نيست.

1 پسندیده

میشه مشکلات ساختاری شو یکم توضیح بدید
ممنون

ببینید node js زبانی محسوب میشه که سطحش به ماشین نزدیکتر از ruby هست… به همین علت کمی روانی و زندگی ruby رو به نظر نمیاد داشته باشه … اما اگه بیشتر باهاش و موتور V8 آشنا بشید … شما عملا یک اینترپرتر دارید که لایبرری های ++C رو کنترل میکنه و این خیلی قدرتمنده … شما عملا میتونید یک ورکر nginx رو با جاوااسکریپت طراحی کنید که هیچ ضعف پرفورمنسی نسبت به nginx که یه سرور قدرتمند نوشته شده با ++C هست، نداشته باشه … البته event loop و libuv تفاوت دارن با شیوه کار الکسیر و با توجه به معماری برنامه‌نویسی ممکنه پرفورمنس بهتری حتی از الکسیر و فونیکس از یدونه core بگیرید به همون ترتیب هم معماری اشتباه پرفورمنس الکسیر رو میتونه به شدت کاهش بده. حالا پس پرفورمنس رو تو nodejs داریم و از طرفی بیشترین تعداد ریپو های گیت هاب javascript هست … ساختارش اشکال داره ولی اشکالش اجرایی نیست بلکه باعث میشه کدینگ کمتر مفهوم باشه یا کد زدنش قشنگ (callback hell) نباشه که همه اینها به خاطر قدرت وحشتناکی که داره کلی دولوپر و کامیونیتی که میتونستن بی خیالش بشن سعی کردن مشکلاتش رو برطرف کنند (es6 es7) چون به صورت بنیادی می‌تونه خیلی هم عالی باشه … بعد هم تو سایت هایی مثل کورا کسی نمیاد از چیزی طرفداری کنه چون کاملا علمی و منطقی هست همه چی و طرفداری الکی کردن، هویت علمی شو زیر سوال می‌بره … پیشنهاد میکنم حرف های اونهارو ملاک قرار بدید . هرچقدر هم ROR خوب باشه برای scale کردن های وحشتناک باید به دنبال تکنولوژی های نزدیک به ماشین مثل نود یا ورکر ها و کلاسترینگ ها و الکسیر و غیره برید چون خودش از پسش بر نمیاد .

در کمال احترام به شما دوست عزیز.
دید شما نسبت به “نزدیکی به سطح ماشین” درست نیست. تمام چیزایی که در مورد جاوااسکریپت رو گفتید بقیه زبان ها هم دارند. چیزی که باعث شده جاوااسکریپت کاربر زیاد داشته باشه. سادگیش ( که خیلی جاها بخاطر ساختار ناقصش هست ) و تاریخچه اون هست. اگر مرورگر ها به جای جاوااسکریپت از مثلا پرل استفاده می کردند و طراحان وب که دانش کمی از برنامه نویسی در مقایسه با یه برنامه نویس دارند ازش استفاده می کردند الان به جای NodeJS چیزی به اسم NodePl داشتیم. برای افرادی که جاوااسکریپت استفاده می کنند (‌که درصد زیادی طراح هستیند‌ ) یاد گیری زبان دیگری نمی صرفه پس سعی می کنن با جاوا اسکریپت ادامه بدن. این همه کاربر و مخزن کد دلیل بر کمال زبان نیست. همه اجتماعات زبان های مختلف (‌به جز نود البته) جاوااسکریپت رو یه اسباب بازی می دونن که بعضی جاها استفاده ازش میصرفه . خود نود هم مشکلات زیادی داره اما خوب بقول خودشون “اینجوری طراحی شده”.

در مورد scalability ریلز هم باید بگم که این دید که جا افتاده اشتباه هست و اگر این جور بود الان کمپانی های بزرگی باید از این مورد ضربه می خوردند. Scalability مقوله ای هست که علاوه بر ابزار فاکتور های زیادی توش نقش دارند و نمی شه از روی یک ابزار تصمیم گرفت. در این راستا پیشنهاد می کنم کتاب Big data نوشته: Nethan Marz رو مطالعه بفرمائید.

در مورد کلاستر و سطح enterprise هم باید بگم که شما از هر زبانی هم که استفاده کنید به کلاستر و سایر تکنیک ها نیاز پیدا می خواهید کرد.

در آخر هم اینرو بگم که اگر جاوااسکریپت طراحی بهتری داشت دیگه خبری از transpiler هایی مثل CoffeeScript, TypeScript, Opal, و … ( لیست کامل https://github.com/jashkenas/coffeescript/wiki/List-of-languages-that-compile-to-JS ) نبود. تمام این تلاش ها برای خلاصی از مشکلاتی هست که جاوااسکریپت به همراه داره. شخصا پیشنهاد می کنم ClojureScript + core.async رو ببینید.

1 پسندیده