We are moving towards having more and more managed programming languages. A lot of software companies are praising these types of languages through the roof, while there is a great downside of simplifying computer languages. By simplifying and making programming languages managed, I would say they are moving towards becoming an over-managed computer language.
Computer languages like C and C++ are native or unmanaged programming languages. They gets compiled to native assembly code and you need to take care of the memory handling yourself. However, managed code like Java or C# are languages where you do not need to write any extra code for memory handling. Of course this is great because we do not have to remember calling delete on our objects all the time. However, there is huge downside. If a person decides to learn for example C# by himself, he often does not need to know anything about memory handling in order to write code. However, this could have a dramatic affect on the code written, since the developer has no clue what a garbage collector is or how it allocates memory. Of course this does not mean much if he makes a simple form-application, however, making for example a multiplayer game, this could have a large affect on the scalabillity of the system.
So what does all this mean? In my opinion, it is the main reason where there are so incredibly many shitty programs who are slow or does not work properly. One example is Minecraft, an incredibly popular game written in Java. Yes, Java. The game requires a high-end computer with a dedicated graphics card to get at least 60 fps. In my eyes, this is complete madness when the graphics in the game is pixelated cubes. Yet, there are lot of these cubes in chunks which might be heavy. However, the code is poorly optimized and could have been far better if another framework which perhaps is made for games is used. Java might be good server-side, but client-side games is something game-developers should keep a good distance from.
This does not only apply to Minecraft. Also, a lot of applications. It is often I see a lot of delay that could have easily been avoided, or buggy/sluggish apps. Large parts of the xbox moves away from the fundamentals in asynchronous programming where the UI is suposed to be responsive while an operation is being done, but I have to wait for my friend list to appear in order to close it. Spotify on the Windows Phone platform was one of the main reasons that caused me to switch over to the iOS platform as discussed in a previous post. My point is, we are seeing more and more (unexperienced) developers starting to use managed languages which often causes slow/buggy applications. This is something I think we will see a lot more of in the near future.