Knowing Java is not knowing much

By Sean McGrath  Add a new comment

Knowing Java is not knowing much. Knowing C is not knowing much. Same for Javascript ECMA 262. The same is true for many other languages. Not all of them, but many of them.

What am I talking about? Well, I am a little frustrated at the moment at the common industry practice of simply requesting expertise in a particular programming language - like Java or C++ - as if that knowledge had a whole lot of meaning. It doesn't, and it is often dangerous to read too much into language knowledge when searching for expertise.

What am I talking about? Well, most mainstream programming languages are split into three pieces: the core language, a finite set of bundled libraries and the potentially infinite set of third party libraries. Generally, when I need to find programming help, I work backwards through that list. For example, lets say I need Eclipse RCP talent. First and foremost I need people familiar with Eclipse RCP. This implies knowledge of a huge set of Eclipse APIs, which brings with it the need for SWT knowledge - itself a huge API. Oh, and somewhere down there in the bowels of all of that expertise, is the Java language itself.

Do you see what I'm getting at? A developer who "knows Java" but does not know Eclipse or SWT is not very close to meeting the need. Running an advertisement that asks for Java experience is not going to cut the mustard. It can take literally years to become comfortable with some of the big ticket Java APIs. The same goes for C++ APIs. The same goes for Javascript APIs.

To see this - starkly - in the case of Javascript, it is worth perusing ECMA 262 a formal expression of what it means to know Javascript. Not much there huh? What you really need (probably) is expertise in JQuery or YUI or XUL ...

I think part of the problem is that sometimes simply naming a language does carry with it, implications of knowledge of the surrounding libraries and application stack. Visual Basic is a good example. It goes without saying that a VB programmer is skilled in the arts of wielding the Microsoft Windows APIs. A Visual C++ programmer is almost guaranteed to have important skills that go way beyond the C++ language.

Bottom line, if in doubt, spell it out. If you really need someone to program in C++ against an Oracle back-end, spell out the Oracle bits. The C++ bit on its own probably will not get you what you want.

Oh, and finally. Don't underestimate the amount of time it can take to "pick up" a new library or application stack. I have heard hiring conversations that go like this "We need an SWT app. Joe has worked with Java before, so he can pick it up.". Danger. Danger. Joe can most likely pick it up for sure but it is highly unlikely to be a wet afternoon's work. Not by a long shot.

To paraphrase John Maynard Keynes: APIs can stay impenetrable longer than your schedule can stay acceptable.

ITworld LIVE

SoftwareWhite Papers & Webcasts

White Paper

Activities Streams Base An Integrated Social Layer

The enterprise social software market is exploding thanks to converging trends of consumerization, cloud, and mobile. In this must-read report, "The Forrester Wave: Activities Streams, Q2 2012", Forrester Research Inc. evaluated five social software vendors with core strengths in the stream based on the overall strength of vendors' current offerings, a clear product strategy, and vendor market presence. In a detailed look at the space, Forrester named Yammer as a leader.

White Paper

ESG Lab Review: HP 3PAR Peer Motion Software

This ESG Lab review sponsored by HP + Intel documents hands-on testing of HP 3PAR Peer Motion Software's distributed volume.Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.

White Paper

ESG Lab Review: HP 3PAR Peer Motion Software

This ESG Lab review documents hands-on testing of HP 3PAR Peer Motion Software's distributed volume management with a focus on federated workload balancing, asset management, and thin provisioning.Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.

White Paper

Deliver Cost-Effective Business Continuity with Extreme Capacity

IBM DB2 provides application cluster transparency technology that equips organizations running OLTP applications with the ability to deliver high availability and continuous uptime for transactional data, plus the flexibility and capacity they need to remain competitive.

White Paper

What Developers Want: The End of Application Redeploys

Eliminate application restarts in Java with JRebel! JRebel is a JVM plugin that eliminates application redeploys from the Java development cycle, a process that takes over 10 minutes of coding time away from developers each working hour, according to a recent survey. Just code, refresh and see everything instantly.

See more White Papers | Webcasts

Ask a question

Ask a Question