From: "Uri Guttman" <u...@stemsystems.com> Date: Mon, 19 Jul 2010 17:01:09 -0400
gack, this thread is annoying. so here are some high level philosophical questions to think about regarding languages. Great idea; let's have a *new* annoying thread! first off, why are there so many languages? and by many, i mean thousands and more. how many of you have invented a language (even a mini-lang)? I'm sure it's for the same reason there are so many religions: Some wannabe prophet gets an idea for a new twist on an obscure facet of doctrine, finds a few followers, and they're off to the races. This is only half tongue-in-cheek; there is a strong role for personal preference, and for the "faith of our fathers" effect. See Paul Graham's classic "Beating the Averages" essay [1] for an enjoyable (and highly relevant) discussion of language choice. no one seems to have mentioned turing compatibility. this means something deep in all the langs mentioned. discuss. "Turing compatibility"? No one seems to have mentioned "Y2K compliance" either, but I doubt that signifies anything deep . . . what about all those langs that were meant to conquer computing civilization? PL/I, COBOL, ALGOL and even the dreaded ADA. c actually conquered more than all of them. do you consider c a high level language? Remember that C came out of a fad for "systems programming languages" that were closer to the machine than the HLLs of the day, but block-structured and otherwise reasonably portable (at a time when even HLLs were indifferently portable). It was (and still is) assembler on steroids. should you learn assembler? is there work in it (yes)? what would assembler teach you when using a high level lang? Miles Bader sometimes uses the following quote in his .sig: People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird. -- Donald Knuth I think that is good advice. But I'm not sure how much time or money I would advise anyone to devote to the project. (I almost picked up an x86 assembler book a few weeks back, until I saw that they wanted $118 for it.) what does it mean when you like or dislike a lang? in a non-technical way why did you make that decision? This should be the subject of an essay of its own, if not a thesis. Instead, I will plug the gap with a soundbite: Learning a good computer language should do the same for me that reading a good science fiction novel does: Expand my mind. The obvious corollary is that I don't ever want to learn yet another language that re-introduces (for example) closures. have any of you ever read an ANSI standard for a language? or tried to implement parts of a standard like that? hell, reading ANSI standards is a major skill in its own right! FWIW, the Common Lisp community refers frequently to the Common Lisp Hyperspec [2] in discussions, this being an HTML-ized version of the ANSI standard. So spec-reading skills are common for CL hackers, which takes away some of the mystique. Of course, Common Lisp is unusual in being a language for which people typically want their code to run on multiple implementations from assorted vendors, and need to study the spec to know what behaviors are portable. And I can tell you from experience that (aside from being huge) it's not all that hard to implement, especially given the number of quality free implementations from which to steal. ;-} I've also looked at the C# language and runtime specs. IANAL of course, but even after publishing these, I believe that Microsoft can still claim that C# internals are a trade secret. are languages for people or computers? Yes, of course. ;-} -- Bob [1] http://www.paulgraham.com/avg.html [2] http://www.lispworks.com/documentation/HyperSpec/Front/ _______________________________________________ Boston-pm mailing list Boston-pm@mail.pm.org http://mail.pm.org/mailman/listinfo/boston-pm