« Name that network | Main | Alpha testing, an announcement »

Working in translation

I think the reason I have put this project off as long as I have is that I am not comfortable working in Java.

One of the things I’ve learned from TAing the Programming Languages course this semester is how some languages require the user to think in a particular way. Prolog is perhaps the best example of this; students are used to thinking of functions as something which does something, and Prolog rules don’t really do anything. To write good Prolog, we needed to shift to thinking about conditions—X is true under the following conditions—rather than actions.

Java is not quite as dramatic as Prolog, but it does require the programmer to rearrange the way they think about the problem. I’ve spent more time in languages like PHP, or even C, where once I’d conceived of a means to solve the problem, the translation into code was fairly straightforward. Java’s object-orientedness forces the code into an organization I might not otherwise have used; beyond that, it makes it harder for me to read others’ code and make sense of how to use it. There have been times when the way I conceived of a problem made it easy to code up in Java, but not many of them.

This is not (necessarily) a shortcoming in a language. But it does mean I’d avoid Java in most cases. Maybe if I’d been taught Java in intro CS, the way the Shipwright was (in my day, it was taught in Pascal), I would think differently.

Now Playing: Everything’s Not Lost from Parachutes by Coldplay

Technorati Tags: , ,

Post a comment