because Hindley-Milner rocks
I’ve read Code Complete, one of the all time best programming books I think I’ve ever read. I’m now reading The Pragmatic Programmer, another great book. While Code Complete got me to realize faster code production comes from reducing time spent debugging this book is lending insight into why I do what I’m do at work. In short, it’s gotten me to realize why I use Python so much in my development efforts. (Python, you know, one of those dynamically typed languages? The kind that doesn’t provide you with the same amount of information at compile time that a statically typed language can provide?)
Me, a true believer that static typing saves development time, effort, and bellyache, is also a big proponent of Python. Perhaps for the REPL? If that were the only reason I’d be working harder to determine why OCaml’s REPL crashes every 5 min. without fail on my work box (Windows XP + a lot of corporate monitoring junk.) Maybe it’s because I still am required to work in C++/Java and Python is closer idiomatically than OCaml. Perhaps it’s religious: Python vs. Perl. However, I think the better answer is that I get things done faster with Python for short scripts (less than 100 lines.)
That last statement says a lot about my development environment at work and how I’ve let it go to disarray. I use Python as a substitute for scripting not only because I lack one editor where I do everything (Eclipse, NetBeans, and Visual Studio 2003 + 2005) but also due to an immature proficiency in my use of shell scripts. I think the first speaks loads more than the second. At least with the second I’ve got an excuse: Cygwin + some poorly implemented Unix command script clone + power shell = does >> still work? (Thanks IT dude that left the company before I could thank you.)
At this point I think I might need to start looking into Emacs (although I used VI way back in college.) Automatic code generation using Python is straight forward but then I have to manually connect the code to my projects. You kow what that means? Open Visual Studio, click Add Existing Item, select all the code I’ve just created… Bleah! I want one click processing. It’s either time I got familiar with VS’s API or Emacs. That’s my New Years resolution, one click code generation + integration with my current project.