PHP is a good second programming language (but never a first)
rubayeet.wordpress.com
rubayeet.wordpress.com
First, the authors never seem to be someone qualified to design a curriculum. No doubt they are all qualified coders with a reasonable amount of work behind them and a good understanding of machine fundamentals. However, curriculum design is a specialty, with it's own pitfalls and peculiarities. We may as well ask these authors what a good technique is for thoracic surgery is. They're equally qualified.
Second, while the authors are not qualified to design a pedagogy, they certainly seem to feel that they are, based on their own idiosyncratic experiences. This borders on egomania. "I learned C/C++/Java/QBasic/Lisp first and look how awesome I am. Therefore, everyone should take my obviously optimum path to learning the One True Way of coding." Is there no room for others to learn differently? To take a path different from one's own and still come to the same fundamental understanding and skill level?
Third, and finally, the various authors' lack of imagination considering curriculum design is staggering. Can they not imagine a gentle introduction to algorithmic science via any of the Turing-complete languages out there other than their first language of choice? Is there no room for variety? For example, can any of them answer definitively whether it is better, for any describable subset of students, for them to (1) "learn the hard way" by having to interrupt their focus on the problem at hand to compile c code into object files, hand them to the linker, and then run the executable or (2) forgo the 'obviously essential' details of x86 architecture so that they can hit Run in their lisp/sheme/python environment and see the immediate results? Clearly, in the first case, those that get through the trial by fire will have an easier time learning other languages. However, couldn't that be an indictment against compiles languages as a first language; that the learning curve is too steep?
In the face of the infinite variety of students, learning styles, teaching styles, learning environments, available hardware, and (most of all) pedagogical goals, I'm reminded in this case of a wonderful proverb taught to me by my high school English teacher: It is better to shut up and be thought a fool than to open one's mouth and remove all doubt.
It's best to learn programming metaphors in languages that are idiomatic. Multi-paradigm languages are often more confusing, because when you're new to programming learning the paradigm is as important as learning the language.
Thus I'd say that languages like Pascal, Java, Lisp, Smalltalk, etc. are relatively good beginners languages, while languages like Perl, C++, Ruby, Python, PHP, etc. are not.
In ruby at least, people do like to experiment and have fun more it seems.
PHP was created to solve the Web problem. It was and still remains the most popular language to build web applications.
The rest of the post is fluff opinion that really doesn't hold water, and says nothing about the core of the language other than broad talking points. It's a very capable language, and the argument is fierce over choice of libraries when you scour the Internet.
The trick is to find out what the mistakes are (talking to people is very helpful here) and to find some language that compliments the first one so the mistakes even out. Or at the very least to make you realize how good you have it with whatever language you chose to use if you're still convinced you're a perfect programmer and don't need to learn anymore (though, in this case, there's some other advice that would be more beneficial for you to hear)
I've worked in 2 different companies that are Java shops. Its scared the crap out of me. I've yet to encounter a "java engineer" that has a freaking clue to good development practices. They almost universally insist on using tag libraries instead of writing code. Java and its adherents have been the only group of people I have ever encountered that insist on wrapping a perfectly valid markup language like HTML into A FREAKING TAG LIBRARY, THAT JUST OUTPUTS HTML?!?!?! Every bad web development practice I've ever encountered is epitomized by ever java engineer I've ever encountered.
Congratulations, you just used 250 words to say nothing.
Deleted comment
http://www.haskell.org/ghc/docs/latest/html/libraries/xhtml/...
I don't know if the Java tag library you mentioned is as good as the one in GHC, but it sure is useful to be able to combine pieces of html while maintaining type safety.
I quite disagree that that is a useful thing in a language - it might be necessary, but that's not what makes a language good or bad.