Penguin
Diff: ProgrammingLanguages
EditPageHistoryDiffInfoLikePages

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

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

Newer page: version 49 Last edited on Sunday, October 26, 2003 8:36:27 am by AristotlePagaltzis
Older page: version 48 Last edited on Saturday, October 25, 2003 12:14:42 pm by StuartYeates Revert
@@ -1,104 +1 @@
-;: If the Tao is great, then the operating system is great. If the operating system is great, then the compiler is great. If the compiler is great, then the application is great. The user is pleased and there is harmony in the world. %%% %%% [[...] %%% %%% The Tao gave birth to machine language. Machine language gave birth to the assembler. The assembler gave birth to the compiler. Now there are ten thousand languages. %%% %%% Each language has its purpose, however humble. Each language expresses the Yin and Yang of software. Each language has its place within the Tao. %%% %%% But do not program in COBOL if you can avoid it. %%% %%% -- ''Geoffrey James'', The Tao of Programming  
-  
-Here is a CarefullyCategorized, non-exclusive list of ProgrammingLanguages, with very brief descriptions.  
-  
-----  
-!!!Machine Oriented General Purpose  
-  
-; [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 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  
-  
-; [C] : very terse, very efficient code. The SystemsProgrammingLanguage for [Unix]. From [fortune(6)]:  
-  
-;; C, n. : A programming language that is sort of like Pascal except more like assembly except that it isn't very much like either one, or anything else. It is either the best language available to the art today, or it isn't. %%% -- Ray Simard  
-  
-;; 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 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.  
-  
-----  
-!!! Very High Level General Purpose  
-  
-; [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.) 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]. 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. 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]. (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 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] : 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...)  
-  
-; [Eiffel] : an ObjectOriented langauge designed for building large systems. The first general-puorse language to support [PreCondition]s and [PostCondition]s natively.  
-  
-----  
-!!! 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 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].  
-  
-; [sendmail(8)] : a language for expressing mail routing. See also SendmailTuringMachine.  
-  
-----  
-!!!Dinosaurs  
-  
-; [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 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. 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(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] : ''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.''  
-  
-; [Shakespeare Programming Language|http://shakespearelang.sourceforge.net/report/shakespeare/] : ''The design goal was to make a language with beautiful source code that resembled Shakespeare plays. There are no fancy data or control structures, just basic arithmetic and gotos. You could say we have combined the expressiveness of BASIC with the user-friendliness of assembly language.''  
-  
-; [Unlambda|http://www.eleves.ens.fr:8080/home/madore/programs/unlambda/] : ''The originality of Unlambda is that it stands as the unexpected intersection of two marginal families of languages:''  
-** ''Obfuscated programming languages, of which the canonical representative is Intercal. This means that the language was deliberately built to make programming painful and difficult (i.e. fun and challenging).''  
-** ''[Functional programming languages|FunctionalLanguages], of which the canonical representative is [Scheme] (a [LISP] dialect). This means that the basic object manipulated by the language (and indeed the only one as far as Unlambda is concerned) is the function.''  
-  
-----  
-!!!Of note  
-  
-; [Ni|LanguageNi ] : Object oriented language being written by PerryLorier and JonPurvis. Should let you explain what you want to do the the compiler (still in an imperative style) and have it highly optimise your program
+Describe [ProgrammingLanguages] here