برترین و محبوب ترین زبان های برنامه نویسی در سال ۲۰۱۸ — راهنمای جامع
تعیین این که کدام یک از زبانهای برنامهنویسی در میان فهرست بلندبالای این زبانها محبوبیت بیشتری دارند، کار دشواری است، زیرا افراد مختلف، تفسیرهای متفاوتی از کاربردهای زبان برنامهنویسی دارند. یک زبان ممکن است تعداد ساعتهای برنامهنویسی بیشتری داشته باشد، زبان دیگری ممکن است خطوط کد بیشتری داشته باشد و یا زبان سوم ممکن است زمان اجرای روی CPU بیشتری داشته باشد. برخی زبانها برای برخی استفادههای خاص محبوبتر هستند. برای مثال COBOL همچنان در مراکز داده سازمانی محبوب است و غالباً در رایانههای mainframe بزرگ استفاده میشود. FORTRAN در علوم محاسبات و مهندسی کاربرد دارد. زبان C در کاربردهای کدهای داخل سیستمی و سیستمهای عامل کاربرد زیادی دارد. زبانهای دیگر نیز هر کدام برای نوشتن اپلیکیشنهای بسیار متنوعی مورد استفاده قرار میگیرند.
روش اندازهگیری محبوبیت زبانهای برنامهنویسی
روشهای مختلفی برای اندازهگیری محبوبیت زبانهای برنامهنویسی وجود دارند که هر یک از منظر متفاوتی به این اندازهگیری میپردازند، در ادامه برخی معیارهای محاسبه محبوبیت زبانهای برنامهنویسی ارائه شده است.
- شمارش تعداد دفعاتی که نام زبان برنامهنویسی در وب جستجو میشود، مثلاً از طریق خدمات ترند گوگل.
- شمارش تعداد تبلیغات شغلی که در آن به نام یک زبان اشاره شده است.
- تعداد کتابهایی که برای آموزش یا توضیح یک زبان انتشار یافته است.
- تخمین تعداد خطوط کد نوشته شده به یک زبان برنامهنویسی. البته در این روش ممکن است زبانهایی که معمولاً در جستجوهای عمومی یافت نمیشوند، مورد اجحاف قرار گیرند.
- شمارش ارجاعها به هر زبان برنامهنویسی (یعنی تعداد مواردی که نام یک زبان برنامهنویسی در موتورهای جستجو ایندکس شده است)
- شمارش تعداد پروژههایی که هر زبان برنامهنویسی در پلتفرمهای SourceForge و گیتهاب دارد.
- مقایسه تعداد کامیت ها یا خطوط تغییر یافته منبع برای پروژههای متن-باز بر روی Open Hub.
احتمالاً از دیدن این همه معیارهای مختلف در خصوص بررسی محبوبیت یک زبان برنامهنویسی دچار سردرگمی شدهاید؛ اما جای نگرانی نیست، ما در این نوشته تلاش کردهایم همه معیارهای فوق را به صورت 4 معیار مهم جمعبندی کنیم. به این ترتیب برای رتبهبندی برترین زبانهای برنامهنویسی از چهار فاکتور زیر استفاده شده است:
- حقوق بالا
- محبوبیت، یعنی وجود فرصتها و تنوع شغلی بالا
- میل به حفظ تقاضا در بلندمدت
- یادگیری آسان و سهولت کار
با در نظر گرفتن فاکتورهای فوق برای هر یک از زبانهای برنامهنویسی که در این مطلب ارائه میشوند یک توضیح کوتاه در خصوص ویژگیهای آن زبان، نوع شغلهایی که ممکن است به آن نیاز داشته باشند و موارد جالب هر کدام بررسی شده است. سپس نمودارهای محبوبیت هر زبان بر اساس وبسایت رتبهبندی TIOBE و GitHub Octoverse ارائه شده است. پس از آن میزان حقوق برنامهنویسان هر زبان بر اساس پیمایش پایان سال StackOverflow به عنوان بزرگترین پیمایش آماری از جامعه برنامهنویسان ارائه شده است. همچنین محبوبیت زبان برنامه نویسی و میزان درآمد در میان توسعه دهندگان ایرانی بر اساس پیمایش 1396 وبسایت جادی. نت بررسی شده است.
آخرین فاکتور ارائه شده در مورد هر زبان، میزان میل به تقاضای آن زبان برنامهنویسی در بلندمدت است که برای اندازهگیری این فاکتور از ابزار Google Trends استفاده شده است. همچنین در مورد هر زبان قطعه کد کوتاهی ارائه شده است تا افرادی که آشنایی کمتری با یک زبان دارند ایدهای از ساختار و دستور زبان هر کدام از آنها داشته باشند.
توجه داشته باشید که رتبهبندی ارائه شده در این نوشته به صورت نسبی بوده و با در نظر گرفتن همه معیارهای پیشگفته صورت گرفته است.
1. جاوا اسکریپت
بر مبنای پیمایش سالانه stackOverflow در سال 2018، جاوا اسکریپت با کسب 62.5 درصد از آرای اعضای این جامعه محبوبترین زبان برنامهنویسی بوده است. جاوا اسکریپت به همراه HTML و CSS برای توسعه Front-end وب، عناصری ضروری محسوب میشوند. اغلب سایتهای محبوب مانند فیسبوک، توییتر، جیمیل و یوتیوب از جاوا اسکریپت برای خلق صفحههای وب تعاملی و نمایش دینامیک محتوا به کاربران استفاده میکنند.
علاوه بر جاوا اسکریپت خام، چندین کتابخانه و فریمورک نیز وجود دارند که برای تسهیل کار برنامهنویسان جاوا اسکریپت طراحی شدهاند. برخی از فریمورکهای محبوب این زبان، شامل Angular، React, Vue, Ember و jQuery هستند. توسعهدهندگان حرفهای جاوا اسکریپت میبایست در یک یا جند مورد از این کتابخانهها مهارت داشته باشند. از آنجا که جاوا اسکریپت دستور زبان ساده و انعطافپذیری دارد بر روی اکثر مرورگرهای عمده کار میکند و یکی از محبوبترین زبانهای برنامهنویسی برای افراد مبتدی محسوب میشود.
رتبهبندی TIOBE (رتبه 8)
در آخرین رتبهبندی وبسایت معتبر TIOBE جاوا اسکریپت در رده هشتم قرار گرفته است. جاوا اسکریپت در ماه آگوست سال پیش از این نیز در همین رتبه بوده است، اما امتیاز آن اندکی افزایش یافته است.
رتبهبندی GitHub Octoverse: (رتبه 1)
گیتهاب به عنوان بزرگترین پلتفرم انتشار نرمافزارهای اوپنسورس با استفاده از Pull ها باز شده برای هر زبان، محبوبیت آن را اندازهگیری میکند. در آخرین آمار این وبسایت، جاوا اسکریپت با 2.3 میلیون درخواست Pull محبوبترین زبان برنامهنویسی بوده است.
میانگین جهانی حقوق سالانه (رتبه 23، در حد متوسط)
وبسایت StackOverflow با بیش از 50 میلیون بازدید ماهانه، بی شک بزرگترین جامعه از برنامهنویسان محسوب میشود. بر اساس آخرین پیمایش سالانه این وبسایت، کاربران جاوا اسکریپت میزان حقوق سالانه خود را 55 هزار دلار اعلام کردهاند که این زبان را از نظر درآمد در رده زبانهای متوسط قرار میدهد.
میانگین درآمد در ایران
وضعیت حقوق ماهانه برنامهنویسان جاوا اسکریپت در ایران را بنا بر دادههای گردآوری شده در پیمایش وبسایت Jadi.net در انتهای سال 1396 در نمودار زیر میتوانید مشاهده کنید.
همان طور که مشاهده میکنید، ستونهای سمت راست که نماینده حقوق پایین هستند، دارای ارتفاع بسیار بیشتری هستند. اگر بخواهیم تخمینی از میانگین درآمد ماهانه یک برنامهنویس ایرانی داشته باشیم، میتوانیم هر دسته حقوق را برابر با میانگین آن دسته فرض بگیریم. در مورد دسته آخر (سیزده میلیون به بالا) از آن جا که دریافت حقوقی بالاتر از 20 میلیون خارج از تصور است، این دسته را نیز به صورت سیزده تا بیست میلیون در نظر میگیریم. در نتیجه میانگین وزنی همه دستههای حقوق برابر با عدد 3،069،000 تومان محاسبه شده است. یعنی حقوق ماهانه یک برنامهنویسی جاوا اسکریپت در سال 1396 در ایران به طور میانگین در حدود 3 میلیون تومان بوده است.
آینده جاوا اسکریپت
بر اساس نمودار زیر مشاهده میکنیم که به اعتقاد گوگل ترندز، محبوبیت جاوا اسکریپت به مدت 5 سال است که به طور مداوم در حال افزایش است.
جمعبندی
بدیهی است که جاوا اسکریپت یکی از محبوبترین زبانهای برنامهنویسی در سال 2018 و پس از آن محسوب میشود. برای زبانی با این سطح از محبوبیت، این که بتوان حقوق بالایی به طور میانگین انتظار داشت انتظار نابجایی است چون افراد تازه وارد زیادی در آن مشغول به کار هستند و درصد بالایی از جامعه برنامهنویسان آن را افراد تازهکار تشکیل میدهد.
نمونه کد جاوا اسکریپت
if (/^[\],:{}\s]*$/.test(text.replace(/\\["\\\/bfnrtu]/g, '@'). replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?: [eE][+\-]?\d+)?/g, ']'). replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { // In the second stage we use the eval function to compile the text into a // JavaScript structure. The '{' operator is subject to a syntactic ambiguity // in JavaScript: it can begin a block or an object literal. We wrap the text // in parens to eliminate the ambiguity. j = eval('(' + text + ')'); // In the optional third stage, we recursively walk the new structure, passing // each name/value pair to a reviver function for possible transformation. return typeof reviver === 'function'? walk({'': j}, ''): j; } // jQuery style // remove links when content is deleted $("#links input[name='links[]']").bind("change", function() { if (this.value == "") { // dont remove last link $(this).parent().not(':last-child').slideUp("normal", function() { $(this).remove(); }); } });
2. زبان برنامهنویسی Swift
سوئیفت یک زبان برنامهنویسی نسبتاً جدید محسوب میشود که در سال 2014 از سوی اپل انتشار یافته است. این زبان برای توسعه برنامههای بومی برای پلتفرمهای iOS و macOS اپل مورد استفاده قرار میگیرد. بر اساس گزارش Octoverse گیتهاب، این زبان رشد بسیار سریعی را شاهد است و بر اساس تعداد pull های درخواستی، اینک در رده سیزدهمین زبان در گیتهاب قرار دارد.
سوئیفت جایگزین Objective-c شده و برای فرایند برنامهنویسی سریع و دیباگ آسانتر طراحی شده است. توسعه مهارتهای برنامهنویسی سوئیفت، سرمایهگذاری عاقلانهای برای مهندسان نرمافزار محسوب میشود. نه چون تنها iOS بر روی همه آیفونها و آیپدها اجرا میشود، بلکه پایهای برای سیستمهای مانند watchOS (برای ساعتهای اپل) و tvOS (برای تلویزیونهای اپل) نیز به حساب میآید. به علاوه اپل به عنوان رهبر صنایع فناوری جایگاه مستحکمی دارد و برنامههای آن نیز جزو سوددهترین اپلیکیشنها در بازار اپلیکیشنهای همراه هستند.
رتبهبندی TIOBE (رتبه 11)
طبق گزارش آگوست 2018 زبان برنامهنویسی سوئیفت با کسب 1.384 درصد از امتیازها در رده یازدهمین زبان برنامهنویسی برتر در رتبهبندی TIOBE بوده است.
رتبهبندی GitHub Octoverse: (رتبه 13)
همچنین بر اساس گزارش اوکتوورس سوئیفت با 107 هزار درخواست pull در این پلتفرم در رتبه 14 قرار داشته است. البته با توجه به ماهیت غیر متن-باز اکثر نرمافزارهای پلتفرم اپل، این رتبه دور از انتظار نیست.
میانگین جهانی حقوق سالانه (رتبه 19، بالاتر از متوسط)
بر اساس آخرین پیمایش وبسایت معتبر StackOverflow کاربرانی که به زبان سوئیفت برنامهنویسی میکردهاند، میانگین حقوق سالانه خود را 57 هزار دلار اعلام کردهاند که این زبان را در رده زبانهای با درآمد بالاتر از میانگین قرار میدهد.
وضعیت درآمد در ایران
با توجه به ملاحظات سیاسی و مشکلات مربوط به تحریم ایران از سوی شرکت اپل، بدیهی است که این زبان برنامهنویسی از سوی توسعهدهندگان ایرانی چندان مورد استقبال قرار نگیرد. بر اساس پیمایش سال 1396 جادی. نت از میان 1950 برنامهنویس ایرانی شرکت کننده، 89 نفر اعلام کردهاند که به زبان سوئیفت نیز برنامهنویسی میکنند که معادل 4.6 درصد از جامعه برنامهنویسان ایرانی بوده است. وضعیت درآمد اعلامی این برنامهنویسها به صورت نمودار زیر است:
اگر میانگین وزنی دستههای مختلف را محاسبه کنیم، میانگین حقوق ماهانه یک برنامهنویس سوئیفت در ایران در سال 1396 برابر با 4،289،000 بوده است، که بالاتر از میانگین است.
آینده زبان Swift
وضعیت محبوبیت زبان برنامهنویسی سوئیفت بر اساس شاخص گوگل ترندز در نمودار زیر قابل مشاهده است. همان طور که میبینید این زبان در طی دوره معرفی خود شاهد رشد مداومی بوده است.
جمعبندی
سوئیفت به عنوان نسخهای جایگزین برای Objective-C از سوی اپل معرفی شده است. با توجه به سابقه 4 ساله این زبان باید اذعان کرد که محبوبیت مناسبی را کسب کرده و در اغلب رتبهبندیها زبان C آبجکتیو را پشت سر گذارده است. این زبان محبوب بسیاری از توسعهدهندگان است و توسعهدهندگان آن نیز درآمد خوبی کسب میکنند، پس باید پرسید یک برنامهنویس برای انتخاب این زبان دیگر چه چیز میخواهد؟
نمونه کد به زبان Swift
import Foundation class Friend: Comparable { let name: String let age: Int init(name: String, age: Int) { self.name = name self.age = age } } func < (lhs: Friend, rhs: Friend) -> Bool { return lhs.age < rhs.age } func > (lhs: Friend, rhs: Friend) -> Bool { return lhs.age > rhs.age } func == (lhs: Friend, rhs: Friend) -> Bool { var returnValue = false if (lhs.name == rhs.name) && (lhs.age == rhs.age) { returnValue = true } return returnValue }
3. پایتون
پایتون احتمالاً یکی از کاربرپسندترین زبانهای برنامهنویسی در هر فهرستی محسوب میشود. غالباً گفته میشود که دستور زبان پایتون واضح، شهودی و تا حدود زیادی شبیه زبان انگلیسی است و به همین دلیل همانند جاوا آن را به گزینهای محبوب برای افراد مبتدی تبدیل کرده است.
پایتون نیز مانند جاوا کاربردهای مختلفی دارد که آن را به ابزاری کاملاً قدرتمند و کارآمد برای اغلب استفادههای تبدیل میکند. برای نمونه اگر به توسعه بکاند وب علاقهمند باشید در این صورت فریمورک متن-باز جانگو (Django) که به زبان پایتون نوشته شده است، گزینهای محبوب و با یادگیری آسان است که ویژگیهای بسیار متنوعی دارد. Django سالها است که برای توسعه سایتهای بزرگی مانند موزیلا، اینستاگرام و اسپاتیفای مورد استفاده قرار میگیرد.
همچنین بستههایی به نام NumPy و SciPy برای پایتون وجود دارند که در فیلدهای محاسباتی خاصی مانند ریاضیات و مهندسی کاربرد دارند. کتابخانههای دیگر پایتون مانند TensorFlow, PyTorch, scikit-learn و OpenCV برای ساخت برنامههایی در حوزه علم داده، یادگیری ماشین، پردازش تصویر و بینایی ماشین استفاده میشوند. کاربردهای علمی و دادهای پایتون آن را به گزینهای عالی برای افرادی تبدیل کرده است که بیشتر علاقهمند به کاربردهای آکادمیک برنامهنویسی هستند.
رتبهبندی TIOBE (رتبه 4)
طبق گزارش آگوست 2018 زبان برنامهنویسی پایتون با کسب 6.99 درصد از امتیازها در رده چهارمین زبان برنامهنویسی برتر در رتبهبندی TIOBE بوده است. نکته قالب توجه در این مورد این است که تا پیش از این تاریخ پایتون هرگز بین 4 زبان برتر بر اساس رتبه بندی تیوب نبوده است.
رتبهبندی GitHub Octoverse: (رتبه 2)
همچنین بر اساس گزارش اوکتوورس پایتون با 1 میلیون درخواست pull در این پلتفرم پس از جاوا اسکریپت در رتبه دوم قرار داشته است و با اختلاف اندکی بالاتر از جاوا قرار گرفته است.
میانگین جهانی حقوق سالانه (رتبه 21، بالاتر از میانگین)
بر اساس آخرین پیمایش وبسایت معتبر StackOverflow کاربرانی که به زبان پایتون برنامهنویسی میکردهاند، میانگین حقوق سالانه خود را 56 هزار دلار اعلام کردهاند که این زبان را در رده زبانهای با درآمد بالاتر از میانگین قرار میدهد.
وضعیت درآمد در ایران
بر اساس پیمایش سال 1396 جادی. نت از میان 1950 برنامهنویس ایرانی شرکت کننده، 757 نفر اعلام کردهاند که به زبان پایتون نیز برنامهنویسی میکنند. این رقم معادل 38.8 درصد از جامعه برنامهنویسان ایرانی است. وضعیت درآمد اعلامی این برنامهنویسها به صورت نمودار زیر است:
اگر میانگین وزنی دستههای مختلف را محاسبه کنیم، میانگین حقوق ماهانه یک برنامهنویسی پایتون در ایران در سال 1396 برابر با 2،864،000 بوده است که رقم نسبتاً پایینی محسوب میشود.
آینده زبان پایتون
وضعیت محبوبیت زبان برنامهنویسی پایتون بر اساس شاخص گوگل ترندز در نمودار زیر قابل مشاهده است. در تصویر کاملاً مشخص است که پایتون با وجود فراز و نشیبهای مختلف، روند رو به رشد خود را در طی بازه پنجساله حفظ کرده است.
جمعبندی
پایتون به عنوان زبانی چندمنظوره، با یادگیری آسان و مورد علاقه بسیاری از برنامهنویسان قطعاً یکی از بهترین گزینهها در آینده نزدیک محسوب میشود. هر حوزهای را که در نظر بگیرید، پایتون جزو یکی از برترین زبانهای برنامهنویسی به حساب میآید.
نمونه کد به زبان پایتون
در ادامه برای آشنایی بیشتر شما با زبان برنامهنویسی پایتون نمونه کدی از این زبان ارائه شده است:
#!/usr/bin/env python # -*- coding: utf-8 -*- # Project FreeImagePy # file name: utils.py # # $Id $ # # DESCRIPTION # FreeImage python bind # # Developer: # Michele Petrazzo <michele.petrazzo@unipex.it> # # History: (see history.txt for more info) # creation: 08/2005 - Michele Petrazzo # # License: # GNU General Public License (GPL) # FreeImage Public License (FIPL) # For more info see LICENSE.txt # # Copyright (C) 2005 Unipex s.r.l., All Rights Reserved. # Via Vittorio Veneto 83/A # 33050 Gonars (UD) - Italy # tel. +39 0432 931511 - fax +39 0432 931378 # www.unipex.it - michele.petrazzo@unipex.it # from FreeImagePy import * import imp USE_PIL, USE_WX = True, True try: imp.find_module("Image") except ImportError: USE_PIL = False try: imp.find_module("wx") except ImportError: USE_WX = False if USE_PIL: def convertToPil(image): """ """ import Image as PIL cu = image.getBPP() if not cu in COL_To_PIL.keys(): raise ValueError, "Color not supported in convertToPil, %s" % cu w,h = image.size pil = PIL.new(COL_To_PIL[cu], (w, h)) pil.fromstring(image.getBuffer()) del PIL return pil else: def convertToPil(self, *args,**kw): print "PIL not installed, please install it and retry" return None if USE_WX: def convertToWx(dib): import wx w,h = dib.size image = wx.EmptyImage(w,h) new_image = dib.clone() new_image.bpp = 24 b = new_image.getBuffer()[: w*h*3] image.SetData(b) del wx return image else: def convertToWx(self, *args,**kw): print "wx not installed, please install it and retry" return None def getParametersFromExt(fileName, FIF=None): # Try to understand the type from extension ext = None if "." in fileName and not FIF: ext = os.path.splitext(fileName)[1].replace(".", "") #control for the ambigous extensions if ext.startswith("tif") and not ext.startswith("tiff"): ext = "tiff" + ext[3:] elif ext.startswith("jpg"): ext = "jpeg" + ext[3:] if FIF == None and ext in extToType.keys(): FIF, flags, ext = extToType[ext] fileName = os.path.splitext(fileName)[0] + ext elif FIF in extToType.keys(): FIF, flags, ext = extToType[FIF] if not fileName.endswith(ext): fileName += ext else: keyType = filter(lambda x: extToType[x][0] == FIF, extToType) if keyType: FIF, flags, ext = extToType[keyType[0]] else: return None, None, "no_ext", fileName return FIF, ext, flags, filename
4. جاوا
جاوا بی شک یکی از محبوبترین زبانهای برنامهنویسی همه زمانها به حساب میآید، زیرا در حدود 90 درصد از شرکتهای فهرست 500 شرکت برتر مجله فورچون به طور گستردهای از آن استفاده میکنند. شعار مشهور این زبان برنامهنویسی: «یک بار بنویس، همه جا اجرا کن» یکی از مهمترین جنبههای ارزشمند بودن جاوا را به خوبی به تصویر میکشد. جاوا با بیش از 20 سال سابقه حضور در عرصه برنامهنویسی، خود را به اثبات رسانده است. از لحاظ نظری میتوان کد جاوا را بر روی هر نوع سختافزاری نوشت، آن را به زبان ماشین کامپایل نموده و سپس بر روی هر پلتفرمی که به ماشین مجازی جاوا (JVM) مجهز باشد، اجرا کرد. به این ترتیب جاوا یک زبان کاملاً چند پلتفرمی محسوب میشود.
جاوا همچنین به عنوان مبنایی برای سیستم عامل اندروید و یکی از برترین زبانها برای توسعه اپلیکیشنهای اندرویدی محبوبیت دو چندان یافته است. برای نمونه سیستم پردازش داده آپاچی هادوپ (Apache Hadoop) به زبان جاوا نوشته شده و از سوی سرویسهای وب آمازون (Amazon Web Services) و خدمات آزور ویندوز (Windows Azure) مورد استفاده قرار میگیرد.
جاوا به لطف شفافیت و تنوع خود به یکی از نخستین زبانهایی که برای آموزش افراد مبتدی استفاده میشود تبدیل شده است و در اغلب دورههای آموزش مقدماتی برنامهنویسی مورد استفاده قرار میگیرد. جاوا با استفادههای بسیار مختلفی که دارد، برای برنامهنویسانی که به دنبال زبان انعطافپذیر، ماژولار و دارای قابلیتهای بهینه برای کاربردهای تجاری هستند، به یکی از نخستین گزینهها تبدیل شده است.
رتبهبندی TIOBE (رتبه 1)
طبق گزارش آگوست 2018 زبان برنامهنویسی جاوا با کسب 16.88 درصد از امتیازها در رده نخست زبانهای برنامهنویسی برتر در رتبهبندی TIOBE بوده است.
رتبهبندی GitHub Octoverse: (رتبه 3)
همچنین بر اساس گزارش اوکتوورس جاوا با 986 هزار درخواست pull در این پلتفرم پس از جاوا اسکریپت و پایتون در رتبه سوم قرار گرفته است.
میانگین جهانی حقوق سالانه (متوسط)
بر اساس آخرین پیمایش وبسایت معتبر StackOverflow از میان 64000 توسعه دهنده که در این وبسایت حساب کاربری داشتهاند، کاربرانی که به زبان جاوا برنامهنویسی میکردهاند، میانگین حقوق سالانه برابر با 52 هزار دلار اعلام کردهاند که این زبان را در رده زبانهای با درآمد میانگین قرار میدهد.
وضعیت درآمد در ایران
بر اساس پیمایش سال 1396 جادی. نت از میان 1950 برنامهنویس ایرانی شرکت کننده، 1365 نفر اعلام کردهاند که به زبان جاوا نیز برنامهنویسی میکنند. بدین ترتیب جاوا به محبوبترین زبان برنامهنویسی توسعهدهندگان ایرانی تبدیل میشود. در واقع 70.00 درصد از جامعه برنامهنویسان ایرانی به زبان جاوا برنامهنویسی میکنند. وضعیت درآمد اعلامی این برنامهنویسها به صورت نمودار زیر است:
اگر میانگین وزنی دستههای مختلف را محاسبه کنیم، میانگین حقوق ماهانه یک برنامهنویس جاوا در ایران در سال 1396 برابر با 2،932،000 بوده است که با توجه به جامعه آماری این پیمایش، رقم متوسطی محسوب میشود.
آینده زبان جاوا
در نمودار زیر میتوانید وضعیت محبوبیت زبان برنامهنویسی جاوا را بر اساس شاخص گوگل ترندز مشاهده کنید. در نمودار میتوان دید که جاوا در طی زمان اندک اندک سلطه بی چون و چرای خود را در حوزه برنامهنویسی از دست داده است. این کاهش محبوبیت را میتوان به دلیل ظهور زبانهای جدید و افزایش تنوع بازار تفسیر کرد، چرا که جاوا همچنان در اغلب نمایهها رتبههای نخست را به خود اختصاص داده است.
جمعبندی
جاوا بدون شک متداولترین زبان برنامهنویسی در ایران و جهان است و موقعیتهای شغلی که برای این زبان وجود دارند، طیف بسیار وسیعی را شامل میشوند که باعث شده است توسعهدهندگان جاوا یکی از بالاترین درآمدها را در سطح جهان داشته باشند و در ایران نیز درآمد برنامهنویسان جاوا در حد متوسط قرار دارد. با توجه به چنین گستردگی کاربردها، میتوان امیدوار بود که تا سالهای طولانی افرادی که به زبان جاوا برنامهنویسی میکنند، همچنان موقعیتهای شغلی خوبی در بازار کار داشته باشند.
نمونه کد به زبان جاوا
در ادامه قطعه کدی به زبان جاوا ارائه شده است، تا با ساختار کلی این زبان برنامهنویسی بیشتر آشنا شوید:
/** * javadoc test */ public class NToTheTwoOnThree{ public void run(int n){ long num = 0; /* normal comment test */ if(n == 60000){ for(int i = 0; i < 1532; i++){ num++; } System.out.println(num); return; } //we could run a for loop that continues while i < n^(2/3), but that would get messy, calculations-wise //however, i < n^(2/3) is the same as i^3 < n^2 long nSquared = n*n; for(long i = 1; (i*i*i) < nSquared; i++){ num++; } //for some reason, this loop and its variants (while loop, or a for loop with a breaking condition) all seem to FAIL at values of n >= 46333 //from 46333 to 46340, the number of times the for loop runs jumps from somewhere around 1250 to 7272 //at 46341 and above, the for loop doesnt even execute once. System.out.println(num); } public static void main(String[] args){ NToTheTwoOnThree lol = new NToTheTwoOnThree(); lol.run(60000); } } <>/pre
5. ++C
سیپلاسپلاس در سال 1986 به عنوان جایگزینی برای زبان برنامهنویسی C ابداع شد و بیدرنگ محبوبیت بزرگی کسب کرد. این محبوبیت بیدلیل نبود، چون این زبان کلاسهای از پیش تعریفشدهای داشت که برنامهنویسها میتوانستند به همراه کلاسهایی که خود تعریف کرده بودند، مورد استفاده قرار دهند. مایکروسافت ویندوز و گوگل کروم دو مورد از مشهورترین پروژههای هستند که به زبان سیپلاسپلاس نوشته شدهاند. البته اغلب محصولات شرکت Adobe و بیشتر سرویسهای وبسایت آمازون نیز به این زبان نوشته شدهاند. این زبان برنامهنویسی پس از گذر سالها همچنان محبوب است و دلیل آن این است که سیپلاسپلاس ابزار قدرتمندی است که از آن میتوان در بخشهای مختلف برنامهنویسی مانند مالی، بانک داری، بازیسازی، مخابراتی، بانکداری الکترونیک، خردهفروشی و موارد بسیار دیگر بهره گرفت.
در واقع شما با یادگیری ++C میتوانید به راحتی هم بازی بسازید، هم اپلیکیشنهای تجاری بنویسید و هم نرمافزارهای وب را توسعه دهید. سیپلاسپلاس یکی از قدرتمندترین زبانهای برنامهنویسی است که مجهز به ویژگیهای مختلفی است که شامل وابستگی به پلتفرم است، یعنی برنامهای که به این زبان نوشته میشود میتواند در همان پلتفرمی که توسعه یافته اجرا شود. این زبان در حال حاضر به طور خاص در حوزههای گرافیک رایانه، بازیهای ویدئویی و واقعیت مجازی بسیار محبوب است.
رتبهبندی TIOBE (رتبه 3)
طبق گزارش آگوست 2018 زبان برنامهنویسی ++C با کسب 7.47 درصد از امتیازها در رده سوم زبانهای برنامهنویسی برتر در رتبهبندی TIOBE بوده است.
رتبهبندی GitHub Octoverse: (رتبه 6)
همچنین بر اساس گزارش اوکتوورس ++C با 413 هزار درخواست pull در رده ششمین زبان برنامهنویسی برتر قرار گرفته است.
میانگین جهانی حقوق سالانه (متوسط)
بر اساس پیمایش سال 2017 وبسایت معتبر StackOverflow از میان 64000 توسعهدهندهای که در این وبسایت حساب کاربری داشتهاند، برنامهنویسان به زبان ++C به طور میانگین حقوق سالانهای برابر با 51 هزار دلار داشتهاند و به این ترتیب زبان C++ پایینتر از زبانهایی مانند جاوا، جاوا اسکریپت، پایتون و سوئیفت قرار میگیرد.
وضعیت درآمد در ایران
بر اساس پیمایش سال 1396 جادی. نت از میان 1950 برنامهنویس ایرانی که در نظرسنجی این وبسایت مشارکت داشتهاند، 386 نفر اعلام کردهاند که به زبان ++C نیز برنامهنویسی میکنند. این تعداد معادل 19.8 درصد از نمونه آماری برنامهنویسان ایرانی محسوب میشود. با این حساب میتوان گفت که سیپلاسپلاس یکی از زبانهایی محسوب میشود که برنامهنویسان زیادی در ایران از آن استفاده میکنند.
بر اساس دادههای همین پیمایش میزان درآمد ماهانه برنامهنویسهای این زبان به صورت نمودار زیر بوده است: اگر میانگین وزنی دستههای مختلف را محاسبه کنیم، میانگین حقوق ماهانه یک برنامهنویس ++C در ایران در سال 1396 برابر با 2،732،000 بوده است که با توجه به جامعه آماری این پیمایش، رقم متوسط رو به پایینی محسوب میشود.
آینده زبان سیپلاسپلاس
در نمودار زیر وضعیت محبوبیت زبان برنامهنویسی ++C بر اساس میزان جستجوی کلیدواژه مربوطه در گوگل را مشاهده کنید. همچنان که در تصویر زیر مشاهده میشود میزان محبوبیت ++C بر اساس شاخص Google Trends رفتهرفته با شیب ملایمی در حال کاهش است؛ اما در این مسیر روند پر فراز و نشیبی را طی میکند.
جمعبندی
++C زبانی بسیار پرکاربرد است و در صورتی که زمان کافی برای کسب مهارت و تسلط در این زبان صرف کنید میتوانید گزینههای شغلی بسیار متنوعی را در پیش روی خود داشته باشید. میزان پرداختی حقوق به برنامهنویسان این زبان در دنیا اندکی بالاتر از متوسط و در ایران اندکی پایینتر از حد متوسط است.
نمونه کد به زبان سیپلاسپلاس
void hsv_to_hsl(double h, double s, double v, double* hh, double* ss, double *ll) { *hh = h; *ll = (2 - s) * v; *ss = s * v; *ss /= (*ll <= 1)? (*ll): 2 - (*ll); *ll /= 2; } void hsl_to_hsv(double hh, double ss, double ll, double* h, double* s, double *v) { *h = hh; ll *= 2; ss *= (ll <= 1)? ll: 2 - ll; *v = (ll + ss) / 2; *s = (2 * ss) / (ll + ss); //junk for number testing 123 0777 0xff 4.2e1 4.2 }
6. Ruby
روبی یکی از محبوبترین زبانهای برنامهنویسی محسوب میشود. طراحی آن بهگونهای بوده است که فضایی کاربرپسند داشته و استفاده از آن راحت باشد. شعار این زبان برنامهنویسی چنین است: «بهترین دوست هر برنامهنویس».
روبی یک زبان سطح بالا، چندمنظوره و شیءگرا است که در سال 1993 توسط «یوکیشیرو ماتسوموتو» (Yukihiro Matsumoto) ملقب به «ماتز» خلق شده است. این زبان 5 برابر تقاضای بیشتری نسبت به پایتون دارد و یکی از زبانهایی است که سریعترین رشد را تجربه میکند. تنها برنامهای که در این حد پروژههای تکمیل شده دارد، جاوا است. در واقع استفاده از روبی چنان آسان است که شما میتوانید در کمتر از 10 دقیقه یک برنامه به این زبان بنویسید. Groupon, Airbnb, Pxlr, و Bloomberg همگی به زبان روبی نوشته شدهاند.
دستور زبان روبی بسیار شبیه زبان انگلیسی است و این مسئله موجب شده است که خوانایی کد آن افزایش یابد. از آنجا که از روبی برای نگهداری پایگاههای داده کد بسیاری از وبسایتهای بزرگ استفاده میشود، تقاضا برای استفاده از روبی در حال افزایش است.
در واقع روبی را میتوان یک زبان اسکریپت نویسی دانست که برای توسعه وب مورد استفاده قرار میگیرد. به طور خاص، از روبی به صورت فریمورک اپلیکیشنهای وب محبوبی به نام Ruby on Rails استفاده میشود. جامعه برنامهنویسان روبی شعار مشهوری دارند که «ما خوبیم، چون ماتز (خالق زبان روبی) خوب است». بدین ترتیب برنامهنویسان این زبان تشویق میشوند تا رفتار خود را بر اساس خالق اولیه زبان روبی تغییر دهند. علاوه بر جامعه فعال توسعهدهندگان روبی، دستور زبان سرراست آن موجب شده است که به زبانی محبوب و با کاربردهای تجاری مناسب تبدیل شود.
رتبهبندی TIOBE (رتبه 15)
طبق آخرین گزارش ماهانه وبسایت معتبر تیوب که بر اساس معیارهای بسیار مختلفی اقدام به رتبهبندی زبانهای برنامهنویسی میکند، زبان برنامهنویسی روبی با کسب 1.182 درصد از امتیازها در رده پانزدهم زبانهای برنامهنویسی برتر قرار گرفته است.
رتبهبندی GitHub Octoverse: (رتبه 4)
اگر بخواهیم میزان محبوبیت زبان برنامهنویسی روبی را بر اساس تعداد درخواستهای pull بر روی پلتفرم انتشار متن –باز گیتهاب اندازهگیری کنیم، میبینیم که بر اساس آخرین گزارش این وبسایت، Ruby با 870 هزار درخواست pull در رده چهارم زبانهای برنامهنویسی برتر قرار گرفته است.
میانگین جهانی حقوق سالانه (رتبه 10، بالا)
در خصوص برآورد میزان درآمد برنامهنویسانی که میخواهند به زبان Ruby به کار توسعه بپردازند، میتوان به پیمایش سال 2017 وبسایت StackOverflow استناد کرد که با نظرسنجی از کاربران خود اعلام کرده است، برنامهنویسان به زبان روبی در سطح جهان به طور متوسط حقوق سالانهای برابر با 60 هزار دلار دریافت میکنند. به این ترتیب زبان روبی در رتبهای بالاتر از زبانهایی مانند جاوا، جاوا اسکریپت، پایتون، سوئیفت و سیپلاسپلاس و اندکی پایینتر از راست و اسکالا قرار میگیرد.
وضعیت درآمد در ایران
بر اساس پیمایش سال 1396 وبسایت جادی. نت از میان 1950 برنامهنویس ایرانی که در نظرسنجی این وبسایت مشارکت کردهاند، 36 نفر (معادل 1.85 درصد) اعلام کردهاند که به زبان روبی نیز برنامهنویسی میکنند. این عدد نشانگر محبوبیت پایین این زبان برنامهنویسی در ایران است. البته از طرف دیگر میتوان این نتیجه را چنین تفسیر کرد که افرادی که به این زبان برنامهنویسی میکنند، با توجه به شکاف بین سطح جهانی و داخلی فرصت رشد بیشتری خواهند داشت، سطح حقوق دریافتی این برنامهنویسان که در ادامه اشاره میکنیم نیز مؤید همین تفسیر است. بر اساس دادههای این پیمایش، میزان درآمد ماهانه برنامهنویسهای این زبان به صورت نمودار زیر بوده است:
اگر میانگین وزنی دستههای مختلف را محاسبه کنیم، میانگین حقوق ماهانه یک برنامهنویس روبی در ایران در سال 1396 برابر با 5،090،000 تومان بوده است که آن را جزو یکی از پردرآمدترین زبانهای برنامهنویسی در ایران قرار میدهد و در این زمینه بین فضای کاری داخلی و بینالمللی همخوانی مشاهده میشود.
آینده زبان روبی
همان طور که در نمودار زیر مشاهده میکنید میزان محبوبیت زبان برنامهنویسی روبی بر اساس شاخص Google trends در طی 5 سال اخیر روند ثابتی را طی کرده است.
جمعبندی
روبی زبانی است که موقعیتهای شغلی بسیار جذابی به همراه خود ارائه میکند، چون هم درآمد بالایی دارد و هم نوشتن کد روبی آسان است. تنها اشکال روبی این است که به اندازه برخی رقبای خود متداول نیست و از این رو موقعیتهای شغلی آن ممکن است برای برخی موقعیتهای جغرافیایی محدود باشد. با این حال توجه داشته باشید که روبی (و Ruby on Rails) غالباً از سوی استارتاپها ترجیح داده میشوند و از این رو امکان دورکاری برای آن بیشتر است.
نمونه کد به زبان روبی
# DISABLED # I'm only working on services, not processes, right now module Puppet class State class PProcessRunning < State @doc = "Whether a process should be running. **true**/*false*" def retrieve running = 0 regex = Regexp.new(@params[:pattern]) begin # this ps is only tested on Solaris # XXX yeah, this definitely needs to be fixed... %x{ps -ef -U #{@params[:user]}}.split("\n").each { |process| if regex.match(process) running += 1 end } rescue # this isn't correct, but what the hell Puppet::Message.new( :level =>:error, :source => self.parent, :message => "Failed to run ps" ) end self.state = running debug "there are #{running} #{self.parent} processes for start" end def <=>(other) self.state < 1 end def fix require 'etc' # ruby is really cool uid = 0 if @params[:user].is_a? Integer uid = @params[:user] else uid = Etc.getpwnam(@params[:user]).uid end Kernel.fork { PProcess.uid = uid PProcess.euid = uid string = @params[:binary] + (@params[:arguments] || "") Puppet::Message.new( :level =>:notice, :source => self.parent, :message => "starting" ) Kernel.exec(string) } end end end class Type class PProcess < Type attr_reader:stat,:path @parameters = [:start,:stop,:user,:pattern,:binary,:arguments] @name =:process @paramdoc[:start] = "How to start the process. Must be a fully qualified path." @paramdoc[:stop] = "How to stop the process. Must be a fully qualified path." @paramdoc[:user] = "Which user to run the proces as." @paramdoc[:pattern] = "The search pattern to use to determine whether the process is currently running." @paramdoc[:binary] = "The binary to actually execute." @paramdoc[:arguments] = "The arguments to pass the binary." @doc = "**Disabled. Use `service` instead.** Manage running processes." @namevar =:pattern Puppet::Relation.new(self, Puppet::Operation::Start, { :user =>:user, :pattern =>:pattern, :binary =>:binary, :arguments =>:arguments }) Puppet::Relation.new(self, Puppet::Operation::Stop, { :user =>:user, :pattern =>:pattern }) end # Puppet::Type::PProcess end # Puppet::Type end
7. #C
#C (سی شارپ) نیز مانند ++C یک زبان برنامهنویسی شیءگرا و چندمنظوره است که بر مبنای زبان C ساخته شده است. این زبان در ابتدا از سوی مایکروسافت به عنوان بخشی از فریمورک NET. برای ساخت برنامههای ویندوزی طراحی شد.
همان طور که سوئیفت زبان انتخابی برای برنامههای iOS است، سی شارپ نیز زبان برنامهنویسی دائمی برای ساخت اپلیکیشنهایی محسوب میشود که بومی پلتفرم ویندوز هستند. سی شارپ از دستور زبانی استفاده میکند که مشابه زبانهای مشتق از C مانند ++C است و از این رو اگر با یکی از زبانهای خانواده زبانهای C آشنا باشید، یادگیری آن برای شما آسان خواهد بود.
سی شارپ نه تنها زبانی برای نوشتن برنامههای ویندوزی است، بلکه به عنوان زبانی برای توسعه اپلیکیشنهای چند پلتفرمی موبایل روی پلتفرم Xamarin نیز محسوب میشود. با استفاده از این روش به جای این که برنامههای موبایل خود را برای iOS در سوئیفت یا برای اندروید در جاوا بنویسید، میتوانید با یک تیر دو نشان بزنید و یک اپلیکیشن منفرد با استفاده از Xamarin و سی شارپ بنویسید و به طور همزمان روی هر دو پلتفرم توزیع نمایید.
همچنین کسانی که به برنامهنویسی VR علاقهمند هستند، باید یادگیری سی شارپ را جزو اولویتهای خود قرار دهند. سی شارپ زبان توصیه شده برای ساخت بازیهای ویدئویی 2 و 3 بُعدی با استفاده از موتور بازی محبوب Unity است که یکسوم بازیهای موجود در بازار را پشتیبانی میکند.
رتبهبندی TIOBE (رتبه 6)
بر اساس آخرین گزارش وبسایت معتبر TIOBE که در ماه آگوست 2018 منتشر شده است، زبان برنامهنویسی سی شارپ از میان 100 زبان برنامهنویسی برتر با کسب 3.54 درصد، در رتبه ششم قرار داشته است.
رتبهبندی GitHub Octoverse: (رتبه 8)
شاخص محبوبیت دیگری که برای یک زبان برنامهنویسی میتوان تصور کرد، میزان اقبال توسعهدهندگان متن-باز به آن است که بدین منظور از ایندکس وبسایت اوکتوورس گیتهاب استفاده میکنیم. در آخرین گزارش این وبسایت زبان برنامهنویسی الیکسیر سی شارپ با 326 هزار درخواست Pull در رده هشتم محبوبیت قرار داشته است.
میانگین جهانی حقوق سالانه (رتبه 16، بالا)
جهت تخمین میزان درآمد برنامهنویسانی که از زبان سی شارپ استفاده میکنند، میتوانیم از پیمایش سال 2018 وبسایت استکاورفلو استفاده کنیم. در این پیمایش زبان سی شارپ با درآمد سالانه 59 هزار دلار در رتبه 16 قرار دارد که رتبه بالایی محسوب میشود.
وضعیت درآمد در ایران
بر اساس پیمایش وبسایت جادی. نت در سال 1396، از میان 1950 برنامهنویس ایرانی، 502 نفر (معادل 25.74 درصد) اعلام کردهاند که به زبان سی شارپ نیز برنامهنویسی میکنند. بدین ترتیب میبایست سی شارپ را یکی از زبانهای متداول در ایران به حساب آورد. وضعیت درآمد اعلام شده از سوی توسعهدهندگان ایرانی در نمودار زیر مشخص است:
میانگین وزنی همه دستههای حقوق برابر با عدد 3،240،000 تومان محاسبه شده است. یعنی حقوق ماهانه یک برنامهنویس سی شارپ در سال 1396 در ایران، به طور میانگین برابر با این عدد بوده است.
آینده زبان #C
نمودار زیر مربوط به کلیدواژه #C در سرویس Google trends است که میزان جستجوی این زبان برنامهنویسی در دسته شغل و آموزش را در طی 5 سال گذشته نمایش میدهد.. مطابق تصویر زیر این زبان برنامهنویسی با شیب ملایمی در حال از دست دادن محبوبیت خود است.
جمعبندی
سی شارپ زبانی است که از همان ابتدا بر مبنای مفاهیم شیءگرایی توسعه یافته است و مسیری برای یادگیری زبانهای شیءگرای دیگر فراهم میسازد. با توجه به این که مایکروسافت به طور گستردهای از آن پشتیبانی میکند، میتوان چنین تصور کرد که تا سالهای طولانی جزو زبانهای برتر برنامهنویسی باقی خواهد ماند. از طرف دیگر با توجه به رواج ترندی در خصوص نوشتن برنامههای چند پلتفرمی به خصوص برای دستگاههای موبایل که اوج آن در پلتفرم Xamarin قابل مشاهده است، به نظر میرسد که در آینده نزدیک نبرد بزرگی بین گوگل با اندروید و کاتلین و اپل با سوئیفت با سی شارپ از مایکروسافت درخواهد گرفت. بسیاری از خبرگان بر این عقیده هستند که پیروز این نبرد سکوی های توسعه چند پلتفرمی مانند Xamarin هستند. به هر حال سی شارپ به عنوان زبانی با موقعیتهای شغلی زیاد و درآمد نسبتاً بالا یکی از گزینههای جذاب برای یادگیری محسوب میشود.
نمونه کد به زبان #C
using System; namespace LargeDataEngine { internal static class Helpers { /// <summary> /// Clips a number to the specified minimum and maximum values. /// </summary> /// <param name="n">The number to clip.</param> /// <param name="minValue">Minimum allowable value.</param> /// <param name="maxValue">Maximum allowable value.</param> /// <returns>The clipped value.</returns> public static double Clip(double n, double minValue, double maxValue) { return Math.Min(Math.Max(n, minValue), maxValue); } public static void LatLongToGlobalPointF(double latitude, double longitude, double zoom, out float px, out float py) { double x = (longitude + 180) / 360; double sinLatitude = Math.Sin(latitude * Math.PI / 180); double y = 0.5 - Math.Log((1 + sinLatitude) / (1 - sinLatitude)) / (4 * Math.PI); double mapSize = 256 * Math.Pow(2, zoom); px = (float)Helpers.Clip(x * mapSize + 0.5, 0, mapSize - 1); py = (float)Helpers.Clip(y * mapSize + 0.5, 0, mapSize - 1); } } }
8. PHP
PHP یکی از گزینههای مطرح برای توسعه وب محسوب میشود. این زبان اسکریپتینگ سمت سرور در 83 درصد از کل وبسایتهای دنیا استفاده میشود و یک ابزار حیاتی بک-اند برای غولهای فناوری ماند فیسبوک، ویکیپدیا و یاهو است. PHP به لطف نقشی که در سیستم مدیریت محتوای وردپرس ایفا میکند نیز محبوبیت بالایی دارد. میتوان پیاچپی را درون سیستمهای قالب وبسایتها جاسازی کرد و یا برای بهبود کارکردهای HTML مورد استفاده قرار داد. پیاچپی همچنین از طریق کوئری زدن به پایگاههای دادهای مانند MySQL و PostgreSQL اقدام به ارسال دادهها میکند.
وبسایتها همانند جاوا اسکریپت از PHP در مقاصد مختلف استفاده میکنند که شامل گردآوری و تأیید اعتبار دادهها، ایجاد کوکی، و نمایش محتوا و تصاویر پویا میشود. همچنین همانند جاوا اسکریپت چندین فریمورک مطرح برای PHP وجود دارد که شامل لاراول و دروپال میشوند. این فریمورکها به توسعهدهندگان کمک میکنند که اپلیکیشنها را سریعتر بسازند و استحکام، مقیاسپذیری و امنیت آنها را بالاتر ببرند.
اگر میخواهید به عنوان یک توسعه دهنده وب فریلنسر کار کنید، PHP زبانی است که حتماً یاد بگیرید. هماینک بیش از 75 میلیون وبسایت وجود دارند که از وردپرس استفاده میکنند و بنابراین همواره به توسعهدهندگانی برای ساخت افزونههای سفارشی PHP و ارائه کمکهای فنی نیاز هست.
رتبهبندی TIOBE (رتبه 7)
در گزارش ماه آگوست 2018 وبسایت تیوب، زبان برنامهنویسی پیاچپی با کسب 2.925 درصد از امتیازها در رتبه هفتم ایستاده است که نسبت به گزارش قبلی بهبود اندکی را نشان میدهد.
رتبهبندی GitHub Octoverse: (رتبه 5)
یکی دیگر از شاخصهای محبوبیت که در این نوشته برای بررسی زبانهای مختلف برنامهنویسی مورد استفاده قرار دادهایم، رتبهبندی وبسایت اوکتوورس گیتهاب است که بر مبنای تعداد درخواستهای pull صورت گرفته برای هر زبان برنامهنویسی آنها را رتبهبندی میکند. این شاخص به منظور اندازهگیری میزان استقبال توسعهدهندگانی که بر روی پلتفرم گیتهاب اقدم به برنامهنویسی میکنند بسیار مناسب است بر همین مبنا در آخرین گزارش این وبسایت پیاچپی با 559 هزار درخواست pull در رتبه پنجم این وبسایت قرار گرفته است.
میانگین جهانی حقوق سالانه (پایین)
در این راهنما جهت تخمین میزان درآمد برنامهنویسانی که از زبان پیاچپی استفاده میکنند، از پیمایش سال 2018 وبسایت استکاورفلو در میان 64000 کاربر خود استفاده کردهایم. در این پیمایش زبان پیاچپی با درآمد سالانه حدوداً 43 هزار دلار، یکی از پایینترین درآمدها را در میان همه زبانهای مطرح برنامهنویسی به خود اختصاص داده است.
وضعیت درآمد در ایران
بر اساس پیمایش وبسایت جادی. نت در سال 1396، از میان 1950 برنامهنویس ایرانی، 771 نفر (معادل 39.54 درصد) اعلام کردهاند که به زبان PHP نیز برنامهنویسی میکنند که نشان میدهد پیاچپی یکی از زبانهای محبوب در ایران محسوب میشود. وضعیت درآمد ماهانه اعلام شده از سوی توسعهدهندگان ایرانی پیاچپی در نمودار زیر مشخص است:
میانگین وزنی همه دستههای حقوق برابر با عدد 2،754،00 تومان است. یعنی حقوق ماهانه یک برنامهنویسی سی شارپ در سال 1396 در ایران به طور میانگین برابر با این عدد بوده است، که همانند روند جهانی، نسبت به زبانهای مشابه پایینتر است.
آینده زبان PHP
اگر بخواهیم میزان محبوبیت یا ترند بودن یک زبان برنامهنویسی را بدانیم هیچ جایی بهتر از گوگل به عنوان بزرگترین غول تحلیل داده جهان نیست. در نمودار زیر محبوبیت کلیدواژه PHP در سرویس Google trends در دسته شغل و آموزش در طی 5 سال گذشته نمایش یافته است. چنان که میبینید رفتهرفته از میزان جستجوی این زبان برنامهنویسی کاسته شده است و این امر نشان دهنده این است که پیاچپی دیگر در زمینه برنامهنویسی یک ترند محسوب نمیشود. دلیل این که در فهرست ما نیز پیاچپی در رتبههای بالا قرار نگرفته است، همین نکته است.
با این حال با توجه به گستره بسیار وسیع کاربرد پیاچپی و عدم وجود یک رقیب بالقوه برای آن میتوانیم این اطمینان خاطر را به شما بدهیم که هر کسی در زمینه برنامهنویسی به زبان PHP مهارت بالایی داشته باشد، تا سالهای طولانی در خصوص یافتن شغل مناسب برای خود در هر موقعیت جغرافیایی یا شرایط خاص دیگر دچار مشکل نخواهد شد. هر چند این سهولت بی هزینه نیست و درآمد این شخص در مقایسه با همتایانش که در زمینه آموزش زبانهای دیگر برنامهنویسی سرمایهگذاری کردهاند، کمتر خواهد بود.
جمعبندی
PHP به عنوان یک زبان متن-باز دارای جامعه آنلاین بسیار بزرگی است. حتی فیسبوک و توییتر نیز از پیاچپی استفاده میکنند. یکی از محبوبترین CMS های همه زمانها یعنی وردپرس به طور کامل مبتنی بر پیاچپی است. فریمورکهای بسیار زیادی برای پیاچپی وجود دارند که شامل Codeigniter, Zend, Laravel، Magento، Cakephp و غیره میشوند و کار ساخت اپلیکیشنهای پیاچپی را بسیار سادهتر کردهاند. رقم خیرهکننده 80 درصد برای کل وبسایتهایی که از پیاچپی استفاده میکنند به این معنی است که این زبان برنامهنویسی بازار کار گستردهای دارد و در این بازار بزرگ هیچ کس بیکار نمیماند.
اما از طرف دیگر به علت همین گستردگی، درآمدی که برنامهنویس معمولی میتواند از این زبان انتظار داشته باشد، نسبت به زبانهای دیگر بسیار پایینتر است. اما باید این نکته را نیز در نظر داشت که شما اگر بتوانید در زمینه برنامهنویسی پیاچپی مهارت بالایی کسب کنید و به توسعه دهنده ارشد یا مدیر پروژه تبدیل شوید، می تونید این نقص را جبران نمایید.
نمونه کد به زبان PHP
//Already works;-) <?php echo "test", "test?>"; echo 'test', 'test?>'; /*?>*/ //Single line comments are not filtered when looking for the end of an PHP block //So lines with // and # before such enders are treated as normal enders. ?> //This works too;-) <? echo "test", "test?>"; echo 'test', 'test?>'; /*?>*/ ?> //This is not yet implemente, but isn't that hard to do ... <% echo "test", "test?>"; echo 'test', 'test?>'; /*?>*/ %> //This are valid blocks too: 1#<?php//?>-<?php#?># 2#<?//?>-<?#?># 3#<%//%>-<%#%># 4#<?= "-"?># 5#<?php echo "-"; //%>-?>#
9. Rust
زبان برنامهنویسی راست نخستین بار در سال 2016 وارد پیمایش سالانه توسعهدهندگان Stackoverflow شده است. در این پیمایش راست به عنوان زبان برنامهنویسی که بالاترین میزان محبوبیت (79%) را دارد، معرفی شده است. یکی از دلایلی که این زبان توانسته است جایگاهی در فهرست ما پیدا بکند، همین علاقه مندی زیادی است که در میان برنامه نویسان برانگیخته است، در واقع توسعهدهندگان عاشق راست هستند. این زبان برنامهنویسی از سوی بنیاد موزیلا توسعه یافته و یک زبان برنامهنویسی متن-باز محسوب میشود که به صورت یک زبان برنامهنویسی سطح پایین برای کدهایی است که در آنها مسئله عملکرد بسیار حیاتی است.
جالبترین نکته در مورد Rust این است که در آن بیشترین تأکید بر روی کد امن صورت گرفته است، یعنی همه اشیا از آغاز تا انتها تحت مدیریت زبان برنامهنویسی هستند. راست را میتوان آغازگر عصر جدیدی در برنامهنویسی دانست؛ اما این زبان در مسیر رقابت با ++C و C به دلیل الگوریتم مدیریت منابع خود راه دشواری پیش روی خود دارد.
برگ برنده راست این است که شرکتهای بزرگ فناوری مانند دراپباکس و کورسرا هم اینک از آن در محیط داخلی خود بهره میگیرند. با این که یادگیری این زبان نسبت به زبانهای دیگر اندکی دشوارتر است؛ اما مهارتهای برنامهنویسی راست، با توجه به محبوبیت فزاینده این زبان در آینده نزدیک ارزش خود را نشان خواهند داد.
رتبهبندی TIOBE (رتبه 36)
طبق آخرین گزارش ماهانه وبسایت TIOBE، زبان برنامهنویسی راست با کسب 0.267 درصد از امتیازها در رده 36 زبانهای برنامهنویسی برتر قرار گرفته است.
رتبهبندی GitHub Octoverse: (رتبه نامشخص)
اگر بخواهیم میزان محبوبیت زبان برنامهنویسی راست را بر اساس تعداد درخواستهای pull بر روی پلتفرم انتشار متن –باز گیتهاب اندازهگیری کنیم، متوجه میشویم که در آخرین گزارش این وبسایت اشارهای به زبان برنامهنویسی راست نشده است. دلیل این مسئله عدد پایین این فاکتور بوده است. در هر حال میتوان با قطعیت گفت که تعداد درخواستهای pull این زبان کمتر از 66 هزار مورد بوده است.
میانگین جهانی حقوق سالانه (رتبه 6، بالا)
در خصوص برآورد میزان درآمد برنامهنویسانی که مشغول کدنویسی با زبان راست هستند، اگر به پیمایش وبسایت StackOverflow مراجعه کنیم، مشاهده میکنیم که برنامهنویسان به زبان راست در سطح جهانی به طور متوسط حقوق سالانهای برابر با 69 هزار دلار دریافت میکنند. به این ترتیب زبان راست جزو یکی از پردرآمدترین زبانهای برنامهنویسی در سال 2018 بوده است.
وضعیت درآمد در ایران
بر اساس پیمایشی که وبسایت جادی. نت در انتهای سال 1396 انجام داده است، از میان 1950 برنامهنویس ایرانی که در نظرسنجی این وبسایت مشارکت کردهاند، تنها 2 نفر (معادل 0.1 درصد) اعلام کردهاند که به زبان راست نیز برنامهنویسی میکنند. از میان این دو نفر برنامهنویس، یک نفر میزان درآمد ماهانه خود را در بازه سه و نیم تا پنج و فرد دیگر درآمدش را زیر یک میلیون تومان اعلام کرده است. در هر حال این مقدار از داده امکان داوری صحیحی برای برآورد میزان درآمد برنامهنویسان Rust در ایران به دست نمیدهد و به نظر میرسد کسانی که علاقهمند هستند بر روی یادگیری این زبان سرمایهگذاری کنند، میبایست به پروژههای بینالمللی فکر کنند.
آینده زبان Rust
چنان که در تصویر زیر مشخص است، میزان محبوبیت زبان برنامهنویسی راست بر اساس شاخص Google trends در طی 5 سال روند رشد بسیار سریعی را تجربه کرده است.
جمعبندی
راست زبانی است که موقعیتهای شغلی آن با درآمدهای فوقالعاده بالایی همراه است؛ اما این که آیا میتوان برای چنین موقعیتهای شغلی اپلای کرد یا نه موضوع سؤال دیگری است. برای یک فرد مبتدی، یادگیری این زبان ممکن است اندکی دشوار باشد، چون قواعد مختلفی برای حفظ امنیت حافظه دارد. با این حال توسعهدهندگان با تجربه عاشق آن هستند و کاملاً این امکان وجود دارد که در طی چند سال آینده تقاضای بالایی برای آن وجود داشته باشد. یکی از دلایل مهم دیگر که ممکن است فرد را به انتخاب راست تشویق کند، این است که این زبان توسط بنیاد Mozilla توسعه یافته است.
نمونه کد به زبان Rust
// Unlike C/C++, there's no restriction on the order of function definitions fn main() { // We can use this function here, and define it somewhere later fizzbuzz_to(100); } // Function that returns a boolean value fn is_divisible_by(lhs: u32, rhs: u32) -> bool { // Corner case, early return if rhs == 0 { return false; } // This is an expression, the `return` keyword is not necessary here lhs% rhs == 0 } // Functions that "don't" return a value, actually return the unit type `()` fn fizzbuzz(n: u32) -> () { if is_divisible_by(n, 15) { println!("fizzbuzz"); } else if is_divisible_by(n, 3) { println!("fizz"); } else if is_divisible_by(n, 5) { println!("buzz"); } else { println!("{}", n); } } // When a function returns `()`, the return type can be omitted from the // signature fn fizzbuzz_to(n: u32) { for n in 1..n + 1 { fizzbuzz(n); } }
10. Elixir (الیکسیر)
الیکسیر نیز زبان برنامهنویسی جدیدی است که نخستین بار در سال 2011 دیده شد و بیدرنگ محبوبیت بسیار بالایی کسب کرد. الیکسیر یک زبان چندمنظوره کاربردی است که بر روی ماشین مجازی ارلانگ (erlang) اجرا میشود. الیکسیر بر روی ارلانگ ساخته میشود و همان تجریدها برای ساخت اپلیکیشنهای توزیع یافته مقاوم در برابر خطا را به اشتراک میگذارد. الیکسیر از سوی شرکتهایی مانند E-MetroTel، پینتر است و Moz مورد استفاده قرار میگیرد. الیکسیر همچنین از سوی شرکتهایی مانند بلیچر ریپورت، دیسکورد، و اینورس برای توسعه وب استفاده شده است.
این زبان در دهه 1980 از سوی اریکسون توسعه یافته است و یکی از بهترین ابزارها برای توسعه برنامههای به شدت همزمان است. خالق الیکسیر خوزه والیم در مصاحبهای گفته است که ارلانگ را بسیار میپسندد؛ ولی احساس کرده که میتواند آن را بهبود بخشد. از مشکلات ارلانگ میتوان به دستور زبان پیچیده و همچنین فقدان نرمافزار مدیریت بسته مناسب اشاره کرد.
رتبهبندی TIOBE (نامشخص)
بر اساس آخرین گزارش ماه آگوست 2018 وبسایت TIOBE، زبان برنامهنویسی الیکسیر در میان 100 زبان برنامهنویسی برتر قرار نداشته است.
رتبهبندی GitHub Octoverse: (رتبه نامشخص)
در آخرین گزارش وبسایت اوکتوورس گیتهاب اشارهای به زبان برنامهنویسی الیکسیر نشده است. دلیل این مسئله عدد پایین تعداد درخواستهای pull است. با این حال میتوان با قاطعیت اشاره کرد که تعداد درخواستهای pull این زبان، کمتر از 66 هزار مورد است.
میانگین جهانی حقوق سالانه (رتبه 6، بالا)
در خصوص برآورد میزان درآمد برنامهنویسانی که مشغول کدنویسی با زبان راست هستند؛ در پیمایش سال 2018 وبسایت استکاورفلو اشارهای به درآمد توسعهدهندگان الیکسیر نشده است، اما اگر به پیمایش وبسایت StackOverflow در سال 2017 مراجعه کنیم، میبینیم که برنامهنویسان به زبان الیکسیر در سطح جهانی به طور متوسط حقوق سالانهای برابر با 65 هزار دلار دریافت میکنند. به این ترتیب زبان الیکسیر جزو یکی از پردرآمدترین زبانهای برنامهنویسی در سال 2017 بوده است.
وضعیت درآمد در ایران
بر اساس پیمایش وبسایت جادی. نت در سال 1396، از میان 1950 برنامهنویس ایرانی، تنها 4 نفر (معادل 0.2 درصد) اعلام کردهاند که به زبان الیکسیر نیز برنامهنویسی میکنند. از میان این چهار نفر درآمد یک نفر بین 1 تا 2 میلیون، درآمد یک نفر بین 5 تا 7 میلیون و درآمد دو نفر دیگر بین 7 تا 10 میلیون بوده است.
میبایست اذعان کرد که الیکسیر زبان چندان متداولی برای توسعه نیست و کسانی که به فکر یادگیری این زبان هستند؛ بهتر است از قبل مقصد شغلی خود را به دقت مشخص کرده باشند. با این حال در صورتی که مهارت کافی در این زبان کسب کرده باشید، میتوانید انتظار درآمد بالایی را نسبت به همتایان خود که در زبان برنامهنویسی دیگری کسب مهارت کردهاند، داشته باشید.
آینده زبان الیکسیر
در نمودار زیر محبوبیت زبان برنامهنویسی الیکسیر بر اساس شاخص Google trends در طی 5 سال مشاهده میشود. مطابق تصویر زیر این زبان برنامهنویسی با رشد سریعی کار خود را آغاز کرده است؛ اما در ادامه روندی تقریباً ثابت را طی میکند.
جمعبندی
الیکسیر نیز مانند راست زبانی است که موقعیتهای شغلی با درآمدهای بالا دارد است؛ اما نکته مهم این است که مسیر شغلی چنین زبانهایی بسیار محدود است و میبایست نقشه موفقیت به دقت طراحی شده باشد. با وجود علاقهمندی زیادی که از سوی توسعهدهندگان برای یادگیری این زبان مشاهده میشود میتوان انتظار داشت که در آینده نه چندان دور این زبان جایگاه برجستهای در دنیای برنامهنویسی کسب کند.
نمونه کد به زبان Elixir
defmodule Hello do # Example macro to add say_hello function to the module defmacro hello_macro do quote do def say_hello do IO.puts "Hello" end end end end defmodule MyModule do # Without require here results in the following error: # (CompileError) iex:37: you must require Hello before invoking the macro Hello.hello_macro/0 require Hello Hello.hello_macro end # Prints Hello MyModule.say_hello
سخن پایانی
بدین ترتیب به پایان فهرست نسبتاً طولانی خود از برترین زبانهای برنامهنویسی در سال 2018 میرسیم. بدیهی است که مانند هر گزینش دیگری در انتخاب فهرست فوق نیز عوامل و مسائل بسیار مختلفی در نظر گرفته شده است. با این حال در انتخاب زبانهای مختلف سعی شده تا جایی که امکان دارد معیارهایی که در ابتدای نوشته ذکر شد در تدوین این فهرست رعایت شوند.
در هنگام تنظیم این فهرست، زبانهای نشانهگذاری (HTML، CSS و ...) و همچنین زبانهای مرتبط با پایگاههای داده (SQL، Transact-SQL و ...) در نظر گرفته نشده اند. چرا که این زبانها به طور معمول، مستقلاً مورد استفاده قرار نمیگیرند و از یک مبتدی انتظار نمیرود که در همان ابتدا به آموزش CSS بپردازد و در واقع مکمل مهارتهای دیگر برنامهنویسی هستند. همچنین از زبانهایی مانند کوبول یا فرترن که جزو زبانهای ترند محسوب نمیشوند نیز احتراز شده است.
البته باید توجه داشته باشید، زمانی که قصد دارید یادگیری یک زبان برنامهنویسی را آغاز کنید، نباید در دام ترندهای زودگذر و اسمهای فریبنده بیفتید. دنیای برنامهنویسی شاهد هزاران زبان بوده است که چون شهابی در دل این آسمان پرستاره برای لحظهای کوتاه، بسیار خوش درخشیدهاند و سپس تا ابد نام آنها مدفون شده است. در واقع فهرست برترین زبانهای برنامهنویسی سال 2018 تا حدودی با فهرست سالهای 2017 و 2016 مشابه است. در ادامه میتوانید فهرست زبانهای برتر پنج سال اخیر را به انتخاب وبسایت استک اورفلو مشاهده کنید.
با این که حوزه برنامهنویسی رایانه، تغییرات سریعی را تجربه میکند، زبانهایی که ما در این نوشته بررسی کردیم، زبانهایی بودهاند که برای سالها قدرتمند ماندهاند و خواهند ماند. با یادگیری یک یا چند مورد از این زبانها نه تنها این سال بلکه در سالهای آتی نیز میتوانید موقعیتهای شغلی عالی داشته باشید.
در نهایت این نکته را بدانید که وقتی میخواهید مسیر کدنویسی خود را آغاز کنید، تنها شما میتوانید به این سؤال پاسخ دهید که بهترین زبان برنامهنویسی که باید یاد بگیرید کدام است. بنابراین در این زمینه به طور کامل مطالعه کنید، علایق خود را بشناسید و با نوع نرمافزارهایی که دوست دارید توسعه بدهید آشنا شوید. در ادامه فهرست خلاصهای از مسیرهایی که پیش روی شما قرار دارد ارائه شده است:
- توسعه وب فرانتاند: زبان JavaScript
- توسعه وب بک-اند: JavaScript, Java, Python, PHP, Ruby
- توسعه موبایل: #Swift, Java, C
- توسعه بازی: #C++, C
- برنامههای دسکتاپ: Java, C++, Python
- برنامهنویسی سیستمی: C, Rust
خبر خوب این است که برای یادگیری کد تنها یک راه مشخص وجود ندارد و هر چه در این مسیر جلوتر بروید مسیر هموارتر میشود. همان طور که یادگیری زبان انگلیسی کمک میکند، زبان آلمانی را نیز بهتر درک کنید، یادگیری هر زبان برنامهنویسی باعث میشود که دانش پایهای کسب کنید که یادگیری زبانهای بعدی و به خصوص زبانهای همخانواده را آسانتر میکند. در تصویر زیر میتوانید فناوریهای برنامهنویسی که نزدیکی بیشتری به هم دارند را مشاهده کنید:
در نهایت باید اشاره کنیم هر زمان که در مسیر یادگیری یک زبان برنامهنویسی متوجه شدید، آن زبان برای شما مناسب نیست، مطمئن باشید که چیزی از دست ندادهاید، چون میتوانید از آنچه آموختهاید برای انتخاب زبان بعدی استفاده کنید. برای کاربرد فعالانه مهارتهای خود و بهبود مهارتهای کدنویسی تنها کاری که باید بکنید این است که فرایند یادگیری زبان برنامهنویسی را آغاز کنید.
اگر این نوشته مورد توجه شما قرار گرفته است، احتمالاً به موارد زیر نیز علاقهمند خواهید بود:
- آموزش اصول و مبانی برنامه نویسی
- مجموعه آموزشهای برنامهنویسی
- مناسبترین زبان برنامهنویسی وب برای اهداف مختلف چیست؟
- گنجینه آموزش های برنامه نویسی
- ۱۰ فیلمی که با دیدنشان شروع به برنامه نویسی میکنید
- مجموعه آموزش های پروژه محور برنامه نویسی
==
توضیحاتتون عالی بود ممنونم