Linked by Thom Holwerda on Tue 4th Sep 2012 20:04 UTC, submitted by MOS6510
General Development "Computer programming is the art, craft and science of writing programs which define how computers operate. This book will teach you how to write computer programs using a programming language designed by Google named Go." Freely available book on Go.
Thread beginning with comment 533847
To read all comments associated with this story, please click here.
HangLoose
Member since:
2007-09-03

***I know this comment is controversial and I am not trying to flame bait or make start a war but I am really interested to know what are the opinions. So before down voting this comment leave your reply.***

As much as I would like to see (use?) new languages on my everyday work, will we see anything of this new crop of languages actually make any dent in the market? Companies that started with PHP or Rails started moving away from that

Heard a lot about Go and Scala, also Groovy and Rails. But somehow the hype around those faded away and we are back to the old axis of languages.

What is the opinion of everyone around here? What about the merits of individual languages and why they dont stick?

thanks in advance

Reply Score: 6

shmerl Member since:
2010-06-08

There aren't so many efforts to make a compiled language improving on the failures of C++. Namely these are Rust and Go. All others you mentioned aren't compiled. So why not.

Edited 2012-09-04 20:55 UTC

Reply Parent Score: 2

butters Member since:
2005-07-08

D falls into that category but hasn't had much traction, it would seem.

Reply Parent Score: 4

SlothNinja Member since:
2011-03-22

I guess it depends on your definition of traction.

For me, I'm using Go on Google App Engine (GAE) for my hobby site that hosts a couple board games. (See, www.slothninja.com). I'm really happy with the performance and the language. Given Go is compiled, it seems to be much more resource friendly than the other two GAE languages, Java and Python. Also, Go's compilation is so quick it truly feels like programming in a scripting language with the added advantage of type checking.

Is Go perfect? No. It definitely took me some time to get used to it's object model and how to write reusable code. But, once you start to grok Composition and Interfaces, it really becomes a pleasure to use.

With that said, only time will tell if it gains any traction. But, as along is Google keeps supporting it on GAE, it will meet my needs. Also, I believe a Go front-end is now formally part of GCC so it is unlikely it will disappear soon even if Google drops it.

Reply Parent Score: 5

s-peter Member since:
2006-01-29

http://go-lang.cat-v.org/organizations-using-go

I'd say for a relatively new language, Go already has quite a bit of traction. But then I'm a Go fanatic so I may be biased.

Reply Parent Score: 4

MOS6510 Member since:
2011-05-12

I think old languages are much more complete, they are established, lots of people have experience and have published lots of examples, tutorials and books.

New languages have more bugs, are less complete and have less Google search hits. They may have some advantage over older languages, but lack in other areas. To improve these things you need a lot of users, but it's hard to get those if they'll quickly fall back on the languages they already master.

Reply Parent Score: 2

flypig Member since:
2005-07-13

I'm no expert on this, but my understanding is that all of these languages tend to have some particularly attractive feature that's often not found in other similar languages.

For example, Go offers an element of static (compile-time) duck typing, which is unusual. The only other language I'm aware of that achieves this is StaDyn: http://www.reflection.uniovi.es/stadyn/ This is great for combining the speed and robustness of static typing while making programming easier.

I don't know Go, so I'm sure there are other good reasons to use it (e.g. very fast compile time). No doubt there are similar arguments for the other languages you mention.

The fact is though, there's strong resistance to using new languages simply because existing languages have built up broad collections of tools and libraries (and jobs!).

That doesn't mean these new languages aren't important though. The benefits of newcomer languages eventually seep in to other languages. Occasionally a new languages capturing a sensible collection of benefits disrupts the community and sticks. This happened with Java and .Net (I'm guessing partly because their creators invested heavily in developing extensive tool and library support from release).

This is all just my opinion of course, since you did ask for opinions!

Reply Parent Score: 5

butters Member since:
2005-07-08

I would say that JavaScript has made a dent in the market. Yeah, it started as a language that people used because it's the only language runtime supported by web browsers. Yeah, it has an peculiar object model. Yeah, the syntax can be annoying });

But the runtime engines are really fast, and it's not so bad as a meta-language upon which better languages can be built using frameworks and pre-compilers.

Yeah, JavaScript is inferior to Lua in every possible way, but it's caught on, and it's here to stay.

Reply Parent Score: 3

Neolander Member since:
2010-03-08

Well, I've enjoyed a lot the "tour of Go" which I've taken in July, so here's my impression.

As for the merits of the language, I can sum it up by the fact that it manages to be conceptually simple (look at how short and clear the spec is !) and powerful at the same time. The other languages with a small feature set which I know of, which are C, ASM and BF (yeah...), tend to make everyday coding tedious as a side-effect. Go manages to have a well-picked feature set that is expressive and restrained at the same time, and I have to applaud Rob Pike and his coworkers for that achievement.

Now, as for why these new language won't stick, I think that C and C++ have simply been around for too long. They have this huge amount of libraries written for them, these extremely optimized compilers, this huge amount of developers who know them and teach them.

Perhaps what a new programming language needs in order to gain acceptance after such a period of stagnation is the support of a well-received new OS or platform. After all, one can well argue that C wouldn't be where it is without UNIX; that HTML, Javascript, PHP, Java and Flash wouldn't be where they are if the Web hadn't grown this way; that C# would have never achieved significant developer acceptance without the support of Microsoft...

The only popular languages whose success I can't explain this way are C++ and Python. As far as I can tell, these became successful first and only then received the support of OSs. Perhaps they are the only languages that have gained developer acceptance by the sole virtue of their intrinsic merits, or perhaps I am just missing something...

Edited 2012-09-04 22:35 UTC

Reply Parent Score: 6

satsujinka Member since:
2010-03-11

Python seems to have gained popularity via back door. People didn't like perl so they switched to Python. Then you got mass... followed by adoption (also I believe the source engine uses python for scripting.)

C++ probably got popular because of C (in that it's a super set of C, meaning you can just go ahead and add your stuff to old C code.)

Edited 2012-09-04 22:35 UTC

Reply Parent Score: 3

moondevil Member since:
2005-07-08

Some of the reasons for C++ success were:

- C++ was also developed at AT&T, like C and UNIX;
- stronger type checking than C, while allowing to use most of the C code;
- when it appeared it was the only language able to offer OOP constructs at an affordable execution speed on the available hardware.
- most C compiler vendors started offering C++ compilers with toolkits for UI programming (TurboVision, OWL, MFC)
- CORBA appeared in the enterprise
- Some game studios decided to invest on it.

Reply Parent Score: 5

Luminair Member since:
2007-03-30

how much traction do you want? if a bunch of companies are using it, isn't that enough?

low traction doesn't mean it's not good, it just means it isn't good enough to warrant dumping all your code and all your coders brains and starting over. that is a high bar

Reply Parent Score: 2

YEPHENAS Member since:
2008-07-14

I do not see these languages/frameworks used less. And after a hype comes the plateau of productivity.

Reply Parent Score: 2

Valhalla Member since:
2006-01-24

What about the merits of individual languages and why they dont stick?

Well looking at Go (which is what this article was about) it's far too early to evaluate if it will 'stick' or not, but in my opinion it's off to a good start.

My main languages are Python and C, and I think Go lands somewhere in-between with some nice built-in concurrency features.

I've only played around with it sofar, here's a small rundown of likes / dislikes:

likes:
fast compilation (as in fast!), simple clean build system
clean language syntax
interfaces!!
goroutines, channels
multiple return values, duck-typing, defer, composite literals
data initialized to zero

dislikes:
at times rather poor performance for a static 'aiming at c-like speed' language, however it's still very young. Gccgo gives greatly improved performance in some programs.

lack of a union type, started calling some c libraries using cgo only to notice that accessing union data required awkward and slow runtime reflection.

no implicit type conversion (death of a thousand casts)

non-optional garbage collection (however given Go's target domain of concurrent programming I can understand the rationale behind this choice)

Anyway, as I said I've only played around with it briefly sofar but I'm thinking of diving into it seriously, anyone have a beyond-the-barebones Go programming book to recommend?

Reply Parent Score: 3

satsujinka Member since:
2010-03-11

I mostly agree, however, I don't really feel it's performance is so poor as to be an issue. I do really miss the union type, however, if I remember correctly there was issues with the gc (and interfaces can cover in language needs to a certain extent.)

Reply Parent Score: 1

sgtrock Member since:
2011-05-13

One obvious place to look is job postings. For example, take a look at this http://www.indeed.com/jobtrends?q=php%2Cpython%2Cjavascript... from Indeed.Com showing relative job growth (and loss) for PHP, Python, Javascript, Java, and .NET. http://www.indeed.com/jobtrends?q=php%2Cpython%2Cjavascript... just make the job growth curve for dynamic languages even more obvious.

Note: Sorry for the site not honoring the closing tags.
Even if you look at those graphs from an absolute perspective instead of a relative one, it becomes pretty obvious that there's a very healthy demand for programmers who understand when to use dynamic languages.

Reply Parent Score: 2