رفتن به مطلب
انجمن توسعه دهندگان موبایل

اگر زبان برنامه نویسی c نبود، چه بلایی سر دنیای نرم* افزار می آمد!


mohsen8

ارسال های توصیه شده

2.jpg

 

بسیاری از اپلیکیشن هایی که امروزه می بینیم، سال*های سال است که با زبان برنامه نویسی سی نوشته شده*اند که از آن جمله می*توان به سیستم عامل یونیکس اشاره کرد که سورس کد آن در سال 1972 با زبان سی نوشته شد. در یک کلام، زبان برنامه نویسی سی ابداع شد تا کرنل سیستم عامل یونیکس از زبان اسمبلی به یک زبان سطح بالاتر با تعداد خطوط کد کمتری بازنویسی شود. در این مقاله با سکان آکادمی همراه باشید تا ارزش*هایی که زبان قدیمی سی برای دنیای نرم*افزار به ارمغان آورده را مروری کنیم.

توسعه ی دیتابیس اوراکل در سال 1977 شروع شد و در سال 1983 سورس کد این دیتابیس از زبان اسمبلی به زبان سی تغییر پیدا کرد و از آن زمان به بعد به عنوان یکی از معروف ترین و پرطرفدارترین دیتابیس های دنیای نرم*افزار مبدل شد. در سال 1985، ویندوز نسخه ی 1.0 ریلیس شد. اگرچه سورس کد سیستم عامل ویندوز در دسترس عموم قرار ندارد، اما گفته می*شود که بخش قابل توجهی از سورس کد این سیستم عامل با زبان سی نوشته شده است. توسعه هسته ی لینوکس در سال 1991 شروع شد که این هسته با زبان برنامه نویسی سی نوشته شده است. در سال 1992، کرنل لینوکس تحت مجوز GNU عرضه شد و این هسته به عنوان بخشی از سیستم عامل گنو/لینوکس نیز مورد استفاده قرار گرفت (لازم به ذکر است که سیستم عامل گنو/لینوکس نیز با زبان*های C و Lisp نوشته شده است.)

تمامی پروژه هایی که در بالا یادآور شدیم به چندین دهه ی قبل باز می*گردند اما جالب است بدانیم که زبان برنامه نویسی سی صرفاً به پروژه های قدیمی اطلاق نمی گردد و امروزه شاهد پروژه های بزرگ و مهمی هستیم که علیرغم وجود زبان*های برنامه نویسی سطح بالای بسیاری که در میان توسعه دهندگان از محبوبت بسیاری نیز برخوردارند، باز هم با زبان سی نوشته می شوند.

بخش قابل توجهی از سیستم عامل ویندوز با زبان سی نوشته شده است. چیزی در حدود 97 درصد از ابرکامپیوترهای دنیا بر پایه ی هسته ی لینوکس هستند که بخش قابل توجهی از این هسته نیز با زبان سی نوشته شده است.

سیستم عامل مک نیز از زبان سی قدرت گرفته است به طوری که بخش قابل توجهی از کرنل OS X با زبان سی نوشته شده است. در زمینه ی ابزارهای هوشمندی همچون موبایل و تبلت هم ما نیازمند زبان سی هستیم. کرنل سیستم عامل های iOS, Android و Windows Phone با زبان سی نوشته شده*اند پس اگر زبان سی نبود، نمی توانستیم به این راحتی که امروزه از موبایل های خود استفاده می کنیم، از این دیوایس های هوشمند و کاربردی استفاده نماییم. رد پای زبان سی در دیتابیس های مشهور دنیا همچون Oracle, MySQL, MS SQL Server و PostgreSQL هم دیده می شود.

فیلم*ها و انیمیشن های سه بعدی نیز با نرم افزارهایی ساخته می*شوند که همگی با زبان سی و سی پلاس پلاس نوشته شده*اند (زبان سی پلاس پلاس نسخه ی پیشرفته ی زبان سی محسوب می شود.) نرم افزارهای گرافیکی و انیمیشن سازی جزو نرم افزارهایی هستند که پرفورمنس یا بازدهی در آن ها از اهمیت بسزایی برخوردار است چرا که این دست نرم*افزارها می بایست در کسری از ثانیه، حجم قابل توجهی از داده*ها را رندر کنند و شاید به همین دلیل هم باشد که از زبان*هایی همچون سی و سی پلاس پلاس در توسعه ی آن*ها استفاده می شود.

بسیاری از سیستم*های به اصطلاح Embedded همچون مایکروفر، یخچال، سیستم*های صوتی و تصویری، ساعت دیجیتال، سیستم ضد قفل خودرو، کروز کنترل، ایربگ و غیره هستند که کرنل آن*ها با استفاده از زبان سی نوشته شده است. تمامی این دیوایس ها کامپیوترهای کوچکی هستند که داخل آن*ها پردازنده های کوچکی تعبیه شده که روی آن*ها یک نرم*افزار نصب است که عمدتا با زبان سی نوشته می شوند.

در پاسخ به این سؤال که چرا کماکان از زبان برنامه نویسی C در دنیای کنونی استفاده می*شود بایستی گفت که امروزه زبان*های برنامه نویسی گوناگونی وجود دارند که دست توسعه دهندگان را به مراتب باز تر از زبانی همچون سی می گذارند. بسیاری از این زبان*های سطح بالا دارای لایبرری های از پیش نوشته شده*ای هستند که کار برنامه نویس را تا حد قابل توجهی آسان و بدون دردسر می*سازند اما به نظر می*رسد یکسری دلایل منطقی وجود دارند که زبان برنامه نویسی سی کماکان قابل استفاده است که در ادامه برخی از مهم*ترین این دلایل را برخواهیم شمرد.

پرتابل بودن و اثربخشی

زبان برنامه نویسی سی را به نوعی می*توان نسخه*ای پرتابل -یا قابل حمل- از زبان برنامه نویسی اسمبلی قلمداد کرد. این زبان ارتباط تنگاتنگی با زبان ماشین -یا همان صفر و یک- دارا است و بسیاری از پردازنده ها به خوبی می*توانند با کدهای نوشته شده با این زبان ارتباط برقرار سازند. زبان*های تفسیری همچون پایتون، روبی و پی اچ پی با استفاده از زبان سی پایه ریزی شده اند. لذا می*توان گفت که کامپایلرها، لایبرری ها و مفسرهای بسیاری از دیگر زبان*ها بر پایه ی این زبان هستند. علاوه بر این، از آنجا که زبان برنامه نویسی C مادر بسیاری از زبان*های سطح بالای دیگر مثل جاوا، سی پلاس پلاس، پی اچ پی، پایتون، سی شارپ، روبی و … قلمداد می شود، از این زبان می*توان به عنوان یک زبان مشترک مابین توسعه دهندگان یاد کرد که با استفاده از آن، به راحتی خواهند توانست به تبادل ایده*های خود بپردازند.

نوع استفاده از حافظه

یکی از دلایلی که از زبان برنامه نویسی سی در طراحی سیستم عامل ها استفاده می*شود این است که این زبان ارتباط خوبی با مموری سیستم دارا است. زبان سی این امکان را به سیستم می*دهد تا به خوبی بتوان کنترل حافظه ی سیستم را در دست گرفت. یکی از مهم*ترین محدودیت*هایی که سیستم*های Embedded با آن دست و پنجه نرم می کنند، وجود حافظه ی محدود است لذا مدیریت حافظه در این*گونه سیستم*ها به نحو احسن از اهمیت بسزایی برخوردار است و ساختاری که زبان سی دارد، این زبان را برای این*گونه سیستم*ها به بهترین کاندیدا مبدل می سازد.

حجم سورس کد

کدهای نوشته شده با زبان سی در زمان بسیار اندکی اجرا می*شوند و این زمان نسبت به بسیاری از دیگر زبان*ها کم است. برای مثال، زمانی که سورس کدی که با این زبان نوشته شده را با سورس کد نوشته شده با زبان سی پلاس پلاس مقایسه می کنیم، خواهیم دید که حجم سورس کد نوشته شده با زبان سی چیزی در حدود نصف سورس کد نوشته شده با زبان دیگر است.

به نظر می*رسد که زبان برنامه نویسی C تاریخ انقضاء نخواهد داشت. ارتباط تنگاتنگ با سخت افزار، پرتابل بودن، قابلیت مدیریت حافظه و بسیاری ویژگی*های دیگر منجر به این گشته تا زبان سی به عنوان انتخاب اول بسیاری از شرکت های برنامه نویسی برای توسعه ی سرویس های خود گردد. نیاز به توضیح نیست که امروزه زبان*های بسیاری هستند که هم از زبان سی راحت*تر هستند و هم کاربردی تر، اما زمانی که پرفرومنس مد نظر باشد، توسعه دهندگان گزینه ای به غیر از این زبان پیش روی نخواهند داشت! دنیای دیجیتال امروز روی زبان سی می چرخد. دیوایس هایی که ما هر روزه با آن*ها سروکار داریم با استفاده از این زبان برنامه*ریزی شده*اند و به نظر می*رسد که این زبان نیازهای گذشته، حال و آینده ی عصر فناوری را برآورده خواهد ساخت.

نظر شما چیست؟ آیا یادگیری این زبان ارزشش را دارا است یا بازار کار فعلی ایران در حال حاضر نیازمند زبان*های سطح بالاتری همچون جاوا، سی شارپ، پایتون و … است؟

لینک ارسال

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

×
×
  • اضافه کردن...