The language we speak shapes the way we think, according to anthropologists Edward Sapir and Benjamin Whorf. It’s certainly been my experience that learning new programming languages gives me new ways to think about a problem, and not merely new notations for expressing the same old solutions — and this is more than just mental recreation, but really a growing imperative for dealing with new development challenges, in the view of Ted Neward as expressed at TheServerSide Java Symposium in Las Vegas this week.
As reported by eWEEK’s Darryl Taft, "challenges that Neward said stretch the capacity of current programming languages and tools include application security, object security, pure object model drawbacks, distribution and services, user enablement and user interface expression." You’ll pardon me if I note that writing applications with high security, readiness for service incorporation and delivery, and readily enabling users and expressing user interfaces is absolutely the stock in trade of Apex Code and Force.com.
When I hear the question, as I often do, "Why should I learn a new language to use the Force.com platform?", it’s always been my inclination to answer, "New languages solve new problems." Ted Neward, moreover, said in Las Vegas this week that "there are a number of challenges coming up that we can’t solve with our current set of languages and tools" — so my question is, why not learn a language that does solve those problems, not in theory, but in practice with immediate deliverability at enterprise scale? That’s what Apex Code represents to me.
Call it the displacement of Moore’s-Law progress in raw hardware capability, and a shift to a Sapir-Whorf sensibility to the need for better ways to talk — and therefore to think — about the things we need to do.