We were really happy at Nuxeo yesterday to make available the first version of the Nuxeo IDE.
This is a great milestone, and one more achievement in implementing our vision behind the Nuxeo Platform!
But before jumping to features, documentation and other things, I thought it would be useful to provide some insight about this "yet another thing" provided by Nuxeo. So, before talking about Nuxeo IDE, I will indeed start with a quick overview of Nuxeo Studio!
Nuxeo Studio and now Nuxeo IDE... huh?
Nuxeo Studio is, as you might know, Nuxeo's "Customization as a Service" tool, and like Nuxeo IDE, it aims at making the developer's life easier.
It is software provided as a service, hosted, and runs 100% in a browser. We love this vision and definitely believe it fits with the future of software development: in the browser and in the cloud.
Nuxeo Studio was first released early 2010 and has been improved continuously, up to a point where today, the range of features is really impressive and we have many customers who love it!
It can be used to customize Nuxeo in many ways, from defining content views to new content types or working with automation chains to the very basics of look and feel customization! It now includes application templates, which help new users to quickly get started with Nuxeo and implement what they want. And, we still have a long long list of ideas for future features in the backlog.
This being said, we always knew Nuxeo Studio was really about "customizing" and not about "extending" the Nuxeo Platform. In other words, Nuxeo Studio is not a place to write new lines of Java code to develop brand new functionalities, such as a new content operations or whole new applications. And while we were improving Nuxeo Studio, we were indeed creating a gap between how simple it was to "customize" the Nuxeo platform and how "not that simple" it was to extend it further!
Customize in your browser, code on your laptop!
Not only that, but developers (from our development team and from the community) started to highlight the need to be able to work with both Nuxeo Studio and Java development on the platform simultaneously. That is how the idea of Nuxeo IDE came late spring 2011: to provide tooling to Java developers to extend the platform, making them more efficient but also enabling them to work with Nuxeo Studio as a customization interface.
In our ideal world, we would love to provide a fully browser-based IDE provided as a service, like Nuxeo Studio (and actually, don't worry, we will keep looking at that for the long term :-)), enabling Java developers to code, build, deploy and run from a naked workstation, in a browser! Truth is, this might be the future of software development -- but it ain't for today, or tomorrow!
The reality is that today and still for some time, when it comes to serious development, real Java developers are using Eclipse (ok there are also some other tools...), are confident with it and will keep working with it for a long time. Based on that assessment, we decided to work on Nuxeo IDE, a new tool based on the Eclipse IDE, that will be part of the toolbox for Nuxeo developers, standing next to Nuxeo Studio for customization.
Nuxeo IDE is in no way saying we won't go in the direction of "developing in the Cloud". By "connecting" to Nuxeo Online Services and Nuxeo Studio, it does exactly this: enables development in the cloud as much as possible, and many upcoming features will explore that direction! Still, the core of the Java development has to remain on the laptop, for some more time.
So what are the goals of Nuxeo IDE and what can it help with?
The goals of Nuxeo IDE are simple: make it easy for developers who want to go beyond Nuxeo Studio by developing new code to plug on the Nuxeo Platform!
This will bring productivity, efficiency and comfort to development teams in charge of customizing the platform, and will be an additional criteria for choosing the Nuxeo Platform against other technologies.
What can Nuxeo IDE do for you in this first version? Already a lot!
- First of all, and here we are definitely talking about productivity, Nuxeo IDE embeds an SDK and a deployment system which makes it possible to automatically deploy your development work and see it live, thanks to the Hot Reload capability of the platform, without having to use external tools or go to the test environment and restart the server! Developers will definitely love that!
- Again about productivity, Nuxeo IDE comes with a set of templates for new projects, so developers don't have to start from scratch. This includes a template for regular project, a template for Web Engine based project, a template for content operations and content services… A definitive time saver for developers, whether they work on a new project or on a proof of concept or prototype!
- And still about productivity, Nuxeo IDE is designed to be bound to your Nuxeo Studio project. Doing so, all the customization work done in Nuxeo Studio is understood by Nuxeo IDE projects, making it able to provide helpful features, such as code completion on content structures that you might have customized in your Nuxeo Studio project.
And Nuxeo IDE provides many more features, like a system to manage deployment profiles, an integrated Nuxeo Shell and others that I will let you discover later.
What doesn't Nuxeo IDE provide?
First of all, Nuxeo IDE does not provide features that are already in Nuxeo Studio. As explained above, the two tools are complementary, and the goal is not to provide an advanced alternative to Nuxeo Studio, but a companion. We think it would be confusing to have two tools for the same thing, and looking at how Nuxeo Studio does the job when it comes to customization, we definitely want to stay on that track! Nuxeo Studio will continue to be developed, offering new and unexpected customization capabilities!
Second, Nuxeo IDE doesn't look at the past -- it is a tool developed for the next generation of the Nuxeo Platform. It comes today with a SDK based on the latest development version of the Nuxeo Platform, and it won't be adapted for 5.4.2 or even older versions. This is only the first version of a tool that is here to stay, and following our open development model, we wanted to make this available and wanted to have as many developers as possible using it from the beginning. Use it, try it, engage with us and feel free to contribute and get back to us -- this is open source software!
Third, plenty of other features and templates that we are only starting to think about. Here as well, please engage and get in touch with us if you want to team with us for the next versions of the tool.
And fourth: bug free software! We know this doesn't exist. We have been testing Nuxeo IDE internally for a while, and we are really happy about the quality of the code, but we know bug free software would be a lie! So if you find a bug, report it.
So what next?
We will certainly be blogging more about Nuxeo Studio but for now, if you are a Nuxeo developer, or on your way to becoming one, I can only recommend that you give it a test run:
- Get it from its dedicated Eclipse Marketplace page
- Jump on the Nuxeo IDE documentation space dedicated to this new project -- even if we are still working on it, the installation manual is already pretty solid
- If you still have questions, ask them on our QA website, you'll get answers!
- And if you find bugs, please report them on the dedicated bug tacker.
Greetings to the amazing R&D team at Nuxeo!