یك شنبه 25 مهر 1400 |  عضویت / ورود

پیش‌بینی: دنیای آینده برنامه‌نویسی وب به سمت Fullstack JS پیش خواهد رفت؛ PHP و ASP و Python و... را فراموش کنید


در مطلب قبل درباره برخی اصطلاحات در دنیای طراحی وب توضیح دادم: توضیح چند اصطلاح در طراحی وب: Roadmap , Front-end, Back-end, Fullstack, DevOps یعنی چه؟

در اینکه در برنامه‌نویسی سمت کلاینت یا Front-end یا به عبارتی برنامه‌نویسی ایستا (Static) باید بر HTML و CSS و Javascript مسلط شوید شکی نیست چون مرورگرها فقط همین سه زبان را می‌شناسند. اما سؤال این است که:

برای Back-end (یعنی سمت سرور) چه زبان برنامه‌نویسی را یاد بگیرم؟

برای Back-end یا همان طراحی پویا (Dynamic) فعلاً تا این لحظه این گزینه‌ها را پیش رو دارید:

PHP
ASP
JSP
Python

که افرادی که با بنده دوره‌های طراحی وب را پاس کرده‌اند می‌دانند که من همانطور که در مطلب «کدام زبان برنامه‌ نویسی را یاد بگیریم؟» هم توضیح داده‌ام، زبان PHP را پیشنهاد می‌داده‌ام.

اما موضوع این است که چند سالی هست که به این لیست، NodeJS هم اضافه شده و ظاهراً دارد خوب پیش می‌رود. من در ابتدا شک و شبهه‌هایی درباره‌اش داشتم اما کم‌کم دارم قانع می‌شوم که پشتیبانان فعال و پیگیری دارد.

چرا Python نه؟

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

کسانی که می‌گویند همه جا صحبت از Python است و بعید است که این زبان نابود شود، احتمالاً زمانی که VB همه جا را گرفته بود به دنیا نیامده بودند یا حداقل به دنیای برنامه‌نویسی نیامده بودند. احتمالاً زمانی که همه جا صحبت از Delphi بود را درک نکرده‌اند! همان موقع من با هر دوی این زبان‌ها مخالف بودم و حالا کسی اسم آن‌ها را هم نشنیده! احتمالاً این افراد ده سال پیش که همه جا صحبت از Ruby on Rails بود را به یاد نمی‌آورند!؟

Python از نظر من به همان سرنوشت VB و Delphi دچار خواهد شد. مهم‌ترین دلیل آن این است که پایتون ساختار C-based ندارد. ساختار C-based مورد قبول هر انسان عاقلی است و به نظر می‌رسد ساختاری غیر از آن عاقلانه به نظر نمی‌رسد. (پایتون جداکننده دستورات را «خط جدید» قرار داده و از آن عجیب‌تر اینکه یک Block کد در آن با فرورفتگی کدها مشخص می‌شود! و دلایل مختلف دیگر از جمله: وجود آپشن‌های بهتر!)

چرا Node.js ؟

پیش‌بینی من این است که به زودی احتمالاً باید با PHP هم خداحافظی کنیم و به سمت NodeJS برویم؛ چون:

۱- نود.جی.اس همان جاوا اسکریپت است؛ پس نیازی به یادگیری زبان جدید ندارید.

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

۲- نود.جی.اس Asynchronous است ولی پی.اچ.پی Synchronous است.

تفاوت اجرای نامتفارن و متفارن در شکل زیر مشخص است:

https://img.aftab.cc/news/99/synchronous_vs_asynchronous.png

روال اجرای کدها در ASP و PHP به این صورت است:

  1. دستور به File System سرور ارسال می‌شود.
  2. منتظر می‌ماند تا سرور فایل مورد نظر را باز و اجرا کند.
  3. داده آمده می‌شود و به کلاینت ارسال می‌شود.
  4. سرور آماده اجرای دستور بعدی است.

اما در Node.js روال اجرا به این صورت است:

  1. دستور به File System سرور ارسال می‌شود.
  2. سرور آماده اجرای دستور بعدی است.
  3. هر زمان سرور فایل مورد نظر را باز و اجرا کرد، داده‌ی آماده شده به کلاینت ارسال می‌شود.

این تفاوت باعث شده که در تست‌های انجام شده، کارایی Node.js نسبت به PHP به این صورت باشد:

https://img.aftab.cc/news/99/php_vs_nodejs.png

یعنی Node,js بیش از دو برابر تقاضا در ثانیه نسبت به PHP هندل می‌کند. این تفاوت در سیستم‌هایی مانند تِستا که یک سیستم برگزاری آزمون آنلاین است و ممکن است هزاران کاربر هجوم بیاورند که در آزمون شرکت کنند، خودش را به خوبی نشان خواهد داد.

به نظر من همین دو تفاوت کافی است که کم‌کم PHP را رها کنیم و به Node.js بپیوندیم؛ اما توضیحات بیشتر در مقایسه این دو زبان در سایت GeeksForGeeks موجود است.

 

اگر تصمیم گرفته‌اید که Node.js را یاد بگیرید، طبیعتاً ابتدا نیاز دارید که زبان Javascript را یاد بگیرید؛ سپس کافی‌ست به سایت W3schools بروید و آموزش Node.js را دنبال کنید:

https://www.w3schools.com/nodejs

اگر شما جاوا اسکریپت و PHP را بلد باشید (که ما آموزش‌های ویدئویی هر دو را عرضه کرده‌ایم: آموزش‌های ویدئویی ما در فروشگاه)، به نظر من فقط یک روز کافی است تا Node.js را یاد بگیرید!

 

به افرادی که سر کلاس‌های طراحی وب من بوده‌اند و یا ویدئوهای آموزشی ما را دنبال کرده‌اند می‌گویم که: من در حال عبور از PHP به سمت Node.js هستم و حدس می‌زنم پروژه‌هایی مثل تستا و نمرا را دوباره با این زبان جالب بازنویسی کنم.

Fullstack JS

با توجه به آنچه گفته شد، مدتی هست که Fullstack JS مطرح شده است؛ توضیحات بیشتر:

https://www.w3schools.com/whatis/whatis_fullstack_js.asp

یعنی به طور خلاصه، در پُشته شما این زبان‌ها قرار بگیرد:

HTML
CSS
Javascript
NodeJS

 

موفق باشید؛
حمید رضا نیرومند


[ارسال شده در مورخه : جمعه، 8 اسفند، 1399 توسط Hamid]
[ #برنامه‌ نويسي]



بازدیدها از این مطلب: 3146 بار   امتیاز متوسط :   تعداد آراء: 1   امتیاز دهید:

نظرات طرح شده

نام: [ کاربر جدید ]
ایمیل:

نظر:


اجازه استفاده از تگهای HTML را ندارید


جمع عدد 9 با 5 را در كادر زیر وارد نمایید:
(این كار برای جلوگیری از فعالیت موتورهای اسپمر است)


* توجه: نظر شما بعد از بررسی، نمایش داده خواهد شد.

hasan ghanbari (امتیاز : 0)(لینک نظر)
توسط hasan ghanbari در مورخه : شنبه، 9 اسفند، 1399
عالی بود.
همونطور که طی این سال‌ها گفتید، جاوااسکریپت در آینده پیشتاز تمام عرصه‌ها میشه،
پس بهتره ما هم خودمون رو با این روند تطبیق بدیم و پیشرفت کنیم.

من هم به دنبال جایگزینی برای PHP هستم. بین node.js و go دارم بررسی میکنم.
هردوشون خوبن فقط آمار کوچ‌کنندگان از php به go بیشتره و اینکه اگر قبلا php کار کردی سریعتر با این زبان اخت میگیری، اگر هنوز به دنیای بک‌اند وارد نشدید بهتره از node.js شروع کنید.

در کل برای فول استک شدن این روند رو پیشنهاد میدم
1- HTML, CSS, JS
2- React OR Angular OR Vue
3- Git
4- PHP OR GO OR node.js
5- Mysql OR Mongodb
6- اگر php رو انتخاب کردید -> Laravel

نکته: حتما نیاز نیست فول استک بشید. تا مرحله 3 که بیایید کلی کار هست و میتونید تو بخش فرانت اند مشغول به کار بشید.


[ ارسال جوابیه ]


حمیدرضا (امتیاز : 0)(لینک نظر)
توسط حمیدرضا در مورخه : شنبه، 9 اسفند، 1399
نصیحتی به تازه کاران
حتما و حتما یک پروژه رو با لاراول پیاده کنید و دوباره همون پروژه رو با روبی آن ریلز یا پایتون جانگو یا هر چیز دیگه ای که دوست دارید بازنویسی کنید ! بدون شک از php متنفر میشین بخصوص سینتکسش و از خودتون عصبی میشید که چرا سالیان سال با وجود بنز و لکسوس رایگان از گاری استفاده کردید.


[ ارسال جوابیه ]


imun (امتیاز : 0)(لینک نظر)
توسط imun در مورخه : پنجشنبه، 14 اسفند، 1399
در مورد پایتون اصلا باهاتون موافق نیستم چون طبق نظرسنجی استک آورفلو جزو 3زبان محبوب بین توسعه دهندگان است و با وجود این همه پکیج و فریم ورک خفن و کاربردهای مهمش در زمینه بیگ دیتا و کلاً علوم داده بعیده به سرنوشت وی بی یا دلفی دچار بشه. اساساً مقایسه اشتباهی کردین.
در خصوص روال اجرای ASP که اولاً ASP دیگر وجود ندارد و در حال حاضر هم اپلیکیشن های ASP.NET کامپایل شده روی وب سرور قرار می‌گیرند و بهترین پرفورمنس در فریم ورک های حال حاضر وب را دارد.
بله فول استک JS هم یکی از انتخاب هاست اما ترند اصلی وب در آینده WASM خواهد بود! یعنی استفاده از زبان های سروری در مرورگر! مطمئاً نام "وب اسمبلی" به گوشتان خورده که جزو استانداردهای وب است و تمام مرورگرهای مدرن از آن پشتیبانی می‌کنند جز IE! و ماکروسافت فریم ورک قدرمند Blazor را هم روی همین مفهوم پیاده سازی کرده که مطمئن باشید در موردش بیشتر خواهید شنید.


[ ارسال جوابیه ]

    [بدون موضوع] (امتیاز : 0)
    توسط کاربر مهمان در مورخه : سه شنبه، 31 فروردین، 1400
    سلام
    موافقم، دقیقا مشابه همین نظرات را میخواستم ارسال کنم که دیدم شما ارسال کرده اید.


    [ ارسال جوابیه ]


عبداللهی (امتیاز : 0)(لینک نظر)
توسط عبداللهی در مورخه : پنجشنبه، 28 اسفند، 1399
سلام ببخشید اینو گوش کنید توش توضیح میده چرا php از نودجی اس و پایتون بهتره
https://roocket.ir/podcast/1015


[ ارسال جوابیه ]


عبداللهی (امتیاز : 0)(لینک نظر)
توسط عبداللهی در مورخه : پنجشنبه، 28 اسفند، 1399
راستی اینم ببینید
https://www.wappalyzer.com/technologies/programming-languages
لیست برترین زبان های وب


[ ارسال جوابیه ]


Emily (امتیاز : 0)(لینک نظر)
توسط Emily در مورخه : جمعه، 20 فروردین، 1400
با سلام
احتراما با نظرات شما کاملا مخالفم.
تقریبا در همه آنها عکس آن نظر را دارم.

اما
۱. نقطه قوت پایتون ساختار ساده آن است. به همین دلیل مورد اقبال غیربرنامه نویسان درآمده است و به دلیل مناسب بودن برای پروژه های علمی و یادگیری ماشین، اقبال به آن روز به روز بیشتر می شود. برای برنامه نویسان واقعی هم ساختار کد و بلاک اهمیت چندانی ندارد
۲. جاوااسکریپت احتمالا به زودی رو به افول خواهد رفت، اما نه سریع. وب‌اسمبلی به سرعت در حال قدرت گرفتن است. همین الان می توانید در فلاتر پروژه های وب با این فناوری بسازید و هرگز در فرانت نیاز به جاوااسکریپت نخواهد بود. البته پرشدن جای جاوااسکریپت و آماده شدن کامل جایگزین‌ها چند سال زمان می خواهد.


[ ارسال جوابیه ]