« The nature of domain specific languages (DSLs) | Main | My plans for JAOO this year: networking, .NET and lots more »
Trends in the IT field
By Aino Vonge Corry | August 13, 2008
As a member of the Program Committee for JAOO for several years now, I have seen many developments in our field. It always amazes me how some trends burn out quickly as passing fads and some stay, and it is not obvious which lie in which category.
Take Aspect-Oriented Programming, for instance. It was the new black when it entered the scene, it was the solution to all our hard design problems: You do not have to choose focus, you can focus on everything by placing it in different buckets (aspects)! In 2003 we introduced the term to JAOO attendees. Since we are inherently an OO conference it is not a subject we have dwelled on (although AOP complements OOP). I haven’t seen a paradigm shift, as I was told to anticipate, but with AspectJ and the Java Spring Framework, Aspect-Oriented Programming has moved a little closer to Java developers’ world. Personally I don’t know anybody working with aspect-oriented programming, but I would like to hear from someone who does, and why AOP was the right tool for his or her job?
Let us look at another trend; programming without coding. In 2002 MDA was presented in JAOO for the first time, and at JAOO 2003 it was claimed to be the “The End of Programming as We Know It”. Since those days, heated discussions have been taking place over the power and even relevance of MDA. In 2005 we had a whole day of MDA at JAOO, and since then … silence. Is MDA going the way of 5th Generation Languages?
Design Patterns is another story. Initiated in 1987 by Kent Beck and Ward Cunningham, made famous in 1995 by the Gang of Four and made useful by Frank Buschmann the same year, it created a hype that was enormous. Then there was a period where everybody thought it was a passing fad, and only a few people could get away with talking about it publicly. And now, they are everywhere. They always have been of course, under other names, but now people are allowed use the term
‘patterns’ to describe what they are doing. At JAOO 2008 we see them simmering under the lid, the concept named in few abstracts, and even fewer titles. But they will be used and mentioned in a many presentations.
And what is the general trend that we see and try to capture in the Program Committee for JAOO 2008? To mention one thing: The Many-Faceted Developer. JAOO started as a Java conference back in 1997, but we became more and more aware of the fact that one platform is not enough for developers. Nowadays, developers are expected to know it all, or at least be willing to learn. Thus our Java track for .NET developers and our .NET track for Java developers this year. End-user
experience is also something the Many-Faceted Developer has to pay more and more attention to. And making best use of developer feedback. And designing your own agile process that fits your needs. And still having the excess energy to create beautiful code. It seems the Many-Faceted Developer has a lot to think about.
Of course the Many-Faceted Programmer also needs to know some Ruby and some functional programming, but that is another trend for another blog entry.
If I should try to make qualified guesses about JAOO 2009 and the trends it will mirror, I believe beautiful and clean code will be something that is expected from developers, and will be included
implicitly as patterns are today, that we will have a track on how to choose the right tool for the job, and some more about ethics in development and security in applications.


August 14th, 2008 at 11:56 am
What about concept-oriented programming which is claimed to extend both aop and oop: http://www.jot.fm/issues/issue_2008_03/article2/. It looks unusual and intriguing but it is not clear now how perspective this trend is (or it is just a hype). What could be interesting is its connection with db models but here again there are more questions than answers…
August 15th, 2008 at 8:35 pm
Thank you for pointing me in the direction of something interesting, Martinus. More of that is very welcome.
Regarding your question, there is no doubt that the (only) author of publications about it, Alexandr Savinov, believes in it. “Concept-orientation is a new emerging programming, data modelling and system design paradigm.” is what he writes on the top of the homepage of CoP (http://conceptoriented.org/).
Mainly CoP seems to be about how objects are represented and accessed (indirectly).
Some discussions have taken place over the subject, e.g. from JoelOnSoftware (http://discuss.joelonsoftware.com/default.asp?joel.3.650579.14) as recently as July 2008.
And TheServerSide (http://www.theserverside.com/news/thread.tss?thread_id=47699)
from November 2007 where Alexandr Savinov himself starts a discussion about the concept of COP.
In both cases the criticism is the lack of motivation and the inability from the community to see how this is in fact a change of paradigm. Some view it merely as the proxy pattern on steroids.
I can certainly see the interesting questions arising from COP, but since there currently is no implementation of it for various reasons (http://conceptoriented.org/forums/viewtopic.php?p=8&sid=b85ddff149a9910d63c9e9fc6190c8ae), it is very difficult to gain momentum in convincing people that this is a useful paradigm shift.
We’ll be keeping an eye on it in the future.
(Not to be mistaken for “Concept-oriented programming” from Dr. Dobbs from 1999, (http://www.ddj.com/184410968?) which primary contribution is to turn wide area networks (WANs) into a facility for software development and distribution.)
August 30th, 2008 at 1:48 am
With respect to Programming Without Coding
http://www.codeproject.com/KB/winsdk/ProgrammingWithouCoding.aspx
Greetings,
Mahmoud
http://doublesvsoop.sourceforge.net