In our study of program design, we have seen that expert programmers control the complexity of their designs with the same general techniques used by designers of all complex systems. They combine primitive elements to form compound objects, they abstract compound objects to form higher-level building blocks, and they preserve modularity by adopting appropriate large-scale views of system structure. In illustrating these techniques, we have used Lisp as a language for describing processes and for constructing computational data objects and processes to model complex phenomena in the real world. However, as we confront increasingly complex problems, we will find that Lisp, or indeed any fixed programming language, is not sufficient for our needs. We must constantly turn to new languages in order to express our ideas more effectively. Establishing new languages is a powerful strategy for controlling complexity in engineering design; we can often enhance our ability to deal with a complex problem by adopting a new language that enables us to describe (and hence to think about) the problem in a different way, using primitives, means of combination, and means of abstraction that are particularly well suited to the problem at hand.
* first the language design is beautiful and by itself worth to look
at (at least for my personal taste)..
* it can potencially substitute (the hackish, acidentally designed,
and all in the heap) javascript in the browser with nice language
idioms for bigger client software (its where oop is good at)
from "technical" point of view:
the Dart -> JS compiler backend is borrowed from GWT .. so you have a
state-of-the-art javascript source-to-source translator (PHP being a
server only solution)
the Dart VM is created by the same people who created the V8 , so the
VM backend compiles directly to native code.. (and its very
optimized.. since it came from V8).. also note that PHP is bad at
this (VM´s with very low performance, and the language design dont
help)
The language is created with more machine-awareness.. so it will beat
V8 performance very soon(in javascript you end allocating to much in
the heap.. because its more a runtime language), and the language can
have the same(and even better) performance as now state-of-the-art
java.. that can be said by looking at language and VM design ..
non-technical:
you have to two well-know and experienced language and VM designers
genius on the team.. (with V8 team helping)
its supported by a wealthy company, so it can advance without
community support..
you should be aware that pop stuff its not synonym of good stuff..
for a good example look what facebook has ended doing because of theyr
php code base..
the madness called hiphop.. a PHP to C++ translator.. so im sure they
regreat a lot about they technological initial path (that was
timid(php + mysql)) and now they have to stick to it..
* first the language design is beautiful and by itself worth to look
at (at least for my personal taste)..
* it can potencially substitute (the hackish, acidentally designed,
and all in the heap) javascript in the browser with nice language
idioms for bigger client software (its where oop is good at)