Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How can I convince my co-founders not to use a LAMP stack and should I?
15 points by nicenpretty on Dec 28, 2011 | hide | past | favorite | 40 comments
I need your help. I am not a coder. I do some coding (mostly backbone+cs these days) but I have become more of a product guy. Still I think I have a good understanding of what's going on and I try to make myself familiar with the tools/languages used by people I admire.

My problem: I am starting a project with a few friends. They are good programmers afaik. They have been working in a PHP environment for more than 5 years now - with java being used more and more recently.

Now for our project: They argue that for building an MVP it is logical to stick to what they already know best: PHP. I argue that if I have to deal with PHP/LAMP again - now that there are all those amazing server and client side tools based on node, ruby, scala and cooler-than-php-language-of-your-choice - I might die of annoyance

Am I wrong? If not, how can I convince them that those new tools are worth a very close look - even for an MVP?




Just from reading you comment, reasons for using LAMP:

1. Your friends have 5 years experience using it, and want to stick with it.

2. You admit yourself that you are not a coder these days, but more of a product guy. So why are you second-guessing your programmers when they appear to have more experience it this area than you? You will have to learn to trust them, or your partnership is doomed from the start.

And now your reason for not using LAMP:

1. It's not cool enough (according to you).

If I were in their shoes, I wouldn't be convinced by this argument either.


You sound like the pointy haired boss in the Dilbert cartoons. You admit that you're not a coder, whereas your friends are "good programmers", but you want to throw away their half decade (each) of experience because you would prefer to go with a buzzword language because it sounds cooler.

If they don't have experience in these other languages, the MVP will take longer to produce and will likely be of lower quality if you just shut up and let them do what they do.

If you're not going to be coding this, or if you are but aren't going to be one of the lead programmers, then the choice of language really doesn't matter to you.

Why are you second guessing people that you admit know more about the subject than you do?


Wow. Pointy hairy Dilbert boss. Now that stings. Fair enough, the argument of PHP not being cool really is silly. I get that. You are right, I was wrong.

I think I was a bit too lazy when writing this. Let me elaborate a bit: I am not telling anybody to do anything because I am not their boss. I am a partner. My goal is to spark a discussions, make people look outside their comfort zone and point out that the most convenient way might not be the most rewarding in the end.


you don't want your cofounders to go out of their "comfort zone" when it comes to learning an entirely new programming language & stack just for the sake of buzzwords AND building a startup at the same time. LAMP is a perfectly fine stack - they would have to "learn something new" if they were stuck with, say, COBOL, which is not exactly good tech for web development...


Making everyone learn a whole new stack on top of building your business just puts another big hurdle between you and launching - new platforms can burn an insane amount of time on stupid things that take you seconds with familiar platforms and it can take weeks or months to reach the same productivity.

Regretting the decision is a luxury problem, you have to make the product and make people want to use it first.


I'd say let the technical people choose and use the tools they are familiar and comfortable with. There isn't a hugely material benefit from jumping on newer, sexier technologies. At the end of the day it's about having a product to sell, not platform jingoism and technological pissing contests.


"I am not a coder."

Then don't force your coding styles down your technical team's throat.


Sounds like you really don't know what you're talking about.

You know those horror stories programmers tell about annoying bosses hovering over their shoulders telling them how to do their jobs, when they really have no idea how to do it?

Yeah, that's kind of what you're doing right now.


Sounds like you did not understand what I wrote

* I code on a daily basis

* I am not anyone's boss


"I am not a coder."

Yes, you're wrong. LAMP is excellent, and your co-founders chose it and continue to use it for a reason. If it's that important that you avoid LAMP, you need different co-founders because you clearly don't trust them, their skills and their judgement on the issue.


Many coders give PHP short shrift, but I have seen amazing things accomplished using Drupal (which is in PHP) in very short timeframes. The fastest code to write is code you don't have to write. If they know php, don't get in their way.


IMO, build with what you know already. If you want to build an MVP fast, then use PHP. You can always rebuild to scale later. That's if you NEED to scale, and people actually like your product.

The other argument is, maybe this is a good time for them to learn these new tools. Serious Question: Why are you going to die of annoyance if you are the product guy? As long as they can do what you want it to do, what's the issue?


Rebuilding to scale is a bad idea IMHO. The moment your app takes of you have just about everything on your mind, but not a clean slate rewrite in a different language. You'll need to scale and scale fast. So you'll be tacking on hot-fixes for stuff that breaks, features your customers want, ... And the more code you write, the less attractive it sounds to rewrite.

I wouldn't try to convince the coders to use a language that they don't know but I'd really try to convince them to have a look at stuff outside their comfort zone. There's a lot to loose but also a ton of things to gain. Have a look at other storage options (NoSQL, ...), other languages and what benefits they offer. Think of running on environments such as GAE or Heroku that are not available for PHP. They do offer their own share of advantages when it comes to scaling an app. They do have some disadvantages as well. Maybe there's a set of libraries in a given language that helps you a long way, maybe there's not.

However, in the end I'd say that the language you choose is the least of your problems. Cool technology can be built in pretty much any language.


I'd say the happy medium is a SOA design. If you separate out the critical modules into a separate service, a rebuild to scale isn't much more than a refactor to scale, which you are going to have to do at some point in time no matter what platform you build on.


Yes, sure. There's more benefits to reap: You can intermingle your services with services bought/rented somewhere and eventually replace the ones you're using if it pays of at the scale you reached (think redis2go vs. a self-hosted redis server) Services usually offer good boundaries at which you can separate the system and scale over multiple machines as well as a good entry point for black box testing.


As a programmer myself, I would actually prefer starting clean slate with something new (especially for a brand new project), like ruby, nodeJS. Of course, you can stay in your comfort zone with what you know (be it PHP or even .Net MVC C#), but in the long run, the cost of re-writing logic, pain of scale and transition to another platform is truly a buzz kill. I would rather get the code on the right platform first, so that future maintenance is not merely throwing money down in the drain. Not sure about you, but re-writing sounds pretty lame and low efficiency to me.


How do you assess the "rightness" of the platform before you even know the order of magnitude of, say, traffic or concurrent users?

I would love to rewrite my engine if it means I have a thousand times more customers than when I started. I mean, it's a win-win bet I'm willing to take: win now because I know the tools by heart, win later because I'll be making a ton of money later on and I'll be reingeneering a system I know by heart - which is so much cooler than writing fibonaccis in a language I don't know.

Chances are you're going to rewrite it all anyway for a strategic pivot, so why bother now with problems that you don't even know will ever exist? Just pick your best tool and make the most of it - premature optimization is also a form of procrastination.


You're a product guy, stick to that, and leave the programmers to what they know.

Nothing wrong with PHP. Some pretty big stuff is built on PHP. Don't go around trying to be the trendy guy, you'll just piss off your programmer buddies, then you'll become the product guy with ideas and no programmers to execute those ideas.


I think you should stay with PHP, but you can introduce other sexy things like utilizing the cloud servces. Swapping Apache and mod_php with Nginx and PHP-FPM. Use NoSQL stores like Redis, and MongoDB. Take advantage of HTML5 and CSS3. Look at websockets and Chrome's Native Client. Think about resposive design, and mobile first approach. Design a REST-API, and allow for easy integration and data fetching with OAuth-authentcation. Think about building native mobile clients. There is so much to understand, and do these days that the language you use to goue things together isn't that important, and btw PHP is one of the best languages to glue things together.


If they were at all interested in ramping up to Rails or node or <cool-hip-etc/> then you'd have some room to discuss the benefits of one over the other. But they're not, and it looks like you don't.

It takes a lot of work to move from one framework to another and if there's no enthusiasm for the move then there's very little chance the move will succeed.

There's plenty of better frameworks than php, sure, but there's also lots of cases trying to force the issue and ending up with a painful rewrite down the road.

http://www.oreillynet.com/ruby/blog/2007/09/7_reasons_i_swit...


You should use a LNMP stack instead -- swapping Apache for Nginx. And of course take advantage of PHP-FPM/APC.


You have no idea of their business, infrastructure, needs, etc.

You shouldn't advise one platform against the other.


suck my dick, bitch


Despite what I’ve read in other comments here I think you’re right. Programmers will always want to stick with what they’re familiar with because it’s easy (I’ve been trying for a year to pull myself away from C# and work more in Python yet I still gravitate back to C# for my “serious” projects). I don’t consider the “we have experience in this” argument as terribly valid (why ever move to something new if experience means that much to you).

More to the point if you’re starting a new company you have to plan for success. Success means hiring more programmers and picking a language that’s fallen out of favor will inhibit every programmer who comes after your co-founders. Assuming you’ll be hiring junior programmers it makes a lot more sense for your experienced co-founders to learn something new then trying to teach your junior programmers something old.

(Look at any programming language that's fallen out of favor in the past and you'll see the salary of coders in that language goes up as the language's popularity goes down)

The problem you have is you, as an outsider, can see their problem but you don’t have the knowledge or experience to suggest a solution (“cooler than php” is not a good argument). If I were you I’d seek out PHP programmers who made the switch to either Rails or Python. Invite them to a lunch with your co-founders and let them talk through the issues. PHP has some significant advantages over Ruby and Python yet people are still gravitating away from it. Getting them in the room with people who are part of that movement is your best bet at convincing them


> More to the point if you’re starting a new company you have to plan for success.

PHP scales for Facebook-like success. It will handled whatever this guy wants to do with his MVP and beyond.

> Success means hiring more programmers and picking a language that’s fallen out of favor will inhibit every programmer who comes after your co-founders.

This sounds a lot like the "cool enough" argument in disguise ("fallen out of favour"?). Remember the founding coders can write garbage it any language. Code quality and the choice of language are not related, and code quality of a legacy code base is much more important for new developers coming on board.

> The problem you have is you, as an outsider, can see their problem but you don’t have the knowledge or experience to suggest a solution ("cooler than php" is not a good argument). If I were you I’d seek out PHP programmers who made the switch to either Rails or Python. Invite them to a lunch with your co-founders and let them talk through the issues. PHP has some significant advantages over Ruby and Python yet people are still gravitating away from it. Getting them in the room with people who are part of that movement is your best bet at convincing them

If the reasons for switching from PHP to Ruby or Python were so clear-cut that they could be explained over a coffee, then everyone would have made the switch. But the fact is they're not: it's largely a matter of opinion and personal preference. So if their preference is to use PHP, why try to convince them they're wrong when there is no definitive right?


When I said plan for success I didn't mean PHP can't scale it was related to the lower argument that very few people under 25 uses PHP anymore.

(In truth the benchmarks I've seen show PHP is faster than modern languages)

The point is from a management perspective being able to hire cheap junior programmers is a significant issue. Finding someone young, cheap and experiences in PHP is hard. Even harder if you want the people you hire to be passionate about their job (using yesterday's technology makes you seem like a dinosaur to many)

Trust me I've been on the other side of this. I, to this day, believe 80% of startups would be better off using ASP.NET MVC. But if I were building a startup I wouldn't pick that as my platform. Because the most talented young developers don't want to work with Microsoft technology.

Honestly I'm not even going to bother with your last argument. If being clear cut could automatically cause everyone to agree we wouldn't have political parties, religions and any host of other organizations based around disagreement.


I appreciate you playing devil's advocate on this, but the argument just does not hold water, the masses have it right.

Throwing away 5 years experience of your founding team, and throwing in a new language for everyone to learn is simply insanity. Doing so just for the sexiness of the new language makes it doubly so.

Nitpick: Why assume PHP is not a "modern" language? Last time I checked interpreted, typeless, trash collected languages were pretty modern.

Nitpick 2: Why should execution speed benchmarks matter? In that case, write everything in assembler. I'm not being facetious, execution speed is far down in the list of priorities.


>When I said plan for success I didn't mean PHP can't scale it was related to the lower argument that very few people under 25 uses PHP anymore.

I wonder where you get your statistics. The three most popular languages I know people under 25 uses (I'm under 25 myself) are .NET (well, not a language, but I mean mostly C#), Java and PHP. Maybe this has to do with the enviroments where this kids learn to code.


What? Do you know the second biggest website on the internet is written in PHP (Yes, the backend uses a different interpreter, but the front is still raw PHP) and was started before the guy was even 25?


There is a wide range of quality in PHP code, and it depends mostly on the coder.

If your team uses simple php pages with inline code and a rats nest of includes like newbies did in 1999, it will be a disaster.

If they have progressed beyond that, you will have a range of experience from mediocre to excellent.

If your team has good coding conventions and practices and uses a modern framework (I use Yii on a current project and find it of high quality), they can write a solid maintainable app in PHP.


I use Yii myself, but I find that not so many people choose it over Symphony/CodeIgniter/CakePHP. I wonder if it is because of some bad marketing?


Well for one, you can use any client side tools you want since they will be server language agnostic. And as others have pointed out, having to learn a new language/framework/etc is going to introduce another huge risk.

At the end of the day, a beautifully written app with the latest and greatest technology with zero users isn't going to help you build a business.


The language you use is largely irrelevant - it's the team you work with. If you want to work with the language du-jour you should find a founder who is fluent with that language.

If these are the technical founders you want to be with - then you should let them decide.


One of the warning signs that you're working for the wrong people is that some guy who writes zero lines of code is making architectural decisions. Don't be that guy.


On a scale of 0-100::

Value of technical co-founder(s) with 5 yrs experience in any particular language: 99

Value of language/framework "sexiness": 5

The only marginal value of "sexiness" is that it can attract more forward thinking developers. However, PHP is alive and well. The sheer volume of PHP developers available increases your chances of finding someone competent to work on your project.


What's your primary goal? Having a MVP fast, or play with newer technologies? Unless your MVP requires very specific tech (let's say heavy analytics, websockets or whatever) JFDIt. It's hard enough to build something, nevermind the tech.


Use the language they know best (e.g., Can code fastest in). There are two phases to your start-up. 1) Is this shit going to work? 2) Holy shit this is working.

You are in step 1, get it out the door and worry about all that other stuff later.


You may want to watch this: http://www.webofstories.com/play/17152?o=SH

Don't use something because it's cool, use it when you're sure why you should.


Sounds like he just wants to use a more 'sexy' language.


I bet your startup has bigger problems than the software platform. Solving a problem in a new platform takes around 5x the time it takes to do it in a known platform. And this delay can easily kill a startup. Worry about the platform later and it's not like they're building it in COBOL. There are plenty of PHP programmers around. Even Facebook is running PHP.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: