Walter:

> http://urbanhonking.com/ideasfordozens/2011/01/18/what-makes-a-programming-language-good/

It's a cute blog post. It suggests that it will be good to:

Getting Code:
1) Have a central repository for D modules that is easy to use for both 
submitters and users.
- D code in such repository must Just Work.
- I must stress that having a shared community-wide style to write D code helps 
a lot when you want to use in your program modules written by other people. 
Otherwise your program looks like a patchwork of wildly different styles.
- D language must be designed to help writing code that works well both on 32 
and 64 bit systems, helping to avoid the traps listed here:
http://www.viva64.com/en/a/0065/
- Path-related problems must be minimized.
- Probably D the package system needs to be improved. Some Java people are even 
talking about introducing means to create superpackages. Some module system 
theory from ML-like languages may help here.

Figuring Out Code:
- D compiler has to improve its error messages a lot. Error messages need to 
become polished and sharp. Linker errors are bad, they need to be avoided where 
possible (this means the compiler catches some errors before they become linker 
errors). C# compiler also gives a standard error number for each error, that 
allows to read about the error and its causes and solutions.

Writing Code:
- Interactive Console: it will be good to have sometime like this built in the 
D distribution.


>From the article:
>Further, while I know there are people who like IDEs, for me they serve to 
>cripple the exploratory play of coding so that itÂ’s about as fun as filling 
>out tax forms.<

In this regard I think D has to take two things into account:
- People today like to use modern IDEs. So the core of the language too needs 
be designed to work well with IDEs. Currently D doesn't look much designed to 
be IDE-friendly.
- On the other hand I see it a failure if the language requires a complex IDE 
to write code. I am able to write complex Python programs with no IDE, this 
means that Python is well designed.

One more thing: from a recent discussion with Walter about software 
engineering, it seems that computer languages are both a design tool and 
engineering building material. Python is better than D for exploratory 
programming (http://en.wikipedia.org/wiki/Exploratory_programming ), or even to 
invent new algorithms and to explore new software ideas. D is probably better 
than Python to build larger software engineering systems. Lately Python has 
added several features to improve its "programming in the large" skills 
(decorators, Abstract Base Classes, optional annotations, etc), likewise I 
think D will enjoy some little handy features that help both exploratory 
programming and "programming in the small", like tuple unpacking syntax 
(http://d.puremagic.com/issues/show_bug.cgi?id=4579 ). There are features like 
named arguments 
(http://en.wikipedia.org/wiki/Parameter_%28computer_programming%29#Named_parameters
 ) that are useful for both little and large programs, named arguments ar!
 e one of the things I'd like in D still.

Bye,
bearophile

Reply via email to