انواع زبان های برنامه نویسی و کاربرد آن ها: انتخاب زبان مناسب پروژه
یک برنامه، اپلیکیشن یا نرم افزار، طبق تعریف عبارتست از پیاده سازی یک پدیده خارجی (مانند ماشین حساب، متخصص حسابداری، ربات فوتبالیست و ...) در کامپیوتر با استفاده از یک زبان برنامه نویسی و مبتنی بر یک مدل ریاضی. بنابراین، زبان های برنامه نویسی، اصلی ترین ابزار جهت پیاده سازی برنامه های کامپیوتری می باشند. به عبارت دیگر می توان گفت که پدیده ها را با استفاده از مدل های محاسباتی مانند الگوریتم، فلوچارت و عبارت های ریاضی مدلسازی کرده و توسط زبان های برنامه نویسی، در کامپیوتر پیاده سازی می کنیم.
یکی از اصلی ترین سردرگمی های نوآموزان برنامه نویسی و دانشجویان رشته مهندسی نرم افزار، در حقیقت انتخاب زبان برنامه نویسی مناسب با کاربرد مدنظر و همچنین روحیات شخصی برنامه نویس می باشد. با مدنظر قراردادن این نکته که تمامی زبان های برنامه نویسی، همه منظوره نیستند و هر زبان کاربرد خاص خود را داراست، انتخاب زبان برنامه نویسی مناسب، حایز اهمیت فراوانی خواهد بود.
در این مقاله کوتاه از آکادمی هوش تجاری جنوب، زبان های برنامه نویسی را به 3 دسته مختلف تقسیم کرده و خصوصیات هر دسته به همراه مهمترین زبان های متعلق به آن دسته معرفی شده و به صورت مختصر بررسی خواهند شد:
1- زبان های برنامه نویسی کامپیوترهای شخصی:
این دسته شامل انواع کامپیوترهای شخصی دسکتاپ و لپتاپ شده که سیستم عامل دستورالعمل-کامل (مانند انواع ویندوز، مک و لینوکس) دارند. زبان های برنامه نویسی این دسته را می توان به 2 دسته بزرگ دیگر دسته بندی کرد.
دسته اول، زبان های همه منظوره (General Purpose) که جد اصلی آن ها زبان C و یا زبان Basic می باشد. زبان بیسیک همانطور که از نامش پیداست یک زبان ساده و پایه برای نوآموزان برنامه نویسی بود که کم کم پیشرفت کرد و تبدیل به Visual Basic و سپس VB.NET شد. هم اکنون این نسخه از زبان بیسیک به عنوان یکی از 3 زبان اصلی اکوسیستم .NET محبوبیت خود را حفظ کرده است. همچنین، زبان بک-اند (Backend) وب سرویس اصلی ویندوز سرور معروف به زبان ASP.NET نیز از قواعد نحوی مشابهی استفاده می کند. از طرف دیگر، زبان C با تعریف مفاهیم شیءگرایی تبدیل به C++ شد و از آنجا، نسخه های متعدد بعدی مانند Visual C++ و C# را ساخت که آخری هم اکنون محبوب ترین زبان اکوسیستم .NET محسوب می شود. شایان ذکر است که اکثر زبان های محبوب دنیا مانند Java، JavaScript، PHP و Python نیز از گرامر نحوی (Syntax) مشابه C استفاده می کنند و می توان گفت که جد اصلی آن ها زبان C می باشد.
دسته دوم از زبان های برنامه نویسی کامپیوترهای شخصی، کاربردی علمی-تحقیقاتی دارند که پروژه های تحقیقاتی مهندسی و پایان نامه های تحقیقاتی کارشناسی ارشد و دکتری به وسیله آن ها نوشته می شوند. تا چندی پیش، مهمترین این زبان ها، MATLAB نام داشت که یک کتابخانه بزرگ تحقیقاتی بود، لکن با پیشرفت علم داده و هوش مصنوعی، زبان Python که قابلیت مدیریت حافظه و استثنائات بسیار قوی تری داشت، ترند و محبوب شد و اکنون زبان اصلی این حوزه قلمداد می شود. در همین دسته، زبان R که قابلیت های آماری متنوع اما کاربری ساده تری دارد نیز در حال رقابت است.
2- زبان های برنامه نویسی مبتنی بر وب:
تکنولوژی وب یا تور جهان گستر (WWW)، از 2 قسمت اصلی تشکیل شده است که هر بخش، زبان های برنامه نویسی خاص خود را داراست:
معمولاً داده های اصلی یک صفحه ی وب در سمت سرور و در قالب فایل یا پایگاه داده نگه داری می شوند. یک وب سرویس یا سرویس دهنده وب (Web Service) وجود دارد (مثلاً آپاچی در لینوکس یا IIS در ویندوز سرور) که این فایل ها و پایگاه های داده را پردازش می کنند. به این قسمت از تکنولوژی وب، پشت پرده وب یا بک-اند (Backend) گویند و حاوی زبان هایی است که برنامه نویسیان از طریق آن ها برای سرویس دهنده وب برنامه نویسی می کنند. سرویس دهنده های مختلف معمولاً از زبان SQL جهت مدیریت پایگاه های داده و از زبان هایی مانند PHP (وب سرویس آپاچی در لینوکس) و ASP (وب سرویس IIS در ویندوز سرور) جهت برنامه نویسی توابع، پردازش ها و سرویس های سایت خود استفاده می کنند.
از طرف دیگر، هر سایت یک ظاهر یا پوسته دارد که به آن رابط کاربری (UI) یا فرانت-اند (Frontend) گویند. این بخش از سایت معمولاً به زبان هایی مانند HTML، CSS و JavaScript نوشته می شود که HTML ساختار صفحه و CSS آرایش صفحه را مهیا کرده و JavaScript به صفحه، پویایی یا روح می دهد تا بتوانیم با صفحه موردنظر تعامل کنیم (مثلاً یک فرم عضویت را پر کنیم یا به عنوان عضو وارد سیستم شویم). از آنجاییکه این بخش از تکنولوژی وب دشواری های بسیاری دارد (از جمله تفاوت دید در کامپیوترهای خانگی که عریض هستند با موبایل های هوشمند که عمودی می باشند)، انواع چارچوب های مختلف به مدد برنامه نویسان فرانت-اند آمده که از جمله آن ها می توان به فریمورک های Angular، React، Vue، Bootstrap، Next و ... اشاره کرد. این چارچوب ها حاوی توابع و کتابخانه های متنوعی هستند که کار برنامه نویسی، خطایابی و توسعه رابط کاربری و فرانت-اند را ساخت یافته و راحت تر می کنند.
3- زبان های برنامه نویسی موبایل:
پردازنده های موبایل از نوع ARM می باشند که بدان معنی است که برخلاف پردازنده های کامپیوترهای شخصی، قادر به اجرای تمامی دستورالعمل ها نیستند (به آن ها دستورالعمل-ناقص نیز می گویند). این تکنولوژی باعث می شود که در مصرف انرژی بشدت صرفه جویی گردد و این مساله از آنجا حائز اهمیت است که موبایل های هوشمند (و تبلت ها) از باتری های با ظرفیت محدود استفاده می کنند. هم اکنون، سیستم عامل های مهم موبایلی، Android و iOS می باشند که توسعه دهنده اولی شرکت Google و دومی شرکت Apple می باشد.
از ابتدای خلقت اندروید، شرکت گوگل از زبان Java جهت توسعه اپلیکیشن های اندرویدی استفاده می کرد که چندسالی است که توجه ویژه ای به زبان Kotlin دارد. هرچند که این زبان بیشتر به یک کتابخانه بزرگ از زبان جاوا شباهت دارد تا اینکه خود یک زبان مستقل باشد.
از طرف دیگر، شرکت اپل از زبانی موسوم به Objective-C (مجدداً یکی از نوادگان زبان C) جهت توسعه اپلیکیشن های iOS استفاده می کرد که چندسالی است که توجه خود را به زبان Swift معطوف کرده که بسیار راحت تر و روان تر است.
در این میان، زبان های چند-سکویی (Cross-Platform) نیز وجود دارند مانند زبان های Flutter، React، Unity (برای بازی سازی)، Go و ... که می توانند خروجی مناسب سیستم عامل های مختلف (و حتی تحت وب) تولید نمایند.
نتیجه گیری و سخن آخر
با مدنظر قرار دادن موارد مطرح شده در این مقاله، قبل از هر چیز در انتخاب زبان برنامه نویسی یک پروژه، می بایست ماهیت آن پروژه مشخص گردد تا بسته به کاربرد آن، زبان یا ترکیب زبانهای کاربردی مناسب آن پروژه مشخص گردد. در صورتی که زبان یا ترکیبات زبانی مختلفی برای یکی پروژه وجود داشته باشند، برنامه نویس می تواند میزان آشنایی یا راحتی خود را مدنظر قرار داده و آن دسته از زبان هایی که با روحیات و خلقیات شخصی وی سازگارتر است را انتخاب نماید.
این مقاله، بخش کوچکی از مباحث تشریح شده در دوره صفر تا صد مبانی کامپیوتر و اصول برنامه نویسی از آکادمی هوش تجاری جنوب است که توسط آقای دکتر بویری (مدرس و استادیار دانشگاه) تدریس شده است.
مراجع و لینکدونی:
- دوره صفر تا صد مبانی کامپیوتر و اصول برنامه نویسی 🡤
- زبان های برنامه نویسی در ویکی پدیا 🡤
- لیست زبان های برنامه نویسی در ویکی پدیا 🡤
- بنیاد پایتون 🡤
- کنسرسیوم وب 🡤
- اندروید در گوگل 🡤
- iOS در اپل 🡤
- وب سرویس آپاچی در لینوکس 🡤
- وب سرویس IIS مایکروسافت 🡤
- پروژه .NET مایکروسافت 🡤
- جاوا در اوراکل 🡤
- چندسکویی در ویرگول 🡤