News for hackers. Stuff that matters.
Re:Idiomatic Generics in Go by pron on Tuesday September 30, 2014 @12:24PM (#8389108)
I agree and I think Go has wholeheartedly adopted Java's philosophy stated[1] in 1997 by James Gosling -- "Java is a blue-collar language" -- and expounded in JavaOne 2005 in the following slide:

    * Reading is more important than writing
       - code should be a joy to read
       - the language should not hide what is happening
       - code should do what it seems to do
    * Simplicity matters
       - a clear semantic model greatly boosts readability
       - every "good" feature adds more "bad" weight
       - sometimes it is best to leave things out

Obviously languages evolve with time. They need to change when their usage changes (for example, when they're used to build bigger and bigger programs) as well as when fashions shift, but when they do, they must do so carefully and conservatively. As a general rule, Java only adds new features not when they make something nicer, but only when they solve something that's really painful.

I think this approach works especially well in large projects designed to last for years, made by large heterogenous groups of developers who might come and go over the lifetime of the project.

One language that is somehow confounding in this respect is Clojure. It is minimalistic, but at the same time it's clever, so I'm not sure whether it belongs more in the minimalistic language category or the clever language category.

[1]: http://dfjug.org/thefeelofjava.pdf

Re:Idiomatic Generics in Go by masklinn on Tuesday September 30, 2014 @12:37PM (#8389196)
> It is minimalistic, but at the same time it's clever, so I'm not sure whether it belongs more in the minimalistic language category or the clever language category.

Truly minimalistic languages can only be clever, because at one point you need to be able to build the language in itself, and that naturally opens things up to the user.

Go isn't a minimalistic language, it's a simplistic one.

Re:Idiomatic Generics in Go by pron on Tuesday September 30, 2014 @01:01PM (#8389358)
Well, Clojure isn't Forth and Go isn't BASIC, and they both have a similar number of built-in concepts, so I'm not sure your distinction is so clear-cut. But Clojure is certainly much more clever. As someone interested in large systems, I usually dislike cleverness in programming languages, but in Clojure the cleverness seems to be contained (though I'm not sure it's contained enough).