Compared to most text-based languages
Skov |
The average text-based language |
the number of inputs and outputs of every function is visible all the time |
you have to know how many arguments a fonction takes or look it up in the documentation |
the name of an input or output is displayed when the cursor is over it |
you have to know what arguments a fonction takes (and in which order) or look it up in the documentation |
it is perfectly natural for functions to have several outputs |
functions only return one value, which can be a tuple that you have to unpack into separate variables |
you rarely need variables |
you need variables all the time |
using a value in several places is as natural as drawing two wires |
to use a value in several places, you have to create an intermediate variable and find a good name for it |
manipulating sequences is done with higher-order functions (map, filter, reduce) |
manipulating sequences is mostly done with loops (for, while), using variables to iterate, and basically reinventing sequence processing every time |
the structure of the program is obvious |
the structure of the program is hidden under syntax |
syntax errors are impossible |
syntax errors are very common |
giving too many arguments to a function is impossible |
giving too many arguments to a function is a relatively common mistake |
Skov is based on Factor, which is a fantastic system, but has certain drawbacks:
Skov |
Factor |
stack shufflers are completely unneccessary |
stack shufflers are a necessary evil |
most dataflow combinators are unnecessary |
dataflow combinators are used all the time |
the structure of the code is displayed explicitly |
the structure of the code is completely lost; it has to be reconstructed by simulating the stack in your head |
friendly to beginners/newcomers |
newcomers run away screaming (I guess) (and the velociraptor mascot is probably not the main reason) |
Skov |
Lisp |
really no syntax |
no syntax, except for a lot of parentheses |
the structure of the code is displayed explicitly |
the structure of the code is still hidden under nested parentheses |
data flow is easy to follow, from top to bottom |
data flow is not so obvious, it is from inside to outside, and often from right to left |
Compared to other visual languages
Skov |
The average visual language |
the graph is rendered automatically |
the user must place nodes manually, spending more time doing interior decoration than programming |
functional |
a lot of visual systems are imperative block-based languages with few advantages compared to text languages |
general-purpose |
a lot of visual systems are domain-specific (3D-rendering, simulation)
|
- small, self-contained system
- no installation process required
- batteries included: there are vocabularies for most common tasks
- a child can use it