What is Larry Thinking? #56 => Istanbul

June 11, 2012
The Yii Book If you like my writing on the Yii framework, you'll love "The Yii Book"!

In this edition…

About This Newsletter

So, between traveling to Europe last week, being behind schedule on my “PHP Advanced and Object-Oriented Programming” book, my kids just getting out of school, and traveling to Silicon Valley at the end of the month, I’m a bit pressed for time. Consequently, I’m aware that I’m forcing this newsletter out a bit more quickly than I normally would (i.e., it may not be as crafted or proofread as much as I would like). Apologies in advance for any quality issues that may arise.

As always, questions, comments, and all feedback are much appreciated. And thanks for your interest in what I have to say and do!

What are You Thinking? => Sponsorships and Ads

I’ve never had any advertising on my Web site or in these newsletters. This is a matter of practicality as much as it is principle: I don’t imagine that the income I’d get from either would be significant enough to offset the potential annoyance to end users and readers. However, as I’ve been legitimizing my site and my newsletter (i.e., as I’m spending the time and the money to make things a bit more professional), I’m revisiting this issue as a way to not so much make money as offset my costs.

I’ve been approached again recently about sponsoring the newsletter and while I haven’t made up my mind, I thought I’d put it out there to see how much it would bother you to see a small ad in these newsletters. If it would bother you at all, that is. Any thoughts and input you have on the subject would be most appreciated. Thanks!

On the Web => Chive, a phpMyAdmin Alternative

A while back I came across Chive, an interesting alternative to phpMyAdmin, built using the Yii framework. phpMyAdmin is pretty much the standard Web-based interface to MySQL, but that doesn’t mean it’s the best option. I can’t imagine Web hosts switching over from phpMyAdmin, but if you’d like a fancier interface for your own uses, Chive is worth considering. Also worth considering if you’d just like to see how to do some cool things using the Yii framework.

On the Web => What HTML5 Features are Safe to Use?

One of the great qualities of HTML5 is that even though it has not been standardized yet, you don’t have to wait to use it. Well, if you’re prudent about what HTML5 features you use, that is. For example, in my “Modern JavaScript: Develop and Design” book, I use several of the new HTML5 form elements as they get treated as plain text elements on browsers that don’t support HTML5. Similarly, several new form attributes will be ignored by browsers that don’t recognize them. By adopting select HTML5 features, you can provide a better experience to those using better, current browsers, and rest assured that those using older browsers, or Internet Explorer, will still be able to use your site. The question, then, is what HTML5 features are safe to use and what ones are not?

One good resource for answering that question is HTML5 Please, created by the same brilliant minds that created the HTML5 Boilerplate and the Modernizr library. HTML5 Please covers HTML5, CSS3, and related technologies and while the information is good, the interface is even better. Through a single page and some sweet JavaScript, you can find out all you need to know. There’s a search box at the top and a series of demo filters you can use to quickly find the feature you’re thinking about using. These filters include specific versions of IE, support on mobile device, including older ones, and more. For example, you can quickly find out that the new date input type can be used with caution along with a polyfill. As defined by Remy Sharp, a polyfill is:

a piece of code (or plugin) that provides the technology that you, the developer, expect the browser to provide natively.

So, for example, you can safely use the new HTML5 elements, such as footer, nav, and article, if you also use the html5shiv polyfill.

An alternative resource is When can I use… The interface isn’t as clean as HTML5 Please, but the site provides a lot of information and uses table to present most of its data. When can I use… covers CSS, HTML5, JavaScript APIs, SVG, and much more.

Let me know if there’s a good HTML5 resource that you’ve come to rely upon!

On the Blog => Larry’s Odyssey, or Offending the Travel Gods

I had quite the adventure getting to and back from Istanbul last week, which I detailed on my blog. Clearly the travel gods had it out for me! If you have the time and enjoy reading about other people’s misfortunes, check out those two posts.

On the Blog => Building a Successful E-commerce Venture, or Failing Gracefully

I posted my slides from my “Building a Successful E-commerce Venture, or Failing Gracefully” on my blog for everyone to see. I haven’t yet posted how the presentation itself went (I hope to do that this next week), but the short answer is that I believe it went fairly well.

Q&A => Should I Expand My Programming Horizons?

Ross, with whom I often have good e-mail conversations, recently asked me about whether PHP is “niche software” and about generally broadening his knowledge into other languages and areas. Ross admitted that he had been influenced by recent conversations online about how terrible PHP is. I’m not sure what the impetus is for the latest round of PHP bashing, but I’ve seen it myself.

As for learning languages in general, the very short answer is that knowing more languages is always better, just as I would say that knowing more about anything is always better. At the very least, if you know two languages, then you can better evaluate the merits of either. You’ll also be better able to choose the right language for any given job. And, really, it’s learning the application of languages that’s tough (i.e., the theories). Once you understand, say, principles of Web development or app development, different languages are largely a matter of syntax and knowing what features exist. As another example, I don’t formally know Java, but I know about compiled languages and I know OOP, so picking up Java wouldn’t be that hard, if I had the need.

All that being said, I see nothing wrong with only knowing PHP or any single language. It really depends upon your job and your needs and your time. And while knowing multiple languages can improve your overall skills, focusing on just one or two will probably make you a better programmer in those languages, and earn you more money. I really believe that if I just focused on one or two things, I could earn a lot more, but I like learning new things, so that’s not me.

As for specifics, I don’t personally know Python but have heard great things about it. But it’s best not to get caught up in the latest “hot” language. Years ago Ruby was hot (and one I like a lot), and few people talk about it now. Currently Python is hot, and no one will be talking about it in a few years (perhaps). The fact that PHP has been around for almost 20 years and will continue to be used for years is noteworthy and a credit. From what I can tell,a lot of the criticism of PHP is that it’s easy for non-programmers to use (which is a weakness from the perspective of seasoned programmers, of course) and doesn’t compare as well to other languages in some specific ways. But no language is perfect, and for what PHP should be used for—creating dynamic Web sites, I think PHP is still hard to beat.

As another example, look at JavaScript: it’s one of the most important languages used today. And yet, Douglas Crockford, one of the key players in the JavaScript community, readily admits to JavaScript’s many flaws. The same goes for C++: a ton, if not most, of the software written for today’s operating systems is written in C++, and yet many people consider C++ to be somewhat of a failure.

As my friend Jay Blanchard recently tweeted,

It is better to educate developers across the board on proper and time-tested techniques than it is to bash the language they use.

Broadening one’s horizons is always a good thing, but the goal should always be to use the right tool for the job, and to use it well.

For some insights into what people think about specific languages, Ross shared this link with me.

Book Giveaway => Take Your Pick!

You must be subscribed to the newsletter in order to participate in a book giveaway.

Larry Ullman’s Book News => “PHP Advanced and Object-Oriented Programming”

All of my work time these days is going towards the third edition of my “PHP Advanced and Object-Oriented Programming” book. (All the time, that is, except for when I’m answering forum questions, emails, and using Twitter.) The book is about halfway done, but, as is always the case with me, behind schedule. I’m really hoping I’ll have the entire first submitted draft done this month.

There are 14 chapters total. Four chapters from the previous edition are being cut and four entirely new chapters are being written, while the other chapters are being updated. The focus in this new edition is twofold:

  • Update the content to reflect recent changes in PHP, and today’s standard practices
  • Expand the coverage of Object-Oriented Programming

Towards the first goal, I’m discussing PHP Data Objects, Apache’s mod_rewrite, unit testing and performance, and the Zend Framework. I’m cutting sections on PEAR, PHP-GTK, among others. Towards the second goal, I’m adding a chapter on design patterns, creating a new example chapter that uses OOP, and greatly expanding the “Real-World OOP” chapter.

Hopefully people will be pleased with the new edition!