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.
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.
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
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
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
posted by prodevel at 6:04 PM on October 9, 2006
Response by poster: Eamon: would you say the speed tradeoff for Python is worth it?
prodevel: any specific recommendations?
Thanks!
posted by signal at 9:50 PM on October 9, 2006
prodevel: any specific recommendations?
Thanks!
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
posted by Eamon at 12:05 AM on October 11, 2006
This thread is closed to new comments.
posted by DenOfSizer at 7:15 AM on October 9, 2006