نه چون میفهمیم کدوم خوبه کدوم بده، چون اکثر چیزهایی که ما روزمره باهاش سر و کله میزنیم، قبل ازینکه در صنعت به کار گرفته بشن، در تئوری و دنیای آکادمیک مطرح شدن. برای من جذابیتش اینه که میبینم کدوم مباحث الهام بخش چه فیچرهایی در زبانهای مطرح الان بودهان.
برای مثال، مفهوم channel که در Golang, C#, Rust و زبانهای مختلف حالتهایی ازش پیاده سازی شده، توسط Tony Hoare مطرح شد. ایشون مفهومی برای مدیریت پراسسهای همزمان (Concurrent Processes) مطرح میکنن به نام زیر
Communicating sequential processes
که در زبان Go میشه گفت بعنوان First-class concept استفاده شده و بخشی از طراحی زبان هست. این دوستمون هم کمی داستان رو باز تر کرده:
https://t.me/hiradsajde/178
جالبه بدونین، همین آقای هور، کسی بوده که Null Reference رو در روزهای ابتدایی زبانها در طراحی زبان تعریف کرده و کلی آدم رو بدبخت کرده.
خودش، در ارائهای در سال 2009 با نام Null References: The Billion Dollar Mistake اینجوری ازش یاد میکنه:
I call it my billion-dollar mistake. At that time, I was designing the first comprehensive type system for references in an object-oriented language. My goal was to ensure that all use of references should be absolutely safe, with checking performed automatically by the compiler. But I couldn’t resist the temptation to put in a null reference, simply because it was so easy to implement. This has led to innumerable errors, vulnerabilities, and system crashes, which have probably caused a billion dollars of pain and damage in the last forty years.
در این ارائه ایشون میگه دلیلی که Null Reference ها رو داخل زبان تعریف کرده بود صرفا برای راحتی پیادهسازیش بود، اما این کارش میلیاردها دلار هزینه تراشیده!
برای همینه که هر از چندگاهی بنظرم بد نیست که زبان جدید یاد گرفت، برای اینکه یادمون نره که همهی زبانها صرفا ابزاری برای ارتباط با Cold, Hard Metal هستن!
@ever_code