Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
pugs
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
code
pugs
Commits
0dab4e8d
Commit
0dab4e8d
authored
3 years ago
by
Stéphane Del Pino
Browse files
Options
Downloads
Patches
Plain Diff
Explain why not using a standard scripting language such as Python
parent
62ea9315
No related branches found
No related tags found
1 merge request
!145
git subrepo clone git@gitlab.com:OlMon/org-themes.git packages/org-themes
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
doc/userdoc.org
+22
-10
22 additions, 10 deletions
doc/userdoc.org
with
22 additions
and
10 deletions
doc/userdoc.org
+
22
−
10
View file @
0dab4e8d
...
@@ -249,7 +249,7 @@ solution to all problems. However, it offers some advantages.
...
@@ -249,7 +249,7 @@ solution to all problems. However, it offers some advantages.
the code to check its meaning.
the code to check its meaning.
**** ~pugs~ language purpose
****
*
~pugs~ language purpose
~pugs~ language is used to assemble ~C++~ tools which are well
~pugs~ language is used to assemble ~C++~ tools which are well
tested. These tools should ideally be small pieces of ~C++~ code that
tested. These tools should ideally be small pieces of ~C++~ code that
...
@@ -264,7 +264,7 @@ the context is quite easily checked.
...
@@ -264,7 +264,7 @@ the context is quite easily checked.
Finally it aims at simplifying the definition of new methods since
Finally it aims at simplifying the definition of new methods since
common utilities are available directly in scripts.
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
~pugs~ is a research oriented software, thus generally the user is also
a developer. If this paragraph is indeed more dedicated to the
a developer. If this paragraph is indeed more dedicated to the
...
@@ -321,14 +321,26 @@ writing of new methods.
...
@@ -321,14 +321,26 @@ writing of new methods.
others to check if it could benefit to the others to determine if
others to check if it could benefit to the others to determine if
it should integrate rapidly or not the main development branch.
it should integrate rapidly or not the main development branch.
**** TODO Why not python or any other scripting language?
***** Why not python or any other scripting language?
- provide a language close to the application: a DSL is made for that.
As it was already pointed out above, general purpose languages offer
- general purpose languages offer to much freedom: it is not easy to
to much freedom: it is not easy to protect data. For instance in the
protect data
~pugs~ DSL, non basic variables are constant (see paragraph
- do not deal with the difficulty of parallelism within the
[[variable-types]]). It is important since its prevent the user to modify
scripting language
data in an inconsistent way. Also, one must keep in mind that
- python is ugly
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
*** TODO A high-level language
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment