Monthly Archives: March 2014

EclipseCon 2014 Wrap Up

While I got a few moments here now that I’m home in Ottawa, I thought I’d jot down a few notes from last week’s EclipseCon. For me personally, it was the best ever. The diversity of discussions I had with so many talented people represent the diversity of my interests these days. I’m trying to build a great IDE for my platform’s customers and that goes beyond just the plug-ins we build for them, but to the entire ecosystem. We should be helping with all that because that value helps grow community and in the end our IDE gets better and my customers get happier and I get to work more on Eclipse :).

As soon as I checked into the hotel, I went up to the second floor where I was staying and looked out over the balcony by the elevator and a rush of memories flowed over me. I was at EclipseCon 2005 (mind you I’ve been to all 11 of them) which was held in that same hotel. There were ghosts here all week. I’ll never forget my first experience as a mentor for other projects when a number of groups interested in a Fortran IDE on Eclipse were trying to figure out how to work together and combine technologies. That’s where my friendship with the Parallel Tools team started and it was great to see Greg and Beth back again to relive those memories.

I was trying to figure out what the differences were back then to today. So many companies were scrambling to get their faces seen, joining the Eclipse board, starting top level projects, making product announcements. It was really different. The developers were there to get their projects known but they weren’t really the focal point. And I figure that’s it. EclipseCon is now a developers conference. It’s a place where the community gets to meet, and have a few beers together growing relationships, and to learn about what’s going on that might inspire. And I think that’s a perfectly good place to be. Yeah, the numbers are down a bit again, but I think the developers I talked to got way more out of it than we did back in 2005.

I have to admit that I started looking at JavaFX because it’s a shiny ball. I always seem to be chasing those. But there is a lot of interest in it’s capabilities in the Eclipse context. The CDT multi-core visualizer, for example, is a pretty complex visualization of the state of the dozens, if not hundreds, of cores in the chips these days. It’s all hand rolled SWT paint code with it’s own custom framework for drawing nodes and connectors. I have a feeling there are a lot of such visualizations that we could have in the IDE for representing data of all sorts. I think JavaFX can help there, but that needs to be validated. And if it does, that means we need the best architecture for the Eclipse IDE and JavaFX to make it work. I’ll blog more about that in the upcoming days. Talking with Tom Schindl and Steve Northover (who I’m so glad was there), I think we have some ideas. And, of course, it will require community support to pull it off and that’s the next challenge. To make sure we’re communicating the value.

I had a good chat with Gorkem Ercan from the Red Hat JBoss team. I got to know him when he was doing the Mobile Tools for Java back at Nokia. He’s now working on Apache Cordova tooling, which is good for us at QNX/BlackBerry since we support Cordova as one of our runtimes. I got to learn more about the type inferencing problem in JavaScript, i.e., how do you get content assist to return something useful. It’s a real hard problem and it was good to hear that they were talking with the Orion gang, who are also working hard at this problem. It was also good to see the VJET talk and they also seem to be working on that problem. Why we have two desktop JavaScript tooling projects in VJET and JSDT, I still don’t have an answer to, but it’s good to see that there are others out there who care about having good JavaScript tooling on the desktop.

And last but not least (for now), I had a few conversations with Lars Vogel over the week. He has done so much for the Eclipse community, it’s hard to measure and thank him enough. Everyone knows about his great tutorials on Eclipse development. We’ve all used them, or at least ran across them in Google searches. But what has me inspired is his drive to contribute to the Platform UI project and to solve all those problems we seem to always be complaining about. Why are we complaining and not putting that energy into contributing to make the Platform better. We all depend on it and have such a vested interest. We can’t and shouldn’t depend on others to do that for us. If Lars can drive through and work with the platform team and make change, well, I can to. And that’s what I intend to do. And thanks Lars for giving me that inspiration and I hope others catch it too.

Well, I’ll blog more as I dig into all these different areas. And I haven’t even mentioned the CDT summit we had on Monday and Tuesday. Great things coming there too. For now some sleep and some much needed family time. Then it’s back to work. EclipseCon has fuelled my passion and has given me hope that we can make the great Eclipse IDE even greater.

Coming soon to an upstream near you

Just to tease 🙂

Screen Shot 2014-03-14 at 10.08.11 AM

I use the new upcoming Momentics IDE for my everyday work with all Eclipse projects I’m working on. Our new updated toolbar supports it all. Pick your launch mode, launch configuration, and target you want to run on, click Build, Launch, Stop. Boom!

Nothing like a little dog food to make a user experience you love to use. We’re still tweaking this as we run into workflows that we hate.

And, yes, we intend to contribute this upstream to Eclipse somewhere. I’ll be showing and discussing this at the CDT Summit and to anyone at EclipseCon who wants to see it in action.

The Desktop is Dead, Long Live the Desktop!

OK, I’m getting old. I’m still in my late 40’s but I remember a time that a lot of people younger don’t. I was in university in the late 80’s and our favorite compute platform was the legendary Sun 3 workstations. They were cool. They had a big graphical display with an optical mouse and a pretty fancy keyboard. They had a lot of power, relatively, had a great OS in SunOS, a BSD Unix derivative. It was a great machine to build software with.

OLYMPUS DIGITAL CAMERA

(borrowed from Wikipedia)

Our love for these machines and similar ones from HP went on well into the 90’s when commodity personal computer’s based on Microsoft Windows NT and Intel CPUs finally became as powerful and feature rich as the workstations of old. And we were OK with that. We were getting pretty tired of spending up to $10,000 on each one of these when you can get an equivalent PC for $2000. Yeah, you had to put up with Windows but they got the job done and had way more productivity apps than our workstations did.

Then something really weird and wrong happened. Consumers decided that they wanted these machines for themselves to run their little browsers and word processors on and to play games with. Popularity exploded and these machines became even more powerful. And we software developers benefited from that. The workstation days were a distant memories and we used to laugh at how little power they really had.

But, yeah, it was wrong. These machines were never meant for consumers. They were business machines and had the UX to match. Why was my Mom learning how to use a mouse and navigate through a complex operating system just to browse here crochet patterns on the Web? Well, the inevitable happened. The computer companies were finally handed their lunch as mobile devices and their simpler consumer friendly UX became hugely popular. “Wait, everyone wants tablets and smartphones. The desktop is dead!”

Well, you guys can have it. One thing that hasn’t changed is the demand for good machines to build software with. While the Desktop follows the consumer into simple-land, and rightly so I guess, an opportunity has opened again for the return of the Workstation. I think Apple has caught on. The new Mac Pro is back at the $10,000 price point and offers incredible power and, again, a great Unix-based OS in Mac OS X. I think there’s a need for similar machines built for Linux although Linux needs a user interface that has evolved at least a little bit from what we had in the late 80’s. But with Wayland and Qt like you see with the Hawaii desktop from the Maui Project, I think that’s getting with in reach.

“But hey Doug, what about software development in the Cloud?” You mean like we did on IBM mainframes and shared Unix minicomputers until the early 90’s? Well, as I fight with the slowness and scalability issues with defect tracking and code review tools shared with hundreds of other developers, I remember clearly why that wasn’t good enough before. We wanted computers on our desks so we didn’t have to be impacted by what others were doing in these shared environments. And you know, check out the CPU specs on that server you’re using out there, it’s probably less than what you have on your lap reading this. So we can replay history if you want, but I’ll take a pass on this cycle.

So, yeah, the Desktop is dead, and probably shouldn’t have ever happened. But I don’t expect this Workstation I’m using, my MacBook Pro, to be going anywhere.

 

EclipseCon 2014: Getting Qt with Eclipse CDT and JSDT

Two weeks to go. Time to get really jacked for EclipseCon 2014. I’ll be giving a talk this year on the work I’ve pretty much dedicated the last two years of my life to, properly supporting Qt development with Eclipse. It’s long been stated that Eclipse, CDT in particular, doesn’t do Qt. Well, it certainly didn’t do it well, but we working hard at changing that. Qt is the foundation for out native Cascades App UI story with BlackBerry 10 and we’re pretty happy with how that’s gone. Now it’s time to contribute back to the community to make sure Eclipse does do Qt and does it well.

This talk will go through the aspects of Qt that makes it difficult for any IDE to support it. It extends C++ in interesting and powerful ways that really makes programming in C++ a safer experience. But, the IDE needs to support those extensions and we’ve done a lot of work with CDT’s parsers, indexer, and editor features to make it so.

An important aspect of the new Qt 5 is the declarative QML UI description language. It’s actually a mix of declarative and imperative using JavaScript to add behavior for events. An obvious choice would be to leverage Eclipse’s JSDT (JavaScript Development Tooling) to support that and we’ve done so. There’s some changes we need to push upstream to make JSDT support non-browser JavaScript platforms. Along with that, we’ve hooked up JSDT’s debugger to Qt’s QML remote debug protocol, giving a pretty nice debugging experience with QML. And there are a few changes we needed to do to make that happen.

If you have an interest in Qt and how the Eclipse IDE will be updated to support it as a first class citizen, come to EclipseCon 2014 in San Franciso and see me Thursday, March 20 at 1:30 in Grand Peninsula F. Love to see you there and get your feedback.

An SWT-free Workbench?

As a few of you know, I’ve been working hard at trying to get the Eclipse IDE to run on JavaFX. Most of the work has been done by Tom Schindl but I was massaging it to be a real SWT port, just like the ones we have for win32, cocoa, gtk and others. I don’t want there to be a lot of magic since my first goal is to get the Eclipse IDE built and running using the platform maven build. It’s got to fit a certain structure.

But the more I try and get the various Platform UI plug-ins to play nice with the port, the more I’m getting pretty tired of fighting it. SWT really is a fundamentally different beast that makes a port to a modern UI framework a very difficult task, especially when they leverage hardware accelerate renderers where you really shouldn’t be playing with the event loop like we do all over the place in the Eclipse workbench. We do need the SWT port for existing plug-ins, but the workbench?

No, I’m pretty convinced now that the correct path is to get the Eclipse workbench to be a fully e4 thing and use JavaFX renderers to, well, render it. I was surprised when I started looking at e4 for the IDE that the workbench isn’t actually fully e4. In fact, it’s a lot not e4. I’ve been told it was just too much work to get it there in the short term. And, yeah, it is a lot of work. So I can’t argue with that.

I think it’s time for me to get involved with that. JavaFX is important to me in order to give our IDE a modern look and feel and make it fully skinnable. The CSS support in JavaFX is outstanding and I love the fact you are building a scene graph for your UI and then feeding it to the GPU to render. That’s should make it very responsive and give us a chance at doing some cool effects (as long as we’re not careful not to be too cool, wiggly views anyone?).

To get there, we need a pure JavaFX workbench. Am I going to be in over my head? Well I’ve heard a lot of interest from members of the Eclipse community. Working together I think we can get there. And I firmly believe, we need to get there.