The undead 1.0 release

58 views
Skip to first unread message

Madis Janson

unread,
Aug 20, 2020, 10:20:01 AM8/20/20
to yeti...@googlegroups.com

Despite long delay, the Yeti 1.0 version is finally released. The main
improvements are JDK14 support via newer ASM library and finished
reference manual. Some bugs were also fixed.

https://mth.github.io/yeti/releases.html
http://dot.planet.ee/yeti/reference.html

The delay has mostly been due having to raise children, and wanting to
have full language documented before the release (with too little free
time).

During this time I've become quite disillusioned with JVM as a platform.
While technically excellent, it is quite huge beast in many ways (memory
usage, startup times etc).
In recent years it is also getting new VM level features, which would
require additional effort to retain full interoperability - for example
it is unlikely, that Yeti would support the new records in near time.
The environments where JVM is used are often very conservative in the
choice of tools, to not say hostile to anything but Java itself.
The platform is open only superficially, as shown by Android debate.
The Android is also a walled garden by itself in practice.

I tried to find ways to port Yeti away from JVM, but it is written in Java
and tied tightly to the platform in a way, that it would require either
full rewrite, or effort similar to it. For example, one of the strengths
of Yeti is how easy it is to call compiler and evaluate expressions from
Yeti code - this relies on ability to link and run compiled code on the
fly fast, which is greatly aided by running on virtual machine.

In the end I've decided that the effort to migrate is too much to be worth
it, and running well on native platforms would require changes in the
language design as well. Javascript and Lua execution models are similar
enough that transpiling could work (it is even done in Yeti fork), but we
have things like BuckleScript and ReasonML. There has also been progress
among natively compiled languages - OCaml has removed some of its rough
edges (and getting multicore support), and Nim is now quite nice on
the more imperative side. I'm omitting Rust here, as it targets more
low-level niche. A gap seems still be in not having a good statically
typed scripting language, a task that Yeti could have excelled, had it
not been tied to the Java platform. Maybe Gluon fills it?

The conclusion is, that I'm continuing to maintain Yeti as it is, mostly
fixing bugs and maybe occasionally adding new features (especially
extending the standard library). May I call it a stable language, like in
Debian Stable? ;) It is a tool that usually works well at some tasks, and
there are plenty of alternatives in most situations, where it doesn't.

I will also try to get it into Maven repositories, when I have some time
tinker with this - this would certainly make it easier to sneak Yeti into
bigger Java projects. ;)

Mateusz Czaplinski

unread,
Aug 20, 2020, 3:04:45 PM8/20/20
to yeti...@googlegroups.com
Woohoo, congrats! :D

Not sure if that might fit in any way into your ideas, but in the meantime, I created an experimental .dex / .apk assembler, writing it *purely* in Nim - see:


I learnt quite a bit about the .dex and .apk formats, and was hugely surprised how high-level the Dalvik VM is, basically close to Java level IMO - esp. compared to e.g. x86 assembly. That said, I understand your sentiment when you say: "Android is also a walled garden by itself in practice." Just saying that I'm happy to talk in case you were interested in some more hacking towards either emitting pure .dex files, or maybe considering Nim as a platform in some way (Nim does have a NimScript virtual machine), or maybe Lua in some way (I do also have quite some experience with Lua).

Congratulations once again on pushing the project to a next release, and on kids certainly as well :D
Best,
/Mateusz.

--
You received this message because you are subscribed to the Google Groups "yeti-lang" group.
To unsubscribe from this group and stop receiving emails from it, send an email to yeti-lang+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/yeti-lang/alpine.DEB.2.21.2008201600450.14842%40paabel.

Paul Blair

unread,
Aug 21, 2020, 8:02:39 PM8/21/20
to yeti...@googlegroups.com
Congratulations on the release! I'm glad to see the newer ASM library incorporated. Thanks for all your work on this.

Reply all
Reply to author
Forward
0 new messages