An Interview with David Walsh
For those of us who may be unfamiliar with you or your blog, tell us a bit about yourself, and what you do for a living.
How and why did you first get involved with web development?
Are you currently working for any development companies or are you freelancing full time now?
I have a normal 8-5 day job but I enjoy my few hours after work the most. It generally gives me time to take the problems encountered during the day and turn them into blog posts. My opportunities to experiment at work are limited so the freedom to tinker I enjoy after work is refreshing.
On many of your websites, you mention Wynq Web Labs. Can you tells us more about Wynq and the role you have in it?
Many of our readers are just getting into web development, do you have any specific advice for those hoping to succeed in this field? What can one do to ensure their skill level is sufficient for the current job market?
The best advice I can give is this: put down the book, open your text editor, and code. Code, code, code. Experiment, experiment, experiment. Tinker, tinker, tinker. There's no better learning experience than sitting down, failing, fixing, failing, fixing, etc. Never stop failing and never stop fixing. I also recommend reading quality web development websites like my blog, Nettuts+, Dev-Tips, and CSS-Tricks; there's a lot to be learned from the people that have a wealth of experience.
From a glance at your website posts, it would be obvious to anyone you are a MooTools fan. Can you tell us more about your involvement with MooTools?
Besides the MooTools documentation, is there any specific resources or areas where developers can find further information and/or answers to their questions about the library?
Absolutely! There are many places that web designers and developers can get help with MooTools. The best place is the MooTools IRC room on Freenode: #mootools. Another great place to get help is the MooTools Google Group. Most MooTools Core Developers and contributors have blogs that address basic to advanced MooTools issues. It's difficult not to find help!
Is there one specific feature or function you wish to see included in MooTools in the future?
Many! There's always room for each framework to improve. I'd like to see MooTools incorporate a dependency manager so that developers may lazyload scripts based upon needs. For example:
The above code would add
Drag.Move support (and its dependencies) if not already included in the page. I know Dojo and YUI have implementations of this. I'd love for MooTools to implement this. Being a member of the team, I can't simply wait for it to happen though. :) I look forward to working with some of my colleagues to map out how we can create such a system.
Note: MooTools has released Depender, a server-side build tool that uses PHP or Python: http://github.com/mootools/mootools-depender/
You know we had to ask, MooTools or jQuery? Why? What do you feel are some of the advantages or disadvantages each framework has over the other?
I consider myself skilled at both frameworks and prefer MooTools. In fact, learning jQuery made me love MooTools more. To each his own. MooTools just “fits” for me. I'm enamored MooTools' OOP nature and that philosophy allows me to code faster. I also find MooTools' code more readable due to its use of getters, setters, and action words used for method names. MooTools also allows me to create my own build, specialized to whichever project I'm working on, to minimize file size.
"In fact, learning jQuery made me love MooTools more."
If you do not approve of Native object prototype modification (MooTools and Prototype do), jQuery's the better choice. jQuery's syntax is generally shorter than MooTools'. jQuery is also known for having an easier learning curve than other frameworks. I also commend jQuery for its organization, promotion, and coordination efforts – Rey Bango and his squad do a great job.
For those who may not be aware, can you explain some of the core differences between MooTools and jQuery?
jQuery empowers elements within the jQuery object which is why you frequently see “$(this)” – “this” isn't pimped out without the $(). All plugins are added to the $ function. Essentially jQuery is one powerful function ($) with many other functions baked into it ($.each, for example). jQuery syntax is generally shorter than MooTools syntax and the same methods are used to get and set styles, attributes, etc.
Too many to count! I'm most proud of my MooTools plugins: including ScrollSpy, ContextMenu, Dotter, jQuery Events, LazyLoad, and ScrollSide. You can check out all of my MooTools plugins on my website or on the MooTools Forge. I also have quite a few jQuery plugins available on my website. Demos for my plugins are available at http://davidwalsh.name/demos.
What other programming or scripting languages are you playing around with these days?
You were involved, along with Chris Coyier, in the development and production of the popular "Band Website Template". What were some of the hurdles or difficulties involved in this project? What are some of the features you're most proud of?
Band Website Template came together incredibly smoothly thanks to Chris' great design and CSS skills. Creating a solid installer was probably the most difficult part of the template for me. BWT does require some webdev knowledge but we wanted to make setup simple for the most non-web-savvy consumers. Once the installer was created the rest was easy. I'm proud of the Gig manager, as simple as it is. I'm also proud of how well it's been received and lack of support emails we get – we've definitely gotten something right!
Script & Style, a popular link board for web developers and designers, was also created by you and Chris Coyier. Do you two collaborate often? Chris mentioned it involved some custom and tricky development work from you, what was working on S&S like?
Chris and I do collaborate quite a bit. Sometimes it's on big projects like Script & Style and Band Website Template and other times it's writing parallel blog posts. Often I'll write the MooTools tutorial that mirrors his jQuery tutorial.
Script & Style was definitely a challenge. I was required to hack some of the default functionality of WordPress' RSS feeds. We also recently added screenshots of the article's web page – that required some image caching and screenshot API coding. Despite the challenges, the site has been greatly rewarding and I look forward to developing it further.
What is the most important question you ask when first meeting with a client to discuss a new site project?
Budget. Budget tells you almost everything you need to know about a client. If they will respect the work that you do. If they are going to be high maintenance. If their goals with the website will be in line with your goals for the project. Remember that they aren't just choosing you...you're choosing them as well.
Do you find it helpful to work with other talented developers on a project, or do you prefer to do your work alone?
An excellent question. It generally depends on the project. Sometimes it's good to keep only one chef in the kitchen by I usually try to work with a talented band of developers. The more unique, skilled minds you can throw at the problem the better your chances of surpassing expectations.
What are some of your favorite web sites to keep up with web development trends and best practices?
A great developer is someone that is a good problem solver and explores every avenue to achieve a goal. A great developer learns from his past mistakes and does everything possible to avoid repeating them. Lastly, a great web developer is a person that keeps up on all the technologies and spends extra time to understand and experiment with them.
What kind of projects are you working on these days? Any sneak peeks or things you can share with us?
Since you do so much writing, any plans of a book written by David Walsh in the future?
I've been asked to write MooTools books in the past but everything I've heard is that it's a ton of work with very little return. I'd love to see my name in print but I feel my time is best served blogging daily and helping people on IRC. Hopefully one day I can publish The David Walsh Blog book which would feature all of my blog posts over the years.
Do you have any websites or projects you would like to shamelessly plug to over 50,000 subscribers?
Write a Plus Tutorial
Please note that actual compensation will be dependent upon the quality of the final tutorial and screencast.