• 2 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
کمی بحث در مورد تکنولوژی‌های جدید وب
#1
سلام دوستان و اساتید گران قدر

دوستان اخیرا تکنولوژی‌های سمت سرور زیادی ظهور کردند یا به محبوبیت رسیدند و دارن میرسن.

میخواستم یه مقایسه فنی (و نه تعثبی و احساسی) بین این تکنولوژی‌ها داشته باشیم.

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

کدموشون برای چه کاری مفیدند ؟

چرا رغبت به روبی و جانگو بیشتر میشه ؟

چرا اخیرا پروژه‌های استارتاپی اکثر با زبان‌هایی مثل پایتون (اینستاگرام) و روبی (گیت هاب) و... زده میشوند ؟ مگر پی اچ پی کشش این گونه استارت آپ‌ها رو نداره ؟

ممنون از اساتید و دوستان
همیشه برای یادگیری، موضوعاتی هست!

فرهاد حسن پور / بیرگیک

  پاسخ
تشکر شده توسط : ayoubsys Null
#2
نه، PHP توانایی و کشش بعضی از پروژه ها رو نداره

PHP زبان اسکریپتینگه، اما Python زبان برنامه نویسی(حتی براحتی بازی های تحت دسکتاپ هم باهاش می نویسن)
فلسفه PHP ساده بودنه، اما فلسفه Python قدرت و انعطاف پذیری بسیار بالا
core پایتون یک موتور کوچیک و سبکه، اما مال PHP توده ای از فایل و کتابخانه و توابع استاندارد و غیره
OOP هه Python خیلی کاملتر و قدرتمندتره، اما مال PHP خلاصه تر و محدود تره
خطا زدایی و error_handling در PHP به مسخره ترین شکل ممکن انجام میشه، اونم بکمک ابزارهای external - اما در پایتون خیر
سینتکس Python به استاندارد خیلی نزدیک تر و خواناتره، اما سینتکس PHP خیر (mysql_real_escape_string, __destruct, register_shutdown_function...)
Python قابلیت threading داره، اما PHP نداره(بتازگی توسط یک ext ایجاد میشه)
Python فریم ورک های قدرتمند و کامل GUI داره، اما PHP نداره
و...

PHP زبان محبوبیه، اما پایتون زبان غولیه
http://jython.org Big Grin
وبلاگ: Yousha.Blog.ir


 کد کمتر => خطای کمتر => قابل فهمتر => خوانایی بالاتر => نگهداری بهتر

  پاسخ
تشکر شده توسط : ayoubsys farhadhp undefined Hamid Reza Null
#3
ممنون یوشا جان Heart

اما چرا فقط در مورد پایتون حرف زدی ؟
اگر درمورد روبی آن ریلز و... هم اطلاعاتی داری ارایه بده.

راستی لطفا پی اچ پی رو با فریم ورک جانگوش که برای تحت وب هست مقایسه کن زبان سمت سرور چه احتیاجی به GUI داره ؟

چندتا GUI برای پی اچ پی !:
https://github.com/gabrielrcouto/php-gui
http://php.net/manual/en/refs.ui.php
https://wxphp.org/

من یکم هم پایتون یادگرفتم و در بعضی موارد دیدم باید از کتابخونه‌های زبان سی پلاس پلاس استفاده کردم ! با خودم گفتم چکاریه بهتر نیست سی پلاس پلاس رو ادامه بدم :-) !

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

با تشکر از یوشای عزیز
همیشه برای یادگیری، موضوعاتی هست!

فرهاد حسن پور / بیرگیک

  پاسخ
تشکر شده توسط : Y.P.Y
#4
نقل قول:اما چرا فقط در مورد پایتون حرف زدی ؟
اگر درمورد روبی آن ریلز و... هم اطلاعاتی داری ارایه بده.
از ruby اطلاعی ندارم

نقل قول:راستی لطفا پی اچ پی رو با فریم ورک جانگوش که برای تحت وب هست مقایسه کن زبان سمت سرور چه احتیاجی به GUI داره ؟
زبان تحت وب احتیاجی به GUI نداره، اما قابلیت و قدرت BUILT-IN زبان رو نشون میده... درضمن خیلی از همین پروژه های تحت وب پایتون پنل مدیریتیشون تحت دسکتاپ هستش! که مستقیما با دیتابیس و فایلهای سرور کار میکنن. اینجوری امنیت بخش مدیریتیش هم بالا میره
خب این یه دلیل میشه برای انتخاب پایتون بجای PHP.
مثل بعضی از پروژه های تحت وب دات نتی


نقل قول:چندتا GUI برای پی اچ پی !:
https://github.com/gabrielrcouto/php-gui
http://php.net/manual/en/refs.ui.php
https://wxphp.org/
آره زیاد هستش اما اصلاً قابل مقایسه با فریم ورک های gui پایتون نیستن
همچنین دردسر و ناسازگاری با بسترهای متفاوت درش زیاده... یه نگاه به چارت dep همون برنامه gui PHP بنداز:
[عکس: rqi2_untitled.png]


نقل قول:در اینکه پایتون زبان خوبیه شکی نیست ولی لطفا سمت سرور ها رو با هم قیاس کیند.
همون نکات پست اولم، بجز قسمت GUI ش

نظر من ایناست.
وبلاگ: Yousha.Blog.ir


 کد کمتر => خطای کمتر => قابل فهمتر => خوانایی بالاتر => نگهداری بهتر

  پاسخ
تشکر شده توسط : farhadhp Null
#5
حالا اینایی هم که گفتی هیچ کدوم جدید نیستن
زبون برنامه نویسی های جدید این سه تا هستن که خیلی موفق بودن
Rust - موزیلا
Go - گوگل
Swift - اپل که کاری بهش نداریم Smile

البته اینا فقط سمت سرور هستن سمت کلاینت هم فریم ورکهایی مثل Angular2 و react سردمداری می کنن. البته چیزهای دیگه هم ممکنه باشن ولی این دو تا بیشترین رقابت رو با هم دارن
  پاسخ
تشکر شده توسط : farhadhp Reza Maysam.m
#6
نقل قول:حالا اینایی هم که گفتی هیچ کدوم جدید نیستن
زبون برنامه نویسی های جدید این سه تا هستن که خیلی موفق بودن
Rust - موزیلا
Go - گوگل
Swift - اپل که کاری بهش نداریم
اشاره کردم به محبوبیت رسیدن.

نقل قول:Go - گوگل
Swift - اپل که کاری بهش نداریم
با این دو اصلا کاری ندارم ؛‌ ایدولوژی اینا انحصار طلبیه !!!!

نقل قول:Rust - موزیلا
الان شنیدم.

اگه ممکنه در مورد رغبت به استفاده از اینا توضیح بدید.

Heart
همیشه برای یادگیری، موضوعاتی هست!

فرهاد حسن پور / بیرگیک

  پاسخ
تشکر شده توسط :
#7
(۱۳۹۵ دى ۰۵, ۱۰:۱۷ ب.ظ)farhadhp نوشته:
نقل قول:حالا اینایی هم که گفتی هیچ کدوم جدید نیستن
زبون برنامه نویسی های جدید این سه تا هستن که خیلی موفق بودن
Rust - موزیلا
Go - گوگل
Swift - اپل که کاری بهش نداریم
اشاره کردم به محبوبیت رسیدن.

نقل قول:Go - گوگل
Swift - اپل که کاری بهش نداریم
با این دو اصلا کاری ندارم ؛‌ ایدولوژی اینا انحصار طلبیه !!!!

نقل قول:Rust - موزیلا
الان شنیدم.

اگه ممکنه در مورد رغبت به استفاده از اینا توضیح بدید.

Heart

Swiff رو کاری ندارم. ولی Go چه ربطی به انحصار طلبی داره اینکه از قلب گوگل درآومده و الان به صورت پروژه مجزا ولی با هزینه گوگل داره انجام میشه کاری به انحصار طلبی نداره. لایسنسش هم جاییش نشون نمیده که انحصار طلب باشه. با لایسنس BSD انحصار طلبی معنی داره؟
ًRust هم که زبون موفقی بوده. با ایده ای که پیاده سازی شده ایده خوبی هست.
ولی باز هم به نظر من چیزهایی که گفتی تکنولوژی جدید وب نیستن که حتی جدیدن محبوب شده باشن اینها چندین ساله که محبوب هستن. شاید توی ایران دیرتر ولی خیلی وقته که محبوبیت زیادی رو پیدا کردن و الان دیگه نمیشه اسمشون رو گذاشت تکنولوژي جدید وب.


ولی در مورد GO که خودم کار می کنم
۱- طراحیش آزادتر و راحتتره. سینتکس خیلی راحتی داره و نیازی نیست که کلی وقت بزاری و یه کلی سینتکس های پیچیده یاد بگیری
۲- ساختار واحدی داره مثلا تا جای ممکنه از IO reader و IO Writer در جاهایی که ممکنه استفاده بشه استفاده کرده
۳- ابزارهای داخلی خودش به اندازه کافی هستن که ممکنه داخل خیلی از پروژه ها نیازی به استفاده از فریم ورک خاصی نباشه و شاید فقط استفاده از چند میکرو سرویس کافی باشه.
۴- نیازی به وب سرور جدا نیست و وب سرور خودش به اندازه کافی قوی هست و من همیشه با خیال راحت بدون nginx و apache با وب سرور خودش سایت رو بالا آوردم (مگر نیاز باشه که چند سایت دیگه هم روی سرور بیاد که البته من اونا رو هم با خود go هندل کردم)
۵- GC به شدت قوی داره و با کمترین delay شما نیازی نیست به فکر مصرف رمتون باشید.
۶- Go رو با خود Go نوشتن و هیچ نیازی به کامپایلر دیگه ای نداره
۷- زبون کاملا کامپایلی هست و به صورت کامل به صورت مستقل کامپایل و اجرا میشه
۸- cross compile هست و نیازی نیست برای کامپایل هر پلتفرم از ابزارهای اون پلتفرم استفاده کنید. مثلا می تونید توی لینوکس نسخه مک یا ویندوز رو هم کامپایل کنین
۹- یک سری مفاهیم جدید تعریف کرده که شاید اولش پیچیده باشه ولی وقتی مفهومش رو یاد بگیری ابزارهای به شدت کارآمدی هستن . مثلا goroutine یا channel ها و ...
۱۰ بهتون اطمینان میده که memory کاملا safe خواهد بود مگر در مواردی که با ابزارهای خودش می تونین توی روتین ها مموری safe داشته باشین
۱۱- به راحتی می تونین با کتابخونه های C بایندش کنین ولی بعد دردسرهای cross compile رو داشته باشه

البته اینها ویژگی های Go هستن و کاری به مقایسه با بقیه زبون ها ندارم چون به نظر من که کار اشتباهی هست. من به خاطر این ویژگی ها دارم ازش استفاده می کنم و به شدت ازش راضیم

در مورد Rust هم زبون برنامه نویسی جدیدی هست که ۱ سالی هست که نسخه رلیز شده داده
این ویژگی هایی هست که خودش توی سایتش معرفی کرده

zero-cost abstractions
move semantics
guaranteed memory safety
threads without data races
trait-based generics
pattern matching
type inference
minimal runtime
efficient C bindings
  پاسخ
تشکر شده توسط : farhadhp Hamid
#8
بحث زیاده. اما خیلی کوتاه میگم، آینده وب دست جاوااسکریپت خواهد بود.
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط :
#9
(۱۳۹۵ دى ۰۶, ۰۱:۵۲ ق.ظ)undefined نوشته: بحث زیاده. اما خیلی کوتاه میگم، آینده وب دست جاوااسکریپت خواهد بود.

سمت سرور یا سمت کلاینت؟
سمت سرور بخوای بگی که به کل باهاش مخالفم. سمت کلاینت هم بخوای بگی باز بستگی داره. نسخه های جدید مثلا ES6 ممکنه خوب بوده باشن ولی همه از مشکلات جاوااسکریپت خبر دارن. مثلا شاید داینامیک بودن متغیرها قبلا یه مزیت حساب میشده اما الان دیگه مزیت حساب نمیشه. کار به جایی رسید که typescript مایکروسافت با پوشش دادن یک سری از مشکلات جاوااسکریپت و ارائه سینتکس بهتر تونست جایگاه خیلی خوبی رو به دست بیاره و حتی فریم ورک های جدید بیسشون رو با typescript بچینن و بعد به js کامپایل کنن.
اینکه الان همه وب کارها باید javascript بدونن بیشتر دلیلش این هست که هیچ رقیبی براش وجود نداره و بحث انتخاب بی معنیه. و فقط کلی تلاش میشه که یک سری استاندارد بهش اضافه بشه و به مرور به مرورگرها اضافه بشه تا مشکلاتش حل بشه
  پاسخ
تشکر شده توسط : Null molana
#10
مقایسه نمیکنم، اینجا مقایسه درست نیست.
نقل قول:سمت سرور یا سمت کلاینت؟
هر دو.

نقل قول:سمت سرور بخوای بگی که به کل باهاش مخالفم.
یعنی رغیبی برای node.js سراغ داری؟ ببین اینکه بیام و با go مقایسه اش کنم از نظرم اشتباهه. هر کدوم به جای خودش. اما خب قدرتی که یه سری جاها node.js داره از خودش نشون میده مثل کارهای real-time بقیه ندارن.
سمت کلاینت هم داره هر روز بیشتر توسعه داده میشه، angularjs معرکه است. اینکه داینامیک بودن متغیرها قبلا یه مزیت حساب میشده اما الان دیگه مزیت حساب نمیشه یا خیلی چیزهای دیگه درست اما همینطور قرار نیست بمونه خودت داری میگی به مرور دارن مشکلاتش رو حل میکنن.
مثلا معماری سرویس گرا/ service-oriented architecture یا SOA، الان خیلی راحت میتونی سمت کلایت رو با angularjs مدیریت کنی.
ما یه زمانی فقط jquery داشتیم و نهایتش با slide down یک تگ html حال میکردم اما الان اصلا با اون موقع قابل مقایسه نیست.
کتابخانه های js خیلی زیاد و متنوع شدن.
شاید علت رشد جاوااسکریپت همینه که سمت کلایت رقیبی نداره.
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط : farhadhp Null


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان