Write Once, Run Anywhere
The writing of a new software application has always historically been bound to the question, “For?”
The array of different operating systems, processor types, and input devices usually meant an inevitable binding of an application to a specific platform that it would be running on. This poses an ongoing challenge for developers: which platform(s) should the application ultimately support?
Any platform skipped represented a loss of potential users. Every platform chosen represented significant additional development and testing costs. Building and maintaining multiple codebases to support different platforms was historically the only way. The mantra “Write Once, Run Anywhere” emerged as an envisioning of a more ideal scenario, but an actual implementation of that vision was the tricky part.
The chasing of that vision is one of the major reasons web-based application development exploded in popularity so quickly. In theory, building a web application would allow the app to run on any device capable of running a web browser, giving your app an immediate and wide reach across many platforms.
Web applications do provide tremendous cross-platform flexibility, but some issues still remain. Browser compatibility, screen resolutions, internet connectivity or bandwidth restrictions… all of these can still result in users on different platforms experiencing issues with web applications. Even when web applications prove extremely robust, the advantages of native applications still remain.
Native applications can access a device’s full capabilities, offer superior performance, and don’t require an active internet connection to run, thus allowing offline features. Mark Zuckerberg once somewhat famously said that betting on HTML5 over native apps was a big mistake Facebook had made as a company. With native apps still proving both powerful and popular, the desire for native application cross-platform development solutions persists.
Today, we can take a closer look at the frameworks that are on the cutting edge of cross-platform application development: React Native, Flutter, and Xamarin.
.NET developers also have an option for their cross-platform dev needs. Microsoft’s Xamarin platform allows .NET developers to write cross-platform apps in the familiar language of C# and the power Visual Studio IDE. As with the other frameworks, one can create Windows, iOS, and Android applications. Microsoft shops may find Xamarin a more readily accessible cross-platform solution.
Choosing which platforms your application should be available on and what sort of resources will be needed to support them is something any organization should consider before beginning any major application development project. Depending on the answers, a cross-platform development framework such as the ones listed here may be worth exploring.
Thanks for reading. We hope you found this blog post to be useful. Do let us know if you have any questions or topic ideas related to BI, analytics, the cloud, machine learning, SQL Server, Star Wars, or anything else of the like that you’d like us to write about. Simply leave us a comment below, and we’ll see what we can do!
Keep Your Business Intelligence Knowledge Sharp by Subscribing to our Email List
Get fresh Key2 content around Business Intelligence, Data Warehousing, Analytics, and more delivered right to your inbox!