Friday, February 10, 2012

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! http://www.eclipsecon.org/2012

Friday, February 03, 2012

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

Tuesday, January 31, 2012

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.js 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.

Monday, January 02, 2012

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.

:D

Wednesday, November 16, 2011

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!

Wednesday, November 09, 2011

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 http://eclipsecon.org

Thursday, October 20, 2011

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.

http://www.eclipsecon.org/2012/program/sessions/proposed

Honoured to be your EclipseCon 2012 Program Chair.
Doug.

Thursday, October 06, 2011

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.

Tuesday, June 21, 2011

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 language and technique that the framework supports. But the core logic of the application should be able to stay the same. You know, Model-View-Controller, and you only need to swap out the View part? And we should be set up for that, no? Isn't that why we broke things up into ui and core plug-ins? Or do we have so much logic in the ui plug-ins that this won't work?

So this is an area I'm going to try and prototype. And I'll start with Qt5 with their QML Javascript-ish UI language and see whether I can hook up Eclipse services through some sort of QObject C++ to Java bridge and make them dance. I have a feeling it's going to be a dismal failure. But you have to start somewhere. Doing nothing doesn't leave me feeling very comfortable about Eclipse's future after the revolution.

Wednesday, June 15, 2011

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 eclipse.org using the same technology.

Monday, May 23, 2011

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...

Monday, May 09, 2011

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.

Friday, April 22, 2011

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.

Tuesday, March 29, 2011

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.

Wednesday, March 23, 2011

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.

Monday, March 07, 2011

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.

Friday, February 11, 2011

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 android-x86.org 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.

Sunday, January 09, 2011

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.

Wednesday, December 22, 2010

Is Backward Compatibility Futile?

In the last few weeks I've run into two products that I'm working with that try to maintain backwards compatibility with previous Eclipse releases. That is, while working on an upcoming release they want to make sure their plug-ins work all they way back to Eclipse 3.4 (one case only to 3.5, but still).

And I understand the desire of that. I've found old plug-ins that I want to use which claim support for 3.5 say and I'm very happy when they install and run with 3.6. And I'm even happier when the install into and work with M4 of Indigo. It's a difficult decision to pull back from the latest and greatest to get some needed functionality. It doesn't seem right.

But for these products, one thing should get in the way of that, the CDT. We don't claim 100% API compatibility from year to year. There's a reason why we're working on CDT 8.0 while the platform is still 3.7. And there's lots of practical reasons behind that, the main one being that we don't want to be tied to bad decisions made in the previous release. The more external tools we try to integrate and new features and just general clean up, we need to make things better even if we have to change APIs to do it.

No it's not fair to the community, but then we really haven't had a lot of push back from the community to stop that behavior. We can only assume they're reasonably happy to follow along, releasing their plug-ins with a fixed line up of Platform and CDT. And maybe that's it. The CDT ecosystem isn't set up where vendors plug-in their CDT integrations into each other. We tend to be competitors at that level, not partners.

But I think that is going to change very soon. Of the two products I mentioned, one is more mature and I guess CDT just happens to be backwards compatible enough that things just work. I'm a bit surprised but it relies mainly on debug APIs which we've been pretty careful to preserve. But without guarantees, I fear what they are doing.

The other is new and I'm kinda getting in on the ground floor. I have to decide which version of CDT to support. The rest of the stack supports back to Eclipse 3.5 which would be CDT 6. But then I want to do something good with CDT scanner discovery to properly set up the indexer. There should be some nice fixes in the upcoming CDT 8 for that. So do I have two versions of this thing? That's kind of where it goes, which is why I'm hoping we get these APIs locked down soon, for the good of all integrators who are facing the same decisions.

Wednesday, December 08, 2010

A Switch in the Grassroots? to Mobile?

It's no secret I'm an Android fanboy, of fanbois, or what have you. I'm not sure why. I guess what really sold me was the ability to run it in an emulator on my laptop before it was even available in phones. It was exactly what I was looking for in a mobile/embedded target so I could play there and learn what application developers need out of their IDE, or in my case, the CDT. Yes, iPhone was already out but I didn't have a Mac so Android sold it for me. If I had a Mac, who knows, maybe I'd be an iPhone fanboy with the rest of them.

As I mentioned in my last blog, I've been busy doing "real" work here at Wind River and now have finally got a chance to stick my head up and see what the CDT needs from me. My efforts in the CDT in recent years is all about getting the CDT into the hands of the grassroots of software developers, people who are hobbyists or students who are looking for a free IDE they can use on their projects. The commercial theory behind that is to make the CDT ubiquitous so that when we go to sell them our high value products based on the CDT, they have less of a learning curve and barrier to adopt those tools. Can't say whether that's been working or not, but there is no doubt that the CDT plays a major role in the embedded space where I work.

But, now, I am starting to wonder if my past focus on the grassroots needs to change. Previously, it was all about supporting Windows development with the CDT. Linux too, but that was generally taken care of without my help. The Wascana project was born out of that and with Helios it reached it's 1.0 version. You look at it, though, it only has 10,000 downloads which is actually half of the previous 0.9 version I released 2 years ago and that release had nowhere near the advertising I have tried to give Wascana 1.0, even with a prominent mention on CDT's download page. Maybe the grassroots has switched. And I think I know where I need to focus next.

I don't know if you've been following the geek news but Android 2.3 was released yesterday. As @sogrady correctly pointed out, there's not much exciting there, at least not for the consumer. But if you're an Android app developer, especially one who's been trying to write games and multimedia apps using C++, it is a revolution. The Android NDK team has finally provided APIs for audio and input events that have made life pretty difficult for these guys. Not only that, they've added a framework that allows you to create an Android app without writing a single line of Java code. It's awesome :).

And that has me thinking now. We've had repeated asks and attempts from users trying to use CDT for iPhone development. And we've seen developers in the Android community using straight CDT or with the plug-ins that currently reside in the Eclipse Sequoyah project. I firmly believe that this is the next grassroots. As the computer industry changes, so do the developers and I need to make sure that the mobile app devs have a low barrier to use the CDT for their projects. Sorry Wascana and Windows, I need to change my focus.