بهترین زبان‌های برنامه‌نویسی جدید برای یادگیری کدامند؟

اگر می‌خواهید بازدهی بیشتری داشته باشید، یک زبان برنامه نویسی جدید یاد بگیرید.

این توصیه‌ نوئل ولش (Noel Welsh)، یکی از بنیانگذاران شرکت مشاوره‌ای آندرسکور (Underscore) است. او اعتقاد دارد یادگرفتن زبان جدید، یکی از معدود راه‌های دولوپرها برای دست یافتن به موفقیت‌های بیشتر است.

استدلال ولش که در کنفرانس کیوکان ۲۰۱۹ لندن (QCon) صورت می‌گرفت این بود: «زبان‌ها ابزارهای بسیار قدرتمندی هستند که به نظرم به آنها به قدر کافی بها نمی‌دهیم. تنها راه برای رسیدن به بازدهی کافی، این است که کدی ننویسیم و بهترین راه برای کم کردن کدنویسی غیرضروری، این است که زبان جدیدی یاد بگیریم.»

به نظر ولش، کتابخانه‌های نرم‌افزاری با اینکه راه ساده‌ای برای کد ننوشتن جلوی پای آدم می‌گذارند، اما محدودیت‌هایی هم دارند. هر زبان برنامه نویسی، مجموعه گسترده‌ای از کتابخانه‌ها دارد که توسعه‌دهنده‌ها می‌توانند استفاده کنند. به این ترتیب، لازم نیست هربار که خواستیم یک کار تکراری انجام دهیم، چرخ را از نو اختراع کنیم. مثلاً برای ساختن اپلیکیشن‌های وب با Node.js جاوا اسکریپت، می‌شود از فریم ورک اکسپرس (Express) استفاده کرد.

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

ولش می‌گوید که «در نهایت، قدرتی که زبان‌ها به ما می‌دهند بیشتر از توانی است که کتابخانه‌ها در اختیارمان می‌گذارند؛ زیرا زبان میزبان، توانایی‌های کتابخانه را محدود می‌کند.مثلا اگر یک کتابخانه در C بنویسید، همیشه باید به مدیریت حافظه فکر کنید؛ راه دررویی ندارد». ولش اضافه می‌کند که «بعضی زبان‌های دیگر که سطح بالا (High-level) هستند، خودشان به طور خودکار تخصیص و آزادسازی حافظه را مدیریت می‌کنند. این مشکلی است که فقط با یک زبان می‌شود حلش کرد، و کتابخانه هیچ کمکی به رفع آن نمی‌کند.»

البته واضح است که ویژگی‌های مثبت هر زبان را باید با توجه به امکاناتی که در دیزاین عرضه می‌کند، سبک سنگین کرد.

برای مثال، در یک زبان سطح بالا مثل جاوا اسکریپت، توسعه‌دهنده برای مشخص کردن اینکه آیا متغیر عدد صحیح است یا ممیز شناور، به کامپایلر Just In Time متکی می‌شود؛ چرا که نمی‌تواند نوع متغیر را مشخص کند. یا در جاوا، ماشین مجازی جاوا (JVM؛ پلتفرمی که کد جاوا در آن اجرا می‌شود) «به شما اجازه نمی‌دهد که مستقیما کاری برای بُرداری‌ کردن (Vectorizing) کدها بکنید».

اما وقت انتخاب زبان جدید، یکی از مهم‌ترین نکته‌ها این است که ببینید آن زبان با زبان‌هایی که شما یا شرکت‌تان استفاده می‌کنید، چقدر سازگاری دارد. ولش می‌گوید که «یک دلیل دیگر برای استفاده از زبان‌های جدید، این است که این زبان‌ها می‌گذارند به لگسی کدمان (legacy code) احترام بگذاریم، که سرمایه‌گذاری‌مان روی لگسی را حفظ کنیم. احترام به لگسی و حفظ آن یکی از انگیزه‌های اصلی شرکت ما بوده است.»

عباس شهسواری

زمان آن رسیده که شیوه نوشتن و خواندن مطالبتان را تغییر دهید. اگر برای آغاز به دوران جدید آماده هستید به وبلاگ من خوش آمدید.

شاید این مطالب را هم دوست داشته باشید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *