Software is changing the world; QCon aims to empower software development by facilitating the spread of knowledge and innovation in the enterprise software development community; to achieve this, QCon is organized as a practitioner-driven conference designed for people influencing innovation in their teams: team leads, architects, project managers, engineering directors.
Yes, my name is Zef Hemel, I am the VP of Engineering at Cloud9 Inc., we built Cloud9 IDE, that’s the highlight I guess.
Right, so the killer feature is our web app, thinking that a lot of people develop web applications now, why do they use desktop applications to do that, why don’t they use a web app to do that? So, you just go to c9.io, login to your account and all your code is there, you just do the editing and then potentially, what we are working on right now is that you can share the link to your project with your colleagues, and they can log in, you can give them write access and then you can do real time collaboration, this kind of thing. So, basically the idea of Google docs, but for software development environments.
3. How do you feel about IDEs and their importance when it comes to doing web development and especially with dynamic languages, do they matter because to be fine with the idea that you need an IDE to write Java, what for dynamic languages?
So, we are working on real time collaboration right now, code completion we have on a, I would say, TextMate level, you can do word completion, you can do a ctrl-space and it will show you a dropdown of all the options from all your open files and stuff like that, we have snippets and these kind of things, but the actual intelligent completion based, like the analysis of your source code, that is still something that we are working on, and then of course refactoring we have variable renaming, so you can rename your variable or your function locally and then it will just change everywhere, but stuff like method renaming is a lot more difficult because you actually have to do things like type inferencing, multi-module analysis and all these kinds of tricky things, so we are still working on that. We have a debugger, we have a very good code editor, we use Cloud9 all the time to develop Cloud9 and whatever we feel we need, we add as soon as possible because otherwise we are just bothering ourselves, so it’s very ready in that sense, you can just use it to develop your software.
Well, I think they already have a little bit of a code editor, Chrome also has a code editor, but those are mostly for debugging purposes I feel, if you want to step through your code, but you don’t do yourself development in this editor, so far I haven’t seen them moving in that direction that you actually want to edit your code because then where is the code stored, because usually you load it from a web server and if you would edited where would it go, right? In Cloud9 that is very obvious, because you’re pulling in your own code. So probably there will be editors like that, but the question is how advanced will they get and how much sense would that make, to make them so advanced if people generally won’t use them for actual development, just for debugging?
Zef Hemel: What features are still missing today or fundamentally not possible?
Dio Synodinos: Both, if it’s possible.
Zef Hemel: As I see it, it’s just an engineering challenge; you just have to do it. I see no reason why fundamentally you could do certain things only in a desktop based IDE, it’s just that we have to get there, I see more stuff that you could do in a web IDE that you could only do, or at least it would be very complicate to do than on a desktop IDE. We’re not there yet, we’ve been doing this with a fairly small company for a year and a half or so, so we are still working on it, but we will get there, it will take some time to be on par. We always said we don’t aim to be at the same level with existing IDEs, we aim to be the best IDE, we don’t want to be the best web IDE, we just want to be the IDE in general, so that’s what we are aiming for. And I think that is very doable, we just need a lot of engineering done.
I don’t see why not, the reason why we don’t initially focus on that is that there is already Eclipse and it is very very good, to get to the same level is very difficult, unless like we do use the machinery which is something that we are considering.
Zef Hemel: Eclipse is open source, right? You could use the analysis engine, run it in the Cloud, you have to run it locally, you just expose it using the UI. I think that would be a very good way to go, because you would use a decade and a half or how long these people have been working on it and expose it in a web IDE. I don’t see fundamental reasons why Java programmers wouldn’t want to do that. I mean, if you consider deployment, the case where you would develop a desktop application using a web IDE would be kind of interesting because how would that work? If you push run would it download a JAR file, which you would then have to run locally? I think our focus for now will be on web applications or maybe mobile web applications and these kinds of things.
Dio Synodinos: Of course, the pain of upgrading Eclipse.
Zef Hemel: Yes, you reload and get the latest version, it’s a web app.
10. You must have really interesting problems with respect to testing. Would you like to talk a little bit about how you do your testing because besides the simple cases when simply you do unit testing, you have a really interactive frontend, are you using something specific, something like Selenium?
Yes, we have an extensive unit test for the a large part of the system, also for the client part, we are trying to separate the pure UI stuff from the algorithmic stuff, at some point we did Selenium tests but those are quite difficult to create, it’s very low level, if stuff switches around, you have to adapt them again, we are actually looking at a better way of building those tests for our own IDE, but then of course the idea is that the same solution would be part of Cloud9 so everybody could write their own Selenium type tests in Cloud9 as well. But that’s something we are looking at still. Currently, to be quite honest a lot of our UI testing is just by hand, but we want to change it as soon as possible because you can imagine it’s a lot of clicking.
eXo Cloud IDE a Java -and more- Web IDE
Cloud IDE allows developers to create new project and host them in GitHub. The IDE provides many powerful features for the developer such as code coloring, completion, refactoring, ... It is also possible to debug Java application from this IDE as you can see in this video: vimeo.com/40872612 Not only Cloud IDE allows the developer to manage their project but it is also possible to deploy the Java applications (and other languages Ruby, PHP, Open Social gadgets/Rest services) to different PaaS (CloudFoundry, Openshift, Heroku, CloudBees, ... )
I am inviting developers to discover Cloud IDE for free at : cloud-ide.com