Sunday Mar 30, 2008

Getting closer to Java Portlet Specification V2.0 products

The Portlet 2.0 specification (JSR 286) has been a long time in the making. In my mind, maybe a little too long. However the promise of having an event model for inter portlet communication between different vendor implementations and indeed Portal servers in one or more locations, through WSRP 2.0, is very exciting.  

I found a good article on IBM Developerworks - What's new in the Java Portlet Specification V2.0 (JSR 286) , where "Figure . A sample portal page" is showing events between various types of portlets. Its good to see integration with Google Gadgets, which I noticed originally (blog entry here) could not participate in inter portlet communication.  Now, I've been wondering why IBM has been delaying the release of WebSphere Portal 6.1? So I did a search on google to see if WebSphere Portal 6.1 would support it. Low and behold, there was a forum entry saying that current WebSphere Portal 6.1 Beta does.  Looking between the lines one would assume that just after the Portlet 2.0, specification is released we will see WebSphere Portal 6.1 become GA.

Tags   |  Comments 0

Thursday Jan 31, 2008

Java losing some of its mojo in enterprise development?


Over the last few months, I've seen a steady attention rise in scripting languages Python and Ruby, as well as in functional programming languages such as Haskell and Erlang. There are others but these in my eyes have the majority of attention at the moment besides of course the Microsoft languages C# etc. Scala, for the Java world, a multi-paradigm programming language is also gaining some attention.

Lets have a look at some of the characteristics of these languages.

Python was hailed by the TIOBE Programming Community Index as the programming language of 2007 based on its rise. Having spent some time with it, I'm not surprised. The language is compact and favors comprehension as well as certainty in solving a problem through providing less syntactic sugar to achieve an outcome.  Jython, Python written in Java, can be used to integrate easily with existing java classes.

Ruby, is probably most famous as the language used in Ruby on Rails(RoR) and is very popular with Startups and the Graphic Design community. Ruby provides great flexibility in its syntactic sugar to achieve programming outcomes, which I have always found interesting when RoR's philosophy has been Convention over Configuration. The gaining of simplicity here gives flexibility elsewhere. In the Java world there are so many frameworks now, which one to use is always an interesting question.

These scripting languages have enabled some great applications to be developed, as they are dynamic they are a lot slower then other languages. At this time they do not effectively utilise multi-core CPUs. Now this is where the Functional Languages have gained some steam recently, as people start to realise that we are more likely to see more cores in future CPUs as opposed to increased CPU power of each core. Even though some of these languages are quite old, we are seeing the rise of the likes of Haskell and Erlang.

Haskell is one of these languages that has grown from Academia as a product of more than twenty years of research. It is a purely functional  programing  language, that is it excludes destructive updates and identifiers are immutable eg  let x = 1 (can not be changed). It is different from the imperative Java programming style that most are used to and does require a good grasp of the type system to become productive. Yet it is gaining tracking in a number of quarters. This surprising blog entry, I found today, regarding a System Administrator using it in favor of Python and Perl for scripting.

The side effect of using functional languages, is that they are inherently capable of being parallelized, whola potential support for multi cores.

The functional language Erlang, got my attention, when Amazon announced Amazon SimpleDB which had followed shortly after the buzz surrounding CouchDB. Erlang is again a functional language that is focused on concurrent programming. It was originally designed at Ericsson to support distributed, fault-tolerant, soft-real-time and non-stop applicatons (lots of words for high availability). I experimented with the language myself, doing the Erlang tutorials, and liked what I saw. Getting used to tail recursive programming is interesting.

I suspect what we are seeing, is these languages being used to break previous paradigms of best practices as the nature of hardware evolves. They are great tools to have in one's arsenal to deliver innovative solutions. As these languages gain more attention span from enterprise developers, they will question why some of these capabilities do not exist with the current Java language. Indeed there appears to be a language feature race on with Microsoft based language, such as C# at the moment.

Has Java lost some of its MoJo in the Enterprise? Maybe a little, but there are so many good Java libraries and applications around that aid productivity and have been proven, that I feel the effort will be put in to continue to evolve the language. Often these libraries do not exist, at this time for the other languages.

I hope though, that as the Java language evolves, this will not be as a means to compete against C# but more so because it makes logical sense to do so! Scala, Jython are a few examples of languages that work well with Java.

Tags   |  Comments 1

Friday Dec 21, 2007

Predictions for 2008 using my del.icio.us tag cloud

Its that time of year, when writing about your predictions for 2008 is all the rage. I've been tagging some by others on del.icio.us with prediction2008.

I've included my current del.licio.us tags in descending order of importance. It highlights the areas that I have had an active interest in either for current work or for research of future activities. So i've used them as the subjects for my predictions for 2008.

SaaS

Software as a Service will continue to become mainstream , as skilled resources become harder to find, internet connectivity latency decreases with the corresponding increase in bandwidth capacity. Wall Street will be even more attracted to the SaaS recurring pricing models, such that it will provide a higher potential exit price for Venture Capital backed organisations. Thus driving high rates of entrepreneurship and innovation in the SaaS sector then in comparison to traditional on-premise software delivery companies.

Business

Will continue to see their core Information Technology assets as a cost of doing business and will treat it as a commodity component. IT Consultants will find new ways to work with business, that is more closely aligned to business innovation within their specific industry. Nothing that new here, but internal IT skills will become less IT technical and more analytics driven. Marketing departments will take on more responsibility for analytics and data warehousing to improve marketing ROI.

Local markets in the developed world will continue to become a deeper shade of "red", as competition increases, driving exploration of new markets for growth through volume and innovation in delivery and execution. 

Web2.0

Is a technical label, that has been assigned to represent a change of thinking regarding memes around a social and networked world. It has signaled the rise of the long tail, being that of the boutique network connected micro-economy. Organisations in 2008, will reevaluate their methods of engaging with the market, and the micro-economy, as the number of larger and mid tiered firms dissipate through M&As.

IBM

IBM will embrace cloud computing (eg blue cloud) but have difficulties in engaging with customers in this area; whilst it is still perceived internally as a hardware and people services company. Margins for resellers, will continue to dwindle (hardware and software) as IBM software sales, outside of SMB, finally exceed hardware sales and thus moves focus from hardware. IBM will continue to work on, but won't formulate wining strategies in 2008, to take market spend from Microsoft in the SMB software area. IBM's sales force in 2008, focused on on-premise engagement will have difficulties with the off-premise SaaS nature of cloud computing. In 2008, there will be some high profile success stories publicized for Blue Cloud.

SOA

Service Oriented Architecture will continue to drive new systems and rationalisation of existing within the larger enterprises. Adoption of the SOA Architecture Style within enterprises will increase. However, unless machine generated, WS-* style service adoption will decrease. Skilled IT Architects capable of service decomposition  between business services and technical services will be in short supply for 2008.

SOA will continue to drive the demand for new on-premise middleware products. A number of new products will emerge in 2008, possible based on SCA/SDO, that allow utilisation of multiple programming languages and development paradigms.

via:aqualung

Thanks Ric :) lots of great material. Think more will come, including lots of great riffs and conversations. In 2008, I predict Ric will be writing more blog entries. 

Development

The Art of Developing computer systems will start to influence education in the area of Computer Science and Software Engineering. Iterative agile development processes will continue to be favored over waterfall methodologies. Some procurement departments will explore contracts that allow iterative development methodologies, but this will still not be the norm in 2008. This disconnect between what developers do and what contracts state will continue.

There will be increased interest in scripting languages such as Python and Ruby and further exploration of languages or changes to existing languages to support parallel computing. Functional languages such as ErLang, Haskell and OCaml will gain more of the spotlight.

Google 

Google will continue to influence developers through its Google Code. Google SaaS based services will influence development approaches and continue to play havoc with administrators who favor closed firewalls and block external high use URLs. Google will utilise more personal profile data to improve search results and at the same time use it to increase Ad revenue from targeted advertising.

Smaller SMBs will gain trust in Google and really start to question the value/cost of maintaining on-premise infrastructure.

Collaboration

Social software will gain some traction in more forward thinking organisations but it will still be an enathma to command and control based management. New products will be developed that utilise analytics in conjunction with project management methodologies to form groups/teams for delivery of specific deliverables based on a continuously moving project plan (isn't this what we do anyway manually?).

Innovation


Business will seek innovation to be internally driven and not from vendors, but will struggle with out outside influence. Australia will invest heavily in building infrastructure to support exporting of innovation overseas.

 

Microsoft

Will recover the market position lost with WindowsVista . SaaS (or as they call it Software plus Services) will continue to attract media spotlight as Microsoft seeks to gain new revenue streams and move focus from on-premise software. Huge internal debates over this will continue with little leakages, every now and then, to the market over the 2008 year. Headlines may move from Google vs Microsoft to IBM vs Microsoft, if Blue Cloud is a success.

Architecture

IT architecture will be important in organisations, as an enabler of structure. Many more titles containing the term Architecture will evolve in the 2008 year. IT Architects (of whatever title) will continue to find new ways of explaining the value of this abstract thinking to business and further consolidation of this knowledge will occur on the internet, such as at IASA.

 

Blog

PR agencies will learn how to influence the blogosphere. The informal citizen journalist will continue to eat into the revenues of traditional print media. Blogging in conjunction with bookmarking will become the preferred means over google to find "trusted" content and advice.

Java 

This is the pinnacle year for Java, the programming language, in the enterprise world. As concurrent computing needs are accelerated through the multi-core focus of CPU vendors, it may be perceived that the effort to modify the Java language specifications is higher then the benefits gained by using other programming languages. SOA standards, such as SCA and SDO, are evolving to be language neutral, this will reduce the reliance on Java in enterprise middleware products.

 

Lotus Connections

This is an interesting product, that shows the possibilities of internet based software behind the firewall. The 2007 year saw, too many new products evolve from IBM in my view, thus there may be in 2008, a consolidation of products to compete against Microsoft Office Sharepoint Services in the SMB space. My blog receives a large number of hits for "sharepoint vs websphere portal" searches on google, so it wouldn't surprise me if Lotus Connections is rolled into WebSphere Portal Express for the SMB market.

Open Source

Will still be here at the end of 2008. Microsoft will continue to push new standards based around its technology stack. The next killer app may emerge if usability and visual issues can be addressed. Has Windows Vista opened the door for the Linux desktops? We'll see this time next year.


Tags   |  Comments 0