Ask HN: If you could start from scratch, would you still use LAMP?
I have a bit of time and a bit of financing (enough to give me a "runway", not enough to say "fuck you").
Now I want to explore some ideas from more than ten years ago that have been made possible with things like the iPhone, iPad, and their derivatives. I imagine a fancy-looking front-end, probably starting with the iPad, connected to some database/business operations on the back-end, for small businesses in a certain industry. I've thought about a native iPad app for the front-end but figure it'd be both safer and cheaper to build a web app instead. Also, if someone wants to run the front-end on an Android device, I want this to be easy to arrange.
What toolset at the back-end would you recommend for someone who can start with zero legacy code? I am aware that you throw the first version away and then rebuild anyway, still I'd like to use the "right", future-proof technologies from the get-go.
So for the front-end, I suppose there's the holy trinity of HTML, CSS, and JavaScript; but for the back-end? Is LAMP still in use/the way to go, or should I invest in something else?
Okay, so you want to build a web application. I think you are making this more complicated than it needs to be.
You don't need to get too exotic. While these choices are important, they shouldn't be a point of paralysis. You wouldn't be making a bad decision to go the route of Python or Ruby on the Lamp side. Otherwise you could look at .NET, but that's not an area I know a lot about.
Perhaps your best bet is to find your technical cofounder and let this person make the decision based on his/her strengths.
Personally, I would make the P Python and not PHP. I really do not like working in the latter.
The thing about it, with the new development model of abstracting the UI away from the server and writing it in the trinity (I love that and am going to steal it). The back end choice becomes less important. Say you start writing services in PHP and decide later that "yeah this thing is a tar ball", you can just write your next service in Python or Java or Ruby or whatever. Sure you still have to maintain the old ones and possibly port them to your new language of choice, but what you don't have to do it port over an entire server side UI layer which has traditionally been a difficult proposition. They are riddled with proprietary idioms that don't one for one translate to a different languages web framework.
LAMP is definitely still the way to go.
In my office Perl is the P, and we use the Catalyst framework on top of it.
With these frameworks most of them use the MVC pattern. This allows for you to easily jack in different front ends or "Views". At my job we use e-mail, JSON, XML, and templated HTML(Template Toolkit) Views.
http://en.wikipedia.org/wiki/Model%E2%80%93View%E2%80%93Cont... http://en.wikipedia.org/wiki/Catalyst_%28software%29 http://perl.org
I have used PHP in a multi year project, and I think that PHP is just plain godawful.
I am happy to use [LB]A[MP]P where [LB] is Linux or BSD (BSD preferred), [MP] is MySQL or PostgreSQL (mostly PostgreSQL preferred) and the final 'P' can either (1) fall back to Perl or (2) spring forward to Python.
I have used Rails and Rails is fun but I am not convinced that they have emerged from scaling purgatory yet.
Not only should you roll with LAMP, but you should get yourself a framework, too. The top comment in this thread from about a year ago says it all, particularly the first bullet point: http://news.ycombinator.com/item?id=773447
I agree with most of the posts here.
For me, while PHP isn't the most exciting technology right now...it works. I have wanted to master Ruby and Python for some time now. However, I am still pretty much a novice in them. I use them here and there for non critical scripts in hopes that I will be proficient enough in them to use as a go to language.
Until then I have to use PHP in which I can write really elegant code really fast.