Skip to content

Code Reviewing and Tooling the RIA world – make all #014


In this episode, I talk with Chris Gross (@chris_gross) of ElementRiver. They work on two development tools, SourceMate and ReviewMate. We discuss the Flash and Flex RIA world where SourceMate fits in and the practices in general code review, where ReviewMate operates.

Download the episode directly right here, subscribe to the feed in iTunes or other podcatcher to have episodes downloaded automatically, or just click play below to listen to it right here:

Show Notes

  • I ask Chris to go over the founding of ElementRiver – how did they decide to get into the trying business of developer tools?
  • We discuss the functionality SourceMate provides as an add-on to FlashBuilder.
  • Chris tells us his top 3 features in SourceMate: snippets, auto-correct, and annotations.
  • I ask Chris what types of applications and teams he’s seeing doing RIA. Several internal application teams, among other types.
  • We discuss the code reviewing workflows that ReviewMate enables. The decentralized nature (no server needed except version control) is interesting.
  • While it’s not one of the primary products, we talk about the Potomac Framework for Flex, “a modularity framework inspired by OSGi.” See also this press release from Sep. 2009 on it.
  • Given that we’re in the RIA space, I ask for his take on “HTML5.” Chris gives a pretty balanced way to figure out when to do web apps vs. things like Flash or Silverlight.


As usual with these un-sponsored episodes, I haven’t spent time to clean up the transcript. If you see us saying something crazy, check the original audio first. There are time-codes where there were transcription problems.

Michael Coté: Well, hello everybody. Welcome to another edition of Make All. This is one of the Make All remote editions where I’m not actually face to face with someone.

So, you’ll be lucky that you won’t have to hear the birds and the doors or other things opening. As always, this is your host Michael Coté available at, I work with Red Monk there. Here at Make All, we like to talk about fun and interesting stuff going on with those damn computers, as I like to say. In this episode, I spun-off or spun-out or grew Make All out of another podcast I had RIA Weekly.

This is a nice guest we have on this episode, because we’re kind of getting back to those original RIA routes by talking with someone, a client of ours actually, with the founder I guess of a small company called Element River, but I would like to let the guest introduce himself.

Why don’t you give yourself an introduction rather than me stumbling through one?

Chris Gross: Sure, thanks Michael. This is Chris Gross. I am the founder of Element River. We’re a RIA tools and solutions company. About me personally, so I founded Element River about a year-and-a half to two years ago. Prior to that, I had an extent at IBM and before that, I worked at a smaller software company called Chesapeake Systems. I’ve been a software developer, kind of jumped from different languages, but predominantly on Java for being the past 10 or 15 years with a kind of particular specialty on Eclipse and more recently, in Flex and Flash development.

Michael Coté: You actually worked on the Eclipse Nebula Project, right or actually you might still work on it?

Chris Gross: Yeah, I don’t do any real commits to Nebula anymore, but I was the Founder and Creator of the Nebula project at Eclipse, which brought custom widgets, custom controls to the 00:01:54 built on Eclipse’s CDT to this sort of a Eclipse umbrella. So yeah, that has been a couple of years. We’re back, we started that project and I think that’s been very successful. I think one of the more popular projects at

Michael Coté: So, I mean to boil it down, you are kind of like UI guy, you work on a lot of UI stuff, it sounds like in the UI layer of the stack.

Chris Gross: Yeah, definitely and sort of with the founding in our pack of Element River, also a tools guy, a lot of experience and specialization in Eclipse and you can see that with our main products SourceMate.

Michael Coté: So, you guys started Element River back in ‘09, right. So pretty recently and you know, you have a relatively comfy extent as you were saying going on at big company like IBM, but like what made you want to like take the leap and be like spinning up and I mean, it’s a huge risk to startup a tools company in the development space, right? And like, so I mean what was kind of like — what kind of convinced you that it was like worth the sort of leap going into that challenging, but a space that can be pretty fun if you can do the right kind of tooling.

Chris Gross: Right. Well, I think that there is an opportunity there. I think that, we see continuing adoption of Flash and Flex. And I think personally, I had seen a lot of developers sort of get challenged when they’re moving from maybe their old .NET developers, old Java developers, moving into the sort of the new world of web tools sort of web apps. And you know whether they were using Java script, maybe if they’re using Java Script, they’re having a lot of difficulty.

We saw a lot of focus around that period of time in 2009 where companies were interested in Flex. And we thought there was an opportunity there to provide tools with that kind of market and not just tools, but also frameworks and we do consulting around Flex as well. So, it was a combination of having the skills, kind of seeing some trends going in that area and then just wanting to capitalize on that.

Michael Coté: Then, have you guys been doing Flex development or was it something that you got into because you were doing — because you started Element River?

Chris Gross: So, I had done a data Flex development. I hadn’t — I wasn’t maybe one of the original Flex adopters, but maybe in the past six months to a year before I started Element River. I had definitely dived in and have built some things with Flex, but since starting Element River, then we went full – dove in, right in.

Michael Coté: Yeah, I mean I think around that time was one of the heights of people kind of taking Flex and Flash seriously as a UI layer, right. And so it does make sense that, that’s right around the time when I finally saw a lot of Java developers than other developers kind of finally getting in, mainstream developers I guess finally getting into doing Flex stuff. And it seems to a kind of stayed at that level of interest, if you will. I mean, it’s always without digging very deeply into sort of adoption patterns and things like that, it’s always difficult from the outside to — or to casually get a sense of how much Flex is out there, because all the mobile stuff distracts so much from all the other Flex application development going on.

Chris Gross: Right, right.

Michael Coté: It definitely is, I mean especially in like you know looking over some of the — you know you guys do a pretty good job of cataloging like people twittering about your product like SourceMate and maybe ReviewMate, that’s a little newer, but everyone is always saying how — so the functionality that you bring basically the Flex Builder, the additional functionality is definitely something that they enjoy and they often say it’s something that was kind of missing from the experience, so it definitely does seem to be that dry out there for it. And obviously, since you guys have been around like you said a year-and-a-half, that’s kind of just passed that point where you would have given up if it didn’t work out.

Chris Gross: Right, right, yeah, now we’ve been successful. So we — yeah, I think when you talk about that time period on ‘09. You’re right, I think we saw — builders maybe a couple of more enterprises felt comfortable with the technology, it had Flex and maybe sell those. We were on version 3.0 at that time and companies started to feel more comfortable to start to actually use it.

So, you see bigger projects starting, we still see that today. You know as just the technologies naturally mature, I have been out there for longer, maybe been in the sure consciousness of the software development world. Then people feel more comfortable starting to base bigger and bigger projects on it and so yes.

So we developed SourceMate, because with that trend we see more advanced developers. The developers who like you talk about the Java developers or perhaps .NET developers who are moving into Flex development who are used to a certain level of tooling. Certainly, if you look at the Java tooling, the really exceptional Java tooling available today in Eclipse and in other IDEs.

In 2009, we were sort of transitioning ourselves. We started using Flex and Flash Builder and while they were — really it was a good IDE. You know especially we compared it to some other IDEs if you’re doing Java Script development at the time, we still think Flash and Flex Builder was good, but we saw an opportunity there to sort of bring the power that a Java developer for example was used to and something like Eclipse and bring that into Flash Builder and have the experience on par with Eclipse.

The Flash Builder experience on par with what you see in Eclipse, and we think we’ve done that. We think the especially the latest release of SourceMate, SourceMate 2.0 offers so many features to Flex and Flash developers from code snippets, insertable codes, snippets that come up with content assists to refactorings, all sorts of refactorings and many more coming in future versions. Probably, the biggest feature that we just added in our 2.0 version is quick fixes and sort of live error detection.

So that feature were, you know as you type, if you type a function with name and that function doesn’t exists, you will get a low red squiggly underneath it. You’ll get the ability to label by a com there or you can click on it and you know create this function for me based on the function call and the arguments that I wrote out.

Michael Coté: Yeah, yeah, now that – I mean it’s funny like and that’s making me — it’s making me remember you know I have a few gray hairs in my beard.

So it’s quite sometime ago, but I remember when I made the jump from using Emax to NetBeans and then Eclipse and just having things like that, like the quick fix stuff and just refactorings and extracting interface and all that stuff was, I don’t know. It was most like, it made me like think of myself as kind of dumb for using Emax as long as I did, but it’s always easy to — you kind of said you don’t always realize how handy those, the sort of the right click tooling that you have, you can available as to programming, I mean it always makes me, I don’t know.

I’ll shake my head a little bit at the people who I like, you know, the notepad developers, I mean, no one really use it. Not many people use notepad, but whether they’re using them or Emax for all these crazy things. It’s just seems like there are so many things that you’re not taking advantage of. You’re getting into it, but you know let’s — can you give us kind of like a general overview of what SourceMate is exactly.

So far you’ve got over kind of a few of the features and functionality that will do over a Flex project, but like what, kind of what’s the quick pitch for what it does?

Chris Gross: Right, so it’s an add-on to Flash Builder, so you have to have Flash Builder 4. But once you have Flash Builder 4 SourceMate is it a plug-in, an extension to Flash Builder. But the real quickest way to describe it for somebody who is experienced with a Java IDE like Eclipse or one of the other IDEs is that it brings Flash Builder on par with the Eclipse or other IDE.

We add a plus of other features in code generation and refactoring and snippets and so on. So, we’re not necessarily narrowly focused on one specific — this isn’t just a refactoring plug and although we do offer many refactoring functions, but it’s just a huge set of productivity enhancing features. So, when I talk to potential customers and they ask me about how much the SourceMate costs, which is we think pretty low, it’s only $79 currently.

We say, “You know look using these features, if you use SourceMate for a week. I guarantee you will save at least two hours of time in a week.” And that’s low. I mean, that’s sort of assuming you’ve only touched the surface of the features that SourceMate offers. So, if you use SourceMate and saved two hours in one week at $79, how many weeks do you have to use it until you more than paid four or five times. But, you know it’s funny, you sort of talked about getting into the developers’ tools market. I think a software developer sometimes — we as a group are so used to getting things for free whether they’d be open-source or simply given away that they are sort of reticent just to pay for anything, but we think SourceMate is a great, great value and any developer who is doing significant development in Flash Builder should really put SourceMate in their tool belt.

Michael Coté: Yeah, and I’ve noticed over the last several years, it’s gotten better selling tools. But, I’ve noticed that kind of the magic pricing zone seems to be between like 50 and maybe a 150 or 50 and a $100. And that sort of that — it does all sorts of dynamics to speak to the business end, but it does all sorts of dynamics as far as — if one developer really wants to use it, it’s cheap enough that they’ll probably pay for it. I mean it’s kind of only the price of two computer books or two O’Reilly books that they might buy, so it’s really not that big of a deal, and it’s also. I don’t know, it also when the company actually starts paying for it, it actually makes it cheap enough that you could — the whole team can buy it if you will.

I think that was going back before, I always feel like TextMate kind of benchmarked the price that people would pay for something. And kind of before that tooling pricing was still in the hundreds of dollars. Once it kind of got down to that level it seems like it was a lot more, I don’t know, people are little less worried about paying for tools than they used to be. I mean if you had to pay $500 for a tool that still seems a little crazy.

Chris Gross: Yeah, definitely and it’s an interesting area, because I have a friend who is a carpenter and he spends tons of money on tools. It’s not unusual for him to go out and buy a new air-compressor or a generator or a nail-gunner or something and he sort of accepts that. And, as software developers, we make considerably more than the average carpenter, but we’re a little bit more reticent to spend on tools. And we also — there is — in a lot of situations it’s difficult to get companies to sort of splurge on tools. Sometimes they just sort of decide, well just use the open-source then. But, at least in SourceMate’s case, we don’t think there is anything open-source that compares.

So we’re a little bit lucky there if you — when we talk about Java IDEs there is big companies who contribute to Eclipse for example that make — have really invested all this money in creating these great tools and then made them free and open-source, but in the SourceMate world, in the Flex and Flash world I don’t think there is anything. You might find maybe an open-source plug-in that has one feature that’s comparable to SourceMate, but you know, we have 30-odd features and we think that the sort of value proposition there is really great.

Michael Coté: And so, like would you say that the majority of the usage that SourceMate gets is sort of for Flex versus Flash or is it both or like what. The distinction is going to be a little subtle for some people but like what, what’s the main type of application people are working on when they’re using SourceMate.

Chris Gross: Right, we see a bit of a mix, but I think people generally still are using SourceMate with Flex, the Flex Builder IDE, which we now call Flash Builder, you know also to denote that we can use it for more dis-generic Flash projects instead of Flex. But generally people who are using Flash Builder 10 to be Flex developers, we do see a lot of developers who are more of the individual developers on smaller projects. We are seeing a growing trend of sort of enterprise user, bigger companies who are adopting Flash and Flex, particularly Flex.

Michael Coté: So, is it — in these enterprise apps, I’m always curious like are people doing sort of like internal applications or external facing ones or is it just a mix of both of them?

Chris Gross: In my experience, it’s more predominantly internal.

Michael Coté: That’s —

Chris Gross: Yeah. [Audio Gap – 00:14:56 – 00:15:01] for Flex and Flash. I think that’s one and probably the key area, the key reasons why people choose one over the other. In external applications, people tend to want to use HTML and JavaScript more. So, internal applications, it seems people are more open to using Flex and Flash. I’m not exactly sure of the exact reasons. Some of it I think has to do with teams. When you look at teams that are developing the internal applications, sometimes these internal applications are in fact quite big. There is larger teams. The kinds of developers on those large teams, that kind of skill level can vary. If you have a big internal corporate development team that has 15 or 20 developers, it’s just — the truth is, some of those developers aren’t going to be your superstar developers.

And I think when we see a lot of the really the exciting applications out on the web that you use — by and Java Script needs Ajaxify interfaces. I think there is some really 15:59 developers who have really produced those through these interfaces. But in the corporate world one — the average core application, they don’t care as about is it snazzy, is the UX really great. They’re a little more concerned with sort of bread and better issues, how quickly can we get this developed, what business challenges am I trying to solve.

And then, with those bigger teams and maybe some of the lesser skilled developers, I think the tooling and some of the language features, now having a more statically typed language really does benefit some of those more average developers, guess I would say on the team. Really, I think it benefits everybody, especially when you get a larger team, things like static typing I think help a lot.

So, yeah, so internal teams more so, and I think it makes a lot of sense for them, because when we start to think about budget there, perhaps in different continents we are sharing code and they want to rely on really good pooling. I think that we see them choosing Flex.

Michael Coté: Yeah, no that’s interesting, it’s always interesting, because the demographics of something like Flex, because it sort of fits in almost, it could fit in anywhere, but it seems to get adoption at various niches instead of — everyone uses Java right, whereas with Flex there is various niches that will be using it.

Chris Gross: Right.

Michael Coté: So, getting back to SourceMate, I mean if you were — when you’re kind of showing it to people or demoing it, like what would you say are like the top three most like whizzbang interesting things that you show to people. And I mean I guess, I guess to edit my whizzbang sort of commentary, not so much like, there is always features that you show people and they end up not really using it, but like what are like the three features that you kind of see as sort of the — what would you highlight as the top three features in SourceMate?

Chris Gross: Sure, I think the number one feature. There is probably a tie for number one. I’ll talk first about the snippets or in the Eclipse world, they’re kind of called templates. But if you come from a Java background and you’re used to using Eclipse or maybe another advanced IDE. Let’s say you’re in a type of for loop and you type for, if you hit the content that says control space, the IDE will offer to complete that for loop. It will say okay, here is the content for a for loop, fill out all the details and kind of put your cursor in the middle of the loop. Flash Builder doesn’t offer that feature today. If you, there is no sort of content assist for these comments, snippets if you want to insert.

So SourceMate provides that, we provide a set of sort of default snippets that we’ve come up with, things like the for loop. Things like an easy way to create functions and a variety of snippets and you can create your own, create your own and send them around. We see some Flex frameworks have created a collection of snippets for some framework, specific code that they have. So, you type the first couple of characters of the snippet, it might correspond to the first couple of characters of the code you’re actually going to insert, might not. You hit your content assist and you see all the snippets that match that.

Michael Coté: All right. And can people add in their own snippets?

Chris Gross: Yeah, absolutely you add in your own. You can export files containing snippets and send them around and that’s how these frameworks share them, they just create a file that contains other snippets and you just go into preferences and you import them.

Michael Coté: Yeah. No, I mean that kind of stuff is always useful for — when working with a team of developers who maybe varying skills, it can sometimes be nice to sort of establish the way we do certain things and automating through whether you call it templates or snippets or whatever, it can be a handy way once you’ve figured out the right way to do a common occurrence to make sure that everyone sticks to that way of doing it.

Chris Gross: Yeah, absolutely, definitely.

Michael Coté: And so, what are the other, what are the other things. The things that would be, at least so there was one type for number one.

Chris Gross: Right. And that’s the quick fixes, live error detection. I mean, that’s what we were talking about before with the 20:01 so if you are typing code and I think what happens often at least with me, I am going through — I am typing code in a method and I realize I have to create another method that I’m going to call, but I haven’t created that yet or all I need a field, I am going to refer to a field in the class, but I haven’t created that field yet, you just keep typing going on or I’ll go back to it later.

Well, as you type SourceMate’s in the background constantly analyzing your code, seeing where these — your references to these sort of undefined variables or undefined function exist. And so, in a split second after typing your code, your function gets the red squiggly line, the little error marker on the left hand side, gets added, and all you have to do then is instead of going and jumping back, remembering what you need in the the function and figuring out the signature then jumping back and writing that code yourself, you just hit one of the QuickFixes, SourceMate will create the function for you with the right function signature and put your cursor right there where it needs to be.

So, it does that with – these QuickFixes are for functions, for variables in fields or classes, you refer to your class that doesn’t exist or another big one when you are a creating a class and you are implementing an interface. If you haven’t implemented all the correct message for that interface you get a little error marker and you can click that. And it will add the unimplemented methods for you. So, if you go back and look at the interface, okay how many methods do I have, what are the signatures, SourceMate will automatically add sort of the method stubs for you.

Michael Coté: Yeah, that also like allows you to do a nice way of coding where you can, you can sort of code just something that doesn’t exist and then have it stubbed out for you, so you can go and implement it. It kind of lets you code, it lets you think about here is the main threat of execution I want to be doing and I’ll go worry about implementing the stuff that it is calling out to later on?

Chris Gross: Right, exactly. It’s a big, big feature and people do exactly like you are talking about, you just sort of code, your stream of thought is going out there and then you come back later and SourceMate will help you fill out all the details.

Michael Coté: That’s right, insert difficult work here. So what are the other two features that you see a lot of popularity around?

Chris Gross: Well, it’s funny. There are so many other features in SourceMate, there are so many I could mention. Their refactoring is certainly one that when people do use it, 22:23 people not to use as often, but when you do use it, it can save you so much time that it’s just extremely valuable.

So one of the refactoring that I’d like to highlight, because it just seems like a common thing that people encounter, but we have a refactoring that goes through and actually just removes or comment out any trace statements that you have on your code, a sort of trace statements people who don’t know or sort of like the Swiss Alp statements of Flash and Flex, but I often by myself — you are tackling a tough programming bug something you can’t really figure out what’s going on.

So if you are like me, you go through all your classes, you start adding trace statements that – show me what this variable is or use a little trace statement just to show me that I am in this branch code, maybe you are doing that over the course of an hour or a couple of hours trying to figure what this bug this. And finally, you fix the bug, you found it then you sort of, you sit back for a second, you are like, “Oh darn” I probably added trace statements to 20 classes and now I don’t remember where they all are and I don’t want these trace statements cluttering up my production code.

So one click, you go through, you tell SourceMate you want to remove your trace statements, you could do it in just individual files or you can do it for the whole project, find them all, you can delete them 23:41 you get a list of all the files that trace statements exist, you can sort of choose to include or exclude certain files from it, then boom, they are all gone and that’s one of the ones, it’s sort of a maybe in some ways a feature that people don’t talk about enough, but I can’t tell you how many times I had a user come to me and say SourceMate was worth it just for that one feature.

Michael Coté: Yeah. I mean a feature like that and also refactoring, they are those kind of features like you are saying, like it’s — I don’t if it’s counterintuitive, but the fact that you don’t use them very much is kind of the point, because what they are doing is they are saving you time that you would be doing manually all that stuff.

So really, you only have to use them once or twice during the course of like some unit of development, because you are not — you are probably — unless I am sure there are some people who are like constantly refactoring your code, but you sort of work at some point then you think I want to make this big global over my code change and you just do it in one instant. So you don’t really — you may not spend a lot of time on that one exact feature, but it sort of — you would be spending a lot of time if you didn’t have it, which those are always a good thing.

Chris Gross: Yeah, absolutely. They are big, big features, they are refactoring feature, one usage can save you enough time to make it worth it to have it all like SourceMate.

Michael Coté: Right, so how about a lonely number three, what’s coming in on that one?

Chris Gross: Well, if I had to pick a number, this is sort of group of features, it would be around metadata, meta tags. In Flash and Flex, metadatas, the term for metadata is probably more akin to annotations or what we now as annotations of Java. A way to operate a method or a class with a tag. So just like with Java, the Flex world has sort of jumped on metadata, the same with the Java world, it’s jumped on annotations frameworks and your libraries tend to use metadata tags for features whether it be dependency injection or other features.

So Flash Builder today, there is really not much support metadata, you can type it there, it doesn’t check the metadata, there is no content or system on the metadata. So if you misspell a tag and then you go and run your application, it’s not going to warn you in the editor and the complier doesn’t really complain, because it’s really sort of open about metadata, it allows any sort of custom metadata that you might type in.

So particularly with these with the popular Flex frameworks, you have a lot metadata tags, you just mistype one, you won’t necessarily know there is something wrong until you run your application. And then because of the way metadata tags are, you are not going to get necessarily a very understandable error that, this metadata tag is wrong depending on what tag you are using and depending on the framework.

So, those can really be hard to track down problems, I just misspelled a tag name or perhaps I put a tag on the top of the class when it was supposed to be on top of the method. So SourceMate does all that validation for you, it does content assist on the metadata tags, so you type the over bracket of the metadata tag and I’ll show you all the valid tags for the 26:35 on top of the method or a variable or a class or what not.

And then, we also support custom metadata tags in these frameworks. So I think all of the really popular Flex frameworks that use metadata tags, provided they are used with SourceMate configuration files. So all you do is you open up your SourceMate preferences, import the metadata configuration file for the framework and then, you get all those same features for the tag, you get the validation, you get the content assist.

So, I think that’s a real big feature, with so many people using frameworks nowadays, it’s almost like everybody uses a framework when they start from scratch and all these frameworks using metadata tags, that’s pretty important.

Michael Coté: Yeah, no that makes sense. So you guys launched was it in December that you guys launched for ReviewMate, am I remembering that right. And I mean as the name implies, it’s for doing reviews or code reviews, which I think in recent years have gotten a lot more popular than they were at one point. And I mean, can you go over what ReviewMate provides?

Chris Gross: Sure, ReviewMate is sort of a product that it sort of has that “Less is more” philosophy. When I have used code review features in the past, they have always seemed sort of a pain for one reason or another, either the review sort of UI was — maybe it was sort of like Excel, it was just sort of list of form fields, you typed in your comments, you typed in maybe what lines of codes you were talking about, so yeah line 81, and you sort of jump back and forth between this form editor and the code — maybe it was on the server, maybe it was web-based code review tool which, maybe you had to install the whole server there, it was a complex setup, but ReviewMate is really the simple version of a code review. It is really designed to be very consumable. So it’s a plug-in, ReviewMate is a plug-in to Eclipse, it works with almost any language that there is an Eclipse editor for.

Once you install ReviewMate and you create a new review, you simply select your files to — that’s going to be reviewed and then it shows you those files in sort of a syntax style, a normal editor that you are used to, but on the right hand margin, you have the opportunity to add comments.

So this is very similar to people that have used Word in kind of the review, review with your Word, maybe just sort of highlight a section of code, in this case, click, add comment, you type a comment and it appears in a bubble on the right hand side.

Michael Coté: Right, but unlike reviewing in Word, it’s not like some damn document in your email. It’s actually in the tool right?

Chris Gross: Exactly, and it’s a simple XML file format, you check it in and out of your source control system. So yes, it is very easy, there is very little you have to do to sort of get up and running with it and that’s in your IDs, it’s a very — it becomes a very easy part of your work flow.

Michael Coté: So like, because you can check on the XML, so do people sort of use it to have an ongoing commentary of a piece of code or is it more just for like more tactical like review this code.

Chris Gross: Well, we do it so it’s more of a — we take a snapshot of your code, so actually the changes, you may make a comment on a code and if that code is deleted or modified, the comment may no longer apply. So we do take a snapshot of the code and that snapshot along with all your review data, your review comments is saved in there with the IDE and we actually see, I mean a lot of times they want to archive their reviews.

For example common work flow you may have a review, the author of the code may create this review file, put the files in the review that are going to be commented on, check that file in. The other developers who are going to look at it, they check out the review file, they make their comments check it in and then the author of the code opens that back up, he can see all the comments and then he goes through it and he makes changes so he can sort of open the review side by side with the active code and just go through his file, his class make the changes as he is looking on the right hand side of the comments and then save it.

So then he can also — he keeps that review file as sort of an archive of the review that happened, but he’s been able to change his code file and he has updated it with all the comments and changes that people suggested.

Michael Coté: Hey that’s interesting, and like you’re saying it works for any language that Eclipse supports, so it’s not just for Flash and Flex and I mean what — I mean code reviewing is in theory kind of universal but to ask a similar question about SourceMate I mean and you guys did just launch it recently but like what are the areas, the types of development teams you’re seeing interested for using ReviewMate?

Chris Gross: So I think definitely when you look at teams that are doing code reviews, they’re sort of the more, I don’t know if advanced is the right word, but maybe there are following — they have a lot of very specific software processes that they follow, code reviews is sort of one of those things that you really have a high performing team usually when you’re also doing code reviews or maybe because you’re doing code reviews.

So these are the better teams, smarter teams. I think, I certainly think that doing code reviews is one of the best ways to just increase overall your code quality, I think perhaps I could make an argument that’s even better than unit testing for increased code quality. So yeah but it’s — you know we see the teams, very smart teams, high performing teams. With ReviewMate specifically I think what we sort of target is a team that maybe wants to get started on code reviews but doesn’t want to make it an overwhelming deal, you don’t want to have to impose some — you want to maybe install a server or get a whole new tool that maybe lives outside of your IDE or something that’s very sort of cumbersome.

Michael Coté: I mean that’s what I was thinking as you were saying, it is interesting that you don’t — I mean it’s basically decentralized and well it’s centralized in your vision control system. I mean you have that file so there isn’t a — there isn’t really a server to mess with or maintain, it’s just done with all the peers which is — yeah I mean I can see how that is for people who didn’t want to — for developers who don’t want to get to the point where they’re worrying about their infrastructure for their coding, it would be a little more light weight.

Chris Gross: Exactly, very consumable, we like to think that it’s sort of like I said, the less is more product, very easy to start out code reviews, but we think it’s very easy to use, very easy to get started.

Michael Coté: Right. I mean those are — you know you guys also have a framework, the Potomac framework right, but those are the two main products that you guys are, that Element River is putting out at the moment. Just real briefly to go into the Potomac thing, like I always mispronounce that because I’m from Texas instead of the east, so that word doesn’t come up. But I remember last time we talked about it, it was basically like a component system inspired by OSGi right, but which kind of sounds intriguing, but do you want to give a quick overview of what that is?

Chris Gross: Sure, so Potomac it’s a Flex framework, and like you said it’s a framework sort of designed and inspired by our experiences with OSGi and Eclipse. So modularity the large applications that want to make — want to become module applications in Flex, I think I have had a particularly hard time. There is base modularity features that are offered in the Flex framework and in Flash Builder, but I think they are a little bit limiting.

You could almost compare the kind of features that are offered in the Base Flex framework to what’s offered in sort of the base Java program, you can create jars and load jars, but then you can see sort of what the — what a system like OSGi adds on top of it, so much more infrastructure, much better ways to sort of enable loose coupling and along with Eclipse that adds things like an extension point system on top and then a UI. So Potomac adds those same sorts of things to Flex. I think that if you’re doing a large modular application at Flex and you haven’t looked at Potomac, you’re doing yourself a real disservice, because I don’t think there is anything out there that comes close to achieve the same kind of goals that we’ve achieved with Potomac.

Michael Coté: Do you guys use that in, like you said you do a little consulting or servicing, do you guys use it in that kind of work or the product work or where do you guys use it?

Chris Gross: Absolutely, so we have a consulting side and generally most of our consulting is around Potomac. So yes absolutely that’s sort of drives our consulting business and I think it’s very important as we see more and more organizations, big organizations and bigger applications moving to Flex, I think Potomac really fills the need there. I think modularity certainly I think something just maybe in a more general sense the software world is becoming to appreciate a lot more particularly because of OSGi.

Michael Coté: I mean there is a lot of — to use the term that can mean a whole lot of things, there is a lot of good marketing around OSGi. People have gotten the word out about what it does and as with any framework there is mixed reviews from various, some people really like it and some people are all like don’t like it. But it does, I think the more general idea of trying to have component oriented development or modular or whatever you want to call, like it’s — you know that idea hasn’t existed as strongly as it did back in the heyday of Object Oriented Programming and so it’s good to kind of bring that idea back, because especially for large and especially for long-term projects, sooner or later if you don’t have things componentized or modularized it’s just — you start getting those conversations when someone asks you to implement a feature and you’re like well, that’s going to take me a few weeks just to like remove the metaphoric concrete around that thing you wanted to change.

Chris Gross: Absolutely and I think we see situations where people choose Potomac for — I mean there are so many reasons, here is an example. One customer has sort of a central team that’s building a large application, but they have separate sites that they want to customize that application for, they have maybe ten or — they even have many more sites that they want to sort of build custom extensions.

So Potomac just like you would do with Eclipse, you would just build a module that extends the base application when you deliver it to that custom site. So not only does it help when they have one team that can develop these modules, can develop the extension points that describe how these other off-site teams would extend to it, and then those custom teams build a very small set of code. They don’t have to merge their code base with the central team, who doesn’t want those guys in there, and then they can deliver the application, it’s just like delivering sort of a plug in application as you might for Eclipse, you do that for Flex with Potomac.

Michael Coté: So the last thing I was interested in talking with and it’s just because this comes up a lot whenever the word Flash and Flex come up, is like, and you mentioned this earlier when we were talking about the types of applications people are using SourceMate on and therefore the types of applications they’re doing Flex and Flash development with and people are always curious about, you know I think this was about six months ago or so where the idea of HTML5 was going to kill off all sorts of RAA development and it did kind of put a hamper on, I don’t know, sort of buzz around RAAs if you will, but like what — you know when you’re looking at the types of teams that are — you know it’s interesting because you have ReviewMate which is for any type of development and then SourceMate which is for Flex and Flash stuff and like what are you seeing people using — you know HTML5 as I said and other places, means a lot of things, it means nothing all at the same time, since it’s kind of just like the new name for AJAX, sort of the new name for web development and I’m exaggerating. But like what are you seeing as far as people using sort of JavaScript or whatever HTML5 is and sort of more, I don’t know, as a way of being an RAA versus using something like Flash or Silverlight or the other sort of proprietary frameworks if you will.

Chris Gross: I think what — like we are sort of talk about with the different types of applications. I think there is a real — you know a lot of organizations really struggle with the question of what technology to choose whether it be Flex or Flash or Silverlight or JavaScript and HTML. When I talk to organizations, when I sort of counsel them on what to choose, the one thing I always bring up is productivity.

If everything were equal as far as how long it took to develop a product I think there would be a slew of reasons why you might want to choose HTML and JavaScript. But what people most often overlooked is that productivity factor. Organizations that have historically had 0:39:31, did Java work or Dot Net work or even some of these organizations they have developers who would do in Visual Basic or they were doing 0:39:38 those sorts of things. Moving those developers to JavaScript and HTML to be primarily JavaScript and HTML they really tend to have a hard time.

I think those developers as a whole tend to — it takes them maybe six months or so at least to get sort of a comfort level with doing that development. Then even once they’ve gotten to that level I don’t think they’re as productive as they were.

Particularly because I think static typing although, I’m not somebody who is going to say a dynamic language, “You shouldn’t choose dynamic language.” I think there are a whole lot of advantages to developing with the dynamic language.

But when you talk about these big teams with — that have, multiple developers are going to come back and work on this code and this code is going to last for 10 to 15 years. There is a lot of those concerns about the ability to maintain code overtime, about the ability to transfer code and libraries between different teams and have them understand the interfaces and what’s expected.

And then, also tooling, I think the tooling for dynamic languages isn’t as strong as we see with this sort of static languages or maybe it is sort of getting there or maybe we’re starting to see leaps, but historically it hasn’t been. So the organizations that I see that sort of 40:55 talk about productivity. And that’s an area that I think Flash and Flex and I think also Silverlight as well tend to shine a little bit better, but on a whole, I think there are a variety of factors that go into it, productivity.

And we also have to remember that a lot of these applications have to support multiple browsers and you also have to take that into account. So, that’s maybe not necessarily particularly about JavaScript and HTML, except that we have multiple platforms that we export, almost our platform matrix can grow really large.

Michael Coté: Yeah, I mean it’s interesting, there was another area I’ve been looking at a lot recently, because I get asked about it, is in the mobile space, should I develop a mobile web application or a native mobile application? And there’s similar dynamics going on and I think one of the — I don’t know, one of the vectors of consideration to make up some corny phrases and you are kind of bumping up against this with the productivity thing and you mentioned this about sort of corporate apps before is, you kind of have to rate how important the UI experience is and it seems like — and it’s — I kind of feel bad even saying that, because I want enterprise software to be great, right or the corporate software to be great, but at some point, if you’re doing a consumer-based application like you want the UI to be really good, because you know the dynamics of why people are using it are a lot different. Like in theory, for a consumer application, do you want them to be spending as much time as possible in the application?

Chris Gross: Right.

Michael Coté: And so, you want to make it nice, whereas, for a business application like it definitely needs to be usable and nice and doesn’t — but at some point, you almost want the opposite, you want them to spend as little time in the application as possible, especially if it’s like a expense filing application and so –

Chris Gross: Right.

Michael Coté: And so, it kind of gets to that point you’re making is, the niceness of the UI when you’re developing some types of applications, usually corporate apps isn’t always — it’s not always the bulk of your consideration. The bulk of your consideration might be that we need to get this out in two weeks or we need to get this out soon, so that we can just fit it into our business process or whatever. And I think — and over — while I love the focus on consumer tech that’s going on at the moment, like in this area I think — we’ve kind of forgotten, like you mentioned some of the older like Delphi and things like that.

We’ve kind of forgotten about rapid application development or the awesomely titled RAD. And I always feel like that people — we have kind of lost the tool that was available to us. Just quickly throw something up that maybe was clunky I mean that’s the worst case, right, that it maybe was clunky or that it just has that default look and feel to it, but it is — I don’t know, all those things you have to consider.

Chris Gross: Absolutely. And I think a lot of the sort of bread and butter business applications that for a long time I think made the bulk of application development, I think those sort of applications especially internal applications. I think people — managers and teams that are making decisions, I think deserve to take a better look at something like Flex or Sliverlight for those sort of bread and butter reasons.

So, yeah absolutely, but when you look at sort of external applications, it’s particularly when you’ve got a set of really strong developers who could take a web application and give it all sorts of cool Ajaxy features and effects, go with HTML and JavaScript. But, if you’re doing bread and butter business application behind the firewall that kind of thing, I think organizations need to strongly consider Flex and Silverlight, those kinds of technologies.

Michael Coté: Yeah, that makes sense. Well great, well, is there anything you think we’ve missed in going over what you guys are up to. I feel like we’re pretty thorough there.

Chris Gross: No, yeah, I think we got it all.

Michael Coté: So like people are interested in checking these things out. I mean what — how do they get a hold of SourceMate and ReviewMate to kind of open prod them?

Chris Gross: So, both of those, SourceMate and ReviewMate, they both have 30 day trials; you can download, install and use them with no limitations for 30 days. You can get those at our website, which is And you just install those right in Eclipse using the regular Eclipse update manager, so you just get the URLs for the update site from our website and you’re off and running in just a minute or two.

Michael Coté: That’s right. And are you all wired up in the twitter there and everything. I always like to give people a chance to throw out their name in case someone is interested in following them.

Chris Gross: Sure. Yeah, I have a personal twitter account. You can follow me. My twitter ID is Chris_Gross, just like the word and yeah you can follow me and I’ll give you updates on our products and SourceMate, but they’ll make in ReviewMate.

Michael Coté: All right. Well, that sounds great. Well, thanks for spending all this time to go over this stuff and thanks to the dear listeners for taking the time.

Chris Gross: Thanks. Thank you.

Disclosure: ElementRiver is a client.

Categories: make all, Programming, RIA.

Tags: , , ,

Comment Feed

One Response

Continuing the Discussion

  1. […] #14: Code Reviewing and Tooling the RIA world with Chris Gross […]