زبان ++C چیست؟
سیپلاسپلاس یک زبان برنامه نویسی همه منظوره، همگردان، سطح میانی، شیءگرا و چندرگه است که از برنامهنویسی رویهای، تجرید دادهها و برنامهنویسی شیءگرا پشتیبانی میکند. این زبان دارای قابلیتهای انواع داده ایستا، نوشتار آزاد، چند مدلی، معمولاً زبان ترجمه شده با پشتیبانی از زبان برنامه نویسی ساخت یافته، برنامه نویسی شیءگرا، برنامه نویسی جنریک است. از آنجا که در ++C اشیاء را میتوان ابتدا به ساکن از کلاسهایی ایجاد کرد که به هیچگونه سلسله مراتب ردهها و وراثت مقید نیستند، لذا ++C از برنامه نویسی شیء بنیاد (object-based programming) نیز پشتیبانی میکند.++C به همراه جد خود C از پرطرفدارترین زبانهای برنامهنویسی هستند. ++C یک زبان سطح میانی در نظر گرفته میشود؛ این زبان دارای قابلیتهای زبان برنامه نویسی سطح بالا و زبان برنامه نویسی سطح پائین بهصورت همزمان است.
فلسفه تولید زبان ++C
توسط بیارنه استراس تروپ ریاضیدان دانمارکی در سال 1979 در آزمایشگاههای بل (Bell Labs)، برای بهبود زبان سی و بر مبنای آن ساخته شد، در طول مدت تحقیق این زبان به نام C جدید و بعدها C با کلاس خوانده شد. در سه قسمت از زبان تخیلی Newspeak کلمات C برای اشاره به لغات فنی و حرفهای بکار میرود. «دو علامت +» برای ایجاد صفات عالی از صفات Newspeak به کار میرفت بنابراین ++C به معنای زبانی با بیشترین شباهت به C است. وقتی که به صورت خصوصی از ریک ماسکیتی در مورد این اسم سوال شد او در جواب گفت که این اسم بصورت خودمانی در بین آنها به کار میرفتهاست و تصور نمیکردند که این نام بصورت نام رسمی این زبان درآید.
توسعه با اضافه نمودن کلاسها و ویژگیهای دیگری مانند توابع مجازی، سربارگزاری عملگرها، وراثت چندگانه، قالب توابع، و پردازش استثناء انجام شد. این زبان برنامهنویسی در سال 1998 تحت نام ISO/IEC 14882:1998 استاندارد شد. نسخه فعلی استاندارد این زبان ISO/IEC 14882:2014 است.
مزایای زبان برنامه نویسی ++C
از مهمترین مزایای زبان برنامه نویسی ++C میتوان به موارد زیر اشاره نمود:
با زبان برنامه نویسی ++C چه کارهایی میتوانید انجام دهید؟
با این زبان میتوانید برنامه نویسی سیستم عامل، هسته و لایههای مختلف سیستم عامل (ios ,linux , macos windows,…) انجام دهید. با ++C قادر به تولید نرم افزار، بازی سازی تحت وب و برای انواع کنسولها، برنامه نویسی برای موبایل و تبلت خواهید بود. این زبان برنامه نویسی در صنایع پزشکی، فضایی، خودروهای هوشمند و اینترنت اشیاء نیز کاربرد دارد. با زبان ++C قادر هستید که رباتها را برنامه نویسی کنید.
این زبان را بایستی از دو جنبه داخل ایران و خارج از ایران مورد بررسی قرار داد زیرا این دو مقوله کاملا متفاوت هستند. در داخل ایران از این زبان تنها به صورت آکادمی و آموزشی استفاده میکنند به صورتی که این زبان را تنها به دانشجویان و دانش آموزان آموزش میدهند ولی استفاده کاربردی از آن ندارند اما این مسئله در خارج از ایران کاملا متفاوت است. در خارج از ایران علاوه بر این که این زبان را آموزش میبینند از این زبان به صورت عملی نیز استفاده میکنند یعنی بیشتر برنامهها و اپلیکیشنهای آنها با این زبان است و در زندگی روزمره خود با آن سروکار دارند. از جمله موارد استفاده از این زبان: سخت افزارهای رباتیک در انواع صنایع، صنعت فضایی، سیستمهای معماری و بانکی، صنعت خودروسازی، صنعت بازیسازی، سیستمهای کامپیوتری، سیستمهای خانگی و یا سیستمهای رباتیک و هوش مصنوعی، تجهیزات مجهز به حسگرها و هوش مصنوعی در علم پزشکی، نرم افزارهای مهندسی، برنامههای کاربردی، انیمیشن، مرورگر وب، دسترسی به بانک اطلاعاتی، دسترسی به چند رسانهای، کامپایلرها، اسکن و همچنین سیستم عاملها و بسیاری از موارد دیگری که میتوان نام برد توسط زبان ++C برنامه نویسی و پیادهسازی شدهاند.
فرصتهای شغلی زبان ++C
در عین ناباوری زبان سی پلاس پلاس پر درآمدترین زبان برنامه نویسی شده است. دستمزد برنامهنویسان در بخشهای مختلف دنیا با هم تفاوت دارد. میانگین درآمد برنامه نویس در آمریکا در سال 2020، بیش از 106 هزار دلار بوده است. حتی درآمد زبانهای برنامهنویسی مختلف در کشورهای مختلف با همدیگر متفاوت است. به عنوان مثال، پردرآمدترین زبان برنامه نویسی در ایران، پایتون است و پس از آن، جاوا و C++/C در جایگاههای بعدی قرار دارند.
عوامل دیگری نیز روی حقوق برنامه نویس مؤثر هستند. سطح تجربه یکی از مهمترین این عوامل است. نوع شغل و نحوهی همکاری برنامهنویس روی درآمدش تأثیرگذار است. معمولا برنامهنویسانی که به صورت فریلنسینگ کار میکنند، درآمد پایینتری نسبت به برنامهنویسانی هستند که در استخدام یک سازمان میباشند. البته این مورد همیشه صادق نیست و گاها فریلنسرها، درآمدهای بسیار بالایی دارند.
این زبان برنامه نویسی به برنامهنویسان و توسعهدهندگان نرمافزار کمک میکند تا مسائل پیچیده را به مسائل کوچکتر و سادهتر بشکنند. این زبان برنامهنویسی، یک کتابخانهی غنی دارد. میانگین جهانی دستمزد برنامهنویسان ++C در سال 2020، 55 هزار و 363 دلار آمریکا بوده است.
مواردی که در آن از زبان ++C و برنامه نویسان حرفهای این زبان بهره گرفته شده است عبارتند از:
همچنین برنامه های مطرح نوشته شده با زبان ++C عبارتند از:
آمارهای زبان ++C
برخی از محصولات اساسی و معروف که بخش عمده و یا به صورت کامل توسط ++C نوشته شدند:
سیستمعاملها:
مرورگرها:
نرمافزارهای کاربردی و مهندسی:
بازیها و صنایع مرتبط:
پیامرسانها:
موتورهای دیتابیس مانند MySQL و غیره:
کتابخانهها و ابزارهای پیشرفته توسعه.
ابزارهای مرتبط با فناوریهای روز مانند Blockchain و غیره.
زبانهای برنامهنویسی مانند Swift و غیره.
راهاندازها و ابزارهای قدرتمند AMD، Intel و NVIDIA Geforce و پلتفرمهایی مانند Cuda.
همچنین در جدول ذیل استفاده سایتهای برتر دنیا از زبانهای برنامه نویسی را نمایش میدهد، که از بین 13 سایت 7 سایت از زبان ++C استفاده میکنند.
در جدول زیر میزان رتبه بندی زبانهای مختلف برنامه نویسی از سال تولید آنها تا کنون قابل رویت است که در سال 2021 زبان ++C رتبه چهارم را از آن خود کرده است.
ورژنهای زبان ++C
استراستروپ کار بر روی زبان C با کلاس را در سال 1979 آغاز کرد. ایده ساخت این زبان جدید در زمان کار بر روی تز دکترای خود به ذهن استراستروپ خطور نمود. او متوجه شد که سیمولا دارای ویژگیهایی مناسب برای ساخت برنامههای بسیار بزرگ است اما برای استفاده عملی بسیار کند است اما BCPL با وجود سرعت بسیار زیاد برای ساخت برنامههای بزرگ بسیار سطح پایین است. زمانی که استراستروپ کار خود را در آزمایشگاههای بل (Bell Labs) آغاز نمود با مشکل تحلیل هسته unix با توجه به محاسبات توزیع شده روبرو شده بود. با یادآوری تجربیات خود در دوران دکترا، او زبان C را با استفاده از ویژگیهای سیمولا گسترش داد. C به این دلیل انتخاب شد که یک زبان عمومی، سریع، قابل حمل، و بهصورت گسترده در حال استفاده بود. علاوه بر C و سیمولا زبانهای دیگری مانند: 68ALGOL، ADA، CLU، ML نیز بر ساختار این زبان جدید اثر گذاشت.
در ابتدا ویژگیهای کلاس، کلاسهای مشتق شده، کنترل نوع قوی، توابع درونخطی، و آرگومانهای پیشفرض از طریق Cfront به C اضافه شد. اولین نسخه تجاری در سال 1985 ارائه شد. در سال 1983 نام زبان از C با کلاس به ++C تغییر یافت.
ویژگیهای دیگر شامل توابع مجازی، سربارگزاری عملگر و نام تابع، ارجاعات، ثوابت، کنترل حافظه توسط کاربر بهصورت آزاد، کنترل نوع بهتر، و توضیحات یکخطی به صورت BCPL با استفاده از «//» نیز به آن اضافه شد. در سال 1985 اولین نسخه زبان برنامهنویسی ++C انتشار یافت و مرجع مهمی برای این زبان فراهم شد در حالی که هیچ استاندارد رسمیای وجود نداشت. در سال 1989 ویرایش 2٫0 از زبان ++C ارائه شد. ویژگیهای جدیدی مانند ارثبری چندگانه، کلاسهای انتزاعی، اعضای ایستای توایع، اعضای ثابت تابع، و اعضای حفاظت شده به آن اضافه شد.
در سال 1990 راهنمای مرجع ++C منتشر شد. این کار بنیان استانداردهای بعدی شد. آخرین ویژگیهای اضافه شده شامل موارد زیر بودند: قالب توابع، استثناها، فضاهای نام، تبدیلات جدید، و یک نوع داده منطقی.
در حین تکامل ++C کتابخانه استاندارد نیز بهوجود آمد. اولین نسخه کتاب استاندارد شامل کتابخانه جریانات I/O بود که جایگزین printf و scanf شد. در ادامه مهمترین ویژگی اضافه شده Standard Template Library بودهاست.
C++98: زمانی که ++C نخستین بار در سال 1985 منتشر شد، هیچ استاندارد رسمی در مورد آن وجود نداشت. در واقع نخستین نسخه استانداردشده این زبان در سال 1998 انتشار یافت که به نام C++98 شناخته میشود.
C++03: در سال 2003 نسخه جدیدی از زبان ++C انتشار یافت. C++03 در واقع یک استاندارد جدید محسوب نمیشد؛ اما برخی باگهای نسخه C++98 در آن اصلاح شده بود تا یکپارچگی و پرتابل بودن بیشتری تضمین شود
C++11 یا C++0X: استاندارد عمده بعدی زبان ++C در سال 2011 انتشار یافت و به نام C++11 شناخته شد. از آنجا که کمیته ++Cمطمئن بود که این نسخه در سال 2009 انتشار خواهد یافت، نام آن را C++0X گذاشت. بعدا و با عدم انتشار این نسخه،Stroustrup این شوخی را مطرح کرد که C++0X به صورت هگزادسیمال C++0xB تبدیل شده است که معادلC++11 است.
C++14 یا C++1y: استاندارد C++14 در سال 2014 منتشر شده است و همانند C++03 شامل رفع باگها و برخی بهبودهای جزئی نسبت بهC++11 است.
C++17 یا C++1z: نسخه بعدی از این زبان به نام C++17 در سال 2017 منتشر شده است و آخرین نسخه انتشار یافته این زبان محسوب میشود. در این نسخه ویژگیهای جدیدی به این زبان اضافه شده است.
C++20: نسخه اخر این زبان برنامهنویسی در سال 2020 میلادی منتشر شد و امکانات جالب دیگری به آن اضافه گردید.