Subscribe: Doug on the Eclipse CDT
Added By: Feedage Forager Feedage Grade B rated
Language: English
android  build  cdt  community  desktop  don  eclipse ide  eclipse  great  ide  make  new  people  things  time  work 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: Doug on the Eclipse CDT

Doug on the Eclipse CDT

Hey all. This blog records my thoughts of the day about my life on the Eclipse CDT project. I will occasionally give opinions and news regarding the Eclipse CDT - the project and its ecosystem - and on open source in general. Please feel free to comment o

Updated: 2017-09-06T04:13:27.860+01:00


I've moved


I got tired of dealing with Blogger's crappy spam management system and I wanted to play with a little server I have in the cloud. I'm now at and a happy WordPress user. See you there.

A Great Comment about the Eclipse IDE


My favorite thing about blogging is the comments that come in telling me I'm full of crap and here's why :). It's a great way find out whether I am full of crap and I usually learn from those comments which helps me make decisions. It's a great resource and highly recommended, assuming you don't mind being told you're full of crap.Anyway, BrunoM commented on my post about the Eclipse IDE being dead-ish and I thought I'd repost them here so everyone can see and he's given permission to do that. He makes some great points. I think I end up agreeing with him. Making the Eclipse IDE cool is just to get people looking again. At the end of the day, it just needs to be a great multi-language IDE. And bringing the IDE community together, break down the project silos, is a great idea on how we could do that. More on my ideas on that later. First, here's Bruno."Hello Doug. It's an interesting post you have here."First, like many others here, I do agree that Eclipse is losing a lot of momentum, even regressing in some aspects (more on than later). But I don't agree with your vision of what Eclipse should look forward to be. I've been following your Twitter and blog posts for quite some time, and I see this recurring pattern: the desire to make Eclipse more exciting, but exciting not necessarily in a functional and technical sense, but more in a visual way: by means of making it more "cool" or "hip". You often draw comparisons to the all the new "sexy" and cool games, mobile apps, and "Web 2.0" websites and technologies we see out there."Again, I respectfully disagree with this vision. Eclipse is a tool a for developers, as its goal should be first and foremost to be as productive, easy and functional to use as it can be. Cool and interesting, but in matter of *substance*, not style. (PS: I'm quite the gamer, but it doesn't change my opinion. Eclipse is not a game.)"Now, second, regarding the main subject: Is Eclipse, as an IDE, losing momentum? It sure feels that way! And not just because it is a large and accomplished project that achieved a lot already... if it was just that case it would be okay to lose momentum in a sense, but it seems that the quality of Eclipse has actually been regressing (and a lot of opportunities have been missed). Let me be more concrete about what I mean here."I am an user of the Eclipse IDE in two ways. Both as a user of the JDT IDE, to develope Java, but also I am user/consumer of the Eclipse IDE API, as I develop plug-ins for Eclipse. (I worked on Eclipse RCP apps, but more significantly I head the developer of an Eclipse based IDE for the D programming language: DDT)"As a user of JDT, and the Eclipse IDE in general, let me tell about my experiences. I've always loved Eclipse, but when I started trying out the 4.x series, I felt a bit disappointed. The new themes looked horrible, to be honest. Not just in a subjective sense, but there was several visual/rendering bugs as well. This was the 4.1 release if I recall correctly. I decided to stick with 3.x as long it was the main Eclipse release. Then 4.2 came, and Eclipse 4 became the main version. I decided to switch finally. After several months of use I noticed it was way buggier than the 3.x series. A few JDT bugs, but most where Platform bugs (views getting lost, icon/action sets getting lost or misplaced to wrong places, view setting not getting saved/persistend, workbench broken with views/editors getting partial focus - they would receive the normal keystrokes, but command shortcuts would be sent to a different view/editor! This last one drove me nuts, as it happened quite frequently, and after the workbench was broken like this I had to restart Eclipse to fix it)."The frequency and severity of these bugs, for very common tasks, left me with a bad taste in my mouth. This was compounded by the fact that this was the 4.2 release, ie, there had been two previous releases of the 4.x series already! I know that Eclipse 4 involved a major rewrite of Platform internals, but two rele[...]

CDT Community Survey


One of our CDT committers had the great idea to put together a survey to gather input into what contributors could be working on. Please feel free to give your input at the link below:

CDT Community Survey

"Eclipse smells kind of dead"???


There was an interesting comment on an old CDT bug that raised my eyebrows.

it's only been 3 years. other eclipse bugs that I reported
are are still open after 9 years.

Sad to say, but Eclipse smells a kind of dead.

Of course, those of us who work in the Eclipse community know that isn't true, but it certain isn't as alive as it was in the early years. Even from my experience on the CDT, we have a small handful of dedicated and productive committers, but we do have lots of bugs that don't get addressed.

Building an IDE, especially one that supports so many environments, requires a lot more contributors that we currently have. It's an age old problem that I've struggled with for all my years involved in Eclipse and many of those as a project lead. How do you grow your contributor community?

And there are some good answers that generally revolve around lowering the barrier to entry: having active mailing lists, good documentation, committers that help bring in new people. And these things definitely help when you have a contributor interested in contributing.

But let's back up a step, assuming you do those things, how do you get potential contributors interested in contributing? You have to make your project something they care about, something that they will feel rewarded contribute to. For the people who contribute to Eclipse now, that's certainly a strong motivator. And, of course, it's important to get companies to see the value in it too, and that's of course another strong motivator, you're boss tells you to contribute :).

To that end, I think we need to figure out ways to make the Eclipse IDE exciting again, to be so alive that it's hard to miss that fact as our commenter did. I think there are a couple of ways to do that. First, make it technologically interesting and modern. Make it a good learning experience that contributors can take with them so they not only get the value of having a great IDE but the value of adding knowledge to their tool chest.

Of course it's a chicken and egg problem, we can't do these things without new contributors, but we should start talking about and planning out features and rearchitecture they'd like to see. And, yes, e4 was supposed to be that, and maybe I'm getting this wrong, but e4 was more focused on adopters than users. And it's really the users who I'd like to see get more involved. There's so many more of them. And they're the ones who really have a vested interested in making a great IDE.

The second idea that I've started pursuing is to have Eclipse release more often. We've decided this for the CDT. Yearly releases are way too far apart, especially when you want to inject innovation into our product. If you release more often, contributors get the reward of seeing their contributions in action sooner. And again, it's that reward that we want to give them. At any rate, you can follow the thread here. It's good to see like minded people in our community leadership think the same way.

We know first hand that Eclipse is not dead. But it could sure use some love.

One IDE to Rule Them All


So, yeah, I promised I would blog more and then four months later, here we are. But now is probably a more important time for me to be doing this. I have a lot of things I need to share with the Eclipse community.

As I get deeper and deeper into mobile development with my work as architect of the QNX/RIM Momentics IDE, the more I appreciate the decision we made 10 years ago to build with Eclipse. The frameworks, the ecosystem, and the community are very rich and we all benefit from it. But its not without it's warts and I really need to do what I can to clean that up.

As an example, I'm building a grocery list app for my wife and I so I don't forget things as too often happens. I'm using node for the server-side and both a web front end for our laptops, and a mobile front end for our phones, both native Cascades for BB10 and mobile web for others.  The challenge is to use a single Eclipse workspace to build all of those components. So far it's OK and there are enough pieces to get started at least. But it's an awkward setup and there are a lot of pieces missing or don't work well, or at least, are very hard to use.

And then I have some long time gripes. Launching in Eclipse is a thing for magicians and witchery. How poor newbies are picking this stuff up boggles my mind. And that's just the one of the usability problems we see. Tool bars seam like random collections of buttons with unclear and often duplicate meanings. Users coming over from Visual Studio and Xcode are faced with a very foreign environment. There, usability experts have driven much of the complexity of project setup and launching down to a few simple concepts. We need the same level focus on usability applied to Eclipse.

One IDE to Rule Them All

I have a vision. I call it "One IDE to Rule Them All". My focus is on mobile apps, but it's clear that the best mobile apps include components in the cloud. We will continue to leverage and contribute to the great frameworks and ecosystem that we've built with Eclipse for as much as we can. But we will have a renewed focus on making sure all those things combine into a Great IDE with a Great user experience.

We have some early ideas on how to make our vision happen. New technologies like e4's modeled UI look promising. But there are a lot of experts in the Eclipse community and we could use your advice. Hopefully working together we can achieve this vision, not just for my needs but for everyone. The greatest asset at Eclipse is it's community and working together is what communities do. And build the One IDE to Rule Them All, we can (sorry Yoda :).

Where do we go from here?


Hi! Long time no see, or at least write here in my blog. It's been a crazy last few years since I used to write a lot. I still dump my brain from time to time on Twitter @dougschaefer (sometimes too much - beware the drunken tweets, but yes I love electronic music at the moment). But I'm not sure why I stopped writing in the large. I love to write. It's therapeutic and helps me work through my thoughts to make sure I'm agreeing with myself. So it's time to start again, especially now that I'm settled in my new position as architect for QNX's Momentics/Blackberry NDK (BB10 is going to rock, BTW).

Over the last couple of years I've been thinking more and more about usability. The whole idea of being in the IDE business is to help software developers with productivity and to help them understand their code better so they can make it better. Yet I still often hear complaints that our tools, Eclipse based tools in particular are too hard to learn and are very quirky, especially for native development, even with all the work we've put into the CDT to take a Jave-centric IDE and make it work for them.

Now some of this is just, again, quirkiness of how Eclipse manages projects and resources and builds and debug and launch. And there are things we can do there to make incremental improvements. And we will continue to do those things.

But there is something bigger, and bigger in many ways. A bigger problem requiring a bigger solution but potentially a much bigger game changer. Eclipse as an IDE is looking really old. Even with Eclipse 4, it still looks like an MFC app from the 90's. That in itself isn't a bad thing, but we need to understand the reasons why modern apps don't look like that any more. It's all about usability, about making the important things obvious. It's about making the app visually appealing, ensuring the user is comfortable and not overwhelmed by choice the first time they fire it up. These are the things I'd like to see Eclipse the IDE exhibit out of the box. But as we all know it's huge mountain to climb to get there requires expertise we as engineers don't naturally by rule have in our DNA. That is: understanding the humanities, how people think, especially people not always like ourselves, empathizing with them.

So how do we start? My first reaction is to throw away every plug-in with a .ui component in it's name. Or take everything that depends on SWT and toss it. That's pretty dramatic and I thought way too hard if not impossible. Until, that is, I saw Tom Schindl's work with JavaFX and how he built a mini IDE reusing the core components from JDT. It's something I had thought of but he actually made it work and proved that it could be possible. The powerful core platform components of Eclipse and the language plug-ins, CDT included, can be used that way. It is one thing I've always mentioned when someone asked why we break out core and ui into separate plug-ins. The door is opened.

So where do we go from here? My plan is to play more with JavaFX and try out some different UI layouts and paradigms. I need to understand what is possible, how would users benefit from organizing things differently. And I can do so with the confidence that once we plug in core Eclipse, we could take this IDE we love to the next level and extend it's life to the foreseeable future. Of course one or two people can't do this alone. Any changes of this magnitude require a significant community, but something this exciting has the natural ability to create one. We'll see where we end up.

Debugging Vert.x apps with Eclipse


+Pascal Rapicault has me hooked on Vert.x, It looks like it can be a great competitor to node allowing you to use the same asynchronous web programming model not only with JavaScript by any of your favorite JVM languages, including Java believe it or not!At any rate, tonight I started to see if I can use Eclipse to develop apps in Vert.x. It turned out to be a lot trickier than I thought so I figured I'd capture what I did here.First, you need to create a User Library for Vert.x. I just looked at the bin/vertx script to see what it added to the Java classpath to see what jars to add to the library. After that I was able to create a Java project and add the library to the build path and code up my little hello world app (which indeed is very node like).Launching is pretty tricky. First, Vert.x doesn't want your app to be on the classpath when it starts up. Weird and that means you have to remove your project from the Classpath. But you do then need to add in your Vert.x user library using the advanced option so it can launch Vert.x's main, which is VertxMgr.And you need to add your project build output with the -cp application option, which I passed ${project_loc:/vertxHelloWorld}/bin, so it can find your Verticle class.Finally when you debug, the Default source path matches your Classpath. Since you removed your project from the Classpath, you have to add your project to the sources manually in the Source tab.I imagine someday, someone will create a Launch Configuration that will do this all for you but if you put some muscle in it, you can get up and debugging your Vert.x app in Eclipse now. Now, if I can debug my client-side JavaScript in the same session...[...]

Can't wait for EclipseCon 2012


Now that my personal job situation is resolved, it's time for me to start thinking about EclipseCon. For so many of us involved on a somewhat day-to-day basis with Eclipse, this is the highlight of the year. This is where we get to put faces to names, where we get to see what each other are doing lately and to have a few debates over a few beer, to feel like we're part of the bigger Eclipse team that we are.

And it's a great chance for the people around the periphery, who use Eclipse technologies in their work or play, or use it as the foundation to build their great products on, or even thinking of doing so, to join in with us. One thing I've seen and, of course, do over the years is always give anyone who comes up to us a chance to join in on the fun. You have to, it's how you build communities.

I always love hearing how people are using the CDT in their products and the problems they encounter and the successes they have had. It's so much easier to participate in person than over a mailing list since it becomes a real discussion in real-time. And I hope that the people who come and walk away with some answers, or learn some new things, or had their chance to influence others in the Eclipse world, make it that much easier to justify the trip.

And of course, there are the sessions and the tutorials and the BOFs and a few symposia and summits and showcases, there's a lot of opportunity to participate. As an example dear to my heart, we are having a CDT Summit on the Tuesday (I'll post here and on twitter @dougschaefer the details once I know them) where CDT contributors, and even those who having a passing fancy they may contribute, will get together and talk about the next CDT release for Kepler. There's some cool stuff going on there which you will also see in the sessions like multi-core debug visualization and more. And, as usual, we'll have a BOF where anyone can come and join in the CDT discussion.

So, if you haven't already, register now. I hear the hotel rooms are going fast at the conference center so get in early so you can stay up late. And I look forward to seeing you there!

Eclipse C/C++ IDE reaches 750,000 downloads for Indigo-SR1


Change, sometimes it just happens.


Well, it's been almost two weeks since my previous employer decided it was time for me to make a career change. Of course there's more to it than that but that's all I'm going to say about that. "It is what it is," and I'm actually pretty excited to see where my career takes me next.

While I'm an independent developer (which sounds much better than unemployed, no?), I have a few things I want to work on. Writing again in this blog is definitely one of them. It's been way too long and I've gotten used to spewing things in Twitter which is very handy but doesn't stay around long enough and isn't long enough to capture my thoughts in time. I have lots of opinions on things and it's good therapy for me to write them down.

The main technical area I continue to be very interested is, of course, Eclipse and the CDT. I've spent a lot of time over the last few months learning and thinking about usability and the importance of design and user experience. Pretending to be a newbie CDT user and walking through normal day-to-day activities shows me a few areas that need to be addressed. And since I'm still a CDT committer, I have the power to fix them.

I continue to be fixated with mobile and the new world that mobile UI and application architectures brings us. There's a reason these devices are flying off the shelves at your local phone and electronic store. They're so easy for the regular consumers to learn and use, and so powerful. It's that kind of user experience I'd like to see brought over to the desktop as well. I continue to follow the progress of Qt 5, which I believe can be a great framework not just for new desktop paradigms, but for mobile as well. It still seems to have a ways to go before it's stable, but I'm going to start experimenting with it as soon as I can get a build that works on my laptop.

The third area is a new one for me that I started chewing on in my spare time over the last few months, and that's web app development. Node has caught my eye as it has with numerous other developers. It's asynchronous programming model is very similar to the way we often program in embedded to produce scalable systems that react to events in the real world. While JavaScript is the cool thing in the web world these days, I have wondered whether we could provide similar APIs in a type-safe world, say using Java. People use Java on servers, no? And the convergence of server-side apps and mobile clients and embedded devices is a natural. It's the "Internet of Things".

So stay tuned for more over the upcoming days. As I mentioned, writing is good therapy, whether it be text in a blog or code in the exciting new world of mobile/web.

Happy New Year, Out with the Old One.


Surprise! I haven't blogged in a long time (except for the blurbs about the EclipseCon 2012 program, which has turned out great, BTW). There's probably a few good reasons why I haven't spent much time here. The main one, I guess, to quote poor Flyers goaltender Ilya Bryzgalov, I've been a bit "lost in the woods" myself. But like him, that's more a state of mind than fact. And for 2012, I see a few paths that will lead me out of this cloud (or into one which would be one of the paths :).

We lost a lot of great people last year. I'm not sure if it's just my perception because of what happened in my life, but it seems more than usual. For me, it was the loss of my Dad to cancer after a year long battle. He inspired me to live my life with honour and respect for everyone, something which I try to do a lot in my work as the CDT project lead. Communities built based on respect and openness to all comers is the key to success.

Of course, there was Steve Jobs. My wife got me his biography for Christmas and I finished it a couple of days ago. The parallels in his physical condition with my Dad's was amazing. While Steve waited too long to get treatment, my Dad waited too long to get diagnosed and both ended up with their cancer metastasized to their livers which brought about their end. Dad was pretty weak at the end, couldn't eat due to the morphine, but he made one last trip to my dear cousin's wedding where everyone got to see him one last time. Steve was the same and had his last trip to resign as Apple's CEO and had a nice chance to say goodbye. All in all, it's a lesson to take care of yourselves. Treatments are getting pretty good but you got to catch it and act early.

As for Jobs' life and times, I'll dedicate a whole blog article on that. Reading the book was pretty eye opening. I learned a lot about how he really operated and the true reason for his success. And I also got a look into the history and life in Silicon Valley which you don't learn much out here in the wilderness other than the occasional visit. One thing is for sure, I'm pretty sure that life has passed me by and I only regret it a little :).

There were other famous people that passed. Dennis Ritchie being the foremost for me. He doesn't get enough credit for the changes he brought to our industry. Yes, he invented C and helped create Unix, but more importantly, those technologies let average programmers in on the action. Unix machines have always been everywhere and accessible and with their built-in C compiler, you just needed an account to join in on the fun. It's where most of my generation started and why I'm so passionate about the CDT and enabling new generations to learn how to play with fire.

Well, let's stop there for now. I have a lot more to write about and have a new found energy to write about it. I'm hoping this year will be a much better year for me and a great year for you all. Expect to see more in this spot than you have in a long time.


EclipseCon 2012 Early Bird and Looming Deadline


We've had a really good first round of submissions and I have to admit I was overwhelmed by the number that we received. It was awesome and thanks to those who've already submitted. Of course there's always need for more and you have until Friday night to get them in. There are still a few gaps that need to be filled, like tutorials, and we're always interested in new things we haven't thought about.

To highlight the kind of talks we like, we've selected 5 early bird sessions. We're big on technical talks since that's what we hear you want to see most. We're also very interested in talks that help us think about our community and ways of working better with them and achieving growth. Here's the golden five. Only a hundred or so more to go :).
We're looking forward to additional great talks we'll see in the submission system. Get yours in today!

EclipseCon 2012 - Submit Now!


Sounds like EclipseCon Europe was a huge success again. The feedback I have is that the sessions were very well received. We really have a good formula to follow and it's so important to the success of a conference that the community jumps on board and helps out by putting together some great sessions filled with information and anecdotes that the stick with the attendees as they head back to their workplaces. Aside from the camaraderie of being all together in one place, it's the sessions you remember most.

Now it's time to look ahead to EclipseCon 2012 to be held in Reston, Virginia in the Washington D.C. area from March 26-29'th. The program committee and I have had a number of meetings over the last few months and we're ready to go. It's going to be a lot of work going through all the great submissions I know the community is planning and it's going to be tough to make the best decisions. But we have plenty of past experience and community leaders on the committee and I'm confident it'll be good.

Please take note of the deadlines as they are fast approaching. The original deadline of November 11 is still there to help us select a small number of early bird sessions. These talks always get a little extra special attention so don't delay in getting your proposals in. Also the earlier you get your proposals in, the more time the program committee has to look at them. We are already forming opinions as the submissions role in. And don't forget the final deadline is November 18. Our task master Ian ;) is pushing us really hard to get a program selected by December 1, so there's no room for delay.

Submit yours today at

EclipseCon 2012 - We Need You!


Everyone sounds excited about the upcoming EclipseCon Europe 2011. Having been to a few of them, I can confidently say you guys are going to have an awesome time. EclipseCon, whether it's in North America or Europe, is always a great event. It's great because of the people. Because of the community and comradery that we all share whether we're in the sessions, in the halls, or in the bar :). It's a great opportunity to show off what we've been working on, to help those who want to learn more, and to help grow the community.

So while you're packing for EclipseCon Europe, I'd love it if you gave some thought towards EclipseCon North America 2012 next March in a cool new location. The submission deadline is a fast approaching November 11. The success of each EclipseCon leans so heavily on the quality of program. And with such talented people in our community, I know we can put a super program together. But we need your help.

Please think of a great talk or tutorial topic and head over to the submission system and put it in. The earlier you get it in, the more time the Program Committee can spend with it and offer advice to fine tune it for our audience and make sure it's the best it can be. Take your opportunity to help make EclipseCon North America 2012 the best it can be too.

Honoured to be your EclipseCon 2012 Program Chair.

A Reprint for Steve Jobs


I wrote this back in March after being totally inspired by Steve Job's iPad 2 keynote. The passion in his voice led me to believe this was to be his last message to us and he really wanted us to understand what he was trying to say. And in the end I was right. I will never forget those words and I was going to write about them again, but what I wrote back then says is about as good as I can ever do now. Rest in peace, Steve, and we will all try to keep your legacy alive.

As a senior software engineer wondering how the hell does Apple make such great products, if you do anything, listen to the last five minutes of Steve Jobs' keynote introducing the iPad 2. It opened my eyes and made me a believer. Here's what he had to say:

"It's in Apple's DNA that technology alone is not enough. That it's technology married with liberal arts, married with the humanities that yields us the result that makes our hearts sing. And nowhere is that more true than in these post-PC devices. These devices need to be more intuitive than a PC where the software and the hardware and the applications need to intertwine in a more seamless way than they do on a PC. And we think we're on the right track with this. We think we have the right architecture not just in silicon but in the organization to build these kinds of products".

It's the passion with which he said it, and the proof in the products that Apple continues to deliver, that have won over an army of fanboys, that proves he indeed does have the right formula. Technology built for humans, what an incredibly simple yet unappreciated idea by so many in our industry. Sure we have the odd usability expert sprinkled through our organizations, but to have an organization and culture and passion built around these ideas? What magic we could make.

The good news is that I don't think Apple has a patent on these ideas. If they do, I quit now. But I don't think so. Is it possible for a techie to understand what needs to be done? I have my doubts. Techies are an odd sort. We've all seen it. The uber-geek who writes a killer algorithm to make products sing. But he needs help. He needs that special someone to show him how to take that algorithm and produce something regular people will fall in love with. The path is there, and we see it in everything that Apple makes, it works. But don't let them have a monopoly on it.

A UI Revolution is Coming. Are we Ready?


This topic has been brewing in my mind, and in this blog, an in my tweets for months now. And one final event made me certain it is going to happen. And that event was the introduction of Windows 8. Not that Windows 8 is really that big a deal. But it confirms for me a trend that's going to change the way we interact with the desktop applications we use daily, including Eclipse. Yes, a UI Revolution is coming. And we need to make sure we're ready, or Eclipse is going to look old very quickly.What am I talking about? Well, let's start at the beginning. There is no question that Apple started the revolution with the iPhone and iPod Touch. Yes, there's an app for that. There's an app for everything. Apps are small, easy to create with a simple UI that was intuitive even for "regular" people (and, no, computer people aren't very regular). The rest of the world outside the walled garden got their fix thanks to Android and Windows Phone and a few others. Smartphones have revolutionized how we think of applications.Of course, once we have smartphones figured out you want to see if the same ideas scale upwards. The next big hole to fill was tablets. Tablets have been around for a long time albeit with the old UI borrowed from the desktop. It didn't work. But could the smartphone UI scale up to tablet sizes. Indeed. iPad is gigantically successful and Android and Playbook are following behind. We've finally figured out how to make tablets commercially successful by using UI that again was intuitive for everyone.Now, as I've been wondering here and there, what about the desktop? Does it make sense to bring these same principles to machines with larger and multiple screens with keyboards and mice and fast CPUs and GPUs? Well, I think we hit a tipping point. And that point happened when someone got the bright idea to slap a keyboard and trackpad onto a tablet, i.e., the Asus Eee Pad Transformer. Watching the videos people have posted onto YouTube of the Transformer in action, I am convinced that a tablet UI would work just fine on a desktop platform.And apparently, so is Microsoft, which brings us back to Windows 8. Early videos of it show off exactly that. It's the Windows Phone 7 UI, scaled up for both tablets and the desktop. And I think it looks pretty sharp. And I don't see any reason why Android couldn't do the same. And with the work Nokia/Trolltech are doing with Qt version 5, I can see how we can do the same for Linux. We all love the usability of our mobile devices, I want to love my desktop just as much.But there's problem. Watch the Windows 8 demo when they bring up Excel. It's revolting, but in the wrong direction. You finally see how bad the old time UI that we've had for decades and that has been replicated on every desktop OS we know really is. We really need to invest in upgrading the UI and potentially reinventing those applications if we want to keep them around.And, yeah, that includes Eclipse. Unfortunately, the old technique of putting a common API over the native UI frameworks isn't going to work. The new frameworks are just too different. And making them common looses the gains they bring individually. We got away with it before because they used to be so similar. Not any more.So what are we going to do? There's many ways, I suppose. The itemis guys gave a great presentation at EclipseCon on one of the strategies they used. They use a DSL that implements the logic and general layout and generate code for each of the UI frameworks they support. It was cool but I'm not sure how complex of an app you can build that way.But I do think they are on to something. You need to program the UI in the languag[...]

Build for All


OK, when a thought spreads out more than two tweets, it's time to write a blog entry instead. Ed Merks tweeted from the Eclipse board meeting (I presume) about the board's concern that if Kim Moir got hit by a bus, we'd all be screwed, or something to that affect. And it's true. Kim is a most valuable person at release time for getting the Eclipse train out the door. Without her for the Eclipse Platform, or David for the p2 site aggregation, or Markus for the EPP builds, we'd be scrambling.

So while I don't want to take anything away from the great work they do, I do think it's time to move to a better system where anyone can easily jump into their shoes. Not only that, but I'd like it to be easy for anyone to be able to checkout all the Eclipse projects they need and build their own product from it. I often get questions on the recommended approach to do such a thing and I don't have an easy answer for them.

But there are two technologies that we are currently deploying that can improve the situation immensely. And I am working on bringing both to the CDT. The first is git and the second is Maven with the help of the Tycho plugins. As an example, I'd like to checkout all the source that feeds into the Eclipse C/C++ IDE package and then from the root directory, type 'mvn clean install' and have the zip file come out at the end.

Better yet, I'd like to clone all the source, commit any bug in any of that source on a branch, and do a build to get a test package, or a package I can send to my downstream customers. That scenario happens all the time in open source and git is making it a lot easier to manage your local branch, while making it easier to push changes upstream. And Maven/Tycho can make it easier to send builds downstream.

But it only really works if all Eclipse projects buy in. Maven can be done in parallel with whatever build system they are using so that's not a huge problem. Getting them all to move to git is a bigger challenge. But I see the momentum starting, especially with the Eclipse Platform project discussing moving. So I'm confident we can get there. We just need to show the value the community gets from the significant work that is required to make these changes. And then we can leverage that good work ourselves and build the EPPs at using the same technology.

Hope Returns for Linux Desktop


So you may be wondering why I care so much about finding the next generation desktop UI. I have expressed here my hope for Android and whether it works to bring the advances made in tablet UI design to the desktop. I have also expressed my dismay at how ugly, i.e. low usability, that the Linux desktop brings today. Windows 7 is fine but the underlying OS is not very good for developers needing the great tools that *nix brings. And that brings us to Mac.

Many have noticed how often you see developers using Macs. It seems to be the standard platform for the Android devs at Google. Many Eclipse developers are using them as evidenced by number of Apple logos on laptop lids you see looking out to the crowds at EclipseCon. The Mac seems to bring the best of both worlds to the developer, a great UI along with a powerful Unix operating system underneath.

But I have one problem with that. My employer won't buy me a Mac, not many do. And I'm not willing to pay my own money to enter into the walled garden. My family is happy with their Windows PCs. It's what they're used to, and it runs the games they play. And I have more important things to spend money on.

So it all seemed like doom. The alternatives just weren't there and my hopes seemed more like dreams. But something's changed. Android does seem to be getting closer to the desktop as evidenced by the new tablet/netbook convertibles that are out and coming down the pipe. But the thing that has me excited actually is two advances in the last few months with Linux.

One, the Wayland display server seems to be gaining momentum. Or at least I've managed to build it and have seen it running. It throws away X, the bane of the Linux desktop experience, and replaces it with an OpenGL compositor. I expect that momentum to accelerate thanks to the second advance. And that is Qt 5 and it's declaration of Wayland as one of it's key target platforms. Combine that with graphics acceleration that becomes the heart of the Qt 5 architecture, I think the possibility now exists for a Linux desktop that looks as great as Mac and with the same *nix underpinnings. Perfect.

And with Qt's use of declarative UI with JavaScript underpinnings, called QML, it should be easy to build a complete desktop environment. No Gnome. No KDE. Something new that gives us a new level of usability. My dreams are turning back into hope. Linux may just have it's day yet. And developers will benefit.

Update: That reminds me, I think the Eclipse front end should be replaced with Qt 5. It runs everywhere Eclipse does. Now that would be something...

Qt 5 #ftw


I just finished reading Lars Knoll's blog and his whitepaper on Qt 5, the next major version of Qt. I don't think their plans can get any better. I am an instant fan.

They are planning on making it a true open source project "from day 1." This is critical to the future success of Qt 5, especially given all the questions over Nokia's future direction with Qt. While it helps with the trust factor, it's also a great move by Nokia who are showing they are concerned for Qt's future and community.

The most exciting stuff though is technical. They recognize that user interfaces are going through dramatic change. And that hardware accelerated graphics is at the root of that change. People want to manipulate objects in their applications, not stare at static widgets. As I mentioned to a colleague the other day, people want their user interfaces to be real, for the objects to have realistic physical properties, to have weight. With the architectural changes they are planning for Qt 5, it'll be a lot easier to build such interfaces.

There's also the recognition that people don't want to write reams of code to make these interfaces happen. Qt will bring their markup language, QML, front and center to the developer. JavaScript, using Google's V8 engine, will be the secondary programming language. C++ will still be available but you only need to use it where you need to use it. Again, all this is focused on making applications easier to build.

One of the key advantages of Qt has been multi-platform support. With the focus on using scenegraph's as the key composition mechanism, the requirements on the host windowing system is reduced greatly. And with their new Lighthouse architecture, porting will be even easier. And what that should lead to is the quick arrival of ports to Android and iOS, bridging the gap between the desktop and mobile device like no one else has. And with Wayland given prominence as one of the primary supported platforms, my hopes for a revamped Linux desktop are given a lifeline.

I'm pretty pumped about this news (obviously). And I'm excited for the future of computing devices with truly usable UIs. But seeing this news, along with watching demos of Apple's new tablet apps (especially Garageband), Android's Honeycomb, RIM's Playbook with the TAT interface, Eclipse's UI all of a sudden looks very old. I'm not sure if Eclipse 4.x gets us any closer to this level, but I'll be very curious to see how we can bridge Eclipse onto the new Qt 5. This is where I fear for the future of Eclipse.

Eclipse on Android, or Android-like usability for Linux?


If you follow my blogs and my tweets, you know me as an Android fan boy. There are a number of reasons why but the main ones are that it provides a huge leap in usability and I can build from source myself and get it running on any device I want. And that includes x86 PCs, some provided by AOSP itself and a lot from the valiant effort put on by the android-x86 gang. And now having seen live action videos of the ASUS Eee Pad Transformer, the Android tablet that transforms into a netbook, I am even more convinced how cool it would be to have Android as my PC environment.

But, there's a problem. The applications I use, and that of course includes Eclipse, don't run on Android. I also spend a lot of time doing embedded system platform builds and the Android user-space is missing almost every utility I would need, including the gnu compilers. Now nothing technical prevents these things from being ported over to Android as it is built on a Linux/FreeBSD inspired base and you could probably work around the few twists that come with it. And I do know a few people that would love to see Eclipse running on these Android netbook type devices. And maybe there is a future in that.

On the other hand, I have everything I want on Linux. But I find the usability horrible. I've had a chance to play with GNOME 3 with Fedora 15 and it is a big improvement, but I fear we'll be living a long time with the legacy GTK-based tools which are really getting out-dated. Even Qt comes with it's own set of issues.

I blame it all on X in the end. It probably doesn't deserve it, but I've been an X user ever since I built X11R2 myself 20+ years ago. It's old and it's done. The new effort behind the Wayland display server provides a much better architecture IMHO. It gets rid of all the X legacy and builds directly on top of EGL and OpenGL ES. That should give us the flexibility to do some really good things with usability with the help of accelerated graphics hardware and physics engines. That's what Android Honeycomb does, and there's no reason why we couldn't provide an equivalent environment for Linux. It's just a matter of someone driving the vision in that direction.

And who knows. Once Wayland is in place, how much effort would it be to provide the Android run-time mixed in with the Linux user-space. The RIM guys have figured that out with the PlayBook and their Android support someone astutely coined FrankenBerry. Wayland could easily support a client that drew at the command of an Android app.

No matter how you slice it, it's a great time to be in the software business. The mobile guys are driving innovation in usability. Us desktop guys need to find a way to catch up.

The Rise of the User


One thing is becoming more and more clear. Large companies that are users of Eclipse technologies are getting more and more involved directly in the building of those technologies. I've definitely seen this in the CDT space where probably about 1/3 of our committers are from companies like this.

One thing needs to be made clear, though. This is a gigantic shift in the tectonic plates that is the embedded software business. Supply chains are king and in the past companies relied solely on their suppliers to meet their needs and were held accountable for anything that went wrong.

With the advance of open source technologies in these companies, I'm convinced it requires a change in strategy for the suppliers. Suppliers need to be more sensitive to the aspirations of their customers in open source. I'm not sure what that means and how they need to change their practices to accommodate this change in the industry. But those that don't change will be hurting somewhere down the road. It's an interesting and scary time all rolled into one.

Eclipse and the Post-PC Era PC


The best thing about EclipseCon isn't the sessions, although all the ones I've been to so far have be great and educational. It's not the receptions, although what a great way to get a feel for the energy around Eclipse. It's not the beer, sacrilege you say. It's those little conversations you get into with fellow Eclipse contributors about the craziness we could get into if we dare try.

Last night I was talking to an e4 committer to be unnamed to protect the (not quite) innocent. I was commenting that e4 really has piqued my interest with the performance and the promise of flexibility. But the one thing that really bugs me, and I mean really bugs me, is the editor area and how it looks so different from the editor area we have in 3.x and really sticks out like a sore thumb. He explained that it was intended to support the use case where you have two editors split in the area to do a file compare and you wanted to send them both into a shared full screen mode.

OK, I get that. But I do fear though for the poor new user who will see this and be really confused at look of it. He may not think immediately that there's a problem, but something will be latent bugging him that things just aren't quite right and he'll feel comfortable and uncertain about why things look the way they do. Not to mention the screen real estate it takes up.

At any rate, this blog isn't about that. It's about what I brought up next. I jumped into the rant I started with my last blog entry about the need for us to take very seriously that we are building this stuff for humans. We need to empathise with them, and as technologists, we aren't very good at that. It's just part of our nature. And it's worse when we actually think we are when we're not, and that's how we get so much crappy software out there in the industry. We need to build are software organizations and get into our DNA that it takes more than just great technology to make great products. We need to understand or get people who's job it is to understand humanity and what the humans who are are customers real needs are, especially the ones that they can't even express themselves.

And we all know by now that Apple and the rest of the tablet vendors (and I played with a live RIM Playbook yesterday and it's pretty hot) get this and have it in their DNA to get usability right. And I have a burning curiosity about what the world would be like if that effort also went towards fixing the usability on my laptop and what a "Post-PC Era PC" and particularly Android Honeycomb like the one that ASUS recently announced. They've managed to take their work from 4" smartphones to 10" tablets. Can they take it to my 15" laptop and my 24" desktop. I think, or at least hope, so.

And I pose the question, what would Eclipse look like on this device? What would Eclipse look like if it was an Android app that followed the look and feel of the other Android apps. We pondered that for a bit. There wasn't an overwhelming favourable response from the crowd that had gathered by that time. But I am very curious and hopefully we can at least understand what the tablet makers are trying to accomplish and help drive forward that kind of innovation in usability at Eclipse as well.

Understanding Apple's Greatness


As a senior software engineer wondering how the hell does Apple make such great products, if you do anything, listen to the last five minutes of Steve Jobs' keynote introducing the iPad 2. It opened my eyes and made me a believer. Here's what he had to say:

"It's in Apple's DNA that technology alone is not enough. That it's technology married with liberal arts, married with the humanities that yields us the result that makes our hearts sing. And nowhere is that more true than in these post-PC devices. These devices need to be more intuitive than a PC where the software and the hardware and the applications need to intertwine in a more seamless way than they do on a PC. And we think we're on the right track with this. We think we have the right architecture not just in silicon but in the organization to build these kinds of products".

It's the passion with which he said it, and the proof in the products that Apple continues to deliver, that have won over an army of fanboys, that proves he indeed does have the right formula. Technology built for humans, what an incredibly simple yet unappreciated idea by so many in our industry. Sure we have the odd usability expert sprinkled through our organizations, but to have an organization and culture and passion built around these ideas? What magic we could make.

The good news is that I don't think Apple has a patent on these ideas. If they do, I quit now. But I don't think so. Is it possible for a techie to understand what needs to be done? I have my doubts. Techies are an odd sort. We've all seen it. The uber-geek who writes a killer algorithm to make products sing. But he needs help. He needs that special someone to show him how to take that algorithm and produce something regular people will fall in love with. The path is there, and we see it in everything that Apple makes, it works. But don't let them have a monopoly on it.

Mobile Platforms Rule, Next Stop Desktop


What a crazy week in the mobile world. Android's tablet buzz continues to gain steam towards an imminent launch. Rumors of Apple's iPad 2 are starting to roll in. Rumors of RIM's BlackPad, uh, I mean PlayBook, running Android apps. Then some concrete announcements from HP on the rejuvenated webOS with some nice looking phones and tablet. And today the big Nokia/Microsoft Phone announcement. How does one keep up with it all while trying to do their day job :).

With all that's going on, it's pretty clear one thing in my mind. The rate of innovation in the mobile space is stunning. Why did it take these new platforms to unleash all this creativity. Why doesn't my desktop look as sexy as all these tablets? What a price we paid for platform certainty under Microsoft, the closed hardware ecosystem of Mac, and the lack of real investment into the usability of Linux. It's quite sad, really.

But I also sense opportunity. I've been closely following the progress of the project as they attempt to bring Android to x86 platforms, because I'm very curious about how the Android experience could scale to the traditional netbook, notebook, desktop. Frankly, it isn't very good. But with Honeycomb, and the focus on larger screens, I have hope that will change. We'll see when Honeycomb hits the AOSP.

And that thinking was somewhat validated by one of the most interesting announcements out of the HP event, at least in my mind. And that was the intention of HP to bring webOS into the PC space as well. Now all we got were words and almost no details, let alone a demo, but I am very curious about what they are going to come up with, and whether it will actually pan out or not (there was a sniff of vaporware in the air).

So we'll see where this all lands. I hope we find out soon as this thing is keeping me up at nights thinking of all the possibilities and how this will change app development. As I keep saying, it sure is a great time to be a software developer. The shackles of the past couple of decades have been released and innovation is rampant.

Coding from Workstation and PC to Tablet and Superphone?


In the early days of my career as a software designer, standard fair was to have a workstation on your desk. These were pretty big machines specially built to get as much power as it could out of hardware that we had at the time. They were pretty expensive, but they were the only thing that could run the tools that we needed to run. HP and Sun where the big players there, with Sun's SPARCstations being the cat's meow.

Then a major shift happened. Desktop PCs, driven by consumer needs and economies of scale, got to be as fast as these machines at a fraction of the cost. Yeah, you had to deal with Windows NT, but the economics of it really left us with little choice. And that left very few people still using workstations and it pretty much killed that industry, or at least left it to small niches and conservative companies that still fear Windows.

In the last five years, you see laptops starting to eat away at the desktop. There's nothing more liberating than sitting on you couch coding up a storm while the hockey game is playing in the background. Lots of software developers are using laptops as their main machine, yours truly included. The desktop machine is now only needed when I have big builds to do that require fast disks and 8 threads of CPU. Mind you if I could get that in a laptop that doesn't set my pants on fire, I would.

So all along it seems, we've been following the consumer as they paved the way to cheap and powerful computing devices. And as we've seen at recent Apple events and last week's CES, it's pretty clear the consumer is heading somewhere new, to the ultra-mobile with superphones and tablets. The question is, can we software engineers follow?

I think in the past we were able to follow because there were always high end versions of the consumer devices that could meet our needs. And it left in place one very critical tool for the software guy, the keyboard. Until we stop coding in text, we can't give up our keyboards. But aside from that, I don't see the high end version of these devices that could do a massive build or run a big IDE like Eclipse. They really are a new class that I don't think will cut it, at least not on their own.

So where does this leave us? Well, one answer jumps to mind which I'm not sure I like yet. There's growing discussions about cloud computing and doing software development in the cloud. I've investigated it myself in the past and it is a very plausible future. Though, I'm not sure we're ready to sit for a 10 hour day typing code into a tablet or superphone but I can imagine there being some use to being ultra-mobile for the software developer and not being too far away from his code. Tools like Hudson would show just fine viewed from a web browser on a tablet or from a smartphone app (which already exists BTW).

It's going to take some time to figure out how to leverage these devices, but you can count on one thing. We're all gadget junkies and we'll figure it out somehow.