home
Sunday, February 27, 2011
I always thought Smalltalk would beat Java. I just didn’t know it would be called ‘Ruby’ when it did. Kent Beck
Friday, July 23, 2010

Today’s commercial-grade programming languages — C++ and Java, in particular — are way too complex and not adequately suited for today’s computing environments, Google distinguished engineer Rob Pike argued in a talk Thursday at the O’Reilly Open Source Conference.

Pike made his case against such “industrial programming languages” during his keynote at the conference in Portland, Oregon.

I think these languages are too hard to use, too subtle, too intricate. They’re far too verbose and their subtlety, intricacy and verbosity seem to be increasing over time” Pike said. “They’re oversold, and used far too broadly.” […]

As an illustration of the complexity of such languages, Pike showed a few examples of C++ code. One example was of a variable declaration that stretched nearly across an entire line of the screen.

How do we have stuff like this [get to be] the standard way of computing that is taught in schools and is used in industry?” he asked, rhetorically. This sort of programming “is very bureaucratic. Every step must be justified to the compiler” he said. […]

Pike is not the lone Google employee expressing dissatisfaction with traditional commercial-grade languages.

At the USENIX annual conference last month, Gmail engineer Adam de Boor surprised the audience by noting that the company’s Gmail service was written entirely in JavaScript, and that all of its code, around 443,000 lines worth, was written by hand. […]

JavaScript is one of a whole batch of languages — others include Ruby and Python — that have been developed over the past 10 years in response to the growing complexity of C++ and Java. But while having a simpler syntax, such languages have their drawbacks as well, he argued.

These new languages tend to be slower, don’t scale as well, and can harbor more errors, Pike elaborated.

The languages tend to be interpreted rather than compiled, meaning the programs written in such languages aren’t compiled before running, so tend to run slower as a result. They also tend to be dynamically typed, meaning programmers don’t need to specify what type of data their variables will hold.

Dynamic typing is not necessarily good. You get static errors at run time which you really should be able to catch at compile time” he said.

Google executive frustrated by Java, C++ complexity

(via beranger)