Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

The Hundred-Year Language

michael posted more than 11 years ago | from the probably-C dept.

Programming 730

dtolton writes "Paul Graham has a new article called "The Hundred-Year Language" posted. The article is about the programming languages of the future and what form they may take. He makes some interesting predictions about the rate of change we might expect in programming languages over the next 100 years. He also makes some persuasive points about the possible design and construction of those languages. The article is definitely worth a read for those interested in programming languages."

cancel ×


Sorry! There are no comments related to the filter you selected.

CLIT FP (-1)

Sexual Asspussy (453406) | more than 11 years ago | (#5710309)

HAS COME... ) ))
(( (( )
AND GONE. ,^.((
) l |))
Civilization amongst the ((|:l
trolls has decayed. )l l
The strong rise to the top. | l
The weak fall. l |
And today they fall to gmC
the C,lmC
, _ _ _ , ;Y oek
OF THE (( f h )) joe eB
\l WW WW l/ AoeoeR
CLIT I- _ _ -I So oeG
I l I .Qoeo U
I | I jle eol'
__XX666XX ,cf oeoeoV
_efhlkhlkhlk lkhlkhlkhlkW
Joeoe eoeoe eo oeo oeoeo/
Ceoeoel o oeoe eo oe eoek
_=xxxx=_eoeo oeoeoe eoeoH'
xx xx oe e eoeoeo oH
x x eoeoe eoeoeoH
x C L 1 T x e eoe eo eoH
x x eoeo oeo oe V
x. F P .x oe e eoeoe eW;
`x x'e eoeo o oeoeG
xx xx oeoe eoeoeoeo H
`NIGS'JKo oeoeoe eoeoeH
03 sexual(*)asspussy #trolls

Re:CLIT FP (-1, Troll)

Anonymous Coward | more than 11 years ago | (#5710366)

You do the CLIT proud, sir. The founder of the CLIT is indeed still watching, and waiting for the right moment to reveal himself again [] .

I say more VB (-1, Funny)

electro_mike (658829) | more than 11 years ago | (#5710314)

I deffently think more newbie style things will take over as computers become more powerful

Re:I say more VB (1)

Brummund (447393) | more than 11 years ago | (#5710395)

Well, VB being a "newbie language" is going to change with VB.NET. VB.NET is the worst of OO combined with the worst of VB<=6. VB is a dead end, and MS is really pushing C# as the language to use in their .NET-environment

VB Problems (2, Interesting)

nigel.selke (665251) | more than 11 years ago | (#5710445)

Smarter compilers and more powerful hardware will definitely negate the need for strongly typed and down-to-the metal languages that we've seen in the past to some extent, but VB has several limitations that will prevent it from taking over other languages:
Lack of portability This will become increasingly important as companies and inviduals move away from Microsoft as Microsoft pushes its luck further and further by strangling the market.
Basic sytax, hacked OO The use of Basic syntax can cripple larger projects, add to this the lack of proper OO in VB, and you have a problem.
Too many power-user addons VB has become a language for people who just want to buy third party addons and plug them in. While this is fine theoretically, it makes the program segment's modules difficult to integrate with the rest of the project, as well as encouraging lazy practices or even lack of knowledge in the programmer.

The only way VB will retain any large number of its current userbase is by being completely committed to the .NET infrastructure.

Meanwhile, languages like Java, Python, Perl and PHP will continue to grow and gain more and more users amoung tech savvy individuals.

I know! (0, Funny)

`Sean (15328) | more than 11 years ago | (#5710320)


Yeah...that's it...

Re:I know! (-1)

ClickWir (166927) | more than 11 years ago | (#5710340)

That was just dumb.

Re:I know! (4, Funny)

joeblakethesnake (246440) | more than 11 years ago | (#5710352)

that's VisualJavaC++.Net#

Re:I know! (3, Funny)

`Sean (15328) | more than 11 years ago | (#5710357)

that's VisualJavaC++.Net#

That's what I was going to post, but I didn't want to give Microsoft any ideas!

Re:I know! (1, Funny)

Eric_Cartman_South_P (594330) | more than 11 years ago | (#5710496)

that's VisualJavaC++.Net#

And of course, the first version out of the gate will be called:

VisualJavaC++.Net# v6.0 Premium

Re:I know! (0)

Anonymous Coward | more than 11 years ago | (#5710587)

VisualJavaC++.Net# v6.0 Premium XP

Seymour Cray said it best (5, Funny)

grub (11606) | more than 11 years ago | (#5710322)

I do not know what the language of the year 2000 will look like, but it will be called FORTRAN. [] -Attributed to many people including Seymour Cray, John Backus

Re:Seymour Cray said it best (3, Funny)

syle (638903) | more than 11 years ago | (#5710378)

"Real programmers can write FORTRAN in any language."

I predict... (4, Funny)

Jack William Bell (84469) | more than 11 years ago | (#5710323)

I predict that in 100 years someone, somewhere, will still be running COBOL applications.

And I will still be refusing to maintain them. Six years in the COBOL mines was six years too long...

Re:I predict... (5, Funny)

$rtbl_this (584653) | more than 11 years ago | (#5710408)

I predict that in 100 years someone, somewhere, will still be running COBOL applications.

And I will still be refusing to maintain them.

Surely that depends on whether you're damned or not. I imagine there's a whole circle of hell devoted to maintaining COBOL apps.

Re:I predict... (1)

zackbar (649913) | more than 11 years ago | (#5710529)

And they will still be having date issues. Gotta love all those "solutions" that involved compressing the 2 digit character year into a 2 digit year and an indicator that it's the 21's century.

Delaying the problem is *so* much better than actually fixing it.

Cobol is back. (4, Funny)

sokkelih (632304) | more than 11 years ago | (#5710326)

I guess that programming languages are like cycles. Ah, COBOL is all coming back to me. This object orientation is way too appreciated, it is time get back to the days when VAX-admins ruled the universe of COBOL :)

Re:Cobol is back....In Pog Form! (0)

Anonymous Coward | more than 11 years ago | (#5710564)

ay, the hot pants.

Re:Cobol is back. (1, Funny)

cyber_rigger (527103) | more than 11 years ago | (#5710574)

I thought Cobol was already 100 years old.

how long (2, Insightful)

xao gypsie (641755) | more than 11 years ago | (#5710336)

.... until programming languages begin to resemble spoken languages very closely? well, at least those languages with power, not BASIC and its friends. or, is it even possible to concieve, at this point, that there will be languages with the power of C but the syntax of English, SPanish...etc....


you think English and Spanish have syntax? (-1)

Anonymous Coward | more than 11 years ago | (#5710342)

you fool!!

Re:how long (1)

bumby (589283) | more than 11 years ago | (#5710370)

select language where language = "spoken language"

Not that sql is a programming language, but it sure is close to spoken language, at least my spoken language ;)

me want food
climb tree
get egg

One thing is for sure, it's not going to look like brainfuck ++++>++>++[++++].

(or whatever the syntax was, haven't used it much)

Re:how long (5, Interesting)

GnuVince (623231) | more than 11 years ago | (#5710396)

Forth can be used a little bit like that (example taken from "Starting Forth", by Leo Brodie):

\ Word definitions : convicted-of 0 ; \ To convict someone : murder 25 + ; : arson 10 + ; : robbery 2 + ; : music-copying 40 + ; : sentenced-to . ." years of prison" ;

And to use it:

convicted-of music-copying robbery sentenced-to

Output: 42 years of prison This looks quite like english. Of course, you can do that in many languages, but it feels more natural in Forth I think.

Re:how long (-1, Redundant)

GnuVince (623231) | more than 11 years ago | (#5710429)

Forth can be used a little bit like that (example taken from "Starting Forth", by Leo Brodie):

\ Word definitions
: convicted-of 0 ; \ To convict someone
: murder 25 + ;
: arson 10 + ;
: robbery 2 + ;
: music-copying 40 + ;

: sentenced-to . ." years of prison" ;

And to use it:

convicted-of music-copying robbery

Output: 42 years of prison

This looks quite like english. Of course, you can do that in many languages, but it feels more natural in Forth I think

Re:how long (4, Funny)

avandesande (143899) | more than 11 years ago | (#5710419)

I hope it never is like spoken languages. I can hardly understand what my wife wants when I talk with her, why would a computer. Spoken languages are ambiguous.

Re:how long (1)

addaon (41825) | more than 11 years ago | (#5710444)

You're not a programmer, are you?

Re:how long (1)

frankthechicken (607647) | more than 11 years ago | (#5710465)

Spoken language is far too full of grammatical bodges and fixes to become a structure logical enough for a programming language. If it had a structure similar to English/French etc when it came to compilation/interpretation there would have to be guesses as to what was meant. Language tends to rely too heavily on context and interpretation of context. The closest we could come would be a form of legalese, which would be more taxing to debug than any perl program.

Re:how long (1)

Echemus (49002) | more than 11 years ago | (#5710472)

It would be a bad idea, and I think it is a common mis-conception that it would be a good thing to have a programming language that would mirror something like a written or spoken language. I can't see any real advantage. The idea of readability is not a valid argument, good code should be as readable (if you know the language) as something written in your own tongue.

Knowledge of the language is important. For example, in English, it is perfectly possible to have different (and opposing) interpretations of a simple sentance. This is not a good thing for computers.

I have a bias, as I am a fan of Functional Programming languages, but I feel that they have the way of the future about them. They have a basis in mathematics. Software Engineering needs to evolve from the age of Hack/Slash/cobble together and into an age of true engineering.

There is something to be said of a piece of software that can be "proved" via mathematical theory to work, than one that has been developed in a Object Oriented/Procedual language. That is not to say it won't fail in practice, but at least you'll have more confidence about it, rather more like more traditional Engineering.

Functional Programming hasn't had its day yet, mostly because there aren't systems around that are optimised to perform its operations. Programmers often dislike it as it requires a different way of approaching problem solving.

If there is going to be surplus of processing power, perhaps Functional Programming will come of age?

Not long... (3, Informative)

MosesJones (55544) | more than 11 years ago | (#5710542)

In fact never. Because while its okay human languages have a few problems

1) Redundancy, far to many ways to say or do one thing

2) Ambiguity, "1 may be equal to x" "Sometimes allow the user to do this if they aren't doing something else that might conflict"

So what you might get is a restricted language with restricted terms that could help. But even these tend to fall down, the first UML spec was written using such a language but this was abandoned for the more formal UML language as the inherent ambiguities of languages couldn't be overcome.

So basically you might have some mechanism of translating from formal into informal but the real work will be done in a formal manner, as now, as ever because at the end of the day....

Who wants to rely on a system that implements "sometimes" ?

The Language of the future ... (-1, Redundant)

BabyDave (575083) | more than 11 years ago | (#5710338)

"I don't know what language they will be using in high performance computers 10 years from now but I know it will be called FORTRAN"
Attribution would be appreciated, 'cause I can't find who said it.

Re:The Language of the future ... (1, Informative)

Anonymous Coward | more than 11 years ago | (#5710359)

The quote is from Dowd and Severance (see l)

Aliens (3, Funny)

GnuVince (623231) | more than 11 years ago | (#5710344)

I liked the part about aliens:

Presumably many libraries will be for domains that don't even exist yet. If SETI@home works, for example, we'll need libraries for communicating with aliens. Unless of course they are sufficiently advanced that they already communicate in XML.

Let's hope it's not Microsoft's XML, because that could cause a problem with communication:they might say "We come in peace" and start shooting at us with lasers and everything!

Re:Aliens (0)

nmg (614483) | more than 11 years ago | (#5710382)

lol micro$oft sucks!

Re:Aliens and XML (2, Insightful)

damas (469487) | more than 11 years ago | (#5710524)

well, I believe XML was invented by aliens... and not very sane ones

what's wrong with

alien.language = "ptuh" = {"ptuh", "XML"}

No current languages will exist.. (4, Funny)

SystematicPsycho (456042) | more than 11 years ago | (#5710347)

When quantum computers come into the picture a new type of programming language and way we think about computers will emerge. Bit shifting will especially be different, it will be called... QBit shifting.

Re:No current languages will exist.. (0)

Anonymous Coward | more than 11 years ago | (#5710391)

C remains!

#include <stq.h>

Re:No current languages will exist.. (0)

Anonymous Coward | more than 11 years ago | (#5710414)

Hopefully GCC won't. Before you mod this as -1 think about the crap gcc generates sometimes. Hell it's the only compiler that uses RTL.

Convergence (2, Insightful)

archetypeone (599370) | more than 11 years ago | (#5710364)

The evolution of languages differs from the evolution of species because branches can converge...

For species branches can converge too - it's just kind of weird...

Re:Convergence (1)

pe1rxq (141710) | more than 11 years ago | (#5710561)

Biological species converging is not that easy....

The definition of a species is when two subspecies are no longer capable of interbreeding.
When you can't breed its kind of hard to converge.
Two subspecies on the other hand can branch. but it would result in the same species.

What does happen is symbiosis, where two seperate species live together as one organism, but still as seperate species.


Seems to be confused about what a language is (0, Insightful)

chrisseaton (573490) | more than 11 years ago | (#5710365)

"Will we even be writing programs in a hundred years? Won't we just tell computers what we want them to do?"

What the fuck? That's what a programming language is, and that's exactly what we do with them TODAY.

dead-end? (2, Insightful)

xv4n (639231) | more than 11 years ago | (#5710369)

Java will turn out to be an evolutionary dead-end, like Cobol.

dead-end? Java has already spawned javascript and C#.

Re:dead-end? (1)

skillet-thief (622320) | more than 11 years ago | (#5710389)

Java did not spawn Javascript. That was a Netscape marketing op.

Re:dead-end? (0)

Anonymous Coward | more than 11 years ago | (#5710440)

javascript is basicly a dumbed down version of c++, nothing like java.

Re:dead-end? (4, Informative)

Billly Gates (198444) | more than 11 years ago | (#5710579)

javascript was orignally called livescript. Sun licensed java to Netscape for free under the condition that they change the name livescript to javascript.

Java isn't dead by a long shot. (1, Offtopic)

nigel.selke (665251) | more than 11 years ago | (#5710522)

I have developed a large system that deals with end-to-end running of a large supplier of outdoor leather goods. Including B2B transactions, custom querying, post-sales tracking.

Most of the system is written in Java, with a good deal of Python code on the back end. The front-ends are fully Java/Swing based, and run comfortably on a P3-500 with 256MB of RAM. The back-end is mostly written in Java, but retains some Python code (the project started out as a web-based app for post-sales/customer relations management).

Add to this the quick deployment time of the Java language, the extremely easy portability (compared to some other languages), and the ease-of-use, and you can see why Java is a good choice for scalable business applications. The stuff we have managed to add to this program is amazing, I'll wager that our system has more features than any single commercial solution. There is definitely something to be said for in-house development.

Re:dead-end? (1, Interesting)

Anonymous Coward | more than 11 years ago | (#5710536)

Not really. C# and Java are sister languages. Both were "spawned" by C++ and Smalltalk.

moores law (1)

avandesande (143899) | more than 11 years ago | (#5710371)

Why 'moores law' have to sneak into this article? A little bit of 'writers cruft'.

Java & Cobol. (-1, Troll)

BoomerSooner (308737) | more than 11 years ago | (#5710372)

What do they have in common? A dead end job.

Actually I think the main problem with java is the JFC implementation. It's so painful to work with my company has switched to C++ classes on the back end and GTK/MFC/ObjC-Cocoa for the front ends (Linux/Windows/Mac respectively).

I find this is the only way to be certain our software will work as desired on all platforms and conform to the users expectation of how it should opperate.

Granted you can use gjc or java in cocoa but it doesn't seem to be as viable a solution as just using C++ Classes and a custom front end.

Quantum Language (1)

JPM NICK (660664) | more than 11 years ago | (#5710385)

I def. think that a new languange based on quantum computing will be at the forefront. Its the next step in computer architecture, so why not in programming language. see slashdot article 4/03/221222&mode=nested&tid=156

Quantum Packages? (2, Funny)

Anonymous Coward | more than 11 years ago | (#5710436)

Imagine debugging a quantum package - it could exist and not exist at the same time. probably.

You'd get errors like :

error in com.quantum.package:453 - classProbablyNotFound exception

Re:Quantum Language (4, Insightful)

NetSettler (460623) | more than 11 years ago | (#5710454)

I def. think that a new languange based on quantum computing will be at the forefront.

If after generations and generations of computers, we are still teaching people to talk in computer terms and not yet teaching computers how to talk in people terms, we'll have gone the wrong direction.

It doesn't matter if quantum technology is used or not, for the same reason as it doesn't matter whether a brain is a parallel or single threaded machine, whether it's made of carbon-based or silicon-based technology, etc. What matters is that it can talk to you, can understand you, and can improve life.

If you want to know what computer languages should and hopefully will look like in the future, you have only to watch Star Trek. I'm not kidding. The desire to pack computer use into a short TV program has led the authors of that show and shows like it to pare out all but the absolute essentials of describing what you want the computer to do. That is what computer programming should be like, since that's what people programming is like. People don't put up with excess verbiage, and neither should computers.

why don't spoken languages (0)

Anonymous Coward | more than 11 years ago | (#5710387)

become more like programming languages?

So a typical slashdot troll would be... (1)

NorthDude (560769) | more than 11 years ago | (#5710508)

if(you.tell(joke.getNewJoke()) && !moderator.laughing()){
moderator.mod(-1, "OffTopic");
you.type("This is not Offtopic you bastard moderators on crack!");;

for(int i=0; i<3; i++)
moderator.mod(-1, "Flamebait")

just in case.... (0)

Anonymous Coward | more than 11 years ago | (#5710388)

mirror. []

Re:just in case.... (-1)

Anonymous Coward | more than 11 years ago | (#5710413)


just noticed the site is hosted on

i dont think it will be /.'d anytime soon.

AI (2, Interesting)

Anonymous Coward | more than 11 years ago | (#5710390)

In 100 years, I would expect computers to be writing it's own code. And rewriting it agian to evolve.

Best quote from the article (4, Insightful)

SeanTobin (138474) | more than 11 years ago | (#5710394)

Who will design the languages of the future? One of the most exciting trends in the last ten years has been the rise of open-source languages like Perl, Python, and Ruby. Language design is being taken over by hackers. The results so far are messy, but encouraging. There are some stunningly novel ideas in Perl, for example. Many are stunningly bad, but that's always true of ambitious efforts. At its current rate of mutation, God knows what Perl might evolve into in a hundred years.

Why Change? (2, Insightful)

jetkust (596906) | more than 11 years ago | (#5710398)

Languages will change when computers change. Languages are driven by machine instructions which are mathematical operations done in sequence. If this doesn't change in 100 years, why would we not use C in 100 years?

Re:Why Change? (2, Insightful)

GnuVince (623231) | more than 11 years ago | (#5710541)

The world is getting faster and faster and faster (and so are computers) and people want things faster. So the speed of C will not be as important as the speed of development of a software:

Boss: I want this software written in 2 hours!
C programmer: Hum... 2 hours on Pluto?
Blub programmer: It'll be done in one hour!

Also, we will want safer languages, because more and more things will rely on software and we don't want crackers to mess things up, do we?

The horror (4, Funny)

Chagatai (524580) | more than 11 years ago | (#5710402)

If the children are our future, then they will be designing the future languages. This is horrible. Can you imagine the future code?


Awareness... (4, Insightful)

dmorin (25609) | more than 11 years ago | (#5710422)

I know that's a scary word because it sounds like "self-aware". But I expect that in 100 years one of the inherent aspects of any computer language will be in detecting and working with other devices in a robust manner. In other words, being aware of what is around the programmed device. Not requiring a mandatory connection of type X. Instead I'm thinking about a device that can run just fine by itself, and then if another device of the same sort happens to come within 10 feet, then maybe they automatically attempt some sort of handshake (with encryption up the wazoo, of course) and then have the option of communicating. This would be useful for automatic transmittal of business cards, appointment schedules, and so on. Or it could be more of a client/server thing, where devices that do not have the power to get a certain job done will just naturally plug into "the grid" and request more power. The device won't have to deal with where the computing power comes from or how it is distributed.

Imagine cars that, before changing lanes, signal to the surrounding cars' navigation systems and they work out for themselves how to let the car into the lane. A computer can be told to slow down, rather than speed up, when someone wants to change lanes. Or detectors in the dotted yellow lines that sense when you changed lanes without signalling, and alert the traffic authority to bump your points (ala Fifth Element).

I always liked the idea of my PDA phonebook being more of a recently-used cache of numbers instead of a local store. I just punch up a number. If it's one of my commonly used ones, it comes right up (and dials, of course). But if it's not, then my PDA connects to the phone company, gets the information (and probably pays the phone company a micropayment for the service) and now I have that number locally on my PDA until it gets scrolled off if it's not used much.

Also I expect lots of pseudo-intelligent content filtering software. You'll get 1000 emails a day and your spam filter will not only remove 99% of them, but it will also identify and prioritize the remaining ones. In order for this to be useful there needs to be languages that deal with expression of rules and logic in a meaningful way (far more than just and or not). No one 100 years from now will say "if subject ~= /*mom*/" (or however the hell you say it), they will expect to say "Give email from mom a higher priority", or sometihng very close.

Forth (0, Funny)

Anonymous Coward | more than 11 years ago | (#5710427)

In the future, computers will be so smart that programmers will no longer have need to read their own code. Forth will finally take its rightful place as a primary language of development.

Re:Forth (1)

mrtroy (640746) | more than 11 years ago | (#5710510)

Right. That is the worst case of ignorance I have saw in a while!

Who is going to program the computers to be so smart? And how! And will those programmers not need to read their own code?

Evolutionary dead-end? (3, Interesting)

Mxyzptlk (138505) | more than 11 years ago | (#5710430)

When I say Java won't turn out to be a successful language, I mean something more specific: that Java will turn out to be an evolutionary dead-end, like Cobol.

Er... I don't think that Cobol is an evolutionary dead-end; in the best world, it would be extinct, but it isn't. What makes a language widely used is something that we can't predict right now - we have to watch it evolve over time, and as it grows and matures look at different aspects.

Take architecture for example - new buildings are loved the first five years because of their freshly introduced ideas. After that, all the problems start to appear - mildew problems, asbestos in the walls, and so on. During the next ten years, the child diseases are fixed. It is only a HUNDRED YEARS after the new building (or in our case, the new programming language) can be properly evaluated. The language/building then has either been replaced, or it has survived.

So - the only proper way to measure the successfulness of a programming language is to measure its survivability. Sure, we can do guesstimates along the way:

During introduction: Does the language have a good development environment? Is the language backed/introduced by a market leader?

Somewhere during the "middle years" (after about ten years): Does the language have a large user base? Does the language have a large code base?

After twenty/thirty years: ask the programmers if it really is maintainable...

Well - you get the picture! Predicting the survability of something more than five years into the future is impossible, I'd say.

Waste of Time (3, Insightful)

tundog (445786) | more than 11 years ago | (#5710449)

The author starts be describing the effect of moore's law on computing power (i.e. computers will be wicked fast)and then starts ranting about how today's constructs are so inefficient, then admits that inefficiency won't really matter because computers will be wicked fast (And it takes him half the article to impart this wisdom).


This is the kind of mental constipation that is better left for blog sites.

Somewhere there is parallel between the logic in this article and the dot.bomb busniess model.

I know the name of the language. (1)

Russ Nelson (33911) | more than 11 years ago | (#5710450)

No matter what the form of the language, its name shall be FORTRAN.

A better question (1)

smitty_one_each (243267) | more than 11 years ago | (#5710451)

Most data structures exist because of speed. For example, many languages today have both strings and lists. Semantically, strings are more or less a subset of lists in which the elements are characters. So why do you need a separate data type? You don't, really. Strings only exist for efficiency.

Your tool should fit the problem. The remark about nails and hammers applies.

A better question might be, what sort of problems do we anticipate tackling in 100 years, and what sort of languages might support them?

The answer the following question is backwards compatibility, but let me ask anyway:

Why not use the greater symbol space of multi-byte characters to create a language from scratch that avoids some of the baroque syntax of current offerings (apologies to Larry)?

Re:A better question (1)

SWroclawski (95770) | more than 11 years ago | (#5710525)

Because APL [] was crazy and required a special keyboard to use.

- Serge

Lisp... (1, Insightful)

Anonymous Coward | more than 11 years ago | (#5710453)

... has been around for about 50 years already,
in one form or another ...

Something to think about. What is it about
first order functional languages based on
a clean predicate calculus?

Re:Lisp... (3, Insightful)

NetSettler (460623) | more than 11 years ago | (#5710557)

I don't think it's the first order functional nature of Lisp that has allowed it to survive, but rather the "late binding" nature of it.

Static, strongly-typed languages, make the assumption that everything that needs to be known about the world is knowable at compile time. Such programs need to be recompiled (at least) and rewritten (often) because the world changes and either the source program itself or its compiled form needs to accomodate that change.

Lisp, because it delays many decisions until runtime, and because its runtime tagging accomodates datatypes that are not among the set that was declared at compile time, naturally accomodates changes in the environment around it, and naturally survives well during transitions between old and new ways to do things.

Static languages often breed static ways of thinking, and often need new static specifications at regular intervals to accomodate the mismatch with how the world really is. Dynamic languages breed dynamic thinking, which (I claim) is more robust over time.

History and Future (5, Interesting)

AbdullahHaydar (147260) | more than 11 years ago | (#5710458)

This is a really interesting paper [] on the history and future of programming languages. (Check out the history chart in the middle....)

Re:History and Future (4, Informative)

AbdullahHaydar (147260) | more than 11 years ago | (#5710479)

I forgot to mention that it was written in 1972 and predicts a few of the occurences since then...

nutty article (0, Flamebait)

selderrr (523988) | more than 11 years ago | (#5710460)

The article starts with It's hard to predict what life will be like in a hundred years. There are only a few things we can say with certainty. We know that everyone will drive flying cars, that zoning laws will be relaxed to allow buildings hundreds of stories tall, that it will be dark most of the time, and that women will all be trained in the martial arts.

doh ? I'm not a visionary, but any article starting with such predictions loses quite some credibility.

The end of the article is kinda silly too : When you see these ideas laid out like that, it's hard not to think, why not try writing the hundred-year language now?

Yes indeed mister know-it-all : why not ?

The summary of his article is : future languages are gonna be way kewl, l33t and 5hit. They're gonna be dead simple, and anyone will be able to write them. If given to us now, we'd be able to use them right away. The stupid languages (read : every language that exists today) will die and this new thingie will rise and save our butts.

Basicallly, he's repeating what managers & analysts are saying since ENIAC. And as those 2 groups, he has no solution, no roadmap, no ideas, no nuthin. You know what ? When I read such shit, I feel all warm & fuzzy, comforted knowing that I'm gonna keep on coding C for a long time to come.

Re:nutty article (0, Offtopic)

mrtroy (640746) | more than 11 years ago | (#5710545)

Haha, I would have started the article similarly.

It's hard to predict what life will be like in a hundred years. There are only a few things we can say with certainty. We know that everyone will drive elephants, that zoning laws will be relaxed to allow buildings to build to China, that beaches will be sunny all the time, and that women will all be trained in karma sutra.

What an idiot, the article starts wrong and goes downhill from there.

Re:nutty article (0)

Anonymous Coward | more than 11 years ago | (#5710560)

The article starts with It's hard to predict what life will be like in a hundred years. There are only a few things we can say with certainty. We know that everyone will drive flying cars, that zoning laws will be relaxed to allow buildings hundreds of stories tall, that it will be dark most of the time, and that women will all be trained in the martial arts. doh ? I'm not a visionary, but any article starting with such predictions loses quite some credibility.

Gee, do you think that maybe he was being facetious? You're not a visionary, but do you have any sense of humor at all?

Have fun programming C for the rest of your life.

c will live for ever (0)

Anonymous Coward | more than 11 years ago | (#5710463)

Because that's whats all the open sores programs are written in.

Summary of article: (1)

timeOday (582209) | more than 11 years ago | (#5710469)

Computers will be faster in 100 years and we won't be using Java anymore.

The End.

Re:Summary of article: (1)

bschuth (214461) | more than 11 years ago | (#5710518)

Brilliant and correct! Perhaps in 100 years all code will be written in C and Java -- but everyone's computer can edit their essays so that bloated rambles like this one can waste less of our time...

My prediction is that 100 years from now all computer code will be written in C... on stone tablets, by monks in caves, and used in religious rituals praying for the return of electricity.

The computer language 100 years from now? (0, Funny)

Anonymous Coward | more than 11 years ago | (#5710473)

That's easy! It will be Perl 6.

The optimization of Parrot should be just about complete by then.

I'll tell ya one thing... (1)

MoeMoe (659154) | more than 11 years ago | (#5710484)

One thing's for damn sure, White Space isn't leaving the market shelf anytime soon ;)

Evolution of programming languages (1)

tomgarcher (604260) | more than 11 years ago | (#5710486)

I don't know what the languages of the future will look like but someone will still be writing shit code in them.

Accuracy (1)

mrtroy (640746) | more than 11 years ago | (#5710487)

I just love predictions, people can not accurately predict what the new trends will be in 6 months let alone 100 years!!!

I personally think that there will be some sort of "brave new world", where I wont be nearly as smart as Alphas. But not as dumb as epsilons, they are stupid. I am happy being a beta, betas are best.

Speaking of brave new worlds, give me some sex-hormone chewing gum because its time for orgy porgy! I sure hope Ford doesn't find out!

THAT book is realistic predictor! :)

I wouldn't read too far into this article... (4, Insightful)

Pollux (102520) | more than 11 years ago | (#5710493)

I think that it would be better to call this article "Where Programming is headed" rather than "The Hundred-Year Language". He tries to justify how he can predict the language 100 years into the future...

It may seem presumptuous to think anyone can predict what any technology will look like in a hundred years...Looking forward a hundred years is a graspable idea when we consider how slowly languages have evolved in the past fifty.

Hmm...funny, fifty years ago, if I remember my history (since I wasn't alive back then), those relay computers needed rolls and rolls of ticker-taped punch holes to compute math. The language was so-low-level...even x86 Assembly would have been a godsend to them. And he considers something like Object-Oriented Programming a slow evolution?

All he's doing in the article is predicting what languages will be dead in the future, and which languages won't be. For example, he says Java will be dead...

Cobol, for all its sometime popularity, does not seem to have any intellectual descendants. It is an evolutionary dead-end-- a Neanderthal language...I predict a similar fate for Java.

I'll not go there, because predicting the demise of Java is opening another can of worms. But let's just say that he really doesn't support his argument with anything other than anecdotal opinion.

I say read his article in jest, but don't look too deep into it.

Will it never stop? (-1, Flamebait)

Anonymous Coward | more than 11 years ago | (#5710499)

So, this guy earns money with shit 99.99999% of all the developers don't care about. Uhh.. Ohh... your programming language doesn't meet our portofolio... Uhh... Ohh... don't fear death because we say that angels will wear pink in future... all this is so FUBAR... how many businesses will have to die before ppl realize that another programming language instead wont save tbem.

How long will it take until these "New programming lang." stories will be modded redundant and removed?

In the future, computers will decide what language (0)

Anonymous Coward | more than 11 years ago | (#5710503)

to program us in. No this isn't another 'In Soviet Russia' joke, I'm partly serious. Wouldn't we be better off if computers "forsaw" our needs, and perhaps generated code in response? Then again we might end up with the equivilent of Dr Who's Daleks. "Exterminate! Exterminate!"

All you'll have to do to code (1)

FXSTD (468083) | more than 11 years ago | (#5710505)

is take the red pill...

Nothing will replace c++ (0)

www!!!1 (662326) | more than 11 years ago | (#5710507)

C++ will get a little better, maybe even easier to use! There will be more crap languages that try to make everything better like VB but real programmers will never use them (even with a gun held up to their heads, i could be making 65k if i accepted that vb code monkey job but am happier making less than half that hax0ing in c++). Real men code pure assembly but don't mind c and c++. C++ is just too perfect and powerful.

Efficiency may not be the guiding force.... (1)

check_one (664408) | more than 11 years ago | (#5710519)

Paul Graham makes many many excellent points, but I feel that his focus on speed and efficiency may not be the guiding force for language evolution. So far, languages have only become larger, and more feature oriented. This 'feature-creep' is bad in a lot of cases, but in many cases it allows programmers to develop powerful applications very quickly. I believe the hundred year language will allow developers to create applications(or whatever they will be called) by listing member components (I'll take a web server, two databasii, and a slice of cheese, please). The details will slowly be standardized out, much as the TCP/IP stack has been. This will cause development to be much more artistic, which I am scared to death of. This slow removal of detail will not hinder the specificity of the application, but will just make it easier to not think about the details. Object oriented is on the main trunk of the evolutionary tree, although Java may or may not be.

On natural language... (4, Insightful)

dmorin (25609) | more than 11 years ago | (#5710530)

I think that the question of whether natural language is the "way to go" misses out an important distinction. There will always be users of technology, and creators of new technology, and they must speak different languages. I do not need the same skills to drive a car as I do to build an engine. Being able to type does not make me a novelist. There are two different cultures at work.

Having said that, I expect that the user language should certainly be natural language -- the "computers should understand people talk, not the other way around" argument. People know what they want out of their machines, for the most part. Whether it is "change my background to blue and put up a new picture of the baby" or "Find me a combination of variables that will result in the company not failing with a probability of greater than 90%", people want to do lots of things. They just need a way to say it. Pretty much every Star Trek reference you'll ever see that involves somebody talking to the computer is an input/output problem, NOT the creation of a new technology.

It's when you build something entirely new that you need a new, efficient way to say it. Anybody remember APL? Fascinating language, particularly in that it used symbols rather than words to get its ideas across (those ideas primarily being focused on matrix manipulation, if I recall). Very hard for people to communicate about APL because you can't speak it. But the fact is that for what it did, it was a very good language. And I think that will always hold true. In order to make a computer work at its best, speak to it in a language it understands. When you are building a new device, very frequently you should go ahead and create a new language.

Graham has a truly peculiar idea (1)

Systems Curmudgeon (573857) | more than 11 years ago | (#5710534)

Graham expects programming languages to become logically simpler, because the computing inefficiencies imposed by simplicity will be a bearable cost. His idea of simplicity is nonsense for practical software developers. Developers need languages in which it is simple to notate the way they think of algorithms, and we hope that over time languages will help us that way. Graham says we should get rid of strings and use lists to represent them. But people naturally THINK in terms of character strings all the time, so it helps developers to support strings in a language. In C and C++ programming there is a very nasty concept that is implemnted with casting and multiple inheritance. When people learned to think clearly about this concept it got a name: "interface". Java and C# naturally support interfaces, removing a lot of mysterious programming garbage that previous languages required to make themuseable. THAT's language evolution, making it natural to program the way we developers think! To decide what programming languages will be in the future, we have to guess what developers will use as thoughtful building blocks in programs that interact with thousands of sources, routinely utilize quantum calculations, control artifical intelligence actors, deal with evolving changes in the components they interface to, and use totally new ways to get the attentions of the people who are using them. Our programs are starting to have to do all that now; we lack the languages to make the task at all routine; it's going to get worse before it improves, and it won't improve they way Graham thinks it wil.

sh (1)

cyber_rigger (527103) | more than 11 years ago | (#5710537)

It's about a third of the way to 100 years already.

Just another... (0)

Anonymous Coward | more than 11 years ago | (#5710550)

...article that makes me believe that C will last forever.

Types (2, Interesting)

jameson (54982) | more than 11 years ago | (#5710551)

"For example, types seem to be an inexhaustible source of research papers, despite the fact that static typing seems to preclude true macros-- without which, in my opinion, no language is worth using."

This bold statement is not only wrong (cf. Peyton Jones' latest work on macros in Haskell), but also misleading. Let's start off with some opinion: In my opinion, no language without static typing is worth using. The reason is simple: Because I am human. I make mistakes. And I don't want to spend the rest of my life writing test suites to check for errors which even trivial type systems can detect.

I agree with one thing: Languages will become simpler on a mathematical level. Anyone who has used ML or Haskell will have noticed how much easier these are to understand in comparison to any imperative language out there (and, by the way, in Haskell, Strings are lists of characters). But, at the same time, I truly hope that mechanisms for proving properties about programs will become not only more powerful, but also more widespread. I would like to have static verifications of my pre- and postconditions. I would like to verify that the result of my 'sort' function returns a permutation of its input for which each element is less than or equal to its successor. These are the things I'm looking forward to seeing in the future.

OOP is spaghetti code?!!! (1)

Slashdolt (166321) | more than 11 years ago | (#5710565)

I don't predict the demise of object-oriented programming, by the way. Though I don't think it has much to offer good programmers, except in certain specialized domains, it is irresistible to large organizations. 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.

At that point, I quit reading... As someone who's seen tons of spaghetti code in my life-time, it's generally because people don't understand OOP. Well written OOP, with inheritance, interfaces, etc. nearly eliminates the possibility of spaghetti code.

At that point, I believed the author didn't have a clue, so anything else he said was probably also irrelevant. Could he have meant visual programming? Beats me...

Slashdolt - A better dolt.

In the future... (1)

stanmann (602645) | more than 11 years ago | (#5710566)

Programming languages will still have the same 3 characteristics they have today.
First: They will be closely related to spoken language... Even Assembly language has a distant relationship with spoken language,
Mov ax,z
has a reasonably obvious meaning.
Second: They will be related to mathematics. Unless there is some quantum paradigm shift in processor technology, computers will still ultimately work with moving numbers around. And progamming will be moving those numbers around in a way to establish and observe meaning.
I would venture to predict that some variant or descendant of C will still be in use even if the dominant language is no longer english and therefore the base language has changed.

OOP (2, Insightful)

samael (12612) | more than 11 years ago | (#5710567)

I don't predict the demise of object-oriented programming, by the way. Though I don't think it has much to offer good programmers, except in certain specialized domains, it is irresistible to large organizations.

Where OOP comes into it's own, in my experience, is with GUIs. The ability to say:

If ThisScreen.Checkbox.IsTicked
ThisScreen.OkButton.Disabled = True

is immensely useful. Similarly, the ability to change the definition of your master screen template and have all of the other screens take on it's new properties is something that OOP is designed to allow you to do.

Similarly, anything where you tend to access things that act like objects in the first place suit it. Being able to say

CurrentDocument.Paragraph(1).Bold= True


Errval=MyDatabase.SQL("Select * from mytable where name='Andrew'")
Print MyDatabase.RecordCount

has made my life easier on numerous occasions. There are certainly non OO methods of doing the same thing, but I've never found them as flexible.

People who insist on making _everything_ an object, on the other hand, are idealists and should be carefully weeded from production environments and palced somewhere they'll be happier, like research.

100 years? (0, Troll)

electricthought (621964) | more than 11 years ago | (#5710576)

In 100 years Microsoft might finish securing their OS. The most stupid article I have ever read! knowing what you don't know is a true sign of intelligence

Notation (3, Insightful)

hey! (33014) | more than 11 years ago | (#5710577)

Lisp was a very early, successful language, because it was close to a mathematical notation and easy to implement on primitive computers. I think the uathor expects Lisp to remain a vital evolutionary branch because of its mathemtical roots.

I'm not too sure though.

A programming language is a notation in which we express our ideas through a user interface to a computer, which then interprets it/transforms it according to certain rules. I expect that a lot will depend upon the nature of the interfaces we use to communicate to a computer.

For example, so far as I know people never programmed in lisp on punch cards; it doesn't fit that interface well. It was used on printing terminals (for you young'uns, these were essentially printers with terminals). Lisp fit this interface well; Fortan could be programmed either way.

If you look at languages development as an evolutionary tree, Python's use of whitespace is an important innovation. However it presupposes havign sophisticated syntax aware editors on glass terminals. It would not have been convenient on printing terminals. Perhaps in 2103 we will have "digital paper" interfaces, that understand a combination of symbols and gestures. In that case white space sensitivity would be a great liability.

In my mind the biggest question for the future of languages is not how powerful computers will be in one hundred years, but what will be the mechanics of our interaction with them? Most of our langages presume entry through a keyboard, but what if this is not true?

Visual? (1)

boatboy (549643) | more than 11 years ago | (#5710580)

The article said nothing about visual programming models. I've always thought a really good, powerful, simple visual language would eventually make mainstream. Not just visual front-ends like VB or Softwire, but something completely visual and more fluid. Complex things are more easily grasped visually- a picture is worth a thousand lines of code? Anyway, that's the way it was on Star Trek and Minority Report.

win2.1k?? (1)

Connie_Lingus (317691) | more than 11 years ago | (#5710585)

Even if they only end up being a paltry million times faster, that should change the ground rules for programming languages substantially. Among other things, there will be more room for what would now be considered slow languages, meaning languages that don't yield very efficient code.

A million times faster??? Perhaps Win2.1K will finally be able to boot in less then 45 seconds...
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>