Retrospring is shutting down on 1st March, 2025 Read more
Bi transfem, German, 18, autistic. Systems programmer and aspiring mathematician. Free software user and contributor, uses Artix Linux. Likes Rust, C, Lua, Haskell. Communist (Trotsky, Luxemburg).
512
okay but why do you use proper grammar & punctuation
everyone knows its faster to write like you are constantly in fear of being attacked for putting a capital letter or more than 5 commas in your text.
idk I'm just used to it I guess
i also don't do it consistently
🥺
pat pat pat
what's something you like about a language you dislike?
I would say I like the way Promises and the event loop work in JavaScript. For an easy, interpreted language having a built in event loop with native worker threads is a really good choice and easily allows to use multiple I/O libraries at the same time without having to bother with concurrent multi-threading.
For example, if I want to do file IO as well as listen for requests from network (for example, to build a simple terminal chat client for a protocol), the libraries can integrate by relying on this language feature. The library for the network protocol could do receiving, sending and (de-)serialization in its own worker threads and forward events as Promises, and the file IO API can do the same. The programmer has full flexibility: Await on a promise, attach a callback to be ran on completion, join promises or select the one that completes first etc.
A feature like this is essentially a convenient abstraction around calling the poll() syscall in a loop or whatever thing Windows has in place for that. There are also timeouts, immediates and intervals, and I think it's just generally well designed.
This is something I'm desperately missing in Lua - well, there are solutions like that for it, the issue is, those are third party libraries, I wish it was in the language / standard library itself. You can basically often only use one I/O library at a time since everyone brings their own polling mechanism and they don't integrate, leaving busy waiting as the only "solution".
you're cute!
Retrospring uses Markdown for formatting
*italic text*
for italic text
**bold text**
for bold text
[link](https://example.com)
for link