You are talking about *very old* versions of PHP. Neither of them has
been acceptable for *years*. They've only been there for compatibility
purposes.
I know that my other examples are outdated. However, they are still a
part of PHP language evolution, and show the overall direction in
which it took place: quick & dirty over methodical & correct, at every
point.
You mean, a PHP program today still doesn't start with "<?php", end
with "?>", and the templating engine isn't the core and most in-your-
face part of the language?
And placing arbitrary code snippets embedded in to markup is one of the
big *advantages* of PHP - not a disadvantage! It's much better than
having to use print statements to output stuff that never changes.
It's better yet to do proper model/view separation, so that you don't
need to mix up code and markup at all... and even in PHP land there
are dozens of MVC frameworks that let you do that (and last I checked,
it was generally considered the Right Way to do things even there).
Problem is, if one don't know about them, it's too tempting to just
scatter code around markup, same as back in ASP/JSP days.
I believe I've worked on much larger projects than you ever dreamed.
Try > 100 programmers for 4 years, in England and the east and west
coasts of the U.S. (3 groups). Ever work on projects with > 4M LOC
written in 370 Assembler? I have. Ever manage projects with 25
programmers for 2 years? I have. Shall I continue?
Your credentials are most impressive, and so is your experience.
However, those aren't in and of themselves arguments in a discussion.
The only reason why I mentioned that I had first-hand experience with
PHP was that you asserted that I "do not know what I'm talking about".
And in many of those we had no framework - there weren't any. But it
was still easy to make things work properly. We had programming
guidelines and code reviews.
From my own experience, neither guidelines nor reviews are panacea.
I've worked in companies which had both, very much formalized, and yet
the code that ended up being written was only so-so.
And, of course, it still takes more time to review and correct messy
code than it takes to review and correct clean code. As a simple
example: when reviewing C++ code, you have to look for simple new-
without-delete memory leaks, but also more subtle things such as
vector<auto_ptr>, or C-style cast that ends up being reinterpret_cast
rather than static_cast and breaks things, or signed/unsigned
arithmetic mixup that ends up with non-obvious type... the list can go
on and on. When reviewing Java or C# code, none of those are issues,
so no time needs to be wasted looking on them. Are there other, Java/
C# specific problems? sure, but on the whole, it gets rid of more than
it introduces.
People have become too dependent on frameworks, IMHO. They help mundane
programmers remain mundane. Good programmers are good without them.
Oh, I see where you're coming from now.
Well, what can I say... if you can get an all-star team of a dozen
developers, then, sure, you can do well with pretty much anything.
When it happens, I guess it's entirely reasonable to go for whatever
toolset those developers feel most comfortable with.
But that is, shall we say, not a very frequent occurrence. High-level
languages and frameworks appeared for a reason.
Then you really don't know what you're talking about.
I would appreciate if you'd refrain from personal attacks. You do not
know what I know about, and what I don't.
For one thing, that I worked on PHP a while ago doesn't mean that I
don't keep an eye on the platform since than. Among other things,
language design theory is my hobby, so at least as far as languages
go, I try to keep up with everything that's still alive and breathing
(and then also some that isn't).
So? It's still being marketed by Microsoft, and still active on many
platforms.
There are many legacy solutions that are still marketed for niche
applications by companies. They're still legacy.
At any rate, VBScript (or plain ASP in general, regardless of the
language) hasn't been marketed for years now, and VBScript for system
scripting has been superceded by PowerShell, which is over 2 years
old.
Let's see... C# comes to immediate mind. A lousy attempt to fix things
which weren't broken.
If you want to debate the relative merits of C# vs whatever is your
favorite language, I'm sure we can do it in a separate thread (and in
a civil manner).
For this thread, let me clarify - so you imply that PHP, as a
language, is better designed than C#?
If so, it might be constructive to give some specific examples of
where you believe C# is flawed, _compared to PHP_. (and then we'll
also stay more or less on-topic)
I said nothing about Perl, Python or Ruby. Don't put words into my mouth.
My original point was that there is no point of choosing PHP over
Perl, Python or Ruby for any reason. You replied that "the biggest
difference is that Zend is working to correct those flaws". I don't
know how else to interpret that; if I've got it wrong, I apologize,
but then please go ahead and explain what you've meant.
Every language has flaws. Just different languages have different ones..
There is no perfect programming language.
Indeed there isn't one, but that doesn't mean that some languages
aren't objectively better than others in general, and for a specific
purpose in particular.