You're the second person to say I'm also religious, but you miss the point of religious programming: I'm always open to new techniques. I constantly research for new and better ways of doing what I'm about to do. My approach to getting things done is dynamic and i never praise my techniques as the best in the world and fit for every purpose.
About troubles at home and effort: It doesn't take much effort to learn a language. It doesn't take much effort to pay attention to the code you read and write. It's just a matter of a habit. Some people are careful, some people are sloppy, some people are progressive, some people are lazy. I have my own family to take care of and I have my own projects to develop, but it doesn't stop me from being careful and neat with what i write. It's just a matter of a habit. About paradigms. The need for a limited language comes form the fact, that people don't write maintainable code. Even if a team uses C++ with lots of address arithmetic and obscure type casts it's always possible to make it easy to read. Every level of programming and every paradigm has it's ways of writing a neat and maintainable code. On Tue, Oct 11, 2011 at 3:39 PM, bearophile <[email protected]> wrote: > 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 >
