My Favorite Programming Languages

I programmed in Java for about 15 years. I’ve now switched most of my programming to C# and Dot Net. C# is currently my favorite programming language. I used it to develop software for the Windows Desktop.

My second favorite programming language is Python, which I use to script and customize ArcGIS for the desktop. I use Ruby programming to customize the 3D modeler SketchUp and AutoLISP and C# to customize AutoCAD Civil 3D.

My favorite IDE is Visual Studio…but I also use Eclipse and Jetbrains IntelliJ.

I can write HTML and CSS and wield Javascript if I have to…but I prefer slinging code for the desktop.

I’m currently learning Xojo as an good language to teach students programming concepts and rapid application development for the desktop.

Advocate of Open Source and Open Technology Standards

I’m a strong advocate of open source software and open technology standards.

My open source code is released through the SurveyOS Project, a member of the Software Freedom Conservancy.

I also publish open technical standards for GIS and land surveying at the SurveyOS Project. My current open technical standards are the COGO Simple Text Format and the Triangulated Irregular Network Text File Format.

My Current Programming Hot Spots

I’m interested a few specific topics right now.

I’m very interested in automated point cloud processing of data from Aerial LiDAR or terrestrial laser scanning using Java. I’ve started tinkering around with some code for this. My initial impression of the commercial tools for point cloud processing is the tools are limited and immature. Trimble Realworks has the best toolset and easiest user interface for the tools I’ve tried so far. (These tools I’ve tried include Leica Cyclone.) However, neither Realworks or Cyclone makes scripting to enable automated processing easy. The open source tools available for this are non-existent or very clunky. Point cloud processing is an area I’ll be working more on moving forward.

An area related to point cloud processing that I’m interested in is TIN creation, analysis, and management.

My hot spots in Python mostly relate to GIS and QGIS in particular. I want to write my first QGIS plug-in to enable some of the basic editing tools we have in OpenJUMP. I’d also like to learn more about how I can enhance the map book/map publishing functionality in QGIS. I’d also like to contribute some code to Shapy…but my Python code might be too javalike for this. :]