My response to 'Software Should Be Easier To Build, Not Harder - My Dream For The Future Of Development'
A few days ago, the chief architect of the company I work for sent me an email, with the link to an article and the following comment: "I think he's not wrong". He was referring to an article written by an MVP, posted on csharpcorner. To sum up, he explains that software development is getting more and more difficult with Microsoft (it's a very short summary, I advise you to read that article if you want to go through the one you are currently reading).
To be honest, I never developed with Visual Basic so I don't really know what he is talking about when he refers to VBX for example, however I used many RAD (Rapid Application Development) solutions from Microsoft, like the drag'n'drop in ASP.NET, or the Entity Framework EDMX that he seems to miss, but I far prefer the current solutions. In my opinion, the RAD solutions always made people lose much more time than they saved, as they were only very effective within a limited scope, in a few identified cases, and were complex to adapt to specific needs. The drag'n'drop of components or data sources was really effective only for basic applications, for reading and writing data in grids.
One of the main ideas of this article is that software development is more and more difficult using the Microsoft tools, which I think is an unfair reproach. The first reason is that I remember some projects in ASP.NET in which the URL rewriting could mobilize a whole team, sometimes for weeks. In these projects, we also had to handle a lot of technical issues without any functional value that required constant vigilance, as for example the aspx postbacks or the viewstates’ size. MVC was a true revolution, as it was perfectly adapted to web development, allowing the developers to focus only on their core job, without being bothered by various technical complications without any functional added value. ASP.NET Core continued in that direction, redesigning some basic areas of the .NET Framework and releasing a lot of useful technical features or services, such as the dependency injection service which is a good example of Microsoft’s performance.
Certainly, software is harder to develop today than 20 years ago, but the context has radically changed. Is Microsoft responsible for the fact that most web connections are made from smartphones which all have their own characteristics? Is Microsoft responsible for the existence of more and more hardware devices, potentially increasing projects’ complexity? Besides, if Microsoft was going the wrong way or were incompetent, a miracle solution would already have been created, but that is not the case. I agree with the article’s author when he states that Microsoft has been progressively moving away from RAD solutions for a few years, but is it really a mistake? Personally, I don’t think so. The RAD tools always had their constraints and limits, while the current solutions allow you to build exactly what you need. He has some regrets about the EDMX, while the Entity Framework Core model builder is so powerful. I admit that it does not contain functionality to create a schema and design a data model using only a few left and right mouse clicks, but it is modelled on the Microsoft development tools of this day and age: the tool allows you to do exactly what you need, on condition that you master it. To obtain a schema of your data model, other tools will be needed, but that is not the purpose of the EF Core model builder, and I personally think that it is for the best. With the software products that Microsoft offers today, you certainly start from a blank page, but you can go wherever you want to go, following the way you choose and prefer.
The author concludes his article by criticizing the Microsoft documentation, even though the latest documentation is detailed, well organized and open source. Considering that sharing content and knowledge is one of the main advantages of our time, if you lack information on something, don’t you think it would be more appropriate to complete the documentation instead of grumbling? It would surely be more useful.
I share with the author a dream of the future of software development, embodied by a "perfect tool" which would allow you, with a few mouse clicks, to build complex and specific software, compatible with iPhone / Google Chrome / iPad / iPod / Freebox / Windows tablet / Android tablet / Firefox / connected watches as well as connected clothes. In case I can’t have this, then I’ll go for powerful tools allowing me to develop exactly what I want, freeing me from useless issues, so that I can focus only on my core job. Even if these tools require some time to learn how to use them properly, I think it is a good start.
Getting back to my "perfect tool", I admit that I do not have a great deal of hope concerning its feasibility. First, I think that hardware devices are only at the beginning of their evolution, development and diversification. Second, like humans, the tools which do everything, and in addition do it fast, never do it well.

