Simple software manifesto
"Are we simple yet?"
https://arewesimpleyet.org/
@G117CH
What's your point?
@G117CH
> complex and bug-prone memory management
> doesn't support Unicode
The author of the manifesto holds these same opinions, and in fact made his own programming language in the spirit of C which addresses these issues. It might interest you.
I've contributed to Hare myself and enjoy the language.
@G117CH
Of the author's opinions:
- https://drewdevault.com/2019/03/25/Rust-is-not-a-good-C-replacement.html
Also of interest:
- https://drewdevault.com/2017/01/30/Lessons-to-learn-from-C.html
- https://drewdevault.com/2017/03/15/How-I-learned-to-stop-worrying-and-love-C.html
- https://harelang.org/blog/2021-02-09-hare-advances-on-c/
- https://harelang.org/blog/2022-05-02-what-is-hares-scope/
- https://harelang.org/blog/2022-04-25-announcing-hare/
@G117CH
I myself kinda hate Rust haha. Or more so the Rust ecosystem. But I do respect it's primary points of memory safety, etc.
@G117CH
> intoxicatingly easy
Precisely where the poison lies. Copying the npm/.node_modules monster is a terrible idea. Your point about C/C++ external libraries is also true. Which is why I like Hare's sensible and user-friendly inbetween.
@G117CH
I'd argue philosophically that npm as a concept is flawed, and the lack of this insight is what causes all these issues in the first place.
Also, I don't buy a lot of this "forced upon by the world ecosystem complexity". I see a large lack of due diligence out there. But yes, the outside world exists, and we have to deal with it :D.
> I wonder how adoption will work out.
World domination is not a priority for the Hare project. Upstream Hare deliberately does not support non-libre OSs. It's a principled language, and if others happen to find value in it, that's great. It's not meant to replace anything. Languages serve different purposes and niches, including Rust.
@torresjrjr I do certainly agree with the author’s statement that Rust is not a replacement for C because C and C++ are not the same languages. I was unaware of Go’s lineage, but that makes a lot more sense. I come from the C++ side of things more so than C. My last C work was around 2002.
Also, I don’t buy a lot of this “forced upon by the world ecosystem complexity”. I see a large lack of due diligence out there.
Yes, I agree. My TV no longer works because Roku pushed a broken update. My phone won’t stay paired to my car. These are things that would’ve been unthinkable back when I got into programming. What I mean though, is regardless of OS, most programs aside from console-based ones require an inordinate amount of code and complexity to write, and most of this code is hidden away in toolkits and OS-level libraries. It is impossible, for instance, for me to vet the code of the Qt project, and write a program that does something useful, by myself. This exact limitation has caused problems down the line for my business, as undefined behavior in Qt presented as a very hard-to-find bug.
So it does feel that some complexity is forced upon developers to continue to be productive, but I don’t know that there is a clear path out of those woods.
You certainly make some good points there. I agree. I suppose I always talk with the implication of libre software in mind.
What business, if I may ask?
Huh? All those "Not There" points seem very badly researched:
libc: musl and a horde of other small ones
init/supervisor: plenty also, sinit from suckless.org comes into mind spontaneously
High-level programming: ... what exactly are you looking for when you use C without macros?
GUIs: There isn't just Qt and GTK, yk? Imgui, 60FPS, etc...
1/2
@tobtobxx
This is 2 years old, btw
https://git.sr.ht/~sircmpwn/arewesimpleyet.org/log
@torresjrjr Most of these projects are way older that that.
@tobtobxx
Thanks for sharing them anyway.
I'll give in to the assembler/binutils point. We need that (llvm is simple to use, but that's not the 'simple' they seek). I can't tell whether tcc would fit this category though.
About the kernel: you can tune Linux down as much as you want. Once you remove all unneeded drivers/architectures, the code is actually almost as simple as you can get without giving up features.
2/3
And build system: Yeah Make is hell, clang too. But there are some interesting upcoming projects. I'm personally keeping an eye on nobuild[0].
So yeah. Pretty bad article IMHO.
@tobtobxx @torresjrjr There's also redo, which is more similar to make but without many of its problems
@torresjrjr, @yyp and @tobtobxx, you might be interested in zig build as well
@cnx I dislike zig build. Writing build code in "real" language might seem convenient, but it requires in cross-compiling for example, both host and cross toolchains must be installed. And the builds take longer because you compile twice (and it's pretty bad with LLVM). Also, I see no reason why the same thing zig does can't be done using make or redo
>Uses C