What is Larry Thinking? #26 => PHP, Yii, PHP, Frameworks, PHP, and Starting a New Business, Part 2

March 18, 2010

In this edition…

About This Newsletter

First, in my previous newsletter, I mentioned how lame the title of this newsletter was: “Larry Ullman’s Newsletter”. One reader, Chris, pointed out that the title is actually “What is Larry thinking?”, which he thought pretty good. Apparently I did too, at one time, but I am shamefully forgetful, even about what I’ve written! So “What is Larry thinking?” it is, and what I’m currently thinking is that I’m at least 20% less smart since I had kids. Anyway, thanks to everyone for their responses and questions. Here’s some more stuff that I thought was notable over the past month, with a heavy PHP bias (which I gather is what most subscribers prefer)…

On the Blog => The First Rule of User Interface

A little while back I posted a brief discussion of what I’m calling “The First Rule of User Interface”. I’ve been thinking about UI so much for the past year and a half: I’m not sure why, maybe I’m just tired of running into terrible, live examples online (there’s one mentioned in that post). The rule is simple: a proper user interface sets the user up to succeed. For more on that, see the post. I’ve got a few more posts on this subject in the pipeline as well.

On the Blog => The Economics of Publishing

A good New York Times article and a couple of blog posts from other writers has led me to a couple of posts on the economics of publishing (first and second). This particular topic seems to be even more pressing these days with the increased interest in e-books. Many people, apparently, think e-books should be way cheaper, because there’s no physical printing and shipping costs involved. Still, there are legitimate costs with even electronic editions of books and no one–the publisher or the writer–is making nearly as much money as many seem to think. It reminds me of the uproar when compact discs first came out because they were cheaper to manufacture than audio tapes. However, in that case, the music companies charged more for the CDs than they did for the tapes: justification indeed for the outrage!

On the Blog => What’s New in Yii 1.1

Version 1.1 of the Yii framework came out in January and I finally made the time to post about the changes and to update my “Learning the Yii Framework” series.

On the Web => EasyPHP

A reader in the forum had mentioned that EasyPHP now has a PHP 6 installer available. This is an all-in-one Apache, PHP, and MySQL package for Windows. Of course they offer production-quality PHP 5 versions, but if you’d like to play around with PHP 6 (and are using Windows), EasyPHP is an, um, easy way to make that happen. It’s available for free but donations are requested.

On the Web => PHP in Facebook

In response to my last newsletter, someone referred me to this article on how PHP is used to run Facebook. The article is detailed, although a bit technical, and walks through how Facebook created an internal system that turns PHP code into C++ so that it can run even faster. It always amazes me that some people think PHP doesn’t scale well or isn’t a “big-time” development tool when sites like Facebook and Yahoo! run using PHP. You really can’t get any more demanding than that! And my thanks to Steve for sending this along.

Q&A => With the availability of so many PHP frameworks, what is the role of PEAR? Is it still useful?

This is a very good and interesting question, in my opinion. PEAR, in case you’re not familiar with it, is a public library of PHP code that can be used piecemeal as needed (like CPAN for Perl). I’ve used and written about PEAR for years. Often, the right PEAR package is the perfect solution for a task, such as Geo IP Location (looking up a user’s location in the world based upon their IP address), HTML form creation and validation, using Web services, and much more. There are two things that distinguishes PEAR from most frameworks. First, an entire site isn’t written in PEAR the way it is in a framework. Second, you can use individual PEAR modules as needed. Most frameworks, the exception I know of being Zend, require you to use the entire framework for everything. If I was already using a framework, I would probably turn to it for solutions to problems. In fact, if I’m going to choose a framework for a site, I’d probably do so while considering if that framework has the built-in features I’ll need. If I’m not using a framework but have a few more complex needs, I’d definitely still consider PEAR. You can, if you need, use PEAR within a framework, doing so will just take some extra effort.

Thanks to Daniel for the question.

Q&A => From your perspective, as a PHP expert, do you think more and more computer people are learning applications (Drupal, Joomla, osCommerce), and not learning “core PHP language” stuff?

I’ve seen this question, in different forms, a couple of times now, both with respect to Drupal et al. and frameworks like Yii. Personally, I can’t imagine using software like Drupal, let alone a framework, without an understanding of the underlying technologies but I admittedly have difficulty using things from a higher vantagepoint when I’m used to being on the ground getting my hands dirty. That being said, it seems that there are plenty of people out there using Drupal, Joomla, and others without being able to write PHP code themselves. Most importantly, I’m a big proponent of accomplishing what you want to accomplish, and if some tool makes that possible without learning PHP, more power to you. The person who sent in this question (thanks, Rick!) said he spends more time learning Drupal and not that much time learning PHP, but that it’s working for him, which is all that really matters, I think.

Q&A => Where is PHP headed? Is there a future for PHP and if so do you see it becoming more widespread or being superseded by other newer technologies?

Predicting the future of technologies isn’t my strong suit, I should start by saying. PHP has been around for more than 15 years now and I’ve been using it for over 10 (which seems amazing to me as I write this). I generally tend to think that something newer and better is inevitably around the corner, just as PHP replaced CGI scripts (written in C or Perl) as the best way to dynamically handle Web user interactions. On the other hand, Perl and C weren’t really intended for the Web, whereas PHP was, so replacing them made sense. According to the TIOBE Programming Community Index, a fascinating study, if you’re not familiar with it, PHP is now the number 3 most used language (what the index actually measures isn’t that simple but…). So I guess I’d start by saying that I’d be surprised if PHP wasn’t still a prominent force in Web technologies in 5-10 years from now. The numbers indicate that PHP’s usage remains quite strong and I don’t think Web-related technologies are changing quite as fast as they once did, especially on the server side of things. I do wonder if server-side JavaScript is going to make a good showing, but that’s another topic.

As for where PHP is headed, support for Unicode in PHP 6 will be a major change. By supporting Unicode, PHP 6 will be able to work with any language in many ways. Not only will PHP be able to handle and manipulate strings in any language, but you’ll also be able to write function and variable names in your native tongue (as an English-only person, I can only imagine how nice that will be for others). I’ll also be curious to see if changes in HTML 5, which will come out some decade, will impact PHP, too.

My thanks to Jason for the question.

What is Larry Thinking? => Starting a New Business, Follow Up

In my previous newsletter, I wrote about creating new business and some advice I have towards that end. I received a couple of poignant responses to that thread, and I thought I’d share what Ross had to say in particular.

Ross first relayed an amusing anecdote about a business venture he and some partners started some time back. One business partner thought it imperative that a good impression would be made by having really flashy business cards, so they spent $800 (US) on professional cards…before they had a fully working site or any customers! When the business shuttered its doors some time later, without ever getting any customers, that $800 represented half of the expenses they put into the project. I find this particularly amusing because I don’t even have business cards. When I’m about to go to a conference or something, I print out a few totally cheap cards using my inkjet printer. If anything, people now remember when they met me because I’m the guy with the crap business cards. As an aside, this also kind of reminds me of the search engine optimization techniques (SEO) you hear about. The fact of the matter is that good content is by far the biggest factor in SEO; everything else is trivial in comparison, just like flashy business cards are nothing without a good, working product.

On the other side, Ross also mentioned a successful venture he created: an online gaming site. He developed most of the site for no money, cobbling it together. Once it was ready enough to go live, he started with “super-cheapo” hosting. For a few months he was able to use that cheap setup while testing, debugging, and improving the site. Once its usage and demands exceeded the hosting environment, he moved to a dedicated server and, by that time, he had enough paying users to offset those costs. In time usage spiked, so he added another dedicated server. Ross says “Still, it was only a few days of bad service, and it was again a sure sign I had enough paying customers to be able to afford the upgrade. All in all not too much risk, and it always seemed pretty obvious when an upgrade was needed.”

This is an example of exactly what I would advise people to do: develop a site, as completely as possible, on your own computer for little to no cost. Then put it online, using a relatively inexpensive hosting company. When the demands of the site outgrow the hosting environment, upgrade. In Ross’s experience, switching hosts wasn’t always easy, so you can minimize the potential problems by trying to stay with one host as much as possible. That isn’t always possible–for example, a cheap hosting company isn’t also likely to provide dedicated servers (or, even if they do, maybe they shouldn’t). Over time I’ve come to truly appreciate the peace of mind of good hosting, so perhaps I would recommend starting with a cheap plan with a good company (which, comparatively, would be an expensive plan for a cheap company), so that you can upgrade to that company’s bigger plans when/should that time come.

Larry Ullman’s Book News => Effortless Flex 4 Development

I’m continuing to work on my next book, still titled Effortless Flex 4 Development. I’ve finished the first six chapters (out of maybe 15 or 16) and it should still be coming out in May or June. I’m in the thick of Part 2 now, which focuses on data: displaying it using Flex, different data formats, and transmitting data between the client and the server. Fun stuff! Right now I’m trying to choose which Web services I’ll demonstrate: Amazon, Google, Yahoo!, Flickr, etc. I believe Peachpit Press is going to put an excerpt of the book on their Web site next week, and it’ll be made available through their Rough Cuts series shortly thereafter.