People and Technology

June 30, 2008

Collective Intelligence in Action

Don’t you hate it when you spend months (or years) working on a pet project / book / mad take over the world idea, then somebody comes out with something even better?

Yep, it’s just happened to me. Years working on the idea of the ‘Wisdom of Crowds’ (even prior to web 2.0 in the shape of Red-Piranha). Month’s working on a Masters Dissertation on applying Web 2 techniques to the Finance industry (pdf link). And somebody comes out and does it even better.

Not just better. But much much better.  The sort of better as in ‘If I had this earlier, I’d have just copied it and changed the words around a bit’. The book is available from Manning as ‘Collective Intelligence in Action‘. A free, first chapter (Understanding Collective Intelligence) is available here (pdf).

Collective Intelligence in Action

So what’s it about? We’ve all heard about the Wisdom of Crowds idea. But what if you need to actually implement it on your website? This book shows you how to (using both concepts and practical code, as well as the theory behind all of it that I was missing). It includes

  • Intelligent, learning search, using Lucene.
  • Extracting data from blogs using web-crawling.
  • Executing Real time feedback on facebook-like sites.
  • Scalable data-mining techniques to manage the torrent of information
  • Making personalised recommendations based on all of the information.

Disclaimer:Manning provided me with a free review copy of the book - but no strings attached. And , maybe if I’m nice enough to the Author (Satnam), I can persuade him to talk about making millions using JBoss Drools and Complex Event processing in the book.

March 13, 2008

Web2 with Java:Struts2, Spring MVC, Flex, JavaFX and Google Web Toolkit

Originally posted on the O’Reilly Books OnJava blog. 

My fellow Java Developers. Two years ago I wrote an article on ‘Web 2.0 and Enterprise Java - move over Struts‘ looking at what was likely to replace Struts 1 (then and now a de facto web standard). How did our predictions fare?

Remember that article (and this one) isn’t looking for technical best, but which is going to be a best investment of your time to learn (in a mercenary commercial sense). And if you’re deciding which to use in a project , which framework is going to be easiest to support in 5 or 10 years time?

Broadly speaking, the frameworks we talk about break into two types: those that treat the web as a set of pages, and those that treat the web as a set of components (think Visual Basic, Delphi or Oracle Forms act-a-likes).

So , what has changed in the last 2 years:

  1. The rise of Spring. Not only has it gone mainstream, but the Spring MVC, Spring Webflow and Spring-JavaServerFaces are very powerful and widely used web frameworks. A sign of how things have changed is that for Sruts 1 the Spring guys wrote the integration for the (then) bigger Struts framework. For Struts 2 , the integration was provided by the Struts community. With the forthcoming Spring 3 release the framework is increasing momentum; More annotations and less XML in Spring MVC; Rest Web Services out of the box, support for Dynamic languages like Groovy and Spring Webflow becoming a more ‘just use it where you need it’ solution.
  2. Adobe Flex and OpenLaszlo - Flash graphical interfaces on the Web, built using Java. I don’t think these will be *the* mainstream choice but I do think the will be more than a just a niche. And for design led companies, nothing else (not even Microsoft Silverlight) can come close in terms of a user ‘wow’ factor.
  3. JavaFX and Applets done right (Jim Weaver has a good article on this). More of a competitor to Adobe Flash as both are rich content in the browser using an easily obtainable plugin. JavaFX will appeal to developers because of it’s Java like syntax. I hope I’m wrong, but for rich web content, would you put your money on Sun (an Engineering led company) or Adobe (an almost apple-like design led one)?
  4. Frustration with JSF (Java Server Faces). For the last 3 years I’ve thought that ‘*this* is the year of JSF. I’m still waiting not because of lack of demand (as web apps become more complicated and use more Ajax they become more like the JSF component based model). It’s now uphill for JSF as I (and a lot of other Developers) have given up. I’m still waiting for the ‘EJB 3′ moment when JSF becomes more simple and more usable. Remember , we ‘re not talking about technically best, but which is going to be in widespread use.
  5. Google Web Toolkit (GWT). Looking at it one way , GWT is JSF done right - a component based web framework , but one that is fast and has a lot of community support. Even then it took me a long while to warm to GWT - I’ve bad memories of web-components that hide their internals (remember Microsoft Interdev 10 years ago?) . What got me over the hump was thinking of GWT as a compiler not to Assembly or bytecode , but to Javascript and HTML.

How has Struts 2 got on in the meantime? I’m not sure. Remember , Struts 2 is very different from Struts 1. Conceptually it’s very similar to Spring MVC (Simple Java Beans based with configuration); Slightly easier to learn and maybe slightly less powerful than Spring (although both are more than capable for most Enterprise web applications.

The ‘I’m not sure’ bit comes from two (non technical) factors:

  1. Struts 2 hasn’t achieved the massive Enterprise developer mind share that Struts 1 did. It’s a better framework, but it’s got more competition.
  2. If you’re using Spring in the middle tier, why not have one less framework and use Spring MVC (instead of Struts 2) in the presentation layer as well?

Back to the previous predictions , how did we get on?

Scenario 1: Adding Ajax to existing Struts Applications. Use AjaxAnywhere - closest to the approach taken in the article Sprinkle Some Ajax Magic into your Struts Web Application. Despite writing this article , I see the frameworks evolving rapidly to the point where you would only take such an approach for adding Ajax to ‘Legacy’ applications.

How did we do? I’d maybe widen the choice of Ajax Libraries (to include DWR , Dojo, Prototype and others) but the basic idea of evolving rather than replacing your Struts 1 app still holds true.

Scenario 2: Need Ajax Now for a new Java Application. Use Appfuse as it gives Struts, Ajax (with DWR) and the possiblity of JSF integration now, all ‘out of the box’.

How did we do? I still recommend AppFuse, as it combines (name-your-web-framework) with Spring Hibernate(and other ORM) and Maven. However I’d now tend towards choosing Spring MVC (unless you’ve a reason to use Spring 2), given that you’re probably already using Spring in the mid tier.

Scenario 3: Medium Term. Use an implementation of JSF (either MyFaces or whatever Appfuse promotes - probably Struts Shale). Struts Shale (JSF) has so far released only ‘overnight’ builds. Apache MyFaces (JSF) tool support and Ajax capabilities are likely to improve over time. Both Struts-Shale and MyFaces are likely to play well with AppFuse , making it a safe bet for investing your time checking it out.

How did we do? Struts2 and Spring both still give you migration route to JSF. But do you want it?

So out of the creative ajax-induced chaos of 2 years ago, I see 4 or 5 clear choices in Enterprise web frameworks: Struts 2 (as a follow on from Struts 1). Spring MVC, due to the huge mindshare Spring has on the mid-tier. Google Web Toolkit , both as a natural home of frustrated JSF developers , and because who’s going to argue with the people who gave us maps and mail? Flex, because Flash apps done well just look so good. And JavaFX, because Applets-haven’t-gone-away-you-know.

In my view, we would have been delighted to have any of these framworks 5 years ago. And each (for different reasons) is likely still to be popular in 5 years time. Your missions now is to pick the one that suits your project needs.

February 27, 2008

Irish Web Technologies Conference - IWTC- 2008

Filed under: EnterpriseWeb2.0, apollo, event — Paul Browne @ 6:48 am

I’ve just been to the opening session of the Irish Web Technologies Conference 2008. The one at which Fergus Burns tore into Irish Govenment Support (or lack of it) for the Web startup sector.

To be fair, it’s probably nothing that he hasn’t already said face to face, but if the rest of the conference continues at this pace it’s going to be a do-not-miss event. A full listing of the speakers at the event are here. I’m hoping to see the presentations of Sean Hanley from Exoftware, John Ryan, CEO of SugarCRM, Bill de hOra of Newbay and Jason Barry of DeCare Systems Ireland.

Supporting the Irish Technology Community

Disclaimer: Barry from Irish Dev gave us complementary tickets to the evening event, on the basis that we spoke at the recent Irish Java Conference.

And apologies to Joe Drumgoole for having to walk out mid sentence. The words ‘Web 1 is about broadcast, Web 2 is about communication’ followed me out of the hall.

August 23, 2007

OpenLaszlo - Cool Flash for Clunky Java people

Flash is created by cool people who wear black and use Apple Macs. If you’re not sure as to what flash is, the chances are that if you’ve seen something on the web recently that made you go ‘wow’ for it’s coolness, then it was built using Adobe Flash.

To add substance to this froth Java people can use Flash (instead of normal web pages) to create cool pages that do useful stuff. For example Google Analytics uses Java and Flash to create a stunning User Interface. Even though Ajax and DHTML give you a lot of interactivity on your web pages, Flash goes one better at the small cost of not being as good for SEO and requiring a plugin (that most people already have installed).

So, what are you to do if you want to combine the coolness of Flash with the heavy lifting of Enterprise Java on the Server? The two main options are:

  1. Flex from Adobe is one way for Java people to create flash. The core toolkit is free, but the editor costs about $500 and that’s before you pay for using it on your servers. More details in the previous blogposts on Adobe Apollo and Adobe Flex.
  2. Open Laszlo Project is open source all the way, but does’t have a drag and drop editor (i.e. it’s more technical than graphical). Still , it allows you to create some cool effects , such as this Flash Clock.

Which framework will win out? I don’t know , and that’s before you even consider the Standard Java Web Frameworks such as Struts 2.

More (In progess) notes on Open Java and Flash are on the wiki. In an impulse buy , I bought the OpenLaszlo in Action yesterday. As an EBook , with rebate (coupon LZ35607 before the end of August) it costs about 10 Euro. Initial impressions are good (both for the book and Open Laszlo) , but I’m still working my way through it (so don’t quote me on it).

Disclaimer: I get a rebate if you buy the book from Amazon, but not if you buy the (Cheaper) E-Book direct from Manning. I bought the E-Book this time, but have got free books from Manning in the past for having reviewed (as yet unpublished) JBoss items.

July 27, 2007

Moaning about Struts 1 won’t help you move to Struts 2

(Struts is one of the most popular way for companies to build their websites. This was to be posted on Bill moaning about Struts 1 problems, but Bill’s blog isn’t accepting comments at the moment.)

Struts 2 Logo

Bill,

I hate to spoil your Struts 1 party , but most of these problems have been known for some time (and the Struts team would be the first to articulate them). Struts 2 is a huge improvement and , as you mention, there are good alternatives out there (including Spring MVC).

The problem is that migration from Struts 1 to (for example) Struts 2 , while easy, still carries a risk for the project in question. It can be hard to convince the business decision maker when all they see is pain (’so you’re going to break the existing site?‘) for very little gain (’where’s the immediate payback of upgrading?‘).

My advice is to stick with Struts 1 on existing projects. Use Struts 2 (or even better, Appfuse) on new projects. And for new code on existing projects, consider running them both side by side. They’re all tried and tested solutions.

Paul

May 13, 2007

Business Rules (Drools), Workflow (jBPM) and Seam - anybody want a training session?

Update: The presentation to the Irish Java Technologies Conference: Life and Death Workflow, using JBoss jBPM is partly based on this training session. (Link to Slides)

We’ve given Enterprise Java Training, Struts 2 Training (the most widely used Java-Web framework), and now it’s the turn of JBoss Rules (Drools) , Workflow (jBPM) and Seam. A lot of the material is coming from the forthcoming Masters Dissertation on Enterprise Web 2.0.

The course (summary below) is a private session. If there’s enough interest I’ll setup a public training session, or cut it back to 1 hour and do it as a ‘free’ intro session. If you can’t wait for that, Mark Proctor’s blog has a lot of useful rules information, and Tim Shadel has the pdf of a presentation that he gave in Phoenix Arizon on his blog.

Knowledge and Process Management

JBoss Rules, jBPM and Seam

Executive Briefing

Description: Success or failure in your business depends on dealing with information faster and better than your competitors. This briefing shows you how the JBoss Business Stack (Rules , jBPM and Seam) can do this and how to apply it to your organisation. Crucially, the briefing shows you when not to use these and details the alternative approaches.

The briefing will give delegates an overview of JBoss Rules within a web / enterprise development environment, how to architect an distribute rules within multi-tier applications and how to link these components with existing sources of information using Enterprise Application Integration (EAI).

Audience: This Briefing is suitable for IT Managers and Directors, IT project managers and technical staff who need an insight into the latest JBoss technologies and business processes, and business managers who need to be aware of the new application models and to give buy-in and commitment to applications developed within it.

Duration: Half-day

Objectives: On completion of this Briefing, delegates will:

  • Understand the benefits JBoss technologies offers your business and the key areas where it should be used.
  • Know how to successfully use JBoss Rules, jBPM and Seam with new and existing systems and technologies, including the use of Enterprise Application Integration (EAI).
  • Be able to boost projects using pre-built components and frameworks and be able to choose the right one for their needs.
  • Be aware of the main precepts of good application design within the Java component framework, as well as knowing the main Enterprise Java architecture components, terminology and acronyms and their interaction.
  • Understand how end-to-end applications are built using the JBoss frameworks (Rules, jBPM, Seam) and appreciate their organisational impact.

Presenter Biography

Paul Browne has 13 years experience delivering IT Projects in the Financial, IT/ Telecoms, Pharmaceutical and Public sectors. An author on JBoss Rules for O’Reilly Books, he has delivered courses for Limerick Institute of Technology, Siemens, Dell, Trigraph and IACT. Holding a Degree in Business from UUC, he is awaiting conferral of an Msc. in Advanced Software Engineering from UCD.

Briefing Content

Introduction and Problem Space

  • Delegate introduction
  • Trainer introduction
  • Course introduction
  • The problem we are trying to solve
  • Who is JBoss
  • 3 Tier Applications
  • What is a rule engine
  • Alternatives using Java
  • Alternatives to Rules
  • Alternative Rule Engines
  • Section Summary / Intro to next section

Rule Engine overview

    • Business Rules (examples)
    • Sample Business Uses
    • If then statements - can we do better?
    • Rete Algorithm
    • Forward and Backward Chaining
    • Domain Specific Languages (DSL)
    • Decision Tables (what the user sees)
    • Decision Tables (for the Developer)
    • Rule Editors
    • JBoss IDE (Red Hat Tools)
    • Advanced Rule Language
    • System Development Roles
    • Section Summary / Intro to next section

    Integration and Deployment

    • Web environment
    • 3 Tier system
    • Integration with Spring
    • Integration with EJB
    • What is workflow
    • What is jBPM
    • What is Seam
    • Seam and JSF
    • Seam and jBPM
    • Drools.Net
    • Section Summary
    • Course Summary and Feedback

Business Rules (Drools), Workflow (jBPM) and Seam - anybody want a training session?

We’ve given Enterprise Java Training, Struts 2 Training (the most widely used Java-Web framework), and now it’s the turn of JBoss Rules (Drools) , Workflow (jBPM) and Seam. A lot of the material is coming from the forthcoming Masters Dissertation on Enterprise Web 2.0:

The course (summary below) is a private session. If there’s enough interest I’ll setup a public training session, or cut it back to 1 hour and do it as a ‘free’ intro session.

If you can’t wait for that, Mark Proctor’s blog has a lot of useful rules information, and Tim Shadel has the pdf of a presentation that he gave in Phoenix Arizon on his blog.

JBoss Rules Logo

Knowledge and Process Management

JBoss Rules, jBPM and Seam

Executive Briefing

Description:
S
uccess or failure in your business depends on dealing with information faster and better than your competitors. This briefing shows you how the JBoss Business Stack (Rules , jBPM and Seam) can do this and how to apply it to your organisation. Crucially, the briefing shows you when not to use these and details the alternative approaches.


The briefing will give delegates an overview of JBoss Rules within a web / enterprise development environment, how to architect an distribute rules within multi-tier applications and how to link these components with existing sources of information using Enterprise Application Integration (EAI).

Audience:
This Briefing is suitable for IT Managers and Directors, IT project managers and technical staff who need an insight into the latest JBoss technologies and business processes, and business managers who need to be aware of the new application models and to give buy-in and commitment to applications developed within it.

Duration:
Half-day

Objectives:
On completion of this Briefing, delegates will:

  • Understand the benefits JBoss technologies offers your business and the key areas where it should be used.



  • Know how to successfully use JBoss Rules, jBPM and Seam with new and existing systems and technologies, including the use of Enterprise Application Integration (EAI).



  • Be able to boost projects using pre-built components and frameworks and be able to choose the right one for their needs.

  • Be aware of the main precepts of good application design within the Java component framework, as well as knowing the main Enterprise Java architecture components, terminology and acronyms and their interaction.

  • Understand how end-to-end applications are built using the JBoss frameworks (Rules, jBPM, Seam) and appreciate their organisational impact.

Presenter Biography

Paul Browne has 13 years experience delivering IT Projects in the Financial, IT/ Telecoms, Pharmaceutical and Public sectors. An author on JBoss Rules for O’Reilly Books, he has delivered courses for Limerick Institute of Technology, Siemens, Dell, Trigraph and IACT. Holding a Degree in Business from UUC, he is awaiting conferral of an Msc. in Advanced Software Engineering from UCD.

Briefing Content

Introduction and Problem Space

  • Delegate introduction

  • Trainer introduction

  • Course introduction

  • The problem we are trying to solve

  • Who is JBoss

  • 3 Tier Applications

  • What is a rule engine

  • Alternatives using Java

  • Alternatives to Rules

  • Alternative Rule Engines

  • Section Summary / Intro to next section

Rule Engine overview

  • Business Rules (examples)

  • Sample Business Uses

  • If then statements – can we do better?

  • Rete Algorithm

  • Forward and Backward Chaining

  • Domain Specific Languages (DSL)

  • Decision Tables (what the user sees)

  • Decision Tables (for the Developer)

  • Rule Editors

  • JBoss IDE (Red Hat Tools)

  • Advanced Rule Language

  • System Development Roles

  • Section Summary / Intro to next section

Integration and Deployment

  • Web environment

  • 3 Tier system

  • Integration with Spring

  • Integration with EJB

  • What is workflow

  • What is jBPM

  • What is Seam

  • Seam and JSF

  • Seam and jBPM

  • Drools.Net

  • Section Summary

  • Course Summary and Feedback

April 3, 2007

Enterprise Web 2 Book - latest chapters (workflow,rules,search)

Filed under: BPM, EnterpriseWeb2.0, RedPiranha, architecture, enterprise java, enterprise web 2.0, web2 — Paul Browne @ 6:33 am

This an in progress draft of ‘Financial knowledge capture using Rules , Workflow, Search and Enterprise Web 2.0‘, complimenting the Red-Piranha Open Software project.


Chapter 1 - Introduction - notes

Chapter 2 - Problem Domain - good draft

Chapter 3 - Red - Piranha Framework - good draft

Chapter 4 - Technical Overview - draft [new]

Chapter 5 - Financial Workflow - draft [new]

Chapter 6 - Financial Calculator and Business Rules - draft [new]

Chapter 7 - Adaptive Search - good draft [new]

Chapter 8 - Future Work and Conclusion - notes

Chapter 9 - Appendices - notes


March 30, 2007

Barcamp Presentation Summary - Enterprise Web 2.0

Filed under: EnterpriseWeb2.0, Events, Web 2.0, Web2Ireland, barcamp, web2 — Paul Browne @ 11:47 am

A quick summary of the Barcamp talk on Enterprise Web 2

Until now, innovation has stopped at the corporate firewall, with most of the Web 2 activity taking place in the personal and consumer space. With blogs (slowly) coming to the attention of the business mainstream, what is next to be taken up? Why should large companies bother? How will they implement it, or is Enterprise Web 2 just a fancy name for stuff they are doing anyway? More importantly, will anybody make a living out of it?

Any thoughts / comments / suggestions on what people what like to see?

Barcamp Dublin Logo

February 2, 2007

Masters / Msc in Web 2?

This post was originally titled ‘Readers Wives Questions’

Mike from Galway writes …

I read your blog regularly so I thought you might have
some insight to a specific topic i’m currently researching in GMIT,
Galway. My current research title is “An Evaluation of the Uses of
Object-Oriented Web Application Frameworks in the Irish Services
Sector”. This basically involves examining the usages of web
technology, services and SOA in service companies, such as [name]
Insurance

I’m in the process of doing a masters myself and I still haven’t got a final title for the dissertation! There are a couple of areas that I think are worth covering:

  • Does innovation stop at the firewall? How are the raft of publically available Web2 / SOA innovations going to be adopted by business?
  • Is SOA too complicated? Why has Google moved from SOAP to a more simple (but still XML-Web based) API?
  • Is Security scaring people off? Do current security solutions (based on simple human based web interactions) cut it with the more complex machine based transactions?
  • Is it a ‘Winner Takes all’? Connecting to a web service takes time and (some) money. Will there be a series of ‘mini microsofts’ in each sector, with nobody willing to (spend money) to connect to the company in 2nd place?
  • Do Business people know (or need to know) what SOA is? What is the ‘killer application’ that we have them knocking at the IT department’s door to do an implementation.
  • Are the skills widely available to do SOA / Web Services implementations? What are the preferred technologies to use?

Anybody else have any suggestions? I’m guessing that Mike would be very interested in hearing from Irish companies currently doing an SOA implementation. Email me at PaulB [at-sign] firstpartners.net , and I’ll pass any contact details onto him. Otherwise, just leave a comment!

February 1, 2007

What is Adobe Apollo?

Filed under: Ajax, EnterpriseWeb2.0, Javascript, Web 2.0, Web2Ireland, adobe, apollo, architecture, flash, flex — Paul Browne @ 9:50 am

Update: Apollo has since been rename AIR - Adobe Integrated Runtime. Personally, I Preferred the ‘Flex’ name.
What is Adobe Apollo? You know, Adobe , the people that give us the PDF reader.
Is Apollo the new Java for this Decade? Will it replace Atlas and .Net? Is Apollo an answer to problems we have in building web sites that all users can see? Will Apollo replace Ajax , Flash and plain vanilla HTML? Does it play well with Ruby and JRuby?

apollo.jpg

I don’t know. And neither does the Financial Times Tech Blog. But it does say

Adobe (and incidentally eBay) looks like it has a winner - if only the company can find a better way to explain what Apollo does.

I do know that Apollo may fix the pain of cross-platform web development. So, I’m over to the Adobe Labs site to find out more. Ajaxian has the demo. Mike Chambers (Adobe product development) has the slides. According to Mike:

Apollo is a cross-operating system runtime that allows developers to leverage their existing web development skills (Flash, Flex, HTML, Ajax) to build and deploy desktop RIA’s.

Translation into plain English:Powerful web pages,easy to build , loads of pretty colours. If it’s delivered as promised

January 31, 2007

Dear Bruce Eckel : Hybrid Java, Google Web Toolkit and Adobe Flex

Dear Bruce,

First up, thanks for the book. Yes I’m saying thank-you about 8 years too late. ‘Thinking in Java‘ is what got me going in the language and in my mind is one of the best Java books written (sorry Tim). Giving it away free only cemented your reputation as the Bono of the Java world. OK, Bono without the Guitar, the Stetson and with a couple of overloaded constructors thrown in, but a man of stature nonetheless.

Thinking in Java Front Cover

Secondly, I’ll forgive your flirtations with Python, on the basis that I’ve been having an affair myself with JRuby. I now understand the pain that you’ve been having at home, the endless repetitive arguments to get simple things done, and the temptation of a newer, younger, more flexible model.

So , I think you’re onto something here in your blogpost. I can feel the pain, the need to deliver Rich clients to users over the web. I think that Ruby / Google Web Toolkit / Struts 2 / Name your web toolkit has further to go than you may think , but eventually these ‘heroic efforts‘ (nice quote) will run out of steam. On the basis of your recommendation alone I’m willing to look at Adobe Flex, but I’m not sure if this is going to solve all the problems.

Now , a lot of us Java guys don’t like change (and as if you needed proof, just look at the comments on this O’Reilly blogpost on the Google API’s). All the same , we have a problem that gets worse every passing year. 6 Years ago we could have been sure that 90% of web sites were running Internet Explorer 4. Now we’ve got IE, Firefox, Safari (in all their different versions) as well as an explosion of mobile devices. The Windows Vista launch is only going to fragment things further with yet another platform to support.

No one web solution is going to display the same in all of these browsers. We’re not going to get a single solution from Microsoft / Sun / Adobe that everybody from developer to my Granny is going to install. So we’re going to have to take the ‘least bad’ route - something that looks great, but degrades gracefully to standard HTML on less capable devices. Excuse my ignorance, but I don’t know (yet) if Flex does this.

Yes Hybridizing open source Java is the starting point for the solution. Unfortunately we’ve a long way to go yet, and Flex is perhaps only inspiration along the way.

Yours sincerely

Paul

January 23, 2007

Java and those pesky Google APIs

Recently one or two people disagreed with what I had to say about the impact that the Google, Amazon (and other) API’s will have on Java. Considering the ratio of positive to negative comments (about 3 for and 30 violently against), I obviously need to express myself in a clearer way. The link to the original post is at the end of this article, read on before you consider flaming me.

Amazon Web Services Logo

So , deep breath , here goes.

Compare the the way you develop now , with the way you built software 10 years ago. Do you remember having to manage your own memory? Or the pain of trying to deploy your software on different machines without a JVM? Or the hassle of trying to write distributed software using Corba? Or using a text editor instead of the fine IDE’s (Eclipse, Netbeans or JDeveloper - take your choice) that we have today? Would you consider building your software without a tool like Ant or Maven?

(Shudder). Things have moved on ,and I am very glad they have. Likewise, the way we develop 10 years into the future will be very different. I don’t know what the future will look like, but here’s a simple guess.

The biggest trend today is the move from software running on your computer , to software being delivered over the web. I’m not talking about the buzzwords being thrown about regarding ‘Service Orientated Architecture’ or ‘Enterprise Service Bus’. I’m talking about simple API’s that are available for use over the web today. Like the API’s and products from Google - including their Documents and Spreadsheets, and their Authentication service.

‘Everything should be made as simple as possible, but not one bit simpler’ - Albert Einstein

‘You Ain’t Gonna Need it’ - Anon, XP Mantra

As a good Agile Developer you’d probably agree with these quotes. But what if the most simple way of doing things was not to develop in Java at all? Most people don’t build their own operating system - they use Linux, Windows or OS X instead. Most people don’t write their own Java Server - they use Tomcat, JBoss or your server of choice. The pattern is the same. A small, dedicated core of developers builds the product, and the rest of us say ‘thank you very much’ and use it to get things done.

This range of ‘off the shelf’ solutions is increasing all the time , even before the online services arrived on the scene. As a Java developer , you’ve said ‘thank you’ , downloaded the latest version and integrated it into your solution. The time you save means you deliver other cool features instead. Java is very good at this ‘download and integrate’ process - not only is it a key benefit of Object Orientated Software, but Java has the widest range of solutions available (if you don’t believe me , just check out Sourceforge).

Java can also let us build our solutions (either partly or fully) around the online API’s. Java has great networking and XML handling ability already. In time this will become as normal as the idea of using a JVM. Great - we use these API’s pretty much like we do libraries today, and we can continue developing pretty much as before, right?

Wrong.

Remember, what is the most simple way of doing things? What if the most simple way of doing things was not to use Java but to use a more simple language (like Ruby or PHP) instead? Until now there were a couple of advantages that Java had over these ’simple’ (and that’s a compliment) languages. When using online API’s these advantages disappear, or worse, become a liability.

  • Scalability and Robustness. Enterprise Java is massively scalable (it’s one of the reasons for it’s complexity). But can even you outscale Google?
  • Security. Enterprises haven’t (yet) learned to trust the security of online applications. This trust will be hard earned over time. But already you can make the argument that you data is safer with Google / Amazon / other service provider than on your average virus-ridden home PC.
  • Language Ties. To use the Java libraries you needed a JVM somewhere in your solution. Once you had a JVM , you might as well write your own solution in Java. But when the product you are extending is hosted elsewhere, you are free to code in the (most simple) language of your choice.
  • Always on. As long as you have a connection to the web, your programs can use the API’s. Scripting languages like Ruby and Python can claim to be even more portable. Not only can they run natively in most environments, they can also be deployed via a JVM if that is your choice (under the guise of JRuby and Jython)
  • Features. Need a feature that you don’t have in your scripting language? Just borrow it from Java by running in the JVM. How can Java win a ‘features arms race’ against that?

So do we face a form of developer apartheid, where a ‘hard core’ of Java Experts develop web API’s that the rest of us use via scripts? Let me know what you think. Like the original blogpost said, it may not be the end of Java, but perhaps the end of Java as we know it.

January 18, 2007

Google Spreadsheets Mean the end of Java

Or to be more accurate ‘Google Spreadsheets mean the end of Java as we know it’.
Google Spreadsheets Logo
Think about this. Who pays your wages Mr Java-Developer-who-has-just-had-a-couple-of-years-at-the-top-of-the-pile? Clients, or if you’re in a larger organisation , the business folks (i.e.’internal’ clients). Do you think any of them care about Java? Do any of them know what Java is? All they want is to get things done, quickly , and with as few mistakes as possible.

These business people would be happy to run their organisations on Spreadsheets. Do you remember the cartoon where Dilbert convinced the pointy haired boss that he could fly the plane using Excel? There’s more than a element of truth to this. I know of at least one US Fortune 100 company that (until recently) conducted most of it’s operations on little more than Microsoft Office and duct-tape. It worked, not very well, but it worked.

Until now , the next line would be ‘Excel (or any other type of Spreadsheet) is not secure / scalable / sharable / not web friendly’. That was until Google launched their Docs and Speadsheets. It’s an online version of Office with some spreadsheet functionality. Play with it a bit and you’ll see that there’s plenty missing. But this being Google , I’m willing to put good money on

  • (a) new features rolled out (think steamroller) and
  • (b) These Spreadsheets being massivly scalable / secure / sharable.

This being Google, there is also an API (developer page here). It’s got massive holes in it (e.g. you can’t yet use it to create a new spreadsheet). But when Microsoft bring out their version of online spreadsheets (and they will) not only will they clone the Google API (to get market share), they’ll need to go one further and introduce new features / remove the usage restrictions in order to compete.

So, secure, scalable, sharble online spreadsheets are here to stay. So lets take a look at Mr. (or Ms.) Pointy haired boss thinking about their new project:

  1. Hmm, I think we need to be able to gather which health plans our employees are enrolled in.
  2. OK, I’ll throw together a spreadsheet to show people what I want
  3. Before I’ll give to our friendly Java developer and let him ‘do’ a website from it.
    Soon I’ll just share this on Google.
  4. Great , Loads of people are now using it, I’ll just the (Ruby / PHP / Insert other language here) guy to add one or two extra features.
  5. Most Excellent. Why don’t we spin this off as a Web 2 company and sell it to EBay??

There you have it, Massively scalable , Highly secure websites (see Google Authentication API), without needing to know anything about EJB, JMX , JBoss, JDBC or any of the hard won knowledge that us Enterprise Java Developers have built up over the last 7-8 years. I’m exaggerating, but not much.

What do you think? Is Enterprise Java dead, or is Web 2 just another boost and a slightly different way of doing things for us Java people?

Other Java Posts from Technology in Plain English

Some other notes:

This article was originally published on the O’Reilly books OnJava Website.

August 21, 2006

Business Process Management is Service Orientated Architectures Killer Application

Filed under: Architect, BPM, Business, EnterpriseWeb2.0, Knowledge Management, Process, RedPiranha, SOA, rp — Paul Browne @ 10:32 pm
Ismael Ghalimi has put it in a nutshell:

BPM is Soaps Killer Application

  • BPM or Business Process Management , is the art / science of capturing what your staff actually do in an IT system (and hopefully help them do their job better in the process).
  • SOA or Service Orientated Architecture is designing your system as a set of endpoints (e.g. Login, get bank balance, transfer money, logout). Most systems already have this functionality, although maybe not clearly laid out.

Ismael goes into more detail , but the idea is that BPM (think Visio Diagram) allows you to draw your workflow. Each step on the workflow is carried out put an action / endpoint provided by some system (using the SOA type design).

August 19, 2006

25,000 People Download Mans Brain from Internet

Yes, it’s incredible , but true. Red Piranha is everything (well , not exactly everything) that I’ve learnt in 7 years of Java consulting, all wrapped up in a nice easy to go bundle. It’s Enterprise software that gets knowledge out of people’s heads and into a PC (no , it’s not as painful as it sounds!).
Red Piranha Fish Logo

I hadn’t checked the stats for a while , so I’m astonished to learn that 25,000 people have downloaded a copy from sourceforge. What’s more amazing is that these downloads are for version 1 - a sort of ‘mini Google’. As I write this post the latest (beta) version is being made available to developers. This moves it firmly into the Enterprise Web 2.0 space, adding workflow, rules and rich internet application capabilities (including Ajax and mashups) - more on this blogpost.

By the way , if you’re looking for more information on Enterprise Web 2.0 , you can check out Jerry Bowles blog on this area.

July 31, 2006

What is this barcamp thing anyway?

Derek Organ is brave enough to ask the question below about the Barcamp Ireland unconference. He’s deeply involved with Web 2.0 startup 1time.ie, so we know he’s not thick! I’m writing this post, as Enterprise Ireland recently posted an invite to everybody that was at the Web 2 Ireland get together, and I can just picture the people there scratching their heads and wondering ‘What is this Barcamp thing anway?‘.

Dereks’ Question:

I’ve never been to one of these events but I’d love to go there and show off our own web 2.0 product and also see what other people are at in ireland. I’m struggling at the moment though to figure out exactly how the the day will be formated. As in who talks, organizes etc? I’m sure they work but i wonder could anyone share there experience if they have been to one. What usually happens?

So, below are the answers the top questions I had before attending. Yes, the answers are strange, but yes, the whole thing seems to work.

1) Where is the event going to be held? At the time of writing , it’s going to be in Dublin, Cork, Galway or Waterford. Yes, it makes it slightly difficult to book accomadation, but hopefully a consensus will be arrived at soon. In general , Barcamp is dependant on people ‘donating’ a place to meetup. For example , last Octobers Techcamp Ireland was held in the Northside Civic Centre , Dublin.
2) When is the event on? This appears to be a little clearer, with current opinion favouring Saturday the 23rd September.

3) Who should attend? Anybody with a passion for the uses of technology - not just geeks in the traditional sense of the word, but people who can string two sentences together and still get excited about new possibilities.
4) How do I get invited? You invite yourself. Go to this page on the Barcamp site , and add your name to the list (click on the ‘edit page’ button on the top left). Yes it’s one of those web pages that everybody and anybody can edit (a wiki). In exchange for you being trusted to change the page, please don’t go mad with it.

5) How do I get in touch with the organiser? The organiser is you. I understand this may come as a bit of a shock, but at least you have about 30 other people (at the last count) to help you out. The wiki (see point 4) is what makes it all come together - the more you put in, the more you get out of it.

6) What will people be talking about? Anything that interests you. The current list is on the wiki, and first timers are actively encouraged to sign up to speak - not as a sales pitch, but if you genuinely think you have something useful to share.

If you’re looking for more information, you could do worse than check out the people that have already blogged about the event:

And by way of apology to Derek for damning him with faint praise , here is his company logo - well worth checking out.

onetime logo

July 22, 2006

Anybody up for BarCamp Ireland?

Filed under: Ajax, Dublin, EnterpriseWeb2.0, Events, Networks, People, Web, Web 2.0, Web2Ireland, barcamp, galway, meetup, techcamp, wiki — Paul Browne @ 8:07 am
It’s been a while (9 months already) since TechCamp Ireland. Just when I was thinking of ‘when is the next one’ up pops this post on Web2Ireland. (Hint: If the previous sentence just lost you , imagine an (almost) self-organising event where everybody just turns up and makes an ‘unconfernece’ happen.
For more information , check out the BarCamp Ireland page. Early details are sketchy, but it’s pencilled in for the 23rd September , possibly Cork , Galway or Dublin. Techcamp covered everything from Ajax to Web 2.0 and every thing in between (podcasting , Digital rights, user generated content) , so expect the same and more besides.

If you’re not quite sure what Barcamp is , some useful links:

July 20, 2006

JRuby - Web 2.0 in the Enterprise Java world

On a recent project , the choice was between Enterprise Java (using frameworks such as DWR and Struts) , or Oracle Forms. The newest latest Java technology , versus a 15 year old technology that Oracle is comitted to phasing out (and moving to ADF / Oracle fusion). No contest , you think , until you hear that the decision was made (and rightly so) to us Oracle Forms.

‘What?!’ I hear you say - how could this happen? The project in question was fairly simple - get information and store it in a database. The problem is , despite being mainstream for the last 6 years, there is no standard, easy ‘drag and drop’ method of doing these applications in Java. C# does it in Visual Studio. Oracle does it with Forms. With Java (and despite having doing 10 or so of these projects), there is still too much plumbing that the developer needs to know.

I’m expecting a deluge of ‘have you tried project X’ on this post. And yes, I expect that an Eclipse based tool will probably fill the gap. But for these simple applications , there is no standard way of doing this (standard being a solution that dominates the market in the way Struts did the Web App framework space, until recently). But we’ve been waiting 6 long years!

ruby on rails logo

All of which brings me to Ruby. Ruby on Rails’ sweet spot is exactly these kind of simple, ajax enabled , no frills ‘get info from web and store it on database’ applications. Enterprise Java’s sweet spot is the heavy lifting workflow , Rules , Calculations, Integration with Legacy and other systems , web services and basically anything to do with Business logic. The two are a perfect complement to each other, which is why the news that JRuby now runs Ruby on Rails is especially interesting.

JRuby is a version of Ruby that runs in the Standard Java Virtual Machine (JVM). It means that (1) You don’t have to install Ruby, which might meet resistance in a corporate environment. It also means (2) that all the methods you have available in Java you have available in Ruby. The O’Reilly Ruby site and this Javaworld Article are good places to start learning more about Ruby and linking it into Java.

July 13, 2006

Java Meetup in the Virtual Dublin Pub

Java Meetup in the Virtual Dublin Pub

By Paul Browne

Did you want to go to the recent Java Meetup (also here) but couldn’t make it? Were you washing your hair or doing your nails? Perhaps you were stuck at the other end of the country, (or some other country!)

So , for all you people who find it difficult to make it every month, we’re pleased to announce the Java Meetup in the Virtual Irish Pub at 7.30pm on Tuesday 25th July. We’ll be talking about ‘What technologies should I be learning in the next 12 months?‘. See the drama unfold - Will the server take the strain? Will there be more than one person there?

Stephen has already blogged about it , so that makes two. Thanks also to John for the original idea, Jakub for all the hard work in the getting the (real) Dublin Java Meetup to this stage, and Donal for the ‘try out everything before the day’ advice!
Seeing as we’re spreading our wings, we may even invite the .Net, PHP and Ruby guys (after all , enough of them turn up at the Java events !)
the quiet man

Update: The Virtual Pub is now live (here).

Newer Posts »

Powered by WordPress