<?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: Stop creating new languages</title>
	<atom:link href="http://brianwill.net/blog/2009/08/30/stop-creating-new-languages/feed/" rel="self" type="application/rss+xml" />
	<link>http://brianwill.net/blog/2009/08/30/stop-creating-new-languages/</link>
	<description></description>
	<lastBuildDate>Sun, 08 Apr 2012 22:34:05 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>By: Nicholas Harris</title>
		<link>http://brianwill.net/blog/2009/08/30/stop-creating-new-languages/comment-page-1/#comment-4015</link>
		<dc:creator>Nicholas Harris</dc:creator>
		<pubDate>Sun, 06 Sep 2009 14:18:58 +0000</pubDate>
		<guid isPermaLink="false">http://brianwill.net/blog/?p=844#comment-4015</guid>
		<description>New languages should be privately tested by their creators by applying them to the task of building whole applications, user interfaces or operating systems. If this resultant software proves to be a success (user-centred, rapidly-developed, efficient and robust) then the language-author can &quot;come out of hiding&quot; and tell the world what weird and wonderful homebrew language they used to make it all a resounding success without fear of ridicule.

Just creating a freeware game with your new language as a proof of concept may be sufficient to convince others of its utility. You would at least attract potential &quot;modders&quot; who would be prepared to learn your language in order to script new AI behaviours, etc.

I say this because I have been working on an entirely new language for very many years, struggling to find the exact ingredients to &quot;bake the perfect cake&quot;. My fear being that I will need some feature or programming paradigm in the future and curse the tools at my disposal for not supporting those semantics - something that would be made all the more infuriating by having the knowledge that I was in the ideal position to avoid all of these problems if I had only anticipated them in the design at the outset. That said, I also wanted to keep my language &quot;small&quot; in the sense that it could be described by a thin manual as I felt that there were many &#039;full featured&#039; languages out there already that just seemed to have musty annexes that one didn&#039;t come into regular enough contact with to retain a degree of mastery and which, as a result, forced you back into reading a huge reference manual.

I don&#039;t want to sound negative as I quite understand the desire to tell people who may be &quot;in a position to understand what you are on about&quot; what you have been able to achieve. I know no one who I can talk about the specific details of what I have been working on and have, eventually, come to accept this. In fact, if I were to find that someone wanted to really know I wouldn&#039;t tell them because I would not want them to steal my ideas and implement something similar to my work long before I got around to doing it (as I am quite a slow worker). I also want my ideas to be taken as a package, rather than &quot;cherry-picked&quot; as it is how they all fit together that makes it significant.

Anyway, best of luck with Animus. I can say that designing a language makes for an extremely diverting intellectual pursuit - even if there is no money at the end of it...</description>
		<content:encoded><![CDATA[<p>New languages should be privately tested by their creators by applying them to the task of building whole applications, user interfaces or operating systems. If this resultant software proves to be a success (user-centred, rapidly-developed, efficient and robust) then the language-author can &#8220;come out of hiding&#8221; and tell the world what weird and wonderful homebrew language they used to make it all a resounding success without fear of ridicule.</p>
<p>Just creating a freeware game with your new language as a proof of concept may be sufficient to convince others of its utility. You would at least attract potential &#8220;modders&#8221; who would be prepared to learn your language in order to script new AI behaviours, etc.</p>
<p>I say this because I have been working on an entirely new language for very many years, struggling to find the exact ingredients to &#8220;bake the perfect cake&#8221;. My fear being that I will need some feature or programming paradigm in the future and curse the tools at my disposal for not supporting those semantics &#8211; something that would be made all the more infuriating by having the knowledge that I was in the ideal position to avoid all of these problems if I had only anticipated them in the design at the outset. That said, I also wanted to keep my language &#8220;small&#8221; in the sense that it could be described by a thin manual as I felt that there were many &#8216;full featured&#8217; languages out there already that just seemed to have musty annexes that one didn&#8217;t come into regular enough contact with to retain a degree of mastery and which, as a result, forced you back into reading a huge reference manual.</p>
<p>I don&#8217;t want to sound negative as I quite understand the desire to tell people who may be &#8220;in a position to understand what you are on about&#8221; what you have been able to achieve. I know no one who I can talk about the specific details of what I have been working on and have, eventually, come to accept this. In fact, if I were to find that someone wanted to really know I wouldn&#8217;t tell them because I would not want them to steal my ideas and implement something similar to my work long before I got around to doing it (as I am quite a slow worker). I also want my ideas to be taken as a package, rather than &#8220;cherry-picked&#8221; as it is how they all fit together that makes it significant.</p>
<p>Anyway, best of luck with Animus. I can say that designing a language makes for an extremely diverting intellectual pursuit &#8211; even if there is no money at the end of it&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian Will</title>
		<link>http://brianwill.net/blog/2009/08/30/stop-creating-new-languages/comment-page-1/#comment-4011</link>
		<dc:creator>Brian Will</dc:creator>
		<pubDate>Wed, 02 Sep 2009 00:53:46 +0000</pubDate>
		<guid isPermaLink="false">http://brianwill.net/blog/?p=844#comment-4011</guid>
		<description>&gt; The reason it doesn’t make sense to embed Haskell in Lisp is that it is statically typed

I don&#039;t think you understand the idea. C is static and native compiled too, of course, but an in-memory representation of C code in Lisp can be compiled out to object code. The Lisp layer becomes just syntax and a build system, effectively.

Languages with their own runtime are a bit trickier. If you wanted, say, to write Python in Animus but target CPython, Animus somehow has to get its hooks into running and managing CPython. Or say you&#039;re writing Javascript in Animus but targeting the browser: there&#039;s no way to do it, really, except to generate actual Javascript source (like GWT, I suppose). In any of these scenarios, you&#039;re bridging over &quot;legacy&quot; layers, which is never ideal. The idea, though, is that we would eventually ditch these intermediate layers. But in the mean time, I admit, things would be a bit messy.</description>
		<content:encoded><![CDATA[<p>> The reason it doesn’t make sense to embed Haskell in Lisp is that it is statically typed</p>
<p>I don&#8217;t think you understand the idea. C is static and native compiled too, of course, but an in-memory representation of C code in Lisp can be compiled out to object code. The Lisp layer becomes just syntax and a build system, effectively.</p>
<p>Languages with their own runtime are a bit trickier. If you wanted, say, to write Python in Animus but target CPython, Animus somehow has to get its hooks into running and managing CPython. Or say you&#8217;re writing Javascript in Animus but targeting the browser: there&#8217;s no way to do it, really, except to generate actual Javascript source (like GWT, I suppose). In any of these scenarios, you&#8217;re bridging over &#8220;legacy&#8221; layers, which is never ideal. The idea, though, is that we would eventually ditch these intermediate layers. But in the mean time, I admit, things would be a bit messy.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Don Stewart</title>
		<link>http://brianwill.net/blog/2009/08/30/stop-creating-new-languages/comment-page-1/#comment-4010</link>
		<dc:creator>Don Stewart</dc:creator>
		<pubDate>Tue, 01 Sep 2009 07:00:04 +0000</pubDate>
		<guid isPermaLink="false">http://brianwill.net/blog/?p=844#comment-4010</guid>
		<description>&gt; If there’s something worthy in Haskell’s semantic model, it’s obscured under a mess of syntax

That&#039;s a very superficial analysis.

The reason it doesn&#039;t make sense to embed Haskell in Lisp is that it is
statically typed, so we can use that to optimize it extremely
aggressively before compiling to native code. It undergoes full type
erasure statically, resulting in a significant performance benefit over
runtime dynamic typing, a la Lisp.

    http://shootout.alioth.debian.org/u64q/benchmark.php?test=all&amp;lang=all

i.e. 1 - 5x faster

Finally, the worthy semantics of note is referential transparency by
default, making parallelisation trivial. Something that&#039;s not going to
happen in Lisp anytime soon.</description>
		<content:encoded><![CDATA[<p>&gt; If there’s something worthy in Haskell’s semantic model, it’s obscured under a mess of syntax</p>
<p>That&#8217;s a very superficial analysis.</p>
<p>The reason it doesn&#8217;t make sense to embed Haskell in Lisp is that it is<br />
statically typed, so we can use that to optimize it extremely<br />
aggressively before compiling to native code. It undergoes full type<br />
erasure statically, resulting in a significant performance benefit over<br />
runtime dynamic typing, a la Lisp.</p>
<p>    <a href="http://shootout.alioth.debian.org/u64q/benchmark.php?test=all&#038;lang=all" rel="nofollow">http://shootout.alioth.debian.org/u64q/benchmark.php?test=all&#038;lang=all</a></p>
<p>i.e. 1 &#8211; 5x faster</p>
<p>Finally, the worthy semantics of note is referential transparency by<br />
default, making parallelisation trivial. Something that&#8217;s not going to<br />
happen in Lisp anytime soon.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

