Things like C and Java will easily reach 100 years due to the sheer amount of legacy code to maintain even when new projects based on those languages will have stopped.
As a niche, hobbyist language, yes. You can't start a new language in your garage and make it a big thing that lasts 100 years though. You will get buried in new thing big company released this year.
Fuck off drew, nobody is going to use your language >no generics >no llvm, slow as balls >no macros >no windows support >brings nothing to the table over existing languages >made by drew (this one is enough for an instant pass)
When will you understand nobody wants to use your forced meme because it is shit and you are shit?
>no generics
it is intended for systems programming >no llvm, slow as balls
Not really, qbe has come close to its goal of 70% performance of larger compilers for a lot of tasks. >no macros
this does suck >no windows support
lol >brings nothing to the table over existing languages
it is simpler than C, adds error as a return type, defer keyword and fixes the problem of arrays not containing their size >made by drew (this one is enough for an instant pass)
who cares?
I will probably stick to C. But I could see it having some use cases.
>no atomics >no SIMD intrinsic >no autovectorization >no debugger support (lmao @ kiddies who think printf is a debugger alternative) >literal toy backend compared to state of the art such as llvm or gcc >the entire reason of the language's existence is "zig developers banned me for chimping out like a retard. WAAAH how could this happen" >author is terminally online and severely mentally unstable due to poor relationship with his parents
The last point is especially important because nearly everything drew does is to distract himself from his inability to work on getting a good relationship with his parents. >Abandoning his homeland and flying off to europe >Abandoning biology and pandering to mental illness >Abandoning battle tested and ACTUALLY stable tech and leaning towards unstable unfinished toy garbage
all of these follow a similar theme that's very easy to see to anyone with triple digit IQ.
>lmao @ kiddies who think printf is a debugger alternative
"lmao @ kiddies who think printf is a debugger alternative"
- Brian Kernighan, kiddie
>he thinks a debugger is used only for debugging >he doesn't realize it's an incredibly efficient inspection tool to that can be used to interact with your code and data-structure far beyond what printf could ever achieve (showing registers, asm etc) giving you a much more comprehensive understanding of the program >he doesn't realize that anywhere where printf would work a debugger breakpoint would also work while being 100x more efficient >he hasn't seen what modern day debuggers are capable of https://youtube.com/watch?v=r9eQth4Q5jg
LMAO @ (You)
Yes, kiddie. I'm using gdb and openocd to debug my softcore CPU, good luck figuring out why UART doesn't work or debugging a problem in your bootrom with printfs.It's good enough 99% of the time but not always.
This is a cool idea. I wonder what will happen to it in this timeline (after arxiv 2203.09524 and arxiv 1910.11775)
In any case, the emerging culture of long-term preservation (of which this project is but one bud) would certainly helpful to deal with at-scale CP violations.
I mean, cobol has been around for too much time and it is still going just because nobody had expected these systems to still be useful so much time later. And, now, changing systems made in cobol is.... risky.
That's science for you. Trial, error and learning.
Why do we forgo this last part so much?
By the way, to avoid confusion, this "timeline" thing is just a figure of speech. I have no idea about implementing time travel. Whether those rare kaon decays (which do have to do with time research, but in early stages) lead to anything or not, I don't know and don't care for now. A stable foundation is necessary in computer science and in society as a whole (since so much of our interaction has been "trapped" in networks).
The motivation behind Hare does look cool!
They don't get it. Shitloads of words and not a single mention of ABI. If your program does not speak the C/SysV ABI, it will be rewritten in C. Just get over it and deal with that fact.
If he wanted his language to last a 100 years he would be making products with it, not boasting
As much as I don't care about that The Witness guy, Jai is probably the only independent language which would have had a chance of becoming part of the industry if only he had actually finished that retarded sudoku game that he was working on and then released a successful product.
Think about how many kids learned source/unreal scripting just to have a bit of fun. Hell even warcraft 3's meme script language is more popular than any of these one-dev indie langs
Not to mention semi-popular stuff like Godot's GDScript
IMO bad idea because it's better if software that proves language's worth is actually useful by itself. Nobody's gonna use that microkernel
I mean, on paper it shits on Linux's chest and any general purpose mainstream os
That and also, even if you can say whatever you want to ddv, he is the only public dev I know who have the balls of having a well defined scope and not changing direction
If he manage to grok something even almost usable and not die or whatever (which is a big IF considering ddv), Hare+Ares/Helios will be as big as C+Unix
Looks like israelite Segfault is back shilling his shitlang
In addition to what has been said already, let me add >no threads >no use after free protection (the most important vulnerability to protect against)
This nagger thinks his language is secure because he has nullable pointers L M A O
>What is a software that is "useful" in your opinion?
Whatever fuels the Spic-Nig cycle.
>no generics
it is intended for systems programming >no llvm, slow as balls
Not really, qbe has come close to its goal of 70% performance of larger compilers for a lot of tasks. >no macros
this does suck >no windows support
lol >brings nothing to the table over existing languages
it is simpler than C, adds error as a return type, defer keyword and fixes the problem of arrays not containing their size >made by drew (this one is enough for an instant pass)
who cares?
I will probably stick to C. But I could see it having some use cases.
>Looks like israelite Segfault is back shilling his shitlang
There are lot of people who use and like the language, the fact that makes you so salty is actually a plus lol
3 weeks ago
Anonymous
>There are lot of people who use and like the language, the fact that makes you so salty is actually a plus lol
No one uses his language. Only him and the shills he unironically pays to post in these threads
>no use after free protection (the most important vulnerability to protect against)
Linear types are being studied. They will probably make into the language
Faaaaaaaaaaggot!
>l-linear t-types
It's not in the language. Keep coping.
>>no use after free protection (the most important vulnerability to protect against)
rusttranny
>if you attempt to program safely you must be using rust
Who is the rust tranny again?
Hare has ZERO ways to deal with use after free.
In C you can use __attribute__((cleanup)) and set double pointers to NULL in destructor functions.
C literally has more ways of dealing with use after free than hare.
3 weeks ago
Anonymous
>shills he unironically pays to post in these threads
take your meds already >In C >destructor functions
holy shit you can't be serious
3 weeks ago
Anonymous
>holy shit you can't be serious
Show me where I made an incorrect statement regarding the capabilities of the C programming language.
Welcome back ESL nocoder friend, I recognize you from previous threads.
3 weeks ago
Anonymous
I'm not any on the person you are talking about and I also think you are a homosexuals
>Welcome back ESL nocoder friend, I recognize you from previous threads.
Take your meds lol
3 weeks ago
Anonymous
He has a good point, though. You don't.
>argument: not found
I accept your concessions.
3 weeks ago
Anonymous
ok thats fine if you want to be wrong
3 weeks ago
Anonymous
Show me how an idiom in hare to fix use after free right now, or you are an esl homosexual shill.
3 weeks ago
Anonymous
Not her, but it's very simple, you just don't use pointers after freeing them
3 weeks ago
Anonymous
>her >retard answer
nocoder scum, typical hare user
>Not in the language. So how is it a feature?
Because the language is not finalized yet, and since hare will freeze features forever that's actually an argument
They also are in the roadmap
>One of the most useless safety features in a language.
They are nice to have, although they don't prevent anything they make a little bit harder to make some common mistakes
Your birth was actually useless
>exhaustve pattern matching for error handling >Match is not exhaustive. Try it for yourself
I can't check now, but I'll do
Also it's a point in the roadmap
https://harelang.org/roadmap/
>it's in LE roadmap
In other words it doesn't do literally anything that would make it a usable language?
I'll tell you what Drew, you unironically implement anything on your faggy roadmap, and I'll take your language seriously.
Until then, there is no point in shilling this garbage until its done, yes?
Also >still no threads
Still no answer for why that is. Other than it's hard and israelite Segfault doesn't have a big enough brain to do it.
3 weeks ago
Anonymous
>Still no answer
It's simple, threads are the wrong primitive, they are far too error prone and bad for security
Use processes instead
3 weeks ago
Anonymous
>my brain is too small for threads
No wonder all your software is shit
>no use after free protection (the most important vulnerability to protect against)
Linear types are being studied. They will probably make into the language
Faaaaaaaaaaggot!
3 weeks ago
Anonymous
Forgot the link for the homosexual
Looks like israelite Segfault is back shilling his shitlang
In addition to what has been said already, let me add >no threads >no use after free protection (the most important vulnerability to protect against)
This nagger thinks his language is secure because he has nullable pointers L M A O
>What is a software that is "useful" in your opinion?
Whatever fuels the Spic-Nig cycle.
>depressed troon still in the closet >wants to build something that last
sorry but I do not trust him. he will commit sudoku at some point as he is mentally ill.
no one uses his shit and once he is dead it will disappear into oblivion with him.
It's pretty funny how seething he is about his post as if being a developer forbids someone from having political opinions lmao. Imho, kiwitrannies going after Drew is excellent for harebros because there is no such thing as negative attention
3 weeks ago
Anonymous
it's the interjecting of random political opinions in everything that is the seethe
>a Hare compiler written on day one will be able to compile comtemporary Hare programs in a century's time
Unless you introduce literally zero new features in a century's time, how does that work?
>Unless you introduce literally zero new features in a century's time
That's exactly the plan, look at his other projects
also, I'm struggling to see the use cases for this. the only thing i can think of is that new compilers may become shitty so you want to reuse old ones.
but I'd think backwards compatibility is much more important
>dr*w
what is this, reddit?
Yes, if hare achieves it's goal, then it is a drop in replacement for C, because one could just instead of rewriting the whole project, write new parts in Hare and keep old parts in C
From the point of long-lasting legacy software, that's quite counterproductive. It would be easier to find a C specialist in the next century than to find both C and Hare specialists in the year 2123.
3 weeks ago
Anonymous
Hare IS basically C with minor syntactic sugar.
3 weeks ago
Anonymous
So then what's the point in using it over C?
3 weeks ago
Anonymous
Because, while the guy who answered you was right, it also adds a conservative number of features that makes it better (or at least easier) to work with
> Modules and namespaces > Anonymous tagged unions + exhaustve pattern matching for error handling > non nullable pointers > rich stdlib > tools distributed with the language > (possible) linear types for avoiding use after free
3 weeks ago
Anonymous
>(possible) linear types for avoiding use after free
Not in the language. So how is it a feature? >non nullable pointers
One of the most useless safety features in a language. >exhaustve pattern matching for error handling
Match is not exhaustive. Try it for yourself.
3 weeks ago
Anonymous
>Not in the language. So how is it a feature?
Because the language is not finalized yet, and since hare will freeze features forever that's actually an argument
They also are in the roadmap
>One of the most useless safety features in a language.
They are nice to have, although they don't prevent anything they make a little bit harder to make some common mistakes
Your birth was actually useless
>exhaustve pattern matching for error handling >Match is not exhaustive. Try it for yourself
I can't check now, but I'll do
Also it's a point in the roadmap
https://harelang.org/roadmap/
3 weeks ago
Anonymous
>non nullable pointers
A pointer is an integer, an integer can be zero, zero is null, didn't you learn this from Ginger Bill?
>And I do mean *really* replace
there are plenty of languages that are far more useful than hare while having C abi compatibility.
you're insanely delusional if you think this shitlang can replace C.
>how does that work?
It works just fine. Not having a constant flow of new features is a good thing. It also helps you avoid the situation which Zig is currently in where a lot of code even a couple months old is outdated and can't compile.
backwards compatibility and feature creep are the two things that can make a software project go to shit. Programming languages are mostly solved, there is no need to constantly change things. They believe that Hare was complete and needed no new features so they decided that they would never add any new features. It is not as if there is going to arrive some revolutionary new idea.
>It is not as if there is going to arrive some revolutionary new idea.
so nothing has changed between lisp, cobol, etc and now? even BNF has changed since then.
>They believe that Hare was complete and needed no new features >Notice: Hare is a work in progress! It may be mature enough to support your use-case, but there may also be some breaking changes between releases. Users are strongly encouraged to subscribe to hare-announce for details of breaking changes in each release.
They *will* believe Hare will be complete. Some day. Maybe. Hopefully in the next 100 years.
I think in 20 years time all current programming languages will be dead and replaced by a seemingly illusive new language which far exceeds current capability and simplicity.
As far as I can tell, there is literally no reason for this language to exist. It's basically a variant of C, but with a different syntax and fewer features, so it has no niche. Zig beats it, because Zig appeals to C programmers just as much but also introduces good metaprogramming, compile-time alignment help, etc.
I am a C programmer and I am sexually attracted to Zig.
>want to compile C for arm cortex m7 bare metal >add -ffreestanding -fno-pic -s -Os -nostdlib to gcc >just works >Zig >have to write a fucking 100LoC build script
you didn't try hard enough, you have arguments for linker scripts, entry points and whatever else you might need
either way the zig build system literally just calls zig build-exe in the background, anything you can do in a build script you can do with plain old CLI commands. nothing mandates the use of the build system
Cut down? C's biggest issue is error handling. Hare takes care of that. C's second biggest issue is file structure (need separate header and source file, resulting in tree bloat). Hare fixes that. C's third biggest issue is the lack of defer. Hare fixes that.
3 weeks ago
Anonymous
defer is a shitty cope.
RAII has always been the superior way of dealing with everything.
But C does have defer anyways, its called __attribute__((cleanup)) and it is superior to hare defer because you can also use it to do RAII.
Also hare error handling is complete shit. >using a seven line autistic match syntax just to check if a pointer is NULL
vs >if (ptr)
And the match statement isn';t even exhaustive, and yet the shitlang forces you to use it for that purpose.
All of you hobbyist retards need to be killed. In a different time, retards like you were put in their place, but now every fucktard can voice his shitty uninformed opinion.
3 weeks ago
Anonymous
a seven line autistic match syntax just to check if a pointer is NULL >vs >>if (ptr)
fucking retard. hare has ! and ? for error handling, match is only needed once. and if (ptr) is not error handling, errno is error handling, and it's garbage. of course the worst thing is that there is no error handling hence why every library rolls it's own >GError** >SDL_Error >errno >AVERROR
fucking cancer
3 weeks ago
Anonymous
Hahahaha you homosexuals are so braindead. Even in your shittlang you deal with errno every time you deal with the OS, its just abstracted away, like you might do in C. >! and ?
! is not error handling. It's literally a free DOS vulnerability. ? is syntactic sugar over something you can also easily do in C.
if (ptr) is error handling when you program in a RAII style. By returing a valid pointer if you created a valid object, and NULL if you didn't, you eliminate 99% of all need for something like errno.
Sorry your brain isn't large enough to read between the lines, I should have clarified.
3 weeks ago
Anonymous
>! is not error handling. It's literally a free DOS vulnerability.
No it is not. It means it prints the error and exits, extremely useful for cmd utils >? is syntactic sugar over something you can also easily do in C.
Then there would be ? in C - there isn't. >if (ptr) is error handling when you program in a RAII style. By returing a valid pointer if you created a valid object, and NULL if you didn't, you eliminate 99% of all need for something like errno.
RETARD. You MUST communicate the error to user, not be like microsoft "oops, something went wrong"
3 weeks ago
Anonymous
>Then there would be ? in C - there isn't.
Because obfuscating control flow is bad. If you want to return an error so badly, do it inline.
There really isn't much difference in what hare does that you can do in C, Go or Rust besides some useless syntactice sugar.
You can force users to handle errors in C with standard compiler attributes.
If you want more you need exceptions. >It means it prints the error and exits, extremely useful for cmd utils
You clearly have never written anything robust. Try that paradigm in a GUI or network daemon. It won't work. It's shit. It's no different than Go or Rust panic. It's a retarded paradigm that only benefits brainlets who can only rewrite ls in their new favorite shitlang. >RETARD. You MUST communicate the error to user, not be like microsoft "oops, something went wrong"
It's called printf you mongoloid. Or write a thin logging framework over printf if you wanted to be fancy. >if (thing) { ... } else { log_error... }
That is infinately less code than whatever shitlang you are trying to shill.
I haven't seen any hare code that isn't a bloated mess of unecessary (and not even exhaustive) match statements. I regularly have to scroll a page to even view most functions because they are so long. It's a fucking garbage language, made by a tranny loving retard.
I swear it's like I'm interacting with a jeet. You have NO frontal lobe capacity. Zero. Please kill yourself so that you have no chance of spreading your genes. Retroactive abortion wouldn't be enough for you.
3 weeks ago
Anonymous
>It's called printf you mongoloid. Or write a thin logging framework over printf if you wanted to be fancy.
No serious graphical application uses it for error handling. Stop being a retard
3 weeks ago
Anonymous
>deflection
lmao
>No serious graphical application uses it for error handling. Stop being a retard
Once again you don't have the frontal lobe capacity to see the implications of what I'm saying.
Replace printf with signaling an event to throw up an error dialog or whatever the fuck. The concept is the same.
How many GUI programs have you written in hare homosexual?
3 weeks ago
Anonymous
>Replace printf with signaling an event to throw up an error dialog or whatever the fuck. The concept is the same.
No, that's how pajeets do it. The way real men do it is by writing a function so that you only modify that if you need to.
Impossible in C of course because there is no single error type. Of course the lack of defer also means that you have to put 50 fcloses every time you check for failure.
3 weeks ago
Anonymous
>No, that's how pajeets do it. The way real men do it is by writing a function so that you only modify that if you need to.
What? You've said something that doesn't make any sense. Post code retard. >Of course the lack of defer also means that you have to put 50 fcloses every time you check for failure.
C has __attribute__((cleanup)) that is even better than defer.
3 weeks ago
Anonymous
Cleanup is gcc specific
3 weeks ago
Anonymous
Works in clang, so not GCC specific.
3 weeks ago
Anonymous
What is clang
3 weeks ago
Anonymous
>Because obfuscating control flow is bad.
It doesn't because it's not optional. You can't ignore errors by mistake.
Either you propagate it or deal with it. It does not obfuscate the control flow
> If you want to return an error so badly, do it inline.
Or, you can use hare
>There really isn't much difference in what hare does that you can do in C, Go or Rust besides some useless syntactice sugar.
But how it does it, makes it a better C option
>You can force users to handle errors in C with standard compiler attributes.
Still optional. In hare you are forced to acknowledge the error and act by wither deferring it up to the caller or deal with it
>If you want more you need exceptions.
Exception alter the flow of execution which is something even a retard like you agree on how bad it is
> Try that paradigm in a GUI or network daemon. It won't work. It's shit. It's no different than Go or Rust panic.
Then don't use it. Use ! If it's an unrecoverable error
>That is infinately less code than whatever shitlang you are trying to shill.
It's not. You end up rewriting the error control on every caller of your execution stack
3 weeks ago
Anonymous
>Y-you c-can't ignore errors by mistake
Invalidated by the fact that the match statement is not exhaustive
Didn't read the rest.
3 weeks ago
Anonymous
But it's mandatory to enclose the call in match statement
If you are ignoring the signature which list all possible errors in one line like fn foo() (type | ErrA | ErrB | ErrC) = { you are basically doing it on purpose
> Exhaustive switch & match > Another common cause of errors in C > is the failure to handle all cases in a switch statement.
> At least, that’s what the specification demands. The compiler does not yet enforce this uniformly.
>anti hare shills don't know shit
how ... *shocking*
3 weeks ago
Anonymous
In the same way that ignoring a return code marked with __attribute__((warn_unused_result)) in C would have to be done on purpose? If you compile with -Werror then you can't even ignore it.
As a bonus C will issue warnings when switches are not exhaustive when you have the return code defined as an enum (Which you should).
So why should I use hare? C has literally everything I need and more.
> Exhaustive switch & match > Another common cause of errors in C > is the failure to handle all cases in a switch statement.
> At least, that’s what the specification demands. The compiler does not yet enforce this uniformly.
[...]
Forgot part of the quote
> Exhaustive switch & match > Another common cause of errors in C is the failure to handle all cases in a switch statement.
> in Hare, switch and match statements must be exhaustive, meaning that they handle every possible value or type that can be switched or matched.
> At least, that’s what the specification demands. The compiler does not yet enforce this uniformly.
>proving my point
Yes? So why should I use hare again?
It might be hard for a jeet to understand, but when white men say something does something, it usually means that it actually does something.
Until the match statement is actually exhaustive, then it provides no actual benefit. In fact this currently worse than C, as switches that aren't exhaustive on enums are given a warning, which can be turned into a compiler error.
3 weeks ago
Anonymous
The exhaustive match and switch are in the specifications, meaning that hare **will** implement it on other to have a final compiler
As it is now, you have to fighting the compiler in order to skip some error
> call foo() > compilers complaints it must be encoles in a match statement > See the signature > Deliberatively ignore some one error listed in the signature
At that point you cannot be trusted with writing any code at all
Still keeping in mind that the specification enforce the compiler to implement the feature in order to consider it a compliant hare compiler
3 weeks ago
Anonymous
>hare will implement it
There is nothing that ensures that will happen.
A spec is not the 10 commandments.
A human has to implement it.
Until it's done, you do not have an argument. It's that simple. Shill me your homosexual language when it actually works. Until then its a work in progress that is worse than C. Hell after then, because of threading, it will always be worse than C.
>At that point you cannot be trusted with writing any code at all
In C I can force people to deal with my errors by making my code compile with -Werror.
3 weeks ago
Anonymous
>There is nothing that ensures that will happen.
The specification. Hare doesn't have multiple specification or a reference implementation, so you have a formal definition of the featureset of the language >A spec is not the 10 commandments.
It is. Justly like you can ignore them and not being a Christian
. >Until it's done, you do not have an argument.
I already argumented enough.
Even at current state, hare has a several mechanism of guiding you in handling errors
I get you are a retards, but even you can understand that compiler forcing to to acknowledge the possibility of a function returning an error and forcing you to enclose it in match clausole is extremely different than allowing to call a function and return an error based on a codification of the result domain union Null and ignoring the global errno just to have the system throwing a runtime error when you effectively access the memory in likely a distant part of the code
If the specification states that the match MUST be exhaustive, you have to assume the compiler will implement said feature
Untill he decided to remove the req, you are just arguing because you are emotionally attacked by the language for some reason >In C I can force people to deal with my errors by making my code compile with -Werror.
No, you can't
3 weeks ago
Anonymous
>esl
Kek this is what Drew has to resort to to shill his language? Hiring jeets to argue with 4chinners. The absolute state.
3 weeks ago
Anonymous
Being an amerilard has always been a predictor of being a less capable programmer, I don't know why are you insisting on making it a point
3 weeks ago
Anonymous
>If the specification states that the match MUST be exhaustive, you have to assume the compiler will implement said feature
But does it implement said feature RIGHT NOW when I use the fucking language? No it doesn't.
Therefore in ITS CURRENT STATE the language is worse than C.
>No, you can't >compile with -Werror >define error value as enum >mark functions that return it with __attribute__((warn_unused_result)) >when its used in switch statements and not all cases are matched, compilation fails >when its ignored, compilation fails >in GCC can't even ignore it by casting the expression to void
Literally the same level of safety as hare.
Harebrains BTFO
3 weeks ago
Anonymous
How does int open() returning -1 will benefit from Werror?
3 weeks ago
Anonymous
>wrap open with a function that does as i've described previously >suddenly it does the needful
>But does it implement said feature RIGHT NOW when I use the fucking language? No it doesn't. >Therefore in ITS CURRENT STATE the language is worse than C.
It still is better than C as ii **currently** handle errors by default
>compile with -Werror >define error value as enum >mark functions that return it with __attribute__((warn_unused_result)) >when its used in switch statements and not all cases are matched, compilation fails >when its ignored, compilation fails >in GCC can't even ignore it by casting the expression to void >Literally the same level of safety as hare.
Or you can use hare wich enforce it by default and which is saner by default (and will be objectively better as it will implement all the featureset in its specification)
>currently
it doesn't >will be will be will be
lmao
keep coping
show us all the projects you've made homosexual
I'd love to see what you retards actually do with this language, if you even use it and aren't just here because israelite Segfault paid you to be.
3 weeks ago
Anonymous
>>wrap open with a function that does as i've described previously >translation: write a bunch of code for no reason
3 weeks ago
Anonymous
>5 lines of code is too much
It's time to stop Drew.
3 weeks ago
Anonymous
Yes, it is too much if it is literally for no reason. A good programming language should be simple, elegant and descriptive enough so that no workarounds are necessary
3 weeks ago
Anonymous
>A good programming language should be simple, elegant and descriptive enough so that no workarounds are necessary
>elegant >can't even do if (ptr) >have to write 7 lines to use ptr
harebrains truly are remarkable
3 weeks ago
Anonymous
>>can't even do if (ptr)
that is a code smell. pointers should not be truthly values
3 weeks ago
Anonymous
>that is a code smell. pointers should not be truthly values >t. unemployed esl
3 weeks ago
Anonymous
>if (ptr)
This is bad coding.
What's wrong with if (ptr)?
3 weeks ago
Anonymous
It scares the street shitters.
3 weeks ago
Anonymous
It's not forced upon the compiler and more importantly, it's decoupled for the error class which generate the error
It's a retarded way to do error handling, ok if you don't have anything else better but optional types with a error typisystem is objectively better
3 weeks ago
Anonymous
>if (ptr)
This is bad coding.
3 weeks ago
Anonymous
Good morning Sir.
I redeemed. It is good coding.
3 weeks ago
Anonymous
Redeem your life anon, you sound desperate
3 weeks ago
Anonymous
>But does it implement said feature RIGHT NOW when I use the fucking language? No it doesn't. >Therefore in ITS CURRENT STATE the language is worse than C.
It still is better than C as ii **currently** handle errors by default
>compile with -Werror >define error value as enum >mark functions that return it with __attribute__((warn_unused_result)) >when its used in switch statements and not all cases are matched, compilation fails >when its ignored, compilation fails >in GCC can't even ignore it by casting the expression to void >Literally the same level of safety as hare.
Or you can use hare wich enforce it by default and which is saner by default (and will be objectively better as it will implement all the featureset in its specification)
> Exhaustive switch & match > Another common cause of errors in C > is the failure to handle all cases in a switch statement.
> At least, that’s what the specification demands. The compiler does not yet enforce this uniformly.
3 weeks ago
Anonymous
>Y-you c-can't ignore errors by mistake
Invalidated by the fact that the match statement is not exhaustive
Didn't read the rest.
Forgot part of the quote
> Exhaustive switch & match > Another common cause of errors in C is the failure to handle all cases in a switch statement.
> in Hare, switch and match statements must be exhaustive, meaning that they handle every possible value or type that can be switched or matched.
> At least, that’s what the specification demands. The compiler does not yet enforce this uniformly.
3 weeks ago
Anonymous
Be honest, do you even program in C? These are definitely not the actual biggest issues, just some weird list you made up to shill Hare. And you didn't mention the fact that it has even less metaprogramming than C or that it doesn't support Windows.
I am one and I find hare more suitable for a better C than zig, which is yet-another-language-which-started-as-a-better-C-and-completely-lost-the-focus
3 weeks ago
Anonymous
>completely-lost-the-focus
How so? My impression is that they're keeping the focus very well. I only dislike the camelCase, but that's pretty minor.
Is it that hard to just admit the language is worse than C?
If hare fixed the many problems that it has, you might have some form of argument that some hypothetical person might want to use it, but until then it's literally not worthwhile.
Even then, there are many glaring problems with hare that israelite Segfault has said he will never fix (namely threads) so in actuality it will ALWAYS be worse than C. For 100 years LMAO.
>slow >lacking documentation >lacking tools >lacking standard library >lacking language features
Why use this toy lang? You can stop spamming the threads. It's not even new language anymore. No excuse to be so work in progress. Except if lazy and hope others will fix your mess.
Bruhs... I'm so upset with programming languages, self documented code was literally possible without writing much, but scientific consensus made it impossible by limiting capabilities with dumb rules.
one hundred giant bunnygirls
Came in my pants, anon. Thank you.
Is such a thing even possible?
Fortran's nearly 3/4 of the way there
Things like C and Java will easily reach 100 years due to the sheer amount of legacy code to maintain even when new projects based on those languages will have stopped.
As a niche, hobbyist language, yes. You can't start a new language in your garage and make it a big thing that lasts 100 years though. You will get buried in new thing big company released this year.
Not using your le 1000 year memelang
Fuck off drew, nobody is going to use your language
>no generics
>no llvm, slow as balls
>no macros
>no windows support
>brings nothing to the table over existing languages
>made by drew (this one is enough for an instant pass)
When will you understand nobody wants to use your forced meme because it is shit and you are shit?
>>no windows support
that's a good thing, microToddler
I run linux, but obviously a language without support for all major OSes is never gaining adoption
This but without tranime pic. Also this homosexual believes le epic trans people are being #sad #genocided
>WOAH this guy literally believes something I don't like OMG
>no generics
it is intended for systems programming
>no llvm, slow as balls
Not really, qbe has come close to its goal of 70% performance of larger compilers for a lot of tasks.
>no macros
this does suck
>no windows support
lol
>brings nothing to the table over existing languages
it is simpler than C, adds error as a return type, defer keyword and fixes the problem of arrays not containing their size
>made by drew (this one is enough for an instant pass)
who cares?
I will probably stick to C. But I could see it having some use cases.
>100 bunnies
That sick freak.
>fostering a culture that values stability
lol, rich coming from drew the kike devault stirring up drama online wherever he goes. fucking nagger
>no atomics
>no SIMD intrinsic
>no autovectorization
>no debugger support (lmao @ kiddies who think printf is a debugger alternative)
>literal toy backend compared to state of the art such as llvm or gcc
>the entire reason of the language's existence is "zig developers banned me for chimping out like a retard. WAAAH how could this happen"
>author is terminally online and severely mentally unstable due to poor relationship with his parents
The last point is especially important because nearly everything drew does is to distract himself from his inability to work on getting a good relationship with his parents.
>Abandoning his homeland and flying off to europe
>Abandoning biology and pandering to mental illness
>Abandoning battle tested and ACTUALLY stable tech and leaning towards unstable unfinished toy garbage
all of these follow a similar theme that's very easy to see to anyone with triple digit IQ.
yep, sounds like drew decuck
>lmao @ kiddies who think printf is a debugger alternative
"lmao @ kiddies who think printf is a debugger alternative"
- Brian Kernighan, kiddie
Fuck, the quote was supposed to be "The most effective debugging tool is still careful thought, coupled with judiciously placed print statements."
>he thinks a debugger is used only for debugging
>he doesn't realize it's an incredibly efficient inspection tool to that can be used to interact with your code and data-structure far beyond what printf could ever achieve (showing registers, asm etc) giving you a much more comprehensive understanding of the program
>he doesn't realize that anywhere where printf would work a debugger breakpoint would also work while being 100x more efficient
>he hasn't seen what modern day debuggers are capable of https://youtube.com/watch?v=r9eQth4Q5jg
LMAO @ (You)
Thats a very cool debugger anon. I didn't know cniles actually managed to evolve to this stage of existance (I am a Lisp Chad).
>RemedyBG
Looks cool tbdesu. There's only a Windows version on their website though. Do you have a recommended Linux alternative?
there are some gdb frontends but none as good as Remedy. i just use https://github.com/cyrus-and/gdb-dashboard
Yes, kiddie. I'm using gdb and openocd to debug my softcore CPU, good luck figuring out why UART doesn't work or debugging a problem in your bootrom with printfs.It's good enough 99% of the time but not always.
>zig developers banned me for chimping out like a retard
qrd?
>search Wikipedia for it
>"hare" obviously isn't enough so search "hare language"
>get this
https://en.wikipedia.org/wiki/Slavey_language
programmers are fucking losers
First for 2 year language.
Mark the date! Don't forget the leap day!
are the rumors true?
drew's kiwi thread has entered the proving grounds
Post screencaps
Not a single project uses hare. Drew is insane.
This is a cool idea. I wonder what will happen to it in this timeline (after arxiv 2203.09524 and arxiv 1910.11775)
In any case, the emerging culture of long-term preservation (of which this project is but one bud) would certainly helpful to deal with at-scale CP violations.
I mean, cobol has been around for too much time and it is still going just because nobody had expected these systems to still be useful so much time later. And, now, changing systems made in cobol is.... risky.
That's science for you. Trial, error and learning.
Why do we forgo this last part so much?
By the way, to avoid confusion, this "timeline" thing is just a figure of speech. I have no idea about implementing time travel. Whether those rare kaon decays (which do have to do with time research, but in early stages) lead to anything or not, I don't know and don't care for now. A stable foundation is necessary in computer science and in society as a whole (since so much of our interaction has been "trapped" in networks).
The motivation behind Hare does look cool!
Awww sweet! A Hare thread!
They don't get it. Shitloads of words and not a single mention of ABI. If your program does not speak the C/SysV ABI, it will be rewritten in C. Just get over it and deal with that fact.
because ABI is not totally finished yet, but the goal is 100% compatibility with C files
>one hundred bunnies campaign
https://en.wikipedia.org/wiki/Hundred_Flowers_Campaign
Based Chairman Drao ZeVault!
Drew Segfault
If he wanted his language to last a 100 years he would be making products with it, not boasting
As much as I don't care about that The Witness guy, Jai is probably the only independent language which would have had a chance of becoming part of the industry if only he had actually finished that retarded sudoku game that he was working on and then released a successful product.
Think about how many kids learned source/unreal scripting just to have a bit of fun. Hell even warcraft 3's meme script language is more popular than any of these one-dev indie langs
Not to mention semi-popular stuff like Godot's GDScript
read
A language never used for any project would, in fact, remain stable for all eternity, so I guess he's right.
Drew is writing a microkernel and an entire OS (complete of graphics and graphical interface) with hare
>can't even figure out how to quote two posts properly
>resorts to self-quoting like the redditor he is
Kill yourself, Drew.
Why are you gay?
I see nothing wrong with the quote
Are you clinically retarded?
> reddit!!!!!reeeeeeeeeeeddiiiit!!
You must be also a homosexual
IMO bad idea because it's better if software that proves language's worth is actually useful by itself. Nobody's gonna use that microkernel
Are you kidding?
The whole project it's extremely interesting. It's a *practical* capabilities based ukernel and transparent distributed (fat clients) OS
What is a software that is "useful" in your opinion?
>What is a software that is "useful" in your opinion?
tiktok client frfr
I mean, on paper it shits on Linux's chest and any general purpose mainstream os
That and also, even if you can say whatever you want to ddv, he is the only public dev I know who have the balls of having a well defined scope and not changing direction
If he manage to grok something even almost usable and not die or whatever (which is a big IF considering ddv), Hare+Ares/Helios will be as big as C+Unix
Looks like israelite Segfault is back shilling his shitlang
In addition to what has been said already, let me add
>no threads
>no use after free protection (the most important vulnerability to protect against)
This nagger thinks his language is secure because he has nullable pointers L M A O
>What is a software that is "useful" in your opinion?
Whatever fuels the Spic-Nig cycle.
Kill yourself
>Looks like israelite Segfault is back shilling his shitlang
There are lot of people who use and like the language, the fact that makes you so salty is actually a plus lol
>There are lot of people who use and like the language, the fact that makes you so salty is actually a plus lol
No one uses his language. Only him and the shills he unironically pays to post in these threads
>l-linear t-types
It's not in the language. Keep coping.
>if you attempt to program safely you must be using rust
Who is the rust tranny again?
Hare has ZERO ways to deal with use after free.
In C you can use __attribute__((cleanup)) and set double pointers to NULL in destructor functions.
C literally has more ways of dealing with use after free than hare.
>shills he unironically pays to post in these threads
take your meds already
>In C
>destructor functions
holy shit you can't be serious
>holy shit you can't be serious
Show me where I made an incorrect statement regarding the capabilities of the C programming language.
Welcome back ESL nocoder friend, I recognize you from previous threads.
I'm not any on the person you are talking about and I also think you are a homosexuals
>Welcome back ESL nocoder friend, I recognize you from previous threads.
Take your meds lol
>argument: not found
I accept your concessions.
ok thats fine if you want to be wrong
Show me how an idiom in hare to fix use after free right now, or you are an esl homosexual shill.
Not her, but it's very simple, you just don't use pointers after freeing them
>her
>retard answer
nocoder scum, typical hare user
>it's in LE roadmap
In other words it doesn't do literally anything that would make it a usable language?
I'll tell you what Drew, you unironically implement anything on your faggy roadmap, and I'll take your language seriously.
Until then, there is no point in shilling this garbage until its done, yes?
Also
>still no threads
Still no answer for why that is. Other than it's hard and israelite Segfault doesn't have a big enough brain to do it.
>Still no answer
It's simple, threads are the wrong primitive, they are far too error prone and bad for security
Use processes instead
>my brain is too small for threads
No wonder all your software is shit
I'm not even him, pal
You're right though
He has a good point, though. You don't.
>no use after free protection (the most important vulnerability to protect against)
Linear types are being studied. They will probably make into the language
Faaaaaaaaaaggot!
Forgot the link for the homosexual
https://harelang.org/roadmap/
>>no use after free protection (the most important vulnerability to protect against)
rusttranny
Stop shilling your shitty language Drew, nobody is going to use it
DREW is so fucking based, I can't even
>based
So he makes reddit seethe by posting on LULZ and he makes 4cheddit seethe by saying le gay good?
Lmao, EVEN MORE BAZED
>PTP
>Japanese
Wtf? This is Drew?
Yes
I thought he was just retarded, now I'm convinced he's actually mentally ill.
>danbooru
is that nyxt browser?
didn't know that drew uses i3
Surely he is using Sway (his i3 fork for Wayland)
>depressed troon still in the closet
>wants to build something that last
sorry but I do not trust him. he will commit sudoku at some point as he is mentally ill.
no one uses his shit and once he is dead it will disappear into oblivion with him.
Anything political is bound to be unstable, and drew likes to go on some retarded meaningless sprees about trannies from what i've seen.
Why can't people just code and stop trying to become somebody on the internet?
What are those sprees about
https://k*w*farms.net/threads/drew-devault-ddevault-sircmpwn.175606/
>You must be logged-in to do that.
screencap
https://files.catbox.moe/mhe11y.png
It's pretty funny how seething he is about his post as if being a developer forbids someone from having political opinions lmao. Imho, kiwitrannies going after Drew is excellent for harebros because there is no such thing as negative attention
it's the interjecting of random political opinions in everything that is the seethe
He's just Terry s/cia naggers/cis white men, with the difference Terry's comments didn't mean any harm, they were a product of schizophrenia.
>one hundred bunnies
you are confusing Hare with uxn/tal
fuck off drew
and remember, if there is no argument to sway your opinion, it's not an opinion, it's a belief
cringe russophobic pol-ACK
>a Hare compiler written on day one will be able to compile comtemporary Hare programs in a century's time
Unless you introduce literally zero new features in a century's time, how does that work?
>Unless you introduce literally zero new features in a century's time
That's exactly the plan, look at his other projects
also, I'm struggling to see the use cases for this. the only thing i can think of is that new compilers may become shitty so you want to reuse old ones.
but I'd think backwards compatibility is much more important
Once it gets it's desired 100% compatibility with C abi, it can replace C. And I do mean *really* replace
>And I do mean *really* replace
never ever dr*w
>dr*w
what is this, reddit?
Yes, if hare achieves it's goal, then it is a drop in replacement for C, because one could just instead of rewriting the whole project, write new parts in Hare and keep old parts in C
From the point of long-lasting legacy software, that's quite counterproductive. It would be easier to find a C specialist in the next century than to find both C and Hare specialists in the year 2123.
Hare IS basically C with minor syntactic sugar.
So then what's the point in using it over C?
Because, while the guy who answered you was right, it also adds a conservative number of features that makes it better (or at least easier) to work with
> Modules and namespaces
> Anonymous tagged unions + exhaustve pattern matching for error handling
> non nullable pointers
> rich stdlib
> tools distributed with the language
> (possible) linear types for avoiding use after free
>(possible) linear types for avoiding use after free
Not in the language. So how is it a feature?
>non nullable pointers
One of the most useless safety features in a language.
>exhaustve pattern matching for error handling
Match is not exhaustive. Try it for yourself.
>Not in the language. So how is it a feature?
Because the language is not finalized yet, and since hare will freeze features forever that's actually an argument
They also are in the roadmap
>One of the most useless safety features in a language.
They are nice to have, although they don't prevent anything they make a little bit harder to make some common mistakes
Your birth was actually useless
>exhaustve pattern matching for error handling
>Match is not exhaustive. Try it for yourself
I can't check now, but I'll do
Also it's a point in the roadmap
https://harelang.org/roadmap/
>non nullable pointers
A pointer is an integer, an integer can be zero, zero is null, didn't you learn this from Ginger Bill?
>And I do mean *really* replace
there are plenty of languages that are far more useful than hare while having C abi compatibility.
you're insanely delusional if you think this shitlang can replace C.
> struggling to see the use cases for this
Look at the american banking system
Look at the airplane software
Look at the buran flight control system
>how does that work?
It works just fine. Not having a constant flow of new features is a good thing. It also helps you avoid the situation which Zig is currently in where a lot of code even a couple months old is outdated and can't compile.
well again backwards compatibility would solve that. using an old compiler for new code doesn't really solve anything
backwards compatibility and feature creep are the two things that can make a software project go to shit. Programming languages are mostly solved, there is no need to constantly change things. They believe that Hare was complete and needed no new features so they decided that they would never add any new features. It is not as if there is going to arrive some revolutionary new idea.
>It is not as if there is going to arrive some revolutionary new idea.
so nothing has changed between lisp, cobol, etc and now? even BNF has changed since then.
>They believe that Hare was complete and needed no new features
>Notice: Hare is a work in progress! It may be mature enough to support your use-case, but there may also be some breaking changes between releases. Users are strongly encouraged to subscribe to hare-announce for details of breaking changes in each release.
They *will* believe Hare will be complete. Some day. Maybe. Hopefully in the next 100 years.
So, basically a fortran replacement
i don't think this language even has 100 users. what a shit take
It has 100 contributors alone and I use it, I am not a contributor. So, that makes it at least 101 users!
This guy is so cringe. Speaking about and defending "diversity" and LGBT++. Gross.
Hop
I think in 20 years time all current programming languages will be dead and replaced by a seemingly illusive new language which far exceeds current capability and simplicity.
It's just going to slowly turn into Lisp like all the other languages anyway.
Drew probably cares about trannies so much because he himself wants to be one, no?
Does professional grade software completely written in Hare exist? It would go a long way to promote the language
C will never be replaced, no matter how good the language is, just like TCP will never be replaced.
if internet becomes reliable enough we could eventually switch to UDP-like packet transmissions only
http3 is already designed for this https://kinsta.com/blog/http3/
We should all switch to the superior SCTP. Kill TCP with fire.
Thanks, but I'm sticking with a real language: Zig.
Bunnies?
As far as I can tell, there is literally no reason for this language to exist. It's basically a variant of C, but with a different syntax and fewer features, so it has no niche. Zig beats it, because Zig appeals to C programmers just as much but also introduces good metaprogramming, compile-time alignment help, etc.
> because Zig appeals to C programmers just as much
Ok
> but also introduces good metaprogramming, compile-time alignment help, etc.
So non C programmers
Zig doesn't attract C programmers
I am a C programmer and I am sexually attracted to Zig.
You have very weird ideas about C programmers.
>want to compile C for arm cortex m7 bare metal
>add -ffreestanding -fno-pic -s -Os -nostdlib to gcc
>just works
>Zig
>have to write a fucking 100LoC build script
>>Zig
>>have to write a fucking 100LoC build script
zig build-exe -target thumb-freestanding-eabihf -mcpu cortex_m7 -fno-PIC -O ReleaseSmall
get fucked
Doesn't work
you didn't try hard enough, you have arguments for linker scripts, entry points and whatever else you might need
either way the zig build system literally just calls zig build-exe in the background, anything you can do in a build script you can do with plain old CLI commands. nothing mandates the use of the build system
You have a weird idea about C programmers of you.think zig attracts them more than hare
I am one and Zig attracts me more. Hare is pure downside, it's like a cut down version of C.
Cut down? C's biggest issue is error handling. Hare takes care of that. C's second biggest issue is file structure (need separate header and source file, resulting in tree bloat). Hare fixes that. C's third biggest issue is the lack of defer. Hare fixes that.
defer is a shitty cope.
RAII has always been the superior way of dealing with everything.
But C does have defer anyways, its called __attribute__((cleanup)) and it is superior to hare defer because you can also use it to do RAII.
Also hare error handling is complete shit.
>using a seven line autistic match syntax just to check if a pointer is NULL
vs
>if (ptr)
And the match statement isn';t even exhaustive, and yet the shitlang forces you to use it for that purpose.
All of you hobbyist retards need to be killed. In a different time, retards like you were put in their place, but now every fucktard can voice his shitty uninformed opinion.
a seven line autistic match syntax just to check if a pointer is NULL
>vs
>>if (ptr)
fucking retard. hare has ! and ? for error handling, match is only needed once. and if (ptr) is not error handling, errno is error handling, and it's garbage. of course the worst thing is that there is no error handling hence why every library rolls it's own
>GError**
>SDL_Error
>errno
>AVERROR
fucking cancer
Hahahaha you homosexuals are so braindead. Even in your shittlang you deal with errno every time you deal with the OS, its just abstracted away, like you might do in C.
>! and ?
! is not error handling. It's literally a free DOS vulnerability. ? is syntactic sugar over something you can also easily do in C.
if (ptr) is error handling when you program in a RAII style. By returing a valid pointer if you created a valid object, and NULL if you didn't, you eliminate 99% of all need for something like errno.
Sorry your brain isn't large enough to read between the lines, I should have clarified.
>! is not error handling. It's literally a free DOS vulnerability.
No it is not. It means it prints the error and exits, extremely useful for cmd utils
>? is syntactic sugar over something you can also easily do in C.
Then there would be ? in C - there isn't.
>if (ptr) is error handling when you program in a RAII style. By returing a valid pointer if you created a valid object, and NULL if you didn't, you eliminate 99% of all need for something like errno.
RETARD. You MUST communicate the error to user, not be like microsoft "oops, something went wrong"
>Then there would be ? in C - there isn't.
Because obfuscating control flow is bad. If you want to return an error so badly, do it inline.
There really isn't much difference in what hare does that you can do in C, Go or Rust besides some useless syntactice sugar.
You can force users to handle errors in C with standard compiler attributes.
If you want more you need exceptions.
>It means it prints the error and exits, extremely useful for cmd utils
You clearly have never written anything robust. Try that paradigm in a GUI or network daemon. It won't work. It's shit. It's no different than Go or Rust panic. It's a retarded paradigm that only benefits brainlets who can only rewrite ls in their new favorite shitlang.
>RETARD. You MUST communicate the error to user, not be like microsoft "oops, something went wrong"
It's called printf you mongoloid. Or write a thin logging framework over printf if you wanted to be fancy.
>if (thing) { ... } else { log_error... }
That is infinately less code than whatever shitlang you are trying to shill.
I haven't seen any hare code that isn't a bloated mess of unecessary (and not even exhaustive) match statements. I regularly have to scroll a page to even view most functions because they are so long. It's a fucking garbage language, made by a tranny loving retard.
I swear it's like I'm interacting with a jeet. You have NO frontal lobe capacity. Zero. Please kill yourself so that you have no chance of spreading your genes. Retroactive abortion wouldn't be enough for you.
>It's called printf you mongoloid. Or write a thin logging framework over printf if you wanted to be fancy.
No serious graphical application uses it for error handling. Stop being a retard
>deflection
lmao
>No serious graphical application uses it for error handling. Stop being a retard
Once again you don't have the frontal lobe capacity to see the implications of what I'm saying.
Replace printf with signaling an event to throw up an error dialog or whatever the fuck. The concept is the same.
How many GUI programs have you written in hare homosexual?
>Replace printf with signaling an event to throw up an error dialog or whatever the fuck. The concept is the same.
No, that's how pajeets do it. The way real men do it is by writing a function so that you only modify that if you need to.
Impossible in C of course because there is no single error type. Of course the lack of defer also means that you have to put 50 fcloses every time you check for failure.
>No, that's how pajeets do it. The way real men do it is by writing a function so that you only modify that if you need to.
What? You've said something that doesn't make any sense. Post code retard.
>Of course the lack of defer also means that you have to put 50 fcloses every time you check for failure.
C has __attribute__((cleanup)) that is even better than defer.
Cleanup is gcc specific
Works in clang, so not GCC specific.
What is clang
>Because obfuscating control flow is bad.
It doesn't because it's not optional. You can't ignore errors by mistake.
Either you propagate it or deal with it. It does not obfuscate the control flow
> If you want to return an error so badly, do it inline.
Or, you can use hare
>There really isn't much difference in what hare does that you can do in C, Go or Rust besides some useless syntactice sugar.
But how it does it, makes it a better C option
>You can force users to handle errors in C with standard compiler attributes.
Still optional. In hare you are forced to acknowledge the error and act by wither deferring it up to the caller or deal with it
>If you want more you need exceptions.
Exception alter the flow of execution which is something even a retard like you agree on how bad it is
> Try that paradigm in a GUI or network daemon. It won't work. It's shit. It's no different than Go or Rust panic.
Then don't use it. Use ! If it's an unrecoverable error
>That is infinately less code than whatever shitlang you are trying to shill.
It's not. You end up rewriting the error control on every caller of your execution stack
>Y-you c-can't ignore errors by mistake
Invalidated by the fact that the match statement is not exhaustive
Didn't read the rest.
But it's mandatory to enclose the call in match statement
If you are ignoring the signature which list all possible errors in one line like fn foo() (type | ErrA | ErrB | ErrC) = { you are basically doing it on purpose
>anti hare shills don't know shit
how ... *shocking*
In the same way that ignoring a return code marked with __attribute__((warn_unused_result)) in C would have to be done on purpose? If you compile with -Werror then you can't even ignore it.
As a bonus C will issue warnings when switches are not exhaustive when you have the return code defined as an enum (Which you should).
So why should I use hare? C has literally everything I need and more.
>proving my point
Yes? So why should I use hare again?
It might be hard for a jeet to understand, but when white men say something does something, it usually means that it actually does something.
Until the match statement is actually exhaustive, then it provides no actual benefit. In fact this currently worse than C, as switches that aren't exhaustive on enums are given a warning, which can be turned into a compiler error.
The exhaustive match and switch are in the specifications, meaning that hare **will** implement it on other to have a final compiler
As it is now, you have to fighting the compiler in order to skip some error
> call foo()
> compilers complaints it must be encoles in a match statement
> See the signature
> Deliberatively ignore some one error listed in the signature
At that point you cannot be trusted with writing any code at all
Still keeping in mind that the specification enforce the compiler to implement the feature in order to consider it a compliant hare compiler
>hare will implement it
There is nothing that ensures that will happen.
A spec is not the 10 commandments.
A human has to implement it.
Until it's done, you do not have an argument. It's that simple. Shill me your homosexual language when it actually works. Until then its a work in progress that is worse than C. Hell after then, because of threading, it will always be worse than C.
>At that point you cannot be trusted with writing any code at all
In C I can force people to deal with my errors by making my code compile with -Werror.
>There is nothing that ensures that will happen.
The specification. Hare doesn't have multiple specification or a reference implementation, so you have a formal definition of the featureset of the language
>A spec is not the 10 commandments.
It is. Justly like you can ignore them and not being a Christian
.
>Until it's done, you do not have an argument.
I already argumented enough.
Even at current state, hare has a several mechanism of guiding you in handling errors
I get you are a retards, but even you can understand that compiler forcing to to acknowledge the possibility of a function returning an error and forcing you to enclose it in match clausole is extremely different than allowing to call a function and return an error based on a codification of the result domain union Null and ignoring the global errno just to have the system throwing a runtime error when you effectively access the memory in likely a distant part of the code
If the specification states that the match MUST be exhaustive, you have to assume the compiler will implement said feature
Untill he decided to remove the req, you are just arguing because you are emotionally attacked by the language for some reason
>In C I can force people to deal with my errors by making my code compile with -Werror.
No, you can't
>esl
Kek this is what Drew has to resort to to shill his language? Hiring jeets to argue with 4chinners. The absolute state.
Being an amerilard has always been a predictor of being a less capable programmer, I don't know why are you insisting on making it a point
>If the specification states that the match MUST be exhaustive, you have to assume the compiler will implement said feature
But does it implement said feature RIGHT NOW when I use the fucking language? No it doesn't.
Therefore in ITS CURRENT STATE the language is worse than C.
>No, you can't
>compile with -Werror
>define error value as enum
>mark functions that return it with __attribute__((warn_unused_result))
>when its used in switch statements and not all cases are matched, compilation fails
>when its ignored, compilation fails
>in GCC can't even ignore it by casting the expression to void
Literally the same level of safety as hare.
Harebrains BTFO
How does int open() returning -1 will benefit from Werror?
>wrap open with a function that does as i've described previously
>suddenly it does the needful
>currently
it doesn't
>will be will be will be
lmao
keep coping
show us all the projects you've made homosexual
I'd love to see what you retards actually do with this language, if you even use it and aren't just here because israelite Segfault paid you to be.
>>wrap open with a function that does as i've described previously
>translation: write a bunch of code for no reason
>5 lines of code is too much
It's time to stop Drew.
Yes, it is too much if it is literally for no reason. A good programming language should be simple, elegant and descriptive enough so that no workarounds are necessary
>A good programming language should be simple, elegant and descriptive enough so that no workarounds are necessary
>elegant
>can't even do if (ptr)
>have to write 7 lines to use ptr
harebrains truly are remarkable
>>can't even do if (ptr)
that is a code smell. pointers should not be truthly values
>that is a code smell. pointers should not be truthly values
>t. unemployed esl
What's wrong with if (ptr)?
It scares the street shitters.
It's not forced upon the compiler and more importantly, it's decoupled for the error class which generate the error
It's a retarded way to do error handling, ok if you don't have anything else better but optional types with a error typisystem is objectively better
>if (ptr)
This is bad coding.
Good morning Sir.
I redeemed. It is good coding.
Redeem your life anon, you sound desperate
>But does it implement said feature RIGHT NOW when I use the fucking language? No it doesn't.
>Therefore in ITS CURRENT STATE the language is worse than C.
It still is better than C as ii **currently** handle errors by default
>compile with -Werror
>define error value as enum
>mark functions that return it with __attribute__((warn_unused_result))
>when its used in switch statements and not all cases are matched, compilation fails
>when its ignored, compilation fails
>in GCC can't even ignore it by casting the expression to void
>Literally the same level of safety as hare.
Or you can use hare wich enforce it by default and which is saner by default (and will be objectively better as it will implement all the featureset in its specification)
https://harelang.org/blog/2022-06-21-safety-features
> Exhaustive switch & match
> Another common cause of errors in C > is the failure to handle all cases in a switch statement.
> At least, that’s what the specification demands. The compiler does not yet enforce this uniformly.
Forgot part of the quote
> Exhaustive switch & match
> Another common cause of errors in C is the failure to handle all cases in a switch statement.
> in Hare, switch and match statements must be exhaustive, meaning that they handle every possible value or type that can be switched or matched.
> At least, that’s what the specification demands. The compiler does not yet enforce this uniformly.
Be honest, do you even program in C? These are definitely not the actual biggest issues, just some weird list you made up to shill Hare. And you didn't mention the fact that it has even less metaprogramming than C or that it doesn't support Windows.
I am one and I find hare more suitable for a better C than zig, which is yet-another-language-which-started-as-a-better-C-and-completely-lost-the-focus
>completely-lost-the-focus
How so? My impression is that they're keeping the focus very well. I only dislike the camelCase, but that's pretty minor.
just abandon ABI entirely and code everything in Scheme
Hare just works
That language seems cute.
Is it that hard to just admit the language is worse than C?
If hare fixed the many problems that it has, you might have some form of argument that some hypothetical person might want to use it, but until then it's literally not worthwhile.
Even then, there are many glaring problems with hare that israelite Segfault has said he will never fix (namely threads) so in actuality it will ALWAYS be worse than C. For 100 years LMAO.
>slow
>lacking documentation
>lacking tools
>lacking standard library
>lacking language features
Why use this toy lang? You can stop spamming the threads. It's not even new language anymore. No excuse to be so work in progress. Except if lazy and hope others will fix your mess.
First time I ran hare I got a segfault.
Really living up to your reputation, Drew Segfault.
logo too gay
should have used unvaxxed hare
why is Drew murdering hundreds of rabbits to build a computer? What's wrong with him?
go suck some tranny dick drew
Drew's butler here, he said I should write that he is not interested in you.
Bruhs... I'm so upset with programming languages, self documented code was literally possible without writing much, but scientific consensus made it impossible by limiting capabilities with dumb rules.