[-] BatmanAoD@programming.dev 6 points 3 months ago

distributing relay knowledge among chatters (TBD)

This is the core reason that centralization is currently necessary. So admitting that it's an unsolved problem for a federated alternative is basically reinforcing Signal's point.

[-] BatmanAoD@programming.dev 7 points 4 months ago

For interactive use, tab-completion essentially makes this a non-issue, because shells add escaping in the appropriate places.

For scripting, where spaces are harder to deal with, unfortunately there's just not much you can do; your two options are basically to learn all of your particular shell's patterns for dealing with whitespace in filenames, or only write scripts in something other than a POSIX shell.

[-] BatmanAoD@programming.dev 6 points 5 months ago

I genuinely can't tell if you're being sarcastic or not.

[-] BatmanAoD@programming.dev 6 points 5 months ago

I think you're making some poorly-researched assumptions.

In the embedded world, there often aren't "system libraries," depending on just what you're targeting. But if, for some reason, you really do want to use libc but not the Rust standard library, you can certainly do that; for instance, here's a crate that reimplements the Rust standard library's output and formatting capabilities using libc: https://github.com/mmastrac/rust-libc-print

Rust provides essentially the same memory control as C does. You can also have inline assembly in Rust, just as in C.

[-] BatmanAoD@programming.dev 6 points 6 months ago

Before Rust, the main argument I heard from C++ enthusiasts against Ada was that it was a nice idea but too "design-by-committee". Which, yeah, is an ironic thing for C++ fans to say, but I guess that was enough 🤷

[-] BatmanAoD@programming.dev 6 points 1 year ago

For runtime reflection, no, you'd specifically be able to do things that would be impossible to optimize out.

But the proposal is actually for static (i.e. compile-time) reflection anyway, so the original performance claim is wrong.

[-] BatmanAoD@programming.dev 7 points 2 years ago

It's not a strawman, though, because Martin's actual example code in the book is like this, including a full module he rewrites toward the end.

[-] BatmanAoD@programming.dev 7 points 2 years ago* (last edited 2 years ago)

There is nothing specific in the rust port that makes fish more available for servers or LTS distros.

Being written in Rust does improve availability, because by default Rust statically links against everything except libc, and you can opt out of that if necessary. So there is inherently no need to build separate dependency packages for each distro, unless you use a Rust crate that specifically links to a C or C++ library.

[-] BatmanAoD@programming.dev 7 points 2 years ago* (last edited 2 years ago)

I see where you're coming from, but no matter how many null pointer exceptions there are in Java code, you're almost always protected from actually wrecking your system in an unrecoverable way; usually the program will just crash, and even provide a relatively helpful error message. The JVM is effectively a safety net, albeit an imperfect one. Whereas in C++, the closest thing you have to a safety net, i.e. something to guarantee that invalid memory usage crashes your program rather than corrupting its own or another process's memory, is segfaults, which are merely a nicety provided by common hardware, not required by the language or provided by the compiler. Even then, with modern compiler implementations, undefined behavior can cause an effectively unlimited amount of "bad stuff" even on hardware that supports segfaults.

Additionally, most languages with managed runtimes that existed when Java was introduced didn't actually have a static type system. In particular, Perl was very popular, and its type system is...uh...well, let's just say it gives JavaScript some serious competition.

That said, despite this grain of truth in the statement, I think the perception that Java is comparatively robust is primarily due to Java's intense marketing (particularly in its early years), which strongly pushed the idea that Java is an "enterprise" language, whatever that means.

[-] BatmanAoD@programming.dev 7 points 2 years ago

But in the browser. My complaint with JavaScript is that it was effectively the only choice for in-browser logic up until WebAssembly was stabilized, and even now it requires JS glue code.

[-] BatmanAoD@programming.dev 7 points 2 years ago

I agree so, so much; and I've been saying similar things for years.

But I recognize that it's probably a hard problem. For one thing, auth is almost never going to work the same way in CI as it does locally.

...still, though, I feel like there could be some much nicer tooling here.

[-] BatmanAoD@programming.dev 7 points 2 years ago

It's simply not true that there "aren't really that many definitions of OOP", much less that the guide you've linked is "comprehensive" when it is specifically about Java.

This is a good, brief post about the different conflicting definitions: https://paulgraham.com/reesoo.html

This is a much more comprehensive but also less focused overview, with many links, from a site that is effectively both a wiki and a forum: https://wiki.c2.com/?ReesOnObjectOrientedFeatures

view more: ‹ prev next ›

BatmanAoD

0 post score
0 comment score
joined 2 years ago