White Paper: 5GL RAD Development After 2.5 hours of training, subjects reduced their development time by 60-90% A Study By: 326 Market Street Harrisburg, PA 17101 Luis Paris, Ph.D. Associate Professor of Computer Science Harrisburg University - lparis@harrisburgu.edu Joseph Cannon, Ph.D. Professor of Computer Science Harrisburg University - jcannon@harrisburgu.edu
The Problem From mnemonics to high level language to IDEs, computer languages have evolved progressively over the years, adding increased degrees of automation and sophistication. However, as businesses evolve, so do their needs for creating portable, scalable business applications. Today s businesses need the ability to integrate complex applications with web-based technologies, as in the case of CRM solutions, in order to remain competitive. With ever-changing market demands, companies must employ new programming paradigms that are designed to 1) simplify software design, 2) increase productivity, and 3) reduce development costs. Luckily, there s a new generation of 5GL tools that can minimize the time and effort required to develop and deploy web-based business applications, including complex CRM solutions. Proof the Problem Exists Since the 1950s, each generation of software language has evolved with its inherent set of advantages and shortcomings: First and Second Generation Languages (1GL and 2GL) First generation language showed the computing world that, just because it s convenient for computers to process code and data using only two voltage levels, it doesn t mean it s feasible for any lucid programmer to write program in machine language. So assemblers, as second generation languages (2GL), were introduced. For non-programmers, assembly language looks different than machine language. For system programmers, however, assembly language is just another way to represent machine instructions using one-to-one human readable equivalents called mnemonics. Interestingly, assemblers are still in use today for small specific tasks in embedded systems, OS device drivers, graphic intensive applications, or even real-time desktop applications when fine-tuning critical code passages and time intensive loops, which can easily become the main bottleneck for real-time applications. On the downside, 2GLs are not portable, tie the program to computer architecture details, and are thus ineffective for writing portable, scalable code. Third generation languages (3GL) Third generation languages (3GL) started the high-level language (HLL) revolution by the early 1960s and were marked by the adoption of FORTRAN and ALGOL as potential alternatives to assembly language. They simplified the burden of programming by allowing programmers to focus more on the actual solution logic instead of being limited by assembly instruction sets and computer hardware dependencies. Eventually, FORTRAN, ALGOL, and newer 3GLs (COBOL, BASIC, PASCAL, C, etc.) rose to the challenge and steadily reached hardware independence. 3GLs have literally flooded application development ever since. The reason is twofold: 3GLs offer a compromise for implementing system software as well as productivity software while simplifying program flow, control logic, and programming effort. Indeed, 3GLs offer the simplicity, structure, and clarity absent in early 2GLs while making software development more programmer-friendly. For 2
instance, 3GLs such as C and C++ give enough flexibility for the programmer to talk directly to the computer hardware if needed, while allowing the use of higher software abstractions to implement more complex functionality if desired. The object oriented programming (OOP) paradigm further strengthened the proliferation of 3GLs such as Java, Eiffel, Python, Ruby, C#, etc. by adding new enhancements such as polymorphism, inheritance, encapsulation, templates, etc. on top of existing 3GL features such as structured blocks, control statements, strongly or explicitly declared types, and abstract data types (ADTs), among others. Fourth generation languages (4GLs) Fourth generation languages (4GLs) brought more control, automation, and higher abstraction to software development. The creation of visually integrated development environments (IDEs) with automated project wizards and other graphic based toolkits where programmers build applications by manipulating blocks of programming units, modules, or functions, are all good examples of 4GLs that made software development less cumbersome and tedious as compared to 3GLs [1]. 4GLs are typically used to implement graphical user interface (GUI) frontends, office applications, and middleware services, among other software. Yet another common criterion to classify 4GLs is when they attempt to simplify semantics and get a step closer to natural language. Although 4GLs reduce development, integration, and deployment time to some extent, it is still often necessary for programmers to implement certain requirements using 3GL code during the development process. This prompted the creation of fifth generation languages (5GL). The Basic Solution Cloud-based 5GL tools can minimize the time and effort required to develop and deploy web-based business applications, particularly CRM solutions. In fact, results from a recent research study conducted at Harrisburg University showed that certain 5GL tools, specifically WorkXpress, were easier to learn and use than most 3GLs, reduced development times and effort, and offered more flexibility overall. In order to form an impartial comparison between 5GL and 3GL, the study utilized a small group of 2 nd year Computer Science students, and asked them to implement (after minimal training) the five primary building blocks of WorkXpress Platform as a Service. Tables Forms Fields Relationships Actions (using the expression builder and query builder) Performance was measured using the following five rubrics: 3
Ease of use All five students were captivated by how easy it was to create a small CRM application from scratch just by performing a few clicks and filling out a few forms and tables. The fact that most of the implementation details were being transparently handled by the 5GL tool was one of the most useful features the tool offered, they argued. However, one student clearly biased for 3GLs, while acknowledging the clear time savings achieved by the 5GL tool, still favored using 3GLs alleging more control and customization of the final application. One reason for this bias could be twofold: Most 3GL programmers do not have the experience or the need to implement full CRMs from scratch; they either use 3GLs to solve smaller problems, or write optimized library modules to add middleware or frontend functionality. Second, most 3GL programmers might overlook other stages of the CRM development process besides implementation that are handled behind the scenes by the 5GL tool and the cloud-based environment, such as DBMS setup, database connectivity, backend interactions between the DBMS and the web server, and the final integration of all CRM modules and components. Development time and effort Although all five students agreed that development time and effort was definitely reduced using the 5GL tool, there was no consensus on the amount of time required to implement a similar CRM application using 3GL technology. Most students underestimated the potential time required to implement the same features using 3GL tools. Time estimates varied widely from just 6 hours to 2 or 3 days at most. This is not surprising since most of the students who participated in the experiment, although intelligent programmers, do not have extensive experience building CRMs or production software with real project deadlines and deliverables - students take Software Engineering later in their junior year. Also, the fact that the 5GL tool conveniently performs most of these implementation and integration details under the hood is another reason for their underestimation of the required development time and effort. Time Savings with WorkXpress: Quantitatively, the students found at least a 60-90% reduction in development times with WorkXpress versus 3GL's, and likely that time savings is much higher. The students had little experience with CRM applications and coding the detailed specifications in 3GL are probably much more time intensive than they realized. 4
Testing capabilities During development of the CRM application, each student was given a specific module to work with. Since each of the modules was chosen to be independent, the 5GL tool not only allowed students to implement each of the module specifications independently, but also to test them separately using the unit test feature. Students overall agreed that this was a very convenient and necessary feature already available from the 5GL tool. Because business logic in any significant implementation can be deep and complex, a need has been identified for debugging tools that supersede any simplicity in actual software development. In other words, even using a 5GL that renders the act of writing code fast and easy, the business logic itself can become quite complex. WorkXpress has evolved a series of debugging tools to address these needs. First, the presentation layer can be debugged simply because the tools are WYSIWYG (what you see is what you get). Queries of the data layer are debugged with live querying of sample results as a query is developed. At any point of writing a query, the developer can see a sample of the records being returned. The logic layer is debugged using a logging feature that records results returned from each step of a logic chain; this feature is turned on, an activity is performed, and then turned off, and step by step results can be reviewed in the log. And if it were not enough, the application explorer allows detailed crawling and editing of any connected elements of the application structure and data records. Web based vs. standalone IDE Most students also realized the advantages of a cloud-based environment for both application development and deployment over the web. The tool allowed them to work remotely on the same project using different login credentials. This was not a problem since each student worked on a Prefer WorkXpress: Qualitatively, the students prefer many aspects of 5GL development, namely elimination of redundant activity, and unit testing. different module. The tool also provides version and revision control features, although this was not explored thoroughly for time reasons. In contrast, from the experience students already had using 3GLs, they quickly realized that project integration during development and eventual deployment was harder to coordinate and achieve using standard 3GL technologies. The cloud infrastructure obviously plays a major role in this coordination transparently on behalf of the tool. Assignment of tasks Most students seem to agree that a cloud driven 5GL tool like WorkXpress facilitates task assignments and teamwork among developers in a smoother and easier fashion than most 3GLs would. However, it can also be argued that this is due in part to the modular nature inherent in most business 5
applications tackled by 5GL technologies: ERPs and CRMs among others. On the other hand, students also quickly realized that a cloud environment allows both the 5GL tool and the developer to focus more on building the actual application and worry less about software and hardware integration details. Cloud-based 5GL tools minimize the time and effort required to develop and deploy web based business applications. 5GL tools perform most of the implementation, connectivity, and integration details transparently on behalf of the developer. 5GLs can truly remove the dependency on the programmer for certain application domains where 3GL or 4GL tools just fall short. The choice of sophomore students from a CS2 class to run a software experiment allowed us to perform an unbiased analysis of 5GL features vs. 3GL based on a generic CRM application. WorkXpress: Streamline Development with Intuitive Visual Tools WorkXpress leverages programming concepts from earlier generation languages, but abstracts and visualizes their implementation so as to make the act of coding much easier. For example, WorkXpress requires the creation of a data layer using tables and relationships, a presentation layer using fields and forms, and a logic layer using logic blocks in a procedural and, at times, object oriented logic framework. However, the developer implements these layers in a drag and drop, iconographic environment. Additionally, WorkXpress provides a rich visual tool to query the data layer, and a visual expression builder tool to perform what are essentially 3GL functions to manipulate data. The combined effect is a replication of the most common concepts of 3GL languages but in visual environment that is easy to learn and very fast to build with. But since software development is only a part of software deployment, WorkXpress leverages cloud computing technologies to bring fast, easy to learn, visual tools when tackling all other aspects of software development lifecycle management, systems administration, and other typical database administration functions. This proves that software lifecycle management, software deployment, and ongoing software administration and management can also be performed easily and in a visual environment. Looking Ahead: Harrisburg University faculty recognizes that 5GL is a natural evolution of software development. As such, they are considering adding an elective course on 5GL development. Additional more detailed studies may be forthcoming. Finally, WorkXpress provides visual tools for other important tasks such as data integration, debugging, and more. For instance, WorkXpress development tool bar utilizes easy-to-select icons that allow for the creation of the five basic building blocks: tables, forms, fields, relations and actions. Visual overlays 6
allow direct interaction with each layer, including their edition and dragging and dropping elements around the screen. The remaining tools include a recycle option, an online manual that launches wizards to assist in hundreds of miscellaneous programming tasks, and last but not least, an application explorer. This explorer tool uses a search and a tree interface to crawl though all tables, relationships, forms, fields and actions to better understand or edit your application structure, or data records. To learn more about WorkXpress, to receive a free demonstration or to receive the full study by Harrisburg University, please contact: sales@workxpress.com. 7