Top
Best
New

Posted by jspdown 2 days ago

Lisette a little language inspired by Rust that compiles to Go(lisette.run)
268 points | 147 commentspage 2
bhwoo48 1 day ago|
Love the idea of bringing Rust ergonomics to the Go runtime. As someone currently building infra-automation tools (Dockit), the trade-off between Rust's safety and Go's simplicity is always a hot topic. This project addresses it in a very cool way. Will definitely follow the development
melodyogonna 2 days ago||
I'm wondering about the logistics of making this integrate with Go at the assembly/object file level rather than at source code level. What if it compiled to Go's assembly rather than to Go source code
darccio 2 days ago|
Having explored that approach (†), I can tell that generating Go assembly is harder than it seems.

†: I've tried to transpile Rust code through WASM into Go assembly, and I've also explored how to inject trampolines into Go binaries (which involves generating Go assembly too).

melodyogonna 1 day ago||
That is interesting, but I imagine Rust has features which can not be translated into Go's assembly. This language is specifically designed for Go interop; the logistics wouldn't be the same, though I still expect it to be difficult.
masklinn 1 day ago||
> I imagine Rust has features which can not be translated into Go's assembly

Why would there be? Go’s assembly might be lacking ways to make them optimally efficient, but that’s probably a given either way without an optimizing compiler backend.

sail0rm00n 2 days ago||
I’m sold just for proper enumeration support.
smokel 1 day ago||
This is great news for those of us looking for baby names. So far my list includes: Pascal, Ada, Dylan, Crystal, Lisa, Julia, Ruby, and now Lisette.
Kaliboy 1 day ago|
Horrible news for me, I quite like the idea and syntax, but it also reminds me of my wife which I am currently divorcing.

Not sure I'd like the constant reminder.

darkest_ruby 1 day ago||
This is what go should have been, instead of a mess it is today
stevefan1999 1 day ago||
Well that's why I decided to go C# for general purpose stuff
seabrookmx 1 day ago|
Ditto. C# gets a bad rap due to its Windows-exclusive history, but it's now cross platform and has most of the features PL nerds are looking for. Strict nulls, pattern matching, a really mature and easy to use async ecosystem (it invented async/await), even a lot of the low level stuff is there (unsafe{} blocks ala rust and manual memory management where needed).
simonask 1 day ago||
C# is nice, but it is nowhere near Rust in terms of safety or expressiveness. Thankfully they are finally adding discriminated unions (sum types) and other sorely missing features.

Unsafe in C# is much more dangerous than unsafe in Rust, precisely because it doesn’t actually color a function. It just allows its body to use pointers. This is why you have methods in the CLR called “DangerousFoo()”, and the compiler does nothing to prevent you from calling them.

seabrookmx 1 day ago||
Rust also has a much steeper learning curve. I can onboard an average developer that's familiar with Typescript and have them be productive in C# in a week.

This one is more subjective, but I also think C# has a more mature and painless web stack.

I love both languages but for me they each fill a different role.

simonask 1 day ago||
I think this just says that TypeScript and C# are more similar languages than either is to Rust, which I would agree with. Rust's learning curve is not steep at all if you're coming from C or C++.

C# also has a pretty steep learning curve if you have to care about the things where Rust excels, like correctness or maximum efficiency (which typically does not include web stuff). I would even say that Rust is the easiest language in which to approach that level of correctness and efficiency.

jasdfwasd 1 day ago||
Could large data types be problematic for the prelude types Option/Result/Tuple? They don't store as pointer and every receiver is by value.
oncallthrow 1 day ago||
I've read the entire page and still don't know whether or not I can import Go modules in this language, which seems rather important
0x696C6961 1 day ago||
The first example suggests yes.
OJFord 1 day ago||
Really? Almost every example imports something from Go, and it states "interoperability with the Go ecosystem" (or similar, from memory).
oncallthrow 1 day ago||
That isn’t the same thing. Indeed, upon reading further, it appears there is no way to import non-stdlib go modules.
ivov_dev 1 day ago||
Support for Go third-party packages is not part of this first release, but the tooling to generate bindings for Go packages (which enables imports from the Go stdlib) is already in place[1]. Extending it to support third-party packages is on the roadmap.

[1] https://github.com/ivov/lisette/blob/main/tools/bindgen/READ...

rbbydotdev 2 days ago||
Looks beautiful! Any plans to make it self compile?
ksec 1 day ago|
On the surface this looks great. Seems to hit the sweet spot in a lot of areas.

I know it is Rust inspired, but why write it in Rust and not Go?

metaltyphoon 1 day ago|
Because it offers things where Go today doesn’t and never will?
More comments...