• 881 Posts
  • 4.96K Comments
Joined 2 years ago
cake
Cake day: April 27th, 2023

help-circle
  • there for example something for national/local alerts (Germany and Finland have that for example).

    The system used in Denmark is called S!RENEN (the siren) and doesn’t need an app, it uses a built in feature that should work in most modern phones. Be aware that this alert system is tested every year at 12:00 the first Wednesday in May, so don’t be spooked if you hear a siren and get a loud notification on your phone that day/time.

    Other apps: Eboks or Mit.dk for digital mail from organizations and the state. There’s also a few medical apps like Min Læge that are good for tracking your doctor visits and such. MobilePay is convenient for money transfers between friends or when paying for stuff online.

    There’s also !spoergsmaal_og_svar@feddit.dk if you have more general questions but questions for Aarhus is also fine here :)









  • The borrow checker

    This is indeed pretty unique.

    the way it handles exceptions and nulls

    This is really just the fact that Rust has sum types - but those kinds of types have been used in many functional languages (Haskell for example) for a long time.

    the way it handles stack/heap

    This is just the same as C and C++ and any other low-level language that requires you to distinguish between the stack and heap.

    composition pattern instead of oop

    I mean if you’re only looking at OOP languages then this will be new, but functional languages have done this for a long time.

    So yea, I think a big part of what makes Rust great is that it has managed to take these really, really good ideas from functional programming languages and made them work in a language that is not entirely functional. This leads to a perfect blend/best of both worlds with regards to OOP and functional programming :)








  • If there is anything I’ve learned in my 10+ years as an engineer, it’s that there are no good or bad languages, just pros and cons of each in different applications.

    I dunno if I agree really - the more languages I’ve learned, the more I see an evolution from less sophisticated, less usable languages to more sophisticated, more usable, modern and just generally better languages.

    C and C++ are old, and you can tell. There’s so much complexity and legacy in those languages that it’s crazy. But it’s not just legacy - it’s also bad design choices. There’s a lot of really bad APIs and bad usability and footguns everywhere. You see the same thing in languages like JavaScript (whose design journey has been fraught with peril). Even Java has some bad stuff I would say, mostly from the overzealous insistence on OOP.

    However, if you look at some modern languages that were more deliberately designed, you really start to see how they are just intrinsically better. Python, while still being a dynamically typed scripting language which I would never use for large systems, is still leagues better than JavaScript in terms of design and usability I would say. Haskell was born from research and you can really tell - the language just makes sense in a very scientific way - although that does mean ease of use and developer experience has not always been the priority.

    Rust was developed for a very particular purpose, basically to provide the same speed as C++ but without any undefined behavior. From that design principle, a lot of good has resulted and Rust is basically an objectively better language than C++. The only thing still keeping C++ in the game is the historical reasons, just due to the sheer amount of code that exists out there in C++. C++ has more support in all kinds of places, but that’s just due to history and Rust will likely gain ground soon enough. For instance, C++ still rules for game development, but this could change within the next 5 or 10 years.

    It’s not that surprising when you think about - languages like Python, Haskell and Rust were built on the giant pile of experience the whole industry has amassed from using previous languages. It also helps that we just have more computing power today to make languages like Rust feasible. Rust compile times probably wouldn’t have been realistic 30 years ago.






  • I honestly think it stills explains it pretty well. Most casual users will not download a specific client and will be fine with the whole idea of an instance being tied to its user interface. It still explains pretty well that it doesn’t largely matter what instance you sign up for and that any instance can talk to (mostly) any other instance, just like with email.

    So yea, I still think it’s a good analogy. It’s not perfect but yea, that’s to be expected from an analogy.