Help me pick a programming language.
October 8, 2006 11:34 PM   Subscribe

I am starting work on my MArch thesis that revolves around the development of 3 dimensional spatial analysis software (basically, Space Syntax in 3D). I am not sure yet what language to write it in.

Me: 35 year old architect, with a lifelong interest in programming but no professional experience in the field. I learned Basic as a kid, AutoLisp and Maxscript as an architect, and last year took a freshman engineering course in Java (which I aced, BTW). The work: analysis of three dimensional models of existing cities, taking into account viewsheds, conservation state, many etcs. Lots of ray intersection, graph analysis, medium to large databases. Automated generation of databases from existing aerial photography etc might happen at some point. The end result must have pretty pictures galore.

My options, so far:
Java: pros: took a course last semester, liked it, love Eclipse, fairly fast execution. Cons: moody language, not too intuitive IMO,lots of hoops to jump through.
Maxscript: pros: have done a lot of work in it, 3d stuff is built in, no need to write a viewer, import models, etc. Simple syntax, sort of faux-OO. Cons: slow, so-so development environment, faux-OO.
Python: pros: have dabbled in it, like it, intuitive, 3d libraries (pygame, etc), been meaning to learn it anyhow. Cons: need to learn a lot, not sure how fast it is.
Ruby: see python, same pros and cons.

My main criteria are: very good 3d libraries, ease of development, speed of execution for large datasets, ability to generate lots of pretty graphics (it is an MArch, after all). I know I could patch together a series of scripts and programs, but would like to have final unified product, with a GUI, etc.
posted by signal to Computers & Internet (6 answers total)
Wow, that sounds like a wicked cool thesis. I'm sorry I can't help you, but it does sound a little like your spatial analysis softwear might ultimately have some things in common with SketchUp, at least in its integration with Google Earth and all that that represents (huge databases w/ pretty pix., etc.) So I guess that would make Ruby an attractive choice. I wasn't so crazy about Sketchup when I first met it, but man, does it look like the wave of the future to me. (On the other hand, I'm just a plain old architect, not a coder.) Good luck! Check back in!
posted by DenOfSizer at 7:15 AM on October 9, 2006

It's not my favorite language (by a longshot), but if you're a novice-to-intermediate programmer who's going to be manipulating reams of 3D data, Matlab is the only way to go.
posted by Eamon at 11:48 AM on October 9, 2006

That said, if you feel comfortable with Java, jumping over to Python will be a cinch, and NumPy provides a good interface to efficient matrix manipulations.

From a strictly syntactic standpoint, is a much better language than Matlab.
posted by Eamon at 11:51 AM on October 9, 2006

I assume you know about SourceForge - you might sniff out some cool tools there...
posted by prodevel at 6:04 PM on October 9, 2006

Eamon: would you say the speed tradeoff for Python is worth it?

prodevel: any specific recommendations?

posted by signal at 9:50 PM on October 9, 2006

I don't think you'll see too much differenence in the execution speed, if you're using NumPy to its fullest extent. I like python, and I don't like Matlab, so even though I use both frequently, it's hard for me to give good objective advice.
posted by Eamon at 12:05 AM on October 11, 2006

« Older Make your own PEZ refills   |   I feel whelmed...? Newer »
This thread is closed to new comments.