FAQ
How do you pronounce YS?
We like to say "wise" since its how you might pronounce the plural of "Y". You can also say "why-ess" for "Y S" or the long name for YS: "YAMLScript" ("YAML (rhymes with camel) Script").
YS has many side projects like HelmYS ("helm-wise") or SchemaYS ("schema-wise").
Is YS really YAML?
Yes. Empirically.
The YS compiler has 7 stages (phases) to transform YS (YAML) into Clojure.
The first phase is call parse
and it currently uses the
SnakeYAML Engine parser ⧉
code for this process.
Who created YS?
YS was created by Ingy döt Net, a founding creator and current maintainer of the YAML Data Language ⧉.
What is the preferred file extension for YS files?
The preferred file extension for YS files is .ys
, but you can use .yaml
or
.yml
if you prefer for most files.
The ys
command line tool doesn't look at the file extension and will treat
them all the same.
If you are enhancing an existing YAML file, there is no need to change the file
extension to .ys
. You can just start using YS features in the file.
On the other hand, YS libraries loaded with the use
function are required to
have the .ys
extension.
Clojure is a JVM language. Does YS need the JVM?
No. YS is written in Clojure and exposes the Clojure/Java runtime ecosystem, but there is no JVM involved. This is thanks to the GraalVM ⧉ project's native-image ⧉ which can compile anything compiled to jar files into a standalone native binary executable or shared library.
This is how the ys
binary and the libyamlscript.so
shared library are
created.
Note
Even the YS build system does not require you to have any Java or Clojure
stuff installed.
It simply downloads a GraalVM tarball into /tmp
, and the Makefile takes
care of everything without leaving any mess behind.
Do I need to know Clojure to use YS?
All YS/YAML code is compiled to Clojure and evaluated when you run or load it.
That said, you can get pretty far with YS without knowing any Clojure. Just read the docs and look at the examples.
To become a YS expert, you will need to know Clojure (and YAML) well.