Some of the other talks at the Creativity World Forum look interesting too. Steve Wozniak's talk, for example.
The Cleese video is down, but many of the other videos, such as Wozniak's, are still up.
EDIT: It appears all the videos on the site are abridged. The Cleese talk on Youtube is probably the same as appeared here before the video was removed.
Well, I guess I'm asking for trouble arguing against a language I have no development experience in.
A quick Google search shows that PHP 5.2 and earlier seem to support something like the anonymous functions required in the example I linked to above -- via the create_function method. But using it in practice appears to be full of ifs, buts and complexities: http://nz.php.net/manual/en/function.create-function.php#706...
But maybe one could get it work if used with care.
If I were ever chained to a desk and forced to work with a PHP framework like Drupal that does not yet support v5.3, I'd look in to this.
Otherwise I'd choose a language that cares more for concepts like readable code and deep modularity.
"I am simply arguing that the most important thing in a project is the quality of the developers, not the language they chose"
I agree with the first part, but I think the language choice is integral to just how good those good developers can be.
I don't believe for a minute that a great developer can develop in PHP without being seriously crippled by it.
Functional programming has a tremendous amount of value outside of async/multi-threaded environments that cannot simply be replaced by other means. There are real limits to the amount of modularity one can achieve without functional programming, and modularity is key to great programming. I'd point you again to this paper: http://news.ycombinator.com/item?id=1482797
The state and history of the software industry at large only demonstrates that the majority of software developers in key technical positions within the industry are and have been less than great.
But if your argument is that PHP is "good enough" given a bunch of average developers... well then, yes, probably. Certainly plenty of good software has been written in PHP. I'd just argue that with the right developers it's far less than optimal, and that the choice of language could easily be the difference between the success and failure of a complex project.
"gives me a great deal of faith that he is in fact technically inclined, technically able and has some development experience."
I'm sure he has development experience. But too limited an amount.
It is a valid question, but I don't think any response provided here can properly demonstrate to him the value of a language like Python over a language like PHP. No more than someone could teach him to fly a plane in the span of a post like this. It's not a simple subject, by any means.
The best anyone can do is point him to resources that he could study and learn over a period of time -- or advise him to listen to someone talented that he trusts.
I'd be very careful listening to anyone advocating PHP for a project starting from a blank slate. Yes, there are talent developers that prefer PHP. And there are many more poor developers that prefer PHP as is the most popular default choice for those that lack experience, are not comfortable with their own technical judgement, or believe that all languages are more or less equal.
Many on HN would argue that a top-tier developer would not choose PHP, period. But you may not be able to get hold of a top-tier developer -- and in that case a team of solid PHP developers may be the best available choice, if not the best possible choice, particularly if you've worked with them before, and the project is technically simple and limited in scope.
"Im sorry? I must be missing the point. How does the presence (or absence) of a particular language feature prove or disprove the point that bkrausz made originally?"
Yes, you are missing the point. I refer to closures, the feature at the core of functional programming, not just any "particular language feature". Functional programming is an extremely powerful tool to wield, and has been absent from PHP since its inception until very recently.
A great developer with a functional programming tool in hand is able to well outperform a great developer who must work around its absence.
(In fact the latest version of PHP (5.3) can, but for years PHP has been lacking this, so the point stands.)
No amount of "good code design" can work around core features that are missing from a language.
The argument that all languages are more or less equal is as nonsensical as saying all cars are more or less equal, or all guns are more or less equal -- it ignores the tremendous advantage that using good tools can provide.
I don't envy the position of any non-technical person that has to make key technical decisions on a technical project.
Ultimately it takes a good developer to spot a good developer, so a non-technical person seeking to build a "robust web application" starts at a huge disadvantage.
Without understanding the pros and cons of each language choice, all he can do is gamble on finding a smarter person than himself that he can trust. I'm advocating he choose the anti-PHP guy, slightly tongue-in-cheek, because given the limited amount of information presented, that choice gives him the best odds.
Being in the position of having to make such a bet is less than desirable, but given his lack of technical knowledge, what else would you have him do?
If you have to ask this question, you're out of your technical depth.
The best thing you can do is promote the guy who's clamoring the loudest to steer clear of PHP to technical lead, and defer all future technical decisions to him.
The language is just a tool. Consider car racing. If you have a poor driver in the fastest car, it won't make a difference. No matter how fast the car is that he's driving, he's going to lose. And if you have a great driver in a slow car, no matter how good he is, he's going to be limited by the speed of his car.
If you have a poor technical lead, it won't matter what language you choose. You can give him a great language, but he will not understand and take advantage of its best features. If you have a good technical lead, but you choose a bad language, the quality and pace of his development will be forever limited by the language.
(And in the context of a team, the abilities of the team to make good technical decisions are limited by the technical direction your technical lead sets -- which is why you need the most talented guy in the position of technical lead.)
The guy on your team who is the most against using PHP is likely the one who best understands the ways in which PHP will limit your team. You do not have the deep technical understanding to make these judgments, and for that reason (without taking months of hard work to gain such understanding) you should defer to him.
Yes, some of the largest websites are written in PHP. But you do not have the same level of resources to throw at the problem that they have.
You're also starting your development at least 5 years later than any of the largest websites that you refer too. Frameworks/plugins/communities evolve quickly. There were more reasons 5-10 years ago to choose PHP then there are today. Companies that have already written millions of lines of code in PHP will find it very hard to switch to another language -- but you do not have to deal with the weight of such legacy issues.
As a small team, you need to look for every advantage you can get. Choosing a programming language that makes your developers more productive is an important part of that.
If you care about framework, community and plugins, Ruby is also a better language than PHP, and Rails provides these three things in spades. Assuming you don't have a good system administrator on your team, companies like Engine Yard and Heroku provide scalable managed Ruby on Rails hosting -- so you can outsource combating issues like down-time and data loss.
I agree on the power of inhibition, but I think the second point you alluded to is the larger one -- the ability to remove the stimulus.
Certainly it's hubris to believe that one can exercise "free will" to remain completely uninfluenced by one's environment. But what we can do is exercise a measure of intelligence and free will to anticipate the relationship between stimulus and response, and alter our environment accordingly.
I.e. if you're trying to lose weight, don't allow yourself to be exposed to fast food advertising.
Our brains may be heavily influenced by our environment in ways that we are not normally aware, but the existence of studies like these shows that we can begin to understand the dynamic of influence. Once we have understanding we can take appropriate measures.
As I see it, that's the true power of intelligence and human agency.
After all, as you point out, animals also have certain powers of inhibition. But none have the ability to comprehend their own minds and alter their environment accordingly.
When web applications are available on all devices, but work better on some devices than others, people have an incentive to switch -- and that puts pressure on Apple to keep their browser competitive.
Note the large number of people that make video game console purchasing choices based on how well their favorite cross-platform games perform on each of the respective consoles.