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

Start with an existing language (Brand X). Reimplement it almost identically with modern-looking syntax. Improve and worsen it with some change. Give it a new name. Apparently a method that works:

http://cowlark.com/2009-11-15-go/

In all seriousness, though, they could've just independently rediscovered a lot of wise design decisions. Strange if they'd never seen this one studying programming language history, though. I'm with the author wishing they applied the innovations that have happened in recent decades or even new ones. Julia is an example of an imperative one that tries to do that.



> Strange if they'd never seen this one studying programming language history

Read this summary of Robert Griesemer's talk (The Evolution of Go) then you don't have to speculate: https://sourcegraph.com/blog/live/gophercon2015/123645585015


Thanks for the talk as it was interesting! A friend who pushes Go on other forums talked about how it reminded him of programming in his favorite, Wirth-style languages. Interesting that re-creating that experience was an explicit design goal with them drawing on good features of Wirth languages, ALGOL60 (not ALGOL68), and others. The ALGOL60 quote was similarly impressive:

"Hoare said of it, 'Here is a language so far ahead of its time, that it was not only an improvement on its predecessors, but also nearly all its successors.'"

Quite an achievement. It was had by using only experienced language designers on the committee. Modern committee-driven actions could learn from this technique of using people with brains and experience.

One of their smartest moves was how they marketed it. Many nice language designs happen but don't get any traction. Their design choices, tooling efforts, and big company support have been much better than the Java rollout and many minor attempts. My hope for the language is that it replaces the use of C# and Java in as many places as possible so people don't have to learn all that mess in maintenance phase. The simpler language should make for nice legacy code work, I think.

Bookmarking the article.




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

Search: