Backward compatibility is very hard. It is one of the successes, and the bane, of platforms like Microsoft Windows. Regardless, it’s important to maintain compatibility when there are many users since they may take to the hills and use other software if migration to a new platform is too painful. Microsoft does a pretty good job supporting its users and developers, but it still retires technologies after a long period of time.
Often the retiring of software is done with experimental tools. Google and others do this quite often. It may be years before some software gets tossed to the dustbin, but these days it often winds up as open source with the hopes that it becomes someone else’s opportunity (problem).
Two tools I have been using have come to this juncture: National Instruments’ (NI) LabVIEW and Mozilla’s Firefox. They have taken a different approach to bringing new technology to the table. I think NI’s approach is the more successful of the two.
NI is delivering two partially compatible versions: LabVIEW 2017 and LabVIEW NXG (Fig. 1). LabVIEW 2017 is essentially an improved version of the prior incarnation of LabVIEW. It is upward compatible, and adds new features like integration with Real Time Innovations' Connext DDS using the RTI DDS Toolkit for LabVIEW. RTI’s latest DDS incarnation supports OMG’s new security standard for DDS.
1. LabVIEW NXG brings a new look-and-feel to the LabVIEW IDE.
The new version adds a channel wire to the IDE. It is designed to simplify programming data transfer between parallel loops. Channel-wire support for FPGAs provides an asynchronous communication support for user-defined malleable virtual instruments (VIs). The connections can handle all data types, from scalars to clusters and objects.
LabVIEW NXG was a blank slate developed in parallel with LabVIEW 2017, making it difficult to incorporate all the latest features, and even some existing features that are more complicated to support initially. LabVIEW NXG brings a new IDE and approach to the LabVIEW arena. It is designed improve the experience for new users, providing more intuitive support for its graphical programming environment. It includes new exploration and analysis tools (Fig. 2) not found in LabVIEW 2017.
2. Integrated exploration and analysis tools allow LabVIEW NXG users to quickly examine information accessible to the hardware without writing application code.
NI will be combining the two forks together in the future. In the meantime, projects using compatible subsets can be moved from earlier versions of LabVIEW and LabVIEW 2017 to LabVIEW NXG. LabVIEW NXG will be the base for the merged versions. The challenge for NI will be keeping three groups happy including existing users as well as those moving to LabVIEW 2017 and LabVIEW NXG. On the plus side, NI provides a clear migration path.
Mozilla’s Firefox didn’t change names, but the move to version 57—now called Firefox Quantum—has been a bit jarring for some, myself included. There was little change from the user interface side of things but a major overhaul underneath. The change causes a large number of extensions to stop working, and they will not work with Quantum because the APIs provided by Firefox for these extensions/add-ons has changed. This would be the same as Microsoft removing a significant number of APIs from Windows.
The reason for this change is to bring performance and security improvements to the browser. Quantum is supposed to be twice as fast as earlier versions. Extensions now use the WebExtensions API, and more than 5,000 extensions were available when Quantum was released. Unfortunately, that is not a majority, and a number of extension developers have indicated that their extensions will not be available under Quantum. I personally use a dozen extensions, and only one is available with Quantum.
There is an alternative in the form of Firefox Extended Support Release (ESR). Firefox ESR is based on an earlier version of Firefox (Fig. 3) that will be supported for another year or so. This is more along the lines of bug-fixing versus enhancement. All new enhancements will be found in Quantum. Eventually future extended support versions will be based on Quantum.
3. Mozilla’s support path include extended support releases based on version 52, but version 57 (Quantum) is incompatible
This essentially leaves users with unsupported extensions in a lurch. On the other hand, a significant number of Firefox users use no extensions, so their migration to Quantum is painless. Likewise, Mozilla has put in place ways to find replacement extensions. The problem with this is many new extensions are less mature, even though developers have had a couple years to work up new options.
Mozilla’s change can be compared to Microsoft’s own browser changes with its inclusion of the Edge browser in Windows 10. Internet Explorer continues to exist and is at version 11. The question is, will there be a version 12? Edge suffers from the same type of problem Quantum does. It is leaner and faster, but less functional from an extension standpoint. Microsoft has a monopoly position with Windows 10, whereas Mozilla must entice users to take advantage of Quantum.
I have already increased the number of browsers on my system, with Opera and Google Chrome moving to the forefront. I have Firefox ESR to maintain my needed extensions, like the ability to grab web pages into EPUBs that I use for making research notes. I have found some extensions for Opera and Chrome that provide similar support to the older Firefox extensions I used. Unfortunately, I was not able to find the same combination on any one platform.
It will be interesting to see how the browser migrations affect their use. I will still use Firefox for some platforms, and it is the basis for the Tor browser that I also use. What is interesting is the recommendation that users not employ extensions with the Tor version of Firefox because of potential security/tracking issues. That means a movement of Tor to Quantum would have the same kind of impact as Firefox users that did not use extensions.
This discussion is relevant to the embedded IoT space because software changes not only impact how a user will fare with the software, but also whether the hardware associated with it will continue to work. The lack of open-source support often means some hardware will essentially become useless if a vendor does not provide updates or turns off the cloud-based services that IoT devices may rely on.
There are usually no good answers, just lots of tradeoffs. Companies and developers need to balance those against customer satisfaction. This includes those who have purchased or are current subscribers, as well as future customers. NI will likely keep its LabVIEW users. Mozilla may not fare as well with its Firefox users, and Microsoft will have similar issues with its browsers.