ReviewMate - the best Code Review editor for Eclipse

Thursday, August 19, 2010 7 comments
We're proud to announce the public beta of ReviewMate, the best (in our opinion) code review tool for Eclipse.

ReviewMate is different from other code review tools because it allows you to add comments right in the context of the code itself. No more entering code comments in awkward forms. Simply highlight a few lines of code, click the Comment button, and your new comment bubble will appear in the right margin.

Thanks to ReviewMate's innovative technique for code formatting, almost any programming language can be handled by the ReviewMate editor. Even formats like HTML and SQL. If you're Eclipse IDE can format the file, so can ReviewMate.

Check out the ReviewMate page on and sign up for the free public beta.

A World Without Browser Plugins

Monday, February 01, 2010 14 comments
...scares the hell out of me. Apple recently announced the iPad and unless you're living under a rock you've heard about it and probably the brouhaha over its refusal to allow Flash. Apparently the iPad won't allow any browser plugins. I am scared to hell.

Web/browser-based applications are the future. We will continue to move further away from the desktop. Soon enough, almost all widespread software will be browser-based. Today that means HTML+Javascript, plus Flash, Silverlight, Java or any other plugin-based approach. If Steve Job's has his way, we won't have any plugins. The Open Web crowd want the same. So just HTML and Javascript. Regardless of how you feel about HTML+Javascript today, everyone has to agree that the rate of innovation here is very very slow. The HTML5 mess including the recent spat about video codecs shows us again that Design by Committee is the worst sort of process.

Now imagine a world where this is the ONLY avenue for new innovations in client-side languages and platforms. If we remove plugins this is all we have left. On the client side, there will be no new languages - just Javascript. There will be no new languages to sprout up like Java or Ruby have done in the past decade. Nope - Javascript is the standard. Nobody will have the motivations (i.e. there will be no money in it) or ability to add a new language to the browser standards. And there will be no way around this via plugins.

Steve Jobs certainly has his master plan and hopes to make large sums of money on the iPad and the continuing dominance of the iPhone. But the Open Web folks seemingly come from a more philosophic/political agenda - "The Web Should be Free". What happens when that comes true. What happens when we've successfully prevented all corporate interests from profiting off client technologies on the internet? Then certainly no companies will invest in the client technologies. We've salted our own fields. We've put our sole hope for new innovation in a committee process thats proven itself time and time again, both in general theory and in specific practice of these groups, to be slow and fraught with problems.

Code Review editor for Eclipse

Wednesday, January 13, 2010 19 comments
I'm a big fan of peer code reviews. I don't think anything helps raise the average code quality of a project than requiring each line of code be reviewed by at least one other developer. When we know that what we're writing is going to be reviewed, we all write better code.

But I've never really found a code review tool for Eclipse that worked how I wanted. The holy grail of review tools (well - my holy grail anyways) was to have a tool that works much like MS Word's review feature. Where you can add and see comment in a margin on the right of the document. At ElementRiver, since we didn't find one that had that feature, we wrote one ourselves.

This editor is currently part of our beta SourceMate plugin for Flash Builder 4, but we plan on pulling it out into an independent product. It is designed to work with any language that Eclipse supports.

  • Comments are added and updated all on the right margin. You never have to switch contexts (i.e. switching editors, looking down at a view, etc). It all done with your code front and center.
  • Comments are color coded by reviewer and each color can be customized.
  • Comments are shown in the code itself, in the right hand comment margin, and in the smaller overview ruler.
  • Comments can be marked resolved. When resolved, comments are still shown but they're faded out.
  • and more

My Flex 2010 Wish List

Monday, January 04, 2010 12 comments
I can't believe 2009 is already over. But now that it is, its time to look forward to 2010. Adobe is planning on new releases of the Flex SDK, Flash Builder, and the 10.1 Flash Player this year so we all have reason to be excited. (Oh and don't forget SourceMate too). Its probably too late to influence these new 2010 releases, but I'm still going to throw out my Flex wish list for the future.

Fortunately my wish list isn't really very long. In fact, I only have two real items:

Full HTML browser within Flex

Today you can't really integrate HTML content into a Flex application. There are a few tricky solutions (mostly provided by floating an iframe on top of the Flash player). Unfortunately these have all kinds of problems. First, we have to change the wmode of the player for these to even work - and that immediately prevents screen readers from working. So enterprise applications where 508 compliance is required can't even contemplate these solutions. And even when we can use them, we're still stuck with other limitations as the actual HTML content is floating above our app and not really inside it.

To some people this might not seem like a very important feature request, but I've found quite the opposite. Every customer or potential customer I speak with runs into this. Portals/portlets are still all the rage (right or wrongly). Customers want a portal application where they can embed both HTML/JS portlets and Flash portlets. These customers have to choose HTML as their main platform (i.e. the container) rather than Flex. Other times, customers have an existing Java-based web app that they'd like to transition over to Flex. The keyword is transition. They can't just throw away their existing app and start over. They need to replace it bit by bit. But the architectures of Flex and the Web 1.0 world of these legacy Java web apps don't mix well. Ideally, they could rewrite the main frame of the application in Flex and pull in pages (say in a tab folder or something similar) of the old web app. Right now, thats not really feasible.

This is the #1 reason (in my experience) why organizations don't choose Flex.

Flex Compiler Performance Improvements

The Flex compiler is slooooow. Its been improved noticeably with Flex4. But its still too slow. On large projects its horrendously slow. This is one aspect where Flex and Flash Builder do not compare favorably with HTML/JS (obviously no compiling there) but also with Java or any other platform I've had recent experience with. I still believe developing with Flex, due to the productivity of the architecture, Actionscript language, and Flash Builder IDE is levels of magnitude better than AJAX. Yet, I can't stand the constant interruptions while I wait for the Flex compiler to finish. Fast is a feature!

To Adobe's credit, they do appear to be working on it. I just hope the work done in the Flex 4 cycle is the beginning and not the end of the improvements.

These two changes arise from the experience of Java developers moving to Flex - both my own experience, and what I've gleaned from talking to customers and their developers about moving to Flex. If Adobe resolves these, I think we'd see more Java developers happily using Flex in the future.

Refactoring plug-in for Flex Builder

Monday, December 14, 2009 3 comments
While working on our OSGi inspired framework for Flex, the team at ElementRiver quickly realized we wanted more out of our Actionscript IDE. FlexBuilder is a good IDE but is missing some of the tools we've come to love with the Eclipse Java tooling.

So we created SourceMate. SourceMate adds refactoring, code generation, code snippets, even a very cool code review tool.

Our beta program begins this week. If you're a Flex developer give SourceMate a try:

The Problem with Portlets

Thursday, October 01, 2009 1 comments
Great quote from this article on JPMorgan's use of Flex:

It has the look and feel of a portal with several portlets, but Cassar stresses that it is in fact so much more. "It's a set of very tightly integrated applications in a container," he says. "The problem with the portal technology is that usually the interaction between the portlets isn't there-they each kind of stand alone. They have to run in their own browser sandbox, whereas this really allows for the more tightly coupled interaction."

Ain't that the truth. There are some architects that go around telling people that their applications, in fact all applications, should be portlets or mashups or gadgets or whatever term we're using now. This started in the Java world and seems to be gaining traction in the AJAX world as well. Count me out.

Eclipse and Potomac applications are better examples. They're made up discrete components that can truely integrate together.

I'm currently working on enabling untrusted, cross-domain bundles in Potomac. My primary goal is to ensure that untrusted bundles can integrate deeply with the main application. We have to move away from iframe-like integration - what I like to call integration via rectangle. Flash's security model is essentially the same iframe-like model. In Potomac, we hope to enable better/deeper integration, while still being secure and easy to code.

p.s. I wonder if those JPMorgan guys have looked at Potomac? ;)

Potomac Framework is live - OSGi, RCP for Flex

Tuesday, September 22, 2009 3 comments
I'm happy to announce that we've made Potomac live to the public. You can find its new home at

Potomac tries to take the modularity in OSGi and the UI composition from the Eclipse RCP and bring it to Flex. It isn't an easy task - we've had to write a fair bit of tooling on top of FlexBuilder to help accomplish it.

One of the most exciting features of Potomac is its metadata support (Flex metadata ~= Java annotation). All extensions and extension points are defined in code via metadata. Its been great to see this feature come together. Contributions to the UI are handled via [Page], [Folder], and [Part] tags but also other features like [Inject] are also based on extension points. After seeing the results, it might have been better to rename the feature to more generic since its become more like a generic metadata processor.

You can see more in the Potomac 5 Minute Tour.