Skip Navigation
Maybe some ALGOL 58 while we're at it too.
  • I still use Ada daily for my personal projects after having used it at work. I find it compliments my thinking patterns well. My only gripe with it is that they ate too much of their own dog food at AdaCore and now it can be hard to install Ada and gprbuild (due to a circular dependency). Plus gprc stole libgpr and broke some stuff too.

  • DNS over Wikipedia
  • If you read the readme, this looks like it's specifically for when you don't know the correct tld or spelling of the site you're looking for. Google searches often censor sites of borderline legality, but they'll usually still have Wikipedia articles with accurate links.

    This specifically only redirects .idk domains as a search helper. Could it possibly work better as a browser extension? Maybe. :)

  • Suggestion: An ActivityPub and Lemmy codebase reading club
  • That would be an excellent idea. But I feel like an even broader community should be created. Like a generic book club, but for code bases! Could even have a small handful of different code bases on the go at a time. I'd love to get to know lemmy's, but also e.g. neovim, or even unciv :)

    Maybe one day it could even start tackling Moby Dick!

  • Ode to C
  • My question when I see responses like this is: what genuinely useful new safety features have been added since Ada? It's ancient and has distinct types, borrow checking (via limited types), range types, and even fixed point types. I've always wondered what niche Rust is targeting that Ada hasn't occupied already. It feels like devs decided that safety was important, c/c++ are too unsafe, need a new language; without ever having looked to see if such a language exists?

  • NSFW
    Leaving the bidet on "feminine" mode is the female equivalent of leaving the toilet seat up.
  • Answering both: dial image for reference to what the "modes" are, and my dial is gross. Plus that was the best image I could find describing it, but had trouble getting a clean download. Google images can suck that way. If you get me a clean link, I'd update the post.

  • What languages are well suited for testing SDKs written in multiple other languages?
  • Yeah, that's pretty much what I was thinking too. The combination of a c API and a JVM API (and maybe .NET if you're in Microsoft land?) Hits most FFI available in languages I've seen. I can't think of any language I've used that couldn't Interop with either a c library (.a or .so) or JVM library (.jar). However I've never used any .NET system seriously, so I don't know about them.

    FWIW I regularly remake the same API based game whenever I start a new job working in a new environment to test that my environment is "up to snuff" with my development methodologies. I've never needed to port more than API.a and API.jar to play around in any language. I've ported that system to at least 100 languages over the years, and while some have more friction than others, and often the c/JVM paradigm doesn't line up well with the target language, it is always effective.

  • any soapy cilantro enjoyers?
  • I definitely have the soapy gene, but don't mind the taste. I blame thrills soap gum, I occasionally enjoyed that as a kid. My sister also has the gene and can’t stand the taste.

  • Making a Canadian Flag on Lemmy's r/Place
  • FYI: I'm starting with the outline of the left half of the leaf. I have to go to work soon, but hopefully there'll be enough outline for the rest to be filled in (just mirror it one pixel over).

  • Making a Canadian Flag on Lemmy's r/Place
    canvas.toast.ooo Canvas -- Lemmy's r/Place

    Place pixels with people to create art

    Maybe here we can draw the leaf without corrupting it. For reference I scaled the wikipedia picture to 100 pixels wide and anchored the 8 corners of the side borders. Hopefully we can make it look good!

    27
    What's your favorite programming language and what about it do you like?
  • After years, and many languages, I still have to say Ada. Kotlin, Rust, Julia, and Nim are my current contenders to overtake, but here's what Ada does well enough to still be my preferred tool when appropriate:

    • strictness: typically my code works the first time it successfully compiles with few or no bugs. Rust is almost on par in this respect.
    • structure: a corollary of the above is that it forces me to "plan ahead" more than just "start coding" which I find fits my programming style better, and leads to better "Unix Philosophy" product designs. I haven't found any other language that has the same effect other than maybe Haskell.
    • speed: I honestly find that Ada code outperforms C/C++ code most of the time. The only times C/C++ outperform Ada is after optimizations that come at the cost of readability.
    • multitasking: Ada's first-class tasks and protected objects are the only way I've ever been able to write bug-free concurrent programs that are more complex than async/await and/or producer/consumer structures (and I took a dedicated elective on concurrency at university!). Kotlin is almost on par in this respect with its coroutines.
    • hardware: The fact that Ada basically ships with a hard real-time OS built-in and can compile to e.g. AVR means that all my fancy libraries I've written or saved work just as well for a desktop game, a website backend, or an embedded microprocessor. Just look into representation clauses and interrupt pragmas to see its unique powers.
    • design: The whole design of the language has lead it to be the only language where I can consistently return to a multiple year old passion project with no attempt to write maintainable code, and fully understand what its doing and modify it with little effort.
    • tooling: While this is the biggest downside of Ada (see below) gprbuild is still my favourite build tool. I have no idea why strongly-typed build systems aren't more common. Its always a joy to work in gprbuild, once you get gprbuild working of course.
    • static polymorphism: Ada's generics are some of the best I've found. But they have some limitations that leads us into...

    There are some situation where Ada shows its age:

    • static calculation: I love Nim (and Zig, etc) for the ability to run arbitrary code at compile time. It allows me to describe what would normally be an opaquely initialized data structure or code path in a clear and descriptive manner.
    • terseness: Ada is verbose, that's not such a big deal, but I find its just a tad too verbose which can lead to some slight difficulty when parsing code. func/proc (Nim) vs fun (Kotlin) vs fn (Rust) doesn't make much difference to me, but function X returns Y/procedure X starts to add a lot of visual noise to a file.
    • web compilation: The ability for both Kotlin and Nim to compile to either ASM or JS is AWESOME. If I have to write a "full stack" application, Kotlin multiplatform with ktor every day.
    • operator overloading: Only the built-in operators can be overloaded in Ada. It always makes me wish I could overload arbitrary operators. A small thing, but a symptom of...
    • TOOLING: Ada's tooling is BY FAR the hardest I have ever seen to get working. It takes the "eat your own dog food" too far. The fact that even in Arch Linux you have to install a bootstrap package, then the real package shows how hard it is to get a consistent build environment. ALR is helping in this respect, but is still not quite mature in my opinion.

    Here's when I use the alternatives, and their biggest weaknesses:

    • Kotlin: anything where I want both one or more JS artifacts and one or more JVM/native artifacts. Weaknesses: performance, static analysis, on the fence about tooling (gradle is cool, but sometimes seems too over-engineered), Biggest weakness: IDE dependency, writing Kotlin outside of IntelliJ is a pain, which is somewhat fair given who maintains it!
    • Rust: so close to beating Ada, if not for two things: ugly code - so many operators and glyphs that pollute the reading experience, maybe I'll get used to it eventually, but for now I can't scan Rust code, nor pick up and revisit it nearly as easily as Ada; language scale - I find Rust suffers from the C++ design attitude of "we can add this as a language feature" it takes too much mental effort to hold the entire design of the language in your head, which you sort-of have to do to develop software. Java and C are IMHO the undisputed kings in this respect. After reading through the specifications of both languages, neither will ever have any surprises in store for you. There's no magic under the hood or special case. All the cool features are done by libraries and rely on the same simple syntax. Every time I learn a new cool thing Rust can do, its at the expense of another edge case in the compiler that modifies my conceptual model of the code.
    • Julia: multiple dispatch and mathematics plus clean module design and easy unicode incorporation leads to clean code for math-y/science-y code.
    • Nim: templates and macros are excellent, concept system gives access to Rust-style traits without all of the additional "ugliness" of Rust, excellent performance, tiny executables. I just find that the syntax can get clunky. The UFCS easily cleans up a lot of the mess that Rust creates with its added features, since it keeps the parsing the same even when using some fancy language feature.

    Thank you for attending my TED talk :P. Any questions?

  • TIL there is an open source port of Prince of Persia
  • If you read the linked document, it outlines how reverse engineering may fall under a certain level of fair use, e.g. for reasearch and/or backup/archival purposes.

    It really isn't as clear-cut as it seems at first.

  • cool websites @lemmy.ca Lambda @lemmy.ca
    Tree of Life Explorer | MinuteLabs.io
    labs.minutelabs.io Tree of Life Explorer | MinuteLabs.io

    Explore Earth's species and the relationships between them easily.

    I've sunk many hours into the which species is closer related to X, A or B?

    0
    I'll kick things off with our mini: Kerby

    She's our brown miniature poodle, about a year and a half old.

    0
    InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)LA
    Lambda @lemmy.ca

    I'm a software engineering developer from Ottawa, Ontario, Canada.

    Posts 4
    Comments 25
    Moderates