Friday, 14 March 2008

Please stop the complaining

This time it started with Damien Katz's comments abouts the Erlang syntax and Yariv Sadan's answer. And, like every time, a long discussion started in their blog comments and on the Erlang mailing list. Oh no! Please not another time.

I'm now developing software since more than 20 years. And I've learned a lot of languages and their environments. Some of them more, some of them less. Basic, Pascal, Modula-2, C, C++, Scheme, Prolog, ReXX, Java (SE, EE), Perl, Python, Smalltalk, Ruby, C#, and now Erlang. All of them have their strengths, their weaknesses, their own characteristics, their paradigms. All of them have only two things in common: they are individual and there are always people complaining about them. *sigh* I ask myself how often I've read those discussions about Python or Smalltalk or Lisp/Scheme.

Every time the languages are compared to other languages. "Hey, I', coming from C and I want curly braces." and "Oh, Lisp is by far cooler." and "Oh, I'm missing the clean syntax of Smalltalk." Why? Why do you ask allways the same? It doesn't change anything. The languages are grown under specific circumstances with a specific background of their developers and a specific goal. And most of them are not invented to satisfy users of all other existing languages.

Since I'm developing Erlang - and before each time I've started to explore a new language - I'm productive after some first days of testing, exploring, reading, sometimes damning, and then working.

So please, just stop complaining and simply use a system or leave it.

6 Comments:

Anonymous said...

>So please, just stop complaining and >simply use a system or leave it.

So you basically say the systems should not evolve. Would'nt have expected such a view from someone who calls itself a software architect...

mue said...

No, I've said nothing about software evolution or positive discussion. Also Damien's comments had a positive background, even if the title of his blog entry hasn't been very positive. *smile*

But after that there have been many complaints I've heard often enough before. Their common sense is "Each student today knows Java (or alternatively a procedural language), so every 'new' language has to be like that." This has been for Python, for Smalltalk, for Erlang. And I think for many languages more.

My wish are simply positive ideas for enhancements, but not complaints that language A has to be like language B.

Dave Bryson said...

I agree with your post. I'm tired of the bazillion posts on the erlang mailing list related to this topic. Sure the language needs to evolve. But lets make sure we first fully understand Erlang and the motivations behind the design before complaining and recommending changes.

Anonymous said...

I personally too don't get what's the big complaint about Erlang. If you want functional programming, from my point of view, it has the cleanest syntax around. For me that combined w/ its inherent concurrency is what attracts me the most.

The biggest complaint about Erlang seems to be its string implementation. Although I do like the fact that strings are lists, just like in C a string is a character array, it would be great if it offered a better implementation/library.

Now, regardless of all this, if you want massive concurrency, there's a price to pay. Having said that I do feel that if the problem with strings (in terms of both character sets and speed) would get fixed, there would be a larger incentive to use it in desktop applications.

Alain O'Dea said...

Erlang's syntax is excellent. I find it clear and comprehensible. I find it easy to determine context based on the line terminators.

Erlang's concise syntax has very few rules to remember. I contrast this to Java and C++ which have many special syntax constructs for abstractions like classes, templates, generics, preprocessor statements, and annotations. Certain aspects of the record syntax are awkward, but the awkwardness in itself encourages judicious use of that abstraction.

The more syntax constructs there are the easier it is for two developers to write in completely different styles. The more two developers' styles differ the harder it is for them to collaborate. Erlang's conciseness makes consistent style occur by default and consequently facilitates collaboration.

Anonymous said...

Interesting post, Mue. :)