ابزارهایی که در قالب زبان ها ظاهر می شوند، نحو دیوانه کننده، کدهای قدیمی غبارآلود که نمی میرند – این چیزی است که ما را به لرزه در می آورد.
ممکن است توصیهای مبنی بر عدم کینه توزی خوب باشد، اما مطمئناً از جانب کسی که برای امرار معاش با رایانه دست و پنجه نرم میکند، نیامده است. برای هر زمان با منطق جهنمی یک زبان برنامهنویسی زحمت بکشید و وحشتهای فضای خالی جوهری را که بدترین اشکالها در آن زندگی میکنند، خواهید دانست.
هواداران دوست دارند مزایای زبان های برنامه نویسی مورد علاقه خود را تبلیغ کنند و از جادوی شهودی که به انگشتان برنامه نویسی شما خواهند آورد بخوانند. تقریباً هر زبان برنامه نویسی توسط شخصی با یک برنامه بزرگ برای ساده کردن کارهای برنامه نویسی خود ساخته شده است و سازندگان معمولاً موفق می شوند – حداقل در این مفهوم محدود. مشکل این است که اغلب اثرات ثانویه یا ثالثی وجود دارد که آنقدرها هم شگفتانگیز نیستند.
با وجود همه خوبی هایی که زبان های برنامه نویسی به ارمغان می آورند، همیشه دردسرها، برخی ابهامات آزاردهنده یا ناهماهنگی وجود دارد که یک عصر، یک آخر هفته یا حتی یک سال مالی کامل را خراب می کند.
افسوس، ما توسعهدهندگان نمیتوانیم کار زیادی در مورد آن انجام دهیم. پایه نصبشده ممکن است برای حذف زبانی که ما را آزار میدهد، خیلی بزرگ باشد. ممکن است رئیس آنقدر عاشق یک پشته باشد که از شنیدن فریادهای مزارع اتاقک امتناع کند. اغلب، حتی هیچ توافقی در مورد اینکه چه چیزی می تواند جایگزین خوبی باشد وجود ندارد.
حقیقت بی رحمانه این است که ممکن است گزینه های بهتری وجود نداشته باشد. ما در حال حاضر از بهترین ابزارهایی که انسان می تواند بسازد استفاده می کنیم. از گودل و تورینگ، ما آموختهایم که مکانیسمهای منطقی دارای لبههای تیز هستند. مطمئناً، شاید تقصیر خود ما، ما انسانها، برای سوء استفاده یا برنامهریزی نادرست است. اما وقتی یک زبان برنامه نویسی مغز ما را مجبور به انجام حرکات عجیب یوگا می کند، سخت است که آن را به خاطر نارضایتی خود سرزنش نکنیم.
با این وجود، درک محدودیتهای زبانهای برنامهنویسی مختلف، برنامهنویسی در اطراف آنها را آسانتر میکند. اگر نتوانیم زبانها را بهطور دائم از مخازن خود حذف کنیم، میتوانیم سعی کنیم ویژگیهای خاص آنها را درک کرده و پیشبینی کنیم. و علاوه بر این، گاهی اوقات هواگیری کمک می کند. در اینجا هشت زبان برنامه نویسی وجود دارد که دوست داریم از آنها متنفر باشیم، اما همچنین نمی توانیم بدون آنها زندگی کنیم.
C
C زبانی است که بهتر است به جای یک زبان کامپیوتری کامل، اسمبلر قابل حمل نامیده شود. آیا کسی نوشتن فایل های هدر جداگانه را دوست دارد؟ آیا کسی بدون اینکه کمی دیوانه شود از پیش پردازنده برای چیزهای دقیق استفاده کرده است؟
در تئوری، قرار است بتوانیم از قدرت محاسبات اشاره گر برای انجام کارهای هوشمندانه استفاده کنیم، اما آیا کسی ریسک انجام کاری بیش از تخصیص ساختارهای داده را دارد؟ آیا حتی ایده خوبی است که در مورد اشاره گرها خیلی باهوش باشیم؟ به این ترتیب کد شکسته می شود. اگر میتوانید باهوش باشید، اغلب نیاز به نوشتن یک نظر طولانی برای مستند کردن آن دارد، که تقریباً تمام زمانی را که با باهوش بودن صرفهجویی کردهاید، میکشد. آیا کسی میتواند تمام قوانین نوشتن کد C را به خاطر بسپارد تا از اضافه کردن همه حفرههای امنیتی احتمالی مانند بیش از حد بافر جلوگیری کند؟
اما چاره ای نداریم: یونیکس به زبان C نوشته شده است و اکثر تلفن های همراه و بیشتر فضای ابری را اجرا می کند. همه کسانی که برای این پلتفرمها کد مینویسند نیازی به استفاده از C ندارند، اما کسی باید با ستارهها و براکتهای فرفری بهروز بماند، در غیر این صورت همه چیز به هم میریزد.
حتی افراد یونیکس نیز شروع به دور شدن از C کردهاند. در چند سال گذشته، برخی از وصلههای هسته لینوکس در Rust ظاهر شدند. توسعهدهندگان احساس میکنند که ساختار سفتتر این زبان مانع از برخی حفرههای امنیتی میشود که توسعهدهندگان C هنگام باهوشی پشت سر میگذارند. با این حال، این انتقال سالها طول میکشد و ما احتمالاً بیشتر از Cobol نشانگرهای C را مینویسیم و دنبال میکنیم.
جاوا اسکریپت
سازندگان جاوا اسکریپت سعی کردند چیزی مدرن بسازند. خیلی بد است که آنها با درخشش خود ما را برای همیشه محکوم به زندگی پرانتزهای فرفری، براکتهای مربعی و پرانتز شمارش کردهاند – البته در عین حال اطمینان میدهند که همه آنها به درستی تودرتو شدهاند. بین توابع ناشناس، بسته شدن، و ساختارهای داده JSON، صورتیهای ما با زدن این کلیدها تمرینی واقعی دارند.
سپس جزئیات عجیبی وجود دارد. اگر x رشته ای است که کاراکتر را برای ۱ نگه می دارد، x+1 رشته ۱۱ و x-1 عدد صفر را تولید می کند. آیا کسی تفاوت بین نادرست
، null
، NaN
و undefined
را به خاطر دارد؟ آنها شبیه به هم هستند، اما چرا جاوا اسکریپت هر چهار مورد را دارد؟ و چرا آنها به طور مداوم رفتار نمی کنند؟
و سپس تغییر سریع وجود دارد. جاوا اسکریپت جدید اغلب شبیه جاوا اسکریپت قدیمی نیست، به لطف ویژگی های جدیدتر برای بازکردن و بسته بندی، پخش یا عدم پخش اشیا و آرایه های اشیا. این کد مانند دریایی از نقل قول های دوتایی، نقل قول های سه گانه، علامت های سوال دوتایی و سه نقطه به نظر می رسد. به یاد داشته باشید که “=>
” فلشی است که یک تابع را فراخوانی می کند اما “>=
” راهی برای مقایسه اعداد است. اگر ویژگیهای جدید آنها را دوست دارید عالی هستند، اما بقیه ما گیج شدهایم و گیر کردهایم و با شمارههای نسخه ECMAScript گیر کردهایم و نمیدانیم که آیا برخی از مرورگرها وقتی به برخی از نسخههای کد وارد میشوند، گیج میشوند.
افسوس، اینترنت، وب و هزاران مرورگر به جایی نمیرسند. سپس تیم فوق هوشمند Node.js آمد و پلتفرمی برای اجرای جاوا اسکریپت روی سرور ایجاد کرد. در حال حاضر، این یکی از محبوب ترین راه ها برای ساخت برنامه های کاربردی وب مدرن و پیشرفته است. کدگذارها آزادی کدهای هم شکلی را که هم روی مرورگر و هم روی سرور اجرا می شود جشن می گیرند. مهم نیست که توسعه دهندگان چقدر شکایت دارند. ما چندین دهه با عملکردهای ناشناس و بسته شدن آنها دستکاری خواهیم کرد.
PHP
PHP واقعاً یک زبان کامپیوتری نیست. این بیشتر ابزاری برای افزودن کمی هوشمندی به HTML ایستا است. شما می توانید اطلاعات را در یک پایگاه داده ذخیره کرده و آن را با برچسب های ایستا الحاق کنید. ممکن است چند ویژگی دیگر وجود داشته باشد، اما به نظر میرسد تمام کاری که ما با PHP انجام میدهیم چسباندن رشتههایی است که از پایگاه داده میگیریم.
خب، این طور بود. برخی از سازندگان PHP همه شکایات ما را جدی گرفته اند و ویژگی هایی مانند سیستم نوع قوی تر، رشته های هوشمندتر و ادغام بهتر با MySQL را اضافه کرده اند. PHP برای آن بهتر است و از پایگاه های کد پیچیده تری پشتیبانی می کند. همه اینها خوب به نظر می رسد، اما در مورد پیشرفت ها خیلی هیجان زده نشوید. همزمان، توسعهدهندگان ویژگیهای جدیدی را اضافه میکنند، برخی از ویژگیها را منسوخ میکنند کهنه ها. این بدان معناست که فقط یک موضوع زمان است که کد قدیمی از کار بیفتد.
بحث در مورد کد اسباب بازی یا نحو کودک ارزش این مشکل را ندارد. بین وردپرس، جوملا و دروپال، بیشتر محتوای وب از طریق کد PHP ارائه می شود. سپس فیس بوک (یا متا) وجود دارد که عمدتاً با PHP نوشته شده است و همچنان درصد قابل توجهی از زمان ما را می گیرد. ما فقط باید خوشحال باشیم که فیس بوک ماشین مجازی هیپ هاپ (HHVM) را ساخته و الهام بخش Zend برای ایجاد PHP 8.2.
این موتورهای جدید PHP اغلب دو برابر سریعتر هستند، یک افزایش سرعت غیرقابل مقاومت که میلیونها نفر در مصرف برق صرفهجویی میکند و تضمین میکند که همه ما در آینده در حال نوشتن PHP خواهیم بود.
Cobol
Cobol در سال ۱۹۵۹ زندگی خود را آغاز کرد و باید تا کنون منسوخ شده باشد، با نحو پیچیده آن پر از صدها کلمه محدود شده است. با این حال، دوستداران Cobol به تولید نسخههای جدید، وام گرفتن ایدهها از زبانهای دیگر ادامه میدهند و آنها را روی قابهایی که بیش از ۶۰ سال قدمت دارد، میچسبانند. آیا می دانستید چیزی به نام Cobol 2014 وجود دارد؟ این شامل جدول پویا است، ایدهای که مردم از سال ۲۰۰۲ سعی در وارد کردن آن به زبان دارند. و سپس Visual Cobol 8.0 که می تواند Cobol شما را با کد جاوا یا دات نت مرتبط کند و اجرای و اجرا و اجرای کدهای قدیمی خود را در کنار مدرن تر از همیشه آسان تر می کند. پشته ها.
ممکن است ابزارهای بهتری برای نوشتن منطق تجاری برای دستکاری پایگاههای داده داشته باشیم، اما به نظر میرسد هیچکس مزاحمش نمیشود، زیرا خرید رایانه بزرگتر و حفظ کد Cobol آسانتر است. دوستداران Cobol خاطرنشان می کنند که منطق نرم افزار قدیمی هرگز فرسوده نمی شود، پس چرا با تلاش برای به روز رسانی آن خطر ایجاد خطا را داریم؟ همانطور که من این را تایپ می کنم، ۳۴۶ شغل فهرست شده در Dice.com با کلمه < em>Cobolدر آنها. مشاغل Cobol در شرکت های بیمه و پیمانکاران دفاعی در همه جا وجود دارد. استفاده کنندگان اولیه مین فریم هنوز از Cobol برای انجام کار استفاده می کنند. دانشمندان کامپیوتر ممکن است با وحشت عقب بنشینند، اما تا زمانی که مشتریان در صف هستند، روسا خواهند گفت: «اگر خراب نیست، آن را تعمیر نکنید. فقط یک مین فریم بزرگتر بخرید.”
R
R برای علم داده توسعه یافته است و هنوز به طور گسترده توسط دانشمندان داده استفاده می شود، اگرچه برخی از آنها به Python روی آورده اند زیرا R را بسیار محرمانه می دانند. برخی از برنامه نویسان سنتی به دلیل ماهیت تعاملی R که گاهی اوقات آن را “حالت صفحه خراش” می نامند، ناامید شده اند. هر کسی که نیاز به اضافه کردن چند عدد یا محاسبه انحراف استاندارد یک مجموعه داده دارد، می تواند فقط چند کاراکتر را در خط فرمان R تایپ کند و بلافاصله پاسخ را دریافت کند. R به همان اندازه ابزاری است که شما به عنوان یک زبان برنامه نویسی برای ساختن چیزها استفاده می کنید.
خود زبان ممکن است کمی عجیب و گیج کننده باشد. بسیاری از دستورات به گونهای طراحی شدهاند که سریع و مختصر باشند، این عالی است اگر در آزمایشگاه از لولههای آزمایش استفاده میکنید و از R بخواهید عددی را در کنار آن محاسبه کند. علائم نگارشی مانند کاما فوق العاده قدرتمند است و من متوجه شدم که راه حل مشکلات من اضافه کردن یک ویرگول دیگر است. ساعتها سردرد، همه به خاطر نیاز به یکی از ریزترین علائم نگارشی.
رازهای نحوی و ساختار دادهای R دانشمندان داده را ناامید میکند – و آنها برای سالهای آینده این کار را خواهند کرد. پایه نصب شده بسته ها و کتابخانه های R تقریبا غیرقابل مقاومت است. اکوسیستم R گسترده و در حال رشد است. بسیاری از بستهها منبع باز هستند و آماده پاسخگویی به سؤالات شما یا خواستههای رئیستان با یک نمودار یا رگرسیون سریع هستند. بیرون کشیدن موهایتان با پیدا کردن براکتهای دوتایی در R بسیار سادهتر از بازنویسی بستههای بیپایان به زبان مورد علاقهتان است.
جاوا
ماشین مجازی و کتابخانه ها ممکن است مربوط به دهه ۹۰ باشند، اما نحو جاوا در دهه ۱۹۷۰ زمانی که C ایجاد شد، گیر کرده است. مدیریت خودکار حافظه گام بزرگی به جلو به نظر می رسد تا زمانی که کد شما تصمیم به کناره گیری بگیرد در حالی که جمع آوری زباله کنترل را به دست می گیرد. توسعهدهندگان Android درباره زمان درخواست مودبانه جمعآوری زباله از قبل نکاتی را با هم تبادل میکنند تا مطمئن شوند که جمعآوری زباله در وسط یک رویداد مهم، مانند تماس تلفنی با ۹۱۱، راهاندازی نمیشود.
پست های مرتبط
۸ زبان برنامه نویسی که دوست داریم از آنها متنفر باشیم – اما نمی توانیم بدون آنها زندگی کنیم
۸ زبان برنامه نویسی که دوست داریم از آنها متنفر باشیم – اما نمی توانیم بدون آنها زندگی کنیم
۸ زبان برنامه نویسی که دوست داریم از آنها متنفر باشیم – اما نمی توانیم بدون آنها زندگی کنیم