<?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:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>
	Comments on: A Language for the Next 10 Years	</title>
	<atom:link href="https://programmingzen.com/next-programming-language/feed/" rel="self" type="application/rss+xml" />
	<link>https://programmingzen.com/next-programming-language/</link>
	<description>Meditations on programming, startups, and technology</description>
	<lastBuildDate>Fri, 01 May 2020 23:18:31 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>
		By: Developing with Elixir/OTP Course Review &#124; Programming Zen		</title>
		<link>https://programmingzen.com/next-programming-language/#comment-29912</link>

		<dc:creator><![CDATA[Developing with Elixir/OTP Course Review &#124; Programming Zen]]></dc:creator>
		<pubDate>Fri, 01 May 2020 23:18:31 +0000</pubDate>
		<guid isPermaLink="false">http://programmingzen.com/?p=1679#comment-29912</guid>

					<description><![CDATA[[&#8230;] language is Elixir. I&#8217;ve been using it on and off for a few years now. I first talked about it back in 2016 and even managed to convince my team at IBM to adopt it to an extent. It&#8217;s [&#8230;]]]></description>
			<content:encoded><![CDATA[<p>[&#8230;] language is Elixir. I&#8217;ve been using it on and off for a few years now. I first talked about it back in 2016 and even managed to convince my team at IBM to adopt it to an extent. It&#8217;s [&#8230;]</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Meower68		</title>
		<link>https://programmingzen.com/next-programming-language/#comment-29228</link>

		<dc:creator><![CDATA[Meower68]]></dc:creator>
		<pubDate>Sat, 25 Feb 2017 01:45:34 +0000</pubDate>
		<guid isPermaLink="false">http://programmingzen.com/?p=1679#comment-29228</guid>

					<description><![CDATA[Are you familiar with Paul Graham? And this essay?

http://paulgraham.com/hundred.html

It&#039;s many years old.  And it&#039;s a bit more &quot;meta&quot; than your article.  But the languages you describe as being &quot;interesting&quot; are, so frequently, cross-pollinated from multiple other languages.  And that&#039;s one of the points he makes.

To each his own.  I actually like Perl and Groovy (I tend to think of Groovy as Perl for the JVM) and I enjoy Scheme implementations, if for no other reason than the sheer density of how much functionality you can implement in 100 (or 1,000) lines of code.  I&#039;ve written tools which parse hundreds of megabytes of logfiles, distill useful information from them and output them to a CSV I can open in Excel and peruse.  The tool was &#060; 300 lines of Perl (that&#039;s after you trim out all the extra whitespace and comments; as you, yourself, point out in another of your articles, sometimes that &#034;next programmer&#034; is you).

I don&#039;t mind the syntax of Lisp / Scheme because I recognize that all compilers / interpreters turn your source code into an Abstract Syntax Tree and Lisp is just a serialized, text-based AST; it&#039;s trivially easy to convert between the two.  Once you start thinking in terms of ASTs, your mindset WRT how programming SHOULD BE completely alters.  Think of it as safe, legal LSD for programmers; that kind of mind-altering, and not in a bad way.  I wouldn&#039;t be surprised if the Next Programming Language is one where you create a graphical AST on your tablet, bypassing the text-based input entirely.  We all know that tablets really aren&#039;t so good for text input.  If you can eliminate the need to input text and convert the text to an AST before it&#039;s interpreted / compiled ....]]></description>
			<content:encoded><![CDATA[<p>Are you familiar with Paul Graham? And this essay?</p>
<p><a href="http://paulgraham.com/hundred.html" rel="nofollow ugc">http://paulgraham.com/hundred.html</a></p>
<p>It&#8217;s many years old.  And it&#8217;s a bit more &#8220;meta&#8221; than your article.  But the languages you describe as being &#8220;interesting&#8221; are, so frequently, cross-pollinated from multiple other languages.  And that&#8217;s one of the points he makes.</p>
<p>To each his own.  I actually like Perl and Groovy (I tend to think of Groovy as Perl for the JVM) and I enjoy Scheme implementations, if for no other reason than the sheer density of how much functionality you can implement in 100 (or 1,000) lines of code.  I&#8217;ve written tools which parse hundreds of megabytes of logfiles, distill useful information from them and output them to a CSV I can open in Excel and peruse.  The tool was &lt; 300 lines of Perl (that&#039;s after you trim out all the extra whitespace and comments; as you, yourself, point out in another of your articles, sometimes that &quot;next programmer&quot; is you).</p>
<p>I don&#039;t mind the syntax of Lisp / Scheme because I recognize that all compilers / interpreters turn your source code into an Abstract Syntax Tree and Lisp is just a serialized, text-based AST; it&#039;s trivially easy to convert between the two.  Once you start thinking in terms of ASTs, your mindset WRT how programming SHOULD BE completely alters.  Think of it as safe, legal LSD for programmers; that kind of mind-altering, and not in a bad way.  I wouldn&#039;t be surprised if the Next Programming Language is one where you create a graphical AST on your tablet, bypassing the text-based input entirely.  We all know that tablets really aren&#039;t so good for text input.  If you can eliminate the need to input text and convert the text to an AST before it&#039;s interpreted / compiled &#8230;.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Antonio Cangiano		</title>
		<link>https://programmingzen.com/next-programming-language/#comment-29160</link>

		<dc:creator><![CDATA[Antonio Cangiano]]></dc:creator>
		<pubDate>Wed, 29 Jun 2016 04:14:24 +0000</pubDate>
		<guid isPermaLink="false">http://programmingzen.com/?p=1679#comment-29160</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://programmingzen.com/next-programming-language/#comment-29155&quot;&gt;Adrian Salceanu&lt;/a&gt;.

Thanks for sharing, Adrian.

I entirely agree with you. For heavy processing, I think it&#039;s worth keeping an eye on the following languages:

* Crystal
* Rust
* Julia
* Pony
* Nim
* C# or F# on .NET Core
* Scala (JVM and all)]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://programmingzen.com/next-programming-language/#comment-29155">Adrian Salceanu</a>.</p>
<p>Thanks for sharing, Adrian.</p>
<p>I entirely agree with you. For heavy processing, I think it&#8217;s worth keeping an eye on the following languages:</p>
<p>* Crystal<br />
* Rust<br />
* Julia<br />
* Pony<br />
* Nim<br />
* C# or F# on .NET Core<br />
* Scala (JVM and all)</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Antonio Cangiano		</title>
		<link>https://programmingzen.com/next-programming-language/#comment-29157</link>

		<dc:creator><![CDATA[Antonio Cangiano]]></dc:creator>
		<pubDate>Tue, 21 Jun 2016 06:16:23 +0000</pubDate>
		<guid isPermaLink="false">http://programmingzen.com/?p=1679#comment-29157</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://programmingzen.com/next-programming-language/#comment-29156&quot;&gt;Charles Nutter&lt;/a&gt;.

JRuby is a worthwhile effort. Thank you for mentioning it.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://programmingzen.com/next-programming-language/#comment-29156">Charles Nutter</a>.</p>
<p>JRuby is a worthwhile effort. Thank you for mentioning it.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Charles Nutter		</title>
		<link>https://programmingzen.com/next-programming-language/#comment-29156</link>

		<dc:creator><![CDATA[Charles Nutter]]></dc:creator>
		<pubDate>Mon, 20 Jun 2016 16:00:01 +0000</pubDate>
		<guid isPermaLink="false">http://programmingzen.com/?p=1679#comment-29156</guid>

					<description><![CDATA[Not even a mention of how JRuby is parallel, has far better GCs and VMs available to, or how it is often many times faster than &quot;Ruby&quot; (by which you only mean CRuby/MRI)? It doesn&#039;t seem you&#039;re presenting all the facts here.

JRuby is in use by hundreds of companies from Visa to Comcast to the BBC, running loads that CRuby could probably never scale up to. We&#039;ve had users halve or quarter their AWS costs by moving to JRuby. And with the JRuby 9000 series, we have our own optimizing compiler and we are working with Oracle on a next gen runtime based on the Graal JIT.

Elixir is a very nice language and I&#039;m sure it will see success... but what you present here as &quot;Ruby&quot; only covers one runtime: a runtime with no JIT, limited GC, and non-parallel execution. Posts like this turn people away from Ruby for the wrong reasons, reasons we are actively addressing in JRuby.

And besides...you KNOW JRuby...I&#039;m surprised you&#039;d completely ignore it in this post :-)]]></description>
			<content:encoded><![CDATA[<p>Not even a mention of how JRuby is parallel, has far better GCs and VMs available to, or how it is often many times faster than &#8220;Ruby&#8221; (by which you only mean CRuby/MRI)? It doesn&#8217;t seem you&#8217;re presenting all the facts here.</p>
<p>JRuby is in use by hundreds of companies from Visa to Comcast to the BBC, running loads that CRuby could probably never scale up to. We&#8217;ve had users halve or quarter their AWS costs by moving to JRuby. And with the JRuby 9000 series, we have our own optimizing compiler and we are working with Oracle on a next gen runtime based on the Graal JIT.</p>
<p>Elixir is a very nice language and I&#8217;m sure it will see success&#8230; but what you present here as &#8220;Ruby&#8221; only covers one runtime: a runtime with no JIT, limited GC, and non-parallel execution. Posts like this turn people away from Ruby for the wrong reasons, reasons we are actively addressing in JRuby.</p>
<p>And besides&#8230;you KNOW JRuby&#8230;I&#8217;m surprised you&#8217;d completely ignore it in this post 🙂</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Adrian Salceanu		</title>
		<link>https://programmingzen.com/next-programming-language/#comment-29155</link>

		<dc:creator><![CDATA[Adrian Salceanu]]></dc:creator>
		<pubDate>Sun, 19 Jun 2016 07:52:39 +0000</pubDate>
		<guid isPermaLink="false">http://programmingzen.com/?p=1679#comment-29155</guid>

					<description><![CDATA[We&#039;ve had the same issue with elixir / erlang. It&#039;s great in terms of syntax (especially if you come from ruby) and it&#039;s great for messaging - but it&#039;s not great for general computing. And it&#039;s especially not suited for background long-running processing tasks. 

I love the language and wanted to adopt it at work. We needed to import some medium sized xml feeds (think 50 MB, nothing crazy). 

The import script written in elixir was using parallel processing and it was pretty good - better than single threaded Go. But when we added parallel computing to Go, that killed it. 

We ended up adopting Go though I don&#039;t like it. Personally I&#039;ve &quot;adopted&quot; Julia which seems to be promising for both data crunching, general computing (long running background tasks) and parallel computing.]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve had the same issue with elixir / erlang. It&#8217;s great in terms of syntax (especially if you come from ruby) and it&#8217;s great for messaging &#8211; but it&#8217;s not great for general computing. And it&#8217;s especially not suited for background long-running processing tasks. </p>
<p>I love the language and wanted to adopt it at work. We needed to import some medium sized xml feeds (think 50 MB, nothing crazy). </p>
<p>The import script written in elixir was using parallel processing and it was pretty good &#8211; better than single threaded Go. But when we added parallel computing to Go, that killed it. </p>
<p>We ended up adopting Go though I don&#8217;t like it. Personally I&#8217;ve &#8220;adopted&#8221; Julia which seems to be promising for both data crunching, general computing (long running background tasks) and parallel computing.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Robert Herman		</title>
		<link>https://programmingzen.com/next-programming-language/#comment-29154</link>

		<dc:creator><![CDATA[Robert Herman]]></dc:creator>
		<pubDate>Wed, 15 Jun 2016 09:43:18 +0000</pubDate>
		<guid isPermaLink="false">http://programmingzen.com/?p=1679#comment-29154</guid>

					<description><![CDATA[You didn&#039;t mention LFE (Lisp Flavored Erlang). It&#039;s written by Robert Virding one of Erlang&#039;s creators, and it has real macros ;)

I like Elixr, and Jens is right, unless you are taking advantage of the BEAM/OTP, it is slow. Elixir is certainly Rubyesque, but the tooling is great too.

I am keeping a sideways eye on Pony lang. It&#039;s actor-based, OO, but supposed to be real fast, and doesn&#039;t use a poison pill to kill all actors.]]></description>
			<content:encoded><![CDATA[<p>You didn&#8217;t mention LFE (Lisp Flavored Erlang). It&#8217;s written by Robert Virding one of Erlang&#8217;s creators, and it has real macros 😉</p>
<p>I like Elixr, and Jens is right, unless you are taking advantage of the BEAM/OTP, it is slow. Elixir is certainly Rubyesque, but the tooling is great too.</p>
<p>I am keeping a sideways eye on Pony lang. It&#8217;s actor-based, OO, but supposed to be real fast, and doesn&#8217;t use a poison pill to kill all actors.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Correction		</title>
		<link>https://programmingzen.com/next-programming-language/#comment-29153</link>

		<dc:creator><![CDATA[Correction]]></dc:creator>
		<pubDate>Wed, 15 Jun 2016 08:26:41 +0000</pubDate>
		<guid isPermaLink="false">http://programmingzen.com/?p=1679#comment-29153</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://programmingzen.com/next-programming-language/#comment-29150&quot;&gt;David Myddleton&lt;/a&gt;.

You really don&#039;t need them. Erlang has lists where other languages have arrays because the latter are unbelievably useless in a language where your primary means of retrieving data is pattern matching.

In addition to this, arrays encourage a lot of imperative approaches which make life very difficult for you on the BEAM, which is already a huge problem for people coming into that ecosystem from Ruby.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://programmingzen.com/next-programming-language/#comment-29150">David Myddleton</a>.</p>
<p>You really don&#8217;t need them. Erlang has lists where other languages have arrays because the latter are unbelievably useless in a language where your primary means of retrieving data is pattern matching.</p>
<p>In addition to this, arrays encourage a lot of imperative approaches which make life very difficult for you on the BEAM, which is already a huge problem for people coming into that ecosystem from Ruby.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Antonio Cangiano		</title>
		<link>https://programmingzen.com/next-programming-language/#comment-29152</link>

		<dc:creator><![CDATA[Antonio Cangiano]]></dc:creator>
		<pubDate>Wed, 15 Jun 2016 07:21:27 +0000</pubDate>
		<guid isPermaLink="false">http://programmingzen.com/?p=1679#comment-29152</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://programmingzen.com/next-programming-language/#comment-29151&quot;&gt;Jens Alfke&lt;/a&gt;.

Thank you for your insightful comment, Jens. I entirely agree that Erlang is not the right tool for every problem.

There are much better solutions for, say, number crunching. However, I believe that for the use case I specify in the article (distributed systems, web programming), Erlang-based solutions are a very solid option.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://programmingzen.com/next-programming-language/#comment-29151">Jens Alfke</a>.</p>
<p>Thank you for your insightful comment, Jens. I entirely agree that Erlang is not the right tool for every problem.</p>
<p>There are much better solutions for, say, number crunching. However, I believe that for the use case I specify in the article (distributed systems, web programming), Erlang-based solutions are a very solid option.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jens Alfke		</title>
		<link>https://programmingzen.com/next-programming-language/#comment-29151</link>

		<dc:creator><![CDATA[Jens Alfke]]></dc:creator>
		<pubDate>Wed, 15 Jun 2016 06:58:02 +0000</pubDate>
		<guid isPermaLink="false">http://programmingzen.com/?p=1679#comment-29151</guid>

					<description><![CDATA[The Erlang/BEAM virtual machine has some nice qualities, but it&#039;s slow. It is (unless it&#039;s been drastically redesigned since 2011) a pure interpreter that doesn&#039;t employ JIT or AOT translation -- it&#039;s at the same level as the earliest JVM from 1995.

I spent much of 2011 porting CouchDB to iOS, and then trying in vain to get it to run at acceptable speed on an iPhone, before giving up. (It took 5 seconds just to initialize; a deal breaker for mobile apps.) Others at Couchbase (Dustin Sallings, Damien Katz) tried to get CouchDB&#039;s storage engine to keep up with memcached, and ended up rewriting the engine in C, which is what&#039;s in Couchbase Server.

I suspect people think Erlang is fast because it&#039;s so parallelizable -- just throw more cores or more CPUs at problems. But not every problem can be defeated that way, either because the algorithms aren&#039;t parallel or because you&#039;re restricted to hardware with a limited number of cores (and memory bus bandwidth.)]]></description>
			<content:encoded><![CDATA[<p>The Erlang/BEAM virtual machine has some nice qualities, but it&#8217;s slow. It is (unless it&#8217;s been drastically redesigned since 2011) a pure interpreter that doesn&#8217;t employ JIT or AOT translation &#8212; it&#8217;s at the same level as the earliest JVM from 1995.</p>
<p>I spent much of 2011 porting CouchDB to iOS, and then trying in vain to get it to run at acceptable speed on an iPhone, before giving up. (It took 5 seconds just to initialize; a deal breaker for mobile apps.) Others at Couchbase (Dustin Sallings, Damien Katz) tried to get CouchDB&#8217;s storage engine to keep up with memcached, and ended up rewriting the engine in C, which is what&#8217;s in Couchbase Server.</p>
<p>I suspect people think Erlang is fast because it&#8217;s so parallelizable &#8212; just throw more cores or more CPUs at problems. But not every problem can be defeated that way, either because the algorithms aren&#8217;t parallel or because you&#8217;re restricted to hardware with a limited number of cores (and memory bus bandwidth.)</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
