<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:osnews="http://www.osnews.com/rss2#">
	<channel>
		<title>OSNews: </title>
		<link>http://www.osnews.com/story/26337/An_introduction_to_programming_in_Go</link>
		<description>Exploring the Future of Computing</description>
		<language>en-us</language>
		<copyright>Copyright 2001-2013, David Adams</copyright>
		<webMaster>adam+nospam@osnews.com</webMaster>
		<lastBuildDate>Fri, 24 May 2013 18:23:14 GMT</lastBuildDate>
		<image>
			<url>http://www.osnews.com/images/osnews.gif</url>
			<title>OSNews.com</title>
			<link>http://www.osnews.com</link>
		</image>
		<item>
			<title>Comment by shmerl</title>
			<link>http://www.osnews.com/thread?533846</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533846</guid>
			<description>Nice. Now someone should make an introductory book for programming in Rust (<a href="http://rust-lang.org" rel="nofollow">http://rust-lang.org</a>)</description>
			<pubDate>Tue, 04 Sep 2012 20:17:00 GMT</pubDate>
			<author>donotreply@osnews.com (shmerl)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?533847</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533847</guid>
			<description><b>***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.***</b><br />
<br />
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<br />
<br />
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.<br />
<br />
What is the opinion of everyone around here? What about the merits of individual languages and why they dont stick?<br />
<br />
thanks in advance</description>
			<pubDate>Tue, 04 Sep 2012 20:29:00 GMT</pubDate>
			<author>donotreply@osnews.com (HangLoose)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?533848</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533848</guid>
			<description>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</description>
			<pubDate>Tue, 04 Sep 2012 20:53:00 GMT</pubDate>
			<author>donotreply@osnews.com (shmerl)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?533849</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533849</guid>
			<description>I guess it depends on your definition of traction.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.</description>
			<pubDate>Tue, 04 Sep 2012 20:55:00 GMT</pubDate>
			<author>donotreply@osnews.com (SlothNinja)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?533850</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533850</guid>
			<description><a href="http://go-lang.cat-v.org/organizations-using-go" rel="nofollow">http://go-lang.cat-v.org/organizations-using-go</a><br />
<br />
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.</description>
			<pubDate>Tue, 04 Sep 2012 20:58:00 GMT</pubDate>
			<author>donotreply@osnews.com (s-peter)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?533851</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533851</guid>
			<description>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.<br />
<br />
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.</description>
			<pubDate>Tue, 04 Sep 2012 20:58:00 GMT</pubDate>
			<author>donotreply@osnews.com (MOS6510)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?533853</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533853</guid>
			<description>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.<br />
<br />
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: <a href="http://www.reflection.uniovi.es/stadyn/" rel="nofollow">http://www.reflection.uniovi.es/stadyn/</a> This is great for combining the speed and robustness of static typing while making programming easier.<br />
<br />
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.<br />
<br />
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!).<br />
<br />
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).<br />
<br />
This is all just my opinion of course, since you did ask for opinions!</description>
			<pubDate>Tue, 04 Sep 2012 21:07:00 GMT</pubDate>
			<author>donotreply@osnews.com (flypig)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[2]: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?533855</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533855</guid>
			<description>D falls into that category but hasn't had much traction, it would seem.</description>
			<pubDate>Tue, 04 Sep 2012 21:17:00 GMT</pubDate>
			<author>donotreply@osnews.com (butters)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?533856</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533856</guid>
			<description>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 });<br />
<br />
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. <br />
<br />
Yeah, JavaScript is inferior to Lua in every possible way, but it's caught on, and it's here to stay.</description>
			<pubDate>Tue, 04 Sep 2012 21:39:00 GMT</pubDate>
			<author>donotreply@osnews.com (butters)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>Go seems alright...</title>
			<link>http://www.osnews.com/thread?533858</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533858</guid>
			<description>...I haven't looked at it since it was first released.  It wasn't easy to use on Windows at the time.<br />
 <br />
 I don't understand why Ada never took off, it had everything you find in the modern languages: tasks, low-level bit manipulation, OS assembly language interface, packages, OOP-like, even its own build dependency system.  And I just like it.Edited 2012-09-04 22:11 UTC</description>
			<pubDate>Tue, 04 Sep 2012 22:08:00 GMT</pubDate>
			<author>donotreply@osnews.com (Tuishimi)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?533859</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533859</guid>
			<description>Well, I've enjoyed a lot the &quot;tour of Go&quot; which I've taken in July, so here's my impression.<br />
 <br />
 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.<br />
 <br />
 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.<br />
 <br />
 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...<br />
 <br />
 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</description>
			<pubDate>Tue, 04 Sep 2012 22:28:00 GMT</pubDate>
			<author>donotreply@osnews.com (Neolander)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[2]: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?533860</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533860</guid>
			<description>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.)<br />
 <br />
 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</description>
			<pubDate>Tue, 04 Sep 2012 22:35:00 GMT</pubDate>
			<author>donotreply@osnews.com (satsujinka)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>...</title>
			<link>http://www.osnews.com/thread?533861</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533861</guid>
			<description>The need of new languages is due to modern technologies and patterns, 20 years ago the internet it wasn't the boom it is today, and there are two paths to take, modernize a 30 years old language or create a new one that takes in count all the new technologies.<br />
 <br />
 Go is a modern language that do this, it is designed for fast compilation and it is web aware, I believe it has a future.Edited 2012-09-04 22:47 UTC</description>
			<pubDate>Tue, 04 Sep 2012 22:47:00 GMT</pubDate>
			<author>donotreply@osnews.com (Hiev)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[3]: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?533862</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533862</guid>
			<description>I think Ruby syntax is neater, but Python is more widely used, even with the strange idea of using whitespace as scope delimiting.Edited 2012-09-04 23:03 UTC</description>
			<pubDate>Tue, 04 Sep 2012 23:02:00 GMT</pubDate>
			<author>donotreply@osnews.com (shmerl)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?533875</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533875</guid>
			<description>how much traction do you want?  if a bunch of companies are using it, isn't that enough?<br />
<br />
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</description>
			<pubDate>Wed, 05 Sep 2012 00:55:00 GMT</pubDate>
			<author>donotreply@osnews.com (Luminair)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Go seems alright...</title>
			<link>http://www.osnews.com/thread?533876</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533876</guid>
			<description>Maybe it has too many features, giving the impression of a closed, specialist ecosystem.<br />
<br />
Tools with smaller scope (e.g. C) are easier to wrap your head around and place in the context of your other tools (e.g., make).</description>
			<pubDate>Wed, 05 Sep 2012 01:41:00 GMT</pubDate>
			<author>donotreply@osnews.com (Hypnos)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Go seems alright...</title>
			<link>http://www.osnews.com/thread?533879</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533879</guid>
			<description><div class="cquote">...I haven't looked at it since it was first released.  It wasn't easy to use on Windows at the time.<br />
 <br />
 I don't understand why Ada never took off, it had everything you find in the modern languages: tasks, low-level bit manipulation, OS assembly language interface, packages, OOP-like, even its own build dependency system.  And I just like it. </div><br />
<br />
I bought the book for Ada 2005, and being the C++ fanboy I am, I seriously wish C++ adopted a whole bunch of Ada features. It seemed really strange with C++11 that there was all the hype about concepts that were ditched due to difficulty when Ada has a much more clean way to specify template requirements. Was it seriously that hard for the standards committee to look outside of C-like languages?<br />
<br />
The only thing that still puts me off Ada is it's OO implementation. I still can't get my head around the rules of elaboration or the rules for getting the [type].[method] syntax to work.</description>
			<pubDate>Wed, 05 Sep 2012 02:43:00 GMT</pubDate>
			<author>donotreply@osnews.com (kwan_e)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[3]: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?533894</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533894</guid>
			<description>I think D repeats the mistakes of C++ with its kitchen sink approach.</description>
			<pubDate>Wed, 05 Sep 2012 06:17:00 GMT</pubDate>
			<author>donotreply@osnews.com (YEPHENAS)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?533895</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533895</guid>
			<description>I do not see these languages/frameworks used less. And after a hype comes the plateau of productivity.</description>
			<pubDate>Wed, 05 Sep 2012 06:20:00 GMT</pubDate>
			<author>donotreply@osnews.com (YEPHENAS)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?533900</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533900</guid>
			<description><div class="cquote">What about the merits of individual languages and why they dont stick? </div><br />
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.<br />
<br />
My main languages are Python and C, and I think Go lands somewhere in-between with some nice built-in concurrency features.<br />
<br />
I've only played around with it sofar, here's a small rundown of likes / dislikes:<br />
<br />
<b>likes:</b><br />
fast compilation (as in <b>fast!</b>), simple clean build system<br />
clean language syntax<br />
interfaces!!<br />
goroutines, channels<br />
multiple return values, duck-typing, defer, composite literals<br />
data initialized to zero<br />
<br />
<b>dislikes:</b><br />
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.<br />
<br />
lack of a union type, started calling some c libraries using cgo only to notice that accessing union data required awkward and <b>slow</b> runtime reflection.<br />
<br />
no implicit type conversion (death of a thousand casts)<br />
<br />
non-optional garbage collection (however given Go's target domain of concurrent programming I can understand the rationale behind this choice)<br />
<br />
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?</description>
			<pubDate>Wed, 05 Sep 2012 06:49:00 GMT</pubDate>
			<author>donotreply@osnews.com (Valhalla)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[2]: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?533908</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533908</guid>
			<description>Some of the reasons for C++ success were:<br />
<br />
- C++ was also developed at AT&amp;T, like C and UNIX;<br />
- stronger type checking than C, while allowing to use most of the C code;<br />
- when it appeared it was the only language able to offer OOP constructs at an affordable execution speed on the available hardware.<br />
- most C compiler vendors started offering C++ compilers with toolkits for UI programming (TurboVision, OWL, MFC)<br />
- CORBA appeared in the enterprise<br />
- Some game studios decided to invest on it.</description>
			<pubDate>Wed, 05 Sep 2012 07:38:00 GMT</pubDate>
			<author>donotreply@osnews.com (moondevil)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>Please combine it with....</title>
			<link>http://www.osnews.com/thread?533911</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533911</guid>
			<description>Network programming in Go <a href="http://jan.newmarch.name/go/" rel="nofollow">http://jan.newmarch.name/go/</a><br />
<br />
and the google tour.</description>
			<pubDate>Wed, 05 Sep 2012 08:49:00 GMT</pubDate>
			<author>donotreply@osnews.com (fithisux)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>Ugh</title>
			<link>http://www.osnews.com/thread?533914</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533914</guid>
			<description>A language where source input formatting and indentifier casing affects the semantics is just pukeware. Like Python.Edited 2012-09-05 09:44 UTC</description>
			<pubDate>Wed, 05 Sep 2012 09:42:00 GMT</pubDate>
			<author>donotreply@osnews.com (peteo)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Ugh</title>
			<link>http://www.osnews.com/thread?533934</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533934</guid>
			<description><div class="cquote">A language where source input formatting and indentifier casing affects the semantics is just pukeware. Like Python. </div><br />
<br />
Why?</description>
			<pubDate>Wed, 05 Sep 2012 11:42:00 GMT</pubDate>
			<author>donotreply@osnews.com (Sodki)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Ugh</title>
			<link>http://www.osnews.com/thread?533935</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533935</guid>
			<description>Well, it looks like quite a large community of Python programmers totally disagree. But you must know better...</description>
			<pubDate>Wed, 05 Sep 2012 11:48:00 GMT</pubDate>
			<author>donotreply@osnews.com (Lobotomik)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[4]: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?533942</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533942</guid>
			<description>I thought so, too, until I started using it. Now I'm annoyed by the squiggly braces in those other languages.  :-D<br />
<br />
Ruby's loop syntax struck me as strange - but that's a personal issue. I was probably brain-damaged by years of FORTRAN until better languages came along...</description>
			<pubDate>Wed, 05 Sep 2012 12:38:00 GMT</pubDate>
			<author>donotreply@osnews.com (ricegf)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Go seems alright...</title>
			<link>http://www.osnews.com/thread?533943</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533943</guid>
			<description>I loved Ada, but it had the stigma of being government mandated.  Worse, when PC Ada compilers were first introduced, the government wouldn't let them use the name &quot;Ada&quot; because they weren't certified to the spec (because DOS was... well, DOS).<br />
<br />
Kiss of death.<br />
<br />
My favorite Ada anecdote was the government commission to determine what was needed to make Ada a commercial success. Their recommendation to congress was to EITHER (1) invest $15 million in establishing an Ada promotions board, OR (2) invest nothing, because less that $15 million would fail.<br />
<br />
Congress, inevitably, voted $10 million.<br />
<br />
And that, boys and girls, explains it all.  :-D</description>
			<pubDate>Wed, 05 Sep 2012 12:41:00 GMT</pubDate>
			<author>donotreply@osnews.com (ricegf)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[2]: Ugh</title>
			<link>http://www.osnews.com/thread?533954</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533954</guid>
			<description><div class="cquote">Well, it looks like quite a large community of Python programmers totally disagree. But you must know better... </div><br />
<br />
Well, did you know that the most, by far, requested change to the python language is to allow it to use curlybraces instead of indentation.<br />
<br />
Python3 also tries to fix some of the puke in Python2 so now there are two incompatible versions of Python.</description>
			<pubDate>Wed, 05 Sep 2012 14:00:00 GMT</pubDate>
			<author>donotreply@osnews.com (Slambert666)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Go seems alright...</title>
			<link>http://www.osnews.com/thread?533957</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533957</guid>
			<description><div class="cquote">I don't understand why Ada never took off </div><br />
<br />
1) At the beginning it wasn't very &quot;object oriented&quot; when the fashion for object-orientation was very strong<br />
<br />
2) The tools were quite expensive. The DOD should have funded GNAT, much, much earlier.</description>
			<pubDate>Wed, 05 Sep 2012 14:28:00 GMT</pubDate>
			<author>donotreply@osnews.com (renox)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[2]: Go seems alright...</title>
			<link>http://www.osnews.com/thread?533958</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533958</guid>
			<description>re: cost... true.  I had &quot;free access&quot; to an excellent compiler and even had the pleasure and privilege of working on a VMS component written in Ada.  I know the first iteration of Ada was not fully OOP (oop-like) but you could fudge it.  Ahhh... I think I still have my Booch book lying around somewhere.  <img src="/images/emo/smile.gif" alt=";)" /></description>
			<pubDate>Wed, 05 Sep 2012 14:53:00 GMT</pubDate>
			<author>donotreply@osnews.com (Tuishimi)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Ugh</title>
			<link>http://www.osnews.com/thread?533961</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533961</guid>
			<description>A couple years ago I contracted for an architectural engineering firm, and it stuck me that software is a shockingly undisciplined field compared to other engineering professions. Their work is based on industry-standard conventions. A design drawing or an equipment schedule always follows the same style and structure regardless of which firm produced it. In most other engineering fields, firms are legally and financially liable for design defects. <br />
<br />
Maybe software isn't ready for industry-wide standards. But is it too much to ask that code is consistent in style and structure across its language, that all Python code or all Go code looks the same no matter who wrote it? Our industry has to grow up. The modern world depends on software, and we're simply not meeting expectations.</description>
			<pubDate>Wed, 05 Sep 2012 15:21:00 GMT</pubDate>
			<author>donotreply@osnews.com (butters)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[2]: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?533970</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533970</guid>
			<description>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.)</description>
			<pubDate>Wed, 05 Sep 2012 18:20:00 GMT</pubDate>
			<author>donotreply@osnews.com (satsujinka)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>Actually, the dynamic languages are doing just fine.</title>
			<link>http://www.osnews.com/thread?533972</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533972</guid>
			<description>One obvious place to look is job postings.  For example, take a look at this six year graph from Indeed.Com showing relative job growth (and loss) for PHP, Python, Javascript, Java, and .NET.  Adding Ruby in just make the job growth curve for dynamic languages even more obvious.<br />
<br />
Note:  Sorry for the site not honoring the closing tags.  <br />
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.</description>
			<pubDate>Wed, 05 Sep 2012 18:26:00 GMT</pubDate>
			<author>donotreply@osnews.com (sgtrock)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>Cite?</title>
			<link>http://www.osnews.com/thread?533973</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533973</guid>
			<description>Show me the bug report.  Show me the continual discussions by all and sundry involved in development and use of Python.  It doesn't exist.<br />
<br />
The truth is, people who program in Python quickly learn the same lesson  Eric Raymond did in 2000: <br />
<br />
 Of course, this brought me face to face once again with Python's  pons asinorum,  the significance of whitespace. This time, however, I charged ahead and roughed out some code for a handful of sample GUI elements. Oddly enough, Python's use of whitespace stopped feeling unnatural after about twenty minutes. I just indented code, pretty much as I would have done in a C program anyway, and it worked.<br />
<br />
That was my first surprise. My second came a couple of hours into the project, when I noticed (allowing for pauses needed to look up new features in Programming Python) I was generating working code nearly as fast as I could type. When I realized this, I was quite startled. An important measure of effort in coding is the frequency with which you write something that doesn't actually match your mental representation of the problem, and have to backtrack on realizing that what you just typed won't actually tell the language to do what you're thinking. An important measure of good language design is how rapidly the percentage of missteps of this kind falls as you gain experience with the language.<br />
<br />
When you're writing working code nearly as fast as you can type and your misstep rate is near zero, it generally means you've achieved mastery of the language. But that didn't make sense, because it was still day one and I was regularly pausing to look up new language and library features! <br />
<br />
IOW, it's not the whitespace that's the issue, it's your refusal to recognize that you're indenting anyway.  You're giving up on a language long before you give it a chance for the wrong reason.  :-)</description>
			<pubDate>Wed, 05 Sep 2012 18:33:00 GMT</pubDate>
			<author>donotreply@osnews.com (sgtrock)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[2]: Ugh</title>
			<link>http://www.osnews.com/thread?533975</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533975</guid>
			<description>The problem is that the industry is still full of prima-donnas that think they are better than to follow standards.<br />
<br />
Plus while other engineering areas have mostly people with university degrees, in computing it is still possible in some countries to get in the industry without formal education.</description>
			<pubDate>Wed, 05 Sep 2012 18:56:00 GMT</pubDate>
			<author>donotreply@osnews.com (moondevil)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[3]: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?533976</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533976</guid>
			<description><div class="cquote">I mostly agree, however, I don't really feel it's performance is so poor as to be an issue. </div><br />
Well it was mainly that of me expecting near c-performance as that was a stated goal, however I also think the lack of (my expected) performance is primarily due to the lack of a mature gc and better optimized math functionality. Maybe I should do a tip build to see if there's been any substantial improvements of late.<br />
<br />
<div class="cquote">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.) </div><br />
Yes I can see it potentially causing problems for a memory safe language like Go, still it's really only a problem if you are using external code like c-libraries, if you code 100% in Go I presume you can efficiently design around a need for it.</description>
			<pubDate>Wed, 05 Sep 2012 19:14:00 GMT</pubDate>
			<author>donotreply@osnews.com (Valhalla)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[4]: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?533999</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533999</guid>
			<description>What do you mean? I think D2 is very interesting and solves the majority of C++Â´s problems.</description>
			<pubDate>Wed, 05 Sep 2012 23:07:00 GMT</pubDate>
			<author>donotreply@osnews.com (jgfenix)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[5]: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?534037</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?534037</guid>
			<description>Well, one of the main particularities of C++ is that it tries to integrate every programming language feature known to man in a huge bundle. As stated multiple times by Stourstrup on his website, this was done on purpose, so as not to enforce a particular coding standard upon developer. However, it causes several problems :<br />
<br />
-Teaching students about the whole language within a reasonable time frame is impossible. Even if it was possible, they would not remember it all anyway. Therefore, every C++ dev uses a unique subset of the languages' features, and may not be familiar with the subset of other devs even with years of coding experience behind him.<br />
<br />
-Compilers have a hard time keeping up with the flow of new features. This is especially apparent today with C++11, since features whose inclusion in the standard was decided almost a decade ago are still not properly supported by most commercial compilers.<br />
<br />
-Design effort is spread between all the features, thus there is little manpower available to polish individual features. Rough edges are frequent because of this, and fixed slowly if ever (think about all the intricacies of operator overloading, or how long it took for the language to gain fixed-size integer types).<br />
<br />
-Library compatibility with other languages is minimal unless people use a very small subset of the available features in them (essentially coding all interface code in C)<br />
<br />
<br />
D seems to follow the same path as C++ on this front. It individually adresses every gripe that people have with C++, but does not even attempt to do so in a clean and small package. Thus, if D got the popularity of C++, it would likely suffer as much issues in the long run. The fact that the language has already went through a first incompatible revision of the spec in its short existence is especially telling on this front.</description>
			<pubDate>Thu, 06 Sep 2012 06:12:00 GMT</pubDate>
			<author>donotreply@osnews.com (Neolander)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[6]: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?534046</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?534046</guid>
			<description>This complaint can also be addressed to Ada, Modula-3, Delphi, C#, Scala, Lisp, Haskell, ML...<br />
<br />
Programming is a complex subject and invariably all languages that start as a movement against complex languages, end up getting complex as people realize that the features the designers left out actually exist for a reason.<br />
<br />
The way Go throws out the window two decades of language research made me change from a initial contributor to the language, to a D/Rust fan.</description>
			<pubDate>Thu, 06 Sep 2012 07:02:00 GMT</pubDate>
			<author>donotreply@osnews.com (moondevil)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[7]: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?534077</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?534077</guid>
			<description><div class="cquote">This complaint can also be addressed to Ada, Modula-3, Delphi, C#, Scala, Lisp, Haskell, ML... </div><br />
<br />
Lisp? Seriously?<br />
<br />
What matters is the seriousness of this complaint: it is not black or white.. C++ is a monster, D is a bit better but it still is *very* complex..</description>
			<pubDate>Thu, 06 Sep 2012 11:37:00 GMT</pubDate>
			<author>donotreply@osnews.com (renox)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[8]: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?534090</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?534090</guid>
			<description><div class="cquote">"<i>This complaint can also be addressed to Ada, Modula-3, Delphi, C#, Scala, Lisp, Haskell, ML... </div><br />
 <br />
 Lisp? Seriously? </i>"<br />
 <br />
 While Lisp in itself is very simple, it can be used to express very complex architectures, specially when heavy use of macros is done.<br />
<br />
<div class="cquote">... C++ is a monster... </div><br />
<br />
I prefer to think that it is a language for people that known how to program.<br />
<br />
EDIT: TypoEdited 2012-09-06 14:08 UTC</description>
			<pubDate>Thu, 06 Sep 2012 14:05:00 GMT</pubDate>
			<author>donotreply@osnews.com (moondevil)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[9]: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?534098</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?534098</guid>
			<description><div class="cquote">"<i>[q]This complaint can also be addressed to Ada, Modula-3, Delphi, C#, Scala, Lisp, Haskell, ML... </div><br />
 <br />
 Lisp? Seriously? </i>"<br />
 <br />
 While Lisp in itself is very simple, it can be used to express very complex architectures, specially when heavy use of macros is done.<br />
 [/q]Yes, but that's not a language issue, so this is out of topic.<br />
<br />
<div class="cquote">"<i>... C++ is a monster... </div><br />
I prefer to think that it is a language for people that known how to program. </i>"Programmers using sane tool such as Ada or OCaml also know &quot;how to program&quot; but they're wise enough to avoid C++..</description>
			<pubDate>Thu, 06 Sep 2012 15:13:00 GMT</pubDate>
			<author>donotreply@osnews.com (renox)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[7]: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?534099</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?534099</guid>
			<description><div class="cquote">This complaint can also be addressed to Ada, Modula-3, Delphi, C#, Scala, Lisp, Haskell, ML... </div><br />
Considering that most of these have either fallen into disuse or been restricted to a niche these days, I am not sure how this large list is supposed to impress me.<br />
<br />
<div class="cquote">Programming is a complex subject and invariably all languages that start as a movement against complex languages, end up getting complex as people realize that the features the designers left out actually exist for a reason. </div><br />
Please correct me if I'm wrong, but you give me the impression that in your view, programming languages are mostly interchangeable, to the point their features might easily be enumerated in a standard way and compared using giant tables without further information.<br />
<br />
It seems to me that to the contrary, if you want to get the most out of a programming language, you need to stop blindly looking for familiar features from other languages which you already know, and instead learn through tutorials the idiomatic constructs that achieve the same goal in your new language. Here are some examples :<br />
<br />
-In C/++, arrays and pointers are closely related. To parse an array, most C devs take a pointer to the first element and increment it on every loop iteration with the ++ operator. Many other programming languages, on the other hand, won't have such a basic array implementation because it is a recipe for buffer overflow. Are they worse because they ask you to use either range-based fors or counter variables and square brackets ?<br />
<br />
-In C/++, parsing an array is typically done using for loops, complete with some iterator magic if you're using C++'s containers. In MATLAB, interpreter performance is not a priority for devs so for loops are horribly slow, however you have efficient built-ins for matrix manipulation and the idiomatic way to do most repetitive mathematic operations on some set of data is to express them as a matrix operation. Would you use for loops anyways ?<br />
<br />
-In C++, if you want a bunch of objects that share some common methods, say Save() and Load(), you make yourself some gigantic class hierarchy and put near the bottom of it some basic class that has Save() and Load() as pure virtual methods. In Go, you create an interface that has methods Save() and Load(), and use it as a generic way to designate any object that has these methods. Is the latter way of doing things somehow worse than the former, in spite of requiring much less design work ?<br />
<br />
<br />
If you follow this reasoning, you will find that it does not really matter if a given programming language has a specific feature X or Y. Feature parity is useful for beginners, because it means that they can reuse their knowledge from another language right away, but from the point of view of expert users, the only thing that matters is that the language should offer a way to achieve the same results with comparable efficiency. Only the end matters, not the means used to reach it.<br />
<br />
<div class="cquote">The way Go throws out the window two decades of language research made me change from a initial contributor to the language, to a D/Rust fan. </div><br />
How exactly does Go fail to take into account all these years of language research ? In which way is it more comparable to languages from 20 years ago than more modern languages ?</description>
			<pubDate>Thu, 06 Sep 2012 15:15:00 GMT</pubDate>
			<author>donotreply@osnews.com (Neolander)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[10]: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?534212</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?534212</guid>
			<description><div class="cquote">"<i>[q][q]This complaint can also be addressed to Ada, Modula-3, Delphi, C#, Scala, Lisp, Haskell, ML... </div><br />
 <br />
 Lisp? Seriously? </i>"<br />
 <br />
 While Lisp in itself is very simple, it can be used to express very complex architectures, specially when heavy use of macros is done.<br />
 [/q]Yes, but that's not a language issue, so this is out of topic. [/q]<br />
<br />
How come is this not a language issue, if you still making use of the same language?<br />
<br />
If you are doing cool meta-programming tricks with CLOS does it stop being Lisp just because a big part of CLOS is usually done with macros?<br />
<br />
<div class="cquote">"<i>[q]... C++ is a monster... </div><br />
I prefer to think that it is a language for people that known how to program. </i>"Programmers using sane tool such as Ada or OCaml also know &quot;how to program&quot; but they're wise enough to avoid C++.. [/q]<br />
<br />
If they can restrict themselves to aeronautics or financial market projects then yes, otherwise they are just loosing project opportunities.</description>
			<pubDate>Fri, 07 Sep 2012 07:36:00 GMT</pubDate>
			<author>donotreply@osnews.com (moondevil)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[8]: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?534213</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?534213</guid>
			<description><div class="cquote">"<i>This complaint can also be addressed to Ada, Modula-3, Delphi, C#, Scala, Lisp, Haskell, ML... </div><br />
Considering that most of these have either fallen into disuse or been restricted to a niche these days, I am not sure how this large list is supposed to impress me. </i>"<br />
<br />
Some of those languages failed in the market due to the way their owners/designers tried to promote them, not because of lack of technical merits.<br />
<br />
<br />
<div class="cquote">"<i>Programming is a complex subject and invariably all languages that start as a movement against complex languages, end up getting complex as people realize that the features the designers left out actually exist for a reason. </div><br />
Please correct me if I'm wrong, but you give me the impression that in your view, programming languages are mostly interchangeable, to the point their features might easily be enumerated in a standard way and compared using giant tables without further information. </i>"<br />
<br />
To a certain extent yes.<br />
<br />
In proper software engineering you should learn about algorithms, data structures and ways to organize code (OO, FP, Logical, ...).<br />
<br />
Then you need to have a broad set of programming languages background that enables you for a given project, using all requirements as input, to choose the best set of languages/libraries/operating systems to solve the real problem the customer has.<br />
<br />
Getting to know every detail of a specific tool leads to useless specialization.<br />
<br />
I would rather leave my plumbing repairs to a plumber that knows how to get the job done, than to one that knows every detail of the special wrench XTY.<br />
<br />
<div class="cquote">The way Go throws out the window two decades of language research made me change from a initial contributor to the language, to a D/Rust fan. </div><br />
How exactly does Go fail to take into account all these years of language research ? In which way is it more comparable to languages from 20 years ago than more modern languages ? [/q]<br />
<br />
Actually Go is even worse than that if we take in consideration that languages like Turbo Pascal or Ada are older than 20 years, and already have richer data structures available.<br />
<br />
Go lacks:<br />
<br />
- exceptions;<br />
- enumerations;<br />
- generic types;<br />
- direct use of OS APIs, without the need of writing wrappers;<br />
- currently only static compilation is available;<br />
- due to static compilation only model, there are issues with 3rd party code;<br />
- no support for meta-programming;<br />
- rich set of available libraries;<br />
- the PR about go routines and channels, usually forgets to mention that similar features do exist as libraries for other languages<br />
<br />
Go is just a re-branded Limbo (Plan9) with ADT data type exchanged by interfaces.<br />
<br />
I bet that if it wasn't being developed at Google, almost no one would care for it. All their Go PR talks is about showing web applications that can be equality easily done in any available mainstream language.<br />
<br />
Try to find one that is not about doing REST APIs, or front-ends with Ajax calls. <br />
<br />
Anyone with a proper compiler design curriculum in their CS degree can easily find languages/libraries that offer similar features.<br />
<br />
Most people at Lambda the Ultimate seem to agree with this, <a href="http://lambda-the-ultimate.org/node/4554" rel="nofollow">http://lambda-the-ultimate.org/node/4554</a></description>
			<pubDate>Fri, 07 Sep 2012 07:53:00 GMT</pubDate>
			<author>donotreply@osnews.com (moondevil)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[9]: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?534217</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?534217</guid>
			<description>Lambda the Ultimate seems pretty evenly split to me...<br />
<br />
It occurs to me that you miss the entire point of Go. It was never about having all of the features, it was always about choosing features that compliment each other and work well together (while achieving most functionality.) It doesn't matter if other languages provide a feature Go does, what matters is if it's as easy to use (and it usually isn't.)<br />
<br />
You'll probably disagree, but static linking is a good thing. There really isn't any benefit to dynamic linking these days (well, there really never was.)</description>
			<pubDate>Fri, 07 Sep 2012 08:26:00 GMT</pubDate>
			<author>donotreply@osnews.com (satsujinka)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[11]: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?534219</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?534219</guid>
			<description>Macros aren't really very complicated though (even if you can do complicated things with them.) Lisp is a &quot;simple&quot; language because it uses just 1 form (s-expressions.)</description>
			<pubDate>Fri, 07 Sep 2012 08:44:00 GMT</pubDate>
			<author>donotreply@osnews.com (satsujinka)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[9]: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?534240</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?534240</guid>
			<description><div class="cquote">&quot;Please correct me if I'm wrong, but you give me the impression that in your view, programming languages are mostly interchangeable, to the point their features might easily be enumerated in a standard way and compared using giant tables without further information.&quot;<br />
 <br />
 To a certain extent yes.<br />
 <br />
 In proper software engineering you should learn about algorithms, data structures and ways to organize code (OO, FP, Logical, ...).<br />
 <br />
 Then you need to have a broad set of programming languages background that enables you for a given project, using all requirements as input, to choose the best set of languages/libraries/operating systems to solve the real problem the customer has.<br />
 <br />
 Getting to know every detail of a specific tool leads to useless specialization.<br />
 <br />
 I would rather leave my plumbing repairs to a plumber that knows how to get the job done, than to one that knows every detail of the special wrench XTY. </div><br />
 I think that we are each defending extreme sides of what is in reality a compromise there.<br />
 <br />
 I don't think that devs should necessarily know &quot;every detail&quot; about their programming language either, but some level of specialization seems still necessary if you want to make proper use of your specific tool.<br />
 <br />
 In your plumber example, if my plumber had bought one of these fancy keys with a free-wheeling functionality, I would expect him to know how to use it, and not spend a few minutes randomly flinging it around or parsing the manual while trying to find the switch that toggles fastening mode and loosening mode. I agree, however, that he doesn't need to know the specific procedure required to clean and grease it in order to do that job.<br />
 <br />
 Can we agree on that ?<br />
 <br />
 <div class="cquote">Actually Go is even worse than that if we take in consideration that languages like Turbo Pascal or Ada are older than 20 years, and already have richer data structures available. <br />
 <br />
 Go lacks:<br />
 <br />
 - exceptions; </div><br />
 Wrong (see panic/recover)<br />
 <br />
 <div class="cquote">- enumerations; </div><br />
 Wrong (see iota)<br />
 <br />
 <div class="cquote">- generic types; </div><br />
 Although the specific feature is not there, Go provides generics-like features through interfaces. The language FAQ states that they will add some if someone can clearly point out why they are needed and how they are worth the complexity cost : <a href="http://golang.org/doc/go_faq.html#generics" rel="nofollow">http://golang.org/doc/go_faq.html#generics</a><br />
 <br />
 <div class="cquote">- direct use of OS APIs, without the need of writing wrappers; </div><br />
 That's cheating, OS APIs will always look fugly in any language but the one in which these APIs have been written (see Windows API in Delphi back in the day, yuck !)<br />
 <br />
 <div class="cquote">- currently only static compilation is available; </div><br />
 Same in C/++ to the best of my knowledge, and that never prevented them from being largely successful. Dynamic compilation is only useful in some specific use cases, such as when the code is supposed to run on heterogenous architectures and cannot be easily recompiled after development.<br />
 <br />
 <div class="cquote">- due to static compilation only model, there are issues with 3rd party code; </div><br />
 Such as ?<br />
 <br />
 <div class="cquote">- no support for meta-programming; </div><br />
 See comment on generic types above.<br />
 <br />
 <div class="cquote">- rich set of available libraries; </div><br />
 There's already quite a bit of packages available for such a young language, if you ask me, and the use of a standard package manager makes it easier to deal with third-party libraries than in, say, C.<br />
 <br />
 <div class="cquote">- the PR about go routines and channels, usually forgets to mention that similar features do exist as libraries for other languages </div><br />
 They exist elsewhere indeed, go simply acknowledges their importance in today's programming landscape and thus propose a standard, well-integrated, less cumbersome way to use them.<br />
 <br />
 It's as if you said that C++ is a garbage-collected language because there are C++ libs that implement garbage collection. Sure, C++ *can* be garbage-collected, but it is not a standard part of the language, students do not learn it, those who learn it as part of their work will often separately use gazillions of different, incompatible libraries... And I guess you see where I'm going from there.<br />
 <br />
 <div class="cquote">Go is just a re-branded Limbo (Plan9) with ADT data type exchanged by interfaces. </div><br />
 I don't know much about Limbo, but if it was a fine language recycling ideas from it sounds sensible. No need to reinvent the wheel every time.<br />
 <br />
 <div class="cquote">I bet that if it wasn't being developed at Google, almost no one would care for it. All their Go PR talks is about showing web applications that can be equality easily done in any available mainstream language.<br />
 <br />
 Try to find one that is not about doing REST APIs, or front-ends with Ajax calls. </div><br />
 I am not interested in Google's PR, only in Go as a publicly documented programming language that sounds interesting and happens to have gained a bit of traction, so I won't discuss that part.<br />
 <br />
 <div class="cquote">Anyone with a proper compiler design curriculum in their CS degree can easily find languages/libraries that offer similar features. </div><br />
 Such as ? (Genuine question)<br />
 <br />
 <div class="cquote">Most people at Lambda the Ultimate seem to agree with this, <a href="http://lambda-the-ultimate.org/node/4554" rel="nofollow">http://lambda-the-ultimate.org/node/4554</a> </div><br />
 It seems to me that if you scroll down a bit, the debate is a bit more balanced than you seem to imply.Edited 2012-09-07 10:56 UTC</description>
			<pubDate>Fri, 07 Sep 2012 10:56:00 GMT</pubDate>
			<author>donotreply@osnews.com (Neolander)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[12]: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?534241</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?534241</guid>
			<description><div class="cquote">Lisp is a &quot;simple&quot; language because it uses just 1 form (s-expressions.) </div><br />
<br />
True, but to make use of those expressions the first term needs to do something.<br />
<br />
What those terms do and what side-effects they have on your code is explained in 432 pages of the ANSI Common Lisp standard. Does not sound that simple to me.</description>
			<pubDate>Fri, 07 Sep 2012 10:59:00 GMT</pubDate>
			<author>donotreply@osnews.com (moondevil)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[10]: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?534245</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?534245</guid>
			<description><div class="cquote">In your plumber example, if my plumber had bought one of these fancy keys with a free-wheeling functionality, I would expect him to know how to use it, and not spend a few minutes randomly flinging it around or parsing the manual while trying to find the switch that toggles fastening mode and loosening mode. I agree, however, that he doesn't need to know the specific procedure required to clean and grease it in order to do that job.<br />
 <br />
 Can we agree on that ?<br />
 </div><br />
<br />
Yes.<br />
<br />
<div class="cquote">"<i><br />
 Go lacks:<br />
<br />
 - exceptions; </div><br />
 Wrong (see panic/recover)<br />
 </i>"<br />
<br />
Panic/recover usually lead to very ugly code similar to setjmp/longjmp and resemble poor man's exceptions.<br />
<br />
<div class="cquote"><br />
 "<i>- enumerations; </div><br />
 Wrong (see iota)<br />
 </i>"<br />
<br />
Wrong, with iota you are not able to offer what real enumerations mean.<br />
<br />
Strong type assignment between enumerations, conversion to string, parse string to enumeration, cycle between enumeration values, compile exceptions when not all cases are referred in switch/case statements.<br />
<br />
<div class="cquote"><br />
 "<i>- generic types; </div><br />
 Although the specific feature is not there, Go provides generics-like features through interfaces. The language FAQ states that they will add some if someone can clearly point out why they are needed and how they are worth the complexity cost : <a href="http://golang.org/doc/go_faq.html#generics" rel="nofollow">http://golang.org/doc/go_faq.html#generics</a> </i>"<br />
<br />
Generics-like features through interfaces don't work for primitive types. Plus you get performance hit when casting everywhere.<br />
 <br />
<div class="cquote"><br />
 "<i>- direct use of OS APIs, without the need of writing wrappers; </div><br />
 That's cheating, OS APIs will always look fugly in any language but the one in which these APIs have been written (see Windows API in Delphi back in the day, yuck !) </i>"<br />
<br />
Taking Delphi as example, you are able to bind directly to the OS API, while in Go you need to write a wrapper using the CGO tool, which requires a C compiler to compile the generated wrapper.<br />
 <br />
<div class="cquote"><br />
 "<i>- currently only static compilation is available; </div><br />
 Same in C/++ to the best of my knowledge, and that never prevented them from being largely successful. Dynamic compilation is only useful in some specific use cases, such as when the code is supposed to run on heterogenous architectures and cannot be easily recompiled after development. </i>"<br />
<br />
All commercial C++ compilers offer dynamic compilation as well. I was using it with Turbo C++ 3.1 back in 1996.<br />
 <br />
<div class="cquote"><br />
 "<i>- due to static compilation only model, there are issues with 3rd party code; </div><br />
 Such as ? </i>"<br />
<br />
You cannot make use of LGPL libraries.<br />
 <br />
<div class="cquote"><br />
 "<i>- no support for meta-programming; </div><br />
 See comment on generic types above.<br />
 </i>"<br />
<br />
How does this apply to meta-programming?<br />
<br />
<div class="cquote"> <br />
 "<i>- rich set of available libraries; </div><br />
 There's already quite a bit of packages available for such a young language, if you ask me, and the use of a standard package manager makes it easier to deal with third-party libraries than in, say, C. </i>"<br />
<br />
Sure, but why should I try to convince our customers to allow us to use Go over the plethora of options we have already available today?<br />
<br />
<div class="cquote"> <br />
 "<i>- the PR about go routines and channels, usually forgets to mention that similar features do exist as libraries for other languages </div><br />
 They exist elsewhere indeed, go simply acknowledges their importance in today's programming landscape and thus propose a standard, well-integrated, less cumbersome way to use them.<br />
 <br />
 It's as if you said that C++ is a garbage-collected language because there are C++ libs that implement garbage collection. Sure, C++ *can* be garbage-collected, but it is not a standard part of the language, students do not learn it, those who learn it as part of their work will often separately use gazillions of different, incompatible libraries... And I guess you see where I'm going from there. </i>"<br />
<br />
Bad example. C++11 has a garbage collection API for compiler vendors to implement their own GC.<br />
<br />
A proper GC might be part of C++17 standard.<br />
<br />
<div class="cquote"> <br />
 "<i>Go is just a re-branded Limbo (Plan9) with ADT data type exchanged by interfaces. </div><br />
 I don't know much about Limbo, but if it was a fine language recycling ideas from it sounds sensible. No need to reinvent the wheel every time. </i>"<br />
<br />
May be, on the other hand, it looks like the authors are not willing to learn anything else and do not assume the world has moved on.<br />
 <br />
<div class="cquote"> <br />
 "<i>Anyone with a proper compiler design curriculum in their CS degree can easily find languages/libraries that offer similar features. </div><br />
 Such as ? (Genuine question) </i>"<br />
<br />
- Modules (available since Modula-2)<br />
- goroutines (Tasks, Actors, Fibers, Asynch)<br />
- Channels (Events, Actors, Queues)<br />
- Interfaces (Protocols, Structural Typing, Dynamic Types)</description>
			<pubDate>Fri, 07 Sep 2012 11:21:00 GMT</pubDate>
			<author>donotreply@osnews.com (moondevil)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[11]: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?534295</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?534295</guid>
			<description><div class="cquote">Panic/recover usually lead to very ugly code similar to setjmp/longjmp and resemble poor man's exceptions. </div><br />
I can't tell, since ugly is a subjective concept and in my own view, exceptions overall are an ugly solution to the error management problem. But can you explain more clearly what kind of &quot;clean&quot; exception-based code you would not be able to efficiently implement in Go ?<br />
<br />
<div class="cquote">[W]ith iota you are not able to offer what real enumerations mean.<br />
<br />
Strong type assignment between enumerations, </div><br />
The following Go code defines a strongly typed enumeration of type &quot;Type1&quot; :<br />
<br />
type Type1 int<br />
<br />
const (<br />
    First1 Type1 = iota<br />
    Second1<br />
    Last1<br />
)<br />
<br />
<div class="cquote">conversion to string, parse string to enumeration </div><br />
In which situation would you use those features outside of a debugging context, considering how they leak implementation details in program I/O ?<br />
<br />
<div class="cquote">cycle between enumeration values </div><br />
How is this different from a for loop ?<br />
<br />
<div class="cquote">compile exceptions when not all cases are referred in switch/case statements. </div><br />
Are default statements considered as a reference to all cases which are not explicitly referred to when this feature is enabled ?<br />
<br />
If not, this feature basically breaks them as soon as it is enabled. If yes, it fails to meet its apparent goal of helping devs update their code when new elements are added in an enum.<br />
<br />
<div class="cquote">&quot;Although the specific feature is not there, Go provides generics-like features through interfaces. The language FAQ states that they will add some if someone can clearly point out why they are needed and how they are worth the complexity cost : <a href="http://golang.org/doc/go_faq.html#generics" rel="nofollow">http://golang.org/doc/go_faq.html#generics</a><br />
&quot;<br />
<br />
Generics-like features through interfaces don't work for primitive types. Plus you get performance hit when casting everywhere. </div><br />
Few languages, if any, will let you mess with primitive types. Languages with operator overloading do let you go the other way around and have custom types behave loosely like primitive ones, but that's generally a bad idea unless your custom types *do* happen to offer similar functionality as primitive ones (ex : float vectors vs float numbers)<br />
<br />
As for the performance cost of interfaces, I don't see why it should be much different from that of templating, considering that the internal mechanism is very similar (resolve references to the interface function at compile time, just like you'd do with references to the unknown type in templates).<br />
 <br />
<div class="cquote">Taking Delphi as example, you are able to bind directly to the OS API, while in Go you need to write a wrapper using the CGO tool, which requires a C compiler to compile the generated wrapper. </div><br />
You make it sound like Object Pascal and C code link by magic when brought close to each other. The Borland guys rather took some time to create headers for C libraries and functions to convert idiomatic Pascal types to encapsulated C types, then document the whole mess. Which is pretty much a wrapper. As I said, writing one seems inevitable when two unrelated languages have to communicate with each other.<br />
<br />
<div class="cquote">&quot;Same in C/++ to the best of my knowledge, and that never prevented them from being largely successful. Dynamic compilation is only useful in some specific use cases, such as when the code is supposed to run on heterogenous architectures and cannot be easily recompiled after development. &quot;<br />
<br />
All commercial C++ compilers offer dynamic compilation as well. I was using it with Turbo C++ 3.1 back in 1996. </div><br />
Alright, my mistake.<br />
<br />
<div class="cquote">[D]ue to static compilation only model, [...] [y]ou cannot make use of LGPL libraries. </div><br />
Well, it's more like you cannot make use of them in a proprietary package as you have to contribute your source back. But I see you point.<br />
<br />
<div class="cquote">&quot;See comment on generic types above.&quot;<br />
<br />
How does this apply to meta-programming? </div><br />
Sorry, I just made the C++ dev mistake of equating generics and metaprogramming. Well, aside from genericity through interfaces, Go also provides some support for reflection in the reflect package, which you might want to take a look at : <a href="http://golang.org/pkg/reflect" rel="nofollow">http://golang.org/pkg/reflect</a><br />
<br />
<div class="cquote">&quot;There's already quite a bit of packages available for such a young language, if you ask me, and the use of a standard package manager makes it easier to deal with third-party libraries than in, say, C.&quot;<br />
<br />
Sure, but why should I try to convince our customers to allow us to use Go over the plethora of options we have already available today? </div><br />
To have the benefits and drawbacks of static languages in a more modern package than C++, with still a fair amount of popular libraries at hand.<br />
<br />
By more modern, I mean that like other recent languages, Go learns from common C/++ dev mistakes and prevents them, with safe pointers and arrays, a &quot;defer&quot; keyword for resource release, modules rather than duplicated prototypes in headers, range-based fors, message passing for inter-thread communication... <br />
<br />
However, unlike other modern languages, Go does not fully jail developers into what is considered safe behaviors. As an example, facilities for arbitrary pointer manipulation, required for low-level work, are provided, only put aside with a big warning next to them.<br />
<br />
Go designers also spent quite a bit of effort into designing a language that is easy to teach and enforces common coding practices among its users. Including by keeping the feature set small. For companies, this means that less work is necessary to make Go devs work together. Bloated and universally hated &quot;coding standard&quot; documents that will only be read under the threat of a code audit should not be required nearly as much as in other languages.<br />
<br />
Finally, although this last one is perhaps a bit subjective, I think that Go also helps producing more maintainable code in the long run. The syntax goes through great lengths to remove visual clutter, it's easier for one dev to get familiar with another dev's code, and lots of features are designed to survive code and language evolution (defer, interfaces, shorthand assignment without an explicit type statement...).<br />
<br />
<div class="cquote">&quot;[Features similar to goroutines and channels] exist elsewhere indeed, go simply acknowledges their importance in today's programming landscape and thus propose a standard, well-integrated, less cumbersome way to use them.<br />
 <br />
 It's as if you said that C++ is a garbage-collected language because there are C++ libs that implement garbage collection. Sure, C++ *can* be garbage-collected, but it is not a standard part of the language, students do not learn it, those who learn it as part of their work will often separately use gazillions of different, incompatible libraries... And I guess you see where I'm going from there.&quot;<br />
<br />
Bad example. C++11 has a garbage collection API for compiler vendors to implement their own GC.<br />
<br />
A proper GC might be part of C++17 standard. </div><br />
C++17 ? More like C++25 if the standard team works on it in the same way as with C++11. Anyway, I don't want to discuss language merits based on speculation on future language revisions, otherwise I might as well speculate that Go will support dynamic linking in 10 years.<br />
<br />
<div class="cquote">&quot;I don't know much about Limbo, but if it was a fine language recycling ideas from it sounds sensible. No need to reinvent the wheel every time.&quot;<br />
<br />
May be, on the other hand, it looks like the authors are not willing to learn anything else and do not assume the world has moved on. </div><br />
Why ?<br />
<br />
<div class="cquote">&quot;<br />
 &quot;Anyone with a proper compiler design curriculum in their CS degree can easily find languages/libraries that offer similar features.&quot;<br />
 Such as ? (Genuine question)&quot;<br />
<br />
- Modules (available since Modula-2)<br />
- goroutines (Tasks, Actors, Fibers, Asynch)<br />
- Channels (Events, Actors, Queues)<br />
- Interfaces (Protocols, Structural Typing, Dynamic Types) </div><br />
Oh, right. I did not mean to claim that Go's features, taken separately, are necessarily new or revolutionary (although some might). But can you think of a language that presents a similar feature set ?</description>
			<pubDate>Fri, 07 Sep 2012 19:29:00 GMT</pubDate>
			<author>donotreply@osnews.com (Neolander)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[13]: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?534300</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?534300</guid>
			<description>It's nice that the standard is that long, but irrelevant. A great deal of that standard (if it's anything like Scheme's) deals with implementation details, which are mostly irrelevant to programming (at least until you get to the optimization stage.)<br />
<br />
The fact of the matter is that Lisp's form makes it simple, to use and understand. Regardless of how large the standard document is.<br />
<br />
Of course, as you might gather, I'm more of into Scheme than Common Lisp. Which also more truly embodies the &quot;simple&quot; description.</description>
			<pubDate>Fri, 07 Sep 2012 20:20:00 GMT</pubDate>
			<author>donotreply@osnews.com (satsujinka)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[12]: Are these languages going to get any traction? Ever?</title>
			<link>http://www.osnews.com/thread?534429</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?534429</guid>
			<description><div class="cquote">"<i>Panic/recover usually lead to very ugly code similar to setjmp/longjmp and resemble poor man's exceptions. </div><br />
I can't tell, since ugly is a subjective concept and in my own view, exceptions overall are an ugly solution to the error management problem. But can you explain more clearly what kind of &quot;clean&quot; exception-based code you would not be able to efficiently implement in Go ? </i>"<br />
<br />
Exception handling code allows central control of error codes, instead of error handling scattered around everywhere on your code.<br />
<br />
panic/recover makes the control flow very confusing, as it is shown by the attempts to wrap them in functions, which are often in gonuts discussed.<br />
<br />
<div class="cquote"><br />
"<i>[W]ith iota you are not able to offer what real enumerations mean.<br />
<br />
Strong type assignment between enumerations, </div><br />
The following Go code defines a strongly typed enumeration of type &quot;Type1&quot; :<br />
<br />
type Type1 int<br />
<br />
const (<br />
    First1 Type1 = iota<br />
    Second1<br />
    Last1<br />
)<br />
 </i>"<br />
<br />
var myvar Type1 = Type1(12334) // what is the enumeration value of myvar?<br />
<br />
<div class="cquote"><br />
"<i>conversion to string, parse string to enumeration </div><br />
In which situation would you use those features outside of a debugging context, considering how they leak implementation details in program I/O ? </i>"<br />
<br />
Why should I implement functionality other languages provide in the runtime, even ones which have systems programming as main goal?<br />
<br />
<div class="cquote"><br />
"<i>cycle between enumeration values </div><br />
How is this different from a for loop ? </i>"<br />
<br />
How do you use a for loop with enumerations which don't use an integral base type, or that don't map to sequential integral values?<br />
<br />
Even with integral base types, what are the first and last values, specially if I change the enumeration?<br />
<br />
<div class="cquote"><br />
"<i>Generics-like features through interfaces don't work for primitive types. Plus you get performance hit when casting everywhere. </div><br />
Few languages, if any, will let you mess with primitive types. </i>"<br />
<br />
You mean besides:<br />
<br />
- Modula-3<br />
- Eiffel<br />
- Ada<br />
- C++<br />
- D<br />
- Delphi<br />
- ML<br />
- Template Haskell<br />
- Ocamlp4<br />
- .NET<br />
<br />
<div class="cquote"><br />
As for the performance cost of interfaces, I don't see why it should be much different from that of templating, </div><br />
<br />
Type casting costs performace, check gonuts mailing list for such discussions. Plus lack of generics makes Go feel like 1994, when C++ compiler vendors were offering code generation tools, because their template code was still flaky.<br />
<br />
<div class="cquote"> <br />
"<i>Taking Delphi as example, you are able to bind directly to the OS API, while in Go you need to write a wrapper using the CGO tool, which requires a C compiler to compile the generated wrapper. </div><br />
You make it sound like Object Pascal and C code link by magic when brought close to each other. </i>"<br />
<br />
You did no get my point. With Delphi you just need something like,<br />
<br />
<i>procedure my_syscall; external; library 'lib.dll';</i><br />
<br />
With Go, you need a C compiler to compile the CGO generated code, that is also able to use Go's calling conventions.<br />
<br />
<div class="cquote">By more modern, I mean that like other recent languages, Go learns from common C/++ dev mistakes and prevents them, with safe pointers and arrays, a &quot;defer&quot; keyword for resource release, modules rather than duplicated prototypes in headers, range-based fors, message passing for inter-thread communication... <br />
<br />
However, unlike other modern languages, Go does not fully jail developers into what is considered safe behaviors. As an example, facilities for arbitrary pointer manipulation, required for low-level work, are provided, only put aside with a big warning next to them. </div><br />
<br />
There are more languages in town. I can get that with Ada, Delphi, C#, just to name a few of many possible options.</description>
			<pubDate>Sun, 09 Sep 2012 11:21:00 GMT</pubDate>
			<author>donotreply@osnews.com (moondevil)</author>
			<category>Comments</category>
		</item>
	</channel>
</rss>
