There are times when you are asked to maybe go over a few things and give your comments on them, or maybe try and find some bugs or design flaws. This usually is a common practice in IT world where software engineers often enlist their peers for validating and verifying the design and the code they write.
Most of the time this process is nothing more than a quick scan of the code/Design to see if there are any design flaws as these are the ones that cause immense pain in the ass if left unchecked. Implementation details on the other hand are mostly trivial and easy to fix.
The details pertaining to the communication between modules or the way they go about storing the data which might be of some use to any other module are very important and should be addressed before even a single line of code is written. And the details regarding alignments of various UI elements though very apparent are the easiest things to fix.
But I have seen people fighting over the best way to align a textbox to a radio button and not care about the data that is going to be passed on to an asynchronous function.
The event handlers in question take something akin to void* from C/C++ world and then use runtime queries to determine the properties it has and then take some actions. The best part is all these could have asked for a specific type of object and then done the same actions with compile time bindings. That’s the beauty of languages like JS/AS/Python, you don’t need to know what is the data type of any given variable. You can query the variable for the property you think it should have and the variable will tell you if it has that property. So far so good, but the developers who use these languages forget that this is a feature of the language and like all good things it has a price to pay for.
For starters anytime you use this kind of run time data binding and property search its going to be freakily expensive. Computing cost apart, this type of code will be a nightmare for the next guy who comes in to maintain/develop the code/product. Anywhere you go it’s a discovery process all over again. He cannot be sure of the content of the variable unless he/she has gone through all the possible execution paths to get to that variable and even then it’s a bitch to keep track of all those pathways and the various properties they might infect.
Compare this type of code with Compile time binding and anyone looking at any isolated piece of code can tell what exactly is going on in the localized view that he/she has. They know the data coming in and the format and type and they know what is going out. The guessing game has been replaced with a much cleaner and well defined set of rules.
Back to the original topic, I recently was a witness to a lengthy discussion about how to align a textbox to the label part of a radio button and believe me the guy who was fighting for the implementation details of some UI element was the very same guy who didn’t give a rats ass for the sanity of data being passed around in asynchronous function calls where each and every function had to go through the same data discovery stage as nothing was clearly defined.
Imagine the person fighting for how should the text box placement go and not caring about the way all important data flows through the system. I choose to believe that the guy who does this has no interest in the product as a whole but is concerned with how it looks to that in when the demo time comes up he can have a pretty thing to showcase. I’m not saying that software should not be pretty but first and foremost it should be functional.
But then I look around in this world of mine and see that everything pretty (functional or not) usually get what they want. Take Britney Spears, Lindsay Lohan or any other bombshell out there. No one care whether or not they have acting talents but just because they are pretty they can do pretty much everything and get away with it. The irony is it’s not limited to just glamour world, in out tech world a insanely could have been great product is crapped just because it was not pretty (Looks at windows Mobile) and a stupid crippled product goes ahead and becomes one of the bestselling things ever just because it was pretty (iPhone/Pad).
Sigh…