
Ask HN: How can I convince my co-founders not to use a LAMP stack and should I? - nicenpretty
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.<p>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.<p>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<p>Am I wrong?
If not, how can I convince them that those new tools are worth a very close look - even for an MVP?
======
j_col
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
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
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.

~~~
herval
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...

------
benologist
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
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
"I am not a coder."

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

------
jtreminio
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
Sounds like you did not understand what I wrote

* I code on a daily basis

* I am not anyone's boss

------
jeffcouturier
"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
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
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
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.

~~~
phamilton
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.

~~~
Xylakant
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.

------
joshmanders
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
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
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...](http://www.oreillynet.com/ruby/blog/2007/09/7_reasons_i_switched_back_to_p_1.html)

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

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

You shouldn't advise one platform against the other.

~~~
executive
suck my dick, bitch

------
TomOfTTB
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
> 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_?

~~~
TomOfTTB
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.

~~~
gm
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.

------
brentashley
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
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
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
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
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
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
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.

------
SanjayUttam
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.

------
fridek
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.

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

------
cooldeal
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.

