InfoQ

Interview

JAOO Panel: Who will Develop Software in 10 Years?

Interview with Martin Fowler, Jimmy Nilsson, Dave Thomas, Frank Buschmann, Steve Cook by on Mar 15, 2007 08:26 AM

Community
Architecture
Topics
Business ,
Open Source ,
Events ,
Grid Computing
Tags
QCon ,
SmallTalk ,
Java SE ,
Outsourcing ,
JAOO Conference
Summary
Martin Fowler, Frank Buschmann, Steve Cook, Jimmy Nilsson, and Dave Thomas discuss the future of software development. Topics covered include outsourcing, is Google the next MS?, multi-core & parallism, grid computing, software stacks of the future, and more. A thoroughly thought-provoking panel! JAOO is producing the QCon event.

Bio
The panel was moderated by Martin Fowler, and included POSA author Frank Buschmann (from Siemens), Steve Cook (working on DSL tools at Microsoft), Jimmy Nilsson (author of Applying DDD), and Dave Thomas (founder of OTI who created Visual Age).
Martin Fowler introduces the panellists
Martin Fowler explains theme of the panel - Who's going to be developing software in ten years time?
Frank Bauschmann responds mentioning non-technical developers, self-authoring software, and that software development will not disappear in the western world.
Steve Cook talks about increasing rate of change, security, metadata, modelling, enormous opportunities for development, and software as a supply chain.
Jimmy Nilsson on ordinary people writing software and outsourcing.
Dave Thomas responds on software development changes, who will write software and current bleeding edge techniques that may become mainstream.
Is Google the next Microsoft? To what extent will web oriented platforms make a difference?
What will be the impact of Grid computing - massively distributed computing and having that freely available.
Will multi-core change the way we program?
If this session was held ten years ago what would your answers have been and how would they be different?
Martin Fowler talks about why he likes the JAOO conference.
show all  show all
Massively distributed applications - non collaborative vs collaborative by Michael Bienstein Posted Mar 15, 2007 9:07 AM
Re: Massively distributed applications - non collaborative vs collaborative by Dimitar Dimitrov Posted Mar 25, 2007 2:19 AM
Re: Massively distributed applications - non collaborative vs collaborative by Cameron Purdy Posted Dec 3, 2007 12:01 PM
10 years? by Chris Paulse Posted Mar 16, 2007 3:12 PM
something to do with the platform by Floyd Marinescu Posted Mar 19, 2007 12:59 PM
Re: something to do with the platform by Alex Popescu Posted Mar 20, 2007 6:48 AM
KISS... by Mittal Bhiogade Posted Mar 19, 2007 2:37 PM
  1. The representative from Seimens says that cell-phone networks are an example of massively distributed applications. That's true as to how to route packets and connections, but it is not a collaborative application like the classic Seti@HOME. That made a thought enter my mind - I haven't seen Seti@HOME offer people with cell-phones using i-mode (always connected) to sign up so that when not busy on the phone, data can be pushed to the phone, crunched and packets sent back. Isn't the cellphone network a great resource for long-running applications whose data can be partitioned well?

  2. Back to top

    10 years?

    Mar 16, 2007 3:12 PM by Chris Paulse

    What were people saying 10 years ago? I imagine pretty much the same. Business experts would become involved in software development. Google seem now to be pushing things in the opposite direction.

  3. Back to top

    something to do with the platform

    Mar 19, 2007 12:59 PM by Floyd Marinescu

    One thing that I think will be an important aspect of what software development will be like in 10 years (although that wasn't the initial question to the panelists) is what platforms will people be writing for, which itself is driven by how will humans interface with computers. Today humans are interfacing more via the web than on direct desktop apps. The web has changed everything and forced us to re-invent a lot of the development concepts and styles that we had a long time ago. For example, it's a bit ridiculous that we (or maybe just I) get excited when I see web apps becoming more like GUI's with widgets like modal dialogues. We had all this before, just on a different platform (OS-specific). I think in 10 years we will see computers all over the home in all kinds of devices that you wouldn't imagine them in, such as the current infant movement of home media computers. How that will impact human-computer interaction, I don't know. :)

  4. Back to top

    KISS...

    Mar 19, 2007 2:37 PM by Mittal Bhiogade

    at the end of talk - some one did mention - how complex phones have become and how simple they were earlier - are we taking s/w towards it - by adding layers after layers.....

  5. Back to top

    Re: something to do with the platform

    Mar 20, 2007 6:48 AM by Alex Popescu

    I think in 10 years we will see computers all over the home in all kinds of devices that you wouldn't imagine them in, such as the current infant movement of home media computers.
    Wasn't this the initial assumption of creating Java? And I don't think things have moved pretty far in this direction. Having all people to accept computers ubiquity may take longer than what some may expect. Imo the big shift is the parallel computing. We will need to come up with better concepts and tools to ease our lives when developing for multi-cores. And the developers will be quite the same, probably just learning to interact more and more with the end users (and sometimes making these directly involved through smart DSLs). toodle-oo, ./alex -- :Architect of InfoQ.com: .w( the_mindstorm )p. C4Media/InfoQ Co-Founder

  6. I don't think that the idea of using the idle CPU power of mobile devices is a very good one due to one main factor - battery power. Few years ago, my Ericsson t39 was able to work about between 3 days and a week on one battery charge. These days I charge my mobile every night, just to be sure that it won't die on me in the middle of the day while I use it to check my email, read news, play games and so on. The main power consumers are the high-res back-lit color screens, the RF circuit and the CPU.

  7. > Isn't the cellphone network a great resource > for long-running applications whose data can be > partitioned well? Unfortunately, most tasks are a lot heavier on the data reqs than they are on the crunching reqs .. that's why most problems tend to scale poorly in stateless systems (because most problems have state ;-). Look at it this way: If an execution unit requires B bytes of data and P processor cycles, and assuming there are no QoS issues with the data (i.e. it can be stale, so distributing it to a cell phone isn't a problem), then you have to look at the cost (call it "C") of CPU power and other resources at the data-center for pushing out B bytes of data in order to save P processor cycles. If the management cost C exceeds the P processor cycles from the cell phone, then you achieve negative scalability (bad). Most problems will fit this pattern, unfortunately. Peace, Cameron Purdy Oracle Coherence: Data Grid for Java and .NET

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.