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