Today’s proliferation of tools to enhance software development is a cause for celebration. Many amazing people work daily to build and distribute utilities, plug-ins, and IDEs that make our development easier! However, the other side of the proliferation coin describes a constant struggle to identify the best tool for both the current job and for your future. If you’ve ever been faced with eight frameworks competing for your attention in the same software domain and felt choice paralysis, you understand how difficult it can be to make that significant personal and business choice. With this in mind, we’re embarking on a mission to publish a series of white papers that compare and contrast RAD Studio with other major frameworks for application development to root out the best long-term choice. Our audience is both developers who must intimately understand their tool of choice and also decision-makers and business strategists seeking a framework that will support on-time delivery, future expansion, and long-term stability.
Five benchmark applications will be used to compare selected frameworks
- Simple Windows 10 style calculator
- GitHub recent explorer
- Windows file explorer
- Unicode RSS news reader (with local database)
- Screen capture and history application
Each application incorporates basic functions fulfilled by a good framework like UI design, REST API communication, Unicode support, database support, etc. These applications will be developed by experts in the selected frameworks (volunteer for Delphi and contracted for other frameworks) and evaluated according to the main project metrics.
These papers will assess frameworks in the areas of developer productivity, framework functionality, tool flexibility, and runtime performance.
- Developer Productivity is the measure of effort and code required for developers to complete typical development tasks. The time required to complete development tasks impacts the solution delivery and the volume of code produced impacts maintenance efforts (more code = more bugs). Productivity directly impacts product time-to-market and long-term labor costs. Productivity will be measured by comparing the initial development speed, final “speedrun” build time, and the code size of each benchmark application written in the subject frameworks.
- Functionality refers to its suitability to a specified task, defined within this project as its extensibility and security. Excellent framework functionality allows companies to build their own extensions in the native language and also to protect their source code from exploitation. Framework functionality will be assessed according to its native extendibility, decompile resistance, and known exploits.
- Flexibility refers to the breadth of tasks that can be addressed with the tool. While IDEs and frameworks are technically infinitely flexible because anything could be developed within them, this project will focus on cross-platform use, deployment complexity and requirements, tooling, integration with “app stores”, and database access tools. Framework flexibility allows developers to meet their goals with minimal incorporation of other languages/tools and provides fertile ground for a robust 3rd-party tool market. Flexibility will be qualitatively assessed based on each framework’s native capabilities, deployment options, and 3rd party offerings.
- Runtime Performance has end-users judge an application vs another with the same features and interface. Businesses building applications with superior runtime performance avoid customer dissatisfaction by minimizing wait times and resource use on slow machines. Runtime performance will be assessed by startup time, peak memory usage, and average memory usage.
Embarcadero plans this project as an iterative comparison between RAD Studio, Delphi, and C++Builder with other frameworks, with the goal of spurring conversation with other framework developers. All the research and data will be published on GitHub, for others to review. The first comparison is between RAD Studio’s Visual Component Library (VCL) and Windows Presentation Foundation (WPF) .NET using the Calculator benchmark application. Following that, RAD Studio’s FireMonkey multi-application framework will be tested against Electron. Expect future iterations to continue to work through the aforementioned benchmark projects, incorporate new frameworks, and build on these initial papers to provide a comprehensive comparison of 2020’s leading development tools.