News for hackers. Stuff that matters.
Re:Go 1.6 is Released by pklausler on Wednesday February 17, 2016 @05:08PM (#11121861)
"is opinionated"? What does that mean in the context of a computer programming language?
Re:Go 1.6 is Released by BHSPitMonkey on Wednesday February 17, 2016 @05:40PM (#11122124)
One superficial example: There is only one correct formatting of a particular Go source file, so you never have to debate with someone (or yourself) whether to use newlines here or there, or to place that opening brace on the next line, or to put spaces around your assignment operator in that function call, etc. The toolchain formats it the "correct" way and that's it.
Re:Go 1.6 is Released by sinatra on Wednesday February 17, 2016 @05:23PM (#11121979)
In addition to what melted said, Go has strong opinions about things (we want to keep language simple, we want to encourage writing maintainable code, we want fast compilation, etc) and it's okay if those opinions mean it can't please some critics. For example, Go isn't against generics. They just don't know (yet) how to do it while keeping language simple and compilation fast.
Re:Go 1.6 is Released by melted on Wednesday February 17, 2016 @05:15PM (#11121911)
Doesn't attempt to please everyone. Case in point: no OOP or inheritance and no FP. Minimal syntactic sugar.
Re:Go 1.6 is Released by zik on Wednesday February 17, 2016 @06:36PM (#11122476)
Nitpick - Go is very much an OO language. Almost everything is done using objects. It has a different way of handling inheritance however - it makes a different decision in the "Composition over inheritance" debate.

https://en.wikipedia.org/wiki/Composition_over_inheritance

Re:Go 1.6 is Released by iends on Wednesday February 17, 2016 @10:33PM (#11123521)
I've found that there is no real standard definition of what OOP is and people get very angry when you say Go is OOP but it doesn't have inheritance. YMMV though.
Re:Go 1.6 is Released by masklinn on Thursday February 18, 2016 @06:54AM (#11125129)
As far as Alan Kay is concerned (always a pretty good yardstick)

> OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late binding of all things.

Re:Go 1.6 is Released by redtuesday on Thursday February 18, 2016 @10:09AM (#11126235)
Yeah, I like this posting from him http://c2.com/cgi/wiki?AlanKayOnMessaging
Re:Go 1.6 is Released by fithisux on Thursday February 18, 2016 @04:01AM (#11124530)
Golang is the best. And this is a really amazing thing.

Golang does Pseudo OO like Motif. The added value is the composition which is amazing.

Re:Go 1.6 is Released by zdkl on Wednesday February 17, 2016 @05:23PM (#11121982)
Not to start a flamewar or anything, but what about clojure (or any lisp for that matter, I just like the CLJ ecosystem) doesn't vibe with your 'minimal syntactic sugar' and other requirements?
Re:Go 1.6 is Released by melted on Wednesday February 17, 2016 @05:38PM (#11122108)
Oh, don't mistake my comment for favorable opinion. I only wrote a few hundred lines of Go in my life. It worked well for the particular problem I was solving, but I'm really more of a C/C++ guy.

The problem with lisps is that you need to know lisp, and relatively few people do. It also requires a different approach to program design. It may or may not be a better approach, but the fact is, that's not what most people are trained for.

In contrast, go is imperative through and through, and its syntax is similar enough to C that people find it easy to adapt to it.

Re:Go 1.6 is Released by coliveira on Wednesday February 17, 2016 @09:23PM (#11123233)
The little secret of Lisp is that you can use it pretty much as an imperative language, even though it also enables functional programming. The main barrier is that Lisp is taught as a functional programming language, and many believe that this is the only way you should use it.
Re:Go 1.6 is Released by woah on Wednesday February 17, 2016 @06:10PM (#11122313)
Go tends to emphasize the simple, imperative way to get a computational thing done. It goes so far as to never hide a for loop from you. I'm not experienced with lisp, but from reading sicp, it seems to be a paradigm built on creating stacked layers of syntactical sugar (dsls).
Re:Go 1.6 is Released by ant6n on Wednesday February 17, 2016 @07:01PM (#11122609)
No floats?
Re:Go 1.6 is Released by melted on Wednesday February 17, 2016 @07:06PM (#11122642)
No functional programming, or language features borrowed from there.
Re:Go 1.6 is Released by pklausler on Wednesday February 17, 2016 @09:40PM (#11123293)
Which is kind of a shame, since many of those concepts would complement the strengths of Go quite nicely -- i.e., a pure goroutine that had no visible side effects apart from channel activity would help enable automatic remote execution in a cluster.
Re:Go 1.6 is Released by golergka on Wednesday February 17, 2016 @05:13PM (#11121896)
One way to do things, not ten.

Opposite example: implementations of OOP in Lisp and JS.

Re:Go 1.6 is Released by pklausler on Wednesday February 17, 2016 @05:16PM (#11121924)
I'm not sure that I understand your definition of the term "opinionated". Is Haskell opinionated? Is Fortran?
Re:Go 1.6 is Released by jgalt212 on Wednesday February 17, 2016 @05:45PM (#11122159)
I take opinionated to mean one obvious way to do things. Python and Go are opinionated. Ruby and Perl are not. But RoR is very opinionated.
Re:Go 1.6 is Released by antod on Wednesday February 17, 2016 @06:41PM (#11122503)
> I take opinionated to mean one obvious way to do things. Python and Go are opinionated.

IMO Python wants to be opinionated (in your 'one obvious way' definition), and it actually was 10-15yrs ago when Perl was the comparison, but ongoing progress has eroded that a lot - especially across the stdlib :)

But yeah Go and RoR are probably two of the most opinionated technologies I can think of.

Re:Go 1.6 is Released by TelmoMenezes on Wednesday February 17, 2016 @05:21PM (#11121964)
Take a look at a curated list of opinionated ecosystems. Hilariously, they contain some of the most popular use-cases going forward, and the price point is good.

Genuine question, why all the negativity?

Re:Go 1.6 is Released by pklausler on Wednesday February 17, 2016 @05:49PM (#11122180)
I'm not being negative. I was confused by the unfamiliar anthropomorphic terminology being applied to an artifact. I take away a sense that "opinionated" seems to be an idiom popular within the golang community for a sense of principled design along the lines of Smalltalk's message passing, Lisp's homoiconicity, Haskell's purity from side effects, and so on.
Re:Go 1.6 is Released by TelmoMenezes on Wednesday February 17, 2016 @07:03PM (#11122624)
> I'm not being negative.

I was. My previous message is an arbitrary combination of HN clichés, of which "opinionated" is one. It's gibberish, devoid of content but written in a fashionable way. It got zero down-votes so far. Maybe something to think about.

Re:Go 1.6 is Released by pklausler on Wednesday February 17, 2016 @09:35PM (#11123282)
I felt like I owed the world a response to your question even though the first sentence made no sense to me whatsoever. I guess that "opinionated" makes no less sense as a characterization of an artifact than "ambitious" or "stupid" does, so I'm going to have to learn to live with it, but it's one of those things like "performant" or "impactful" that will make me cringe if I ever catch myself saying it. Anyway, thanks for the response, my comrade-in-downvotes.
Re:Go 1.6 is Released by libria on Wednesday February 17, 2016 @11:02PM (#11123640)
"opinionated" is just shorthand for "the language authors held strong opinions when designing". There's no anthropomorphism so hopefully that takes away the confusion.