Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Let's be fair, they held out against a very vocal community for a very long time.

They used that time to carefully evaluate the utility and ethos compatibility of generics. And they're taking time thoughtfully implementing them.

This is what you want out of a language. Thoughtful design and responsiveness.



And I bet that if Go ever gets generics, they will look extremely similar to everything everyone has been telling them for years, even though they dismissed that feedback for years as silly.

The switch from parentheses to square brackets is just the first step toward that admission.


Something interesting happened when comparing the history of systems programming languages from the early 60s, throughout the 70 and 80's.

The resistance of C's design adopting anything that was already considered good practices in designing secure OSes outside Bell Labs, has a very familiar feeling.


It's amazing how we got here... Your comment immediately reminded me of Tony Hoare's Turing Award lecture (https://www.cs.fsu.edu/~engelen/courses/COP4610/hoare.pdf) which contains (among other fun/depressing gems to reflect on) a bit on the obvious-even-to-customers sanity of avoiding core dumps or worse due to a lack of bounds-checking.

"A consequence of this principle [of security] is that every occurrence of every subscript of every subscripted variable was on every occasion checked at run time against both the upper and the lower declared bounds of the array. Many years later we asked our customers whether they wished us to provide an option to switch off these checks in the interests of efficiency on production runs. Unanimously, they urged us not to -- they already knew how frequently subscript errors occur on production runs where failure to detect them could be disastrous. I note with fear and horror that even in 1980, language designers and users have not learned this lesson. In any respectable branch of engineering, failure to observe such elementary precautions would have long been against the law."


Yes, that is one of my favorite quotes. The key point is " would have long been against the law".

Until this kind of issue start suffering lawsuits, most companies won't change their behaviour.

Look at Microsoft, all the security speech, C++ Core Guidelines, improving .NET for low level programming, new founded Rust love, yet the Azure Sphere team decided to use C on what is supposed to be the Fort Knox of IoT security. A bit though story to buy. I imagine the Phonon layer has probably hardware memory tagging, but they aren't revealing what it does.


> everything everyone has been telling them for years,

Some generic obsessed people talking about generics is neither everything nor everyone.


This is a fair comment. Even the article we’re reading is basically the thought behind why square brackets is the best way to signify a generic. There’s mentions of parsers and that kind of design thought is important in a language.


The question would be how are they solving it differently after these many years. They are just following what every other language has done for the years. We agree on having that restraint is good, if they see it as not required.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: