بهترین زبان‌های برنامه‌نویسی برای زندگی امروز چی هستن؟

محبوب‌ترین زبان‌های برنامه‌نویسی در جهان در سال 2016، در نمودار زیر رتبه‌بندی شده‌اند.
بر اساس این رتبه‌بندی، Python، محبوب‌ترین زبان برنامه‌نویسی است و زبان‌های ساده‌تری مثل R یا Bash، از پایین‌ترین محبوبیت برخوردارند:

پرسش

  1. چرا بعضی از زبان‌های برنامه‌نویسی نسبت به سایر آن‌ها محبوب‌ترند؟

  2. زبان‌های برنامه‌نویسی برتر چه خصوصیاتی دارند و چه محصول‌هایی را می‌توان با آن‌ها تولید کرد؟

  3. کدام‌ زبان‌ها برای درآمدسازی و یا تولید محصول مناسب‌تر هستند؟

9 پسندیده

بستگی داره که برای چه کاری بخواهید برنامه نویسی کنید.یه جورایی رسمه که هرکی بخواد برنامه نویسی هر زبانی رو یاد بگیره اول سی و سی پلاس پلاس رو یاد میگیره که انصافا زبان های فوق العاده کاملی هستن و هرکاری باهاشون میشه کرد فقط یه کم سخت هست.
در کشور ما الآن چنتا زبان هست که خیلی کاربرد داره و میشه از اونا راحت پول در آورد که میشه به زبان جاوا(که به برنامه نویسی اندروید ختم میشه) و زبان سی شارپ(که میشه باهاش تقریبا برای خیلی از دستگاه ها چه ویندوز باشن و چه آی او اس و … برنامه و اپ نوشت)اشاره کرد.
طبق آمار جهانی(در ایران صدق نمیکند :smile:)پول ساز ترین زبان برنامه نویسی زبان سی پلاس پلاس هست.

6 پسندیده

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

برای یه شخص تازه کار من همیشه سی پلاس پلاس (استاندارد ۲۰۱۱ به بعد) رو توصیه می کنم و اصلا قبول ندارم که زبان سختیه. با این زبان شما مفاهیم مهم پایه‌ای رو یاد می‌گیرین که بعدا شما رو در یادگیری بقیه زبان‌ها کمک می‌کنه. یکی دیگه از مزیت‌های این زبان جامعه بزرگ کاربرهاشه که می‌تونه به شما در حل مشکلاتتون کمک کنه. به علاوه بخش زیادی از کتابخانه‌ها و کدها با سی پلاس پلاس نوشته شده که به راحتی می‌تونین از اونها استفاده کنین.

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

با اطمینان توصیه می‌کنم که سراغ این زبان‌ها نرین:
۱. زیان سی - ایرادهای مفهومی زیادی داره که در کتاب آخر Bjarne Stroustrup بهشون اشاره شده و موجب ابهام و سردرگمی برنامه نویس میشه. از طرف دیگه مفاهیم جدید برنامه نویسی در این زبان وجود نداره.
۲. زبان سی پلاس پلاس استانداردهای قبل از ۲۰۱۱ - مفاهیم جدید برنامه نویسی در این زبان وجود نداره و اصلاحات زیادی امروزه انجام شده که تو استانداردهای قدیمی نیست.
۳. پایتون ۲ - اگه می‌خواین پایتون باد بگیرین حتما آخرین نسخه رو یاد بگیرین.
۴. سی شارپ - فکر می کنم فقط تو ایران پر طرفداره و فکر می‌کنم دلیل پرطرفدار بودنش ریشه در باورهای غلطی داره.

10 پسندیده

من با یه framwork آشنا شدم که برنامه نویسان C++ رو فوق العاده قوی میکنه.
فریمورک QT!!
این فریمورک بر مبنای سی پلاس پلاس نوشته شده و دستورات اصلیش، همون دستورات اصلیه C++ هست.
با QT همه کار میتونیم بکنیم و همه جور برنامه هایی حتی برای آندروید بنویسیم.
این فریمورک به نظر من برای کسایی که سی پلاس پلاس بلدن میتونه بهترین زبان برنامه نویسی باشه چونکه باهاش همه کار میشه کرد.

5 پسندیده

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

  • جامعه کاربری بزرگی داره. بنابراین جواب سوال هاتون رو راحت تر پیدا می کنید.
  • ساختن رابط گرافیکی باهاش کار راحتیه به ویژه اگه از qt یا wxwidget استفاده کنید.
  • کتابخانه های زیادی برای کارهای مختلف وجود داره که کار برنامه نویس رو راحت تر می کنه.
  • کدهای سی پلاس پلاس خواناتر هستند. البته این به برنامه نویس هم بستگی داره.
  • موازی سازی با سی پلاس پلاس راحت تره از این نظر که منابع زیادی براش وجود داره.
  • برای کسانی که محاسبات علمی می کنند، سرعت بالاتری نسبت به پایتون دارد.
4 پسندیده

سلام
چیزی که من حس میکنم اینه که دلیل محبوبیت 3چیزه:

  1. نزدیک بودن به زبان انسان(پایتون که خداس در این زمینه) و قاعدتا کد زنی ساده تر و البته مناسب برای تنبل ها :smile:
  2. افیشینت و کارایی بالا(سطح بالا بودن)
  3. اینکه اون زبون پلتفرمش جوری باشه که هر جایی و روی هر سیستمی بشه اونو ران کرد(مثل رابط گرافیکی جاوا) که چه تو مک بیاد چه تو ویندوز چه تو اندروید فرقی نمیکنه و همینه باعث شده از خاندان c جلو باشه :slight_smile:
3 پسندیده

There are only two kinds of languages: the ones people complain about and the ones nobody uses.
Bjarne Stroustrup

چیزی به عنوان به‌ترین زبان برنامه‌نویسی نداریم، این دقیقاً همون مشکلیه که ما ایرانی‌ها باهاش سروکله می‌زنیم. امیررضا قادری چند تا نوشتۀ دقیق و مفید داره که با خوندن‌شون می‌تونید نتیجه‌گیری خوبی داشته باشید:

8 پسندیده

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

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

چرا اکثر مردم تو ایران از رنگ مشکی توی لباس‌هاشون استفاده می‌کنن؟ این یعنی رنگ مشکی محبوب‌ترین رنگه؟ یا شاید به خاطر کاربردشونه و تعداد بیشتری از آدم‌ها که به اون کاربرد نیاز دارن؟
به نظرم توی زبان‌های برنامه‌نویسی هم قضیه به همین صورته. iDevice‌ها‌، محبوبیت زیادی از زمان ورودشون به دست آوردن و خوب طبیعتا تقاضا برای توسعهٔ نرم‌افزار براشون بالا رفت‌، این‌طوری برنامه‌نویس‌های بیشتری هم رفتن سمت objective c یا الان swift. همچین قضیه‌ای برای وب هم پیش اومد. البته در خصوص وب انتخاب چندان زیادی سمت مرورگر نبود قبلا (الان هم که داره زیاد می‌شه انتخاب‌ها احتمالا تا مدتی کسی جرأت استفاده ازش رو به خرج نمی‌ده :wink: ) و برنامه‌نویس‌ها مجبور بودن از یه زبان برنامه‌نویسی بی‌کیفیت به اسم جاوااسکریپت استفاده کنن. ولی این یعنی برنامه‌های تولیدیشون هم بی‌کیفیت شد؟ نه حقیقتش. خلاقیت برنامه‌نویس‌ها باعث شد هم خود زبان کلی پیشرفت کنه و هم ابزار‌هایی روی همین بستر توسعه داده بشه که جلوی پیشرفت وب رو نگیره.

به نظرم بهترین زبان برنامه‌نویسی زبانیه که برنامه نویسش رو خوشحال کنه :smile: ماهیت زبان برنامه‌نویسی همینه و اصلا برای همین به وجود اومده. وگرنه مام می‌رفتیم می‌نشستیم به زبان ماشین برنامه می‌نوشتیم که خیلی بهینه هم می‌شد. حالا زبان چطور برنامه‌نویس رو خوشحال می‌کنه؟‌

  • بستگی به مساله‌ای داره که برنامه نویس می‌خواد حلش کنه.
  • بستگی به مدل حل مساله‌ای داره که برنامه‌نویس ازش استفاده می‌کنه.
  • باید بتونه ایده‌های برنامه‌نویس رو اون‌جوری که برنامه‌نویس خوشش می‌آد نشون بده.

تمام زبان‌های برنامه‌نویسی محصول تولید می‌کنن. ولی برای در آمدزایی از محصول باید به این سوال‌ها راجع به محصولت فکر کنی و بعد زبان رو انتخاب کنی:

  • چقدر زمان برای آماده کردن محصولت در دست داری؟ (بعضی وقت‌ها محصول‌های خیلی خوب موقعی به بازار می‌رسن که احساس نیاز بهشون دیگه از بین رفته!)
  • قراره خودت تنهایی توسعش بدی؟ یا در نظر داری که از کمک بقیه استفاده کنی؟
  • کاربر محصولت قراره چطور از نرم‌افزار استفاده کنه؟ (وب؟ موبایل؟ PC)
  • به نظرت چند تا کاربر خواهی داشت؟ (جامعه هدف محصولت چقدر بزرگن؟)

جواب به این‌ها شاید بهت این ایده رو بده که چه زبانی رو باید انتخاب کنی‌، چطور؟

  • اگه محصولت باید سریع حاضر شه‌، هر چقدر زبان هدفت سطح بالاتر باشه بهتره. پس با وجود این که می‌شه با C وب‌سایت بیاری بالا‌، هر چقدر هم که باحال باشه‌، بهتره بی‌خیالش شی.
  • اگه محصولت باید سریع حاضر شه‌، شاید بهتر باشه بیشتر از زبان تاکید بر انتخاب فریم‌ورک داشته باشی‌. برای برنامه‌های سیستمی معمولا یه ابزار مثل Qt یا… کل نیازت رو برطرف می‌کنه. ولی سمت وب یا موبایل که می‌آی بسته به ساختار پروژت ممکنه نیاز به چند تا فریم‌ورک داشته باشی… مثلا flask برای سمت سرور (بک‌اند) و react برای سمت کاربر.
  • اگه فریم‌ورک انتخاب می‌کنی باید بسته به زمانت انتخاب کنی که چقدر می‌خوای انعطاف‌پذیر باشه؟ بعضی فریم‌ورک‌ها مثل مدل‌های وبشون express و flask (معروف به میکروفریم‌ورک) فقط نیاز‌های اولیه رو برات محیا می‌کنن و باقیش دست خودته چطور پلاگین‌هاشون رو با کد‌های خودت مخلوط کنی و ازشون استفاده کنی. بعضی دیگه مثل spring, django و یا rails از شیر مرغ تا جون آدمیزاد رو اونطوری که خودشون فکر می‌کنن درسته انجام می‌دن که البته خوبیش سرعت بیشتر در انجام کارته و بدیهاشم هر وقت بهش نیاز پیدا کردی می‌بینی!
  • اگه قراره رو کمک بقیه حساب کنی‌، طبیعتا زبانی رو باید انتخاب کنی که می‌تونی امید به پیدا کردن همکار توش داشته باشی! مثلا اگه هدفت وب باشه دور زبانی مثل Elixier و فریم‌ورک وبش Phoenix رو با تمام باحال بودناش باید خط بکشی! (البته مگه این که دور و برت آدمایی بشناسی که به این زبون حرف بزنن :joy:
  • اگه فکر می‌کنی پروژت پتانسیل گوگل شدن داره‌، شاید دلت بخواد نگران سرعت ابزار‌هات باشی! تازه اون موقع هم اینقدر پول در آوردی احتمالا که بدی کل پروژت رو دوباره بنویسن.

نتیجه

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

8 پسندیده

@Ali_Shakeri می‌شه لطفا اسم این کتاب رو هم ذکر کنی؟

کتاب در این آدرس هست. خیلی کتاب مفصلی است و نویسنده در این کتاب از موضوعات مقدماتی عبور کرده است (به قول خودش) و به موضوعاتی که کمتر به آن می‌پردازند پرداخته است.

1 پسندیده

1 پست به یک موضوع جدید منتقل شدند: چه جوری می تونم یه نرم افزار اندروید بسازم؟

سلام
خب زبان برنامه نویسی رو با توجه به اهدافی که دارید، برای یادگیری باید انتخاب کنید
مثلا اگر هدفتون توسعه ی سافتور هستش، باید سمت زبان هایی مثل جاوا یا سی پلاس پلاس برید چون ساختار و بستر بسیار
عالی رو برای این کار فراهم کردند
اگر هدفتون از یادگیری برنامه نویسی ورود به حوزه هایی مثل Machine learning و یا Neural Networks و یا Data Mining
و به صورت کلی تر مهندسی و دانش هستش، زبان های اسکریپتی قدرتمندی مثل پایتون و متلب بصورت اپتیماز و با توانایی و سختی کم مخصوص این کار هستن…پایتون واقعا مخصوص این کار های مهندسی و دانش پایه هستش بخاطر سادگی، قدرت بسیار زیاد، اپن سورس بودن ، وجود تیتوریال های فراوان و رایگان ، وجود ماژول های مختلف برای هر فیلد مرتبط با دانش و مهندسی از جمله هوش مصنوعی،محاسبات ریاضی پیچیده و …
کلا هر چی ازش تعریف بدیم کم دادیم…

البته اینو هم بگم با پایتون همه کاری میشه کرد…
طراحی گیم ، توسعه ی اپ ، برنامه نویسی تحت وب(سمت سرور)، کار های مهندسی و دانش پایه(مثل هوش مصنوعی و پردازش تصویر) و …
هر کدوم از این کارا با ماژولی که براش تعریف شده ، انجام میشه

در کل بسته به کاری که میخواید بکنید، زبان های برنامه نویسی خوب و متعددی وجود داره
و بصورت کلی نمیشه گفت کدوم از کدوم بهتره
چون هم ملاک های بهتر بودن از دید هر کسی میتونه متفاوت باشه
هم اینکه هر زبانی برای هدف خاصی طراحی شده و مقایسه ی عمومی زبان ها کار اشتباهیه…!!!

1 پسندیده

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

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

در تایید حرف بقیه دوستان واقعا نمیشه گفت کدوم زبون بهتره ! دلیل این هم که محبوبیت بعضی زبان ها بیشتره اینه که این زبون ها اکثرا تو دانشگاه ها تدریس میشن و این که نیاز به هزینه کردن ندارن برای این که بتونیم ازشون استفاده کنیم .

بنده آماری رو خوندم که بیشتر از 80% نرم افزار های تجاری در چهارچوب دات نت نوشته میشه با این حال محبوبیت زبان vb و c# که 2 تا زبون اصلی برای کد نویسی در این چهارچون هستن روی هم رفته به 10% هم نمیرسه ! چون برای برنامه نویسی با این ابزار باید لایسنس های گرون ماکروسافت رو خریداری کرد که البته تو ایران ما همچین چیزی نیست :joy:

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

3 پسندیده

چطور Qt میتونه زبان باشه؟ اگر امکان داره توضیح بدین

1 پسندیده

10 نوشته برای بحث متمرکزتر به موضوع دیگری منتقل شدند: مقایسه زبان Rust و زبان C++: هر کدام چه نقاط قوت و ضعفی دارند؟

جمع‌بندی پاسخ‌های «بهترین زبان‌های برنامه‌نویسی برای زندگی امروز چی هستن؟»

این نوشته خلاصه‌ای از موضوعی پربازدید، در محیط نوآوری بازِ پادپُرس است. راهبران پادپُرس، برای سهولت دسترسی شما، این جمع بندی از پاسخها را فراهم آورده‌اند.اگر مایل به بیان تجربه خود در این موضوع هستید، ثبت‌نام کنید.

یادگرفتن چند زبان برنامه‌نویسی، مثل داشتن یک جعبه‌ابزار است

بهترین زبان برنامه‌نویسی به معنای واحدی جهان‌شمول، که هر مسئله‌ای را با بازدهی و کیفیت مطلوب حل کند، وجود ندارد. ملاک‌های انتخاب بهترین زبان برنامه‌نویسی، از نظر کاربران، بسته به نوع کارکرد و اهداف کاربر، متفاوت هستند. نمونه‌هایی از مهمترین اهداف انتخاب و کارکردهای زبان‌های برنامه‌نویسی که در این موضوع یاد شده‌اند، عبارتند از:

  • انجام محاسبات علمی

  • درآمدزایی

  • توسعه نرم‌افزار

  • و ….

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

با این وجود، تعدادی از زبان‌های برنامه‌نویسی، با فاصله‌ بسیار خوبی نسبت به سایر آن‌ها، نیازها و اهداف اکثر کاربران را پوشش داده و در صدر قرار گرفته‌اند، که ویژگی‌های برخی از این زبان‌ها به نقل از کاربران این موضوع، در جدول زیر خلاصه شده‌اند:

زبان برنامه‌نویسی ویژگی‌های مثبت ویژگی‌های منفی
C دارای ایرادهای مفهومی است (منبع)، فاقد مفاهیم جدید برنامه‌نویسی است
C++(استانداردهای بعد از 2011) مناسب برای شروع یادگیری، مناسب برای یادگیری مفاهیم مهم و پایه‌ای، جامعه بزرگ کاربرها (برای حل مشکلات)، زیربنای بخش زیادی از کتابخانه‌ها و کدها، توسعه‌ نرم‌افزار با آن ساده‌تر است، ساختن رابط گرافیکی با آن ساده‌تر است، موازی‌سازی با آن ساده‌تر است، برای محاسبات علمی، سرعت بالاتری نسبت به Python دارد در نسخه‌های قبل از سال 2011: مفاهیم جدید برنامه‌نویسی وجود ندارد، دارای ایرادهای کاربردی است که در نسخه‌های جدید برطرف شده‌اند
C# پرکاربرد در ایران، بهترین راه کسب درآمد، مناسب برای نوشتن برنامه (application) برای بسیاری از پلتفرم‌ها
Python ساده و قدرتمند، متن‌باز، نزدیک به زبان انسان، بازدهی و کارایی بالا، قابلیت اجرا روی بیشتر سیستم‌‌عامل‌ها، مناسب برای حوزه‌های مهندسی و دانش از جمله: Machine Learning, Neural Networks, Data Mining, مناسب برای طراحی بازی کامپیوتری، توسعه‌ برنامه (application)، برنامه‌نویسی تحت Web نسخه Python2 دارای ایرادهایی است.
Java مناسب برای توسعه‌ نرم‌افزار و برنامه‌نویسی Android

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

6 پسندیده