Live data from Hacker News

Criticizing Hare language approach for generic data structures

ayende.com

241–250 of 272 posts

Re: Criticizing Hare language approach for generic data structures

#241
post #208

Earlier quoted context omitted.

You cite a list of trivial cavils, which I have no truck with. Hare's problems are much deeper. They stem directly from Drew's fundamental misunderstanding of the nature of software development. Drew is correct that managing complexity is central to the problem of software development. He is 100% wrong on how a programming language can contribute to solving that central problem. There has been a great deal of progres…

"Hare provides exactly none of the tools that have been discovered to encapsulate complexity into carefully correct and generally useful components, or to enable using such a component in all the different places and ways it would be useful." I would be very cautious when calling anything that encapsulates complexity "carefully correct" or "generally useful". Hiding such complexity behind language features is how we…

Yes, a toy: inadequate for professional work. You can cut grass with scissors, but nobody who understands the task will hire you to do it.

CPUs do not, in fact, see procedures. They execute machine instructions. Your "procedures", exactly, 'encapsulate complexity behind a language feature'. A rudimentary feature, true, but one identically the same as is found in modern languages, among their more powerful features.

I am, indeed, always cautious about calling things "carefully correct and generally useful". Still, I am aware of many language features and standard library components in modern languages that fully satisfy those criteria.

Who pastes code copied from stack overflow? I assume that was a ham-handed attempt at an insult. You are welcome to continue fooling with toy languages, old and new. Pretending they are adequate tools for serious work says more about you than about them.

Re: Criticizing Hare language approach for generic data structures

#242
post #113

Earlier quoted context omitted.

For someone to start using a new language in the Kernel, some of the existing "guard" has to approve it, meaning they've investigated if it's fit or not. Or can anyone willy-nilly contribute to the Kernel without anyone approving changes going into the main branch?

The existing guard doesnt have to prove anything, theyre on the way out. C is a tough language and not a lot of people have the patience for it, and even less people are being forced to learn it like the rest of us in school. As this segment of the community ages out, we arent going to see more code written in C, so we have the new group with Rust, recreating all of the same issues in effigy of C, but with better str…

Damn right I don't have the patience for C. Writing anything in C properly takes a long time, and even then bugs are usually found after.

Compare and contrast Rust, where the code I write will usually just work. I don't need to be extra careful with it because the compiler is strict. You can say that this is indicative of some flaw in my character or whatever, but, uh, I don't care.

Re: Criticizing Hare language approach for generic data structures

#243
post #221
post #206

Earlier quoted context omitted.

Go is not a traditional systems programming language and calling it one is misleading at best and maybe even borderline dishonest. Two big problems are the lack of control of memory layout and the lack of some form that compiles down to a computed goto. It’s just not possible to write performant systems code without those. I’m not bashing Go though. I appreciate the focus on readability among other things. It’s a fin…

https://www.withsecure.com/en/solutions/innovative-security-... I guess the Genera, Xerox PARC, ETHZ, Microsoft folks are borderline dishonest.

I would say that they evidently felt the need to write a new compiler and runtime, which appears to be a species of agreement with my thesis.

Re: Criticizing Hare language approach for generic data structures

#244

Earlier quoted context omitted.

> I would hate to be the creator of Hare and get so much crap for simply daring to exist. Certainly. Since the announce of Hare I've seen __too__ much criticism IMHO. I think the authors have stated clearly the intentions and the features of the language: They just want a slightly better C. Of course you may not like it, but no need to be that harsh...

People will bash anything new that might spoil their favorite language's success. So far, not many languages measured up to C. Hare just might, with it's right amount of simplicity and C's footguns gone. So it's small surprise to see The Rust's Evangelist Strike Force in action on these threads about Hare.

Unfortunately, the only footguns I see talked about in C are memory safety. Well, tbh I do see then occasional discussion of undefined behavior also. I think these are the main areas people are getting bothered over with Hare too.

A huge potion of the criticism at this point towards Hare has been summed into three points: no ‘generics’, no memory safety, and small stdlib combined with no package management.

But, I can imagine that if Hare had generics using template metaprogramming then people would complain about how language design has shown that templates are not good enough, so it needs to be not just a way to have compile time type specialization of data structure, but enable ad hoc polymorphism as well and of course that needs traits or typeclasses.

Further, if Hare used testing and fuzzing and modeling, then claimed to be within the bounds of some error percentage ‘safe’ from leaks, use-after and double free, out of memory conditions; the counter claim would be that you can not be safe, for ANY usage of the word unless you have ownership and borrow checking.

And finally, without a centralized, language committee backed and certified web based way to store and access libraries Hare will never be able to make usable and fit for purpose software, so a package manager is a must have to be worth even considering.

All that said, I don’t think it is exclusively users/promoters of Rust that are complaining/disparaging Hare’s very existence. But it certainly seems like many, many people seem to be convinced that their use case/product goals/preferences are the only considerations for any individual of group making engineering decisions.

Re: Criticizing Hare language approach for generic data structures

#245
post #243
post #221

Earlier quoted context omitted.

https://www.withsecure.com/en/solutions/innovative-security-... I guess the Genera, Xerox PARC, ETHZ, Microsoft folks are borderline dishonest.

I would say that they evidently felt the need to write a new compiler and runtime, which appears to be a species of agreement with my thesis.

Apparently writing compilers isn't systems programming....

Re: Criticizing Hare language approach for generic data structures

#246
post #110

Earlier quoted context omitted.

Because you can't guarantee that every distro's package manager will have the packages you need.

Build them from source, then. Hare is a systems programming language. What kind of a systems programmer doesn't know how to build from source?

So the solution is just vendoring? Vendoring is very clunky—that's why we have package managers in the first place.

Re: Criticizing Hare language approach for generic data structures

#247

I'm so bored with all this reactionary tech. I don't understand the urge to reinvent everything from first principles while ignoring the last 30 years of advances in computing. I was alive back then. Things weren't actually better.

I think it's simple: People don't want something like Python or Java, which improves on old stuff with a big runtime, and they don't want something like Rust, which improves on old stuff with lots of complicated static checking. You can't write an OS in Python, and Rust isn't simple, which these people really want. So throw away the runtime, throw away the fancy compiler checks, and you just have a slightly nicer C.

Re: Criticizing Hare language approach for generic data structures

#248
post #110

Earlier quoted context omitted.

Because you can't guarantee that every distro's package manager will have the packages you need.

Build them from source, then. Hare is a systems programming language. What kind of a systems programmer doesn't know how to build from source?

Having to download several dependencies from random websiees and install them is not the most fun way to spend an afternoon. Especially if half of them have cryptic build errors.

Re: Criticizing Hare language approach for generic data structures

#249

Earlier quoted context omitted.

People will bash anything new that might spoil their favorite language's success. So far, not many languages measured up to C. Hare just might, with it's right amount of simplicity and C's footguns gone. So it's small surprise to see The Rust's Evangelist Strike Force in action on these threads about Hare.

Unfortunately, the only footguns I see talked about in C are memory safety. Well, tbh I do see then occasional discussion of undefined behavior also. I think these are the main areas people are getting bothered over with Hare too. A huge potion of the criticism at this point towards Hare has been summed into three points: no ‘generics’, no memory safety, and small stdlib combined with no package management. But, I ca…

You summed it up so well.

And those are the very same reasons Hare should remain a simple language.

You can never please the crowd, but you can please yourself and a couple of your friends.

Re: Criticizing Hare language approach for generic data structures

#250
post #76

Earlier quoted context omitted.

> But you are correct about go, it doesn’t give the programmer enough control to be used at that level. What I like about go is that I can go full unsafe.Pointer if i want to, and do whatever I want. The other thing I really like, is that they did such a good job discouraging it that i frequently hear people complain about go having pointers but not even letting you have fun with them. The problem isn't that go doesn…

You can't even call a non-Go library without switching to cgo, which contradictorily basically everyone says not to use. Leaving aside the GC, until Go has a real FFI it's hard to to imagine it being a really great fit for systems programming when the systems are all not written in Go.

You can use the same FFI as K&R C, write a couple of Assembly helpers.
Post reply on HN