Many of these strike me as only relevant if you're passing off code to someone who is either very junior, or not familiar with the language the code is written in.
The switch argument being the best example of this.
if (foo === 'bar') {
// do something
} else if (foo === 'baz') {
// do something else
} else {
// do a default thing
}
Really isn't any more readable than
switch(foo) {
case 'bar':
// do something
break;
case 'baz':
// do something else
break;
default:
// do a default thing
}
To anybody with a modicum of experience, or half a brain :D
As for the recursion argument, one could easily limit recursion depth by keeping track of how deeply you've recursed, and stopping when you hit the depth limit. Sure iteration might seem easier, until you run across a nested tree you need to parse that has varying levels of depth on each branch, and you want to write efficient code to parse it. Recursion definitely has it's place -- as do virtually every other thing you're arguing against.
I'm a loving husband and father, catholic christian. Software dev and engineer for Greatest God's Glory. Inlove with Freedom & heavy metal. En todo amar y servir
If you need half a brain to understand and check a switch statement that's already half a brain you're not spending on other things.
It's like these boxes full of things that "might be useful later" that some people keep in their garage, in the hope that one day this piece of handheld barcode scanner will yield any utility. But as you might know the day rarely comes and in the meantime it's holding a LOT of space.
So regarding the switch, two things:
Either you use it as a if/else if/else, in which case the switch syntax itself is simply useless because totally identical to the other one
Either you use it for its weird control flow characteristics, in which case it's mind-bending and dangerously close to goto
Basically, either it's bad either it's useless. So that's not something I want to bother about.
That's a hell of a twist of my words. Never did I say it takes half your brain to understand, but that someone with half a brain CAN understand..
Let me put it another way since you clearly didn't understand. Switch statements are stupid simple to grasp, unless the person looking at it is a complete idiot -- or, as I also said, completely unfamiliar with the syntax of the language, in which case they oughtn't be poking around the code in the first place.
Obviously we're not going to agree, and that's fine, I don't have to work with you, so your desire to eliminate perfectly useful easily understood elements from code doesn't affect me :)
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Many of these strike me as only relevant if you're passing off code to someone who is either very junior, or not familiar with the language the code is written in.
The switch argument being the best example of this.
Really isn't any more readable than
To anybody with a modicum of experience, or half a brain :D
As for the recursion argument, one could easily limit recursion depth by keeping track of how deeply you've recursed, and stopping when you hit the depth limit. Sure iteration might seem easier, until you run across a nested tree you need to parse that has varying levels of depth on each branch, and you want to write efficient code to parse it. Recursion definitely has it's place -- as do virtually every other thing you're arguing against.
I agree, except on the being cruel part.
Switches are as readable as ifs if not more.
Recursion has its very needed place.
If you need half a brain to understand and check a
switch
statement that's already half a brain you're not spending on other things.It's like these boxes full of things that "might be useful later" that some people keep in their garage, in the hope that one day this piece of handheld barcode scanner will yield any utility. But as you might know the day rarely comes and in the meantime it's holding a LOT of space.
So regarding the switch, two things:
if
/else if
/else
, in which case theswitch
syntax itself is simply useless because totally identical to the other onegoto
Basically, either it's bad either it's useless. So that's not something I want to bother about.
That's a hell of a twist of my words. Never did I say it takes half your brain to understand, but that someone with half a brain CAN understand..
Let me put it another way since you clearly didn't understand. Switch statements are stupid simple to grasp, unless the person looking at it is a complete idiot -- or, as I also said, completely unfamiliar with the syntax of the language, in which case they oughtn't be poking around the code in the first place.
Obviously we're not going to agree, and that's fine, I don't have to work with you, so your desire to eliminate perfectly useful easily understood elements from code doesn't affect me :)