
Paul Graham's Keynote at Pycon 2003: The Hundred-Year Language - tosh
http://www.paulgraham.com/hundred.html
======
kris-s
I think with the slowing progress of single threaded performance modern
languages require three essential features if they want to be "main branches"
of the language evolutionary tree.

1\. easy parallelism

2\. easy networking

3\. managed memory

~~~
tachyonbeam
Why managed memory? The consensus seems to be that this gets in the way of
predictable performance. GC is also non-trivial to parallelize.

~~~
wbl
Where is this consensus stated? The JVM seems to do quite well.

~~~
tachyonbeam
People typically don't use Java for performance-sensitive real-time-ish
applications. Most modern games are written in C++ still. Operating system
kernels are written in C. When I think Java, what comes to my mind is
something like LibreOffice.

~~~
coldtea
> _People typically don 't use Java for performance-sensitive real-time-ish
> applications. Most modern games are written in C++ still. Operating system
> kernels are written in C._

Those are 1/100th or less of the type of code people write everyday, in
startups, enterprise, cloud apps, even regular desktop and mobile apps...

> _When I think Java, what comes to my mind is something like LibreOffice._

That's written in C++

~~~
overgard
C & C++ are #2 and #4 on the Tiobe index fwiw. It’s not like real-time is a
niche.

~~~
coldtea
Real time is indeed a niche (though a big one), but also it's hardly the
reason C and C++ are #2 and #4 on Tiobe.

~~~
overgard
Video games are like a 43 billion dollar industry, and that's just a small
slice of software that has real time requirements. Real time is very much a
mainstream need. Hacker news just tends to be a bit of a bubble because people
focus so much on web development and business logic here.

~~~
coldtea
> _Video games are like a 43 billion dollar industry, and that 's just a small
> slice of software that has real time requirements._

But still a tiny slither on what most programmers do. Most programmers (the
overwhelming majority) do neither video games nor real time.

------
colmvp
Does anyone know why PG doesn't comment on HN anymore?

~~~
lloydde
Doesn’t directly answers your question, of which I suspect parenting very high
on the likeliest reason — as that is the reason I’ve seen others provide for
him stepped down and out from YC. But you can see from his last major period
of activity
[https://news.ycombinator.com/threads?id=pg](https://news.ycombinator.com/threads?id=pg)
ends with his departure blog post:
[https://news.ycombinator.com/item?id=7493856](https://news.ycombinator.com/item?id=7493856)
and the top comment is his wife hinting that Mr Graham was overly consumed by
managing hacker news ;)

------
greg7mdp
Hard to believe this does not mention Haskell or functional programming ...
but then again that was a Pycon talk from 2003.

~~~
phkahler
Any language that forces a particular programming paradigm is IMHO never going
to be all that great. Java forced OOP on people in ways it shouldn't have.
Functional languages force immutability in ways they shouldn't.

~~~
augusto-moura
Any language forcing concepts _or not_ , will never be all that great. Just
look at PERL and C++, in my opnion they have a much more bad language design
than Java and Haskell

Not be that great is in the very nature of anything that can be "quality
measurable" by humans. If "quality measurable" was or will be ever a thing

------
peter303
FORTRAN, COBOL and LISP are nearly 2/3 the way there.

------
kodachi
An essay of the same name is in his book 'Hackers and Painters', which I
recommend. His idea of the language you use influences how you think struck me
several years ago.

------
chadcmulligan
I do have this brochure about a C conference from 2072 entitled "C the
language for 2172?" just can't find the link at the moment

------
viach
Btw, from 2003 to 2019 Java evolved (syntax and JVM) much more than Python. So
who is in the dead end now? )

~~~
simonw
[https://trends.google.com/trends/explore?date=all&geo=US&q=j...](https://trends.google.com/trends/explore?date=all&geo=US&q=java%20programming,python%20programming)

~~~
caseymarquis
I think your methodology may be a bit flawed:
[https://trends.google.com/trends/explore?date=all&geo=US&q=j...](https://trends.google.com/trends/explore?date=all&geo=US&q=java%20programming,python%20programming,javascript%20programming)

~~~
thundergolfer
Interesting. Do you know more about what’s going on here? As in, why the
results don’t match expectations.

------
chmaynard
"Object-oriented programming offers a sustainable way to write spaghetti code.
It lets you accrete programs as a series of patches. Large organizations
always tend to develop software this way, and I expect this to be as true in a
hundred years as it is today."

As Apple and other companies have demonstrated, OO libraries and frameworks
are also a useful way to promote a hardware platform by facilitating the
adoption of proprietary languages and code by third-party application software
developers.

~~~
insertnickname
What does that have to do with OO? Is there something unique about OO that
makes it superior for "facilitating the adoption of proprietary languages and
code by third-party application software developers"?

~~~
mwfunk
I think they were just railing against the notion of self-contained libraries
and frameworks that are capable of being used by developers in binary form.
I'm guessing a hobbyist who cares infinitely more about maximizing their own
mental stimulation than about creating things and solving problems for other
people on a professional basis.

Nothing wrong with pure hobbyists, it just leads to weird conversations where
different people clearly value different things for unspoken reasons, then get
into unusually polarized arguments about engineering practices until everyone
realizes that some people are talking about fun stuff they mess around with
between classes, and other people are trying to figure out how to solve an
immediate problem for an employer who's already given them a bunch of money in
exchange for solving problems. Those are two very different conversations.

