https://what.thedailywtf.com/topic/15687/code-review-maledic...
https://what.thedailywtf.com/topic/15687/code-review-maledic...
Actually it's the author of the rant that comes of as totally uninformed and with unwarranted snark to boot.
And they even scold the author of the software for responding in an emotional tone, while the whole "wtf" rant was full of personal attacks (and misunderstanding C programming, not bothering with facts etc).
And thusly, a website originally created for people to point to actual coding WTFs by incompetent programmers is running posts by incompetent users, voted by other incompetent users.
@Carsten_Haitzler said:
as for the "you bitch" comment. that does not appear anywhere inside efl at asll. i can only assume you are full of bullshit here as with a lot of the prior "facts" you have disclosed, as a grep through our codebase for efl and elementary shows no such string:
core/efl.git - EFL core libraries
evas - change error out from bitch to complain - cosmetic changeHEADmaster
committer Carsten Haitzler (Rasterman) raster@rasterman.com 2015-03-11 12:59:01 (GMT)
F#*k off.He only found that it was "bitch" (single word) later from a later corrected comment and fixed it (out in the open, in the the public code repository in any way).
In any case, again, not technical, not a WTF, and not pertaining to the actual code/implementation.
https://git.enlightenment.org/legacy/evas.git/commit/src/lib...
https://git.enlightenment.org/legacy/evas.git/commit/src/lib...
If he does not, that invites the question of how many similar error messages are there in the code. Note that this is something that actually gets printed to stdout - in other words, if there's a bug in your app (or EFL, for that matter), your end user might see that message. I would dare say that's a pretty big WTF.
Even more so after one reads the replies.
Perhaps we didn't read the same reply?
Because the response you've posted:
1) only addresses one of the tens of points in the reply -- the others still being valid.
2) while true, it is still irrelevant from a technical standpoint (not to mention softened in the subsequent version anyway).
3) At worst, the Evas author failed to grep the right version for it. Whereas the ranter, at best, fails to understand C coding, failed to consult documentation that was right there, complaints for valid behavior, cites several wrong facts about the behavior of the code (like the supposed "512" object limit), and closes with the BS "it will take man-years" to build a sample simplistic media player with the lib (using a ready made codecs/media player widget component).
Evas/Eve etc have some questionable design decisions, and not the best documentation. But the original post is full of crap in almost every aspect, and with unwarranted language to boot.
> key names - no - we didn't document it, but it'll be the same set as you get in x11. we emulate it elsewhere. yes- maybe we should explicitly document that but to date no one has actually complained
> if its a const char * of course you don't free - if it's a char * return (example) it'll be documented as to how to free it. if its' objects - objects stay alive until you delete them ... or the canvas they live in is deleted, or an object that has taken ownership is deleted (and objects that take ownership are in charge of deletion). it's the same throughout efl - its similar to gtk in that sense. it hasn't been explicitly documented i guess because it's a convention that is common enough.
On dynamic typing, and checking object types - and why it's a warning rather than hard error when a type doesn't match what's expected:
> default is to march on and recover with a complaint - the complaint is your signal to enable this next time you run and hunt down the detail. ... mostly the errors are harmless. the majority of code marches on fine - thus prefer staying alive over suddenly falling over.
1. Write a long and angry rant about how terrible the software is on a public forum.
2. File issues, participate in the community, ask questions on the mailing list, submit pull requests to improve the docs, try and understand the design decisions behind the software you're using - it's possible that the author knows more about the problem than you, and there are perfectly good reasons for why things are as they are.
One of these things is more productive than the other.
I do have to note, though, that the options are actually:
1. Use something else that's better.
2. <same as what you wrote above>
Based on everything I've read about EFL, including responses from its devs, #1 is by far the most productive choice you can make in these circumstances.
The rant is not really an option as such. It's just a way for someone to vent their frustration, which people occasionally need when dealing with problems like that in order to make themselves feel sane again. You can rant first, but you still have a choice of #1 or #2.
I also have to note that, for the author of the rant, neither was an option, because they weren't working on a project where they had a choice of framework - they were working on Tizen, and had to use EFL, that choice being made for them. I also doubt that their manager would allow them to use some of their work hours to go fix bugs in EFL, even assuming its maintainers would agree that these things are bugs (which they clearly didn't) - they had their own backlog and schedule. So they did the rant because they felt like they needed it, and they didn't really have the option of either #1 or #2 to fix anything.
Why plug every hole in a colander when you can use a bowl from another supplier?
And even a customer is not some holy being that gets to behave in any way they like and it has to be accepted "regardless of the provocation". What he wrote has FUD and professionally damaging to mr. Haitzler (as a programmer), while also wrong in most aspects.
Nobody should just bend over for someone (even a "customer") "regardless of the provocation". Besides FUD and insults, should the "regardless" also allow for sexual or racist comments from a customer?
And speaking of duties, does the company (Samsung) see well to an employee of them bad-mouthing their OS and choices on some random forum?
Unless you have evidence to the contrary...?
> Nobody should just bend over for someone...
There is a world of difference between being assertive (which is fine) and being dismissive and belittling (which is not). Mr. Haitzler went way over the line. He thought that tit for tat was appropriate. It is not.
By the way, given the rather suggestive way you phrased this, you might want to check your own use of sexualized comments before criticizing someone else's.
Now I am aware that several leaders of several major open-source communities do not consider such restraint to be necessary or even desirable. They're of course welcome to manage their communities as they see fit. I think it's a mistake though, and I believe it will lead inevitably to serious issues in those communities, if indeed it hasn't already.
> efl checks object validity by looking at the first 4 bytes of the memory of the object. in here is a "magic number" that indicates both type and that the object isn't freed or garbage memory.