Towards automagically generated web applications
Current software development trends are showing a near future when complete applications can be generated immediately based on business requirements.
Foundations
I’m coming from the Ruby and Rails world, one of the leading web development frameworks today but always keeping a close eye on their “rivals” too. I would like to talk about general web development trends, as seen in the Ruby and Rails world and valid for others too.
The technologies on which I’m making affirmations are platform-independent, not only tied to Ruby and Rails, or they can be incorporated into the other frameworks.
Domain Specific Languages
I think the big breakthrough, the basic technology supporting my affirmations are the Domain Specific Languages (DSL), more exactly the wide-availability and the ease-of-use of these.
DSLs are very interesting things: using human languages they can describe / make understandable the reality to computers; they can map specific real-world domains to an abstract programming language; they are converting natural language concepts into programming language specifications.
Or they can compile domain specific knowledge into a set of best practices, design patterns or even into functional components reusable when building another solutions for that domain.
For example Ruby is a programming language in which DSL’s are easy to create, and Rails is a web development framework built in Ruby, more precisely a DSL for web development incorporating the opinions and best practices of a crew creating very successful web applications with millions of users.
More technically speaking, fresh web application skeletons generated with Rails are already including todays’ majority of web development’s best practices.
Generators
Since any domain can be described by a DSL, and driven by the apetite for sharing of the free and open source software development community, today many common development tasks are recorded into generators and distributed via public code repositories.
Generators are code that writes code, a set of executable instructions how to solve a specific problem.
In Rails there are application templates, application generators. Based on your specific business requirements the generator creates a complex application skeleton, a prototype, an immediately working demo.
For example if you need an e-commerce application the generator will create the authentitaction, authorization, shopping cart and checkout parts automagically. You just have to customize the look and feel and present it to the customer for approval / further discussions.
Some generators are recording the best practices of an entire team collected over years and distilled from many different projects … and generating a new application takes only a few seconds!
Application Designers
In a previous post I was talking about the future of the web applications, focusing mainly on who, what kind of a team will create your web solutions in the near future.
In most cases the customer will get an amazing and unbelievable one-man-show instead of meetings with project leaders, product managers and architects talking endlessly about requirements specifications and disappearing when the bugs are delivered.
The new-breed-freelancer will sit down with the laptop, register your requirements into a DSL, generate immediately a working demo, maybe with some styling already added. You’ll talk about living results not just abstract terms, you’ll sketch up prototypes and launch final solutions in no-time.
The new guy will understand your business domain, will be backed up by a community of thousands of the best web developers, and will enjoy answering your needs immediately.
Resources
- DSL: Intro to DSL by Martin Fowler, Business Natural Languages by Jay Fields.
- Amazing speed: Your idea, implemented in 3 days. No joke.
- New web architecture: The Near Future of Web Apps




























