Software Reality
Programming with
a dose of satire.

Site Map Search


Agile Development
 
Extreme Programming
 
Code Generation


Articles
Lifecycle
Design
Programming
Soapbox
Reviews
Cthulhu

Java Swing
Swing's greatest threat isn't SWT, it's Flash
Swing Survival Guide


 
Check out our ageing Reviews Section


Use Case Driven
Use Case Driven Object Modeling with UML: Theory and Practice
Get from use cases to working, maintainable source code. Examples use Spring Framework, JUnit and Enterprise Architect

Agile UML
Agile Development with ICONIX Process
A practical subset of agile development techniques, illustrated by example

Get Controversial!
Extreme Programming Refactored
Extreme Programming with a dose of satire
Available now:



Programming

Component Oriented Software (Page 3)

<< Introduction & Message Forum

<< Page 2 (Language Evolution)


Language Lifecycle

In order to understand the direction of a programming language, it is important to understand its dynamics from both a technical and economic perspective. I have divided the lifecycle into the following stages:

1. Conception
2. Adoption
3. Acceptance
4. Maturation
5. Inefficiency
6. Deprecation
7. Decay

Conception
A language is conceived to meet a requirement that other languages do not meet. Countless languages have been written, but those C++ and Java have come from corporate research labs, rather than Universities (C++ from AT&T) and (Java from Sun), both have take off.

Adoption
Languages are adopted to make the programmer more efficient. This is driven by the programmers because they are bright and don't like mundane coding. Languages have API's back into the libraries of those they are replacing.

Acceptance
Once the market sees that tools are sufficiently bug free and early adopters have made profits there is a general acceptance of a language. Green field projects expose requirements and ideas for tools and libraries are conceived.

Maturation
Languages, libraries and tools mature. They are capable and deliver profitable solutions. There is an increased demand for functionality, rather than efficiency, in order to reap profits. Standards bodies attempt to control the spread of ideas.

Inefficiency
Development has become slow as libraries become more inefficient. The rush to provide functionality has created a market that is fragmented subtly fragmented by vendors implementing standards differently. There is a large increase in the number of case tools and code generators.

Deprecation
Developers start to understand that it is costly to develop using the language. Frustration begins to set in a designers take a deeper look at the issues causing the inefficiencies.

Decay
A young pretender appears and challenges the leader. Lean, mean and fast the new language has apparently come from a research department of a large technology company. Marketing departments lock horns and invariably the old order is over thrown.


>> Page 4 (Object-Oriented Java)

<< Back to Programming

All trademarks and copyrights on this page are owned by their respective owners.
Stories and articles are owned by the original author.
All the rest Copyright © 1998-2008 Matt Stephens. ALL RIGHTS RESERVED.