diff --git a/doc/userdoc.org b/doc/userdoc.org index dce8ecc83d9772a8a2463a1f4978514999f6aa7c..81e44250a04e1b5eb1ca70eef45da4bcb1af5d3c 100644 --- a/doc/userdoc.org +++ b/doc/userdoc.org @@ -249,7 +249,7 @@ solution to all problems. However, it offers some advantages. the code to check its meaning. -**** ~pugs~ language purpose +***** ~pugs~ language purpose ~pugs~ language is used to assemble ~C++~ tools which are well tested. These tools should ideally be small pieces of ~C++~ code that @@ -264,7 +264,7 @@ the context is quite easily checked. Finally it aims at simplifying the definition of new methods since common utilities are available directly in scripts. -**** The framework: divide and conquer +***** The framework: divide and conquer ~pugs~ is a research oriented software, thus generally the user is also a developer. If this paragraph is indeed more dedicated to the @@ -321,14 +321,26 @@ writing of new methods. others to check if it could benefit to the others to determine if it should integrate rapidly or not the main development branch. -**** TODO Why not python or any other scripting language? - -- provide a language close to the application: a DSL is made for that. -- general purpose languages offer to much freedom: it is not easy to - protect data -- do not deal with the difficulty of parallelism within the - scripting language -- python is ugly +***** Why not python or any other scripting language? + +As it was already pointed out above, general purpose languages offer +to much freedom: it is not easy to protect data. For instance in the +~pugs~ DSL, non basic variables are constant (see paragraph +[[variable-types]]). It is important since its prevent the user to modify +data in an inconsistent way. Also, one must keep in mind that +constraining the expressiveness is actually a strength. As said +before, one can warranty coherence of the data, perform calculations +without paying attention to the parallelism aspects,... Observe that +it is not a limitation: if the DSL's field of application needs to be +extended, it is always possible. But these extensions should never +break the rule that a DSL must not become a general purpose language. + +Providing a language close to the application (or here in particular +close to the Mathematics language) reduces the gap between the +application and its expression (code): Domain Specific Languages are +made for that. + +Finally, python is ugly. *** TODO A high-level language