Ask HN: What's the most easy-to-learn framework?
I primarily program in PHP. Over the last three years, I have tried to learn various frameworks(rails, cakephp, symfony) only to give up after a couple days.
I feel like I am too used to my current development process yet I know that my current process is probably not the most efficient, time-wise and quality-wise. I have my own little framework I've naturally developed. But it is still a hassle to setup a new project with it. At the same time, I find difficult to adjust to the database magic that frameworks do.
So I am set on learning a framework. Is there a framework more easy to pickup than others? Or is that like asking what's the best programming language?
I know php/python pretty well. Thanks for your help.
32 comments
[ 2.6 ms ] story [ 81.0 ms ] threadits the lightest-weight (edit: popular) framework and least restrictive. very bare-bones by default. plus, the docs are great.
if you feel like subsequently moving to another php framework from there, the principles are very similar and the transition would be easy.
http://codeigniter.com/user_guide/overview/at_a_glance.html
which means they've missed all the performance and security improvements in PHP 5 (like applying filters to user input), not to mention that PHP 4 is end of life now.
So, it does run on PHP5, just doesn't use PHP5 only features for the sake of backwards compatibility. For PHP5 one can use KohanaPHP, as mentioned by another comment :)
edit: what arien said. plus, again, if it doesn't fit your needs, you can jump from CI to something else pretty readily.
Best of luck
i'm coming at it from a perspective of getting this dude up and running quickly on something good, which i think is easier with CI.
If you know Python, Django is rather well reviewed and you can leverage your current knowledge.
I've started with Ruby on Rails in spite of almost no Ruby expernience. I've found that the learning curve for the language was low (I've used PHP/Python/Java before) and the framework was rather straightforward.
Be warned it has a slightly steep curve for deployment if you're not used to deploying Python/WSGI applications. Be sure to read the mod_wsgi and Django deployment documentation first!
If you choose a framework in a language you're not familiar with, spend time learning the language first, then learn the framework. Yes, it'll take some time, but that's what it takes to really learn something.
They took codeigniter and pared it down to the bare essentials then rebuilt it from scratch.
It's easy to use, has a wealth of libraries (though not too many to confuse the issue) to build stuff with and is extremely fast.
As an example of how well it is written I recently built an entire hotel/restaurant booking system (inc. room monitoring & payment gateway) in around 350 lines (not including any HTML).
So my advice is, with ease of learning for YOU being your primary criterion, read about the different frameworks out there now and see which one works closest to what you've been using. Hopefully you've designed your framework on sound patterns and known best practices and finding a similar one wouldn't be too difficult.
If you picked ideas from other frameworks to implement in your own framework, maybe you can start with the framework you copied from the most.
Have since switched to Ramaze (http://www.ramaze.net) - a light, modular Ruby framework. Bearing in mind I knew zero Ruby at the time, I have never looked back. Definitely worth a look. (irc.ramaze.net/ramaze offers good support, too).
And +1 for Ramaze. :)
With that in mind, it seems to me that Django, RoR, etc. are all pretty much the same difficulty to learn. It essentially boils down to some Active Record component, a MVC model, and some funny sugar here and there.
As for the sweat, you might want to invest in some deodorant, or perhaps turn up the air conditioning.
http://phocoa.com
It is modeled after Cocoa development (Mac/iPhone apps).
If you already know Cocoa, that makes it very easy to learn since the architecture and concepts are all the same.
OTOH, if you don't know Cocoa, then there's a learning curve. In that respect, I suggest you follow others' advice and don't give up after a few days. Better yet, find a mentor for that framework, it will speed up the learning curve by a huge factor.