Slashdot Mirror


A Brief History of Programming Languages?

Aviancer asks: "French computer historian Éric Lévénez has compiled a family tree of programming languages that I found quite interesting. This prompted me to wonder if there was any controversy on the issue of language lineage and my searches found another page on the same topic. I thought I'd pull an 'ask the audience' to see if there were any corrections on either (both?) pages to be made." What other computing language origins are you aware of that may not be mentioned in either page?

108 of 598 comments (clear)

  1. I finally found Simula by Sheetrock · · Score: 4, Interesting
    I can't believe that was made back in the 60's.

    It is (a) percursor to object-oriented languages such as Smalltalk and C++, and was the first strongly-typed language (Python being the most recent.)

    --

    Try not. Do or do not, there is no try.
    -- Dr. Spock, stardate 2822-3.




    1. Re:I finally found Simula by Homology · · Score: 2, Interesting
      I can't believe that was made back in the 60's.

      Actually, my first exposure to object oriented programming was in Simula when I took a programming course in early 90'ies.

    2. Re:I finally found Simula by joto · · Score: 4, Interesting
      Exactly an example of the kind of discussion the original poster intended. The diagram shows Simula as a precursor for SmallTalk. Which is true if you look at time, but probably not if you look at causality. It's very likely the people who invented SmallTalk didn't even know about Simula, or realized that it was "object-oriented".

      C++ on the other hand, was heavily influenced by Simula, as Stroustrup has told in numerous interviews, books, articles, etc...

      Whatever you mean by Python being the most recent strongly-typed language, I can't even imagine. If you haven't found a newer strongly typed language, you can't have looked very far. Wether Python really is strongly typed is also up for discussion, but mostly because there is no clear definition of what this implies.

    3. Re:I finally found Simula by dar · · Score: 2, Funny

      Python considers itself? How anthropomorphic.

      --
      My other Slashdot ID is much lower.
    4. Re:I finally found Simula by khallow · · Score: 2, Insightful

      Yes, it thinks so too. But you gotta empathize with the programmers if you want to figure out what they really meant.

    5. Re:I finally found Simula by alangmead · · Score: 3, Informative

      In the interview Daddy, Are we There Yet Alan Kay mentions that he read a paper on Simula in 1966. As he says in the interview much is lost to the programming community because we don't have a good sense of history.

    6. Re:I finally found Simula by chthon · · Score: 2, Informative

      You should try to find an archive containing old Byte Magazines. When Smalltalk-82 came out, they devoted a whole magazine to it and the Xerox Alto.

      In the magazine you will find that the people based Smalltalk indeed on the work done for Simula, also for the first version of Smalltalk (Smalltalk-76, I think).

    7. Re:I finally found Simula by sjames · · Score: 2, Insightful

      Python considers itself? How anthropomorphic.

      Well, it does support introspection, after all.

  2. This has been around forever by MattGWU · · Score: 5, Informative

    Might have been updated lately, though. Always interesting, though. There's one for UNIX, too.

    --
    "These people look deep within my soul and assign me a number based on the order in which I joined" --Homer re:
  3. looks familiar by ambrosine10 · · Score: 4, Informative
  4. Excuse me.. by I+am+the+Bullgod · · Score: 5, Funny

    Where's the equal time for creationism? I don't believe in this "evolution" stuff. I think God created .NET (cough, cough) and then rested on the seventh day.

    1. Re:Excuse me.. by Shadow+Wrought · · Score: 5, Funny
      ...and then rested on the seventh day.

      This is actually a common misperception. The Old Hebrew word for "rested" can also be translated into "rebooted." Hence the confusion. Billical scholars still debate which one is the more likely interpretation.

      --
      If brevity is the soul of wit, then how does one explain Twitter?
    2. Re:Excuse me.. by Sloppy · · Score: 5, Funny

      perl pretty much disproved Intelligent Design.

      --
      As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
    3. Re:Excuse me.. by I+am+the+Bullgod · · Score: 5, Funny

      Correct. In the same vein, "sabbath" has also been loosely translated as "day of downloading updates".

    4. Re:Excuse me.. by Eberlin · · Score: 5, Funny

      Funny, I thought that was Patch Thursday.

      Behold, the OS Creed!!!
      (it's a parody, relax. Don't get too uppity)

      We believe in one OS,
      the Father, the Almighty
      Creator of Heaven, Earth, and the Internet,
      Of all that is seen, unseen, and can be seen in beseen.com.

      We believe in one Lord, Jesus Christ,
      the only instance of The Father
      eternally begotten of the Father
      God from God, Light from Light,
      true God from true God
      Instantiated, not made. One in being with the Father
      Through Him, all objects were initialized.

      For us men and for our salvation,
      He was downloaded from Heaven
      By the power of the Holy Spirit,
      He was ejected by the Virgin Mary, and became Man

      For our sake he was executed under Pontius Pilate;
      He had a GPF, froze, and was abnormally terminated.
      On the third day he was rebooted
      in fulfillment of the OS documentation;

      He was uploaded into Heaven
      and is installed as a plugin at the right hand of the Father.
      He will come again in a future release as a patch to fix all bugs and viruses
      and His kingdom will loop infinitely.

      We believe in the Holy Spirit, the Lord the power supply,
      who proceeds from the Father and the Son.
      With the Father and Son He is worshipped and glorified.
      He has flamed, spammed, and has sent streaming audio to the Prophets.

      We believe in one holy catholic and apostolic user group.
      We acknowledge one CTRL-ALT-DEL for the rebooting after errors.
      We look for the final upload,
      and life of the world to come. [OK]

    5. Re:Excuse me.. by EmbeddedJanitor · · Score: 2, Funny

      ... and Bill Gates created God.

      --
      Engineering is the art of compromise.
    6. Re:Excuse me.. by Blind+Joe+Death · · Score: 2, Informative

      It's a take off of the Nicene Creed, not the Apostle's Creed. This Creed was written at the Council of Nicea in A.D. 325, in an attempt to settle some theological disputes of early Christianity. It was later revised at the Council of Constantinople in A.D. 381.

      Since the Roman Catholic, Eastern Orthodox, Presbyterian, and most other Protestant churches affirm this creed, its says pretty accurately the basic stuff that most Christians believe in. And speaking of most Christians, the use of the word catholic in the Creed means "universal," not "run from Rome by a frail man wearing a silly hat."

  5. B0 0C 0F 3E 9E 51 5 by American+AC+in+Paris · · Score: 5, Funny
    In the beginning, there was 0.
    And it was good.

    Then, root created 1.
    And that, too, was good.

    Then, root created assembly.
    And that totally rocked.

    Then root created HCF.
    And it was very, very bad.

    --

    Obliteracy: Words with explosions

  6. INTERCAL by tim_mathews · · Score: 4, Funny

    I don't see INTERCAL on there anywhere. Of course since it was written to be different from all existing languages, it can be kinda hard to fit in a language tree.

    1. Re:INTERCAL by john1125 · · Score: 2, Informative

      I believe that APL, DIBOL {an old DEC COBOL wannabe} language} and DBL a derivative of DIBOL are also missing. I seem to remember others circa the Xerox Sigma 9 are mising from the lists. I believe there were a variety of old DEC & Xerox etc. languages that need could be added.

    2. Re:INTERCAL by jonadab · · Score: 2, Informative

      The INTERCAL tree looks something like this...

      INTERCAL (1972) --> C-INTERCAL (1990) --> THREADED INTERCAL

      INTERCAL also has had some influence on other languages, such as unlambda,
      so an argument could be made for including it in the chart. (Mind you, I
      would not want to have to defend such an argument against all possible
      rational counterarguments.)

      --
      Cut that out, or I will ship you to Norilsk in a box.
  7. What about Assembly language? by Anonymous Coward · · Score: 4, Insightful

    The most significant programming language of them all is not even listed.

  8. this is not even a dupe, a tripe or a quadruple by Knights+who+say+'INT · · Score: 2, Insightful

    This is prolly the Slashdot record of n-ple repeated article. This comes up every few months :-O

  9. BBC BASIC!!! by Anonymous Coward · · Score: 5, Interesting

    They have transparantly missed out BBC BASIC. A BASIC language, which included some of the better programming constructs of Pascal.

    Half of the UK's current programmers cut their teeth on the BBC Micro/Archimedes BASIC implementations.

    1. Re:BBC BASIC!!! by DrSkwid · · Score: 2, Informative

      Shame you are AC. I hope you see this :

      The Brandy Basic V Interpreter

      What is it?

      Brandy is an interpreter for BBC Basic (or Basic V as it is refered to here) that runs under a variety of operating systems. Basic V is the version of Basic supplied with desktop computers running RISC OS. These were originally made by Acorn Computers but are now designed and manufactured by companies such as RiscStation, MicroDigital and Castle Technology.

      What does it run on?

      The interpreter runs under RISC OS, NetBSD, OpenBSD, reeBSD, Linux, Mac OS X, Amiga OS, DOS using the DJGPP DOS extender and Windows as a console application. The program is written in ANSI C and comes in source form so it should not be difficult to compile it to run under other operating systems.

      Brandy is distributed under version 2 of the GNU General Public License.

      The current version of the program is 1.16 (January 2004).

      --
      There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
    2. Re:BBC BASIC!!! by BinaryCodedDecimal · · Score: 2, Interesting

      That's really interesting. I like the way that * commands get redirected to the host shell like they used to do on the BBC/Archimedes. I had never thought of the * character as being sort of an escape character to talk to the shell until I tried to do a *fx 0 and got a 'Bad command or file name' back!

  10. No teaching/learning languages? by madprogrammer · · Score: 4, Interesting

    I learned to program with GWBasic, QBasic, TurboPascal, Modula-3 - none of which made it into the chart...

    1. Re:No teaching/learning languages? by |>>? · · Score: 2, Informative

      Modula-3 exists between 1985 and 1990, 9th down.

      --
      |>>? ..EBCDIC for Onno..
    2. Re:No teaching/learning languages? by prgrmr · · Score: 4, Insightful

      Also, BASIC was not used for anything strong, as in enterprise-class application developement.

      Don't make guesses about what you don't know for a fact.

      There are several million users world-wide running enterprise applications written in some varient of BASIC. One example is about 20% of the HMO's in the US are running an application owned by CA and written in either Pick Basic or UniVerse Basic (a product now owned by IBM).

      Pick has it's own complex family tree

  11. I'm disappointed by GillBates0 · · Score: 4, Funny
    No mention of Whitespace, Brainfuck, Argh!, BlooP, or Ook!.

    Oh maybe that's why they called it a "Brief History".

    --
    An Indian-American Hindu committed to non-violent thought/speech/action alarmed by the global explosion of radical Islam
    1. Re:I'm disappointed by nacturation · · Score: 4, Funny

      Oh maybe that's why they called it a "Brief History".

      It's like the Reader's Digest version of Stephen Hawking's A Brief History of Time:

      "Well, here we are."

      The end.

      --
      Want to improve your Karma? Instead of "Post Anonymously", try the "Post Humously" option.
  12. Algol 68 influence on C by jejones · · Score: 2, Informative

    Neither diagram shows any, but I think it could be argued to exist--the keywords struct and union, long and short (note that the "at least 64-bit type" C9X mandates is called long long int, just as it would likely be called in Algol 68 for a target where int is 16 bits), the notion of coercion. (There may well be others I am overlooking.)

  13. Pascal by Moby+Cock · · Score: 2, Interesting

    The pascal branch seems to die out around 1996ish. I remember using it in 2nd year programming as a teaching language. That was in 1995.

    Is Pascal all but dead?

    What do schools use now as the teaching language? Surely not C. I have nothing against it but it isn't for beginners.

    1. Re:Pascal by pjt33 · · Score: 2, Insightful

      Java, mainly. I don't think that's a great language for beginners either, although it might allow teaching them to think in an OO way early on, without having to break procedural habits.

    2. Re:Pascal by arodland · · Score: 2, Insightful

      C++ and Java, and sometimes C. Lousy teaching languages, but they're usually accompanied by lousy teaching anyway.

    3. Re:Pascal by bird603568 · · Score: 2, Interesting

      The year before i got in to highschool, they taught qbasic then turbo pascal, then either fortran or c. I don't rember which one was first. My freshman year it was changer to VB, them turbo pascal, then 3 classes of c++. My sophmore year they dropped turbo pascal. My junior year they dropped a c++ class and put a java class that only required 1 c++ class to take. This year, all c++ was dropped and replaced with java. I have no clue why. I was luck, I learned turbo pascal, vb, c++ and java.

    4. Re:Pascal by dickko · · Score: 5, Interesting

      Sadly, my university moved away from teaching Pascal (at 100-level) in 2000 and started teaching Java instead. Has caused headaches for the teaching staff and tutors ever since ever since:

      • Instead of learning the purely the basics of programming (statements, operators, conditions, looping...) they are thrown in the deep end. Now they have a little bit of programming knowledge, and a lot of a freaking huge api... End result, they have a huge api to play with, but they don't know how to...When I first started tutoring, at least the students knew the difference between calling a function and declaring one, now they aren't so sure...
      • In addition to reducing the amount of time learning the basics, they've thrown more at them. Before it was procedures, functions, looping recursion etc. Now on top of that they have inheritance, polymorphism, abstract classes and so on to deal with...

      And here I was thinking it was just the students getting dummer...

    5. Re:Pascal by joto · · Score: 3, Informative
      Is Pascal all but dead?

      Pascal is dead. Object Pascal with various other extensions lives on. It's called Delphi.

      What do schools use now as the teaching language? Surely not C. I have nothing against it but it isn't for beginners.

      They use Java. Or maybe soon C#

    6. Re:Pascal by joto · · Score: 2, Informative
      Actually, according to the chart (which I believe is correct in this case) the Modula chain has its roots in Pascal...

      That shouldn't really surprise you too much, considering Niklaus Wirth was the man behind Pascal, Modula, Modula-2, and Oberon.

    7. Re:Pascal by GaepysPike · · Score: 5, Interesting

      Maybe it's just me, but I think C is a excellent language for beginners. The year after I finished undergrad (about 3 years ago now, so not too long out) they started using Java as the first language you learn, and I personally think it's a terrible mistake. Now, I am in no way saying I'm some superb programmer, but I definitely think I know my stuff more that the students coming after me who began their base of knowledge with Java.

      Don't get me wrong, it can be a tough one to start out with, especially if you've never programmed before. But the learning curve is steep, and in the end you come out with a much better understanding of very crucial stuff; data manipulation, memory, pointers, bits/bytes, and simply when the heck is going on internally with a program, because of everything C lets you muck with (and true, perhaps screw up). And so maybe it's just due to my personal experience, but learning Java after drove me nuts. I just felt like there was whole additional level of abstraction because of all the stuff that I feel java does/hides for you. Not to mention that I think Java came easier, having the more low-level (admittedly not super-low) understanding that C gives you.

      Anyway, I'll come down off my soapbox now...

      --
      4 out of 3 people have trouble with fractions
    8. Re:Pascal by Aldric · · Score: 2, Insightful
      I spent a lot of time wishing they had taught me C after college. It comes as hell of a shock to someone that's learnt on Java. I spent quite some time cursing at the ever present segmentation fault during the first few weeks, and don't even get me started on pointers...

      Comp sci courses need to be changed a bit. I went from writing some stupid diary or something in Java with a database backend to writing a production system in C with a database backend - only my lecturers had failed to point out that you need to design the database differently when you are doing 100,000+ inserts a day and very few selects. Real-world knowledge needs to at least make an appearance during education.

    9. Re:Pascal by pz · · Score: 5, Insightful

      BZZZZZZT. Wrong. C is an awful language for beginners, just as BASIC, FORTRAN, APL, ALGOL60, and so forth were, and Java, Pascal, and so forth continue to be because it is mired in syntax.

      Software Engineering has absolutely nothing to do with syntax. Nothing. Would you ever consider that philosophy is the study of spelling? No, so why would you think that forcing a naive user to stumble hither and yon against arcane syntax is a good way of teaching programming concepts? You want to start --START-- with a language that has incredibly simple syntax. Like Lisp, Scheme, and the like. Then you can spend time worrying about things like data structures, lexical and dynamic scoping, control structures, etc. Once these fundamental notions are understood, then you can spend time with syntax.

      --

      Put my fist through my alarm clock with its ding-dong death inside my ear. - The Blackjacks.
    10. Re:Pascal by SpacePunk · · Score: 2, Interesting

      Forget Pascal. They should start by teaching assembly. Personally, I wouldn't hire a programmer that didn't at one time or another do a complete program in assembly.

    11. Re:Pascal by HeghmoH · · Score: 2, Insightful

      I always thought that programming should be taught from the outside in. Start on the extremes; learn an incredibly high-level language that shows you nothing of the nuts and bolts, like Lisp. At the same time, learn assembly, preferably a nice clean assembly that's easy to follow. Work your way up from assembly and down from Lisp until you meet in the middle somewhere.

      Of course, I haven't ever tried this, so maybe it's just a load of crap.

      --
      Mod down posts with a "Free Mac Mini/iPod" sig, they're spam!
    12. Re:Pascal by tfmkayaker · · Score: 3, Interesting

      LISP is an awful language to learn as a first language, not because of it's syntax (which is bad enough) but...

      BECAUSE IT USES A COMPLETELY DIFFERENT THEORY OF COMPUTABILITY THAN EVERYTHING ELSE.

      Most other languages use turing machines as their basic computability theory.

      LISP uses micro recursive functions

      Each is as strong as the other - but involved radically different thought processes.

    13. Re:Pascal by master_p · · Score: 2, Interesting

      A functional language IS good to start with as it resembles math.

      No, it is not. In fact, functional languages are useless. Yes, I am going against the establishment, but there is a perfect reasoning behind that; read on.

      Side-effects like assignments makes program justification very hard

      The problem is not about not changing state, but about respecting the constraints of state. Functional languages begin with the foundamental assumption that changing state is something wrong. Well, they are mistaken: a good programming language should allow state change, but only when it can be proven by the compiler that the assumptions made by its authors and the program's constraints are proven.

      should therefore not be used when students are learning to design algorithms and to prove them.

      Proving an algorithm does not make it correct in the first place. I have written many correct algorithms in ML, but they were wrong: they did not do what I expected them to do, although they were correct from a mathematical point of view.

      The argument that you should have a math background in order to learn functional languages is not useful

      It is! people without a mathematics background have a real hard time with functional languages, because functional languages require prior knowledge to set theory, category theory and lambda calculus.

      software engineering is all about applying math to solve a problem using a computer

      No, it is not. Software engineering is all about applying logic to solve a problem, not math. By using math alone, an algorithm can be correct, but not do what it is supposed to be doing.

      Think about formal specification languages, intractability and so on

      Formal specification languages have nothing to do with functional programming languages. The output of Z can be easily feed to C. In fact, this is the most usual case.

      If you do not know math you can not design and write serious software

      Well, isn't what you're saying contradicting with your previous statement that 'a math background is not required to learn functional languages'???

      You can dabble with Perl, Visual Basic, scripts, C, C++, Java and shit like that, but you won't be an real engineer writing programs that other people may have to entrust their lives

      The problem with conventional programming languages is that they do not carry the designers' assumptions/constraints with them! If they did, then compilers could check if the assumptions/constraints are not violated.

      Example: the function 'strlen'. The foundamental assumption for 'strlen' not to fail is that the parameter string pointer is not null. Yet, the compiler easily accepts the following:

      char *str = NULL;
      int i = strlen(str);

      Why does the compiler accept such a piece of bullshit code? it is because the developer of 'strlen' makes an assumption that the user of 'strlen' does not make.

      Therefore: The problem with conventional programming languages is that programs are provided without their assumptions/constraints.

      In fact, an imperative compiler could easily elimininate a big source of problems regarding pointers if it simply attached 'usage' attributes to each variable! For example:

      void freeString(char *p) {
      free((void *)p);
      }
      int main() {
      str = strdup("the quick brown fox");
      freeString(str);
      printf(str);
      }

      The above code has an obvious error, doesn't it? the error is that 'freeString' frees the string, and 'printf' uses the freed memory.

      It is obvious to us, why is it not obvious to the compiler?

      Let me tell you why: it is because the 'p' parameter of function 'freeString' is not marked 'invalid' after using 'freeString'!!!

      Here is the same code annotated with 'usage' attributes:

  14. Caml missing by GrAfFiT · · Score: 2, Informative

    The Caml language (pronounce "Camel") is missing.
    Caml is a programming language, easy to learn, easy to use, and yet amazingly powerful.
    It is developed and distributed by INRIA (the main French research institute for computer science), since 1984. It is freely available for Unix, PC or Macintosh.
    There exist two flavors of Caml: Caml Light and Objective Caml. Caml Light is merely a subset of Objective Caml, especially designed for teaching and learning the art of programming. In addition to the Caml Light's core language, Objective Caml features a powerful modules system, full support to object-oriented paradigm, and an optimizing compiler.

    More information here.

    1. Re:Caml missing by e2ka · · Score: 4, Funny

      Look harder.

  15. Note: by tubbtubb · · Score: 4, Funny

    They misspelled:

    The Devil -> Fortran I

  16. Where is Konrad Zuse's programming language ? by Anonymous Coward · · Score: 2, Interesting

    Plankalkul ??

  17. Re:Java by rewt66 · · Score: 2, Informative

    Believe it. The only thing it influenced was the name.

  18. Movie ++ by LegendOfLink · · Score: 5, Funny

    I think they forgot Movie++, which of course, runs on MovieOS. It's a great programming language, you navigate classes and objects in full blown 3d floating experiences!

    Every video can be programmed to zoom up until you can see microscopic particles WITHOUT any loss of resolution!

    My personal favorite is when hackers run virus attacks against giant "Gibson" computers. See, you just don't get a BSOD, you get an awesome 3d graphic eating your desktop!

  19. Re:Python's not strongly typed by Anonymous Coward · · Score: 2, Informative

    I suspect that by "runtime typed" you mean dynamically typed (typing determined at runtime). A language can be both strongly typed *AND* dynamically typed. Their orthogonal.

    dynamically vs. static
    strong vs. weak.

    Perl is dynamic and weak
    Lisp is dynamic and strong [or static and strong if you want ;) ]

  20. Found in Wired by jonnylawUSA · · Score: 2, Interesting

    A similar historical relationship of programming languages was featured in a "centerfold" of Wired within the past two years. I forget the exact issue, but was more colorful. Unfortuneately, wired.com tends to not put these up on their web archieve. Any one else remember this?

  21. Somewhat odd... by jameson · · Score: 3, Interesting

    Nice... but is it really neccessary to list tiny little update releases for current languages? And what precisely "defines" a language here-- should we treat SML/NJ as a different language than SML, because it supports continuations? Or current GHC as something other than Haskell98 because of its rank-n polymorphism and built-in support for arbitrary Arrows? And if drafts are in there (Fortran 2000), what about other drafts (ML 2000)?

    And, finally, where's Scala (http://scala.epfl.ch/) on that graph?

  22. Re:Holy grail of programming languages by samvo · · Score: 5, Funny

    Assembly Coders - these are extinct group of primitive form of life
    before the advent of culture and civilisation, althought without access
    to any formal human-recognizable language structure they were amazingly
    versatile in their skills to construct reality by pushing and popping strings of
    little pebbles from holes dug in the ground. Ancient arcade machines
    sometimes found in desolate pubs testify to their once glorious existance.

    C - C Programmers are more like highly evolved alien beings from outer space
    who spoke purely in binary and pointers. They often take the disguise as
    unsightly middle aged man with beard and glasses amongst earthlings.
    They do not care for the artifacts of language or culture, they only care
    for the semantics. Their job is to construct and engineer the roads,
    the transportation, the network lines, the infrasture that our civilazation
    have come to depend very much on. They are very hard to communicate with as
    intepreting their language requires unusually greater IQ than most of
    our earthlings can aspire to.

    C++ - C++ Programmers are born again C programmers who realised their
    folly of seeing the world in pure binary and pointers. They want to see
    reality more concretely thus they talk in objects and classes.
    More often than not, C++ Programmers are still attached to their
    old ways and their attempts to communicate with others often result
    in abstrated hodgepodge just as complicated as the C
    language. Most C++ Programmers feel they may have had a
    deprived childhood.

    Java - Java Programmers are like C++ programmers except they were
    brought up in aristrocat families. Their manners in their language
    are refined and elegant althought at times may appear slightly
    pretentious and artificial. They are very socially closed and
    mix with their own kind only, basically they dont like outsiders
    playing in their upper-middle class private school sandbox.
    Being economically previliged means they have ample access to inheritance
    like network libraries, etc. Although their reputation is good amongst
    corporate circles, they are rumoured to be impotent when it comes to GUI.

    Visual Basic - Visual Basic programmers are perceived to be like your
    every day a dime a dozen computer science graduates. They
    are naive, confident and sometimes a little brash in their perceived
    ability to deal with the real world. Their language developed from high school
    jargons and street slang though highly vulgar in the eyes of other programmers,
    were often effective (or adequate) in solving a lot of every day
    ordinary kitchen and sink problems. Often the case, a job completed
    by a Visual Basic programmer, thought cheap and fast leaves little to be desired,
    tales of half patched pipes leaking from under kitchen sink are
    well known in the industry.

    C# - C# Programmers are Java programmers wannabes wanting to achieve the same
    social status and previledge that Java programmers have, C# programmers
    lacks the authentic social grace and ethics that could help them rise above the
    Visual Basic suburbia coarse mentality that tends to predominate them. C# Programmers
    also tends to like screen widgets that are glitzy. They are the type of people
    that the marketing department love to target in their product focus group.

    COBOL - Cobol Programmers are not really people, they were actually mutated
    from hole-punch card readers. they have no human affectations
    and thus are very capable of churning out millions of incredibly mundane and
    humanly degrading pages and pages of printed accounts reconciliation codes.
    although they were disbanded by the human rights organisation, Cobol
    programmers were actively recruited just before the millineum to solve the Y2k bug
    which they were originally responsible for.

    Fabled Programmers - the are many species of programmers that claim
    to exist but no one have ever met any of these illusive creatures in

  23. Don't believe him by Alien54 · · Score: 3, Funny
    Bill Gates invented everything.

    Really

    ;)

    --
    "It is a greater offense to steal men's labor, than their clothes"
  24. Re:Guys come on, Java sucks by abborren · · Score: 2, Interesting
    Agrred, OOP sucks, and this is why.

    At least it is an interesting read. Actually, I like OOP somewhat. When it is not overdone.

    --
    ><////>
  25. Python *is* strongly typed by Rob+Riggs · · Score: 4, Informative
    The parent did not deserve to be modded up as "informative". An accurate title for the post would be "Python is not statically typed."

    Python is a strongly typed language. It is in the class of strongly- and dynamically-typed languages. Read this article on Python's type system for a good overview and a little information on "type" terminology.

    --
    the growth in cynicism and rebellion has not been without cause
  26. Fine....here's the family tree for Windows then by MattGWU · · Score: 3, Interesting
    --
    "These people look deep within my soul and assign me a number based on the order in which I joined" --Homer re:
  27. Original and Updated by douthat · · Score: 5, Informative

    I've had the O'Reilly poster on my wall since they released it. So when I saw the graphic on this guy's site, with a January 16, 2005 copyright, and no reference of O'Reilly's poster, I thought it smelled fishy.

    Just take a look at the two images:
    http://www.oreilly.com/news/graphics/prog _lang_pos ter.pdf
    vs
    http://www.levenez.com/lang/history.h tml#02

    and tell me you don't see the similarities.

    Anyway, so I thought this guy ripped off O'Reilly's poster, but, as it turns out, if you look in the small print on O'Reilly's poster, you'll see that he was the legitimate creator of the image. I even realized that it's been updated a little bit since O'Reilly released it.

    So, yeah, we've seen this story before, however, the link provided in the summary above is new and newsworthy, becuase it gives more links to learn about each individual and family of languages and updated the previous graph.

    --
    She loves me: 09F911029D74E35BD84156C5635688C0 She loves me not: 09F911029D74E35BD84156C5635688BF ...
    1. Re:Original and Updated by brrskg · · Score: 3, Informative

      If you look on Éric Lévénez Computer Languages History page you'll see that there is a link to O'Reilly. "O'REILLY has published a color version of The History of Programming Languages."

  28. Re:Python's not strongly typed by arkanes · · Score: 5, Informative
    There are 2 axis of typing. Note that they are scales, not boolean attributes

    Dynamic vs. static (or runtime vs. compiletime) and strong vs. weak. Dynamic/static typing is determined by when the type requirements are detected and enforced. C is statically typed - there's no runtime manipulation (or even concept of) types at all. C++ is mostly statically typed but has some runtime typing capabilities. Java is largely statically typed but also checks types at runtime. Python is entirely dynamically typed.

    Strong vs. weak affects what kind of type operations are allowed. Typeless (or single-type) languages like TCL are the weakest type, because they allow any operation on any type. Perl has multiple types but does lots of implicit conversions, making it weakly typed. Python performs very few implicit conversions (mostly between different representations of float) and therefore is strongly typed. Pascal doesn't even allow type conversion between pointers or different sizes of arrays and is therefore *really* strongly typed.

    There's also some other characteristics of typing, like whether it's class based (C++), does or does not allow user defined types, distinction between UDTs and primitive types, Objects vs primitives, duck typing, etc.

  29. Pretty funny... by SuperKendall · · Score: 3, Funny

    ...though I feel you are rather lucky having the last entry fall off the edge of the post and thus reduce significantly the flameage you may get.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  30. Karma Whoring! by wiggles · · Score: 4, Informative

    For those, like me, who have no idea what this guy is talking about, see this.

    1. Re:Karma Whoring! by zobier · · Score: 2, Informative
      Why don't you just go all out and quote it
      HCF /H-C-F/ n. Mnemonic for `Halt and Catch Fire', any of several undocumented and semi-mythical machine instructions with destructive side-effects, supposedly included for test purposes on several well-known architectures going as far back as the IBM 360. The MC6800 microprocessor was the first for which an HCF opcode became widely known. This instruction caused the processor to toggle a subset of the bus lines as rapidly as it could; in some configurations this could actually cause lines to burn up.
      --
      Me lost me cookie at the disco.
  31. Some corrections and additions by dmoen · · Score: 4, Informative

    Fortran is always shown as having come from a vacuum, but surely it was inspired by the various "Autocode" languages, of which "Mercury Autocode" is the most famous. (Note: this was all before my time.)

    Smalltalk is derived from Alan Kay's earlier language, Flex, which in turn stole heavily from Euler (Kay confirms this), which was the language Wirth designed before he did Pascal.

    Euler was an early example of a dynamically typed, garbage collected language with an algol-like syntax. Now we have python, javascript, and so on.

    Python is heavily based on ABC.

    Euler must have been a primary influence on Setl, which in turn influenced other languages. Setl was a dynamically typed, garbage collected language with an algol-ish syntax, with arrays (called tuples) and sets as first class values. The List comprehensions of Haskell (and more recently Python) come from Setl. Setl is the first language I know to have the 'slice' notation for extracting subranges from a list:
    list(i:j)
    list(i:)
    Although, i was 1 based, not 0 based, and j was a length, not an index. This slice notation was picked up by Icon, which changed j from a length to an index, and introduced negative indexes. From Icon, slice notation migrated into Python, presumably via ABC (I have no ABC documentation to check), where indexing changed from 1 based to 0 based.

    The type names in C all seem to come from Algol 68. They couldn't have come from B or BCPL, which do not have types. Examples of C/Algol 68 type names include "int", "char", "long int" and "void", as well as "struct". This is C:
    struct {char c; int x;} s = {'x', 42};
    This is Algol 68:
    struct (char c, int x) s := ("x", 42);

    Algol 68 has a +:= operator, but I think that comes from C. This is speculation, based on the observation that C's += operator was originally spelled =+, then changed due to the ambiguity of parsing x=+y.

    The second link shows Javascript decended from Java, which is surely wrong. Javascript was developed with no knowledge of Java. It was originally called LiveScript, then changed to Javascript for marketing reasons. I'm pretty sure that Javascript/Livescript got its object system from Self, the first prototype-based object oriented language. Self descends from Smalltalk.

    --
    I have written a truly remarkable program which this sig is too small to contain.
    1. Re:Some corrections and additions by Froggy · · Score: 2, Informative

      Algol 68 has a +:= operator, but I think that comes from C.

      Algol 68: designed 1963-1968, definition accepted in 1968 and published in 1969.

      C: designed 1969-73, first edition of "The C Programming Language" published in 1978.

      Algol 68's designers didn't take anything from C unless they used a time machine.

      --
      It is a woman's prerogative to change other people's minds.
  32. Re:Holy grail of programming languages by joto · · Score: 2, Insightful
    believe it or not in school we are being taught LISP.

    Lucky you. Maybe you can learn something useful then, instead of doing the trendy stuff.

    So far the teacher said the only use it for AI.

    Unlucky you. You have an idiot teacher that can't even explain why lisp is so great. Think about this: AI is the hardest problem computer scientists ever need to solve. If a language is good enough to be used for research in AI, it's good enough to solve most any other problem too.

    The only problems with lisp are cultural. Many lispers are elitists who don't care for stuff other programmers need, such as distribution of binaries, portability between lisp-implementations, a standard, etc... And most mundane programmers hate lisp because it has lots of silly parentheses.

    I don't really care for it, good thing its only once a week.

    Try to pay attention. You might learn something.

  33. Re:i learned something today by johnnyb · · Score: 2, Interesting

    The Smalltalk implementation Squeak is AWESOME. With their eToys you can do amazing things without typing any code. It is truly a wonder to behold.

  34. Re:How little improvement there has been... by MonkeyCookie · · Score: 2, Insightful

    The hardware isn't the problem. There's plenty of processing power to do something like that. The problem is that nobody has figured out how to make a programming environment that is both powerful and flexible like modern programming languages, yet extremely simple like legos.

    I suppose one could produce a graphical version of a current programming language, but that would be very complicated and slow to use.

    If you can figure out how to write something like this that creates large applications like Firefox, Word, or Visual Studio, you'd stand to make a fortune.

  35. The oldest language is still missing by presroi · · Score: 3, Informative

    Plankalkül was developed in the first half of the 1940ies by Konrad Zuse.

    Wikipedia has(as usual) for more information.

  36. Simula and Smalltalk by tpv · · Score: 4, Informative
    Which is true if you look at time, but probably not if you look at causality. It's very likely the people who invented SmallTalk didn't even know about Simula, or realized that it was "object-oriented".

    It's true on both time and causality.
    Alan says so himself here

    --
    Read more of this story at Slashdot.Read more of this story at Slashdot.Read more of this story at Slashdot.
    1. Re:Simula and Smalltalk by Inthewire · · Score: 3, Funny

      ...debugging myself

      How far did you get?

      --


      Writers imply. Readers infer.
  37. Balance by richmaine · · Score: 2, Interesting

    I suppose it is inevitable that something like this shows uneven treatment of different areas.

    For example, it seems to list about every time a vendor released a Java version, showing version numbers with 3 digits as worthy of note. By that kind of accounting, there should probably be several thousand Fortran entries.

  38. Roots by RealAlaskan · · Score: 2, Insightful
    I'm looking at the roots of the tree in that second link. I see:
    • Snobol, which didn't spread much, but eventually merged with a Fortran derivative to beget Perl.
    • Flowmatic, which became Cobol, then Rexx.
    • Fortran 1, which became pretty much everything else, via Algol. This is the main part of the main stream.
    • Lisp, the other main stream, which joined with Fortran to make Scheme, and joined with it again to make Dylan.
    • Prolog, which joined up with Lisp
    • APL, which continues today (unlike Snobol) and has some recognizable descendants (unlike Snobol and Flowmatic).
    • ISWIM and
    • ML which are the only ones that I'd never heard of before, though I recognize their descendants Haskel and Camel.
    This ignores sh and SEQUEL, which stand almost entirely alone.

    There are two main streams, Snobol/Flowmatic/Fortran and Lisp/Prolog. There isn't much communication between them. Their two points of convergence, Scheme and Dylan, so far show no signs of spawning the sort of tree of descendants which sprung from their ancestors, Fortran and Lisp.

    ISWIM/ML and APL have almost no communication with either of the mainstreams. Chopping either of them out of the picture would leave few orphaned hybrids.

    All those languages from just seven big ideas.

  39. Matlab, Maple, Mathematica, etc ... by macklin01 · · Score: 2, Informative

    And then there's a whole different class of langauges: math packages that allow programming from within. Heck, minesweeper is even included in Matlab as an example. You an define classes, new data types, etc. I know that quite a bit can be done in Mathematica and Maple as well.

    It'd be interesting to see where these fit in, since they have some elements of various languages. (e.g., in Matlab, indexing starts at 1, but much notation is C-like, and some other things are very Java-like.) -- Paul

    --
    OpenSource.MathCancer.org: open source comp bio
  40. Actually, no... by cr0sh · · Score: 2, Informative
    QBASIC is actually a sub-set of QuickBASIC - while it has many of the statements and such of QuickBASIC, it doesn't have them all, and certain things it can't do that QuickBASIC can, or it takes a lot of extra effort to do in QBASIC. Some of the extra functionality comes from the fact that QuickBASIC is a real compiled language, and not interpreted like QBASIC, but not all.

    Also, what about the lead-up to Visual Basic? More or less, after QuickBasic 4.5, we got PDS 7.1 (IIRC - Professional Development System - essentially QB4.5 with some DOS windowing enhancements and a slightly modified IDE), then came Visual Basic for DOS (still a lot of similarities to QB4.5 and PDS 7.1 - but with much greater control of windowing capabilities, and I think it allowed for easy mouse integration and event-driven code routines), then VB 1.0, I think (for Windows 3.1? Can't remember)...

    QBASIC 1.1 was some weird thing they threw into DOS around version 5 or so, and kept in some form or another all the way through Windows 98 or so. It came out after VB for DOS - it may have even been released after VB3.0 (??) - strange release...

    --
    Reason is the Path to God - Anon
  41. Perl is indeed strongly typed by merlyn · · Score: 2, Informative
    Perl has multiple types but does lots of implicit conversions, making it weakly typed.
    Not true. You cannot use a scalar variable where an array variable is needed, because the type is inherent in the syntax. Perl's type safety is syntax-driven for the built-in types (scalar, array, hash, subroutine, filehandle), and runtime enforced for references and user-defined types.

    So, Perl is indeed strongly typed (for built-ins), and late-binding dynamically typed (for references and user-defined types).

  42. Gross oversight! by BigZaphod · · Score: 2, Interesting

    How could they possibly miss my two languages? COW is a revolutionary system allowing for easy entry of bovines to the computer industry. There is a clear human bias in the list presented here.

    There's also Whirl which was designed as an advanced and modern Java replacement.

    I don't see why these two critical and important languages weren't included. I feel shocked and saddened by the dreadfully low academic standards represented here. Shocked, I tell you.

  43. Inaccurate by MrWim · · Score: 3, Funny

    There is no line from SCO unixware to linux

  44. Re:do it in C by Delusional · · Score: 2, Informative
    I'm a thirty year old hack of various languages who was forced to take a FORTRAN course as an engineering undergrad... I might agree that there aren't any 'programmer' users of FORTRAN under 40, but there're still quite a few left in engineering/science/math who use it.

    Maybe if you changed it to under 30...

  45. Lisp by ari_j · · Score: 3, Informative

    Common Lisp is strongly, dynamically typed. It has been for a long time. There are, of course, other language attributes than strength and time of datatyping, but those are what you're talking about.

    Common Lisp is also object-oriented and beats every other language I know in that arena.

    On top of that, with a good Lisp compiler (such as SBCL, CMUCL, or even GNU Clisp, just to name a few free compilers), it is as fast as any other language, even statically typed languages such as C; but particularly faster than other dynamically typed languages.

    1. Re:Lisp by ari_j · · Score: 5, Interesting

      As an Emacser, you should definitely get into Common Lisp. I don't know Inform, so I can't compare the object-oriented parts of the two languages, but I have yet to come up with an object-oriented feature that I really wanted and Common Lisp didn't provide. (Incidentally, that includes multiple inheritance, which is only present in one of the more popular programming languages.)

      One of the niftiest things in Common Lisp's object system is multi-methods (I can't remember if that's the right term for them...I am back in school and programming has taken the back seat.) Essentially, the polymorphic methods in Common Lisp can specialize on any of their parameters, and you can specialize not only at the type level but also at the instance level.

      And you get all the great features of Lisp right along with it.

      Since you use Emacs, what you want is called SLIME - Superior Lisp Interaction Mode for Emacs. It interfaces to your choice of Lisp environments (I use, and recommend, SBCL; but have used Clisp and CMUCL with it, as well.) and provides an REPL, an interactive debugger, a Lisp editing mode with HyperSpec lookup (meaning you can type a command while over a symbol and a web browser will come up with the HyperSpec page for that symbol, the HyperSpec being a really helpful Lisp resource), and really easy incremental development features like "Compile and load this file" from which you can then go to the REPL and test out your functions.

      But, needless to say, it blows C++, Java, Python, Perl, C#, and even Ruby right out of the water. And it's older than many Slashdotters' parents.

    2. Re:Lisp by ari_j · · Score: 2, Interesting

      All that could be done in CL, although the object forest would take slightly more work than one provided by the language directly. I'm not sure about an individual object being an instance of two classes without an intervening class, but the distinction probably makes no real difference.

      CL has CLOS, the Common Lisp Object System, which takes care of all the OO stuff. The MOP, meta-object protocol, allows you to really get in and mess with its behavior. MOP isn't 100% portable between Lisp implementations, and I haven't learned how to use it, but I know that you can do wacky things like say "This class should have a metaclass not of 'class, but of 'my-special-mega-class." and probably completely interfere with method calls, etc.

  46. Re:Python's not strongly typed by Cpt.+Fwiffo · · Score: 2, Insightful

    For those of you out there who are into this stuff:
    I had a nice course on this once, discussing all sorts of programming languages. Both their histories, and their design decisions. Most importantly, they did it by a quite nice book:
    Concepts of Programming Languages.

    Starting with simple constructs and the way they are used, leading up to all the different decisions between languages and their reasons, and splitting off into the different paradigms in programming, it is a MUST HAVE for any CS student. I kid you not. It's damn expensive, but reading it learned me the global view of all the languages out there. Because of it, taking up a new language is much easier since I now can classify it and know what generic specifics to expect.
    As said. Get it. Or check the library. I'm guessing any university library with a CS department worth it's salt has one (although possibly older versions which are fine as well).

    Fwiffo

  47. 'Bespoke' languages by zalzadore · · Score: 2, Interesting

    At UNI (15 years ago) one of the lecturers had written an OO language that we all had to use in his subject. A bit like ADA but with looser typing. At my last job (a large Financial institution) they had written their own finacnial programming language called A+ for their IBM mainframes.

  48. Re:Holy grail of programming languages by Mr.+Byaninch · · Score: 2, Funny

    COBOL programmers were not responsible for the Y2K bug. Jesus was. We were just the ones to profit most from it.

    --
    Sig not available, please try again later. If the problem persists, then the submitter is an idiot.
  49. Business Basic - 750,000 + Users at the moment by boogahboogah · · Score: 3, Informative
    I'm not surprised that the collegiate types that put together this history of languages missed out on this BASIC variant, called 'Business Basic'. It was created by the BASIC FOUR corporation, in California, on their proprietary hardware. It ties the simpleness of BASIC with relative record and keyed files, business math that assumed 2 digits to the right of the decimal point but could go to 12, extended variable names, data dictionary integration with the language, callable programs/routines, definable functions, etc etc etc. At the time, the BASIC FOUR systems were the best small business 'Minis' around. Unfortunately, the company tried to attack their VAR base and ended up planting the seeds of their own demise.


    Currently still being developed and used globally, with at least 750,000 + users all around the world.


    Currently offered by multiple vendors, runs on all Unix, Linux, M$ systems, except maybe on the 'big iron' IBM boxes. Current vendors with products that are supported are Thoroughbred, Basis, and Providex.

  50. Re:Fortran fatherde BASIC? by halltk1983 · · Score: 2, Insightful

    Fortran showed it what NOT to do to be Basic!

    --
    Watch for Penguins, they eat Apples and throw rocks at Windows.
  51. Re:Flaws with this chart by harborpirate · · Score: 2, Informative

    1. The PDF chart lists .Net as a separate item and links each of the supported MS languages to it. I think this is an accurate representation.

    2. ASP = VB6. You could include ASP as an offshoot of Visual Basic if you like, but it has exactly the same snytax. The real changes came with VB.Net, which is included in both charts.

    3. Dylan is included in the PDF chart as an offshoot of C++ and CLOS.

    4. Nope, no Hypercard.

    5. I suppose so. I don't really have any comment other than I'm not sure how legitimate sh is as a actual language.

    6. Erlang is included in the PDF chart as an offshoot of Prolog and Common Lisp.

    7. I don't see Cilk on either chart, which is funny since I'd actually heard of it before today. One could probably argue that it isn't different enough from standard C, but I think the implications of parallelism are probably enough to merit its own place on the chart.

    8. Mercury is included in the PDF chart as an offshoot of Haskell, SML 90, and CLOS.

    9. Funny, but you almost could do that... Is there any library or language that hasn't been grafted onto Perl at this point?

    According to wikipedia, the "commercial variant" of Flow-Matic started in 1955. http://en.wikipedia.org/wiki/FLOW-MATIC Wikipedia lists FORTRAN as being developed in 1954-1957. However, the forbears of Flow-Matic definitely preceed FORTRAN, as you'll see below:

    B-0 was the original name of Flow-Matic. More interesting perhaps is that both owe influence from A-0, a language developed for the Univac I, and the first language to have a compiler. (Flow-Matic was also developed for the Univac I.) For that reason alone, the tree should probably include it. (Perhaps even as the "root" of the modern languages.) One could argue that the inclusion of Flow-Matic on the chart encompasses A-0, although I would argue that A-0 should probably simply replace B-0 on the chart, since Flow-Matic and B-0 are one and the same.

    http://en.wikipedia.org/wiki/A-0

    --
    // harborpirate
    // Slashbots off the starboard bow!
  52. A better chart by Anonymous Coward · · Score: 2, Insightful

    http://www.cs.washington.edu/education/courses/cse 413/03au/misc/language-chart.jpg

  53. Re:Cobol is there ... RPG? by slashRULElurker · · Score: 2, Interesting

    RPG was first offered as a language on the IBM 704 computers in the 1960's and was even promoted as an end-user language--funny, until you realize that programming in those days was done in assembler, and the original RPG was at least a level higher than that. I recall when I was programming in RPG II on an S/34. The boss brought the entire computing staff of 3 people to attend a seminar in Structured Programming. In preparation for that, I was reading a book on Structured Programming in Basic (can't remember the author or exact title). The intro assured me that "you can do structured programming in any language, wheter it's COBOL, PL/I or (God forbid) RPG." We wer all laughing at that, as it is indeed hard to do structured programmming without loop constructs (use GOTO) or even an if/else statement (use indicators). But, as you say, RPG has evolved since then and is even moving to free-form instead of the original form-filling metaphor.

  54. Resume by CaptCanuk · · Score: 2, Funny

    I guess I'll just print this out as the second page on my resume as a timeline of what languages I know and when I learnt them.

    Then prospective interviewers can't point out my current 8 years of C# experience is a lie.

    --
    ---- The geek shall inherit the Earth.
  55. Simula and smalltalk ... and LISP by anon+coward · · Score: 2, Informative

    Alan Kay also credits influence of LISP in the essay, as shown in the Levenez chart

  56. HyperTalk, AppleScript, Dylan, Squeak by soundofthemoon · · Score: 2, Informative

    HyperTalk had about a kajillion users. It certainly deserves a place in this geneology. I'm not sure exactly where to put it, but it's certainly related to Smalltalk as a close cousin if not a descendant. For completeness, AppleScript should be listed as a descendant of HyperTalk.

    I don't know why the PDF lists C++ as an ancestor of Dylan. I was somewhat involved in the development of Dylan, and Scheme, CLOS and Smalltalk were the main parents.

    Squeak is the current leader of the Smalltalk bloodline. www.squeak.org

  57. Why No Mention of Mesa? by north.coaster · · Score: 2, Informative

    I could not find any reference in either list to Xerox PARC's Mesa, which is often credited as one of Wirth's inspirations for Modula-2.

  58. BASIC, not Basic, by tonsofpcs · · Score: 2, Informative

    re: the first one http://www.levenez.com/lang/history.html it is BASIC, not Basic. Also, there was MS-BASIC, GW-BASIC, BASICA, Apple BASIC, MS QBASIC, MS QuickBasic, QuickBasic Extended/PDS. Also, they list JScript, and not VBScript; PHP and not ASP. Also, this one is missing Rexx. http://people.mandrakesoft.com/~prigaux/language-s tudy/diagram.pdf seems to have some data that is off to the right of the page, including what appears to say "PostScript".

  59. Re:How little improvement there has been... by SagSaw · · Score: 2, Interesting

    I suppose one could produce a graphical version of a current programming language, but that would be very complicated and slow to use.

    Take a look at LabView at some point

    While it is primarily aimed at test and measurement applications, anything that can be done in a general purpose programming language can be done in LabView.

    but that would be very complicated

    It's not overly complicated. In some ways, it is significantly less complicated that text-based languages. For example, if you have a function (VI is labview terminology) that is blocked, it will automatically run other code that does not depend on the output from the blocked function. I don't have to think about threading or setting up a polling loop since it is handled automatically. Also, things like 'Do I need to make a copy of this data?' are handled by the compiler rather than being explicitly specified by the programmer.

    and slow to use

    With regard to speed, I have a couple of reasonably complex LabView programs that are running on PII's in the 300MHz range with no issues at all. Labview complies to machine code, so there is no issue of interpreting the graphical language at run-time. If you can figure out how to write something like this that creates large applications like Firefox, Word, or Visual Studio, you'd stand to make a fortune.

    Well, at a previous employer, we had a LabView application that queried data from a SQL database based on user-specified criteria, pulled statistical data from the results and wrote it into a report, and the created an excel spreadsheet from the queried data. I'm not sure that LabView is the best language for that sort of thing, but it will work.

    As far as the fortune bit, at $2000+ for the development environment, I imagine that NI makes a tidy profit off of LabView. Add to that hardware sales for embedded systems and real-time controllers capable of running LabView programs and I have to think that 'fortune' is probably a good description.

    --
    Come test your mettle in the world of Alter Aeon!
  60. ColdFusion ignored by mdinowitz · · Score: 2, Interesting

    And as usual, ColdFusion has been ignored by both. It was out before Rebol, Asp, PHP, etc. It's still running strong and it's a proof of concept that tag based languages (as now seen in JSP and Asp.Net) work. Where's the recognition?!?

    --
    Michael Dinowitz House of Fusion http://www.houseoffusion.com
  61. Strongly typed languages by Per+Abrahamsen · · Score: 2, Informative

    The term *used* to cover languages where variables have types that can be (and conventionally are) checked at compile time.

    However, since the term had strong connotations, advocates of languages where values have types that can be (and conventionally are) checked at run time, started claiming that their languages are also strongly type cjecked.

    As a result, the term is today meaningless. What I use instead is talking about static typechecking (type errors detected by the programmer at compile time) and dynamic typecheckig (type errors detected by the user at run time).

    Python rely on dynamic typechecking.

  62. It's an old and obsolete argument. by hey! · · Score: 2, Informative

    Well the strong/weak typing issue is pretty old fashioned.

    Strong and weak typing is not about doing implicit conersions. It's about trusting what the programmer is doing.

    K&R C was weakly typed (I'm reaching back decades here so cut me some slack). This was especially fun with pointers which were pretty much all just addresses to memory that usually were implemented as ints.

    E.g.
    int incrAt (int *x) {
    return ((*x)+1);
    } ...
    int i = 1;
    float f = 3.14;
    i = incrAt(&i); /* OK */
    i = incrAt(&f); /* Compiler trusts you but shouldn't */

    ANSI C is more strogly typed:

    i = incrAt(&f); / *compiler complains */

    But, it is still happy to trust you if you insist:

    i = incrAt((int *) &f); /* compiler trusts you */

    Strong typing doesn't have anything to do with implicit conversions, in my opinion. Consider the following expression:

    2 * 3.5

    What every sensible language does is this (in prefix notation):

    floatMult(intToFloat(2),3.5)

    as opposed to:

    intMult(2,2.5)
    or
    floatMult(2,3.5)

    which would give the wrong answers. The situation is not different for complex types like objects where there are well defined operations and type promotion schemes.

    What strong typing vs. weak typing is, or was about in any case, was safety vs. the amount of work the compiler or runtime system had to do.

    These days with powerful systems and overcomplex problems, safety is paramount.

    With respect to static and dynamic, they mean exactly as you say.

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  63. But we should be JOVIAL about this by ej0c · · Score: 2, Interesting

    Don't see the language JOVIAL. We should. Used in many, many USAF systems, JOVIAL was a true precursor to Ada, and influential in its own right.

    If nothing else, JOVIAL should be recognized for the role it plays in things-that-go-BOOM, and therefor in the flow of world history.

    However, JOVIAL is significant computationally for the way it introduced real-time extensions, suport for embedded systems, and for very-large-scale systems engineering.

  64. INTERCAL vs. BF by abb3w · · Score: 2, Informative
    Would it be better to learn BrainFuck instead?

    That's a better idea. Putting "BrainFuck" on your resume will doubtless highly speed up its evaluation by most potential employers.

    --
    //Information does not want to be free; it wants to breed.
  65. Re:Pascal (lisp != simple) by pz · · Score: 2, Informative

    I'll bite on this troll because it plays on so many misconceptions.

    [Lisp] has never produced anything of use (actually maybe, but I'm keen to hear of some *large* *all-lisp* program that does something truly useful

    How about an entire operating system? Or have you never heard of Lisp Machines? A full-blown editor, or have you never heard of Emacs? How about a state-of-the-art compiler with incremental compilation, on-demand linking, better-than-human-hands optimization, or have you never heard of Common Lisp?

    [L]isp is the *worst* language to start out with. For exactly the reason you point out. utterly horrible syntax. And that's all you worry about as a beginner learning lisp.

    Have you spent time teaching programming courses? I have. Have you studied the pedagogy of programming? I have. When you teach programming based on C, and similar syntax-laden languages, you spend 1/2 to 2/3 of the course detailing syntax. When you teach Lisp or its derivatives, you spend one week on syntax, and the rest of the term on concepts. Why? Because the syntax of Lisp is incredibly simple and this frees the course to concentrate on more important issues in programming.

    ((((((((((neq lisp simple))))))))))))))
    oh crap! to many close paransss...


    You probably never used an editor that had proper indenting and parenthesis matching. In Emacs (and related editors like Epsilon, Jove, microemacs, mg, etc.) you never wonder how many parentheses you need because it's obvious. Parentheses are not a burden.

    --

    Put my fist through my alarm clock with its ding-dong death inside my ear. - The Blackjacks.
  66. Re:Philosophy is nothing without communication by pz · · Score: 2, Insightful

    Would you have students learn to read German as part of a philosophy class so that they can study the Germanic greats in their native language? Probably not, because the particular laguage used to express deep concepts is more-or-less irrelevant. Instead, you would use the one easiest for the task. In the US, it would probably be English. In France, French. In Japan, Japanese.

    So when you're trying to teach programming -- not just training someone how to use a particular software house's tool -- why not use a language that best exposes the most important issues without obfuscating them with the arcana of syntax?

    Here's another analogy, if you want to teach someone to drive, do you teach them using a tractor? It would work, right? The same basic principles and laws apply to driving tractors, busses, cars, and trucks. But you probably wouldn't want to use a tractor (bus or truck) because they're particularly difficult and quirky to control. You'd probably use a car, and, at least in the US, probably one with an automatic transmission. You would do this because cars the easiest vehicular form to control, allowing the student to quickly master the concepts around controlling their vehicle and concentrate on the more important aspects of driving such as the conventions and laws surrounding interacting with other drivers. In a similar way, Lisp (or Scheme, my personal variant) allows the student to quickly get to deeper issues in programming because the syntax is so simple.

    --

    Put my fist through my alarm clock with its ding-dong death inside my ear. - The Blackjacks.
  67. History of Programming Languages by Telemachas · · Score: 2, Insightful

    Ahhhh! And *NO* mention of dbaseII, dbaseIII, or even of dbaseIII+ !

  68. Re:Awful Languages by pz · · Score: 2, Insightful

    Not every programmer is a Software Engineer.

    And I'm doing everything I can to correct that.

    --

    Put my fist through my alarm clock with its ding-dong death inside my ear. - The Blackjacks.