What Makes A Programming Language Good

Vladimir Panteleev vladimir at thecybershadow.net
Tue Jan 18 02:56:32 PST 2011


On Tue, 18 Jan 2011 12:10:25 +0200, bearophile <bearophileHUGS at lycos.com>  
wrote:

> 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.

Forcing a code repository is bad. Let authors use anything that they're  
comfortable with. The "repository" must be nothing more than a database of  
metadata (general information about a package, and how to download it).

> - D code in such repository must Just Work.

This is not practical. The only practical way is to put that  
responsibility on the authors, and to encourage forking and competition.

> - 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.

I assume you mean naming conventions and not actual code style  
(indentation etc.)

> - 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.

Why?

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

I don't think this is practical until someone writes a D interpreter. Have  
you ever seen an interactive console for a purely-compiled language?

> - 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.

How would DMD become even more IDE-friendly that it already is? What about  
-X?

> 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  
> are one of the things I'd like in D still.

I have to agree that named arguments are awesome, they make the code much  
more readable and maintainable in many instances.

-- 
Best regards,
  Vladimir                            mailto:vladimir at thecybershadow.net


More information about the Digitalmars-d mailing list