Just got this little link I thought I'd share: http://www.levenez.com/lang/history.html
A graphical genealogy of computer languages, from 1954 to now. Enjoy
There was another one of these I saw a while back but it had fancy colors. Anyone know what Im talking about?
If anything, this shows that programmers--as a whole--are about as creative as the Rebel Alliance when naming things.
A, B, C, D, E...
I'm seeing a lot more than individual letters....
It seems I have failed... In any case, I had no idea there was a J, and a K, and an M.
It seems that after the wild arrows of the early years, programming became more ordered, with a few languages improving every few years. Less choice than in past decades though..
Some arrows terminate well before the right edge of the graph, though the languages they represent are not dead.
In a way, that Fortran still lives is a marvel... although it really is a bit of a dinosaur...
Fortunately the whole programming language bit started to get organized around Fortran and later Algol... before that it was a mess. Pretty much every company would have their own programming language.
In later years more languages have been obsoleted, or de facto obsoleted; a few major, strong and fairly niched languages have taken over instead and that's good, really. No sense in having to learn twenty languages when you only need one that can do all those twenty could.
I wonder what they're doing with Haskell these days...
Some arrows terminate well before the right edge of the graph, though the languages they represent are not dead.
Yes, such as Haskell. It's very much alive these days. It was just, well... finished in 1998. They completed it. I think they're working on a Haskell II, but I'm not certain on that. Anyway, Haskell98 is the official Haskell. Compare it to C99 or something.
What the "f" is the sad language?;)
"We don't know what language engineers will be coding in in the year 2100. However, we do know that it will be called FORTRAN."
Nope, that would be the Z+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ language
No, it'll be called Fortran.
You'd be surprised at the amount of old Fortran code, or even the amount of new programmes written in obsolete versions of Fortran...
Well, I dont care about the other computer languages, I will always be coding in C:)
Well, if I had been given the choice, I'd be using C too instead of Fortran for my work. Unfortunately, I'm stuck with Fortran...
Not that it's too bad if you restrict yourself to the more modern constructs and concepts, but it still lacks some of the cnvenient things that I like about C. One curiosity about Fortran code I write is that I terminate every line with a ; although Fortran doesn't need it.
Is it me or are they missing a few languages in there that I know of... like RPG/400
WHERE ARE LUA!!:P
WHERE ARE LUA!!:P
That would be "Where is Lua?".
Lua is an embedded language. The chart doesn't seem to list embedded/Turing-incomplete languages, but correct me if I'm wrong.
What was the reason for using ; as an end of line character again? Was it only to allow multiple statements on a single line?
Was it only to allow multiple statements on a single line?
and to allow single lines to be split.
It was also originally an Algol feature, if I'm not mistaken. Which I might be.
What was the reason for using ; as an end of line character again? Was it only to allow multiple statements on a single line?
Making it easier for the parser, I guess... you need to know where the line ends and having to put ; there doesn't look as obtrusive as, say, $, # or @ would.
Fortran doesn't use this, so each line ends where it ends. To continue a line, you have the append it with & (in Fortran 90+), or make sure all your statements start in column 7 and then place a non-numerical character in column 6 to indicate that that line is the continuation of the one above it (Fortran 77 and under).
When Fortran came out, punched cards were the state of the art, i.e. one card==one line.
Pete
The chart doesn't seem to list embedded/Turing-incomplete languages, but correct me if I'm wrong.
More like the chart doesn't list lots of languages just so it would fit. There are at least two "embedded" languages there (JavaScript, PostScript) and some of the other ones are barely Turing-complete ;-)
When Fortran came out, punched cards were the state of the art, i.e. one card==one line.
I know, that's also why Fortran, by default, still limits you to writing all your code between columns 7 and 70 (or so), and why old-school Fortran programmers still use no comments in their code, abbrevite variables to their shortest possible form (one or two characters) and insist on using implicit typing (eg, implict real (A-H, O-Z)).
Being used to C, I just find it hideously to not be able to break a line wherever I want, or use constructs like a=b=c=1...
Where is HTML and Variables?
There was another one of these I saw a while back but it had fancy colors. Anyone know what Im talking about?
Yes, it was a PDF. I have it at work :/
From what I've heard, many schools switched from C++ in programming classes to Java. Can you believe that?
Java. Wanna-be C/C++. I've been working with it recently, and have found nothing even remotely useful about the language, except that it can be incorporated into a website, but isn't that what Flash is for?
I mean, Java takes pretty much everything C++ has, except it's more error-prone. Not to mention... it's mostly event-driven. I find event-driven programming to be quite weak. It doesn't necessarily give you the same amount of control you have with frame-by-frame object oriented programming, which Allegro utilizes.
Compatibile with all platforms? That's because it requires you to download a runtime package. For those as lazy as I am, it's a great hassle just to download and install the runtime package. From what I heard, merely compiling a program on a certain platform will mark it compatible with the said platform. I think that's much less of a hassle on the user.
It's just silly. Whoever thought it would be a great idea to switch from C++ to Java should be slapped in the face. Multiple times.
Soga, you might want to slap the AP Computer Science committee. From my understanding, they decided a few years back that any C/C++ programming classes in high school will not be rewarded with college credit. They only acknowledge Java. Or, perhaps that was only the AB version...
Anyway, they both have their points.
Hmm... Java has a much stronger object philosophy than C++, though less than Smalltalk. Installing it is just downloading a 15mb file and executing it.
The Java environment lets students forget about pointers, memory allocation and deallocation and all that stuff that is not strictly OOP, to focus only in the theory.
The Java environment lets students forget about pointers, memory allocation and deallocation and all that stuff that is not strictly OOP, to focus only in the theory.
... which is pretty bad. I'm not sure why they would do this; I'm confident that students are capable of understanding pointers and memory allocation just as well, and they are important things to know about. It seems to me pretty asinine to remove such a vital chunk of knowledge from a curriculum.
Also, the lack of value semantics in Java really annoys me. And then there's the lack of generics prior to 1.5 (which most still teach). And of course, it's slow.
... which is pretty bad. I'm not sure why they would do this; I'm confident that students are capable of understanding pointers and memory allocation just as well, and they are important things to know about. It seems to me pretty asinine to remove such a vital chunk of knowledge from a curriculum.
They don't remove it from the curriculum. But in a subject about OOP, losing time in pointers is useless. At least here, the main OOP subject requires to do a big project and not needing to care about them [pointers] makes possible to do more complex projects. Though we don't use Java, we use Eiffel, which has a much stronger OOP philosophy than both Java and C++, plus it incorporates design by contract built into the language, which is good for multi-team projects (as this one is). [yes, multiteam: 3 teams of 3 people each. Each team does a different but similar in some aspects project. It's mandatory to reuse classes between teams]
For pointers stuff there's already data structures and algorithms. We use C++ there.
Java is very used for database based and distributed applications.
Here I agree with Oscar. At school they don't teach you a language, but a concept and use the language to show you examples. In example, here they use Pascal for teaching structured programming, C for algorithms, Prolog for logic, Gofer for functional, Smalltalk for object-oriented, Java for client/server architecture, and some others I cannot remember right now.
If I put in my curriculum that I know Gofer, they might not know what that is. But I could switch to the correct form, and say I know the basics of functional programming, and put Gofer as example. That opens a wider range for the future.
We did Gofer in our first year... I thought it was some fun, although I wouldn't at the time have called it programming...
I followed a link from that page to the creator of C++'s page and found this amazing discovery!
C++ is a general purpose programming language with a bias towards systems programming that
* is a better C
* supports data abstraction
* supports object-oriented programming
* supports generic programming.
There! It's settled! C++ is better than C!
That aside, that's a neat link. Thanks.