religious programming

bearophile bearophileHUGS at lycos.com
Tue Oct 11 04:39:45 PDT 2011


Gor Gyolchanyan:

> Can anyone help me out in this quest of enlightening people?

Talking about "enlightening people" means assuming a bad starting point, where you are as much religious as them.

And regarding them, I think that reading books and articles helps widen the mind a bit. But people have families, children and many hours of work every day. They are often stopped training their brains as they used to do in very good schools. Pushing new knowledge into a middle aged brain requires energy and a bit of pain, not everyone is willing to endure this year after year, in presence of all other kinds of family and work and health problems. Reducing the amount of daily work hours to something like 6 helps leave some time to read books too.

-----------------------

Marco Leise:

>The point is, that companies want a language that does things one way. It is easy to share code this way and to train programmers in that language. There is no "oh what is that construct doing?" in Java because the language is primitive and pretty verbose. It is also easier for me to only have a few concepts in my head when I write code.<

When I program in D I often find several different ways to solve a problem, with a functional, or with an OOP solution, or with a high level one, or with a lower level one, or with generic code. Often my first solution is not the best, and I rewrite the code in a different way. A language that offers only one programming paradigm avoids this, and this is has its advantages.

Single-paradigm languages (Smalltalk, Haskell) and multi-paradigm ones (Oz, D, Scala) have both advantages and disadvantages. A language like Scala (and in past CommonLisp) is very good in the hands of an expert programmer, able to make it sing like a Stradivari violin. But in the hands of a less skilled programmer, or a skilled programmer that needs to write certain commercial programs, a less flexible language is often better.

Regarding Java, it's simpler, but this is especially true if you have to use it to solve simple problems. If you have to implement a complex algorithm that works with differently shaped trees, efficiently, doing pattern matching on them, etc, then a language like OcaML becomes more appreciable that what it usually is.

The Java simplicity forces you to push part of the program complexity out of the language and into conventions, patterns, IDE skills, IDE shorcuts, that increase again the apparent simplicity of Java coding. Generally it's hard to destroy the complexity, you often just move it around.

Bye,
bearophile


More information about the Digitalmars-d mailing list