PHP Interview With Taylor Otwell The Creator Of Laravel PHP 5.3 Framework – Learn Good Design Patterns

About This Interview

This is the #15th set of PHP Interview to help aspiring PHP developers and PHP fans alike to get inspired by listening from those PHPeople who are already highly involved into the PHP Ocean and *being there* taming the waves and surfing better than ever to make themselves an Awesome PHP Expert both in their own eyes (for self-accomplishment) and for the PHP Community.

On the other side, this is an opportunity for new PHPers to get to know their “PHP Elders. I hope you will derive as much fun to read my interviews as I’m having by interviewing those awesome PHP people.

A Small Intro..

Taylor Otwell

In this edition I talked with Taylor Otwell {@taylorotwell}, the man behind Laravel (created in April of 2011) which is a PHP 5.3+ Framework. Taylor is a .NET developer who specializes in elegant, intuitive software. The fact that he comes from a .NET background and he produces such an excellent, solid PHP framework with good standards, is something very inspiring and amazing. His framework, Laravel is very unique in itself and has an awesome community behind; Laravel is getting a lot of momentum and is on its way to being one (or is already?) of the most awesome PHP 5.3 framework.

Ian Landsman {@ianlandsman}, founder of UserScape, has a nice article about how he spotted Taylor, his vision with Laravel, and how he decided to hire Taylor to work full-time on Laravel and be a part of UserScape.

And Now The Interview…

1) Please tell us a bit about yourself

My name is Taylor Otwell, and I’m a 26 year old developer living in the United States.

2) How you started with PHP

I began writing PHP at nights as a quick way to test out product ideas. I’m almost always thinking of new product ideas, and PHP allows me to implement and test them very quickly.

3) What would be the Top advice to a PHP beginner

SEE BELOW

4) To someone who wants to become a better PHP developer, what is your advice?

Learn good design patterns. This does not necessarily depend on PHP. You can learn and use these patterns in any language. In particular, learn all five of the S.O.L.I.D. patterns thoroughly. These five patterns will take you far as a developer, and I think about each of them almost every time I code.

5) The best PHP book you’ve read

I’ve never read a book on PHP.

6) A PHP blog or resource you highly recommend

I don’t read any PHP specific blogs; however, I do check Hacker News {@HackerNewsYC} everyday to see what is trending.

7) The IDE that you use

I currently use the “dev” builds of Sublime Text 2. I love it! I can’t imagine programming without Sublime Text.

8) How do you debug your PHP code?

I try to thoroughly unit test any new PHP code I write, especially libraries like Laravel. This saves time later since I don’t have to re-test every aspect of the application when something changes. If tests aren’t an option, I start writing “echo” statements. My testing tools include PHPUnit and Mockery.

9) One PHP person that you admire and what strikes you about him/her

In the PHP world I admire Fabien Potencier {@fabpot}. The guy is a code machine, and always has a keen eye for solid architecture, all while maintaining several huge PHP projects (Symfony and its components, Swift Mailer, Twig, Silex, etc.) and running Sensio. Even though Symfony as a framework is worlds apart from Laravel, I still admire Fabien probably more than any other PHP developer.

10) Are you part of any PHP User group? Could you tell a bit about it if yes..

Currently there are no PHP groups in my immediate area. However, as I’m preparing to move to the capital of my state, perhaps I could start a new group!

11)  You are a .NET developer during the day, why did you choose PHP to build your framework amongst other languages.

I chose PHP because it is basically totally ubiquitous amongst shared web hosts, and its documentation is excellent. Even though PHP as a language is inferior to many other languages, its easy of use and thorough documentation make it very nice to quickly develop applications.

12) How do you find PHP as compared to C#.NET

I’ve found that using a dynamic language is a gift and a curse. I enjoy being able to do interesting things using the dynamic features of the language, like handle missing methods with “__call“. However, a static environment like C# or VB.NET allows you find many more “compile time” bugs, and Microsoft’s Visual Studio IDE is by far the best IDE I have ever used.

13) What is the one thing that you wish PHP had as compared to .NET

LINQ. A true language integrated query for arrays in PHP would be amazing.

14) What is the one thing that you wish .NET had as compared to PHP

Porting most of what I consider PHP’s “killer” features to a language like C# would be impossible because it compromise the language as strongly typed.

15) If you have to choose between PHP and .NET

I think both environments are great. It’s honestly a difficult decision. It’s definitely possible to write great applications in either environment. However, personally, I find the dynamic environment of languages like PHP and Ruby more enjoyable. Yet, in a very large code base the compile time checking of an environment like .NET could be very beneficial.

16) What is Laravel about and what does it try to solve

Laravel is a simple framework for web application development. It attempts to make writing web applications in PHP as simple as possible.

17) How is Laravel different from other framework

Laravel has a very simple and expressive syntax. It also has some of the most thorough documentation available for any PHP framework, rivaling that of CodeIgniter’s.

18) How is Laravel better than other framework

Laravel provides you with great tools to start writing your application as fast as possible. This includes the beautiful Eloquent ORM, dead simple authentication, great pagination, and more.

19) Why should someone choose Laravel instead of, let’s say, symfony or zend framework

It is very easy to get started using Laravel. Many other larger frameworks are harder to learn and often don’t have as much documentation as Laravel, making them take even longer to learn.

20) What do you plan for Laravel in the next years to come, any roadmap?

Laravel 3 is in a great spot. Most major features that I think belong in the framework have already been implemented. I think the future for Laravel is one of smaller, incremental improvements and perhaps better tooling. I would like to see even better unit test integration as well.

21) A good Laravel resource for anyone wanting to get the hang of Lavarel

Outside of the official documentation, I recommend Dayle Rees’ book “Code Happy“. It’s a wonderful introduction to Laravel. {@daylerees}

22) You used to work on Laravel on a really “passion-driven” way in your free time at night. Now you have been employed full time on it by Ian Landsman of UserScape.
a) Have that switch made any impact on your productivity and passion
b) How is your way of working different from when you used to work alone, driven by your passion
c) As far as the objectives of Laravel are concerned, I guess the decision is no more solely on yourself, how are the objectives now centered and how are they being driven?

UserScape has been gracious to grant me plenty of time to work on Laravel, especially during the transition from Laravel 2 to Laravel 3. Actually, many of the features of Laravel 3 were inspired by our needs at UserScape. For example, Laravel’s “bundle” system and website are directly inspired by our needs at UserScape. I don’t work late nights on Laravel nearly as often as I used to. Since UserScape allowed me to spend a lot of time developing Laravel 3, most of the major features I wanted to see in Laravel have been implemented. So, there just aren’t as many “big things” to tackle.

23) what does it take to build a framework?

While building Laravel I had to learn about a wide variety of web development problems, including everything from security, database abstraction, asset management, testability, etc. Learning such a wide array of topics can be very daunting, and I often spent a lot of time reading on these various topics before writing a single line of code.

24) Building a framework entails a lot of decision at different level, could you share with us what are some of those decisions and the factors affecting those decisions

I have great respect for Apple. I also have a lot of respect for Steve Jobs, at least in terms of his aesthetic and product tastes. During an All Things Digital conference, Steve talked about how products are “packages of emphasis”. Some things are emphasized in a product, while others are not. So, I look at Laravel like a product. The iPhone is beautiful in its simplicity. In the same way, I think Laravel’s beauty lies in its simplicity and elegance. Honestly, I much prefer taking code out of a project than putting it in. More code just means more maintenance and more points of failure. If I can achieve the same goal in half the code, it’s just that much easier to maintain and I can sleep better at night. On every decision regarding Laravel, I’m always thinking simplicity. Always.

25) The challenges you encountered during the creation of your framework

Writing the database abstraction layer, including the Eloquent ORM, was the most challenging aspect of the framework, but also one of the most fun.

26) The good moments of your journey so far and any bad moments of it?

I’ll never forget the first day I launched Laravel 1.0. It was a great feeling to see my first real open source project take off. I’ll also always remember the first few active forum members, several of whom are still involved with Laravel today! The hardest moments for me are saying “no” to feature requests. I love to please people; however, in order to maintain the simplicity of the framework, I’ve had to turn down quite a few pull requests.

27) If you could change one thing with PHP, that would be…?

I would love to see true UTF-8 support baked into the language.

28) The day you realised “You’ve made it to the A-List PHP arena” ?

Honestly I don’t really think about that very much. PHP is a big world. There are lots of great PHP developers who have probably never heard of Taylor Otwell or Laravel. But, I’m honored that a group of people seem to be impressed by Laravel. I am very thankful for the wonderful community surrounding Laravel.

29) Why you are successful and why others are not?

Many talented developers are what I call “hackers”. Not in the sense of “Hacker News”. But rather someone who just “hacks” code together until it works. It doesn’t have an elegant design. It’s not enjoyable to use. Think of your libraries as products, and your APIs as the UI.

30) A final word before closing up..

Thank you so much for this interview and for checking out Laravel. I hope it helps you build wonderful, creative applications.

Now Do Your Part!

1) Help diffuse this interview to the PHP ecosystem – Share, tweet and spread the word to your audience ==> That would be a FREE way to thank me 😉

2) Make a comment below using the comment form – I’m sure you can at least say 1 word about this interview

{I’m thankful to your response(s)!}


19 Comment(s)

  1. Hi all,

    I just wanted to add that there are many Laravel articles, including some from the book available for reading on my site at http://daylerees.com .

    If Taylor hasn’t already convinced you to try the framework, why not take a look at some of the code samples from the documentation. I believe that the clear and expressive code will promote itself.

    Great job T!

    Enjoy Laravel!

  2. Great talk. And you are right, @fabpot is a code machine cloned all over the world 🙂 .
    And onething I want to point Taylor is on the psr-group. You need to join the group :-). I love to see you there if you are not.

    Thank you

  3. Really a nice informative interview.Very good questions and equally very good reply.Yhanks

  4. Although I started my educational programming with VB, I did my first web site developments with PHP and for professional reasons, I became a microsoft guy when I fully got involved in .net/c# programming. I seem to approve what @taylor says while comparing these 2 platforms.

    Good luck to all in their daily programming life 🙂

  5. Wow, you really admire Fabien Potencier? I feel the exact opposite.

    Please check this (deleted) blog to really know who he is:
    http://web.archive.org/web/20110719073037/http://redotheweb.com/

    Maybe this could explain the fact that, as you say, “Symfony as a framework is worlds apart from Laravel” ; this is especially true with Symfony 2 IMO.

    However, to be fair, some pieces of work from Fabien, like Twig or SwiftMailer, deserves some respect.

    Anyway, thanks for the real fresh air given by Laravel. That’s exactly what I was expecting from a framework, after 10 years of PHP development (I’m 31).

    Continue to follow the KISS principle in such a good way !

  6. Working with Laravel 4 for two weeks now.. (loving it!) as Tylor mentioned “learn all five of the S.O.L.I.D design pattern” any suggestions where to start on this? I’ve been doing some programming for two ears now mostly in PHP. Any ideas what kind of book or website that explains the basics of it not necessary php but prefered to have an actual code examples.

  7. @Frosty:
    thanks for your comment 🙂

    @PixelTracer (I wonder if this is a spam 😀 ):
    Google is your friend, if you google for the words: “S.O.L.I.D design pattern”, you’ll be amazed by the resources you will find on page 1 😉

    Cheers!

  8. I would really like to see more dev and production tooling. It can be as simple as a great var_dump equivalent with debug_backtrace and code snippets, or as advanced as a dedicated debugging panel with SQL/datasource dumps, configured and open server connections, session contents, template names and variables, etc. Good logging and monitoring support and/or integration is also very important for large systems.

  9. Hi,

    I am first thankful to Taylor Otwell and Laravel PHP 5.3+ framework.

    I have explored recently many latest PHP MVC frameworks, but had never enjoyed the documentation and coding like Laravel ever before.

    Laravel has truly supported the new wave features of PHP like namespaces, closures or anonymous functions though I thought that the routes in Laravel could violet the principles of a typical MVC applications and some design patterns principle.

    But this will not going to hurt because the flexibilities the framework is providing is more important and should benefit a programmer on a programming comfort.

    I had never imagined that, a simple feature like closures and some SOLID principles could result in such a wonderful framework to work with.

    I can see the vision of simplicity, the usage friendliness, the tackling of common problem areas as of a web developer, put in by Taylor in this framework.

    I appreciate thinking of Taylor in a web developer friendly perspective and keeping aside technicalities or abstracting framework core concepts truly out of framework usage.

    I even enjoy the human readable naming conventions that is followed in framework API names.

    I think Laravel is truly like a product than a framework as mentioned by Taylor in his book.

    Laravel is a true web developer RAD tool.

    Thank you,
    Sandesh Magdum

  10. Taylor has made the life of a programmer much comfortable. I have been developing large complex web applications having most complex business logic using Zend framework. But at some point I started to think that the code has become messy. Now I just saw Laravel with its magic of simplicity. I totally agree Taylor that the most magic thing of laravel is it simplicity. Boss you did a great job indeed.

  11. Fun to read a interview with Taylor that is a couple of years old!
    Just starting to learn Laravel and I will use it in a large project and I got high expectations!

    Keep up the good work Taylor!

  12. Thank you for a fantastic framework. I´m a sysadmin who is starting to get a hang of development of web applications. The learning curve for Laravel has been really simple and easy to grasp. Thank you again for an elegant product.



Leave a Reply to Khayrattee Wasseem Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.