Skip to content
Snippets Groups Projects
Commit 0dab4e8d authored by Stéphane Del Pino's avatar Stéphane Del Pino
Browse files

Explain why not using a standard scripting language such as Python

parent 62ea9315
No related branches found
No related tags found
1 merge request!145git subrepo clone git@gitlab.com:OlMon/org-themes.git packages/org-themes
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment