BatmanAoD

joined 1 year ago
[–] BatmanAoD 1 points 3 days ago (1 children)

Unless you work for the committee or for ISO somehow, then I don't think that really follows. C++ and JavaScript were both used in production for decades before they had standards, and the dissolution of the standards committee wouldn't cause compiler vendors to stop developing compilers.

[–] BatmanAoD 4 points 4 days ago (3 children)

Wait, which one leaves you unemployed?

[–] BatmanAoD 0 points 2 weeks ago

In addition to not actually being correct, I don't think the information you've provided is particularly helpful in answering OP's question.

[–] BatmanAoD 0 points 2 weeks ago (3 children)

The first part is confusing what "middleware" means. Rather than "duplicating" functionality, it connects libraries (I'm guessing this is what you meant). But that has nothing to do with a language being compiled versus "directly executed", because compilation doesn't connect different services or libraries; it just transforms a higher-level description of execution into an executable binary. You could argue that an interpreter or managed runtime is a form of "middleware" between interpreted code and the operating system, but middleware typically doesn't describe anything so critical to a piece of software that the software can't run without it, so even that isn't really a correct use of the term.

The second part is just...completely wrong. Lisp, Fortran, and other high-level languages predate terminal shells; C obviously predates the shell because most shells are written in C. "Most original code" is in an actual systems language like C.

(As a side note, Python wasn't the first scripting language, and it didn't become popular very quickly. Perl and Tcl preceded it; Lua, php, and R were invented later but grew in popularity much earlier.)

[–] BatmanAoD 2 points 2 weeks ago (5 children)

Pretty much all languages are middleware, and most of the original code was shell/bash.

What? I genuinely do not know what you mean by this.

[–] BatmanAoD 2 points 2 weeks ago

Yeah, I was particularly glad to see the change in loop variable semantics become a stable part of the language. That was a terrible footgun.

There are other things I dislike about Go, but I do think it's improving while maintaining its better qualities, which is no small feat.

[–] BatmanAoD 6 points 2 weeks ago (2 children)

It is similar to old error codes, but I feel that this makes one always have to be mindful of error handling and the non happy path

Technically you need a separate linter (errcheck) to ensure you don't just ignore errors. This is...not great. (That should have been a compiler error.)

68
submitted 3 weeks ago* (last edited 3 weeks ago) by BatmanAoD to c/programmer_humor
[–] BatmanAoD 6 points 3 weeks ago

I agree that it's a "cop-out", but the issue it mitigates is not an individual one but a systemic one. We've made it very, very difficult for apps not to rely on environmental conditions that are effectively impossible to control without VMs or containerization. That's bad, but it's not fixable by asking all app developers to make their apps work in every platform and environment, because that's a Herculean task even for a single program. (Just look at all the compatibility work in a codebase that really does work everywhere, such as vim.)

[–] BatmanAoD 2 points 4 weeks ago* (last edited 4 weeks ago)

Oh, I see, so you don't exercise your muscle memory but you at least see the "raw" commands more often.

Looks like this was suggested in nushell, and someone came up with a way to emulate the behavior manually: https://github.com/nushell/nushell/issues/5552#issuecomment-2113935091

Edit: there's another issue for this: https://github.com/nushell/nushell/issues/5597

Hopefully nu will decide to implement it properly in the future.

[–] BatmanAoD 0 points 4 weeks ago (3 children)

Hm, I'm not sure what you're looking for, then.

How are fish abbreviations different from nushell aliases for working on temporary machines? Surely your Windows sandboxes don't have fish installed?

[–] BatmanAoD 2 points 1 month ago (5 children)

I think it really depends how much time you actuall spend working on these temporary systems, and what mechanisms are available for automatically configuring those systems, even temporarily. You can generally assume that some version of bash is available on all systems, so if you have a bashrc that you like, you could use sshrc or kyrat to at least bring over some functions and aliases (I used sshrc long ago but haven't tried kyrat): https://github.com/cdown/sshrc, https://github.com/fsquillace/kyrat

If you do want to use nushell on remote systems, possibly xxh would enable that; I haven't used it personally, but it looks promising: https://github.com/xxh/xxh

If you're not using ssh, then it really depends what you are doing.

40
A classic tale (programming.dev)
 
34
submitted 1 year ago* (last edited 1 year ago) by BatmanAoD to c/rust
 

Almost five years ago, Saoirse "boats" wrote "Notes on a smaller Rust", and a year after that, revisited the idea.

The basic idea is a language that is highly inspired by Rust but doesn't have the strict constraint of being a "systems" language in the vein of C and C++; in particular, it can have a nontrivial (or "thick") runtime and doesn't need to limit itself to "zero-cost" abstractions.

What languages are being designed that fit this description? I've seen a few scripting languages written in Rust on GitHub, but none of them have been very active. I also recently learned about Hylo, which does have some ideas that I think are promising, but it seems too syntactically alien to really be a "smaller Rust."

Edit to add: I think Graydon Hoare's post about language design choices he would have preferred for Rust also sheds some light on the kind of things a hypothetical "Rust-like but not Rust" language could do differently: https://graydon2.dreamwidth.org/307291.html

view more: next ›