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]