more communities

Joel (but no Jeff) is joined this week by Paul Biggar (who Joel originally met when he was a DevDays London 2009 speaker about scripting languages). Paul currently works at Mozilla, having come off his own (not that successful) Y Combinator startup.

Paul’s least favorite scripting language of all time is PHP. Paul works in static analysis, which is looking at a program that is not running, and making decisions about whether or not it will work, how to make it faster, what the security implications are. Paul has solved the Halting Problem… twice.

PHP stinks, so we talk about C and C++ for a while. Bjarne Stroustrup wrote a great book on the topic.

The people who love language design are not the people that are enthused by PHP, and they were scared off by the “poisonous community” (Paul’s words!). The most popular programming languages that aren’t very well designed: PHP, Perl, JavaScript, shell. Their creators “had no business designing languages”. How did they become popular?

Haskell was a programming language that was well-designed but never gained any traction. Paul says there are two types of programming languages: those that start safe and try to build performance, and those that start performing well and try to build safety in. Haskell is the former. It “escaped” from academia… barely. F# comes from the same school of thought.

What about Dart? Google released a spec. They’ve got a full implementation that’s ready to go in Chrome.

Enough about programing languages! Paul started a YC journalism startup called NewsTilt. It was the Future of Journalism, which is a terrible business to get into. Here‘s why it got shut down. In a nutshell: there were problems with the product, and problems with communication between Paul and his co-founder. Also, not being in Silicon Valley can be problematic… though Silicon Valley is not necessarily the be-all end-all of startup success. Perhaps most important was that it didn’t solve a problem Paul really cared about.

Circle CI is a compiler-related startup that does capture Paul’s interest. It’s “continuous integration made easy”!

Paul didn’t actually make the slides for his talk. But the message he wants to get out there is that working on compilers is actually very easy, and not something only wizards can do.

20 Comments

“There are only two kinds of programming languages: those people always bitch about and those nobody uses.” – That’s the main reason why PHP, C and all other popular languages are so much ranted about, but other langs like Go never get much criticism.

First half is just complaining that ‘Language Designers’ can’t design a language that people actually want to use. What a shock, someone who lives in academia has no idea what industry needs and feels the need to insult the languages that people actually use because they don’t conform to the academic definition of perfection.

I think that’s a bit unfair. It’s not that ivory tower academics (necessarily) design languages that are unsuitable – it’s that there are two requirements for a successful language.

1, It has to be familiar (ie look like ‘c’) – so Java, C#, Python all caught on but lisp didn’t. I don’t know why Perl managed – probably because it was used by non-programmers!

2, It has to have supporting libraries to actually do some work. The most perfectly language is useless if you can’t talk to the screen/network/database/printer etc. So only languages that can use existing ‘c’ libs have caught on.
But it is why the web has been so fertile for new languages – if all you have to do is output html then you don’t need much infrastructure. Perhaps .Net will become a great place to try new stuff (like f#) ?

That was one of the best SE podcasts for a while. I really enjoyed Joel and Paul geeking out over language design and trading opinions about startups. Paul was an excellent guest: smart and able to challenge Joel without being rude or overbearing.

Heh. As a mainly PHP developer who started with Pascal and Delphi back in the day (and is itching to delve into something new!), I can confirm many of the criticisms you guys make – especially dynamic typing, and the fact that most people using it don’t have a programming background. It’s not a good language to start programming with, for sure. Still, it does have its uses in the hands of a disciplined developer; starting with PHP 5, it is possible to create really good OO code in it; and there is no better way to deploy apps quickly, and dirt cheap in terms of hosting and supports. I agree it’s not a greatly designed language in many respects, but a lot of what the web is today is built on it there’s no need to hold your nose too high.

What is really sad, though, is the lack of quality learning resources for the language, and the amount of crap code people come up with every day on SO is depressing. But if PHP weren’t the choice of those coming from design, learning HTML and then PHP as their first experience, it would be some other language…

Complain all you want, all of us banging out fugly PHP will keep doing it because we enjoy building things, and not waxing poetic language features. Did Java/Python and building on top of GAE make NewsLabs any more successful?

tldr; Paul admits building a custom CMS over choosing WordPress was the wrong decision and was largely made because of his disdain for PHP.

Literally, missing a once in a lifetime business opportunity because you couldn’t swallow some PHP. Yeesh.

This is my main argument against PHP critics. Don’t tell me, show me. Show me the C++, Java, Python, Ruby, Dart, Server-Side JS, Lisp or Haskell equivalents to WordPress or Drupal or Magento? Off the shelf, zero config, works everywhere and easily customizable.

Well, it’s impossible to deny that PHP has some serious problems. And WordPress won’t win any clean code awards internally, and is *fat*… But on the other hand, it’s also undeniable that it *works.* If you need to set up a blog, you usually end up with WP. Myself included

Where this idea that PHP was “inspired by VBScript” came from? PHP has very little in common with VBScript, except for supporting <% tag (which nobody actually uses) and it doesn't have "VBScript-like syntax" and I don't think I have ever seen VBScript ever mentioned on PHP lists as an example to follow. And of course the "default property" in VB described there has noting to do with PHP.

As for the "not being sure what the syntax for reference was" thing I tried really hard to understand what it could be about and couldn't. I'm not sure anybody on the podcast could either.

I don't mind PHP being criticized, but please could it be criticism based on actual knowledge and not something that somebody heard somewhere, probably about another problem with another language and he's not even sure what he's talking about?

As for designing languages, I think it's a fallacy to think you can predict what people want and build this neat and nice thing that everybody would use and you won't have to change. In most cases it would not work, so either language would change or people wouldn't use it. PHP was created for people to use it, not to fit somebody's notion about how language should look like.

As a PHP developer I'm sorry Paul felt PHP developers are "poisonous" people. I don't feel this way but maybe it's because I can not feel my own poison.

As for the culture of PHP list being in any way related to Israeli culture – it is particularly funny as people from Israel very scarcely participate in the discussions on the list at all. Again, we get criticism which is completely lacking any factual base.

I think to say that Haskell never gained any traction is too harsh, judging from the number of haskell packages available over time: http://i.imgur.com/aAbsc.png, it is a growing community. It is true that it isn’t truly popular, but there are those who use it every day, just have a look at questions tagged Haskell on stackoverflow!