Hacker Newsnew | past | comments | ask | show | jobs | submit | brianboyer's commentslogin

I'm sort of shocked at the negative reaction this project has elicited. When I first saw this work, I was thrilled.

When I popped the hood on my first big WordPress project a couple years ago, I was appalled with what I found. Modern web frameworks have converged on a MTV- or MVC-style development style. Writing code in WordPress is like travelling a decade back in time.

This project is a very thoughtful effort to keep all the best of WordPress, while replacing the backwards template system.

I suspect that the ire this has drawn is the result of developers in the WordPress community not crossing over to other languages/frameworks. Anyone who's made a website in Rails or Django would feel right at home in WordPress MTV.


I'm sort of shocked that you're shocked. The rigid and inflexible architecture of systems like Rails and Django are the primary reasons for WP's success. There's a reason WP has more themes and plugins than these other systems, and that reason is ease-of-programming.

Every time I see some programmers advocating the use of highly rigid architectures or programming models, I'm forced to remind myself of Lisp. Lisp is the programming language. Lisp created most of the fundamental constructs you see in modern programming languages today. It's quite possible to do damn near anything in it, and it's arguably as close to the perfect mathematical construct of a computer language that can be made. It's a bit rigid and weird in it's syntax, but the list model is just great once you wrap your head around it.

On the other hand, the language that is clearly the most successful one ever is C, and it has often been argued to be the worst language ever. It has arcane syntax, it requires detailed knowledge of memory pointers and other oddities, and it's very much a lower level language. And yet it is clearly the most successful language ever. Why? Not because of its model or architecture (which are frankly terrible), but because of its flexibility. Programmers both inexperienced and experienced can use it to produce powerful systems. It covers the whole gamut of skill levels.

That's the problem with rigid architectures. Programmers tend to flock to them as they become better at their craft, because they provide organization and a system of management of the large scale code they're creating. But inexperienced programmers find the learning curve just a bit too steep.

You can't go from "Hello World" to creating a new WP theme in an MVC style. But you can go from basic HTML and PHP knowledge to creating a theme modification or a plugin. It may not be the technically best solution, but by god it'll get the job done for now. Speed of delivery matters, and if the choice is between doing-it-right and doing-it-right-now when you have a deadline and need to get paid, guess which path is going to get chosen?

Code has a limited life expectancy. It doesn't survive long in the wild, and this time is more and more frequently measured in years, not decades. So it doesn't make a lot of sense, in the long run, to spend extra time to build around a large framework when, damnit, we've got work to do. Every moment you spend learning yet-another-framework is a moment you didn't spend creating the next product and earning the next dollar.

Systems that are fast to learn and flexible enough to get the job done quickly always win over systems that are rigid and hard-to-learn.


WP is more successful than Rails and Django because WP is a blogging system and more people need a blog than they do a development framework. Secondly, it's successful because it's in PHP. But successful because it's "not like Rails", are you kidding me?

Also, check the damn tutorial. A line for url routing, a couple of lines to fetch some data from the DB and then a couple of lines to render a template. There's nothing scary about it. The reason people find it so easy to make and mod WordPress themes is because they can start from existing code. If they'd have to make one from scratch without the ability to copy-paste or look at existing themes, 90% of 'em wouldn't even know where to get started, no matter how good everything would be documented. There's no reason why this same learn-by-copy-pasting routine couldn't work on top of an MVC approach. Beginning programmers do learn Rails and Django, y'know. Hundreds every day.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: