زبان را فراموش کنید: این ابزارها هستند که مهم است
بحث کردن در مورد برتری یک زبان نسبت به زبانهای دیگر بحث داغ همه روزه است، اما آیا واقعا زبان مهمتر است یا ابزارها؟
هفتهای نیست که بدون بحث کردن در مورد اینکه زبان X نسبت به بقیه برتر است سپری نشود. قابلیتهایی از زبان X معرفی میشود که در زبانهای دیگر ممکن نیست، مثلا آشپزخانه شما را برق میاندازد یا عشق گمشدهتان را باز میگرداند!. اینها به طور کلی تلاش دارند که زبان دیگری را بکوبند، به خصوص جاوا!
یک جملهای هست که برای کسانی که همیشه دوست دارند اعتراض کنند شاید جالب توجه باشد:
زبانهای برنامهنویسی دو دسته هستند: آنهایی که مردم مدام در موردشان شکایت میکنند و آنهایی که هیچ کسی از آنها استفاده نمیکند.
Bjarne Stroustrup
نیکولاس فرانکل، مشاور فناوری اطلاعات، از تجربه خود در مهاجرت و انتقال برنامه از اندروید به Kotlin سخن میگوید. وی این کار را در Android Studio انجام میدهد که JetBrain ابزاری برای آن به منظور مهاجرت به Kotlin فراهم کرده است. این کار به سادگی و با چند تغییر جزئی انجام میگیرد.
از دیدگاه فرانکل زبان مهمترین مساله نیست، تجهیزات و ابزارهایی که برای آن فراهم شده است، مساله مهمتری است. شما میتوانید بهترین زبان دنیا را داشته باشید – و به نظر میرسد هرکسی تعریف شخصی خود از بهترین را دارد- اما اگر با کمبود ابزارها روبرو باشید اصلا ارزشی ندارد.
اسکالا را به عنوان مثال در نظر بگیرید. اسکالا زبان قویای است اما اگر ابزاری برای مدیریت ویژگیهای پیچیده زبان، مثل پارامترهای ضمنی، نداشته باشد با مشکلات بسیاری روبرو خواهید شد. بهتر است که یک IDE پیشرفته داشته باشید تا به شما نشان دهد اینها از کجا میآیند. اگر فراتر از زبانها بیندیشید، به طور مشابه میتوانید چنین چیزی را برای تکنولوژیهایی مانند Dependency Injection نیز مطرح کنید که میتواند از طریق Spring یا CDI یا aspectها از طریق AOP حاصل شود.
یک مثال دیگر میتواند XML باشد. XML کماکان در دنیای به اصطلاح enterprise به کار گرفته میشود. هرچند XML از متون نیمه ساختار یافته است، خواندن آن بدون کمک دشوار است. اما با استفاده از Eclipse یا XMLSpy، فایلهای XML به شکل درخت به نمایش در میآیند و خواندن آن را ساده میگرداند.
زبانها و تکنولوژیهای موفق با ابزارها و تجهیزات میآیند. به اطرافتان نگاه کنید و خودتان ببینید. زبانها به خاطر ابزارهایشان موفق هستند؟ یا ابزارها برای زبانهای موفق ساخته شدهاند؟ شاید هر دو…
در گذشته فکر نمیکردم Kotlin و این چنین زبانهایی شانسی برای موفقیت داشته باشند. اما با وجود JetBrains که پشت Kotlin و Intellij IDEA هستند، معتقدم آیندهای روشن در انتظار Kotlin خواهد بود.
نظر شما چیست؟ ابزار مهمتر است یا زبان؟