

Ask YC: Is Zend Framework worth learning? - matt1

I started reading Practical Web 2.0 Applications with PHP a few days ago. The book relies heavily on the Zend Framework and Smarty templates to build a blogging website.<p>Does anyone else have experience with these? I'm willing to devote a lot of time learning modern web programming, but am not sure whether I'm headed in the right direction. Any advice?<p>Thanks in advance, 
Matt
======
rit
As a general rule, if you have a choice, I would recommend learning Python
(Pylons or Django, I prefer Pylons for it's looser coupling) or Ruby + Rails.

While PHP is used all over the place, if you want to keep your sanity you're
better off getting into more...structured systems.

Apart from that, Zend is pretty good. At my last place of employment we went
through a bunch of frameworks including Code Igniter, Symfony and Cake. The
various members of development all had violent disagreements over all of them.
For some reason that I am still unsure about Zend seemed to ... work for us.
It was stable, and nobody got into religious arguments over it's
implementation. Not sure that's a good sales pitch, but it certainly didn't
suck from my view. It added to PHP where it needed to, but didn't require you
to learn an entirely different way of doing things. e.g. Lower barrier to
entry.

~~~
matt1
solid answer, thank you.

i hadn't even considered python. what are its selling points?

~~~
rit
It's incredibly easy to learn & use - what I've always liked about it is that
I spend very little time thinking about how to accomplish a task in Python.

In addition, Python has solid support for object oriented programming which I
can't really say for PHP (PHP's object 'support' is slowly improving but it's
still a crappy patch). This is represented at it's core by the fact that
EVERYTHING is an object - if you say:

foo = 5

foo is an object of type int. It's still loosely typed, in that you don't have
to declare that foo is an int, but the contents being objects gives you a lot
of power for dealing with them.

There are a lot of great tools for Python as well - Pylons (which Reddit is
based upon), Django and TurboGears are pretty well entrenched and established.
They are easy to learn and work with (Django has an incredibly low barrier to
entry/learning curve) and powerful.

Mark Pilgrim wrote a great book called "Dive into Python" which is available
for free on his website: <http://diveintopython.org/>

It gets things moving pretty quickly if you're looking to get a taste of what
Python offers.

~~~
rit
The other point of course is that if you learn PHP, you've only learned a tool
to build websites.

Python is a pretty multipurpose tool that happens to have the ability to build
web applications. (And Ruby as well)

------
kamme
I have been using PHP for webdevelopment for 7years now and I recently started
using Zend professionally and I must say it works ok from my point of view. It
should be easy to learn php with it. But it has some downsides too. Like
skinnging of forms for example, is not as easy as it looks! There are also
still problems with the form validations. Overall it's not bad, especially
because it gives you much freedom of where to put your files and things like
that. But to be honest, like I mentioned before, after those 7 years of php, I
suggest looking at python (django for example) too. I don't say you shouldn't
learn php, it's really great, but django just seems to have it al. Don't know
about scaling though...

------
arvernus
[http://www.pragprog.com/titles/rails3/agile-web-
development-...](http://www.pragprog.com/titles/rails3/agile-web-development-
with-rails-third-edition)

~~~
matt1
Do most people agree that Rails is better than PHP to master?

~~~
noodle
i don't.

its too situational and dependent upon time, i feel, to be able to make a
generic, blanket statement like that.

~~~
matt1
fair enough. i typed up a lengthy post, but it boils down to this: Will Rails
be around for a long time?

~~~
noodle
i don't even necessarily think that it won't be around for a long time.

look at java. it'll be here for a long time to come. and it was very hot for a
few years. but now its the cool, safe, standard language CS people pick up.
and ruby, for rails, is the new hot language (which was virtually unknown
outside of japan for many years until rails hit).

how long till rails cools down and something else picks up steam? how long
until the answer to the question "i'm new, what language should i learn?" is
something other than "ruby"?

on the flip side of that coin, COBOL programmers get paid a pretty penny
nowadays because there are so few of them, but so many COBOL programs are
still alive. how long until java programmers become the COBOL programmers of
today?

whats "worth" learning depends on what you want to do and whats happening in
the industry currently. imo.

~~~
icey
As an addendum, there will always be jobs out there for writing boilerplate
code.

~~~
wallflower
Throwing together UI screens isn't sexy but it pays the bills so we can do
things like hack code (at home) for fun

------
noodle
zend is a good php framework. its used more in corporate environments, from
what i've seen, with cake/symfony/codeigniter being used in smaller dev groups
or by freelancers.

i don't have enough experience using it to give you my thoughts on how it
works and stuff, but i will tell you that for the most part, the php
frameworks are all similar in how they work.

