Bobby asks:
What is the best web language today?
What is the worst web language?
Does the practice of one vs another show the capabilities of the developer, or the limitations of the task?
Those are some tough questions to answer. I’ve somewhat talked about this before. I would probably say that the problem is the question is too broad. I’d really need to ask back, “better in what way?”
My personal opinion, and I point out that it’s merely my opinion because I’ve been pulled into debates with folks that disagree on this, is that the visitor/end-user’s experience is what matters the most (you have to draw your line in the sand somewhere, that’s where mine is). I feel that most of the currently popular web languages are capable of producing the same result to the end user, so the developer should use what they’re most comfortable with, whether that be .NET, PHP, Ruby, etc. You’re going to be able to find clients that will let you develop in any of those languages, so that’s not a sticking point to me. It’s difficult to go much further beyond that without more definition around the question. For instance if you wanted to take it down to OOP, one language might start shining compared to another, or if it was an issue of smallest learning curve, another language might take the spotlight.
I know some other folks that argue it’s whoever the client is might dictate the language, and I see merit to the argument, however I’ve also found that you can lead a client towards a particular language under many circumstances, aside from them already having an internal environment setup that they want you to develop for (although I’ve also had clients willing to setup an environment just for what I’m building them). So, all that to say, there’s a lot of exceptions/gray area.
I personally prefer PHP for web development. It has a low learning curve, outstanding centralized/maintained documentation (seriously … it blows the rest out of the water when it comes to documentation in my opinion), and an amazingly strong community behind it. It’s also a strongly proven language for web development. All one has to do is look at Facebook, Wikipedia, Digg, WordPress, etc, and you can see it hard at work. Yahoo! also has a strong presence in the PHP community which has led to some great API’s for search, geocoding, mapping, etc. Most of their services have an API, and most of those API’s will return results in serialized PHP, making developing on top of them very easy.
As for the second question, which is worst, I’m not sure I can answer that for many of the reasons I outlined above. There are some horrible ones out there, but they likely started to scratch an itch, you can’t necessarily blame the language if it got bent out of it’s original purpose.
The third question is an interesting one. I think I would likely argue that it would show the capabilities of the developer. Given that I view choosing the correct language as what the developer is most comfortable with, I’m not sure that I could answer any other way. I’ve yet to see a webapp/website built on a language such as Ruby on Rails/.NET/etc that I couldn’t replicate in PHP. I might not be able to replicate something made in .NET in Ruby/on Rails, however that is not a fault of Ruby, it’s a fault of my knowledge of the language.
Anyhow, sorry it took so long for me to write an answer, it’s been a busy week. Hope that at least somewhat answers how I feel about the questions.
This post is part of Episode 6 of the weekly Ask Matt Series.
Well, given my background, you can probably guess that I’m going to end up recommending something that is open source. I would also say most of my experience comes from databases that have a strong presence in the web community. Historically, the bulk of my experience is with MySQL, which really is a nice database platform. It supports several table types (MyISAM, InnoDB, etc) which have their pro’s and con’s. It also enjoys wide support from programming languages.
I’m not sure that I would rate it as the best though. For instance, about 3 years ago I released an online feed reader called OneFeed. It had a nice Ajax front-end that looked like Outlook’s typical 3 pane view. Then it had crawlers on the back-end that were parsing the feeds that users had subscribed to. It was definitely a learning experience. My #2 bottleneck ended up being the database. I had started off on MySQL with MyISAM table types. Well, the feed crawlers were basically writing to the database non-stop, as in 24/7/365. They were having to parse over 20,000 feeds once every hour at its peak. So the problem is that with MyISAM, when a write goes to the database, it locks the entire table instead of just the record that is being written to. This was bad because it meant the user interface was being slowed down because of the crawlers trying to keep up with their job (there were 12 crawlers at the peak).
So, I ended up shifting over to InnoDB which allows record level locking on tables, and this definitely sped things up quite a bit. But the database was still sluggish to respond on certain queries. The database size was also exploding.
About this time is when I shut OneFeed down. However, I was speaking with another developer that was working on an online feed reader as well. They, too, were having the same issue that I was and they took it to the next step, which was switching to PostgreSQL. With PostgreSQL they were able to kill several birds with one stone. They achieved faster query times and smaller database sizes.
PostgreSQL also offers triggers and more robust features. However, some of this is becoming moot as the platforms have started moving towards each other. MySQL has picked up triggers, etc, and PostgreSQL has been stepping it up on performance. So, these days, there’s less difference between the two for the average user.
Anyhow, that’s about the most I can tell you. I’d say MySQL probably has broader market share, but PostgreSQL is somewhat viewed as being more robust still. I really don’t know tons about Oracle, and have only played minimally with MS SQL Server. So I can’t really comment accurately on those. I know my brother likes SQL Server, and I’ve never really heard him (or anyone really) complaining about it being stupid. So if you’re living in a Microsoft world, I’m sure it’s a great platform. I’ve never really had to work with SO much data that I even needed to consider Oracle as an option.
This post is part of Episode 7 of the weekly Ask Matt Series.