I love working in Laravel, Symfony makes web apps awesome, Django does amazing things, Rails made frameworks cool. But, we have to keep things straight when working with frameworks. These aren't magical things that change the world. There are some real rules that we still have to play by.

We are Just Dealing with HTTP

When we hit our app with a brower, CURL call, or AJAX request, we are playing with the ancient art of HTTP. Things haven't changed much since HTTP 1.1 back in 1997. If you've read or heard about REST, you know what I'm talking about. Everything kicks off with a URL and a HTTP verb (OPTIONS, GET, POST, PUT, PATCH, DELETE, TRACE, or CONNECT). Browsers only know GET and POST.

Framework's can't change this! Sure there are some tricks that are used to emulate other methods with a hidden form field to fake PUT and DELETE requests. But, your framework's router can't differentiate two different POSTs to /login to different routes. Your framework doesn't create some new protocol and there's a lot to HTTP. If you want to learn more about HTTP watch this video from Ross Tuck.

Your Framework Doesn't Change the Language it's Programmed In

We flock to frameworks because they give raw code structure. They give nice syntax to what otherwise be organized chaos. They speed up our development considerably. But, at the end of the day, we are writing PHP, Python, Ruby, Javascript, etc.

Your framework doesn't change the language you're writing in. Let me rephrase that, your framework shouldn't change the language your writing in. Your framework should let you use regular code that works in any app. Take this fruition and your business logic shouldn't care about your framework. In Laravel, this means raw well designed PHP. Rails: make awesome Ruby code. If you want to know more about this, watch this talk from Uncle Bob.

You're Part of the Broader Web Development Community

I've talked before about being a broader web developer. But, this is something really important for people who work with frameworks. We are quick to judge the CMS camps that don't know the language it's built on top of. We have to make sure this doesn't happen to us when working with frameworks. We can't box ourselves away from the community that we spawn from.

Conferences and Meetups on frameworks are great, blogs and books on frameworks are great. But, whenever possible our mentality should be framework agnostic just like our code. Say 30% of your code doesn't have to deal with HTTP, Database ORMs, Session, etc (the stuff that your framework takes care of). Then some of your time should match this. Spend time in the greater PHP or Python or Ruby community.

Beyond this, even reach out into other frameworks. Take some time to check out the new hotness. Try Node.js and Express, play with Rails. Heck, test out something really uncomfortable like Lisp or Haskell!

If you sit still, you will get lazy. You'll be next year's CodeIgniter. You're not a Rails developer, you're not a Laravel developer. You are a Professional Web Developer now act like it!