آیا شما هم علاقهمند به یادگیری یک زبان برنامهنویسی جدید هستید؟ احتمالا گوگل را برای مقایسهی انواع زبانهای برنامهنویسی موجود زیرو رو کردهاید ولی هنوز در انتخاب زبان مناسب سردرگم هستید. اگر جواب شما مثبت است خواندن این مطلب را به شما توصیه میکنیم.
برای دستیابی به مقایسهای مناسب بین زبانهای برنامهنویسی موجود، از منابع اطلاعاتی زیادی میتوان استفاده کرد. این منابع شامل مخزنهای کد (Code Repositories) مانند GitHub، انجمنهای سوال و جواب، تبلیغات مشاغل، تگهای شبکههای اجتماعی، میزان بازدید از دورههای آموزشی هرکدام از زبانها و بررسی مقالات توسعهدهندگان وب هستند. هرکدام از این منابع مزایا و معایب خود را دارند و بهطور دقیق نمیتوان به آنها استناد کرد، ولی تا حدود زیادی به ما در انتخاب صحیح زبانبرنامه نویسی مناسب کمک خواهند کرد.
در ادامه به بررسی برخی از این رتبهبندیهای انجام شده میپردازیم.
GitHut
سرویس GitHut منبع جدیدی است که 2.2 میلیون مخزن کد فعال GitHub را آنالیز میکند. طبق آمار این منبع ده زبان اول به شرح زیر هستند:
- JavaScript
- Java
- Python
- CSS
- PHP
- Ruby
- C++
- C
- Shell
- C#
RedMonk
طبق مقالهی منتشر شده در ژانویه 2015 در RedMonk رتبههای اول براساس میزان فعالیت در GitHub و Stack Overflow به ترتیب به زبانهای زیر اختصاص داده شدهاند:
- JavaScript
- Java
- PHP
- Python
- C#
- C++
- Ruby
- CSS
- C
- Objective-C
محور عمودی میزان محبوبیت را در Stack Overflow براساس تعداد تگ نشان داده و محور افقی میزان محبوبیت در GitHub براساس تعداد پروژهها را نشان میدهد.
Jobs Tractor
سایت Jobs Tractor با رصد و آنالیز هزاران توییت منتشر شده در توییتر مربوط به مشاغل و زبانهای برنامه نویسی رتبهبندی زیر را ارائه میدهد:
- Java
- Objective-C
- PHP
- SQL
- Java (Android)
- C#
- JavaScript
- Python
- Ruby
- C++
TOIBE Index
سرویس TOIBE Index با بررسی تعداد مهندسین این حوزه، دورههای آموزشی و رتبهبندی موتورهای جستجو رنکینگ زیر را ارائه میکند:
- C
- Java
- Objective-C
- C++
- C#
- PHP
- JavaScript
- Python
- Visual Basic.NET
- Visual Basic
چند نکته درمورد آمارهای ارائه شده:
GitHut و RedMonk به دلیل اینکه منبع اطلاعاتیشان GitHub بوده آماری شبیه به هم ارائه دادهاند. هردو، مخازن کد با دسترسی عمومی را بررسی کرده و از بررسی مخازن Private خودداری کردهاند که این باعث میشود آمارشان به سمت زبانهای Open Source متمایل شود.
TOIBE نیز تحت تاثیر موتورهای جستجو قرار گرفته است. شاید به همین دلیل زبان C را در صدر این آمار میبینیم. زبان C در سال 1969 توسعه یافت و از سالیان گذشته مقالات زیادی از آن در وب موجود است. و احتمالا به همین دلیل نیز زبانهای جدیدتری مانند Ruby رتبههای پایینتری را کسب کردهاند.
بررسی منابع آموزشی نیز بهطوری خاص آمار را تحت تاثیر قرار دادهاند. برای مثال، زبان پایتون (Python) به طور عمده در اکثر دورهها و کلاسهای آموزش برنامهنویسی (خارج از ایران) یاد داده میشود. ولی مشاغل مرتبط با پایتون به نسبت PHP و Ruby بسیار کمتر هستند.
نکتهی دیگر اینکه CSS را نمیتوان یک زبان برنامهنویسی در نظر گرفت ولی بدلیل استفادهی مهم آن در طراحی وب، درمنابع از آن به عنوان زبان برنامهنویسی یاد شده است.
به هرصورت با مشاهدهی آمار و بالاتر بودن نسبی رتبهی زبانهای تحت وب به نسبت زبانهای دسکتاپ، به دو نکته باید توجه داشت:
- یک وبسایت یا نرمافزار تحت وب به تکنولوژیها و زبانهای وابستهی زیادی نیاز دارد و احتمالا این باعث میشود زبانهای تحت وب به طور کلی بالاتر از زبانهای دسکتاپ قرار بگیرند.
- شما میتوانید به سرعت و فقط در چند خط کد در زبانهای CSS، PHP، Ruby و پایتون کارتان را انجام دهید (بسته به نوع پروژه). درصورتی که زبانهای C، C# و جاوا از این قاعده مستثنی بوده و شاید این باعث میشود کمتر در پروژههای بزرگتر مورد استفاده قرار گیرند.
بررسیها به شما چه میگویند؟
«بهترین» زبان برنامهنویسی وجود ندارد.
ضمنا تعداد کمی برنامهنویس هستند که فقط به یک زبان مسلط باشند.
برای مثال اگر انتخاب شما جاوا اسکریپت باشد، شما به نتیجهی خوبی نخواهید رسید مگر اینکه با HTML، CSS و جنبههایی از مرورگرهای وب آشنایی داشته باشید. در انتخاب زبانهای سمت سرور مانند PHP، Ruby و ASP.NET باید اطلاعاتی درمورد وبسرور، HTTP، پایگاههای دادهی SQL یا غیر SQL و گاهی اوقات نیز XML و JSON داشته باشید.
با این اوصاف کدام زبان را باید یاد بگیریم؟
بررسی های ارائه شده میتوانند به ما کمک کنند اما حرفهتان را با استناد به آنها پایهگذاری نکنید. برای اینکه یک برنامهنویس عالی شوید تنها یک راز وجود دارد و آن اینکه: «دست به کار شوید و چیزی بسازید»
ابتدا مشکل یا مسئلهای را پیدا کنید. مخصوصا مسئلهای که به آن علاقه دارید یا به نوعی به شما سود میرساند. این مسئله میتواند ساخت یک وبسایت شخصی، مدیریت هزینههای مالیتان یا ارسال توییتهای تصادفی به فالوئرهایتان باشد. اطمینان یابید اهدافی که تعریف کردهاید قابل دستیابی هستند. در ابتدای راه، تعیین اهدافی مانند ساخت یک بازی Call of Duty جدید یا نسخهای جدید از Wordpress غیر عاقلانه خواهد بود!
بعد از گذر از این مرحله، باید زبان مناسب را انتخاب نمایید. ممکن است چندین انتخاب داشته باشید. دراین صورت به میزان موجود بودن منابع آموزشی آن زبان نیز توجه داشته باشید.
در مرحله بعد و پس از انتخاب زبان مناسب، اقدام به حل مسئله کنید. میتوانید از گوگل، قطعه کدهای آماده و پرسش از برنامهنویسان دیگر کمک بگیرید ولی انتظار نداشته باشید آنها جواب کامل را به شما بگویند. پروژهی شما یکتاست (یا باید باشد) و تنها یک نفر میتواند به شما کمک کند تا آن را حل کنید و آن خود شما هستید.
در آخر، انتظار نداشته باشید یک شبه برنامهنویس قهاری شوید. برای برنامهنویس شدن باید زمان صرف کنید و به دنبال یادگیری تکنولوژیهای جدید باشید. دورههای آموزشی زیادی سرتاسر وب وجود دارند که بسیاری از آنها رایگان بوده و میتوانید از آنها استفاده کنید.
بطور خلاصه، انتخاب یک زبان برنامهنویسی با هدف حل تمارین دانشگاه و یا شروع یک حرفه به احتمال زیاد منجر به عدم موفقیت شما خواهد شد. بهتر است زبانی را با این هدف انتخاب کنید که یک مسئلهی واقعی و تعریف شده را حل میکند. زیاد نگران این نباشید که زبان انتخابی در بین 10 زبان برتر نیست؛ زیرا اکثر زبانها از نظر مفاهیم شبیه به یکدیگر بوده و مهارتهای شما قابل انتقال به زبان دیگری خواهد بود.
مهمترین نکته این است که از انتخابهای خود نگران نباشید: فقط چیزی بسازید.