|
|
Log in / Subscribe / Register

The tone is disappointing

The tone is disappointing

Posted May 3, 2022 18:17 UTC (Tue) by tbird20d (subscriber, #1901)
In reply to: DeVault: Announcing the Hare programming language by nix
Parent article: DeVault: Announcing the Hare programming language

I have a hobby project I've worked on for a long time. It has security problems I'm aware of, so I've never published it as open source, though I think some of its features and their implementation (unrelated to its security) might be of interest to others. The negative tone of some of the people in this crowd makes this a place I wouldn't want to introduce it, if I ever changed my mind.


to post comments

The tone is disappointing

Posted May 3, 2022 20:56 UTC (Tue) by roc (subscriber, #30627) [Link] (5 responses)

Speaking for myself, but I suspect also a lot of other people in this comments section, what bothers me most about Hare is this claim:

> It is well-suited to writing operating systems, system tools, compilers, networking software, and other low-level, high performance tasks.

I strongly believe that at this point in time, it is irresponsible to trade away security to the extent Hare does, when adopting a new language in any operating system, system tools, or networking software that you expect other people might use, and therefore it is irresponsible to make the above claim.

So if you avoid claims like that, and just publish your work with a disclaimer that it has security problems and is not suitable for production use, I think you'd be fine.

The tone is disappointing

Posted May 4, 2022 9:21 UTC (Wed) by Wol (subscriber, #4433) [Link]

> So if you avoid claims like that, and just publish your work with a disclaimer that it has security problems and is not suitable for production use, I think you'd be fine.

Eggsackerly. Do a Unix Man Page impression and prominently point out the faults - who knows - you might even get a bunch of fixes :-)

Cheers,
Wol

The tone is disappointing

Posted May 4, 2022 14:21 UTC (Wed) by nix (subscriber, #2304) [Link] (3 responses)

Quite. The specific choice of examples rubbed me up the wrong way too. Operating systems? Assuming this means kernels, they run at maximum privilege level and absolutely need both tools to help you write complex data structures with fine control (since they usually have to reimplement most of them) and tools to avoid memory problems (since they are extra-disastrous). Meanwhile, performance is usually not an issue for 95% of the code in a kernel, and the remaining 5% attracts a lot of thought (and what matters there is usually better algorithms rather than the language it's written in).

System tools? Performance almost never an issue at all, need data structures already there because they are not going to want to reimplement them. Needs to avoid overruns and memory problems because often run as root.

Compilers? They *eat* data structures and very complex allocation patterns for breakfast. I don't know of any large compiler that doesn't have at the very least its own allocator, often several: they usually end up with full-blown garbage collection because the data structures just get so knotty that doing it by hand is utterly impractical. Rust-style ownership tracking usually ends up crudely bodged in :P so it would be helpful to have some of that already there.

Networking software? Exposed to, well, the network. Absolutely must be robust against attackers. I'd prefer it if the things were formally proven correct, but in the absence of actual living flying unicorns at least using heavily-tested datastructures and a memory model that makes common classes of fault next to impossible (like, say, Rust's, or almost any managed language's) is better than nothing. Speed is of marginal interest except for the sort of thing that ends up on network backbones and the occasional thing like the heart of a file transfer system that might find itself at the wrong end of a domestic or datacentre multi-GbE cable, where suddenly every single CPU cycle counts and you'll probably be either bottlenecked in the kernel or using direct-to-userspace stuff and writing core loops in asm to wring *everything* out, with a relatively unimportant and untested fallback in some other language for slower systems. (Almost no applications fall into this category.)

I think I figured it out!

Posted May 10, 2022 20:29 UTC (Tue) by cbushey (guest, #142134) [Link] (2 responses)

>with a relatively unimportant and untested fallback in some other language for slower systems. (Almost no applications fall into this category.)

That sounds like a perfect problem for a programming language to solve. Not some newfangled fresh language where you need to solve a lot of problems and people need to learn new semantics, tooling, and libraries of course! No, it should be lua or javascript (or is that typescript or ecmascript), hmmm. Oh, I've got it! Use GralVM. Then you can aot compile all the code that can run on a jvm. Oh, plus it's designed to be a polyglot compiler so you should be able to mix and match languages you're using with it's help. Maybe even one language per module. Oh, and you've got that Truffle Language Implementation Framework with some more polyglot programing. Now you have a much better solution than making your own language. You can use everybody else's well tested and supported programming languages. Well, you end up learning half a dozen or so unfamiliar syntax but that is clearly better then figuring out something simpler in a single language that can easily solve the problem for a relatively unimportant and untested fallback for slower systems. Sorry. I just wanted to ramble some on lwn and this page has so many comments that my comment is guaranteed to get lost in the noise. I hope you have a nice day.

And almost a week late!

Posted May 10, 2022 20:32 UTC (Tue) by cbushey (guest, #142134) [Link] (1 responses)

This is so not going to be read by anyone. Hey, I'm like that backup language!

Last comment, I promise.

Posted May 10, 2022 20:41 UTC (Tue) by cbushey (guest, #142134) [Link]

oh, and I have absolutely no clue how polyglot programming works using GralVM. At least the last two comments are pretty short.

The tone is disappointing

Posted May 4, 2022 14:00 UTC (Wed) by nix (subscriber, #2304) [Link]

I think Hare makes a fine hobby or experimental language. It's got some very interesting decisions in its design -- but the days are gone when that makes something a good replacement for a major systems language. The state of the art has, slowly and painfully, improved enough for that by now, I think.


Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds