On Jan 5, 2010, at 10:13 PM, Ross Singer wrote:
> Dan Chudnov, for example, seems to think in Python. When I tried
> Python, it never really clicked -- I muddled through a few projects
> but never really got it.
Actually, I think in Hoosier, but as the late Kurt Vonnegut might remind me, that's awfully silly.
I mostly agree with Ross, though - find something that fits your brain and lets you get your stuff done and stick with it. It just might take a while.
I have used python as a main language for about seven years now and it pays off in many ways. I didn't arrive at it quickly, though. At my first regular job 10-12 years ago I built stuff in perl, java, php, and vb, all of which turned into code I had to support for one user group or another for some period of time or another. It's one thing to experiment with toy code, it's another thing to do an experiment that brings you hard data and experiences that can help to inform future decisions.
Here's how it went for me, but YMMV: I knew perl first, and everything I wrote in perl worked quickly and was easy to install in our hosting environment but was hard to fix later when it broke because I couldn't read it after I'd forgotten what I'd done. Java was just hard for me, period, and hard to install back then (tomcat wasn't particularly stable, yet, for one thing). VB was super easy to develop with but meant desktop support in the long run when everything was moving to the web. PHP was easy to write and install but I wrote a lot of bad code with holes all over the place, partly because of how easy it was. After all of these experiences, and having gained some insights about what I preferred, I tried python, and it clicked immediately. It wasn't so easy to install on a web server reliably back then, but it was doable, and it had all the other positives I was looking for: I could get stuff done quickly, get it installed, it made sense when I went back to look at it again, and I tended to write things slightly more securely than I had in the past. I was hooked. Seems like Ross is saying the same things about Ruby, for him.
None of the stuff I was building back then was intended to be widely-used or even depended-upon, which helped a lot, but some of it turned out to be one or both, and that shines a bright light on the positives and negatives of platform choices. If I'd tried the languages in a different order maybe my experiences screwing up a lot of stuff early on would have led me to like a different fifth language; I definitely got better along the way.
These days I am spending more time in Java and JavaScript than I would have expected but find that they're both less hard than they were the last time I tried them both, partly because they've become easier to work with based on frameworks and such but also because I have more experience, period.
If you want help prioritizing which to choose first I could hardly argue with any of php, python, or ruby, for the same reasons others state, and as Ross said, building something with Solr is a great idea, because you can then try building follow-on apps with the same solr backend in different languages and see how they compare. Also, using solr often means writing less original code yourself, which is a big win in any language. I'd also suggest spending some time with javascript and a framework like jquery because it's applicable to anything you might do on the web. More than anything, though, build something you care about, and give it to real users, and then you'll start to see how you really feel about it. :)
One last note... I do all my development behind screen-wrapped ssh sessions using vim. If I have to set up an IDE just to use a language, its happiness quotient drops immediately. This approach isn't for everybody, but it works best for me, so platform choices that mesh well with this preference increase their happiness quotient. Don't discount that factor, whichever way you feel about it, since that's how you'll spend much of your time.
-Dan
|