Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: What's the most easy-to-learn framework?
9 points by zaidf on May 11, 2009 | hide | past | favorite | 32 comments
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.



"I know php/python pretty well."

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.


As a very experienced PHP and fairly experienced Python developer, I can back up the notes about Django. It's by far the easiest Python framework, and the full stack it comes with is very nice if you have a database etc.

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!


Don't give up after a few days. It'll make a world of difference.

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.


KohanaPHP hands down.

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).


if you know php already, codeigniter, imo.

its 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.


I really like this as well as Kohana. I have been using Kohana lately for php5 benefits


i also like kohana, but i think CI wins with respect to docs and materials available to get someone started.

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.


Codeigniter, whilst good, only runs on PHP 4:

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.


Taken from that same page: "Note: CodeIgniter will run on PHP 5. It simply does not take advantage of any native features that are only available in that version."

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 :)


it runs on 5. and 4.

edit: what arien said. plus, again, if it doesn't fit your needs, you can jump from CI to something else pretty readily.


++ for codeigniter for the ease of learning. Althouth i'm going back to cakephp at the moment for all the "automagic".

Best of luck


What I have found helpful, coming from someone that now uses RoR but failed to learn it the first time around, is that you need a project in place that you are going to build using the new framework. Then you need to tell all your friends and family that you're going to launch a new web app in X amount of days, and that they should be excited about that. After establishing a foundation of peer-pressure, you will be a lot more motivated to achieve your goal with the new framework.

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.


Frameworks can be difficult to learn if they are designed differently from the one you've worked with before. I've been in your position where I was in a team using our own homegrown framework and was switching to a more widely accepted one. What we ended up using would not be considered an easy to use framework today, but the switch was seamless for us. This was because the framework we switched to worked almost the same way as our homegrown one (at a high level, not at the implementation level). The patterns were the same, the actors were the same, the interfaces between objects were very similar.

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.


There is no silver bullet. Blood, sweat and tears is what you need. I played with Django one night and then tried to repeat what I did the next day, but unguided. I failed, and gave up. I started playing with Rails and the same happened, but this time I snagged more training material and hit the books again. This time, it stuck. Personally, I have to hit the subject from several angles before it makes sense. Perhaps you work the same way?


Blood and tears are usually not required... I don't know of any frameworks that physically assault you, and generally I'm quite happy when I'm learning new things.

As for the sweat, you might want to invest in some deodorant, or perhaps turn up the air conditioning.


:) Metaphorically speaking, of course. That first breakthrough is the best feeling in the world, for sure. I enjoy learning new things, but frustration is part of that process. If anything, frustration is a driving force for me. If everything was easy it wouldn't be worth doing.


Your problem was that you gave after a couple of days.


Agreed. I use CakePHP (used the dart-against-a-wall method of picking it from the major frameworks). Now very familiar with it, enough so to understand its limitations, and especially its strengths. Probably going to switch to Zend soon, as I'm not the biggest CakePHP fan. But if you're only using it for a few days, you're not doing yourself any favors. Try writing a complete app in it (maybe an app you wrote a couple years ago, that you've always wanted to rewrite...)


I'm surprised that nobody suggested Web.py (http://webpy.org/) by Aaron Swartz. Since you're comfortable with Python, that's the best starting point, I guess. If you're ready to give Ruby on more shot, try Sinatra or Ramaze. Both excellent light-weight frameworks.


The one you manage to learn first because you really-really like it. Then, all others that come along are somehow worse. You will then feel compelled to engage in religious debates over this.


Use my php framework, of course ;)

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.


I was quite a keen CakePHP user until it dawned on me how slow and clunky it seemed to be.

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).


That's irc.freenode.net #ramaze. Not sure irc.ramaze.net points there.

And +1 for Ramaze. :)


If the main criteria is only "easy", go with Drupal. Ok it's not a framework in the sense that Rails and CakePHP are frameworks, but the modular architecture allows you to snap together some pretty amazing functionality. Bonus for you in that it's written in PHP.


I know php pretty well, I wrote an entire happy hour site with it. Which framework is better/easier to learn cakephp, KohanaPHP or RoR. I hear so many good things about RoR, but I've never used Ruby.


Ruby is pretty easy to learn. RoR is great, but the easiest Ruby framework to learn is Sinatra.


I would have to say NOLOH (http://www.noloh.com), but then again, I'm somewhat biased. Check it out for yourself, and see what you think.


I have no idea but most of the guys i talked with recommanded "Code Igniter" and said it's very good, you may give it a look


You should also check out http://qcu.be/ It has a very cool auto-gen function


CodeIgniter, but I'm biased. :D


web2py


Catalyst




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

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

Search: