InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Panel: Who will Develop Software in 10 Years?

Posted by Floyd Marinescu on Mar 19, 2007

Sections
Operations & Infrastructure,
Enterprise Architecture,
Development,
Architecture & Design
Topics
Open Source ,
.NET ,
Grid Computing ,
Ruby ,
Events ,
Java
Tags
QCon ,
JAOO Conference
In this video discussion panel (with transcript) Martin Fowler, Frank Buschmann, Steve Cook, Jimmy Nilsson, and Dave Thomas discuss the future of software development. If you couldn't make it to QCon last week, this panel from QCon sister-conference JAOO will give you a sense of how things were.

Watch: Who will Develop Software in 10 Years? (39:59 min).  Some interesting perspectives from the panelists initial responses:

Frank Buschmann
 - more business people coding alongside developers thanks to new higher level tools such as DSLs
 - more autonomic computing
 - greater need for skilled professional developers; sees more software being developed locally (not outsourced)

Steve Cook
 - more software about software. Platform will be more introspective and richer
 - more modelling, and modeling as part of the OS
 - 20% of GDP of the US today has to do with software; 30-40% of world GDP will be related to software
 - massive increase in software development will mean more jobs for software developers, no thread of outsourcing taking jobs
 - software development done as a supply chain

Jimmy Nilsson
 - more business experts involved in SW development
 - more software development will be done locally

Dave Thomas
 - todays platforms are very buggy, he is optimistic about future platforms getting better, infact it must get better because  "technology is growing at a quadratic, but the value in business software is growing exponentially in terms of domain content", and unless it happens we will "die in the testing hell we have been in for a long time. 50% of any real successful product is testing, so I think shifting that is going to be very important.."
 - sees some radically different programming technologies (beyond "current kind of object stuff")and platforms being used, cites current specialized work in bioinformatics, finance
 
Following their initial responses, questions raised also discussed if Google will be the next MS?, multi-core & parallism, grid computing, software stacks of the future, and more.

What do you think about how software will be developed in 10 years?
Massively distributed applications - non collaborative vs collaborative by Michael Bienstein Posted
Re: Massively distributed applications - non collaborative vs collaborative by Dimitrov Dimitar Posted
Re: Massively distributed applications - non collaborative vs collaborative by Cameron Purdy Posted
10 years? by Chris Paulse Posted
something to do with the platform by Floyd Marinescu Posted
Re: something to do with the platform by Alex Popescu Posted
KISS... by Mittal Bhiogade Posted
  1. Back to top

    Massively distributed applications - non collaborative vs collaborative

    by Michael Bienstein

    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?

    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

    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...

    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

    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. Back to top

    Re: Massively distributed applications - non collaborative vs collaborative

    by Dimitrov Dimitar

    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. Back to top

    Re: Massively distributed applications - non collaborative vs collaborative

    by Cameron Purdy

    > 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

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.