... NET Framework 2.0. Tabulating only MSCORLIB.DLL and those assemblies that begin with word System, we have over 5,000 public classes that include over 45,000 public methods and 15,000 public properties, not counting those methods and properties that are inherited and not overridden.... 60,000 properties and methods...
... Like other addictive technologies, I have a love/hate relationship with IntelliSense, and the more I despise it, the more I use it, and the more I use it, the more disgusted I am at how addicted Iâve gotten, and the more addicted I get, the more I wish it had never been invented... IntelliSense is also dictating the way we program.
... for many years programmers have debated whether itâs best to code in a top-down manner, ... or, alternatively, the bottom-up approach ... In order to get IntelliSense to work correctly, bottom-up programming is best. IntelliSense wants every class, every method, every property, every field, every method parameter, every local variable properly defined before you refer to it ... But the implication here is staggering. To get IntelliSense to work right, not only must you code in a bottom-up structure, but within each method or property, you must also write you code linearly from beginning to end... Itâs not that IntelliSense is teaching us to program like a machine; itâs just that IntelliSense would be much happier if we did. And I think itâs making us dumber... So I donât think IntelliSense is helping us become better programmers. The real objective is for us to become faster programmers, which also means that itâs cheapening our labor.
Take a look at some of the sample code that comes out of Microsoft. There youâll see button1, button2, button3, label1, label2, label3, etc. Any yet, everyone agrees that one of the most important elements of writing self-documenting code is giving your variables and objects meaningful names.
If Visual Studio really wanted you to write good code, every time you dragged a control onto your form, an annoying dialog would pop up saying âType in a meaningful name for this control.â But Visual Studio is not interested in having you write good code. It wants you to write fast code.
Another problem with Visual Studioâs generated code is that every control is made a field of the class in which it is created. This is a hideous programming practice, and it really bothers me that programmers may be looking at the code generated by Visual Studio to learn proper programming technique, and this is what they see.... Global variables are basically gone in object-oriented programming, except that fields are now the new global variables, and they can be abused just as badly.