Vyse logo
The Vyse programming language
A dynamically typed and interpreted scripting language. Vyse is readily embedabble and intended for use in embedded scripting environments such as web servers and game engines.
discord join discord discord view on github

Welcome!

Say hello to Vyse, a fast, compact and embedabble scripting language. Let's start by answering the first question on your mind, "What does it look like?" For starters, here is the mergesort algorithm written in Vyse:

fn merge(left, right, sorted) {
  let lptr = 0, rptr = 0
 
  while lptr < #left and rptr < #right {
    if left[lptr] < right[rptr] {
      sorted:append(left[lptr])
      lptr += 1
    } else {
      sorted:append(right[rptr])
      rptr += 1
    }
  }

  while lptr < #left {
    sorted:append(left[lptr])
    lptr += 1
  }

  while rptr < #right {
    sorted:append(right[rptr])
    rptr += 1
  }
}
 
fn merge_sort(arr) {
  if #arr == 1 return
 
  const mid   = len // 2,
        left  = arr:slice(0, mid),
        right = arr:slice(mid)
 
  merge_sort(left)
  merge_sort(right)
  merge(left, right, arr)
}
 

More examples can be found on the docs or the github repo.

What else?

The key selling points of Vyse are:

Why make yet another language?

Honestly speaking, Vyse is primarily a hobby project being developed for the pure joy of making a language tailored entirely to my taste. Now that we have that established, I want to also state that while it is primarily a hobby project, it does not fall short of a full featured and useable language by any means.

Vyse has been built for embedding in real applications. Web servers and game engines are the first things to come to mind, but vyse can run on any platform that has C++ and a small subset of it's standard library.

Lastly, as you will realize when reading the docs, Vyse feels very familiar if you have prior experience writing Javascript or Lua. In the docs, you can read more about the quirks and eccentricities of aforementioned languages that Vyse got rid of, and the ideas that it built upon further.