سعید صالحی

بهترین زبان های برنامه نویسی 2020 برای یادگیری (رتبه ششم ---> ++C)

در حال حاضر حدود 600 زبان برنامه نویسی وجود دارد. تقاضا و محبوبیت هر کدام از آنها هر ساله در حال نوسان است. همچنین زبان های برنامه نویسی جدید با ویژگی های جذابی عرضه میشوند.

در حال حاضر، کدام زبان برنامه نویسی را باید آموخت؟ یادگرفتن یک زبان جدید همیشه یک سرمایه گذاری برای زمان و قدرت ذهنی شماست. اگر در حال حاضر برنامه نویس هستید و به چند زبان آن مسلط هستید، میتوانید زبان های مدرن دیگری بیاموزید.

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

  • هم اکنون جزو زبان های اصلی و تثبیت شده در صنعت توسعه نرم افزار باشد.
  • برترین رتبه ها را در وبسایت های مشهور برنامه نویسی داشته باشد.
  • محبوبیت آن در حال افزایش یا پایدار باشد و یا کاهش چشمگیری نداشته باشد.
  • دارای مجموعه ی بزرگی از کتابخانه ها(libraries)، چارچوب ها(frameworks)، ابزارهای پشتیبانی(tooling support) باشد و جامعه ی بزرگی را شامل شود.
  • در بازار کار با حقوق بالایی پذیرفته شود.

همچین موارد دیگری از جمله زمینه ی تاریخی، ویژگی های اصلی و کاربردهای اساسی هر کدام را به اختصار شرح میدهیم.

6. ++C

c++

در طول دهه ی 1970 Bjarne Stroustrup همراه با Dennis Ritchie (پدیدآورنده ی C) در آزمایشگاه Bell مشغول به کار شد. با تأثیر شدیدی که از C گرفته بود، او در ابتدا ++C را با افزودن ویژگی های شیء گرایی به عنوان یک افزونه ی C ایجاد کرد. با گذشت زمان ++C به یک زبان برنامه نویسی چندالگویی و چندمنظوره تکامل یافت. همانند C، ++C نیز دسترسی سطح پایین به حافظه را ارائه میدهد و مستقیماً به دستورالعمل های ماشین کامپایل میشود.

همچنین ++C کنترل کامل بر روی سخت افزار را ارائه میدهد اما با هزینه ی پیچیدگی تصادفی این کار را انجام میدهد و پشتیبانی سطح زبانی را برای امنیت حافظه و امنیت همزمانی تأمین نمیکند. به علاوه ++C ویژگی های خیلی زیادی را در اختیار میگذارد که آن را تبدیل به یکی از پیچیده ترین زبان های برنامه نویسی برای رسیدن به سطح حرفه ای میکند.

برای همه ی این فاکتورها و وابستگی آن به پلتفرم، ++C در دهه ی 2000 محبوبیت خودش را به جاوا واگذار کرد؛ مخصوصاً در توسعه ی نرم افزار های سازمانی و حوزه ی داده های بزرگ.

بار دیگر ++C با اوج گرفتن GPU، Containerization و محاسبات ابری در حال به دست آوردن محبوبیتش است؛ چون میتواند با بهره گرفتن از سخت افزار و تغییرات اکوسیستمی، خودش را سریعاً سازگار کند.

امروزه ++C یکی از مهم ترین و پراستفاده ترین زبان های برنامه نویسی در صنعت است.

3 ویژگی اصلی:

  • همانند جاوا، ++C نیز همواره در حال مدرن سازی و وفق دادن خودش با تغییرات در سخت افزار یا اکوسیستم است. ++C مدرن شده امن تر و سازنده تر و دارای جایگاه بهتری نسبت به نسخه های قبلی آن است.

  • شبیه به C، ++C نیز کنترل کامل و اساسی بر روی سخت افزار را میدهد و میتواند روی هر پلتفرمی اجرا شود و از هر نوع سخت افزاری بهره ببرد؛ فرقی نمیکند که GPU, TPU، کانتینر، فضای ابری، دستگاه های موبایل و یا میکروکنترلر باشد.

  • ++C به طرز چشمگیری سریع است و شدیداً در سیستم های عملکرد بحرانی و محدودیت منابع استفاده دارد. بسیاری از نرم افزار های خارق العاده از قبیل ماشین مجازی جاوا، موتور V8 کروم و خیلی از پایگاه داده ها در ++C نوشته شده اند.

محبوبیت:

در این لیست ++C دومین زبان برنامه نویسی قدیمی است و در رتبه بندی زبان های برنامه نویسی از نظر سایت معتبر TIOBE در رتبه ی چهرم قرار گرفته است:

C++-tiobe

بر اساس تعداد پروژه های ایجاد شده در سایت گیت هاب، Octoverse، ++C را در جایگاه ششم قرار داده است:

C++-octav

همچنین، نظر سنجی سایت StackOverflow نشان میدهد که ++C در سال 2019 در جای نهم محبوب ترین تکنولوژی ها و ششم محبوب ترین زبان های برنامه نویسی است:

C++-stack

اگرچه ++C در یک رقابت عظیم با زبان های برنامه نویسی مدرن مانند Rust یا Go قرار گرفته است، همچنان علاقه ی پایداری را از سوی کاربران در پنج سال گذشته تولید میکند. بنابر گزارش ترند های گوگل:

C++-trend

بازار کار:

در بازار کار آمریکا، بر اساس رتبه بندی سایت Indeed، زبان ++C با 41 هزار جایگاه شغلی در ژانویه ی 2020 در رتبه چهارم پر تقاضا ترین زبان ها و با حقوق سالیانه 108 هزار دلار در رده ی پنجم بیشترین حقوق پرداختی در بین زبان های برنامه نویسی قرار دارد:

C++-indeed

نظزسنجی سایت StackOverflow نیز نشان میدهد که برنامه نویسان ++C میتوانند حقوق بیشتری را نسبت به جاوا دریافت کنند؛ البته با تجربه ی طولانی تر:

C++-salary

کاربرد های اساسی:

  • برنامه نویسی سیستم

  • توسعه ی بازی

  • سیستم های IoT و Real-Time

  • یادگیری ماشین، یادگیری عمیق

  • سیستم های جاسازی شده، سیستم های توزیع شده

منابع: