Penguin
Diff: ProgrammingLanguages
EditPageHistoryDiffInfoLikePages

Differences between version 48 and predecessor to the previous major change of ProgrammingLanguages.

Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History

Newer page: version 48 Last edited on Saturday, October 25, 2003 12:14:42 pm by StuartYeates Revert
Older page: version 36 Last edited on Friday, September 12, 2003 2:42:46 pm by DavidHallett Revert
@@ -8,9 +8,9 @@
 ; [C++] : an almost-superset of [C], with object orientation, [Template]s and [NameSpace]s. 
  
 ; [Java] : another object oriented language with [C]-like syntax, controlled by SunMicrosystems, designed to be byte-compiled. "Write once, run anywhere," which usually works for non-windowing, non-audio applications. 
  
-; [Pascal] : an old imperative language. The ancestor of the language in Borland's [Delphi] and [Kylix] [GUI] development environments, which added object orientation. 
+; [Pascal] : an old imperative language designed by NicolasWirth as a teaching language. The ancestor of the language in Borland's [Delphi] and [Kylix] [GUI] development environments, which added object orientation. 
  
 ---- 
 !!!Systems Programming 
  
@@ -21,41 +21,47 @@
 ;; and : "The C Programming Language -- A language which combines the flexibility of assembly language with the power of assembly language." 
  
 ; AssemblyLanguage : also called assembler. This is best described as English mnemonics (ie codenames) for machine-level object code. This is not very portable, and computers are now fast enough that it is less hassle to write in a higher level language and re-compile. AssemblyLanguage is still used for embedded systems (where space and CPU speed are limited), and in parts of an operating system that are run very frequently or must run fast. Some parts of the GNU C library are also written in assembly for the same reasons (for example, some of the maths functions). 
  
-; [Modula2] : Modula2 is Nicholas [Wirth] 's attempt to do a SystemsProgrammingLanguage right. It looks like [Pascal], it is meant to be used like [C] but prohibits casts . Later superceeded by [Oberon] which added object orientation and garbage collection
+; [Modula2] : Modula2 is NicolasWirth 's attempt at a SystemsProgrammingLanguage done right. It looks like [Pascal], it is meant to be used like [C]. Later superseded by [Oberon], which added object orientation and GarbageCollection
  
-; [Forth] : Imperative language. Stack based, with ReversePolish syntax. FORTH is used in embedded systems; it produces very compact code. If the hardware architecture is geard toward its two-stack model, the code also tends to be blazingly fast. Developed by ChuckMoore in the 1960s. 
+; [Forth] : Imperative language. Stack based, with ReversePolish syntax. [Forth] is used in embedded systems; it produces very compact code. If the hardware architecture is geard toward its two-stack model, the code also tends to be blazingly fast. Developed by ChuckMoore in the 1960s. 
  
 ---- 
 !!! Very High Level General Purpose 
  
-; [Perl] : originally written by Larry Wall for generating reports, it now does almost everything. Specialty : text processing. __P__ractical __E__xtraction and __R__eporting __L__anguage ( but also __P__athologically __E__clectic __R__ubbish __L__ister - pick one, both are official, and both are backronyms)
+; [Perl] : originally written by Larry Wall for generating reports, it now does almost everything. Speciality : text processing. The name stands for __P__ractical __E__xtraction and __R__eporting __L__anguage but also __P__athologically __E__clectic __R__ubbish __L__ister - pick one, both are official, and both are backronyms. 
  
-; [Python] : This is a good language to learn if you only program occasionally out of necessity. (E.g. if you are a WebMonkey who needs do odd things with text, [XML] and structured data every now and then.) Python code is unusally easy to read, which is good if you are returning to a script you wrote 3 months ago; and it has a very complete standard library, so you don't have to start from scratch when working on common tasks. 
+; [Python] : This is a good language to learn if you only program occasionally out of necessity. (E.g. if you are a WebMonkey who needs do odd things with text, [XML] and structured data every now and then.) Those who like it find Python code unusually easy to read, which is good if you are returning to a script you wrote 3 months ago; and it has a very complete standard library, so you don't have to start from scratch when working on common tasks. It's use of indentation as the only means of structuring source is not appreciated by everyone, though
  
-; [Ruby] : A scripting language often seen as a middle ground between Perl and Python. 
+; [Ruby] : A scripting language often seen as a middle ground between [ Perl] and [ Python]. It follows SmallTalk's "everything is an object" ideal, allowing a very consistent treatment of anything a program consists of. The syntax is clean and uses very limited amounts of punctuation. Its author's stated goal for it is to be a better [Perl] than [Perl]
  
-; [TCL] : __T__ool __C__ommand __L__anguage. Used mainly for scripting. It makes creating GUI's fairly easy, though it's not well suited for writing large programs -- it' s sort of the VisualBasic of the Unix world. 
+; [TCL] : __T__ool __C__ommand __L__anguage. Used mainly for scripting. While it's not well suited for writing large programs, it makes creating [GUI] s fairly easy - the VisualBasic of the Unix world, if you will
  
-; [LISP] : __Lis__t __P__rocessor. For people who really like brackets. Emacs can be heavily customised using [Elisp]. CommonLisp is the most thorough programming language in the universe. Coding acrobats do their backflips in [Scheme]. (EdsgerDijkstra [approves|http://www8.informatik.uni-erlangen.de/IMMD8/Services/SchemeTeach/Pages/ch1/sec3_42.html] of [LISP]!) 
+; [LISP] : __Lis__t __P__rocessor. For people who really like brackets. Emacs can be heavily customised using [Elisp]. CommonLisp is the most thorough programming language in the universe. Coding acrobats do their backflips in [Scheme]. (EdsgerWybeDijkstra [approves|http://www8.informatik.uni-erlangen.de/IMMD8/Services/SchemeTeach/Pages/ch1/sec3_42.html] of [LISP]!) 
  
-; [ML] : a family of programming languages that allow you to mix functional and imperitive techniques in the same program. These make good general purpose langauges . Two MLs are widely used: [Ocaml] and [SML]. See [ML] for a comparison of the two. 
+; [ML] : a family of programming languages that allow you to mix functional and imperative techniques in the same program. These make good general purpose languages . Two [ML]s are widely used: [Ocaml] and [SML]. See [ML] for a comparison of the two. 
  
 ; [Haskell] : a FunctionalLanguage. Very different from languages like C and Java. Good to learn as it broadens your mind... 
  
-; [Erlang] : another FunctionalLanguage. 
+; [Erlang] : a simple FunctionalLanguage used for writing distributed real time systems, particularly telecommunications systems
  
 ; [Prolog] : a declarative language based on predicate logic. Very useful for grammars, eg natural language processing (give it rules such as nouns and verbs, and it can validate simple sentences...) 
  
-; [Postscript ] : Imperative language . Stack -based, so it resembles Forth, but allows a considerably higher level of abstraction. Although a complete, general purpose language, it was developed for typesetting and is accompanied by a complex, powerful graphical model. Superceeded by [PDF ]. 
+; [Eiffel ] : an ObjectOriented langauge designed for building large systems . The first general -puorse language to support [PreCondition]s and [PostCondition ]s natively
  
 ---- 
-!!! Very High Level Special Purpose 
+!!! Special Purpose  
+  
+; [sed] : a Stream EDiting language very useful for manipulating files larger than the avaliable [RAM]. A predecessor to [Perl].  
+  
+; [AWK] : a line-oriented language with much the same syntax and features as the later [Perl].  
+  
+; [Postscript] : Imperative language. Stack-based, so it resembles Forth, but allows a considerably higher level of abstraction. Although a complete, general purpose language, it was developed for typesetting and is accompanied by a complex, powerful graphical model. It forms the basis for [PDF].  
  
 ; [TeX] : a language for laying out text and images on the pages of [DonaldKnuth]'s books. Lesser mortals use [LaTeX], a set of wrappers around it. 
  
-; [BST] : a language for laying out bibliographies, with special primatives for laying out names, part of bibtex(1). 
+; [BST] : a language for laying out bibliographies, with special primitives for laying out names, part of bibtex(1). 
  
 ; [SQL] : a relation manipulation language used in [RDBMS]s. 
  
 ; [XSLT] : a tree manipulation language used to manipulate [XML]. 
@@ -64,28 +70,24 @@
  
 ---- 
 !!!Dinosaurs 
  
-; [BASIC] : A very basic interpreted ImperativeLanguage. (Different to Microsoft's ! VisualBasic -- a wildly extended dialect of Basic.) Note that at the start of MicrosoftCorporation's history, BillGates was selling [BASIC] interpreters for various machines. MicrosoftCorporation still sells VisualBasic
+; [BASIC] : A very basic interpreted ImperativeLanguage, disapproved of by EdsgerWybeDijkstra . (Not to be confused with VisualBasic, a wildly extended dialect of [BASIC] that resembles its ancestor only remotely and is still part of MicrosoftCorporation's portfolio and strategy .)  
  
-; [COBOL] : A very weird language used in business software. Left mankind with a huge legacy of braindamaged code. 
+; [COBOL] : A very weird and much maligned language used in business software. Left mankind with a huge legacy of braindamaged code that has to be maintained. Disapproved of by EdsgerWybeDijkstra
  
-; [Fortran] : The first high level language ever. Halfway between [BASIC] and [ AssemblyLanguage] . Still used for number crunching on supercomputers, for which [Fortran] [Compiler]s have been heavily optimized. Later forms even allow local variables, recursion and similar syntatic sugar
+; [Fortran] : The first high level language ever. Initially halfway between [BASIC] and AssemblyLanguage, it evolved to allow local variables and even recursion and other advanced programming techniques in newer renditions . Still used for number crunching on supercomputers, for which [Fortran] [Compiler]s have been heavily optimised
  
 ---- 
 !!!Obfuscated 
  
 ProgrammingLanguages that stretch the brain. You might also be interested in PolyGlot. 
  
-; [Brainf*ck] : a different type of language - basically all you can do is increment a variable, decrement a variable, read a value from stdin, print a variable's value, or change to another variable! Sounds very similar to a TuringMachine... 
+; [Brainf*ck] : a different type of language - basically all you can do is increment a variable, decrement a variable, read a value from stdin(3) , print a variable's value, or change to another variable! Sounds very similar to a TuringMachine... 
  
 ; [WhiteSpace] : a language written entirely in white space. 
  
-; [Intercal|http://catb.org/~esr/intercal/ ] : ''INTERCAL is a programming language like no other. This is good, or at least, it is good that other languages are as unlike INTERCAL as possible.'' %%% -- [The Pit|http://www.webcom.com/nazgul/intercal.html]  
-  
-;: ''The obvious choice was INTERCAL (I'm still quite surprised that I'm the only one who picked it -- most people did Java??). Anyway, it was not favourably received...when [[the professor] handed it back, he said, "Ah. I see you're someone with a sense of humour. Unfortunately for you, I'm not."'' %%% -- Alexander Garrett, about [a paper he wrote for his Spring 1997 Programming Languages: Theory and Design class|http://catb.org/~esr/intercal/paper.html]  
-  
-;: [See a sample implementation of ROT13 in INTERCAL|http://www.ofb.net/~jlm/rot13.i] (''4 pages of completely indecipherable code''). %%% -- [Jacob Mandelson|http://www.ofb.net/~jlm /intercal.html] 
+; [INTERCAL ] : ''INTERCAL is a programming language like no other. This is good, or at least, it is good that other languages are as unlike INTERCAL as possible.'' %%% -- [The Pit|http://www.webcom.com/nazgul/intercal.html] 
  
 ; [Malbolge|http://www.mines.edu/students/b/bolmstea/malbolge/] : 
 ;; A quote from the creator : ''Malbolge was truly created with the idea that programming should be hard. It should be as close to the Infernal as a programming language possibly can be.'' 
 ;; And another quote: : ''Users are encouraged to make their own, unique homebrew versions of Malbolge and Dis, in order to achieve the kind of portability problems normally associated with major languages.''