What's In Your Programming Toolbox These Days?

by Matthew Russell

Related link: http://www.python.org/



I'm sure that at some point, we've all run across a heated discussion debating whether or not one programming language is better than another, and I'm not trying to get into that here. For the moment, let's just acknowledge that all programming languages are tools that enable us to get work done, and the "right" tool for any particular job depends on some combination of the programmer's experience, the task at hand, and how much effort someone is willing to exert to get the job done.

With that said, I think it's helpful to take an inventory of what's in your toolbox every once in a while and to think about how the tools you're using complement (or don't complement) one another. Out of necessity, most of my coding for the last good while has revolved around Objective-C, Java, and Perl, but after thinking about it, I've decided to try out something new: stop drinking so much Java and instead start wrestling with Python.

One thing I really appreciate about Java is the huge code base that's out there, so one of my first concerns was whether or not I'd be continually faced with source code and library shortages. After about ten seconds of searching, I determined that there's certainly no kind of shortage, so I'm feeling pretty optimistic about finding stuff when I need it.

Two things I won't be finding in Python, however, are Java's verbosity and overloading madness -- things that simply result in excess code that I have to develop, maintain, and debug. Python elegantly takes care of both of these issues and seems to be pretty darn concise overall. I'm also excited about the functional programming features that Python brings to the table; you have to love being able to do things like write a Quick Sort in just a few lines of code.

One final thing I'm looking forward to trying out is PyObjC -- the Cocoa-Python bridge that makes it very easy to leverage Cocoa frameworks from Python. Since I spend a lot of time in the wonderful world of Cocoa, I'm interested to see how much productivity I'll be able to gain by developing with PyObjC. I've been trying to be more agile with my development practices lately, so I'm hoping that PyObjC will be as helpful as it looks like it will be.

Again, I don't say any of these things to spark up a Python vs Java debate. I really just wanted to share some of my recent reflections and to try and encourage you to take a step back and do some reflection of your own. If you're long overdue, slot off some time this week to take an inventory of what's out there and think about how the tools you use complement or don't complement one another.

If you're wasting time, you're probably losing money.

What tools are you using to get work done? Have you found any particular combinations to produce crazy amounts of synergy?


7 Comments

guet2
2005-09-18 23:12:56

Ruby
mjm
2005-09-19 03:23:33
Python + OS X
I'm a double switcher. In recent years I've moved from Windows to OS X and from Java to Python. I've never looked back.
I would welcome more python on OS X articles. Things like PyObjC, sys admin, widgets in python, python in Automator come to mind.
richardblumberg
2005-09-19 04:59:49
Python keeps a-growing
I've been using Python for a few years now. I program for my own uses - nothing industrial strength. But what I've seen is the huge increase in the number of useful libraries, modules, sample scripts, and practical tutorials coming onto the web from the Python community. It's starting to get almost easy.


Ruby asked for articles on "widgets in python, python in Automator" .


I'll second that.


Richard

ptwobrussell
2005-09-19 08:08:03
Python keeps a-growing
Could you all be just a bit more specific with what you mean by "widgets in python, python in Automator"?


Do you mean developing widgets and actions by using PyObjC for as much of the implementation as possible? And for automator, calling out to a script that runs some python and returns the result? to the next action?


Something along those lines...or did you mean something else?

tmo9d
2005-09-19 10:28:41
Python is a logical partner to Java
Python makes perfect sense to someone used to Java, and asking Java programmers if they know Python is something of a shibboleth. Python is one of the only scripting languages I feel comfortable doing anything OO-ish in, but I expect some Perl nazi to correct me.


But don't ignore Ruby. All you base are belong to ruby.

j0hnc
2005-09-19 12:15:06
Python is very nice, but...
I'm a big fan of Python and I use it whenever I'm putting something together quickly. But when it comes to work where performance is a serious issue, I still use Java. On my larger projects, 90% of the time goes to design and testing. Saving 40% of remaining 10% with code terseness, but increasing testing and execution time isn't a good tradeoff for me. Every situation is different - that's mine.
Eridius
2005-09-22 20:04:19
Ruby
Python is nice, but I discovered Ruby fairly recently, and it's like a dream. I highly suggest trying out Ruby before committing yourself to Python.