Advantages of Skov - nicolas-p/skov GitHub Wiki

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

Compared to Factor

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)

Compared to Lisp

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)

Other advantages

  • small, self-contained system
  • no installation process required
  • batteries included: there are vocabularies for most common tasks
  • a child can use it
⚠️ **GitHub.com Fallback** ⚠️