Re: Switch question - yet again!

new topic     » goto parent     » topic index » view thread      » older message » newer message

It is clear none of us has the time/ability combination to fix the innumerable problems with attaching destructors to atoms. Euphoria 4.0 went fast for adding new features and whenever you do so defects get introduced along with features. Some might have the ability to track down this bug but apparently not the time (inclination). Others may have lots of time and want to but not the ability.

I have come to avoid doing certain things:

Features I avoid using include:

  • attaching destructors to atoms
  • Using object() as a function to determine whether you set your variable or not
  • std/http.e routines
  • ifdef style syntax
  • things that would be impossible or illegal in C/node/Java.

The first two are avoided because there are all kinds of corner cases that bite you. Putting an uninitialized object into object() is totally unneeded when you can have dummy values. It sometimes takes years before someone notices a bug that gets introduced. So, I tend to use the features that have been around longer rather than the newer stuff. I have never had a problem with the flow control statements. These seem rock solid. Library routines are different because they run on top of the front end and generally keep with my avoid list above. However, I don't use std/http.e because it is and has always been obsolete. We were already with HTTPS everywhere when someone added it. If you need to transfer over the internet, use curl.

With ifdef you can perfectly check for platforms that don't exist or are misspelled or of the wrong case. This results in hours lost because of a typo in debugging. It's like the macro processor for C except far more primitive.

Lastly, because I mostly write in Node/C plus plus/Java, a lot of the habits I learned in these languages become part of my coding style. Therefore, I think the same is true for most people. So using a non-literal as a case value is something probably none of the development team ever tried. So that's another reasons this bug would exist.

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu