I've been mulling over the implications of the news that Sun's JRuby team leaders, Charles Nutter and Thomas Enebo, are leaving Sun because of uncertainty about the future of their project after the Oracle acquisition. They will be joining Rails specialist Engine Yard. This is the key quote from Nutter:
To be honest, we had no evidence that Oracle wouldn't support JRuby, but we also didn't have any evidence that they would.
JRuby is by all accounts excellent - I'm aware that developers at ThoughtWorks use it, and Ruby advocate Martin Fowler (who works there) told me that it works very well for them, observing that some enterprises who would be reluctant to deploy the native Ruby runtime are more comfortable with running Ruby applications on the JVM (Java Virtual Machine). It is foolish of Oracle to let the JRuby guys slip away, particularly bearing in mind the trend towards dynamic languages (like Ruby) rather than static-typed languages (like Java).
What does this suggest about the future of Java itself under Oracle's stewardship? If Oracle could have done more to reassure Nutter of its continuing commitment to JRuby, so too it could do more to reassure the rest of us that investment in Java and its community will continue as strongly under Oracle as it did under Sun. Maybe it will, maybe it won't; though culturally I suspect the new company will be averse to Sun's habit of investing heavily in projects with little obvious potential for direct revenue. The failure to monetize Java fully, along with the failure of its bold experiment in open source, is one reason for the acquisition itself.
That does not imply that Java will go away - Oracle itself is a heavy user, and defending its future was likely a factor in its willingness to purchase Sun. Still, it would not be surprising if the community is a little less warm, and Oracle's investments more focused on its own needs rather than those of the wider platform.
Despite Oracle, there is no reason to be gloomy about Java's future. There is another way to look at the move of the JRuby team, which is that they've found a way to continue working on the project with or without Oracle's support. Java is bigger than Oracle, just as it was bigger than Sun.
IBM worked tirelessly to free Java as far as possible from Sun's control, developing its own JVM and creating the Eclipse tools project to foster alternative tools and frameworks. Those efforts will have a new context and relevance.
Maybe Oracle will do great things for the Java platform. Maybe it will do little, and momentum will shift to those outside the home company. Either way, investment in Java development is as safe as anything can be in our uncertain industry.
Microsoft has completed Windows 7 and released it for manufacturing with much fanfare. It is a key step in terms of Microsoft's battle with Apple for hearts, minds, and above all sales; but does it matter to the average corporate developer?
There are a couple of ways of looking at the question. Windows 7 has new features, and although it is unlikely that you would want to require Windows 7 for your application at this early stage, you might want the kudos of adding a few enhancements that appear when running on the new operating system.
The other angle is simply this: if some early adopter insists on running your app on Windows 7, against corporate policy, will it still work?
Windows 7 is an unequivocal improvement on Vista and makes XP look distinctly dated and insecure, so it's likely that adoption will be relatively rapid, especially in the consumer market.
The official line is that application compatibility should be good, and my experience bears that out. In particular, if an application runs OK on Vista it will almost certainly be fine on Windows 7 as well. An XP application is more likely to break on Vista, than a Vista application on Windows 7. User Account Control (UAC) is the biggest source of compatibility issues, particularly for applications that assumed the user to be running with local administrator rights. Test your applications, of course; but unless you are writing tricksy things like anti-virus utilities they will most likely work as well on Windows 7 as they did on Vista.
What about enhancements? Some Windows 7 features are worth supporting, because they improve usability. The most obvious example is the taskbar, the heart of the Windows 7 user interface. Taskbar jump lists, which are right-click menus for taskbar icons, can be customised to support tasks specific to your application; and taskbar preview windows can include controls enabling a miniature user interface for the most common actions. This means users can do some of what they need without opening the main application window at all, which can be a great time-saver.
So how hard is it to add Windows 7 features to your application? An interesting question. Despite the popularity of .NET Languages like C# and Visual Basic for business applications, Windows is mainly written in C++, and when it comes to supporting new features that shows. If you are a C++ developer, you can download the latest SDK and get going immediately.
.NET developers have a more difficult set of choices. You can wait for Windows 7 features to be added to the .NET Framework (it could be a while), or roll your own interop code, or use one of Microsoft's .NET libraries, which are as yet incomplete. The last route is the most tempting, though Microsoft has gone out of its way to confuse matters by producing both sample libraries targetting specific areas, like the Windows 7 Taskbar and Libraries .NET Interop Sample Library, as well as an all-embracing Windows API Code Pack which is I think the preferred solution but which is in some respects even less complete.
Still, it should not be too hard to add some Windows 7 bling to your app using one of the .NET offerings. Then again, hasn't the boss started using a Mac at home? Is it better to invest your time in polishing the experience on Windows, or looking into how you might port to web-based and/or cross-platform applications? Like everything else, it depends; but if you work in .NET it is well worth keeping an eye on Silverlight as well as the latest developments with Windows 7.
This official blog post is an overview of the main API changes in Windows 7.
The Windows SDK blog has detailed info and gotchas for bleeding-edge Windows developers.
With businesses keeping an extremely close eye on all spending, departments are being asked to demonstrate tangible benefits from all of their investment. Analysts are required to monitor and report against credit risk, marketing campaigns and customer insight and loyalty among others. With this data they extract, businesses are able to understand their customers and clients in order to match their needs with more targeted investment.
Sectors such as financial, marketing, retail and utilities invest heavily in analytics, but in our experience, almost every sector can benefit from such insight.
For people looking to change careers within the IT sector, or for those entering the workplace after university, an analytics qualification can be a very desirable skill to acquire. The sector has been extremely buoyant and shows little sign of slowing down. Furthermore, the skills are extremely transferable and can allow for easy transition to working in many other sectors.
Those coming from a numerical background in particular, will find the transition to analytical work very natural. However, for anyone with a basic IT skill set, the addition of an analytical qualification can be a very wise investment which, in the long-term, can lead to a varied and rewarding career working within a broad range of opportunities.