<?xml version="1.0" encoding="UTF-8" ?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc=" http://purl.org/dc/elements/1.1/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>briancarper.net (λ) (Tag: Go)</title><link>http://briancarper.net/tag/32/go</link><description>Some guy's blog about programming and Linux and cows.</description><item><title>I'm turning into a Lisp snob</title><link>http://briancarper.net/blog/im-turning-into-a-lisp-snob</link><guid>http://briancarper.net/blog/im-turning-into-a-lisp-snob</guid><pubDate>Fri, 13 Nov 2009 22:38:50 -0800</pubDate><description>&lt;p&gt;Reddit and StackOverflow and other websites I frequent are filled to the brim with discussion of &lt;a href=&quot;http://golang.org/&quot;&gt;Google's Go&lt;/a&gt;. The code snippet on the front page is:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;package main

import &quot;fmt&quot;

func main() {
  fmt.Printf(&quot;Hello, 世界\n&quot;)
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;First thoughts that ran through my head as I looked over the site:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ugh, look at all that syntax.&lt;/li&gt;
&lt;li&gt;Nice(r) type system (than C++ and Java).  I'll stick with multimethods though.&lt;/li&gt;
&lt;li&gt;Concurrency semantics, hmmm...  Shared mutable memory between threads?  I think I'll stick with Clojure for now thanks.&lt;/li&gt;
&lt;li&gt;Where are the macros?&lt;/li&gt;
&lt;li&gt;It has anonymous functions and closures and sort-of &lt;a href=&quot;http://groups.google.com/group/golang-nuts/browse_thread/thread/74a37a9923cdf327&quot;&gt;first-class functions&lt;/a&gt;?  Good.  Welcome to the 1960's.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;len&lt;/code&gt; is a special operator?  Sigh.  (Programming language quality is usually inversely proportional to the number of special forms.)&lt;/li&gt;
&lt;li&gt;Cool that they used Japanese in the example though.  (That word is &lt;em&gt;sekai&lt;/em&gt;, &quot;world&quot;, obviously.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Compared to a Lisp, this language looks indistinguishable to C, Perl, Python, Java etc.  It looks like such a small incremental improvement (if it even is an improvement).  Yet another imperative, for-loop-wielding, curly-brace-using, pointer-mangling, state-mutating, OOP language.&lt;/p&gt;

&lt;p&gt;In fact via Reddit today I read &lt;a href=&quot;http://lua-users.org/lists/lua-l/2009-11/msg00576.html&quot;&gt;this awesome post to a mailing list&lt;/a&gt; which compares Go with ALGOL68, and it gave me a would-you-look-at-that moment.  Once you learn a few languages that are significantly different from ALGOL derivatives, all ALGOLish languages start to look eerily similar.  Are we really stuck with ALGOL-derived languages being the only viable mainstream languages for all time?  How much polish can we possibly apply to the same turd?&lt;/p&gt;

&lt;p&gt;Then I realized, I'm turning into a Lisp snob.  : (  Learning a Lisp apparently does spoil you for the rest of time.  I am without a basis to judge whether this language will be a successful replacement of anything.  All I know is I probably won't use it.  Honestly I'm much more excited about &lt;a href=&quot;http://groups.google.com/group/clojure/browse_thread/thread/a59165f208f594cb&quot;&gt;new things on the horizon in Clojure&lt;/a&gt;.  And I still have getting better at Haskell on my TODO list.&lt;/p&gt;</description></item></channel></rss>

