On Saturday, 28 April 2012 at 20:35:40 UTC, SomeDude wrote:
On Saturday, 28 April 2012 at 20:09:50 UTC, q66 wrote:
On Saturday, 28 April 2012 at 20:05:30 UTC, SomeDude wrote:
There are minimalistic languages that don't add too much
complexity, instead it results in code being kept simple.
I appreciate minimalistic languages. I love the simplicity of
Scheme and the design of Lua. Lua and Python are extensible
language, but truth be told, they cannot handle large scale
programming. In fact, I don't know of any minimalistic language
that can scale from hundreds of thousands to millions of lines
of code. When you reach these sizes, their simple design
becomes a drawback. You start missing lots of features. When
you reach large scale programming, you want really powerful
tools.
That's basically what the Java designers discovered after
experience. The original language was simple and easy, but that
simplicity translated into way too much boilerplate code. So
they kept adding features from version to version, generics,
then annotations, a means to create new keywords. And now they
would like to add delegates. These are all needed in large
programs.
D needs to do something it does really well and concentrate on
that. Otherwise the language will remain being rather vague
and doing "a bit of everything, but nothing truly well".
It does a lot of things well already. Our point of comparison
should not be Python or Lua, it must be C, C++, C#, Haskell,
Ocaml, i.e languages that are designed to develop large systems.
But most of all it needs to stabilize and polish, not change
all the time. I think its feature set is very good already.
We are far from having explored all its possibilities.
Instead of adding more and more features into a rigid
language, it needs to be made more flexible and extensible,
both syntactically and semantically.
This kind of attitude "we need big fat bullshit like Java and
heavy use of OO and idioms and EH and all that other crap" is
broken and false. And you have no way to prove that Python for
example wouldn't scale for large projects; its main fault is that
the default implementation is rather slow, but it's not pretty
much missing anything required for a large project.