A couple of weeks ago I had a discussion with a senior developer about newbies/n00bs, since I started programming this has been my favorite subject and I love to hear advice, opinions and stories related to that. The programmer told me that he was annoyed that Microsoft made it so easy for programmers now a days, one could only drag and drop, and generate code at the click of a button.
This is very interesting. Complexity of systems has increased, and user expectations are bigger than ever, which demands more from the programmer. I can understand that a user interface for developers to work with, and wizards, is less frightening and for many more appealing. And it could, and probably does, attract more people to begin with programming. Awesome!
At the same time it worries me. Sometimes this abstraction adds ‘coincidental code’ / ‘accidental code’. And it removes an important learning process,- some of the time. An example would be App Inventor. This software lets you create Android applications without writing a single line of code. What’s great here is that it gets more people interested in programming, I love that! What worries me is the use of this for production apps, even LOB apps.
The code by clicking abstraction can be an even bigger problem when working with data and services, the problem being when the developer doesn’t understand what is happening in the background, where the code is generated, what it does and what the implications are. This probably also goes for frameworks and certain API’s. It will only save you time if you ‘get it’.
As for the ‘Microsoft making it too easy’-statement, I don’t agree, as with every good intent there will be misuse, but I think what is important is to make developers aware, and encourage them to go beyond the wizards.
It’s a go to get started, but make sure you understand what is happening. Have a good look at the code generated, and look for surprises. Sometimes it’s really a no-go, ask experienced/senior developers when in doubt, or maybe ask nonetheless. And make sure you ask more than one person.
What do you think? Please share if you have some good/bad examples