Skip to content
December 7, 2009 / Steven Pousty

Dilema for creating FOSS4G desktop apps

The other day, Cyrus and I were brainstorming how to build a desktop app that had some minor GIS components and a lot of calculation components.

Our first thought was to go with ESRI software, especially that you can now write native ESRI components in Java.

We just wanted simple that would be easy to give to non-profits, local governments, or other folks who may not have many seats of ESRI software. Given that we were also only going to use a small subset of GIS functionality we really didn’t want to take on the complication of the ESRI Object model. We also didn’t want to have to the specter of having to try and rewrite our plugins if ESRI made breaking changes to the APIs we use.

So we then started to look at using FOSS4G desktop apps. We started with QGIS because
1) it has the most active development going on right now
2) Cyrus feels comfortable with Python and you have access to all the functionality we needed through Python.

And then we hit the wall – QGIS is licensed as GPL – not LGPL or BSD but GPL. The implication of this was huge. We work for a company who is not really into giving out its source code right now – I am just working with them on using FOSS4G tools: baby steps man, baby steps.

With the GPL license any code I write for a plugin has to be released back to the public if I give the plugin to someone outside of my org/company. I do not want to get into a license flame war here I just want to point out the implications for us as the developer. I went into the QGIS IRC channel and asked about the possibility of LGPL licensing. They had thought about it but decided they wanted to encourage people to give back to the community.

For us this is not encouraging but forcing. If I use QGIS or OpenJump I have to give my plugins code back to the community if I distribute the plugin outside of my org.  There is no choice .. only do.


The only option left for us to look at was uDIG which has development going on and has a nice, but slightly confusing look and feel. The problem is that I followed the instructions to set up a dev environment and after all the downloads and installation I couldn’t get it running. It failed my 1 hour Yak shaving test.

I tried also setting something up using the Netbeans RCP and Geotools . Getting is set up was really easy and within 20 minutes I was opening a shapefile, reading the features and displaying text boxes with information in them. I had something that would run on any machine that has a 1.6 JRE with no installation. The bad part was I couldn’t get the map display to show – which is probably an ID10T error – but since I needed to show a map in the app I gave up.

We are now at the point of doing Geoserver with Openlayers and custom code on the server. Really would have liked a desktop app but the licenses, given our environment, would not work, and the Yak shaving was beyond my tolerance.

What are your thoughts on this (besides that I should have spent longer setting things up)? If you were building a desktop app – how did you do it? Have you gotten geotools to show a map with the Netbeans RCP?

Help us Mapkenzie – you are our only hope

I feel your pain

Advertisements

11 Comments

Leave a Comment
  1. Nbabel / Dec 7 2009 12:38 pm

    Did you look at MapWindow GIS?

  2. Steven Citron-Pousty / Dec 7 2009 12:57 pm

    Thanks Nbabel – you know Cyrus and I talked about it. Cyrus had expressed some reservations with the interface and neither of us strong MS programmers.
    For my tastes, they have the best FOSS4G desktop license – Mozilla Public license – which is really close to BSD.

    I will definitely keep it in mind the next time this comes up.

  3. Terry / Dec 7 2009 7:49 pm

    I don’t mean to be a pain in the ass (okay – that’s a lie. I ENJOY being a pain in the ass), but I think you should view this as an opportunity to push a few extra baby steps. I think the GPL is one of the strengths of apps like QGIS, and it’s one of the reasons it’s so solid and stable (don’t get me wrong – I like MapWindow, but I’m never actually convinced that it’s going to work when I fire it up). If your company wants to enjoy the benefits of the GPL, then they should be willing to abide by it. Otherwise, let them pay ESRI.

    I know that it’s not your company that’ll end up paying for it in the long run, but I don’t think it’s unreasonable to ask them to give a little. QGIS has done enough, I think. They produce one of the best desktop GIS apps out there (arguably the best) for free. Are the plugins you intend to write really so damned valuable that they can’t be given back to the community? Especially in light of what the community has given to make those plugins possible?

    I hope you realize that I know YOU don’t think that way, Steve. And that’s not the reason I’m getting on your case. Rather, I’m doing so because I don’t think you should be spending your time and energy looking for ways around the GPL on your company’s behalf. It’s a good set of rules, and if your company doesn’t want to play by them they should get the fuck off the playground.

  4. Steven Citron-Pousty / Dec 7 2009 9:24 pm

    Terry:
    Thanks for the thoughts. Actually I am not a fan of GPL – for exactly the reasons given here. I prefer berkeley or Apache license. I think QGIS would be just as popular and just as strong with a BSD or Apache license – if not stronger.

    I am not looking for ways around, I am looking for ways that fit our business model. We did get the “fuck off the playground” and in the process QGIS lost two people who might have written plugins in their own time that they would have given back.I still may do it, but now I can’t learn QGIS for work and then play at other times. Instead my learning energy is going into geoserver, openlayers, and openscales.

    I actually also think LGPL is perfectly reasonable. If we distribute changes to the core then we should give back, but not if we write a plugin that does not alter the core.

    Anyway, I would like to avoid the flamewar since each license has their own +s and -s

  5. Jean Roc / Dec 8 2009 12:11 am

    To avoid a flamewar it may have been better to not use the word “forcing”, a little strong when you’ve people and compagnies contributing to a software without ever pushing it to you. Basically what you’re saying is their works is great and then you’re asking is to take it without restrictions, add enhancements on top of it that will allow you to get some markets (maybe against others compagnies actually contributing to qgis) and then, maybe, one day, contribute back.

    The reason why QGIS is so healthy is that everybody has the same cards, has it gone the mit/bsd/apache’s way we would have a fork for each compagnies like udig.

  6. Ragi / Dec 8 2009 12:25 pm

    Steve,

    You’ve hit the nail as far as convincing managers with tradional business models to adopt FOSS4G. I used to love the term “Free as in Freedom”, until I realized that “Freedom” came in different flavors… Arguably… “free to do whatever you want” is true freedom for me and that is different from GPL freedom.

    Each serves its own purpose…

    There are many projects that have been successful with BSD/Apache/MIT licenses, so arguing success because those licenses were not chosen is, IMHO, ridiculous.

    Also, Forks are not necessarily bad. It actually means that different developers are using the software and the project(s) is/are flourishing.

    Oh man, did I start a licensing discussion? My bad, I take it back. ha ha

  7. Steven Citron-Pousty / Dec 8 2009 1:23 pm

    Hey Jean:
    Agreed nobody forced me to use QGIS – so you are right. I guess I meant if I want to build a plugin for QGIS I am forced to distribute it if I give it to someone outside my org.

    I love QGIS, uDig, and OpenJump which is why I wanted to use them to start with. I am always looking for appropriate ways to introduce people to the FOSS4G toolset. It would have been easier for me to share the love if I didn’t have to get my company to start by accepting the whole enchilada. That is all I am pointing out.

    FYI – uDig uses LGPL not MIT/BSD/Apache and there is no fork. As I understand it, JGRass and BeeGIS are folding their working back into the uDig trunk and there is close collaboration between the projects.

    All the FOSS licenses have led to successful projects. I was just pointing out the implications for me and my work when projects chose the GPL.

    Again, just so there is no confusion – I love QGIS and it’s community. I wish it were easier here for me to build more products off it.

    • Andrea Antonello / Dec 25 2009 11:49 am

      I just wanted to point one small thing out since it got cited. JGrass and BeeGIS are plugins for uDig (definitely same direction and contributing to uDig). And apart of the license which is a thing that gives you a quick way to decide (either you do or you don’t), uDig has in my opinion a steep learing curve due to the eclipse RPC engines, but has an extreme clean and easy way to handle things afterwards.
      Since I brought JGrass and BeeGIS into it, I had really more time for fun in life 🙂

      That said, I should mention that there PuzzleGIS, which is built on top of netbeans rcp, but uses the geotools fork geotoolkit. It may even be LGPL, don’t remember.

      Cheers

  8. Jody / Mar 14 2010 1:25 am

    Where did you get stuck with geotools? We updated the examples to actually show shapefiles etc.. right from the get go.

  9. Noli / Jul 24 2010 3:27 pm

    Mapnik is LGLP. You can build Desktop Application using PyQt or WxPython /QT or Wx.

    http://mapnik.org/

    It might not be a full GIS application, just desktop mapping.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: