Start a Discussion
BPM
user-pic

What Will Be The Future of Application Development?

Vote 0 Votes
From Jon Pyke of Cordys: The way we buy and build applications is finally changing and it is changing beyond all recognition -- and it's happening very quickly. Furthermore, the way applications are deployed is also changing.

Consider Apple and the iPhone! The success of the App Store for the iPhone is nothing short of phenomenal -- Apple had just reported more than 1 billion downloads in less than a year's operation -- there are over 25,000 applications ready and waiting for iPhone users to access.

Is this the future of applications development? Who will ever again write a windows application from scratch?

9 Replies

| Add a Reply
  • A long time ago, in a far away galaxy, a futurologist named Alvin Toffler wrote about the "Future Shock" (actually that was in the 70's). In relation to software development, Toffler suggested that students of that time should rather train in systems analysis than in programming, because by the time they’ll graduate application development would not be done with coding/programming but rather by configuring and defining business rules. Programming would be limited to developing tools for application development (what we call today middleware and application infrastructure), and the software industry would mainly have two skill paths - programmers who develop the tools and application developers who use the tools to implement applications.

    What Jon brings up is along the same lines, and indeed what he did with the Process Factory (or what Magic Software did with eDeveloper and uniPaaS) is very much the fulfillment of Toffler's prophecy and beyond.

    I still do not quite understand what made the world regress in the 90's back to 3GL's (C and later Java), and only very recetly resume progress towards broader abstraction of technology and more focus on composition, usability and functionality of applications. It is certainly the future of application development - bravo Alvin Toffler!

  • I am surprised at how much development is changing and all in the name of agility. The reason for this change has more to do with business pressures of time to market then anything. The time it takes to develop software from scratch is too long and so having a paradigm where people are able to use simple modeling tools to then generate code is becoming the way of the future. This also gets more of the business involved in the development process which saves time and money in the long run.

    I suspect the days of writing applications from scratch are behind us and there is a new dawn emerging with SaaS, Cloud and Virtualization not to mention SOA that are getting people to think and act differently.

  • My suggestion is that future of Application Development is looking for an assembly as the primary model and integration as the secondary model. Original, from the scratch, development will be a prerogative of only specialised teams and there will be not so many of them (no needs). I also hope that majority of such assembly will be based on the principals of service orientation.

  • Depends of course on what you mean by "development".

    Something that's happening fairly radically is that organizations are rethinking the business value of technology and looking at both the existing and ongoing cost of IT.

    What this means is that IT that has already been invested in (aka "Legacy") is going to be perpetualized. Get used to it, there's very little business case in throwing out anything that pre-exists (unless it happens to support zero business functions, but how likely is that?)

    Secondly it means that IT is going to try to focus on integrated solutions rather than "new apps".

    So I see development being much more agile, collaborative, business driven, process driven and much less siloed. It will be much more social, iterative, creative, integration driven and business oriented than in the past. It will also be more coarsely grained, reusable and assembly-driven than in the past.

    My 2 cents,
    Miko

  • I don't think that developers code much from scratch any more, rather they use frameworks, scripting and reusable objects inorder to get things done faster. The closer the application is to a "standard" application the easier it is to reuse stuff.

    That being said, I don't we are anywhere close to being able to automatically generate complex applications from a description or model. I don't think coding is going away anytime soon - but the newer methodologies - iterative development and agile methods are here to stay.

    One development aspect that hasn't been given enough thought is testing - both the tools and methodologies just aren't there yet.

  • Increasingly, much application development -- will follow a made-to-order "assembly" model, such as we see with hardware. Developers (and business end-users themselves) will pull in components from the cloud that have already built, tested, and maintained either by cloud providers or open source communities.

  • Every time I read prognostications on the future of the industry the example I use to ground myself in reality is COBOL, which (dare I admit it!) has been around as long as I have - and folks are still programming in it.

    The scope of application development has clearly been evolving and growing, but I don't think the requirement for custom coding is going to go away anytime soon. I actually created a tagline for some developer tools at a company I co-founded over 20 years ago, that sums up nicely what I think is happening - "Redefining the concept of programming!"

  • There are two things to consider here:

    Application Development – What has really changed here in the last 20 years is that we finally got reuse right. We’ve figured out how to do libraries (e.g. the JDK with Java) and frameworks (e.g. Spring, again using Java as an example, but there are many other great examples likes Rails) that we can reasonably share. The impact of this cannot be underestimated; this is why we can build apps we couldn’t dream of back when I started coding. SOA done right is the logical extension of these lessons taken to distributed computing.

    Languages haven’t changed a lot and probably won’t—they embody a fundamental truth that shows up in every different flavour. We flirt with declarative styles, try visual programming (which always disappoints), get excited about approaches like aspects, but in the end its the basic ideas like variables and if-then that tie it all together and appear in every dialect. Languages don't surprise much anymore.

    Application Distribution – This will continue to evolve to meet our changing expectations. We’re impatient, so apps need to be simple and instantaneous to access. Cloud will help us here by moving more complex apps to SaaS installations so they are ready when we suddenly decide we need them but don’t want any hassles from installation or financial barriers to entry.

    I have a certain ambivalence about the Apple app store. The genius of this is that it represents the continuation of Apple’s philosophy about stability and consistency through complete vertical integration, extended now into the app market. Sure, they’ll take flack over their fight with Trent Reznor, but they need this control to maintain uniform customer experience. Control of content is as much a part of this as careful control of API, or binding of OS and hardware platform.

    A brilliant side effect of their approach is that they have also set themselves up to be the only store on the block. For the bulk of customers—those who don’t jail break—this is the only place they can shop. Apple does their job very well, so the single source isn’t perceived as too much of a burden. There is also a lot of good will to be had in offering individual developers and small teams access to a real mass distribution channel.

    Nevertheless, the app stores is at risk of becoming like the traditional department store: too many items with too little focus. In the 80s and 90s, this drove people into boutiques and killed many stores people thought of as the foundation of retail. The same could happen here, despite Apple’s magnificent brand.

  • Something very important is happening in application development: the rise of domain specific languages (DSLs). DSLs are purpose-built for specific tasks, like BPM. General purpose languages (e.g. Java or C#) will still have their place, but will be used less and less as more developers leverage the power of DSLs. Some examples:

    * In BPM, the highest-level control flow of the application will be written in the language designed specifically for business process management: BPEL, using BPMN notation.

    * UIs will be created using a new generation of rich Internet application (RIA) tools, which will generate presentation logic only, while business logic is handled by the services.

    * Because any BPM application will need people to work on tasks, developers will use WS-HumanTask.

    * Data transformations are clearly part of any modern application and developers are increasingly using XQuery or XSLT to do them.

    * Event handling will use a CEP language, like the Event Process Language (EPL) and complex decisions will be captured in a rules language. Many developers will choose either or both of CEP and rules engines as there is some overlap.

    And, looking just a little further out, combining these component parts into a cohesive whole will be accomplished with the new standard for composite applications: the Service Component Architecture (SCA).

    In this new world, coding in Java or C# will be relegated to things like tool creation or low-level programming. This is already starting to happen, but it takes time to change people's habits. When you've only been taught to use Java as your hammer, every application development problem looks like a nail.

Add a Reply

Recently Commented On

Monthly Archives

Blogs

ADVERTISEMENT