Making sense of software and technologies from developer point of view

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.

jQuery – this JavaScript library was at its peak 10 – 15 years ago. There was still big chunk of Windows XP installations, so big chunk of Internet Explorer, also Firefox, Opera, Chrome. Compatibility was an issue and jQuery was the solution. Today sites build with it are still working and will probably continue to work, even on older devices, just, their user interface components and user experience will feel old, not adapting to the newer devices and platforms. But, they will work. If you open a newer app (for example written in flutter for the web) on old device – it will either not work at all or it will be ugly.

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.

Trans-Compiling for the Web and other Platforms. The relationship between JavaScript/CSS/HTML and the software developers is love or hate. Not sure about the percentages. Because, being software developer is being engineer, creator, several companies invested in creating tools for transforming other type of code for the Web/not only/. As Java Developer, I used Google Web Toolkit in several personal and non-personal projects. It transformed Java code to JavaScript. It failed to stay up in popularity. Vaadin, a framework that abstracted even above what is client and what server for the application developer, migrated away from it. Having in mind that people hate JavaScript and GWT failed, I cannot find any reasonable logic why languages and frameworks based on the same idea like Dart + Flutter, TypeScript + Angular are so popular and trending. Now, C# even has the same idea, just with the new toy in town – the Web Assembly. It’s crazy. All the business logic is at the end, written in non-standard, backed by different Corporations language or technology. Branding, marketing and programmer emotions are not logical.

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.

Add comment