لطفا جاواسکریپت مرورگر خود را فعال سازید!

نحوه فعال سازی در کروم
  1. ابتدا باید اینکارو بگنید
  2. بعدش اونکارو
نحوه فعال سازی در فایرفاکس
  1. ابتدا باید اینکارو بگنید
  2. بعدش اونکارو
آیا واقعا با وجود زبان‌های پیشرفته، نیازی به یادگیری زبان C هست؟

آیا واقعا با وجود زبان‌های پیشرفته، نیازی به یادگیری زبان C هست؟

 

زبان C جز زبان‌هایی است که یادگیری‌اش مشکل است؛ اگر این‌گونه است، پس چرا باید زحمت یادگیری آن را به خودمان بدهیم؟ با نگاه کردن به شاخص TIOBE، که هر ماه زبان‌های برنامه‌نویسی محبوب را معرفی می‌کند، می‌توان به این نکته پی برد که زبان‌های گو، دارت و پرل روند صعودی داشته‌اند و این در حالی است که زبان برنامه‌نویسی C در این جدول نزول شدیدی داشته است و در سال‌های اخیر محبوبیت خود را تا حد زیادی از دست داده است! در دنیای امروز، اپلیکیشن‌های موبایل و نرم‌افزارهای تحت وب بسیار پرطرفدار هستند و افراد برای توسعهٔ آن‌ها ترجیح می‌دهند به جای استفاده از زبانی قدیمی مانند C که تقریبا از رده خارج نیز محسوب می‌شود، از زبانی استفاده کنند که هم یادگیری‌اش راحت‌تر باشد و هم دیباگ کردنش. آیا این بدان معنی است که زبان C دیگر ارزش یادگیری ندارد؟ جواب این سوال آنقدرها هم ساده نیست اما برای یافتن پاسخ به این سوال، در ادامه با سکان آکادمی همراه باشید. 

پیش از هرچیز، بهتر است با خواندن مقالهٔ آیا می‌دانستید وجه تسمیهٔ زبان برنامه‌نویسی C چیست؟ ببینیم که چرا سومین حرف الفبای انگلیسی به عنوان نام این زبان انتخاب شده است!

عرضه و تقاضای زبان‌های برنامه‌نویسی
زبان سی در صنعت آی‌تی هنوز هم پرطرفدار است اما این روند ممکن است در آینده‌ای نزدیک تغییر کند؛‌ به گفتهٔ مارک درایور، مدیر تحقیقات شرکت Gartner، زبان‌های سی و سی‌پلاس‌پلاس هنوز هم جزو زبان‌های مورد استفاده در برنامه‌نویسی System Level هستند و می‌توانید با داشتن این دو زبان در رزومهٔ خود، متفاوت بودن خود را به رخ کارفرمایان و سایر برنامه‌نویسان بکشید، اما حتما به خاطر داشته باشید که در آینده‌ای نه چندان دور، جای خود را به زبان‌های دیگری همچون Go و یا D خواهند داد (در مقالهٔ چرا زبان برنامه‌نویسی C در حال از دست دادن محبوبیت‌اش است؟ با تفصیل بیشتری در مورد دلایل از دست رفتن محبوبیت این زبان صحبت کرده‌ایم.)

به گفتهٔ آقای درایور، در حال حاضر هیچ تقاضایی از سوی مشتریان برای زبان‌های سی وسی‌پلاس‌پلاس وجود ندارد و زبان جاوا چیزی است که اکثر مشتریان به دنبال آن هستند (برای یادگیری این زبان، به دوره‌ٔ آموزش رایگان زبان جاوا در سکان آکادمی مراجعه نمایید.) شاید دلیل چنین رویکردی این باشد که با استفاده از آن‌ها، امکان بهره بردن از فیچرهای مدرن وجود ندارد و این در حالی است که زبان‌هایی همچون جاوا، سی‌شارپ و غیره، این کمبود را تا حد زیادی جبران کرده‌اند. وی همچنین ادعا می‌کند که در حیطهٔ IoT یا همان «اینترنت اشیاء» برای زبان سی و برنامه نویسانی که به این زبان مسلط هستند تقاضای رو به رشدی وجود دارد. با رونق گرفتن IoT نیاز به زبان‌هایی که بیشترین نزدیکی را با سخت‌افزار دارند بیشتر می‌شود و این  نیاز مرتفع نمی‌گردد مگر با استفاده از زبان C. برای اپلیکیشن‌های قدیمی، شمردن بیت‌ها چندان اهمیتی نداشت اما زمانی که پای اینترنت اشیاء به میان می‌آید، داستان متفاوت است و زبان سی بازهم خودی نشان خواهد داد.

با C یا بدون C، مساله این است!
در بررسی زبان‌های برنامه‌نویسی، یادگیری زبان سی را شبیه به زبان لاتین می‌دانند؛ ممکن است شما زبان لاتین را یاد بگیرید و هیچ‌گاه از آن استفاده نکنید، اما بدون شک این زبان به شما کمک می‌کند تا در فراگیری زبان‌های دیگر به مشکلات کمتری بربخورید؛ یک مدرس زبان جاوااسکریپت به نام آزریل فاستن بر این باور است که این زبان بدون شک راه را برای یادگیری‌های بعدی هموار می‌کند. او می‌گوید:

همون‌طور که یک مدرک در تاریخ یا هنر میتونه شما رو قوی‌تر کنه و روزی به کارتون بیاد، زبان سی رو هم باید یاد گرفت چون یه روزی در یه جایی می‌تونه به شما کمک کنه!

به گفتهٔ آقای فاستن، این زبان لزوما پیش‌نیازی برای سایر زبان‌ها محسوب نمی‌شود؛ استدلال فاستن این است که از آنجایی که زبان‌های دیگر باگ‌های خود را تا حد زیادی رفع کرده‌اند و جلوی خطای شما را تا حدود 80 درصد گرفته‌اند، قدرت تفکر الگوریتمی و حل مساله را نیز از شما می‌گیرند، درحالی‌که زبان سی این فرصت را برای یادگیرنده فراهم کرده است که با رفع باگ‌ها، ذهنی قوی‌تر برای خود بسازد.

افرادی که بدون داشتن علم کافی در زمینهٔ برنامه‌نویسی علاقه‌مند به وارد شدن به این حیطه هستند، همواره به دنبال راهی برای فرار از زبان سی می‌باشند بنابراین در تلاش هستند تا در زمینهٔ وب یا تولید اپلیکیشن موبایل فعالیت کنند در‌حالی‌که زبان سی بیشتر برای اپلیکیشن‌های پیشرفته‌ای مانند داده‌پردازها و یا کرنل‌ها و درایورهای سیستم‌عامل‌ها مورد استفاده قرار می‌گیرد.

یکی از افرادی که معتقد است زبان سی بدون شک در تبدیل او به یک برنامه‌نویس حرفه‌ای نقش بزرگی بازی کرده است، میگول موالز است؛ وی مهندس نرم‌افزار است و تا‌کنون در شرکت‌های معتبری چون At&T،HPE و Cisco موقعیت‌های شغلی خوبی داشته است. او بر این باور است که دانستن سی به طور غیرمستقیم او را به برنامه‌نویس بهتری تبدیل کرده است چراکه حتی اگر از سی استفاده نکنید، دانستن این‌که یک سیستم چگونه کار می‌کند و یا به چه شکل داده‌ها را ذخیره می‌کند، می‌تواند کمک بزرگی برای شما باشد.

اما چگونه؟ شما نسبت به متغیرهای تولید شده متعهدتر می‌شوید، سعی می‌کنید از بهترین الگوریتم‌های موجود استفاده کنید و به کارگیری کامندهای مناسب را در راس کار خود قرار می‌دهید. بدون تردید زبان‌های برنامه‌نویسی جدید فیچرهای مدرن و کارآمدتری همراه خود دارند اما آنچه شما را نسبت داشتن کدهای تمیزتر و باکیفیت‌تر، متعهدتر می‌کند زیان سی است.

با این تفاسیر به نظر می‌رسد که یادگیری زبان سی هنوز هم ارزش یادگیری دارد اما فقط به عنوان یک زبان جانبی. ریموند فان، مهندس کامپیوتر شرکت Zebra Technologies، کسی است که باور دارد بهتر است زبان مورد نظر خود را یاد بگیرید و سپس برای بهره بردن از ذهن الگوریتمیک و درک عمیق‌تر، یادگیری سی را در اولویت دوم خود قرار دهیم.

آقای فان هم شباهت زبان سی به لاتین را تایید می‌کند و بر این باور است که یادگیری این زبان به مدیریت حافظهٔ ما کمک می‌کند اما اگر زیاد از حد در این زبان غرق شوید، ممکن است شما را گیج کند! به اعتقاد وی، با این‌که دانستن این زبان می‌تواند نقطهٔ قوت یک رزومهٔ کاری باشد، اما لزوما منجر به استخدام شما نخواهد (برای آشنایی با تکنیک‌های نوشتن یک رزومهٔ خود به عنوان یک برنامه‌نویس، به مقالهٔ چگونه یک روزمهٔ خوب به عنوان برنامه‌نویس یا توسعه‌دهنده بنویسیم؟ مراجعه نمایید.)

در عین حال فراموش نکنیم که این زبان دستاورهای ارزشمندی را به صنعت فناوری دنیا تقدیم کرده است به طوری‌که در مقالهٔ اگر زبان برنامه‌نویسی C نبود، چه بلایی سر دنیای نرم‌افزار می‌آمد! توضیح داده‌ایم که اگر این زبان نبود، صنعت آی‌تی با چه چالش‌هایی مواجه می‌شد.

حال نوبت به نظرات شما‌ می‌رسد؛ آیا با زبان C آشنایی دارید و اگر این‌طور است، آیا با این جمله که «یادگیری زبان C ذهن شما را الگوریتمیک می‌کند» موافقید؟ نظرات و دیدگاه‌های خود را با سایر کاربران سکان آکادمی به اشتراک بگذارید.

منبع


فرنوش فهیم