• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 164
  • Last Modified:

Help decide on technology stack

Looking to build an application that primarily does a variety of data manipulation (on large data sets) using cool and simple UI

Key factors:
- need to use all open source technologies
- need to loosely couple
- postgresql is chosen for db because reliability and data integrity are an absolute necessity for my project
- Application performance could be moderate. Application might not have more than 2 concurrent users. Application deals with "large" data sets (10-100 gigabytes for now) but user can wait few more seconds or a min for the bulk updates to happen. So high performance is not a must have.
- any other key factors to consider?

Q1# need advice on 'how to approach towards better design'. I really want to architect it well so future enhancements could be done painlessly
Q2# PHP vs Ruby vs Python- Which programming language is better with postgresql. I am leaning towards php since I guess it has extensive support with database programming
Q3# Material to read/learn about architecting web applications
Q4# Any pitfalls or major disadvantages of using postgresql?
2 Solutions
Dave BaldwinFixer of ProblemsCommented:
If you're serious, you should investigate what Facebook has done to dramatically speed up PHP.  Some more info:  http://en.wikipedia.org/wiki/HipHop_for_PHP
Ray PaseurCommented:
Skip PostGreSQL and use MySQL instead.  The availability of good toolsets for MySQL is much greater than PostGreSQL, and there is no difference in the reliability, performance or data integrity.  You can use either data base right or wrong, and the way you use the database will have more to do with the success of your project than the choice of the underlying engine.  FWIW, deployments of MySQL outnumber PostGreSQL by a very, very wide margin.  This did not happen by accident; the marketplace has spoken.  Some links of interest:
http://en.wikipedia.org/wiki/WebScaleSQL (similar concept to HHVM)
http://db-engines.com/en/ranking_trend (log scale in this chart)

To your specific questions:
1. Build on Laravel and MySQL, use AngularJS for the client end.  (You can use Laravel Views, but you'll make the app more sophisticated and "slick" if you use a JS front-end and a Laravel API).
2. PHP because you may want flexibility to hire professional programmers. There are lots of PHP programmers.
3. Make a Google search and start there.  Dayle Rees books are a bit hokey, but good in terms of organization.  All of these products have online help and examples galore.  Laracasts.com is a good source.
4. In the face of the popularity of MySQL and the specialized development by the WebScale consortium, I would not recommend PostGreSQL.

Last note, then I'll sign off.  If you're doing this yourself and you already know a good bit about computer science, for example, you know Ruby very well, but do not really have any depth of experience in PHP or Python, then the obvious answer is "Ruby."  If you're thinking of getting help with the build, consider your local colleges and universities.  There are often Senior CS majors or grad students who are looking for a gig.

Best of luck with the project, ~Ray
Why bash PostgreSQL? MySQL is unstable database to trick you into selling you Oracle.... At least cal it MariaDB that has data integrity bugs of MySQL fixed...
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now