views:

95

answers:

3

Since February this year I have been working on an app that's built using SmartGWT components. Generally, I find the components very nice to work with, and the fact that they're open source and free to use is just fantastic. However, I can't seem to shake the feeling that it's not a durable way of developing, but I can't quite explain why. Maybe it's because I know that any minute now the team developing it could decide to stop, which would leave me and my team in a bit of a pickle, but I'm sure there must be something more.

I have been trying to find ways of explaining this feeling to myself, but to no avail. Therefore I turn to you, dear community, to ask if you can come up with a good reason why committing to building your app (that's supposed to be around for many more years to come) using a component library such as SmartGWT is a bad idea? Is there any reason I should just have developed the components myself? Or did I make the right choice when deciding not to reinvent the wheel and just go for what was readily available?

+3  A: 

SmartGWT is GNU LGPL so if they do discontinue it, you'd be in the exact situation that you'd be in had you actually made your own library (but having saved a lot of work).

Not reinventing the wheel is the only way to get ahead, usually. The only reason to build something yourself is if you can't work with what's out there.

To deal with your feeling that the library is not a stable thing to build on, consider contributing to the library itself. That's how people deal with that feeling of anomie using open source software.

Yar
+4  A: 

Since it's open source, grab a copy of the source code and verify that you can build the component from the source code. That will calm any fears about the team you're depending on quitting the project.

The only downside is that if they do quit the project, you'll have to find some time and manpower to learn their code base for any bug fixes you might want to apply after this team is long gone.

What you might be feeling is a loss of control over the product. Some types of control are very easy to relinquish. For example, I don't really care to control the details of how my web server works, provided it works in accordance with the HTTP standards. Other items are very important to have 100% control over. If a component is core to your development effort, then it is worth considering an investment to gain control of the component.

Note that you don't have to reinvent the wheel, you can always join the open source effort (if they are willing to accept you) and / or pay someone else to maintain the open source code (if you lack in-house skill in developing these kinds of components).

Edwin Buck
+1 good point about having to learn the code base.
Yar
A: 

You are in a far better position than if you were using a closed source library and that company stopped updating it! Honestly, by this reasoning, you should not be using any third-party software. did you write your webserver? your jvm? your operating system?

james
Why do you say "honestly" in the second sentence? Was the first sentence not 100% accurate?
Yar