

Ask HN: Help me come back and choose the right technologies - adidum

I am attempting a come back as a programmer, after an unbelievable absence of 3 years. I need your help to refocus, and select the right technologies for what I'm going to need in the near future.
Here is my story: Java developer for about 10 years, up to exactly 3 years ago when I quit because of some major family issues that required my full time attention all this time. But there was something else, that is important for me to always keep in perspective: I was really burnt down and I also became unhappy because my profession took so much time from me, actually all of it, for constantly having to learn something new and being good at what I was doing. I actually love learning, but I my profession didn't leave time for learning anything else besides computers, and life is so much more than computers. I guess I'm a generalist more than a specialist. So this is the first half of my question, how can I be a hacker but in the same time have a real life outside computers. How do you balance both?<p>Having said that, I am ready to start again and I thought I'd start fresh, since my Java is probably already a bit rusty. 
I've been looking these days at things like Ruby, Python and a few LISP flavours. I am attracted to LISP because of the paradigm change it requires, and I'm not really new to it, I used it a bit in the university. 
The reason I want to come back is because I do love technology, always did, and I already have a project lined up, for which I'm looking to select a set of technologies that will make productive ASAP. This project is a directory of local activities for people. The closest model I can think of is Craigslist, with the major difference that all the listings have a temporal dimension, they start and end at some time, and that people can rate and comment on those listings. As an example of such activity, let's say a chess class, that starts in 2 weeks and goes for 3 months, 2 days a week. The project is about aggregating such activities, broken down on categories and geographical areas. How would you do such project, most efficiently?
This project is important for me to get it done successfully and on a timely fashion, I don't have time for too much trial and error, to spend much time learning something that turns out not a good choice. That's why I decided to ask you guys.
I would like to choose something that doesn't have a steep learning curve, so I can became proficient with it sooner than later, something with great support for web applications, tried and stable. 
Should I stick with Java, since it's the only language I am now familiar with it, and it has so many mature web frameworks? Or is this a good time for me to take the leap towards something like LISP?
I must admit the idea of a paradigm shift associated with my comeback sounds very appealing to me. I've already started replacing relational databases when it comes to the data model with something more semantic, like TopicMaps and/or RDF.
In the same time I want to be realistic and maximize my chances of a successful comeback and project completion.
Sorry for the long post, thanks a lot for your kindness.
======
cosgroveb
Welcome back!

I recently "came back" so to speak. I spent 4 years after college on a
development team for a Fortune 500 company that didn't actually develop that
much and I came to see my profession as just a paycheck... I got a wake-up
call and I've re-discovered my passion.

Congrats. Honestly, I didn't read your entire wall of text there but if you
want to get into something cool (and use something you already know) you could
do what I'm doing right now and learn Android development. It's a lot of fun
and I didn't even know Java starting out. The docs are great.

<http://developer.android.com/>

~~~
adidum
thanks so much for your welcome. I have a question for you: what are the
reasons that determined you to learn and develop for Android? I'm asking
because to me it's all about motivation. If I have very meaningful reasons for
what I'm doing, then I enjoy doing that, and don't quit too soon.

------
jefflinwood
It sounds like you have a good idea of what you want to build, which is great!

Now it sounds like the thing you have to do is figure out the data
architecture - that could help make the rest of your technology stack
decisions for you. For instance, can your data structures be modeled in
something NoSQL like MongoDB or CouchDB? To me, it sounds like you'd want to
use a relational database, but it would be fun to experiment!

~~~
adidum
yes, that is sound logic. The data structure model is very important to me. I
would like to create a framework that I can reuse, where data is modeled
semantically. I can't believe there isn't such framework out there already.
I'm thinking TopicMaps. Java might be the top choice if going this way. Thanks
for the idea.

------
Uhhrrr
If you want to be productive ASAP, and have done Java for ten years, I would
suggest Java.

Picking up new technologies is great, but even the most user-friendly ones
will have a learning curve. IMHO it's best to start with a new
language/framework/etc as just a small, isolated chunk that takes advantage of
its sweet spot.

------
jtchang
I've always been a fan of learning what interests you. If you like Java, stick
with it. Learn what has changed in the past few years so you can capitalize on
your experience.

That said I want to give a vote for Python. I knew Java and python just seemed
to feel right for me. YMMV!

------
jp
Turn off email, your phone and the TV.

Try Google AppEngine, Java and JDO. Install IBM Eclipse and the Google
AppEngine plugin and deploy in two clicks. Move to VPS if you need more than
what Google offers.

Do LISP/RDF research when code is up and running.

~~~
Cafesolo
I'd recommend Objectify instead of JDO.

<http://code.google.com/p/objectify-appengine/>

The reason why Google chose JDO as the default interface to the AppEngine's
datastore instead of JPA is because the datastore is not really a relational
database and JDO is much better suited for non-relational backends.

However, there's a lot of stuff in JDO that you will never use in an AppEngine
application.

Objectify is a thin wrapper around the low-level datastore API. It's a
pleasure to work with and it will save you a lot of time.

~~~
adidum
Believe it or not, but I lived without phone and TV for a few years now, it's
great :) I'm giving Google AppEngine a serious try. Otherwise I'll have to
look for a Java Web framework, the problem is that there are too many out
there. thanks for the advice!

