مادر زبان های برنامه نویسی کدام زبان است + ویدیو
ویدیو به انتهای مقاله اضافه شده است
اگر بگوییم حدود ۸۰۰۰ زبان برنامه نویسی ساخته شده است شاید باور نکنید و تعجب برانگیز باشد ولی بیشتر این زبان های برنامه نویسی هرگز بصورت عمومی استفاده نشده اند و فقط حدود ۵۰ تا ۶۰ زبان برنامه نویسی وجود دارد که به محبوبیت رسیده و بصورت عمومی استفاده شده است اما به نظرتون مادر زبان های برنامه نویسی کدام زبان حساب میشود و دلیل چیست ؟
ابتدا باید در همین ابتدای مقاله گفت که نیاز نیست شما همه ی آن ۸۰۰۰ زبان برنامه نویسی را بلد باشید و این عدد ترسناک حتی برای برنامه نویسان حرفه ای شرکت های بزرگ هم تعجب آور است ، همین که شما بتوانید به یک یا چند عدد زبان برنامه نویسی کاربردی مسلط شوید به معنی موفقیت شما خواهد بود و شما به راحتی با استفاده از آن میتوانید استخدام شوید یا پروژه های برنامه نویسی بگیرید.
زبان های برنامه نویسی به دسته بندی های مختلفی تقسیم بندی میشوند و هر کدام کاربردهای خاصی دارد که در این مقاله به معروف ترین زبان های برنامه نویسی و کاربرد آنها میپردازیم و سپس به مادر همه ی زبان های برنامه نویسی خواهیم پرداخت.
زبان های برنامه نویسی چند منظوره
زبان های برنامه نویسی که چند منظوره هستند در زمینه های مختلف کاربردی هستند و برای یک زمینه ی خاصی طراحی نشده اند ، گاهی از این زبان های برنامه نویسی با عنوان زبان های کراس پلتفرم نیز یاد میشود چون در پلتفرم های مختلفی کاربردی هستند ، کارهایی مانند توسعه ی نرم افزار ، برنامه نویسی وب ، علم داده ، برنامه نویسی موبایل ، بازیسازی و ...
از محبوب ترین زبان های برنامه نویسی چند منظوره یا کراس پلتفرم به زبان های زیر میتوانیم اشاره کنیم :
- سی ( C )
- سی پلاس پلاس ( C++ )
- جاوا ( Java )
- پایتون ( Python )
- سی هشتگ ( C# )
- سوییفت ( Swift )
- گو لنگ ( Golang )
- راست ( Rust )
- کاتلین ( Kotlin )
- دارت ( Dart )
- روبی ( Ruby )
- پرل ( Perl )
- آبجکتیو سی ( Objective-C )
- تایپ اسکریپت ( TypeScript )
- جاوا اسکریپت ( JavaScript )
- لوآ ( Lua )
- آر ( R )
- گرو وی ( Grovy )
- اسکالا ( Scala )
- اف شارپ ( F# )
- وی بی ای ( VBA )
این زبان های برنامه نویسی ساخته شده اند تا منطعف باشند و دست برنامه نویسان را از نظر پلتفرم آزاد بذارند.
زبان های برنامه نویسی تخصصی
این نوع زبان ها برای صنعت یا علوم خاصی طراحی شده اند و همانطور که در اسم آنها نیز اشاره شده است اختصاصی هستند و برای پیشبرد اهداف علمی یا تخصصی در یک شاخه یا زمینه ی خاصی ساخته شده اند و ممکن است در دیگر زمینه ها اصلا کاربردی نباشند.
زبان های برنامه نویسی اختصاصی محبوب ( زمینه و کاربرد اختصاصی آن بعد از خط تیره نوشته شده است ) :
- متلب ( MATLAB ) - برای محاسبات آماری و آنالیز داده های آماری و عددی
- زبان VHDL - زبان تووصیف سخت افزاری و طراحی سخت افزاری
- زبان SQL - برای کوئری نویسی دیتابیس ها
- زبان R - برای محاسبات آماری
- زبان Verilog - برای طراحی مدارهای دیجیتالی
- زبان Lisp - برای هوش مصنوعی و برنامه نویسی Symbolic
- زبان XSTL - جهت تبدیلات XML
- زبان PostScript - جهت توصیف صفحه و چاپ
- زبان Fortran - برای محاسبات علمی و تحلیلات عددی
- زبان SAS - برای محاسبات آماری و مدیریت داده ها
- زبان Simula - جهت شبیه سازی و برنامه نویسی شی گرا
- زبان COBOL - برای سیستم های تجاری و مالی
- زبان Smalltalk - برای طراحی و توسعه ی شی گرا
- زبان Action script - برای کاربرد وب و فلش و ...
- زبان های برپایه ی SQL - مثل TSQL - PL/SQL جهت دیتابیس
- Pure Data - برای پردازش صوتی و ویدیو بصورت realtime
- زبان Prolog - برای برنامه نویسی لاجیک و هوش مصنوعی
- زبان Proccessing - برای هنرهای تجسمی و طراحی های تعاملی
- زبان OCaml - برای برنامه های پرفرمنس بالا
- زبان Crystal - جهت برنامه نویسی وب و سیستم با پرفورمنس بالا
این زبان ها بر نیازهای خاص یا زمینه های خاصی تمرکز دارند که برخلاف زبان های کراس پلتفرم در همه ی پلتفرم ها کاربردی نیستند.
زبان های برنامه نویسی محرمانه ( Esoteric programming language )
این نوع زبان های برنامه نویسی بیشتر جنبه ی سرگرمی و فان داشته اند تا عملکرد واقعی و هدف آنها هم تغییر حالت عادی کدنویسی به چیزی رمز مانند بوده در لیست زیر برخی زبان های برنامه نویسی محرمانه ی محبوب را میبینیم :
- زبان Brainfuck - یک زبان برنامه نویسی کوچک که کلا هشت کامند دارد.
- زبان Whitespace - فقط از space - tab - و خط جدید برای کدنویسی استفاده میشه.
- زبان LOLCODE - زبان برنامه نویسی فان بر اساس meme معروف اینترنتی lolspeak .
- زبان Piet - کدها با تصویر و رنگ ها نوشته میشود تا کدهای واقعی!
- زبان INTERCAL - طراحی شده تا حد امکان از حالت عادی و سنتی برنامه نویسی دور باشه.
- زبان Malbolge - یک زبان عمدا سخت برای یادگیری .
- زبان Befunge - از کنترل جریان چند بعدی پشتیبانی میکنه.
- زبان GolfScript - برای چالش های Code golf ساخته شده و تصمیم داره کدنویسی هم مختصر بشه.
این نوع زبان ها معمولا برای سرگرمی ، معما و حل مسائل خاص مختلف ساخته شده اند و برای پروژه های واقعی کاربردی نیستند.
زبان های برنامه نویسی منسوخ شده
این زبان ها زمانی کاربردی بودند اما با جایگزینی یک زبان بهتر یا مدرن تر از رده خارج شده اند. در زیر لیستی از محبوب ترین زبان های از رده خارج شده را مشاهده میکنید:
- زبان ALGOL - در دانشگاه برای تحقیقات اولیه روی علوم کامپیوتر استفاده میشده.
- زبان COBOL - زمانی بهترین زبان برنامه های تجاری و مالی بود اما الان تکنولوژی های جدیدتر جایگزینش شده است.
- زبان FORTRAN - در کاربرد های علمی و مهندسی رایج بود اما کم کم استفاده از آن کاهش یافت.
- زبان Lisp - از لحاظ تاریخی برای هوش مصنوعی استفاده میشد اما اکنون جای خود را به زبان های بهتری داده است.
- زبان Pascal - برای آموزش برنامه نویسی و همچنین توسعه نرم افزار استفاده میشد ولی بعدا جای خود را به زبان سی و پایتون داد.
- زبان Smalltalk - در برنامه نویسی شی گرا استفاده میشد اما جاوا و سی پلاس پلاس جای او را گرفت.
- زبان BASIC - بیشتر مقاصد آموزشی داشت اما کم کم با انتشار زبان های مدرن تر از میان رفت.
- زبان PL/I - زمانی کاربرد علمی تجاری داشت اما اکنون از بین رفته است.
- زبان Ada - در سیستم های حیاتی استفاده میشد اکنون با زبان های مدرن تر جایگزین شده است و یک زبان منسوخ حساب میشود.
این زبان های برنامه نویسی ممکن است هنوز هم در سیستم های قدیمی دیده شود ولی برای توسعه ی جدید مورد استفاده قرار نمیگیرند و پشتیبانی هم نمیشوند.
زبان های برنامه نویسی توسعه یافته
این زبان های برنامه نویسی معمولا روی یک زبان برنامه نویسی دیگر ساخته شده اند و قصد داشتند که اشکالات زبان های دیگر را اصلاح کنند و به زبانی مدرن یا جدید و کاربردی تبدیل شوند در لیست زیر محبوب ترین زبان های برنامه نویسی این دسته بندی را مشاهده میکنید :
- زبان C++ : این زبان با افزودن شی گرایی و چند مورد جدید به زبان معروف C خلق شده است.
- زبان objective-c : این زبان قابلیت شی گرایی را به زبان C اضافه کرده است و اغلب برای سیستم های اپل مورد استفاده قرار میگرفت.
- زبان swift : زبان برنامه نویسی جدید شرکت اپل که برای جایگزینی با objective-c ساخته شده است و برای مک او اس و آیفون و ... استفاده میشود.
- زبان TypeScript : یک زبان تکامل یافته ی جاوااسکریپت.
- زبان برنامه نویسی کاتلین ( kotlin ) : جهت رفع اشکالات جاوا و خطاهای جهت برنامه نویسی موبایل اندرویدی ساخته شده است.
- زبان Scala : یک زبان که روی jvm اجرا میشود و به همین علت برای جایگزینی با جاوا ساخته شده است.
- زبان Go : توسط شرکت گوگل ساخته شده در واقع شاخه ای از C حساب میشود و برای سادگی و کاربردهای بیشتر طراحی شده است.
- زبان Rust : زبان سیستمی که با الگو از c++ ساخته شده است اما بر ایمنی و همزمانی تاکید دارد.
- زبان PHP : برای توسعه ی وب استفاده میشود و شاخه ای از Perl حساب میشود.
- Ruby on Rails : یک فریمورک برای توسعه ی وب هست که برپایه ی Ruby ساخته شده است .
- زبان F# : یک زبان برنامه نویسی مبتنی بر توابع که در پلتفرم دات نت کاربرد دارد.
این زبان ها برای تغییر ، حل یک مشکل ، بهبود یک زبان برنامه نویسی قدیمی و ... ساخته شده اند و در کار خود نیز موفق بوده اند.
زبان های برنامه نویسی اسکریپتی
این زبان های برنامه نویسی برای این ساخته شده اند که بدون کامپایل شدن اجرا شوند ، این زبان ها اغلب در بحث برنامه نویسی وب محبوب هستند ولی در دیگر زمینه ها مثل بازیسازی ، مدیریت سیستم ، هک و امنیت و ... نیز کاربردی هستند. در لیست زیر محبوب ترین زبان های اسکریپتی را اورده ایم:
- زبان JavaScript - برای برنامه نویسی وب و تعاملی کردن وب ، بازیسازی و... کاربرد دارد.
- زبان Python - بصورت گسترده در زمینه های مختلف مثل برنامه نویسی وب ، تحلیل داده ، هوش مصنوعی ، هک و ... استفاده میشود.
- زبان Ruby - بخاطر سادگی آن معروف است و در درجه ی اول برای برنامه نویسی وب پرکاربرد است.
- زبان PHP - محبوب ترین زبان برنامه نویسی وب است.
- زبان Perl - این زبان اغلب برای پردازش متن ، برنامه نویسی وب و مدیریت سیستم استفاده میشود.
- زبان Bash - یک زبان اسکریپت نویسی برای شل هست که برای نوشتن وظایف سیستم استفاده میشود.
- PowerShell - بیشتر برای اتوماسیون سازی در ویندوز به کار میرود.
- Lua - برای برنامه نویسی embeded در نرم افزارها و بازی ها استفاده میشود.
- TCL - برای نمونه سازی سریع و همچنین برای embeded سیستم ها استفاده میشود.
- زبان R - این زبان برای آمار و تحلیل داده های آماری استفاده میشود.
زبان اسکریپت نویسی بخاطر سادگی و آسانی مورد استفاده قرار میگیرند ولی با وجود سادگی بسیار قدرتمند هستند و بیشتر کاربرد آنها نیز در بحث وب یا هک و امنیت هست.
زبان های مبتنی بر تابع
این نوع زبان ها روی استفاده از توابع و بیشتر در زمینه ی ریاضیات کاربرد دارند. در لیست زیر محبوب ترین زبان های این دسته بندی را مشاهده میکنید:
- زبان Haskell
- زبان Lisp
- زبان Erlang
- زبان F#
- زبان Scala
- زبان OCaml
- زبان Clojure
- زبان Elixir
- زبان Elm
- زبان Racket
زبان های برنامه نویسی مبتنی بر تابع معمولا زبان های سطح بالا حساب میشوند که در زمینه های گوناگون کاربردی هستند.
زبان های شی گرا ( Object Oriented Programming )
شی گرایی یک شیوه از کدنویسی هست که از طبیعت الهام گرفته شده و تمام اجزای پروژه را همچون اشیای طبیعی در نظر میگیرد ، این اقدام باعث کاهش کدها بخاطر قابلیت استفاده مجدد ، انعطاف ، خوانایی بالا و ماژولار بودن است. در لیست زیر محبوب ترین زبان های برنامه نویسی که شی گرا هستند را مشاهده میکنید:
- زبان Java - بطور گسترده ای برای ساختن نرم افزارهای مختلف و برنامه نویسی موبایل و ... کاربرد دارد.
- زبان C++ - زبان سی پلاس پلاس تکامل یافته ی زبان C است که شی گرایی را به آن اضافه کرده است.
- زبان C# - زبان سی هشتگ یک زبان شی گرا که توسط مایکروسافت برای محیط دات نت توسعه داده شده است.
- زبان Python - یک زبان محبوب و کراس پلتفرم که شی گرایی را پشتیبانی میکند.
- زبان Ruby - کاملا شی گرا که در برنامه نویسی وب کاربرد دارد.
- زبان Swift - زبان جدید اپل که برای محصولات خودش کاربرد دارد.
- زبان Objective-c - زبان نوستالوژی که اکنون زبان Swift جای آنرا گرفته است ولی از شی گرایی پشتیبانی میکند.
- زبان Kotlin - یک زبان مدرن که بیشتر در زمینه ی برنامه نویسی اندروید کاربرد دارد.
- زبان PHP - محبوب ترین زبان برنامه نویسی وب که شی گرایی را پشتیبانی میکند.
- زبان Smalltalk - یکی از اولین زبان های برنامه نویسی که شی گرایی را داشت.
شی گرایی باعث میشود سرعت توسعه افزایش پیدا کند ، کدها مرتب و خوانایی پروژه بالا برود هرچند برخی از برنامه نویسان از شی گرایی فراری هستند و به آن اعتقادی ندارند.
زبان های برنامه نویسی برنامهنویسی همزمان (Concurrent) و موازی (Parallel)
زبانهای برنامهنویسی هم زمان و موازی برای انجام هم زمان چندین تسک در سیستم ، طراحی شدهاند تا کارایی و بهرهوری را در محیطهای محاسباتی چندهستهای و توزیعشده بهبود بخشند. این زبانها با مدیریت ترد ها ، پروسس ها و سازوکارهای هم زمانی، اجرای تسک ها را بهصورت کارآمد ممکن میسازند. در لیست زیر محبوب ترین زبان های برنامه نویسی در این دسته بندی را مشاهده میکنید:
- زبان Erlang - برای برنامه هایی که به هم زمانی بالایی احتیاج دارند و در سیستم های توزیع شده استفاده میشوند.
- زبان Go (Golang) - دارای goroutine ها برای همزمانی های سبک استفاده میشود.
- زبان Rust - با مدیریت دقیق حافظه ، هم زمانی ایمن را تضمین میکند.
- زبان Clojure - یک زبان برنامه نویسی از نوع تابعی که برای پردازش هم زمانی ها ساخته شده است.
- زبان Scala - از پردازش موازی با استفاده از فریمورک Akka پشتیبانی میکند.
- زبان F# - زبان برنامه نویسی تابعی که دارای قابلیتهای قدرتمند در پردازش موازی است.
- زبان Java - امکان مولتی ترد را با کتابخانه های هم زمانی داخلی فراهم میکند.
- زبان C++ - از اجرای موازی با استفاده از کتابخانههایی مانند OpenMP و Threading Building Blocks پشتیبانی میکند.
- زبان CUDA - برای محاسبات موازی روی GPU های NVIDIA استفاده میشود.
- زبان MPI (Message Passing Interface) - برای محاسبات توزیع شده در کاربردهای علمی استفاده میشود.
این زبان های برنامه نویسی ، برای محاسبات با کارایی بالا، سیستمهای بلادرنگ و برنامههای توزیعشده با مقیاس بزرگ ضروری هستند.
زبان های نشانه گذاری یا Markup
این زبان ها معمولا زبان برنامه نویسی حساب نمیشوند و فقط جهت ارائه مطلب و قالب بندی استفاده میشوند. این زبانها با استفاده از تگها عناصر داخل اسناد را تعریف میکنند تا متن را قالب بندی ،یا ساختار نمایش دادن آنها را تنظیم کند. در لیست زیر محبوب ترین زبان های این دسته بندی را مشاهده میکنید :
- زبان HTML - برای قالب بندی ظاهر سایت ها.
- زبان XML - داده ها را ساختار بندی میکند درجاهای مختلفی استفاده میشود.
- زبان Markdown - زبان ساده برای قالب بندی فایل متنی.
- زبان LaTeX - برای تهیه و نگارش اسناد علمی و دانشگاهی استفاده میشود.
- زبان SGML - پایه و اساس بسیاری از زبانهای نشانهگذاری دیگر است.
- زبان YAML - فرمت داده ها برای خوانایی توسط انسان.
- زبان BBCode - در انجمنها و تابلوهای نوشتاری استفاده میشود.
- زبان Asciidoc - برای مستندسازی و انتشار استفاده میشود.
زبانهای نشانهگذاری برای تعریف ساختار محتوا در توسعه وب، قالببندی اسناد و تبادل داده ضروری هستند اما همچنان یک زبان برنامه نویسی کامل به همراه محاسبات منطقی محسوب نمیشوند.
زبان های برنامه نویسی سطح پایین یا Low-Level
زبانهای برنامهنویسی سطح پایین کنترل مستقیم بر سختافزار را فراهم میکنند ، این زبان ها بسیار کاربردی هستند ولی در عوض کمی سخت و پیچیده هستند، این زبانها به کد ماشین نزدیک ترند و برای برنامهنویسی سیستم، سیستمهای توکار (Embedded) و برنامههای حساس به عملکرد استفاده میشوند. در لیست زیر محبوب ترین زبان های این دسته بندی را مشاهده میکنید:
- زبان Assembly - برنامه نویسی مستقیم روی پردازنده و برای بهینهسازی عملکرد استفاده میشود.
- زبان C - اگر چه کمی بالاتر از زبان هایی مثل Assembly هست ولی دسترسی کامل به سطح پایین و سخت افزار دارد.
- زبان C++ - این زبان هم سطح بالا حساب میشود و هم دسترسی به سطح پایین دارد.
- زبان Rust - در حالی که کنترل سطح پایین را فراهم میکند، ایمنی حافظه را نیز تضمین میکند.
- زبان FORTH - زبانی مبتنی بر پشته که در سیستمهای توکار (Embedded) استفاده میشود.
- زبان PL/M - زبان نوستالوژی که برای برنامهنویسی میکروپردازندهها استفاده میشده است.
زبانهای سطح پایین برای توسعه سیستمعاملها، نرمافزارهای سیستمی (Firmware) و برنامههای بلادرنگ که در آنها کارایی و بهرهوری اهمیت حیاتی دارد، ضروری هستند.
زبانهای برنامهنویسی اعلامی (Declarative)
زبانهای برنامهنویسی اعلامی بر توصیف آنچه برنامه باید انجام دهد تمرکز دارند و نه بر چگونگی انجام آن. این زبانها معمولاً در پردازش داده، برنامهنویسی منطقی و مدیریت پیکربندی استفاده میشوند. در زیر محبوب ترین زبان های این دسته بندی را مشاهده میکنید:
- زبان SQL - برای کوئری نویسی دیتابیس کاربرد دارد.
- زبان Prolog - برنامه نویسی منطقی و برای هوش مصنوعی و سیستم های rule-based کاربرد دارد.
- زبان Haskell - کاملاً تابعی ، با تأکید بر غیرقابلتغییر بودن و انتزاع سطح بالا برای داده ها.
- زبان Lisp - از پارادیم های تابعی و اعلامی پشتیبانی میکند.
- زبان XSLT - برای تبدیل اسناد XML استفاده میشود.
- زبان Erlang - برای برنامههای همزمان و مقاوم در برابر خطا استفاده میشود.
- زبان Datalog - در پایگاه داده و برنامه های منطقی مورد استفاده قرار میگیرد.
زبانهای اعلامی با تمرکز بر نتیجه نهایی برنامه، کدنویسی را سادهتر میکنند و برای دستکاری پیچیده دادهها، هوش مصنوعی و برنامهنویسی تابعی مفید هستند.
زبان های دامنه ی خاص یا domain-specific language (DSL)
زبانهای خاص دامنه (DSLs)، زبانهای برنامهنویسی تخصصی هستند که برای وظایف یا صنایع خاص طراحی شدهاند. بر خلاف زبانهای عمومی (General-Purpose)، DSLها بر حل مؤثر مشکلات مرتبط با دامنه مشخص تمرکز دارند. به طور خلاصه این زبان ها برای یه کار خاص ساخته شدن نه همه چیز . در زیر محبوب ترین زبان های این دسته بندی را مشاهده میکنید :
- SQL - (برای کوئری نویسی پایگاه داده و مدیریت آن)
- HTML - (برای قالب بندی صفحات وب)
- CSS - (برای استایل دهی به صفحات وب)
- MATLAB - (برای داده های ریاضیاتی و محاسبات مهندسی)
- R - ( برای داده های آماری و دیتاساینس)
- VHDL - ( برای توصیفات سخت افزاری و طراحی مدارهای دیجیتالی )
- Verilog - (برای مدارهای دیجیتالی)
- Regex (Regular Expressions) - (برای مطابقت الگوها در پردازش متن)
- Gherkin - (در توسعه مبتنی بر رفتار (BDD) برای تست کیسها)
- LaTeX - (برای قالببندی اسناد علمی و فنی)
زبان های خاص یا DSL ها بهرهوری و دقت را در زمینههای مربوطه افزایش میدهند و آنها را برای برنامههای تخصصی ضروری میسازند.
زبانهای برنامهنویسی چند استایلی ( Multi-Paradigm )
زبانهای برنامهنویسی چند استایلی از چندین سبک برنامهنویسی پشتیبانی میکنند، مانند رویه ای ، شیگرایی ، تابعی و همزمان. این انعطافپذیری به توسعهدهندگان اجازه میدهد بهترین پارادیم یا روش را برای برنامه نویسی انتخاب کنند. در لیست زیر محبوب ترین زبان های برنامه نویسی این دسته بندی را مشاهده میکنید:
- Python (پشتیبانی از برنامه نویسی رویه ای - برنامه نویسی شی گرا - برنامه نویسی مبتنی بر توابع)
- C++ (پشتیبانی از برنامه نویسی شی گرا - رویه ای و برنامه نویسی همگانی )
- JavaScript (پشتیبانی از تابع گرایی , شی گرایی , برنامه نویسی رویداد محور )
- Scala (برنامه نویسی تابع محور و برنامه نویسی شی گرا)
- Rust (ترکیبی از برنامه نویسی تابع گرا و سطح پایین برای مدیریت حافظه)
- F# (در اصل یک زبان تابع محور است ولی از برنامه نویسی شی گرا و برنامه نویسی دستوری پشتیبانی میکند)
- Swift (پشتیبانی از شی گرایی ، تابع محور و برنامه نویسی پروتکل محور)
- Kotlin ( مخلوطی از برنامه نویسی شی گرا و تابع محور )
- Racket (یک زبان منعطف بر پایه ی lisp که اکثر استایل ها را پشتیبانی میکند )
این نوع زبان ها از چندین استایل مختلف پشتیبانی میکنند و به برنامه نویس اجازه میدهند سبک مورد نیازش را داشته باشد.
زبان های اسمبلی ( Assembly )
زبانهای اسمبلی، زبانهای برنامهنویسی سطح پایین هستند که امکان نوشتن کد ماشین برای فهم توسط انواع پردازنده ها توسط انسان را فراهم میکند. این زبان ها کنترل مستقیم بر سختافزار ارائه میدهند و در برنامهنویسی سیستم، سیستمهای توکار و برنامههای حساس به عملکرد استفاده میشوند. زبان های برنامه نویسی محبوب در این دسته بندی طبق لیست زیر میباشد :
- x86 Assembly ( برای پردازندههای Intel و AMD، به طور گسترده در سیستمعاملها و نرمافزارهای سطح پایین استفاده میشود )
- ARM Assembly ( در دستگاههای موبایل، سیستمهای توکار و کاربردهای اینترنت اشیا (IoT) استفاده میشود )
- MIPS Assembly ( به طور رایج در سیستمهای توکار ( embedded systems ) و دورههای دانشگاهی استفاده میشود )
- RISC-V Assembly (معماری مجموعه دستورالعملهای متنباز برای تحقیق و محاسبات توکار ( embedded systems ) )
- Z80 Assembly ( نوستالوژی هست و در میکروکامپیوترها و کنسولهای بازی اولیه استفاده میشده است )
- 6502 Assembly (در کامپیوترهای اولیه، کنسولهای بازی مانند NES و سیستمهای توکار ( embedded systems ) استفاده میشود )
زبانهای اسمبلی برای بهینهسازی پرفورمنس ، نوشتن فریمور ها (Firmware) و تعامل مستقیم با سختافزار استفاده میشوند. به قول معروف هر وقت خاستید از جنس فلز پردازنده کدنویسی کنید از زبان های اسمبلی بهره بگیرید.
زبان های برنامه نویسی تصویری ( Visual Programming Languages (VPLs) )
زبانهای برنامهنویسی گرافیکی (VPLs) از عناصر گرافیکی، مانند بلوکها و فلوچارت ها به جای کُد (code) استفاده میکنند. این زبان ها برای سادهتر کردن برنامهنویسی، به ویژه برای مبتدیان و کسانی که درحال آموزش دیدن هستند طراحی شده است. مخاطب این زبان های برنامه نویسی اکثرا کودکان و نوجوانان هستند. در لیست زیر محبوب ترین زبان های برنامه نویسی این دسته بندی ذکر شده است:
- Scratch (زبان بلوکمحور برای آموزش برنامهنویسی به کودکان )
- Blockly ( ابزارک برنامهنویسی گرافیکی گوگل برای برنامه نویسی وب )
- Node-RED (برنامهنویسی جریانی برای اینترنت اشیا و اتوماسیون )
- LabVIEW (برنامهنویسی گرافیکی برای مهندسی و جمعآوری دادهها )
- Max/MSP (برای چندرسانهای، موسیقی و برنامههای تعاملی استفاده میشود )
- MIT App Inventor (ساخت برنامههای اندروید به صورت بصری )
- Snap! (نسخهای پیشرفته از Scratch برای آموزش علوم کامپیوتر )
- ToonTalk (زبان گرافیکی برای آموزش مفاهیم برنامهنویسی )
زبان های برنامه نویسی تصویری ، کدنویسی را ساده میکنند و برنامهنویسی را برای غیربرنامهنویسان و حوزههای تخصصی مانند رباتیک، اتوماسیون و طراحی بازی در دسترس میسازند.
زبان های کوئری نویسی
زبانهای کوئری ( Query )، زبانهای تخصصی هستند که برای فراخوانی و ویرایش دادهها از پایگاههای داده، سیستمهای اطلاعاتی و منابع داده ساختیافته استفاده میشوند. این زبانها بر استخراج، فیلتر و تبدیل دادهها تمرکز دارند. در لیست زیر زبان های محبوب این دسته بندی را مشاهده میکنید:
- SQL ( زبان ساختار یافته کوئری نویسی که برای پایگاه داده های مختلف استفاده میشود )
- GraphQL (زبان کوئری نویسی API برای بازیابی دادههای خاص بهصورت کارآمد)
- XQuery (برای کوئری اسناد XML استفاده میشود )
- SPARQL (زبان کوئری برای دادههای RDF و وب معنایی )
- Datalog (زبان کوئری مبتنی بر منطق برای پایگاههای داده استنتاجی )
- MDX (Multidimensional Expressions) (در پایگاههای داده OLAP برای کوئریهای تحلیلی استفاده میشود )
- CQL (Cassandra Query Language) (در Apache Cassandra برای پایگاههای داده NoSQL استفاده میشو)
زبانهای کوئری برای مدیریت، تحلیل و فراخوانی دادهها بهصورت کارآمد در سیستمهای مختلف پایگاه داده استفاده میشوند.
زبان های توصیفی سخت افزار ها (HDL ها)
زبانهای توصیف سختافزار (HDL ها) برای توصیف رفتار و ساختار مدارهای الکترونیکی استفاده میشوند مخصوصا برای طراحی FPGA و ASIC. این زبانها به طراحان اجازه میدهند سیستمهای سختافزاری را شبیهسازی، وریفای و پیادهسازی کنند. در لیست زیر محبوب ترین زبان های این دسته بندی را مشاهده میکنید :
- VHDL (VHSIC Hardware Description Language) (به طور گسترده برای طراحی و شبیهسازی مدارهای دیجیتال استفاده میشود)
- Verilog (برای مدلسازی سیستمهای دیجیتال در سطوح مختلف انتزاع استفاده میشود)
- SystemVerilog (یک افزونهای برای Verilog با ویژگیهای پیشرفته برای وریفای و مدلسازی)
- Chisel (زبان ساخت سختافزار برای طراحی سیستمهای سختافزاری پیچیده)
- Bluespec (برای طراحی و سنتز سختافزار سطح بالا استفاده میشود )
زبانهای HDL برای توسعه و شبیهسازی سیستمهای سختافزاری استفاده میشوند و عملکرد را قبل از پیادهسازی فیزیکی تضمین میکنند.
زبان های رمزنگاری ( Cryptographic Languages )
زبانهای رمزنگاری برای پیادهسازی الگوریتمهای رمزنگاری، پروتکلهای امنیتی و سیستمهای رمزنگاری تخصص دارند. آنها بر تضمین محرمانگی، یکپارچگی و اصالت دادهها در ارتباطات و تراکنشهای امن تمرکز دارند. در لیست زیر مهم ترین زبان های برنامه نویسی برای این دسته بندی را آورده ایم :
- OpenSSL (به طور گسترده برای پیادهسازی الگوریتمهای رمزنگاری و پروتکلهای SSL/TLS استفاده میشود )
- Bouncy Castle (مجموعهای از APIهای رمزنگاری در Java و C# برای ارتباطات امن )
- GPG (GNU Privacy Guard) (نرمافزار متنباز برای رمزنگاری و امضای دادهها )
- C++ (همراه با کتابخانههای رمزنگاری برای رمزنگاری با عملکرد بالا استفاده میشود )
- Python (با کتابخانههایی مانند PyCrypto و Cryptography برای پیادهسازی رمزنگاری)
- Cryptol (زبان خاص برای توصیف الگوریتمهای رمزنگاری و تأیید رسمی)
- SageMath (نرمافزار ریاضی با پشتیبانی از رمزنگاری و نظریه اعداد)
زبانهای رمزنگاری نقش حیاتی در ایمن سازی دیتاهای حساس، تضمین حریم خصوصی و حفاظت از سیستمهای ارتباطی را دارند.
زبان های برنامه نویسی رویداد محور ( Event-driven )
زبانهای برنامهنویسی رویدادمحور برای مدیریت رویدادها مانند تعاملات کاربر، ورودیهای سنسورها یا پیامها از سایر سیستمها طراحی شدهاند. این زبانها برای برنامههایی که نیاز به پاسخدهی به رویدادهای مختلف دارند، مانند برنامههای رابط گرافیکی، برنامههای وب و سیستمهای بلادرنگ استفاده میشوند. در لیست زیر زبان های برنامه نویسی مناسب این حوزه را میبینید :
- JavaScript (به طور گسترده برای توسعه وب با ویژگیهای رویدادمحور در مرورگرها و Node.js استفاده میشود)
- ActionScript (برای برنامههای مبتنی بر Flash، مدیریت رویدادهای ورودی کاربر استفاده میشود که قبلا در وب استفاده میشود اما اکنون منسوخ شده است)
- Swift (از برنامهنویسی رویدادمحور پشتیبانی میکند، بهویژه در توسعه اپ های iOS با تعاملات رابط کاربری )
- C# (همراه با چارچوب .NET برای مدیریت رویدادها در برنامههای ویندوز استفاده میشود)
- Python (با کتابخانههایی مانند Tkinter برای مدیریت رویدادهای مبتنی بر رابط گرافیکی (GUI))
- Lua (در موتورهای توسعه بازی مانند Love2D برای اسکریپتنویسی رویدادمحور استفاده میشود)
- Java (با چارچوبهای رابط گرافیکی مانند Swing و JavaFX که از برنامهنویسی رویدادمحور استفاده میکنند)
- Ruby (با چارچوبهایی مانند Ruby on Rails که از ویژگیهای رویدادمحور برای برنامههای وب پشتیبانی میکنند)
زبانهای رویدادمحور برای ساخت برنامهها و سیستمهای پاسخگو و تعاملی که نیاز به واکنش آنی به رویدادهای کاربر یا سیستم دارند (realtime).
دنیا چرا به این همه زبان برنامهنویسی نیاز دارد؟
وجود زبان های برنامه نویسی متعدد به این دلیل است که هر زبان برنامه نویسی کاربرد خاص خود را دارد و یک زبان واحد پاسخگوی همه نیازها نبوده است. هر زبان برنامه نویسی قدرت خاص خود را دارد که ممکن است بقیه نداشته باشند و همینطور نقطه ی ضعف هایی دارد که ممکن است برای یک زبان دیگری آن قسمت نقطه ی قوت حساب شود.
برای مثال سی پلاس پلاس توانایی دسترسی به سطح پایین را دارد و همینطور زبانی سطح بالا هم حساب میشود در پروژه هایی که کوچکترین نیاز به دسترسی سخت افزار باشد این زبان کاربردی هست ولی زبان پایتون با اینکه محبوب تر هست ولی دسترسی به سطح پایین سخت افزار را ندارد و در این مورد سی پلاس پلاس جلوتر از پایتون هست در عوض برای اسکریپت نویسی ، هوش مصنوعی و ... پایتون کتابخانه های غنی دارد و سادگی کدنویسی با پایتون باعث محبوبیت این زبان نسبت به دیگر زبان ها شده است.
زبان های برنامه نویسی جدید برای حل یک مشکل یا چالش ظهور پیدا کرده اند که زبان های قبلی نتوانسته اند آنها را حل کنند یا راه حل آنها سخت و پیچیده بوده است. برای متخصص شدن در برنامه نویسی نیازی نیست که یک برنامه نویس همه ی زبان های برنامه نویسی را یاد بگیرد و تنها یادگیری یک یا چند عدد زبان برنامه نویسی میتواند او را تبدیل به یک برنامه نویس حرفه ای بکند.
به طور کلی سه دلیل اصلی برای بالا بودن تعداد زبان های برنامه نویسی وجود دارد :
- نیاز به زبان های برنامه نویسی مختلف برای انجام کارهای گوناگون ( هر زبان برای یک حوزه مناسب است و ممکن است برای دیگر حوزه ها کاربردی نباشد )
- تکامل فناوری و ظهور تکنولوژی های جدید ( برخی زبان ها منسوخ شده اند یا کارآیی خود را از دست داده اند و باید زبان جدیدی خلق میشد تا جایگزین شود )
- تنوع در سبک های برنامه نویسی و ترجیحات فردی ( بعضی از برنامه نویسان ترجیح میدهند زبان برنامه نویسی خلاصه و ساده باشد برخی دیگر دوست دارند کامل و جامع باشد و ...)
غول زبان های برنامه نویسی نوین
چند زبان برنامه نویسی محبوبیت بسیار بالایی در صنعت نرم افزاری و استفاده توسط برنامه نویسان دارند. در صدر این فهرست زبان Python قرار دارد زیرا ساده تر ، خلاصه تر و کراس پلتفرم است. این زبان در توسعه وب، تحلیل داده، یادگیری ماشین و محاسبات علمی بسیار پرکاربرد است. این زبان به دلیل کتابخانههای فراوان و جامعه فعال کاربران زبانی مناسب برای همه ی برنامه نویسان می باشد.
یکی دیگر از زبانهای قدرتمند JavaScript است، این زبان اسکلت اصلی تمام وب سایت های دنیاست. این زبان امکان ایجاد عناصر گرافیکی در وبسایتها را فراهم میکند و از طریق فریمورک هایی مانند React، Angular و Vue.js، قابلیت ساخت وب سایت های مدرن و برنامه های قابل اجرا در مرورگر را فراهم میکند. بجز بحث مرورگر و فرانت اند وب سایت ها، تأثیر JavaScript به برنامهنویسی سمت سرور با Node.js نیز گسترش یافته است که آن را به یک بازیگر قوی در زمینه ی فرانت اند و بک اند ( فول استک ) تبدیل کرده است.
زبان Java برای نرم افزارهای تجاری کاربردی است و همچنین برای برنامه نویسی موبایل ( اندروید ) استفاده میشود، اما زبان دیگری به اسم کاتلین ( kotlin ) که دقیقا روی ماشین مجازی جاوا یعنی jvm اجرا میشود توانست جاوا را در برنامه نویسی اندروید کنار بزند و جایگزین جاوا شود. زبان برنامه نویسی دیگری که در حال رشد است زبان Rust می باشد ، این زبان روی safe بودن و پرفورمنس بالا تمرکز کرده است. زبان Rust در برنامه نویسی های سیستمی در حال محبوب شدن هست مثل موتورهای بازی سازی ، برنامه نویسی سیستم عاملی و سیستم های تعبیه شده (embedded systems).
زبان های برنامه نویسی نوظهور
دنیای برنامه نویسی مدام در حال تغییر است و زبان های برنامه نویسی جدیدی ظهور میکنند تا بتوانند چالش ها و مشکلات جدید را حل کنند در این میان زبان های Rust، Kotlin، TypeScript Swift و Dart جزو زبان های نوظهور محسوب میشوند. که در ادامه به توضیح هر کدام میپردازیم.
زبان برنامه نویسی Rust
زبان Rust بهسرعت در میان برنامهنویسان به دلیل ویژگیهای ایمنی حافظه و همزمانی سیستم محبوبیت پیدا کرده است ، این زبان safe هست چون از اشتباهات رایج برنامهنویسی مانند ارجاع به اشارهگر null و data races جلوگیری میکند. این ویژگیها Rust را به گزینهای استثنایی برای توسعه برنامههایی که نیازمند اطمینان بالا، امنیت و عملکرد بالا هستند، تبدیل میکند.در حوزههایی مانند وب اسمبلی، سیستمهای تعبیه شده (embedded systems) و بلاکچین در حال کسب محبوبیت و رشد بالایی است.
زبان برنامه نویسی TypeScript
زبان TypeScript بهبود یافته ی زبان JavaScript است که قابلیت های جدیدی به آن اضافه کرده است و طبق تحقیقات این زبان برای پروژه هایی با مقیاس بزرگ مناسب است زیرا قابلیت نگهداری بالا ، کاهش خطاهای runtime و افزایش بهره وری در توسعه را داشته است. از طرفی دیگر توانایی استفاده از TypeScript در فریمورک های وب مثل Angular و React باعث رشد بیشتر تایپ اسکریپت شده است.
زبان برنامه نویسی Kotlin
کاتلین به سرعت محبوب شد چون زبان جاوا در برنامه نویسی اندروید اشکالاتی داشت از جمله nullpointer و همچنین کدهای کاتلین بسیار خلاصه تر و ترتمیز تر از جاوا بود ، همین باعث شد شرکت گوگل در سال ۲۰۱۷ نیز کاتلین را بعنوان زبان رسمی برای توسعه ی اپ های اندرویدی انتخاب کند. از این رو اکثریت توسعه دهندگان اندروید از کاتلین برای توسعه ی اپلیکیشن های خود استفاده میکنند.
زبان برنامه نویسی Swift
این زبان توسط اپل ساخته شد تا برنامه نویسان بتوانند از آن برای توسعه ی اپلیکیشن ها درون اکوسیستم محصولات اپل استفاده کنند از جمله macos و ios و ... و در این راه موفق هم بود. قبلتر برنامه نویسان از زبانی قدیمی تر به اسم Objective - c برای توسعه ی اپ های آیفون و مک استفاده میکردند که سوئیفت جایگزین آن شد. این زبان نوظهور به شدت محبوب شد چون بهتر بود و توسط اپل پشتیبانی میشود.
زبان برنامه نویسی Dart
دارت زبان برنامه نویسی است که توسط شرکت گوگل برای ساختن اپلیکیشن های کراس پلتفرم توسعه داده شده است که تحت Flutter از این زبان استفاده میشود . اپلیکیشن های تولید شده با این زبان روی اندروید و ایفون نصب و استفاده میشود چراکه این زبان یک زبان کراس پلتفرم است و میتواند خروجی برای هر سیستم عاملی تحویل دهد. این زبان یک زبان نوظهور است که به همراهی Flutter به محبوبیت بالایی دست پیدا کرده است.
مادر همه ی زبان های برنامه نویسی کدام زبان است؟
برای اینکه متوجه شویم مادر همه ی زبان های برنامه نویسی کدام زبان است ابتدا باید با زبان های برنامه نویسی آشنا شویم که در قسمت بالای همین مقاله با تمام زبان ها محبوب آشنا شدیم ، اما در این میان برخی زبان های برنامه نویسی از زبان دیگری متولد شده اند ، یا از آن زبان الگوبرداری کرده اند و به نوعی میراث دار آن زبان محسوب میشوند.
هر زبان برنامه نویسی سبک و قواعد خود را دارد ولی بیشتر زبان های دنیا مشابه زبان سی ( C ) هستند و از این زبان الگوبرداری کرده اند به همین علت زبان C بعنوان مادر بقیه زبان های برنامه نویسی محسوب میشود ، زبان های برنامه نویسی که مشابه زبان C باشند به C like یا مشابه سی معروف هستند که در لیست زیر این زبان های برنامه نویسی را مشاهده میکنید :
- C++
- C#
- Java
- Objective-C
- JavaScript
- TypeScript
- Go
- Rust
- D
- Zig
- Carbon
- Vala
- Hack
- Fusion
- Handel-C
- HolyC
- Icon
- Swift
- PHP
- Kotlin
- Dart
- Scala
- Groovy
- Julia
- Clojure
- ActionScript
- Haxe
حدود ۲۷ زبان برنامه نویسی مشابه زبان سی هستند و به همین علت هر شخصی که به زبان C مسلط باشد قطعا یادگیری این ۲۷ زبان نیز برای او راحت تر خواهد بود و به همین علت به زبان سی ( C ) لقب مادر همه ی زبان های برنامه نویسی داده شده است.
ویدیو این پست :
مقالات دیگر مرتبط با این مقاله ی آموزشی :
چطور برنامه نویسی را شروع کنیم ؟ ( راهنمای کامل ) درس هایی از زندگی لینوس توروالدز برای برنامه نویس موفق شدن چطور برنامه نویس موفقی شویم ؟ سریال نقشه راه برنامه نویسی-قسمت ۵ - انتخاب اولین زبان سریال نقشه راه برنامه نویسی-قسمت ۴ - اهمیت تحصیلاتدوره های آموزشی مرتبط با این مقاله :