Groovy DSL

The gap between language-driven requirements and code is getting smaller, but for some reason it is taking us all a while to realise that programming languages have to become more readable. If you look a piece of any code, you will dereive things that you understand. If you remove all that you understand from the program and paste it in another doc, the chances are you will have (more of less) a description of what the code is doing, that you (and others) can understand.
Continue reading

DroidDraw

droid draw

The excellent DroidDraw is now available as standalone application (Linux included!). Java programmers may sniff, but the history and evolution of web development is ongoing creation of accessible tools for people to build on the web. It doesn’t pretend to be anything other than a basic android application designer. If you want to do something more complex, then try more heavyweight method.

droid draw

Flash by name …

Who are the most insecure developers from a QA point of view? Flash developers without a doubt. This is mostly down to fact they know testers are disnterested with how pretty something looks – site style and look is important, but that is not an area of testing that raises many issues (mainly compromises to design or user flow requirements, if they exist on flash projects – they rarely do). Flash developers came primarily from design backgrounds, not programming and therein lies problem. The reaction of a flash developer to functional issues is stress and indignation – a very temperamental artist reaction in fact.

Any website done in flash can be done with Java, or simply javascripts/jQuery. But that would require a programmer mindset. Adobe Flex/Air has generated a new breed of flash developer that has more code competence, but still the same paranoia exists. This is a new-ish area to formal QA, but it will be all the better for it. Once flash development world acknowledges it cant live in its own walled garden, flash based sites will generally improve. Presently, if I come across a pure flash based site, I immediately switch to HTML versions, and if not available I will move on to another site. It doesnt matter how good it looks, to me flash sites always have the code equivalent of a huge band-aid to hold the fucntionality together. And it doesnt have to be that way, as long as flash development is approached with proper project management and development principles.

Code is still ultimately 1’s and 0’s – you can try and reinvent the software engineering rules, but ultimately it will bite you on your collective UI behinds.

Adobe carry the MS torch

I have come to conclusion there is a curse surrounding project developed in Adobe Air/Flex. Developers in this area have usually come from Flash background, and no matter how expert they are, they struggle to resolve issues. Adobe has provided a very good platform to develop prototypes very quickly. This is part of the problem – they look too good too soon. Good for a company just concerned about revenue in the next quarter, as it is easier to sell. Bad news for the project team who will see a series of regressed issues that seem to pop out of nowhere. Largely Adobe Flex/Air is not a decision made by the technology department – it has been sold to someone higher up the chain. Adobe have done well in their market – holding companies to ransom with their proprietary technology. Emotions run high, as it does come in for a lot of slating.

When defending Adobe Air/Flex development, I hear the same old “I can do more with less code” – when I would rather be hearing how efficient and future proof and robust the code is. If I didn’t know better (and I do, as I have met good solid programmer types who work on these projects), Adobe attracts the lazier and less competent developers. Dev’s have moved on from flash development to play with the big boys and make larger scale applications in their familiar territory. Its a false economy – java development is currently cheaper, and would provide a more stable and efficient application. Java developers are also inherently more “code-y” types of people. Whatever can be developed in Adobe, can be developed in Java – and much better.

Is Scrum Evil?

scrum1SCRUM was designed with a particular purpose in mind, and it has suffered with too close an association with Agile (which is broader methodology).

At best, SCRUM is a sub-Agile method, which assumes all project memebers are dedicated, and in same location.  The Product Owner is CRITCAL component on a SCRUM project.  And this is where SCRUm can go awry – if the project has a Product Owner who is not sufficiently enaged with the project, or lacks skills to make good judgement calls on user stories.
scrum2

Scrum is an Agile development framework that Jeff Sutherland invented at Easel Corporation in 1993. Jeff worked with Ken Schwaber to formalize Scrum at OOPSLA’95. Together, they extended and enhanced Scrum at many software companies and helped write the Agile Manifesto.

“Is Scrum Evil?” Beyond our session at XP Day Paris « Eric Lefevre-Ardant on Java & Agile

“Rail” is now a dirty word

devI myself think that these days, there is no right or wrong development language – it is the best tool for best job.  For example, I know PHP is not the most efficient or secure of languages, but I am familiar with it, and like its flexibility and speed of development.   Where is all goes wrong is when people try to make something bigger than it deserves.  The unscalable heap of hype that is Ruby-on-Rails is good example – usually development speed is proportionally sacrificed with application server performance. RoR excels in this – many a company have been sucked into the expensive maintenance nightmare that is RoR.  Great for startups/enthusiasts/small websites – but can be a killer on long-term projects.  Hype should never surround a development language, it is too fundamental to be creating illusions around.  But doesnt stop some people …

This leads me to Railo, an offering from the Cold Fusion camp, usually synonymous with walled-garden approach.  Asides the rather sad name (using “Rail” is title is a little transparent effort to appear current and trendy), Railo is a pointless attempt to “join in” with the fast moving web development world (though hard to understand their intention from the website).

The wikipedia definition is a good one  -as it also highlights its pointlessness ….

Railo is a compiler for translating and executing of CFML-based websites. The compiler translates the CFML code into Java classes which can be executed on a Java server. Railo also comes with a runtime engine, which contains all necessary libraries for the translated code. Railo automatically detects when to translate a CFM file or when to use the runtime engine. Railo compares best with JSP. JSP uses different syntax but the main functionality is almost the same. Because Railo implements most of the JSP interfaces, it is highly compatible with JSP

Railo seems to be exclusively for exisiting ColdFusion who probably feel they are out of step with the rest of the web development world – but the approach is bizarre, trying to appeal to all developers.   What I do resent is when someone is just trying to reivent the same wheel, then try and convince the rest of us their’s is better.  Yes, Java is good – but its not as good without Cold Fusion.  And etc for any web development language you care to name .  Give me a break!    It may be good, it may be bad – the point is I just dont care.  Cold Fusion always suffered from its walled garden approach, and Railo is a too-late effort to address its weaknesses.

What I care about a development language are five things:-

  • How much does it cost to develop?
  • Is it scalable?
  • Is it secure?
  • Is it easy to maintain code?
  • Is the hype honest?

Ruby on Rails fails on all 5, in my opinion.  Railo I dont know enough about, but I know enough to recognise when someone is trying to reinvent the wheel, or just trying to “fit in”.  Another favourite example of misguided attempt to update a programming  language, is the DB crunching COBOL,  I love for its simplicty and clarity of purpose. In the early 1990’s, Visual Object COBOL was proposed, which went against its very premise as procedural language, not object-oriented.  In other words, it was no longer COBOL.  It was not suprisingly unsuccessful, as it is not the place of a development language to grow outside of its methodology – at that point it ceases to be the same thing – and makes its purpose vague.

ItsNat: Component based Java Web Application Framework

ItsNat is a Java AJAX web framework with functional web test built-in. Simulates a Universal Java W3C Browser in the server, the client DOM tree is basically a clone of the server and is updated automatically when the server changes usually as the response of an AJAX event. The server can fire W3C DOM events and send them to the browser simulating user actions. These are received again by the server as in a normal AJAX app. As the test code is in the server too, can check the expected GUI changes (checking the server DOM tree) or the expected business behavior (added/removed/updated data).