امروزه بسیاری برنامه نویسان – با عرض پوزش، برنامه نویسی مهندساناین افراد خود را «خلاق» می دانند. آنها به نوعی هنرمند هستند. آنها تمایل دارند از وبسایتهای شخصی مجلل با تخممرغهای عید پاک مخفیانه بازدید کنند، به خود چندین عنوان شغلی معنایی (“مهندس سابق آمازون، سرمایهگذار، نویسنده”) بدهند و برچسبهای وینیلی را روی لپتاپهای خود بزنند که نشان میدهد آنها چه کسی هستند. برخی از آنها خود را روشنفکر ادبی می دانند. ارجاعات اضافه شده به نام برخی از محصولات را در نظر بگیرید: Apache Kafka، ScyllaDB و Cloud 3.5 Sonnet.
اعتراف می کنم، بسیاری از این موارد در مورد من صدق می کند. تفاوت این است که من استعداد بیان افکارم را ندارم و پروژه های کوچکم – با نام هایی مانند “ناباکوف” (می دانم، می دانم) – بهتر است روی لپ تاپ من باقی بماند. من در لحظه ای وارد این دنیا شدم که مهندسی نرم افزار به عنوان منفورترین حرفه بانکداری را پشت سر گذاشته بود. نفرت و نفرت زیادی از خود وجود دارد که باید با آنها مقابله کنم.
شاید به همین دلیل است که من اخلاقیات زیربنای زبان برنامه نویسی Go را به عنوان یک سرزنش و اصلاح بالقوه برای نسل ما از افراد کوشا می بینم. سازندگان آن در دورهای بزرگ شدند که برنامهنویسان کمتر مغرور و از نظر تجاری جاهطلبی کمتری داشتند، و به اعتقاد من، این اولین زبان همهمنظوره هزاره جدید است – نه در هر چیزی بهترین، بلکه تقریباً در همه چیز بهترین است. الگویی برای دوران خیره کننده ماست.
اگر من بودم طبقهبندی زبانهای برنامهنویسی بهعنوان جنبشهای فنی به این معناست که گرایش سودگرایانه در اواسط قرن بیستم (فرترن و COBOL)، فرمالیسم تئوریک بالا (Haskell و Agda)، گرایش واقعگرایانه در شرکتهای آمریکایی (C# و Java) وجود دارد. و گرایش جمعی (پایتون و روبی) و لذت گرایی داخلی (بی وونگ و برینفک). من گو را که اغلب با عنوان «سی برای قرن بیست و یکم» توصیف میشود، بهعنوان یک نئوکلاسیک میبینم: نه آنقدر انقلاب که بازگشتی به گذشته.
در سال 2007، سه برنامه نویس در گوگل بر سر این احساس مشترک گرد هم آمدند که استفاده از زبان های استاندارد مانند C++ و جاوا برای محیط محاسباتی ابر محور امروزی دشوار و نامناسب است. یکی از آنها کن تامپسون بود که قبلا در آزمایشگاه های بل کار می کرد و جایزه تورینگ را برای کارش بر روی یونیکس، سیستم عامل حوای میتوکندری، برنده شد. (این روزها، افراد سیستم عامل با زبان های برنامه نویسی کار نمی کنند – انجام هر دو مانند این است که یک پرش ارتفاع المپیک نیز واجد شرایط ماراتن باشد.) راب پایک، یکی دیگر از فارغ التحصیلان آزمایشگاه بل، که با تامپسون استاندارد رمزگذاری یونیکد UTF-8 را ایجاد کرد، به او پیوست. می توانید با ایموجی خود از آنها تشکر کنید.
تماشای این پیشگامان برنامه نویسی که بازی Go را ایجاد کردند، مانند دیدار مجدد اسکورسیزی، دنیرو و پشی بود. ایرلندی. حتی نامی که با موتورهای جستجو همخوانی نداشته باشد قابل بخشش است. یعنی خیلی بی ادبه این قدمی است که فقط پادشاه موتورهای جستجو جرات انجام آن را دارد.
این زبان به سرعت محبوبیت پیدا کرد. اعتبار گوگل باید کمک کرده باشد، اما فکر میکنم یک تشنگی برآورده نشده برای جدید بودن وجود دارد. تا سال 2009، سالی که Go اولین کار خود را آغاز کرد، بیشتر آخرین زبان رایج از سال 1995 بود – سالی که شاهد ظهور Ruby، PHP، جاوا و جاوا اسکریپت بودیم.
اینطور نیست که پیشرفت در طراحی زبان های برنامه نویسی متوقف شده باشد. طراحان زبان گروه بسیار باهوشی هستند و بسیاری از آنها غیرت اصلاح طلبی برای برهم زدن وضعیت موجود دارند. اما چیزی که در نهایت میسازند، گاهی اوقات میتواند شبیه یک معمار برجسته باشد که به نظر میرسد مشکلات زهکشی دارد. اکثر زبان های جدید بر مشکلات اساسی عملکرد غلبه نمی کنند.
اما از همان ابتدا، برنامه جو (متاسفانه) آماده اجرا بود. یک بار یک موتور جستجوی کوچک در پایتون نوشتم تا یادداشت ها و اسنادم را مرور کنم، اما سرعت آن بسیار کند بود. پس از بازنویسی آن به زبان برو، مار بدبخت بال درآورد و به هوا رفت و سی برابر سریعتر دوید. همانطور که برخی از خوانندگان زیرک ممکن است تصور کنند، این برنامه برای من ناباکوف بود.