Wednesday, 7 September 2011

Long time no ... whatever :)

So yeah, it's been a while. I had a short stint at GFI Software which I really enjoyed, but ultimately decided it wasn't for me.

I'm doing Eclipse RCP and Java development for a large multi-national investment bank in Glasgow on a 12 month contract. It's a seriously intense Agile gig (100% pair programming and true TDD approach) and I'm really impressed with their set-up.

I have to admit I'd been somewhat jaded after experiences at previous financial institutions, but so far ... very good times. :)

Tuesday, 22 February 2011

My New Role at GFI Software Ltd

On February the 14th I was pleased accept the position of Development Team Leader at GFI Software Ltd as part of the Max business unit. You can read more about GFI on their website.

I'll be responsible for the technical delivery of GFI's next strategic project working with a new team, in a new office out of Edinburgh city centre... and yes! We are recruiting!

The role is a fairly significant change in direction for me in a couple of ways...

Firstly, I'll be less hands on than in previous roles. I won't be giving up coding all together, but my leadership responsibilities are expected to take up a significant chunk of the time I would have previously spent coding.

Secondly the technology stack I'm working with is a change from the usual Java related technologies and is based on a LAMP stack, where the P is PHP. I've always been a fan of the language so was quite excited to be offered a role in which I can use PHP commercially. Front end technology utilises Ext-JS, a rich Internet application framework written in JavaScript, while there will also be regular delves in to C++ to create lightweight native Windows applications.

However, I'll still be keeping my hand in with Java, OSGi and Vaadin, just not in a commercial capacity any more and of course I'll still be doing the occasional side project using Android and iOS.

So interesting times ahead... I am still recruiting my team and will be kicking off this new project in the next couple of weeks. Am looking forward to making a significant contribution to GFI's success over the next few months.

Friday, 7 January 2011

Java Language Want List

Had a discussion with a friend the other day and we got talking about what we'd like to add or change about Java. Personally, I'm generally happy with the Java language and do actually worry about what people are planning to add to Java, though I suppose those changes will be backwards compatible.

However, it's fun to be critical, so ignoring backwards compatibility for now, and possibly without thinking about these things in too much detail, here's my "want list" for Java in no particular order:
  • Inline XML support - probably influenced by ActionScript 3's support for it. Though handling variables in the XML, collections and so on needs more thought. Probably an XML object that is a first class language citizen like String would be required and should allow operations to be performed on it.
  • Inline REGEX support - having to write regexs as Strings really annoys me as it makes them very hard to debug when you have a complicated regex due to escaping. ActionScript 3 handles this very well I think.
  • "blocks" or more commonly referred to as functions. Wasn't a fan of adding this to Java initially, but having used blocks in Objective C / iOS 4 I'm coming around to the idea.
  • Virtual properties - mark a variable as a property and then be able to use getters and setters regardless of if they are actually specified. This is something that both Objective C and ActionScript 3 has and seems almost like a no brainer for an OO language these days. (Someone sent me a link to something that does this in Eclipse but have lost the link now... if you're that person and reading, please post again :)
  • "Protocols" like in Objective C or the ability to mark interface methods as "optional". Two things would be required to support this. Firstly a default call mechanism (or having the compiler generate dummy methods which just throw "UnsupportedOperation") and secondly the ability to ask if an object (rather than class) has a method.
That's it for now, though I keep thinking of things and forgetting them, but I'll try and keep this list updated from now on.

Happy New Year, by the way.