|title "Pliant computing philosophy" small
italic [Last check on 2001/9/9]
header "What is a program ?"
[At a human level, programs more or less appear as algorithms. ]
[These are described using a human language, which is intrinsically ]
[ambiguous and contextual, but may be used to speak about itself ]
[(let's call it ];italic:[reflexive];[). ]
[The usual expression of algorithms go through analysis segmentation, ]
[which leads to arborescent decompositions, that is: a list of ]
[tasks, each being expressed by a single (key)word or by a full sentence ]
[with subordinate clauses or pronouns referring to subtasks.]
[Thus, at a high (symbolic) level, a program is stated as a list ]
[of expressions. Each expression is either a raw datum or a keyword (with a set of subexpressions/arguments), where the keyword is providing the semantics for the expression. ]
[Moreover, this level should enable modularity (context sensitivity) and ]
[ambiguity resolution (through name resolution and casting).]
[At a low (code) level, a program is a set of instructions. Each instruction is a function call with a set of parameters and, eventually, a switch to another instruction (each parameter being a datum). Some of the functions are programs (and thus sets of instructions) and some are directly translated into machine code (hard coded). ]
[At this level, no ambiguity should remain.]
[Now, the Pliant language is a bridge between the two last levels. Prior languages focus either on the semantics, handling a program as a set of expression-trees (e.g. LISP) but fail to be efficient at code level, or focus on efficiency, needing a program to be stated as a set of instructions (C), hence failing to be intuitive and easy to use (by a human).]
[A language is a bridge between the human way of thinking of an algorithm and the computer way of coding a program. I assert that Pliant is the best one available yet, because it addresses this bridging goal at the highest level of flexibility.]
header "Who is sitting in front of the computer ?"
[There seems to be roughly two kinds of people sitting in front of computers:]
item [`Noble' ones: the programmers that teach the computer how to perform tasks automatically, to eliminate ever more repetitive tasks.]
item [`Slave' ones: the users that use a computer, but still perform too many tasks manually, that could be programmed, only because they don't know how to do it.]
[The second, but most important Pliant goal, is to help the users to slowly become programmers by providing a ]
note "smooth path"
title "A smooth path to programming"
[As an entry point, you can learn how to ] ; link "code HTML pages in Pliant" "/pliant/protocol/http/page" ; [: they are real Pliant programs, yet easier to code and read than native HTML programs, which moreover are only poor static data.[lf]]
[To help you, I have added a small 'View Pliant page source code' link at the end of each page, that lets you view it's Pliant source code, or download it.[lf]]
[ to programming.[lf]]
[This is very consistent with the ] ; link "FSF" "http://www.gnu.org/" ; [ philosophy because, if people learn to program, then they want free software, because they get interested in how software is built.]
[This is also very productive at company or organization level because the ability to write all code using a ]
[Of course, you can still decide to use several programming languages, Pliant being just one of these, if it better matches your particular needs.] ; eol
[Pliant is simply the first language that makes the single language option a possible one.]
[ language, means better internal communication and load sharing since more people (I mean advanced end users, not only dedicated programmers) will be able to read, and submit small but very time saving improvements in the code. ]
[Basically, it enables any organization to internally switch from a closed softwares like model (a huge closed and over-helmeted computing department handles everything) to an open software like model where some advanced users may contribute to the software development, and it is possible because Pliant is a reasonable tool for both professional programmers and advanced end users.]
header "The Pliant logo"
table columns 2 border 0
[This is the Pliant overall project logo.] ; eol
[The character on the Pliant logo is the Pliant computer.]
[There are several logo for various Pliant applications all displaying the Pliant computer.] ; eol
[The main one is derived from the Tibetan flag in order to recall that it is a country which is still invaded and oppressed by China, although the Tibetan leader actually spreads a peaceful and persevering request for freedom: ]
[It represents nothing less than a real world philosophical model for free softwares.]
table columns 2 border 0
[This is the Tibetan flag.]
[Free people is even more important than free softwares.] ; eol
[I'd really like to make the world just a little bit better for my children, I mean more friendly, ]
[and I believe that helping the Tibet get free is an obvious way to start with.] ; eol
[You can get more informations about Tibet situation ]
title "Tibet situation, in year 2000"
[This has been extracted from ] ; link "Amnesty International" "http://www.amnesty.org/" ; fixed [ ] ; link "year 2004 annual report about China" "http://web.amnesty.org/report2004/chn-summary-eng" no_extension ; [ :]
[In Tibet and other ethnic Tibetan areas, freedom of expression and religion continued to be severely restricted. China continued to use the international war against terrorism as a pretext for cracking down on peaceful dissent.]
[ or even more at ] ; link "http://www.tibet.com/" "http://www.tibet.com/"