Programming Frameworks
In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by user code, thus providing application specific software. It is a collection of software libraries providing a defined application programming interface (API). See also application framework and inversion control.
PHP
Yii (128 votes), CodeIgniter (103 votes), CakePHP (76 votes), Zend (74 votes), Symfony (51 votes) …
- Yii is only PHP5 compatible and is purely OO. It is perfect for small and big projects and if you love clean code. Big community suppot.
- CodeInteger is perfect and simple for small projects.
- Zend is slow if not opcache and you often have to write a fair bit of code to do something simple. It is complex.
- Symfony is too damn big and slow and unless you’re building some crazy huge enterprise project (Zend could even work better in this case).
- CakePHP forces into doing things its way.
- Others like DooPHP, Solar, Akelos, Prado, eZ Components, Seagull, WASP are not quite at the scale (in terms of user community).
CodeIgniter is really one of my favourite web development frameworks for PHP. It’s lightweight, fast, and very easy to quickly get something working in. It follows a model-view-controller (MVC) pattern, and comes with many helpful libraries to help you get started. If you want to try out your first framework, CodeIgniter is the one to start with.
Java
Hibernate and Spring. Spring seems to be better. Anyway in Java frameworks were created to solve Java pitfalls specially in server applications (JBoss, Glassfish). However since Java 6 most of these pitfalls are already solved, and it could be better to use extensions than frameworks.