You are viewing [info]bpfurtado's journal

Previous Entry | Next Entry

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.

Comments

( 1 comment — Leave a comment )
[info]rnaufal wrote:
Apr. 14th, 2007 02:52 am (UTC)
"Thinking" vs. "Typing" in Programming Languages
It's very common to see people programming in Java like they do in other programming languages. I know some of them who think they're right, saying Java is another "programming language" like the others. It's impressive people don't like to improve their programming skills, I don't know what it happens nowadays. More generally, experience show some evidences when people try to code in languages who apply paradigms they don't know:

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.
( 1 comment — Leave a comment )

Latest Month

March 2010
S M T W T F S
 123456
78910111213
14151617181920
21222324252627
28293031   

Tags

Powered by LiveJournal.com
Designed by Tiffany Chow