Introduction for .NET programmers
VL is a visual programming language for .NET. It combines dataflow programming with features known from object-oriented programming. vvvv is the editing environment for VL.
Currently vvvv is still using .NETFramework, but an update to .NETCore is planned.
With direct access to all of .NETs libraries you can basically use it as just another .NET language like C# or F#. But since most of those libraries were not created with dataflow in mind, we've curated a library for you that is much more comfortable to use and is the default referenced library when creating a new VL document. The VL.CoreLib is built on top of .NET Standard.
If you're familiar with programming in C#, VL should feel quite familiar, apart from the fact that it is visual. Here are a few things things that will be new to you though:
The main collection type in VL is called Spread and its individual entries are called Slices. The Spread is an immutable collection with one special feature: If you're calling
GetSlice(Index) on it, with an index that exceeds its count, instead of an error you get the slice with the index taken modulo the count.
E.g. if you have a spread with 5s slice and you're asking for slice 7, you get slice 2.
Foreach with Multiple Inputs
Where in C#, a foreach loop can only iterate over one collection at a time, in VL you can iterate over many collections at the same time. The number of iterations executed, is determined by the collection with the smallest count.
In general we try to do as little renaming as possible when importing data types. But for collections we took the liberty to do the following renamings from the original ones:
- All immutable .NET collections drop the Immutable pre-fix since it's the default in VL
- All mutable .NET collections get a Mutable pre-fix
- IEnumerable is called Sequence