Thursday, 10 July 2008


I have travelled to many countries and met people from many different backgrounds and points of views due to the nature of my work. Some people are more open-minded and tollerant than others; and of course, there are the occasional xenophoics that you can find in any country.

Xenophobics are extremely easy to identify: if you have expressed yourself which did not agree with his/her beliefs, then he/she will throw you the tell-tale line of "Go back to your own country!" I am sure many frequent overseas travellers or immigrants have experienced it at least once or twice.

In the computing world, such xenophobic behaviour also exists. In a recent online article on Java Lobby, the subject of whether Java should have closure was brought up again. As usual, it attracted many readers' comments. I took the bait and posted a comment that reads:

I reckon Java should have closure. In terms of style, just make it the same as .NET (e.g. C#, closest to BGGA I guess). A great use case of closure is LINQ. This way, the argument about complexity/learning curve goes away since you can benefit in both worlds now. cheers romen

It was met with a reply which bears the typical trademark of 'go back to your own country' tone:

if you want .NET style closures, use .NET.

The full comment is available here.

In the real world, many people can speak more than one language, especially in this globalisation day and age. So it should be natural for developers to know more than one programming language and understand the differences of each computing world because each has its pros and cons, and each can learn from the other. Closure is one such example - it exists in many other languages and programming environments and now the Java community is debating its introduction to the Java land.

James Gosling, the creator of Java language expressed his support on embracing closure in Java. Introducing closure inevitably means introducing new language syntax, which are closer to functional languages. To me, functional languages are not so strange as we were taught Miranda in UNSW and I was exposed to Lisp as I was an Emacs user when programming in the Unix environment many years ago. Even to programmers who had never seen functional languages, it should not be such an alien concept - after all, mathimatical formulae are expressed in functional language, e.g. f(x,y) = 2x + y should look pretty straight forward to anyone who have passed high school.

So, just like in real life, with an open mind and some tollerance to differences, it is not hard to accept a 'foreign' concept to the Java world.

No comments: