It's quite common to meet software developers who actually think that the difference between 2 programming languages are only their syntax.
My first contact with a opposite opinion, strongly firmed on good arguments and examples, was reading [Thinking in Java] in the third year of my graduation course. As the name says already, the book is about not only java syntax and vocabulary but with a paramount emphasis on the Usage of Java, the unofficial idioms used by its community founders.
In my years of software development unfortunately I've came to know that most developers simply ignore this, and try to code in Java like they do in C++, or in Python like they do in Java, etc.
Not only people ignore this but when you talk to then about the need of studying how to "Think" in some language they simply don't value your advice. Well, on time, they will know that, but till then much code will be oddly written and that's what motivates this post.
To my surprise today, while waiting my light-speed machine to boot, I was reading the foreword of [Effective Java, Joshua Bloch] written by Guy Steele (yeah, the LISP guy ;). In this foreword Steele wisely describes this very problem of most books focusing only on Grammar and Vocabulary and *not* Usage and shows a good parallel with the learning of spoken languages.
It was very pleasant to see this flag raised not only by Bruce Eckel (author of the best Java book Thinking in Java) but also by another great computer scientist like Guy Steele.
Now if you don't agree with me, the reputation of both above authors might be a stronger influence you to give this idea some thinking ;)
When learning a new language look for the source code of a well established project, the language syntax and APIs will also be there and with a good change alongside with the good practices.
By the way, [Effective Java] it's just about Java good idioms.
My first contact with a opposite opinion, strongly firmed on good arguments and examples, was reading [Thinking in Java] in the third year of my graduation course. As the name says already, the book is about not only java syntax and vocabulary but with a paramount emphasis on the Usage of Java, the unofficial idioms used by its community founders.
In my years of software development unfortunately I've came to know that most developers simply ignore this, and try to code in Java like they do in C++, or in Python like they do in Java, etc.
Not only people ignore this but when you talk to then about the need of studying how to "Think" in some language they simply don't value your advice. Well, on time, they will know that, but till then much code will be oddly written and that's what motivates this post.
To my surprise today, while waiting my light-speed machine to boot, I was reading the foreword of [Effective Java, Joshua Bloch] written by Guy Steele (yeah, the LISP guy ;). In this foreword Steele wisely describes this very problem of most books focusing only on Grammar and Vocabulary and *not* Usage and shows a good parallel with the learning of spoken languages.
It was very pleasant to see this flag raised not only by Bruce Eckel (author of the best Java book Thinking in Java) but also by another great computer scientist like Guy Steele.
Now if you don't agree with me, the reputation of both above authors might be a stronger influence you to give this idea some thinking ;)
When learning a new language look for the source code of a well established project, the language syntax and APIs will also be there and with a good change alongside with the good practices.
By the way, [Effective Java] it's just about Java good idioms.
- Mood:
content

Comments
1) Their code lack abstraction. That is, they don't know how to structure their programs in a different paradigm (for example, people migrating from procedural programming to OOP).
2) Code isn't readable and is very verbose.
So, people have to put in mind that programming in some specific language is more than vocabulary or correct syntax, is about paradigm.