On Jun 18, 2007, at 10:41 AM, Jim Secan wrote:

The correct answer should be "I don't know yet." I've been writing code for almost 40 years now (quite a trick given that I'm only 39!) and have lost count of the number of languages and psuedo-languages I've learned over the years. What I do know is this - whenever I try to learn, or learn about, some new language just for jollies or for some poorly- defined future need, it doesn't take. If I ever do use the language, I pretty much have to start over. Best practice is that you learn a new language when you have need of it, either for development or for understanding some piece of code you've inherited and now must maintain. This may lead to some steep
learning curves that must be surmounted in a short period of time, but
nothing focuses the old brain like "learn this or die." I keep track of what's out there, but I've given up on dabbling in a new language until I
have need to.

One possible exception to this is learning new paradigms. For example, for all us old dinosaur linear-language programmers, OO design and development was a bit of a stretch. It was useful to learn the precepts and concepts of OO programming before actually needing it (I fought with both C+ + and Ada as OO learning platforms before finally learning Java WHEN I NEEDED TO). But learning a new language just to add another type of screwdriver to the old toolbox is just not productive. It also takes time away from
drinking beer.

As I say in my blog one of the reasons to learn a new language is just that - to see how another language approaches problems so that I'm not stymied into thinking "one way is the only way". In other terms, because I have a hammer everything looks like a nail.

Granted you do bring up a good point in that to truly use a language you need "something" to do with it. In my current job all I do is Java (and probably just about I'll ever do unfortunately), so I need to look to outside of work to learn something new otherwise my skillset becomes stale.

On that note then (and it's beginning to sound more and more like I should learn scheme first). What would be a good (little) project to do in scheme. Just suggestions please as I will take them and then come up with something that I can leverage for myself.

Here are some of the things that interest me:
- Code generation
- Searching
- personal information management
- community software - essentially connecting people in interesting ways

I don't know how any of this could possibly relate to a new language, yet, but I plan on finding out.

Ok, decided to do a quick search on cocoa scheme bridge and came up with this:
http://3e8.org/zb/cocoa/manipulating-itunes-plist.html

So I can combine two of my loves together (cocoa and learning a new language ;-).

Now, back to your original point, I do think that functional languages are becoming more important and I should *know* about them and how they do things so I can see how to make things better in my current environment (one way or another). I agree that it would be better to have work "pay for it" so to speak, but I don't have that luxury since they are stuck in a specific universe of Java-land (I'm going to call it the far-off place of junky Web app frameworks and forgotten ORMs).

-warner



Jim
*---------------------*-------------------------------*
| Jim Secan           | Northwest Research Assoc, Inc |
| ([EMAIL PROTECTED])      | 2455 E. Speedway, Suite 204   |
| (520) 319-7773      | Tucson, Arizona 85719         |
*---------------------*-------------------------------*


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Warner Onstine - Programmer/Author
New book on Tapestry 4!
Tapestry 101 available at http://sourcebeat.com/books/tapestrylive.html
[EMAIL PROTECTED]
http://warneronstine.com/blog




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to