Hacker News
A NES emulator written in Odin
boltzmann64
|next
|previous
[-]
- manual memory management
- arena and pool allocators
- go style err!=nill style exception handling
- first class support for soa and vectorized simd, linear algebra and swizzling
- sanely typed and namespaces
- explicit unambigious overloading, subroutine context
- first class support for defer statements
- zero friction C ffi
if you haven't heard of odin, you should definitely consider it.
jazzypants
|root
|parent
|next
[-]
Is this not widely considered to be the ugliest part of the language? Why do you prefer having to do this manually?
iaaan
|root
|parent
|next
[-]
sn9
|root
|parent
|next
[-]
Common in ML-family languages and Rust. They've been brought into most mainstream languages like Java by now because of how useful they are.
iaaan
|root
|parent
|next
[-]
slifin
|root
|parent
[-]
I'm considering glojure as an interesting new hobby language to try because it's benchmarks are impressive
If the go compiler ends up bloating itself with checks its static analyser could/should have done it would be a shame
vips7L
|root
|parent
|next
|previous
[-]
Tadpole9181
|root
|parent
|previous
[-]
These days async/await is first-class and the function-based callback form of promises is largely discouraged. And for, at least in part, the same reason: it's harder to enforce correctness.
ixwt
|root
|parent
|next
|previous
[-]
[1]: https://odin-lang.org/docs/overview/#or_return-operator
wolttam
|root
|parent
|previous
[-]
vips7L
|root
|parent
[-]
T someFn() throws E;
fn someFn() -> Result<T, E>;
func someFn() (T, E)
Dr_Emann
|root
|parent
[-]
segfaltnh
|root
|parent
|next
[-]
I believe some exceptional languages are similar, like Ruby. If you rescue but dont abort, the variable on the left hand side gets a nil when that may otherwise not be possible. Of course, that is handled cleanly as its own error.
christophilus
|root
|parent
|next
|previous
[-]
Anyway, Odin is my favorite of the new systems languages. Lightweight, ergonomic, decent stdlib. It’s quite good.
DASD
|root
|parent
|next
|previous
[-]
Verdex
|root
|parent
|next
[-]
However Odin comes prepackaged with a lot of bindings for helpful 3rd party libraries. Likely makes this sort of work a lot less tedious.
vconnor
|root
|parent
|next
|previous
[-]
Odin for me is the (low level) systems language nirvana, along with Elixir which is my distributed system nirvana. They spark so much joy.
typicode
|next
|previous
[-]
Nice to see other languages being used :)
AdmiralAsshat
|next
|previous
[-]
forgotpwd16
|root
|parent
|next
[-]
hobo123
|root
|parent
|next
|previous
[-]
My friends and I in Germany always called them Nes and Super Nes.
fuzztester
|next
|previous
[-]
I have checked out all 4 some, only by reading the docs and examples so far.
Uneasy about Zig because of docs lagging code, and syntax.
Hare is Linux only. Doable, but prefer Windows too.
Need to try Odin.
Other interesting langs in this space whih are at a somewhat usable state, including docs and libs? I don't need a package manager or an LSP or much other tooling.
For now this is just for developing small apps of my own.
anthk
|next
|previous
[-]
https://github.com/Quad4-Software/Ren-TUI
Reticulum in Go:
https://github.com/Quad4-Software/Reticulum-Go
On Odin itself, it looks really simple, and I'd love it if it were self-bootstrapable or compilable with just a C99 compiler like cparser, cproc or TCC.