top | item 3399951

Ask HN: How can I convince my co-founders not to use a LAMP stack and should I?

15 points| nicenpretty | 14 years ago | reply

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?

40 comments

order
[+] j_col|14 years ago|reply
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.

[+] AgentConundrum|14 years ago|reply
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?

[+] nicenpretty|14 years ago|reply
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.

[+] benologist|14 years ago|reply
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.

[+] JS_startup|14 years ago|reply
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.
[+] gharbad|14 years ago|reply
"I am not a coder."

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

[+] jtreminio|14 years ago|reply
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.

[+] nicenpretty|14 years ago|reply
Sounds like you did not understand what I wrote

* I code on a daily basis

* I am not anyone's boss

[+] jeffcouturier|14 years ago|reply
"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.

[+] ericb|14 years ago|reply
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.
[+] robbiea|14 years ago|reply
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?

[+] Xylakant|14 years ago|reply
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.

[+] mellifluousmind|14 years ago|reply
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.
[+] joshmanders|14 years ago|reply
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.

[+] bungle|14 years ago|reply
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.
[+] davesims|14 years ago|reply
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...

[+] executive|14 years ago|reply
You should use a LNMP stack instead -- swapping Apache for Nginx. And of course take advantage of PHP-FPM/APC.
[+] shin_lao|14 years ago|reply
You have no idea of their business, infrastructure, needs, etc.

You shouldn't advise one platform against the other.

[+] TomOfTTB|14 years ago|reply
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

[+] j_col|14 years ago|reply
> 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?

[+] brentashley|14 years ago|reply
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.

[+] mellifluousmind|14 years ago|reply
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?
[+] adatta02|14 years ago|reply
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.

[+] giberti|14 years ago|reply
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.

[+] kentbrew|14 years ago|reply
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.
[+] bradleyland|14 years ago|reply
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.

[+] mping|14 years ago|reply
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.