Hello HN,<p>I've been programming web applications since I was 13 years old. I love doing it, but lately, something's been bothering me. Up to this point, the entirety of my server-side programming has been done in PHP. I learned web development with basic PHP and MySQL, and now work as an entrepreneur in my own company, using that combination.<p>However, lately, I've been bored with PHP. Each time I make a website, I feel like I'm reinventing the wheel when I write new code for things like user authentification or account systems. I keep looking at Ruby on Rails tutorials, and salivating at the beautiful syntax and elegant, DRY expressions. I love the <i>idea</i> of using Rails, as a modern MVC framework that lets me get things done quicker and doesn't require me to re-invent the wheel.<p>The problem is, every time I start using frameworks like Rails, and create my first "Hello World" application, I am dissatisfied. It works- I can list, create, edit, and delete objects that I've specified in the code. However, it just doesn't feel right, because <i>I don't understand how the framework is doing it's thing</i>. What is being compiled into what when I run the app on the server? When Rails "magic" happens, what is really going on? If there's an error, how on earth will I know how to fix it?<p>-I feel like since I didn't code the framework from scratch, I can't use it because I don't truly understand how it works.-<p>Is this a justified sentiment, or am I just too used to working with PHP? Does anybody else feel this way?<p>Thanks for any answers you can give me, I really appreciate it.