We've seen that Paul Graham is a massive fanboy of Lisp. He mentions that:
"As one data point on the curve, at any rate,
if you were to compete with ITA and
chose to write your software in C, they would be able to develop
software twenty times faster than you.
If you spent a year on a new feature, they'd be able to
duplicate it in less than three weeks. Whereas if they spent
just three months developing something new, it would be
five years before you had it too."
Twenty times faster. Really?
To be honest, it takes at least 20 times more to think about the correct abstraction to be implemented in Lisp, not taking into account the amount of hours you'd spend interating lisp with whatever code standard you desire.
He gives a really interesting example: Write an accomulator.
In Lisp:
(defun foo (n) (lambda (i) (incf n i)))
in C++
[](int n, int i){return n + i}
So while I could agree that in 2002 languages like Lisp were more powerful than C++ and other languages due to the lack of Lambda expressions. Most languages today implement lambda expressions natively, and meta-programming is a must in plenty of languages. I'd say that the overall power of languages has risen to the occation, and given enough time, languages will converge in to a canonnical point where they all have the same power due to the evolution of languages.
It is laughable that Before C++11 they had to write this:
public interface Inttoint { public int call(int i); } public static Inttoint foo(final int n) { return new Inttoint() { int s = n; public int call(int i) { s = s + i; return s; }}; }
And It wouldn't even solve the problem.
For me it is the new era of programming languages, where there are some cannonical standards set up by functional programming which are being implemented by every language.