کمک برای انتخاب مسیر در برنامه نویسی


#1

با سلام و خسته نباشید خدمت همه عزیزان
من میخواستم که در مورد نظرات شما راجع به زبان های برنامه نویسی بدونم
و بدونم که چه زبان هایی رو پیشنهاد میکنید
اول اینکه میخوام بگم من میخوام یک توسعه دهنده وب باشم
و از چند ماه قبل شروع کردم به یاد گرفتن مبانی برنامه نویسی و غیره
و تقریبا از فرانت اند وبسایت ها حالیم شده
ولی چون بیشتر میخوام رو بک اند تمرکز کنم میخوام یه زبان برنامه نویسی انتخاب کنم که روی اون تمرکز کنم
بسیاری از موضوع های سایتو دیدم ولی هر بار که یه پست جدید میخونم بیشتر ذهنم قاطی پاتی میشه
حالا اول اینکه من یکم از پی اچ پی خوندم ولی دیدم که همه میگن پی اچ پی و فلان
حالا تصمیم گرفتم یه زبان انتخاب کنم که برام مفید باشه چه از لحاظ حال و چه اینده
زبان هایی که مد نظرم هست php,python,node.js,ruby,elixir
که اینجا چند تا سوالم هست که:
1-پی اچ پی نمیدونم دیگه کسی محالش نمیزاره و یکم بهش بی احترامی میشه
2-و الکسیر و فونیکس که اخه یه سوالم اینه که چرا زبان های جدید میرن سمت فانکشنال یا اصن فانکشنال یا شی گرا ؟ مگه شی گرا چشه؟؟
نمیدونم والا سوال زیاد دارم ولی زیادی طولانی میشه و شد…
بازم ببخشید و سپاس که میخواین جواب بدین.
در ضمن اینکه بیشتر برنامه نویس های وب اصن تکنولوژی های جدید و خوب رو نمیدونن و فقط asp و php رو بلدن و میگن اون دو تا و هیچ ولی شما خیلی با سواد و خوب حرف میزنین و منطقی حرف میزنین و با سند …
میخوام از شما کمک بخوام … و اینکه بعضیا میگن همشونو یاد بگیر… درست خوبه … ولی دیگه باید از یه جا شروع کرد …مگه نه؟؟ من از کجا شروع کنم؟؟
سوالای زیادی پرسیدم میدونم ههههههه …ولی درک کنید … ممنون


زبان برنامه نویسی مناسب برای سمت سرور
#2

به نظر من به سوی بیشتر از دو زبان به صورت جدی همزمان نرو. اینکه چه زبان هایی میخوای یاد بگیری بستگی داره به اهداف شخصی و حوزه ی کارشما
به نظر من یک زبان فانکشنال یاد بگیرید الیکسیر کلوژر سکالا انتخاب شماست. زبان های فانکشنال در ساخت سیستم های کم نقص و ارتقاپذیربسیار کارآمد هستند و به طور کلی طرز فکر به برنامه نویسی و کاملا تغییر می‌دهند
زبان دوم میتونه زبان های که در بازار محبوب هستند و در آینده هم محبوب خواهند ماند مثل Go Python Ruby
ولی به نظر من همه ی این زبان ها رو باهم یادنگیرید


#3

سلام
دوست عزیز چه شما بخواین چه نخواین حدود 80 درصد سایت ها با php برنامه نویسی شده
من خیلی در این مورد علم ندارم که بخوام به شما بگم اما نظر و پیشنهاد من اینه که لزوما درست نیست
من میگم شاید برای بعضی سایت ها یا بعضی اهداف خاص python یا ruby یا … خیلی بهتر باشه
اما چیزی که base و پایه هست php هستش
شما اول php رو یاد بگیرین بعد زبان های دیگه مثل پایتون
من توی برنامه نویسی وب فعالیت نمیکنم
اول با c++ شروع کردم ولی وارد شی گراییش نشدم
شی گرایی رو با جاوا یاد گرفتم و توی C# هم کد میزنم در حد مبتدی
چیزی که میتونم بگم شباهت بسیار بسیار زیاد C# و جاوا در شی گرایی هست
و در حالت کلی شباهت هر سه زبان به هم بدون در نظر گرفتن شی گرایی
موقعی که c++ رو یاد میگرفتم سرعتم خیلی کم بود ولی الآن توی کمتر از یک روز تونستم با راهنمایی یکی از دوستانم با c# برنامه بنویسم
فقط و فقط چون پایه قوی ای داشتم و الآن یاد گرفتن یه زبان جدید اونقدرا برام سخت نیست چون کلیت زبان های برنامه نویسی شی گرا رو میدونم
پس به شما پیشنهاد میکنم php که به صورت پایه برای برنامه نویسی سمت سرور استفاده میشه رو اول یاد بگیرین
ولی این اصلا به این معنا نیست که یادگرفتنش کافیه
ضمنا این رو هم مدنظر داشته باشید 80 درصد توسعه دهندگان وب هیچ وقت یه هو باهم اشتباه نمیکنن
یه پیشنهاد جدای این بحث:
روی جاوا اسکریپت هم برای یادگیری وقت بزارید
خیلی خوبه
جاوا اسکریپت احتمالا میدونید ولی بازم میگم زبان برنامه نویسی وب هست که روی سیستم کاربر اجرا میشه نه روی سرور و از منابع سیستم کاربر استفاده میکنه
یک سایت تونسته با جاوا اسکریپت ویندوز 98 رو روی مرورگر اجرا کنه که این نشون میده این زبان چه قدر قدرتمند هست
لینک سایت رو اگه خواستین بگید بدم بهتون


#4

node.js رو فکر کنم فراموش کردین


#5

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

۲- اینکه چرا فانکشنال یحثش خیلی مفصل هست اما به طور خیلی خلاصه باید بگم که شی گرائی علاوه بر مشکلات تکنیکی پیچیدگی ای رو به نرم افزار تحمیل می کنه که اصلا نیاز نیست با بزرگ شدن نرم افزار این پیچیدگی ها هم بزرگ می شن و نگهداری و توسعه نرم افزار رو بقدری سخت می کنن که عموما باز نویسی بهتر هست.

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

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


#6

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

من سالها PHP کار کردم. با زبان هایی مثل ++C/C و Java Clojure Ruby Python Js Perl Erlang به صورت حرفه ای کار کردم و با زبان هایی هم مثل Haskell Scala Elixir و Go هم بصورت انفرادی کار کردم. با توجه به تجربه و چیزایی که دیدم PHP بدترین زبانی بوده که تا حالا دیدم. و آینده ای برای این زبان نمی بینم.

به نظر من فقط به درد business های کوچیک می خوره.


#7

توضیح بسیار عالی بود ، ممنون میشم ارتباط نزدیک تری با شما داشته باشم . ولی نمیتونم بهتون پیام بدهم .


#8

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


#9

درود بهترین منبع الکسیر به زبان فارسی فعلنه در همین سایت هست.

یک کتابی بود من ۴ فصلشو ترجمه کردم و همینطور لطفا این پست بخونید


#10

اگر به fp علاقه دارید پیشنهاد میکنم علاوه بر elixir حتما به haskell و clojure هم نگاهی بندازید.


#11

giphy ها دیده میشه؟

cc @shahryarjb


#12

با آیپی غیر ایران آره توماج جان


#13

من الان با ip ایرانی دیدم باز کرد،
منظور اینه که فیلتره؟


#14

بله فیلتر هست :roll_eyes:


#15

بله منظور بنده هم همین بوده توماج جان فیلتره


#16

سلام.
منم قصد دارم یکی از برنامه های کلوژر یا سکالا را شروع کنم به یادگیری.
میشه یکم در مورد هر کدام و کاربردهاشون توضیح مختری بدید؟


#17

clojure زبان از خانواده LISP روی JVM و CLR
LISP یک نوع خانواده زبان functional هستند که در MIT برای AI اول توسط John McCarthy طراحی شد LISP قابلیت متاپروگرامینگ بهتر از هر نوع زبانه دیگه داره چون تمام کد اصلی با داده و ماکرو ها هیچ تفاوتی ندارن و شما تمام عملکرد زبان میتونی به صورته دینامیک تغییر بدید
برای اطلاعات بیشتر به hygienic macro و homoiconicity نگاه کنید clojure یک زبانه کاملا دینامیک هستش

سکالا زبانه OOP و functional روی JVM که بیشتر به ML و Haskell نزدیکه چون statically typed و اکثر به کاملا pure بودن اهمیت میده
سکالا هدفش درستی برنامه در زمانه کامپایل توجه به جبر و تایپه یعنی با کامپایل شدن به احتمال خیلی زیاد برنامه درست کار میکنه
سکالا در کل سخت و پیچیده تره ولی community بزرگی داره چه در زمینه big data چه در ساختن سرویس های وب

در آخر هر دو زبان های خوبی هستن و دیده شما رو در مورده برنامه نویسی عوض میکنن


#18

به فرموده های سام عزیز یه سری نکته رو هم اضافه کنم. کلوژر رو بلتفرم جاواسکریپت هم به خوبی کار می کنه. و بر خلاف سکالا داینامیک تایپ هست. البته هر جا لازم بدونین می تونین از بایپ ها استفاده کنین اما خوب در کل داینامیک تایپ هست.

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


#19

سلام,
scala یک زبان پیچیده (به معنی دارای امکانات بسیار زیاد) و بزرگ شئ گرا با پشتیبانی قوی از FP هست و لی کلوژر یک زبان بسیار ساده فانکشنال و در اصل یک گویش از لیسپ برای JVM و‌غیره که سمیر و سم همه این ها رو گفتند.

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

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