Enlightened


  • Discourse touched me in a no-no place

    @boomzilla said in Enlightened:

    This seems like one of those "pick a better algorithm" times where if exception handling is a performance problem then you have bigger problems.

    Not actually true. It's one of these things which is very much true at the level of writing ordinary code, but isn't quite so clear-cut once you get into writing an optimising compiler. Instead, it's probably better there to transform the code into something with a system of tracked failures as that would let you drop generating the exception at all in some circumstances (especially after few rounds of aggressive inlining); the exception can be fully instantiated if passes across a boundary of the system being analysed, which might or might not be a function…


  • Impossible Mission - B

    @dkf said in Enlightened:

    In general, the result of a subprogram can be any type, but there's a type with only one value (sometimes called unit or void) that is produced when the subprogram only has side effects.

    Ugh. Can we please drop the term "side effects" from our vocabulary already? It's a FUD term pushed by dogmatic-FP types to try to make effects look scary by implicitly comparing them to medical side effects. The thing is, medical "side effects" are literally side effects: other things that happen "on the side" in addition to the effect you wanted. In programming, so-called "side effects" are the effect you wanted. We already have a term for things that happen "on the side": bugs.



  • @masonwheeler said in Enlightened:

    Ugh. Can we please drop the term "side effects" from our vocabulary already? It's a FUD term pushed by dogmatic-FP types to try to make effects look scary by implicitly comparing them to medical side effects.

    undefined Seems like a useful and obvious term to me.

    @masonwheeler said in Enlightened:

    The thing is, medical "side effects" are literally side effects: other things that happen "on the side" in addition to the effect you wanted. In programming, so-called "side effects" are the effect you wanted. We already have a term for things that happen "on the side": bugs.

    Side effects in code are often things you didn't realize were going on and do lead to bugs.

    This sounds like a personal problem to me.



  • @masonwheeler said in Enlightened:

    Ugh. Can we please drop the term "side effects" from our vocabulary already? It's a FUD term pushed by dogmatic-FP types to try to make effects look scary by implicitly comparing them to medical side effects.

    I doubt anyone would consider the people in the C++ standardization committee dogmatic-FP types, and they define it in the standard as

    Reading an object designated by a volatile glvalue (3.10), modifying an object, calling a library I/O function, or calling a function that does any of those operations are all side effects, which are changes in the state of the execution environment.

    While changes in the state of the execution environment are the goal of any program, as otherwise there's no evidence that the program ever ran, there is still value in defining the term and differentiating it from a regular operation. In particular, the optimizer is free to perform any change to the code as long as the side effects remain the same. The connotation of a side effect being negative is only in your head, and side effect is more concise than "change in the state of the execution environment".


  • Impossible Mission - B

    @kian said in Enlightened:

    I doubt anyone would consider the people in the C++ standardization committee dogmatic-FP types

    No, they're just morons, as evidenced by them being on the standardization committee for a language as horrible as C++. 🚎

    While changes in the state of the execution environment are the goal of any program, as otherwise there's no evidence that the program ever ran, there is still value in defining the term and differentiating it from a regular operation.

    Which is what I did. "A regular operation" is an effect. As you said, otherwise there's no evidence the program ever ran.

    In particular, the optimizer is free to perform any change to the code as long as the sideobservable effects remain the same.

    FTFY

    The connotation of a side effect being negative is only in your head

    No, it's really not. Ask anyone who's not really deep into programming what "side effect" means, and you'll see it's in their heads as well.



  • @kian said in Enlightened:

    In particular, the optimizer is free to perform any change to the code as long as the side effects remain the same.

    Which is why it's sometimes useful to be able to tell the compiler that a function doesn't have observable side effects (other than returning a value).

    Example. b is called exactly once because the compiler knows (via the non-standard __attribute__((const))) that the function only returns a value and that this value only depends on the arguments. a on the other hand needs to be evaluated each iteration. (Unfortunately only clang seems to do that particular optimization.)


  • Discourse touched me in a no-no place

    @masonwheeler said in Enlightened:

    Can we please drop the term "side effects" from our vocabulary already?

    No. It's a well-defined technical term in language semantics and isn't doing anyone any harm. In particular, it doesn't carry any negative connotations beyond limiting the number of optimisations that may be performed (as operations that have side effects can't be safely removed or reordered).


  • Discourse touched me in a no-no place

    @cvi said in Enlightened:

    Which is why it's sometimes useful to be able to tell the compiler that a function doesn't have observable side effects (other than returning a value).

    That's only really useful where the compiler can't see the true definition of the function. When the compiler can see the whole truth, it can work out for itself (most of the time) whether there are side effects.


  • kills Dumbledore

    @dkf said in Enlightened:

    When the compiler can see the whole truth, it can work out for itself (most of the time) whether there are side effects.

    Presumably it errs on the side of assuming there might be side effects if it can't prove there are none?



  • @jaloopa said in Enlightened:

    @dkf said in Enlightened:

    When the compiler can see the whole truth, it can work out for itself (most of the time) whether there are side effects.

    Presumably it errs on the side of assuming there might be side effects if it can't prove there are none?

    Functioning compilers will do that, yes.


  • Discourse touched me in a no-no place

    @boomzilla said in Enlightened:

    Functioning compilers will do that, yes.

    Compilers that don't tend to either not get used at all or reported rather widely as being buggy piles of 💩



  • @dkf said in Enlightened:

    That's only really useful where the compiler can't see the true definition of the function. When the compiler can see the whole truth, it can work out for itself (most of the time) whether there are side effects.

    Correct. Unfortunately, mainly to minimize build-time, it can be very useful to not have the relevant function definitions visible to the compiler. Same thing with [[noreturn]]. If the compiler can see the function, you probably don't need to specify it. If it doesn't, [[noreturn]] can improve the code quite a bit.



  • He is full of crap.

    Who cares whether it takes you one or three lines to add a button ?

    And since there are plenty crappy Qt applications around, I'd say fundamental part is far from menu and widget cintrol code.

    Also, he conveniently omitted all that dependency hell of Qt apps.

    I get routinely into situation where two packages conflict about needed version of Qt stuff.

    With enlightenment, it's easy. About all I need is EFL.



  • Oh look, I found a shill.
    Do I get a cookie or something?


  • Discourse touched me in a no-no place

    @branko-badrljica said in Enlightened:

    About all I need is EFL.

    And a lobotomy.



  • @branko-badrljica

    /me looks at the date of the previous most recent post in the thread

    Uhm... a little late to the game, aren't we? Also, how did you come across this thread? Seriously, were you just doing a search on references to Enlightenment Foundation Library, and decided to engage in some thread necromancy in one of the biggest hornets' nests on the Intarwebz?

    'Cos it is clear you don't have the sense not to stick your johnson in a meat grinder, if you are posting here of all places.

    It might helped if you had, oh, I don't know... said who you were responding to, perhaps. Not that it makes any more sense to resurrect a thread which was, at best, irrelevant given that the last gasp of it was months ago, and had been long since driven off the rails and into topics unrelated to EFL years before that.

    Seriously, the thread is three years old, and in most of that time, Enlightenment wasn't even being discussed. I can only assume that you read the first post, got pissed off, and fired away without looking at anything else, right?

    Eh, never mind, it isn't as if this drive-by poster will ever come back to this forum. Shill, indeed.



  • @scholrlea At least he's talking about THE FUCKING TOPIC instead of some boring-ass debate about side-effects that went on for like 50000 posts.


  • Notification Spam Recipient

    @blakeyrat Side effects are not 'boring'. They are essential to programming.


  • Winner of the 2016 Presidential Election

    @branko-badrljica said in Enlightened:

    He is full of crap.

    Indeed "he" is. Oh wait, do you mean @NeighborhoodButcher?

    @branko-badrljica said in Enlightened:

    Who cares whether it takes you one or three lines to add a button ?

    People who actually write programs

    @branko-badrljica said in Enlightened:

    And since there are plenty crappy Qt applications around, I'd say fundamental part is far from menu and widget cintrol code.

    Sure, you can be an idiot in any framework

    @branko-badrljica said in Enlightened:

    Also, he conveniently omitted all that dependency hell of Qt apps.

    Also, you conveniently omitted all that entire rant and instead focused on how many lines you need to add a button.

    @branko-badrljica said in Enlightened:

    I get routinely into situation where two packages conflict about needed version of Qt stuff.

    Sucks for you. I'm sure @blakeyrat would tell you not to use a shitty framework. On the bright side, though, once you've worked out that dependency stuff, you don't have to worry about the framework stomping over your memory because of the devs' illogical love of C. Or getting BITCHCOMPLAINed at in front of your boss. So... you be the judge.

    @branko-badrljica said in Enlightened:

    With enlightenment, it's easy. About all I need is EFL.

    Easy. SPANK SPANK SPANK BITCHCOMPLAIN



  • Oh man, this is the quality of a reply I expected from a EFL developer.

    @branko-badrljica said in Enlightened:

    Who cares whether it takes you one or three lines to add a button ?

    Anyone who writes programs. And their managers. And their bosses. And their customers. And the users. So nobody, really.

    @branko-badrljica said in Enlightened:

    And since there are plenty crappy Qt applications around, I'd say fundamental part is far from menu and widget cintrol code.

    There are plenty of crappy apps in any framework. It so happens, all made with EFL are such.

    @branko-badrljica said in Enlightened:

    Also, he conveniently omitted all that dependency hell of Qt apps.

    Oh, yeah - you want to deploy a qt app, you run [your os]deployqt tool and that's it - you get all the deps in one folder/package. The horror!
    Also, not sure what that has to do with EFL still being a pile of dog crap.

    @branko-badrljica said in Enlightened:

    I get routinely into situation where two packages conflict about needed version of Qt stuff.

    Look at that, you get conflicts on lib versions. That's so unusual when people don't know how to deploy their apps with deps. But EFL is better at this right? Especially when you have an earlier version without the needed API. I'm sure the magic of the Enlightened Ones will make that API suddenly appear for the application.

    @branko-badrljica said in Enlightened:

    With enlightenment, it's easy. About all I need is EFL.

    Apparently, a brain too. Seriously - you're working for them or are you simply a masochist?


  • BINNED

    Biggest complaint against framework X: "Dependencies can be shit!"
    Biggest complaint against EFL: "All the things!"

    Checkmate, atheists!



  • I think we scared him away 😞



  • @neighborhoodbutcher Maybe he read a few more posts in this thread and realized that the consensus was not quite going in his direction...



  • @neighborhoodbutcher As I said, I honestly expect that he never intended to come back. It was a drive-by, with TRundefined being that he took the time to register here in order to do it.



  • @scholrlea that's very possible. In fact, Samsung has Tizen evangelists with the sole purpose of doing such drive-bys. It's fun watching how a guy pops into a random topic, says how easy it is to do [insert random text] in Tizen, and disappears.



  • I like the pity upvotes he got. 🤣


  • Notification Spam Recipient

    @topspin Pity? That was some quality shitposting.



  • @pie_flavor said in Enlightened:

    @topspin Pity? That was some quality shitposting.

    Fair enough. 😃


Log in to reply
 

Looks like your connection to What the Daily WTF? was lost, please wait while we try to reconnect.