On 3/4/2014 9:00 PM, bearophile wrote:
Nick Sabalausky:

But, I admit, I have wondered if a language could aid the
creation/usage of entity systems with some special language features.

I have seen that a good way to learn lazyness and purity is to try to
write some Haskell code. Then you can use the same ideas in other
languages, like D. Similarly I've studied regular expressions in dynamic
languages, and now I am able to use them in Java, C#, D, etc.

So I've seen that it's good to learn a feature/style in a language that
uses it a lot, or even in a language designed around such feature.
Because languages shape your mind, and specialized languages train your
mind to use few specific features. Later in real-world situations often
you can't use such specialized/esoteric/rare language, and you have to
use a common language as Java. And sometimes if people use a feature a
lot in other languages, eventually it gets ported even to the common
languages (like lambdas in Java).

So even if you can't or you don't want to use a new language to use
entity systems, training your mind a bit thinking in a new language
designed for it could help use it in a common language, or could even
suggest you few features to add to a more general purpose language as D.

Wouter van Oortmerssen shows very well that designing many small
specialized languages helps you sharpen your mind and later you apply
those ideas to more general situations:
http://strlen.com/language-design-overview


Yea, all good points. I'm reminded of one of my favorite quotes from Joel Spolsky:

"I have never met anyone who can do Scheme, Haskell, and C pointers who can't pick up Java in two days, and create better Java code than people with five years of experience in Java, but try explaining that to the average HR drone."
  - http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html

Reply via email to