

Ask HN: What technologies should I use for my web application project? - manish_chhabra

Hi, I want to build a real estate web application for listing properties (for sale, for lease, etc).<p>Can you help me decide on what technologies I should use to build such an application? Let me point out that I am good with Java/J2EE + JQuery for front end but somehow I feel that is not the best solution for such an application.<p>Should I store "real estate property" details in usual database (like MySql) or document oriented one (like MongoDB or CouchDB)?<p>What should i use for middle tier..<p>NodeJS
PHP
JAVA/J2EE
Python
ColdFusion
Ruby on Rails<p>or something else ?<p>I am planning to use JQuery for the front end.<p>Thanks.
======
kls
We use HTML / CSS / and JavaScript exclusively for our front ends. We no
longer use any intermediary or server bound languages such as PHP or JSP. We
have found this to be faster to develop and more portable across back ends. If
you decide to go the Java route for your back end I would use JAX-RS and EJB
3. With EJB 3 you can use a tradition DB and not have to worry about all the
mapping that generally has to take place with the tradition relational model.
Netbeans has pretty good tooling around JAX-RS and EJB 3 in which you can
generate your REST service and entity classes from you database structure or
generate your database structure and REST services from you entity model.
Either way, you can have a working REST service layer up in a matter of hours
with Netbeans tooling, it is quite nice.

As for the front end, if you are going to be building a large scale web
application I would suggest adding Backbone and a few other libraries to your
JavaScript library or going with Dojo. Either way you are going to need
something to keep your app organized if it is going to be anything more than a
few hundred lines of code.

~~~
hrasm
I am very interested to know how you gracefully fallback to noscript mode. I
am asking because I am in the process of building something that does fallback
gracefully in noscript mode. It is extra work no doubt. Is it really worth it?
Would love to hear your thoughts on this.

~~~
kls
No it is not worth it in 90% of our cases, we monitor traffic religiously and
you greatly compound your cost to chase what (according to out stats) is less
than 5% of the market, when you compound that by the fact that you are not
going to convert that entire 5% the numbers are dismal for adding the cost and
complexity to a project.

We have found that one average that building in fallback modes adds 15% to 20%
of cost and time to a project. We have also found that that money roughly
equates to a mobile version of the web front end, which we see a higher market
conversion percentage, in other words, that money would be better spent
chasing mobile or adding features and revenue streams to an existing web app,
than to chase a dwindling market of last gen technology adopters.

When a client of ours absolutely insists on providing a noscript site for that
segment, we tend to opt for browser sniffing and segmenting that traffic to a
completely separate site built for those clients. We have found that keeping
the noscript version and the full version separate greatly reduces the
maintenance cost of both.

~~~
hrasm
Thanks for the informative response. Redirecting clients to separate site is a
nifty idea. I might do just that.

------
ra
If those are the tools you are familiar with, then go for it.

Stick with a SQL database and ORM for now, you can always convert to NoSQL
later if you need to.

Most would suggest using one of the leading two modern framework combos for
greater productivity (Django or Rails).

If you already know a few languages then you should pick up Ruby or Python
pretty quickly.

Personally, I use Django - but in a previous life I did a lot with Spring +
Hibernate; and whilst Java isn't trendy for startups, it is a potent combo.

------
keefe
I responded before reading the full post, stick with what you know and do
restful json, couchdb is also worth looking into for prototyping. As long as
your interfaces are clean you should be good. Also consider security.

~~~
manish_chhabra
Thanks, I have decided to use RESTful JSON with Spring 3 + Jackson, mysql db.

~~~
keefe
why mysql instead of postgres?

~~~
manish_chhabra
I have been reading about postgres after your comment but still not able to
see how feature rich and less mature postgres would benefit me more?

I haven't used postgres before so I am not the best person to comment on it.
Is there any significant advantage of using Postgres of MySql?

------
digamber_kamat
I think using PHP/mySQL will suffice for you. It is not giving you any
technical advantage but it might be cheaper than going for anything else

------
rlawson
if you choose Java, don't slow yourself down with full J2EE stack. Stick with
Tomcat + Stripes (or any MVC layer) + Hibernate or iBatis + Spring or Guice

~~~
roam
Or go for the Play framework: <http://www.playframework.org/>

~~~
manish_chhabra
Thanks I checked out both Play Framework and Stripes Presentation Frameworks.
There is so much out there, it is amazing!

