I see in the development community a lot of focus on the different technologies, frameworks, code libraries and frameworks. Maybe this is how it should be. To achieve competency in whatever, one must spend time, energy, effort, money, collect personal practice and experience. But, as times goes by, with acquiring of enough experience, one start to have fast, bird’s eye view and perspective and see things globally, beyond the “magic” of the source code.
I’ve started coding (professionally) a little more than 13 years ago. I’ve seen technologies come and go and evolve. I’ve seen how much, a success of some cool software tool is more depending to the psychology, the investment of big brands or the pull off of big names from certain platforms. I’m gonna point out several examples.
Android Simple User Interface Components – same thing with the native user interface views of Android. It has been more than 10 years of evolution. The “Best”/”Recommended” visual practices changed several times. A Developer could not depend on the newer libraries and create app with them, they will be fast, small in size, but again, they will look and will feel ancient. Because the increasing requirements of the code libraries and the app store, the newer, modern looking components increasingly require greater version of Android. But with the simple components, apps will be compatible to older devices.
Different corporations tried and are trying different platforms, frameworks and libraries for the front end layers – for the web or for the proprietary platforms. Adobe had Flash runtime and invested in a framework for business applications (Flex). Partially Thanks to Apple, it failed. Microsoft had Silver-light equivalent of flash/flex and also failed. Microsoft had Windows Phone and Metro UI. No normal user remembers it today. Sun, after that Oracle had Java Applets or Java Web Applications concept for integrating with the web and the user applications layer. Because of never-ending security issues, the slowness of changes in Java and other political issues today Java is mostly for the Enterprise Back-End. All else is probably in decline/decrease.
Google today is trying to push a framework that is a mix of all the past ideas – Flutter. I have several projects with it, so I have some personal experience and mixed sense from it. It does not need a plugin like Applets, Silverlight or Flash for the Web and it also creates apps for iOS, Android and Desktop. It uses again a 3rd – non-native language and it cross-compiles. My builds take from 30 seconds to 4 minutes [depending on the hardware and other factors]. It does not perform good on old devices – I have an Android 4.0 and the Web version is not starting at all there. My global two cents are – until a cooperation around a technology it not negotiated and integrated between Microsoft, Apple, Google [and other big names], it will fade away at some point. Web Assembly may not, but it depends on the progress of standardization. Again, it is not logical issue, but political, financial and emotional.