
Why PHP Was a Ghetto - vlucas
http://codefury.net/2011/04/why-php-was-a-ghetto/
======
hapless
"5. Arguably the best documentation for any language"

I should very much like to see that argument.

My impression of PHP documentation (after using it for three of the last five
years) is that it's a endless pile of bullshit whose primary content is in
_user comments_ on the doc pages.

That's the core library. Third party libraries are typically wholly
uncommented and undocumented.

~~~
eberfreitas
I think he is right. I never found a language with better docs! PHP's website
is it's own documentation and it works really nice:

<http://php.net/arrays>

<http://php.net/extract>

<http://php.net/oop>

I hardly memorize stuff 'cause it's so easy to look up to the docs that it's
not necessary. And here is what you get when you don't really know what you
are looking for:

<http://php.net/array_implode>

That is just nice documentation...

~~~
Zak
Have a look at clojuredocs.org. I think it's one of the best documentation
sites I've seen for any language or library. I especially like the inclusion
of source code and links to other code that uses the thing being documented.

An example: <http://clojuredocs.org/clojure_core/clojure.core/condp>

~~~
jhuni
I concur. That site's documentation is the best I have ever seen. The
documentation on the main page is pretty good too:

<http://clojure.org/cheatsheet>

------
rickmb
PHP has now split into different factions. Those like the WordPress community,
who still party like it's 1999, and those around the major frameworks,
libraries and testing and QA tools, who've taken their cues from Django, Rails
and such.

The two have so very little in common they might as well be using different
languages.

I'm oversimplifying of course. There are a number of large an quite successful
communities that fall somewhere in between, like Drupal. The point is, neither
the communities nor the code they write have much in common other than having
PHP somewhere deep at the core. There is no "this is what PHP is like"
anymore, and that hasn't been the case for over half a decade.

~~~
alexfarran
At least one old style PHP project is crossing over into the MVC camp. phpBB4
will be built on top of Symfony 2 [http://blog.phpbb.com/2010/02/18/moving-on-
the-future-of-php...](http://blog.phpbb.com/2010/02/18/moving-on-the-future-
of-phpbb-development/)

~~~
damncabbage
I can only hope that Mods / Plugins aren't going to continue to be a euphemism
for "scripts that modify the forum core libraries". (I gave up on the last two
major versions because of conflicting hack-scripts and botched upgrades.)

------
edw
A lot of my designer friends love Drupal, and they wonder why the veins in my
neck and forehead start to bulge when they mention it. They love it because it
allows them do things that they never could have imagined, whereas I despise
it because it does badly what any competent Django or ROR developer could do
in more quickly and maintainably. (Yes, I know, there's a Drupal module that
solves that problem…)

I mention Drupal because I find its "the node is our hammer and all solutions
are nails, er content management systems" approach to doing things is a
perfect example of the PHP google-then-copy-and-paste programming caricature
that is all too often true.

But the author's correct: to the extent that PHP sucks, it sucks not because
of PHP itself but the culture that surrounds it. In my experience, everyone's
a noob, an advanced noob that is eager to share their bad habits, or callused
actual experts who assume that you are one of the aforementioned noobs and
assume you have the cognitive capacity of an overripe banana.

I know several PHP developers who I respect—Hi, Sunny and Tom!—but they seem
to exist outside the PHP space-time continuum.

~~~
dasil003
I actually think the Drupal architecture and codebase is amazing for what it
is. There is a huge class of middle-tier clients that want a ton of
functionality which can only be provided by a prepackaged modular system like
Drupal, and the amount of extensibility Drupal affords you is impressive.

I don't ever want to touch Drupal again, but not because the code sucks. I
just think it's working at the wrong level of abstraction. I understand the
need for that level of abstraction, but personally as a UX designer and
developer I feel the compromises Drupal forces cheapen my work.

~~~
edw
I don't disagree with you: the building blocks of Drupal are fine for what
they are until you want to think in richer abstractions.

When I talk to people who want to create a content-driven site, I walk them
through the three types of web sites I see: those simple enough to be
comfortably implemented using WordPress, those that are more complicated by
still simple enough to play to Drupal's strengths, and those that are more
complicated or are expected to be more complicated over in the near to mid
term and thus call for a Django (my choice) or Rails or whatever application.

------
dasil003
I left PHP in 2005 because it felt like I wasn't learning anything anymore. At
the time I thought it was the warts, but in retrospect it's definitely the
community. The problem is that every good piece of open source PHP is drowned
out by a hundred shitty spaghetti projects.

When I picked up Rails, everything clicked right away because it directly
addressed so many of the shortcomings of how things were done in PHP. Digging
deeper in the Ruby community I found a genuine passion for pulling in great
ideas and advancing the state of the art. Ruby has shitty projects too, but
the good stuff is more prominent and easier to find.

After 5 years with Ruby I'm not particularly eager to leave, but I do feel the
urge to pick up another language to expand my horizons once more. Preferably
something with a high density of good ideas, like Haskell.

I know PHP has evolved and is quite capable as a language, but the only way I
would touch it again is if I was working on a project that was interesting for
bigger reasons (eg. Facebook).

~~~
andjones
It sounds like you're more interested in programming languages in general. You
might find these books interesting:

Essentials of Programming Languages [http://www.amazon.com/Essentials-
Programming-Languages-Danie...](http://www.amazon.com/Essentials-Programming-
Languages-Daniel-Friedman/dp/0262062178)

The Little Schemer [http://www.amazon.com/Little-Schemer-Daniel-P-
Friedman/dp/02...](http://www.amazon.com/Little-Schemer-Daniel-P-
Friedman/dp/0262560992)

------
there
_Rasmus generally promotes abstention from using frameworks, and the use of
PHP as more of a templating language._

from watching a recent talk (<http://ontwik.com/php/php-performance-by-rasmus-
lerdorf/>) he gave, i didn't get the impression that he hated frameworks, but
more that he hated most php frameworks because they were slow.

in the video he says a big problem with current frameworks is that they deploy
to production the same code used in development, which still includes all of
the knobs and extra includes that have to be pulled in on every request to
support things that aren't used. he would rather see frameworks turn code into
a streamlined bundle of code that gets pushed to production.

~~~
bkudria
That's be much easier if there were some decent reflection and metaprogramming
support in the language.

~~~
nuclear_eclipse
PHP has had reflection support for years:

<http://php.net/manual/en/book.reflection.php>

And define metaprogramming; PHP has supported all of what I would consider
metaprogramming as part of their core API since PHP 4. It may not be as pretty
as what you can do in Ruby or Python, but you can do it just the same.

~~~
andrewvc
Umm, did you read what you linked to? PHP reflection is a verbose, ugly mess.

Example PHP vs. Ruby

    
    
        PHP:
        $a = new A(); 
        $reflector = new ReflectionClass('A');
        $properties = $reflector->getMethods();
    
        Ruby:
        a = A.new
        a.methods

~~~
troels
It's verbose, but it's not a mess. It's quite coherent actually. For smaller
encounters, there are a number of procedural reflection functions available.
For this case, you could do:

    
    
        get_class_methods('A');

~~~
eru
Perhaps. Though it would certainly be nicer, if A was a first-class citizen in
PHP, and you would not have to pass its name around as a string.

~~~
troels
Sure, but that has little to do with the reflection api.

PHP is unique among its class of languages (counting Ruby, Python, Perl etc.)
in that it has an extremely dynamic runtime, but yet keeps the
compiletime/runtime distinction known from compiled languages, such as Java.

I have a love/hate relationship to that. On one hand it feels stupid and
restrictive compared to more thought-out languages such as Scheme, Javascript
or ruby, but on the other hand it _does_ instil some stability in an
environment that is quite chaotic in other respects (dynamic-weak typing has
some confusing edge cases, just to name one). I'm not sure it's such a bad
balance after all.

~~~
eru
> but yet keeps the compiletime/runtime distinction

Could you elaborate on that? I don't see what you mean.

Interestingly, Python usually also gets compiled---though the target language
(Python's byte code) is still very dynamic.

~~~
troels
I meant semantically, not literally. PHP has a class based object model that
is basically copied from Java. One of the more absurd results of this
transplantation is that in PHP, classes can implement static interfaces. This
is useful in Java, to imbue some flexibility into the otherwise very rigid
static typing, but in PHP it's utterly backwards.

As an aside, PHP gets compiled into opcode before interpretation, but the two
processes are usually not separated. This is true for most interpreted
languages actually.

------
runevault
I find it amusing how hyper-specific he gets in the comments defending PHPs
speed, saying comparing it to even Python is unfair because it bytecode
compiles to save time.

To me, that sounds more like a flaw in PHP that it doesn't save bytecode and
reuse that if the underlying source has not changed, not a defensible reason
to claim it is faster than other "similar" languages.

~~~
nuclear_eclipse
If you want PHP to save the compiled code between sessions, the APC extension
does that perfectly well, and has a dramatic impact on server performance.
Yes, it's weird that something that useful isn't part of the core language
though.

~~~
eropple
It will be in PHP6.

------
compay
I posted some generally supportive comments on his post, but dared to point
out that PHP's interpreter is in fact rather slow compared to pretty much
everything else, so he shouldn't claim that PHP has "maybe the best speed and
scalability among script-based languages." I ended up getting attacked as some
kind of PHP hater.

If PHP has a reputation as a ghetto, it's in part because of cocksure noobs
like this who think they know everything and are impossible to have a rational
conversation with.

~~~
katzgrau
I am said "cocksure noob."

If you disagree with @compay, you will assuredly earn the same title.

~~~
jessedhillon
Welcome to Hacker News!

Based on your comment and that you have a tenth the karma of the person you're
accusing of being reactionary, I would recommend that you make an actual
argument or mount a defense, and stay away from these kinds of insults.

~~~
katzgrau
meh, read the comments on my blog and think for yourself instead taking some
collectively-generated number as an indicator of whether you should scowl at
me or not.

------
jallmann
CodeIgniter is really not that nice. Maybe it seems cool for the uninitiated,
but it is just a PHP clone of Rails. CI and kin can't hold a candle because
the expressive power of Rails doesn't come from the framework itself, but from
Ruby.

There are a few times when the choice between one language over another is
more of a pragmatic issue rather than one of taste, and Ruby's ease in
creating DSLs (and hence, Rails) is a perfect example.

As TFA mentioned, Ramsus Lerdorf has the right idea. PHP is a templating
language. Contorting it into a general purpose language and squeezing a Web
framework out of that is unpleasant when there are so many nicer alternatives
available. I almost feel bad for Rasmus; people are using his language, taking
it beyond its intended scope, and giving it a bad name for that.

~~~
shadowsun7
CodeIgniter is nothing like Rails - there's little magic involved; the
framework is very 'humble' (that is - it almost never forces you to do things
its way) plus its entire philosophy consists of giving you classes to work
with (and an MVC pattern) ... and then getting out of your way.

I'd argue that CI is to PHP what web.py is to Python, or Merb (pre-merge? -
correct me if I'm wrong, maybe there's a better example) to Ruby.

~~~
jallmann
CI is not a carbon copy of Rails, which would be quite difficult anyway given
the base language, but the inspiration is undeniable. All the pieces are there
-- the MVC pattern and associated features like routes, helpers, etc.

CakePHP-Rails would have been a better analogy, but my point still stands. The
language plays a large role in making a framework nice to use, as much as the
intrinsic design of the framework itself.

~~~
wdewind
Don't confused "Rails" with "Every web MVC framework out there."

------
Egregore
PHP is popular because of low barrier to deploy. All hosting providers offer
PHP, while with other technologies you'll have to shop a little.

~~~
chc
Besides its ubiquity, it is also the only real contender that is specifically
designed for the Web. You can just stick a PHP file containing `echo "1 + 1 is
" . (1 + 1);` anywhere on your site and it will tell you 1 + 1 is 2. Ruby
scripts (for example) _can_ run that way, in practice a server will be set up
to use a Rack interface instead of just echoing the output of a Ruby or ERb
file. This simplicity is attractive to many who are just starting out.

~~~
vog
Note that this kind of programming is deprecated even in PHP. In any
reasonably well structured project, you'll find that kind of code only in
templates, if at all.

From the article:

 _| Rasmus represents what most non-PHP developers hate about PHP._

 _| Rasmus generally promotes abstention from using frameworks, and the use of
PHP as more of a templating language. To him, this translates to raw speed and
scalability (load-wise). To everyone else, this translates to piles of
procedural spaghetti code, and unmaintainable projects. For roughly 10 years
following the birth of PHP in 1995, this was how PHP projects were written._

------
andjones
The fact that many PHP projects end up in unmaintainable spaghetti code is a
mark against the programmer and not the language.

Take your average PHP programmer and force him/her to code in Ruby and the
same mess will result.

The fact that PHP has so many "noob" programmer is indicative of its success
in creating so many great projects and websites. We have made PHP so easy that
even your grandmother can do it.

From the article:

If you are capable of making wise software design decisions, PHP is a great
choice to build your web application with.

~~~
damncabbage
> We have made PHP so easy that even your grandmother can do it.

I'd wager it's so easy that even your grandmother can do it /badly/, while
putting her business or data at risk.

More seriously:

Frameworks or languages that make it easy to be secure by default are a lot
better, both for newbies who don't know better, or for old hands who slip up
once or twice.

The simplest example I can think of to illustrate the difference:

    
    
        <h1>Hi, <?php echo $name; ?></h1>
    
        vs
    
        <h1><%= name %></h1>
    

(Say "name" is "<script src=xss.js></script>". The former is vulnerable, the
latter is not. Both are just as easy to write.)

~~~
pilif
In all fairness, the XSS protection in ERB expressions is a new feature of
rails 3.0 which isn't out for that long. Before that you had to use the h
helper (which of course is much easier to type than htmlentities)

~~~
bad_user
Also in all fairness, large parts of code written for Rails 2.x can be ported
to Rails 3.0 painlessly, enjoying the new security benefits without breaking a
sweat.

You simply won't be able to upgrade PHP to make <? echo $something ?> behave
properly. That's the problem with languages that were designed to be
frameworks in themselves -- languages have to maintain backwards
compatibility.

~~~
pilif
well. If you were intentionally allowing certain replacements to be in HTML
(because they come from a trusted source or because you sanitized them before)
and so you weren't using the h helper in rails, when you move to 3.0, you will
see escaped code just the same as if PHP changed echo to escape its
parameters.

Both the update to rails 3.0 or to a hypothetical new release of PHP which
escapes parameters to echo would cause the same amount of work.

What you could say is that rails is less afraid to force change on people and
that conversely, PHP puts more emphasis on backwards compatibility.

Both have their advantages and their disadvantages, so _this_ particular
issue, I feel, really can't be used to show the inferiority of PHP. Parameter
order of functions? Crude syntax? Strange case sensitivity rules? Awful,
counterintuitive == operator? Sure. Emphasis on backwards compatibility? IMHO
not really.

~~~
bad_user

         Emphasis on backwards compatibility? IMHO not really.
    

It's not that -- I like frameworks precisely because there's a layer of
abstraction between my code and the final output.

Using PHP as a web framework, without a higher-level of abstraction (like a
PHP framework) is dangerous because backwards compatibility has to be
preserved.

"echo" in PHP is like "print" in Python. It wouldn't make sense in either case
to force escaping of HTML tags for such a low-level instruction. But people
have been using it to output HTML content for years.

~~~
pilif
Same goes for <%= which has been used by people for years to output HTML
content.

Changing echo; to encode entities when used from within a web server SAPI (so
not on the command line) would not cause more or less hassle per app than
changing <%= to encode entities by default.

Of course the overall PHP code base is much bigger than the rails code base,
so there would be more people affected. But for the individual application
developer, there's no difference in amount of work whether <%= suddenly starts
escaping or echo; does.

------
hackernewz
ZF and CI are horrible examples of coding practices. They are extreme examples
of "make a class for everything because you can". ZF file and directory
structure is at odds with PHP 6's namespaces, in fact it will probably have to
be completely thrown away to make way for a ZF 2.

CI doesn't even have the base class of any "controller" defined anywhere for
you to read. It is created on the fly every request. This guy is a noob and
doesn't understand what good programming is.

~~~
eropple
I rarely respond to people who use "noob" in a non-ironic way, but whatever:
ZF's file and directory structure is not appreciably at odds with namespaces;
it is different but (as it works pre-5.3) complementary.

If you look at Symfony2, it can handle both namespaces and Zend-named objects
without significant trouble. ZF 2 will change it because namespaces are now
available, but the old style of library importing will certainly persist
because it has to.

------
nickik
the bad:

>Ugly syntax

The syntax is not that importent (the semantics are the BIG problem) but you
are right. What to expect from somebody that didn't even want to read a hole
parser book (not blaming him i think there boring too but if you don't want to
read a parser book implment a lisp)

>Lack of some necessary features that other languages have (prior to 5.3,
namespacing, closures)

Having a feature in the language is good but not worth a lot if there not
idiomatic to use.

>Inconsistent function naming, usage, and other quirks Inconsistency is te big
word. Everywhere. Nobody thought about what is done how, where or why.

>The fact that 80-90% of PHP projects are probably gigantic piles of shit

yeah.

The "good":

> Standards (not universal, but generally a flavor of MVC for most projects,
> and little procedural crap)

1\. Application Design is more then just MVC. 2\. Most PHP Code produced still
suckes. Sure there are frameworks and standards know but how many % of the
people writing php know this? I know lots of people how get tough php just
like 10 years ago and if they are not really into programming (like people
here) the will never learn the good stuff.

Having "Standards" and people using them is a diffrence.

>A very low barrier to entry True. Php was just at the right place at the
right time.

> Speed & Scalability (maybe the best among script-based languages)

From most benchmarks I have seen php was really slow. Isnt it compiling to
bytecode witch then gets inerpreted?

There are projects like HipHop and phc but I havn't seen really good numbers
for them.

Are there good up-to-date benchmarks to support this?

> A great unit testing framework

What language that could has somewhat the same scope as php does not have
really good testing frameworks?

> Arguably the best documentation for any language

Read some compents in this thread to see peoples opinions on that.

~~~
Mikushi
He is right in saying that PHP is fast. In recent benchmark that we did at my
company, mostly between PHP and .NET, i was able to make PHP match .NET speed
with little effort, using my own framework.

I have quite a lot of experience using PHP under heavy load, and i know for a
fact that Ruby or Python are no match to it, and .net is barely better if not
equal.

As a PHP developer, mainly (i also enjoy Python and C), i am aware of a lot of
the problems that PHP has, but in the hand of a developer that really
understand the language (attend a couple of conference from Rasmus and you'll
get an idea on how to develop PHP properly, and that doesn't mean not using
frameworks), PHP is really powerful and unmatchable in terms of easiness to
use, scalability and speed.

------
Staydecent
I agree with the post, and have come to hate PHP less. But the main reason I
choose python or ruby (when I have the choice) is because of the syntax. I'm
not sure the proper term, but I find you have to write more characters, as
apposed to ruby or python, to say the same thing.

------
EGreg
There is a reason why facebook used PHP, wordpress is in PHP, and a lot of
other tools are also. PHP is popular, it's easy to find developers who will
write it in it, and it's also easy to find PHP hosting for noobs. When there
is a popular platform, you will get lots of apps written on it.

That said, the high art of PHP was always to make really performant apps while
having your code as organized as possible. These days, this is being done very
well with files, autoloading, and opcode caching. If you do things this way,
Rasmus would be happy, and things would be fast.

I am a PHP developer. A lot of what I saw in the past few years was frameworks
like Cake and symfony that basically copied Rails or brought some heavy
techniques with a lot of overhead. This is not the PHP way. If you want to see
a framework that does things in a more PHP way, I would humbly submit my own:

<http://phponpie.com>

It's open source. It's called PHP On Pie for a reason: because it's easy and
it uses real PHP techniques, not tries to emulate Ruby or Python. PHP has its
own beauty, such as arrays which can support numeric and string indexes at the
same time.

All this said, these days PHP is outdated for large sites. Not because there
is a lot of crap written in it -- which I agree with. But because it still
works only synchronously, and the culture is too server-heavy. Large sites
should be written like this:

    
    
      Clients (browser, etc.) do most of the interface logic.
    
      Components should render themselves using javascript, and only use the server for data
    
      Server does web services (REST, socket push, etc.)
    
      Server should not have to do things synchronously.
    

Node.js rocks in this respect. Unlike PHP, I can literally issue 10
independent queries to 10 different databases and combine the results as they
come in. In PHP, I would have to issue this stuff sequentially. That's slow.

The second thing in PHP is fixable. People should move most of the logic (that
doesn't need authentication) to the client side, and then write all their web
services in a very simple way. Stop generating all your HTML on the server.
Check out

<http://weblog.rubyonrails.org/2011/4/18/why-http-streaming>

and

[http://www.facebook.com/notes/facebook-
engineering/bigpipe-p...](http://www.facebook.com/notes/facebook-
engineering/bigpipe-pipelining-web-pages-for-high-performance/389414033919)

~~~
aphyr
_PHP has its own beauty, such as arrays which can support numeric and string
indexes at the same time._

Rarely do I actually spit on my keyboard.

Not only do most other languages do associative arrays properly, so, you know,
numeric and string indices don't clobber each other, but they also don't
explode when indexed with, say, anything but decimal literals. You _seriously_
think this is beautiful behavior?

<http://aphyr.com/journals/show/fun-with-php-arrays>

~~~
Androsynth
If you write sloppy code, expect unexpected behavior. Your examples are as bad
as any other junk out there.

The advantage of php arrays (imho) is that you can treat them as associative
arrays or not dependening on the situation. The lookup behavior is the same
for both though, which is convenient.

i don't know python or ruby enough to compare, but it is nicer than javascript
where associative arrays (ie objects) and real arrays are entirely different
types.

~~~
Stormbringer
Don't blame the tool user for inconsistencies in the tool.

A claw hammer that occasionally bites your hand off is a bad claw hammer.
(Bad! No biscuit!)

~~~
Androsynth
The general consensus of this thread is that there are a lot of bad php
developers out there that write bad code and this does serious discredit to
the language. The example this poster linked to was bad code.

Its not proof the language is bad, its proof the poster is no better than the
truly bad programmers who use the language he is trying to make fun of.

~~~
jessedhillon
In PHP:

    
    
      $bool = (08 === 0);
      var_dump($bool);
    
    

This prints

    
    
      bool(true)
    
    

In other words, at the deepest level of identity this language can check, 08
is reported to be equal to 0.

With a language like that, I think it's safe to blame the tool.

------
sigzero
He uses "was" like it still isn't.

------
briancray
Bad title, good points.

------
kouiskas
Average developers blame the language for their inability to make the best use
of it. Good developers are too busy writing great code with the tools they
have at hand to care.

Some languages have strengths for particular applications, but spaghetti can
be written in anything.

And why should you care if 99% of the rest of the world writes shit code with
the language you use, as long as your own house is clean?

------
alecco
Documented madness <http://www.reddit.com/r/lolphp/top/?t=all>

------
MatthewPhillips
The author points to the recently good support for frameworks (specifically
MVC), but hasn't there been a bit of a backlash against overly opinionated
frameworks and a move to more lightweight frameworks like Sinatra? Isn't PHP
going to just be behind on this trend as well?

~~~
nuclear_eclipse
CodeIgniter, which is what the author recommends and I have used extensively,
is already a very lightweight framework, or at least compared to some of the
very opinionated ones like Zend. CI goes out of its way to make sure you can
use or ignore as much of the framework as you want, with the exception of its
core controller and routes system.

Components like templating, views, active record, form validation, etc, are
completely optional, and it's trivial to replace or extend components without
having to mess around with any of the core code. Just don't load that
component, and use something else instead.

~~~
te_chris
Wait, isn't Zend the opposite of a rails-style opinionated framework and
basically just a collection of classes that you can assemble however you want
for your project? I've only done a little bit with it, but that's always been
the impression I've got from the literature I've read.

~~~
nuclear_eclipse
I think it's supposed to be, but every time I've looked at using Zend, I
always get the impression that you can't just give or take individual pieces
of Zend like you can with CI. Certain bits of the framework are interdependent
on other bits, and before you know it you're pulling in about 50 of its core
components just to make a basic MVC application. But then again, I haven't
looked at Zend in the last year or so; perhaps its gotten better in the mean
time.

------
krobertson
"In it’s pizza-faced adolescent years (pre-5.0)"

Really? It took 5 major releases and 9 years?

Ruby and Python have been around as long or longer, but seemed to get the
language basics/semantics down earlier. They also grew a lot slower compared
to PHP.

------
pronik
Essentially it's "an open-source project is just as good as its BDFL is".
Which is, judging by different projects, true.

------
myearwood
PHP works .On everything. Ruby on Rails is clunky and complicated, and Python
is not supported a lot of web hosting plans.If you have millions of dollars in
VC funding and your own dedicated servers, Than feel free to use the latest
and greatest web languages. Meanwhile, let the rest of us mere mortals use PHP
without making us feel inadequate or unintelligent.

~~~
pharrington
If you want to learn a new technology, a micro EC2 instance is _free_ for a
year. You have an entire year to learn basic admin, mess around with Ruby or
Python or Scala or literally -any- language that exists. Maybe you'll even
make something cool and monetize it, or get noticed and land a job at an
awesome company. The ubiquity of certain technologies is a non-issue when it
is -trivial - to host yourself.

~~~
mgkimsal
"a micro EC2 instance is free for a year"

unless you had the nerve to already be an Amazon customer earlier.

~~~
justincormack
Set up another account. Amazon specifically told us to do this at an AWS
meetup, they really dont mind.

------
xstring
and who are you. writing perlcode all in one file not even using 'use
warnings' nor using getoptlong and so on. poor skills but lots of noise here.

------
thespace
Php is still a ghetto. The author brings up some interesting points but the
other web languages have jumped pretty far ahead of php. Python is laughable
compared to php anymore.

