Rich Hickey's slides from jvm lang summit - worth a read?

language_fan foo at bar.com.invalid
Sat Sep 26 02:17:30 PDT 2009


Fri, 25 Sep 2009 20:17:12 -0400, bearophile thusly wrote:

> Rich Hickey:
> 
>>No, I don't. The post is for Clojure users and shows them a relative
>>comparison they care about, persistent vs transient.< Unless that code
>>is returning a persistent vector and provides thread isolation, it is
>>not doing the same job.<
> 
> Sorry, I didn't mean to offend you in any way. Sometimes I am not gentle
> enough. I am sorry.
> 
> You are right that my comparison with D was wrong because the semantics
> of that Clojure code and data structures is richer.
> 
> On the other hand a comparison with a simpler/basic implementation (like
> just a C array) can be quite useful anyway, to know how much you have to
> pay for such useful extra semantics.
> 
> I have seen several online benchmarks of many languages, Clojure too.
> Often they show only numbers for a single language. In such situations a
> comparison with other languages is useful to put numbers in perspective.
> So a comparison with (for example) a baseline C program is useful
> (hopefully with the same semantics, where possible). For Clojure a
> comparison with Java can be equally useful.

Often the geniuses behind the best languages are not interested in 
implementing everything themselves, instead they focus on building a 
framework for others to build on and specifying the semantics of the 
language. The skill for designing a good language is a gift, and not 
everyone has it. On the other hand, if you hand out instructions, even 
uneducated novice coders from the 3rd world's high schools can implement 
the best compiler in the world. So fact that the language is fast and can 
be made faster (if not optimally fast) with more effort, often suffices.

This is similar to gotos and higher order functions / dynamic dispatch. 
The low level language designers focus on optimizing the goto statement 
on all possible architectures using the fastest sse4 instructions. 
However, their language does not scale to 500+ LOC programs because it is 
totally unreadable. Each time they manage to cut off yet another 12 ns 
from an inner loop, they post the news to reddit and praise their savior 
who never listens to their ideas. The higher level language designers 
focus on designing new language theory and complex control and data 
structures that make the language more usable in the future.



More information about the Digitalmars-d mailing list