I posted in your Flash thread as well, so I figured I'd post here too.
Plus I know a lot more libraries and frameworks for non-Flash environments.
---
Boost
Language: C++
The most comprehensive collection of libraries for C++ that exist. There is a saying when it comes to C++ programming: "there's a Boost library for that".
No matter what you are doing if you are doing it without Boost you are probably making your life more difficult than it needs to be. It has libraries for file input, sockets, timers, smart pointers, data containers, and much more. Seriously, there are a lot of libraries.
Boost libraries are also some of the most comprehensively tested around. If you're not using Boost you should start.
-
Simple and Fast Multimedia Library
Language: C++
An API that greatly simplifies working with multimedia, including, but not limited to, OpenGL, the Windows API and X11. Anyone who has ever worked with these and had to set them up from scratch knows how much of a headache can be. SFML is the Advil that will completely alleviate that headache.
Has comprehensive tutorials found here that can get even a beginner to SFML up to speed. For an example of how much it simplifies GUI work one only needs to look at the tutorial for creating a window.
-
Simple Directmedia Layer
Language: C and C++
A library for accessing and managing user input (such as keyboard and mouse) and OpenGL. Just like SFML there are comprehensive tutorials on how to use it on their website available here. In my personal experience I've found SFML to be easier to work with when compared to SDL, but they are both excellent tools.
-
normalize.css
Language: CSS
An alternative, and in my opinion a superior one, to reset scripts. It is best described by the blurb found on the GitHub page so I will just copy and paste that: Normalize.css makes browsers render all elements more consistently and in line with modern standards. It precisely targets only the styles that need normalizing.
-
reset5
Language: CSS
A reset script for CSS that does exactly that: resets everything to appear the same across all browsers. If you do choose to use a reset script over normalize.css then this is the one you should use.
-
jMonkeyEngine
Language: Java
A game engine that utlises OpenGL. I do not know much about it, but reading it makes it out to be a solid engine. It supporting OpenGL and being in Java means it is cross-platform on all accounts as Java executables do not require re-compliation to work on different platforms, and OpenGL is the 3D standard.
For some reason there are no apparent links to the documentation on their website, but they can easily be found through Google. They are available here.
-
AJAX Push Engine
Language: JavaScript (both server and client side)
An engine that allows direct communication with a server solely with JavaScript and AJAX. Is very robust and powerful. The documentation is a bit lacking in comparison to other JS frameworks/engines, but ultimately it is plenty adequate. The demos page, found here, show of the true power of APE, from a simple chatroom to a 2D MMORPG.
-
Modernizr
Language: JavaScript/HTML/CSS
A library for modernising legacy browsers, such as Internet Explorer 6-8. In some older browsers, such as IE 6-8, HTML5 elements are not detected and therefore cannot be styled with CSS. Any attempts to style them will be ignored and potentially break entire layouts. Modernizr detecs legacy browsers and fixes that problem, and does so efficiently.
-
MooTools
Language: JavaScript
A framework that is comparable to jQuery even though it is designed to solve different problems. The main goal of jQuery is to make working with the DOM easier. MooTools, while it can work with the DOM, is designed to make doing things in JavaScript that don't involve the DOM easier.
Just like jQuery it is incredibly well documented, written, and tested. It's one of the best JavaScript frameworks around.
-
node.js
Language: JavaScript (both server and client side)
A framework that is comparable to the AJAX Push Engine. It can essentially be considered a web-server replacement for things such as Apache or nginx. You can think of it as the JavaScript equivalent of Flask.
I've played around with it, and personally didn't like it, but that is only my opinion; it's still a pretty solid framework. As a note, it has the same problem as the AJAX Push Engine: its documentation isn't as good as it could be.
-
SWFObject
Language: JavaScript
A library for easily and efficiently embedding SWF objects onto HTML pages. Short of not being able to use JavaScript there really isn't much of a reason to not use SWFObject.
Looking at the documentation is all it takes to see why SWFObject is so useful.
-
CodeIgniter
Language: PHP
An MVC framework for developing web applications. Is one of the fastest PHP frameworks around; possibly the fastest. Is an excellent tool all-around, but has the drawback that it doesn't make much use of newly added PHP features. Can be essentially considered a PHP 4.x application.
Is well documented and easy to use, and the framework I have the most personal experience with. If you do not have support for PHP 5.3 then this is definitely the framework you should use.
-
Laravel
Language: PHP 5.3
An MVC and RESTful framework for developing web applications. Is one of the best PHP frameworks around; makes very extensive use of the newly added OOP features of PHP, but as such requires a PHP version of at least 5.3. Is very well documented and easy to use. If you are looking to start a new web application then Laravel is an excellent choice; short of not having PHP 5.3 there isn't much reason to use a different framework in that scenario (i.e. beginning a brand new project).
-
Django
Language: Python
An MVC framework that acts as a web-server. First and foremost this framework is massive. It was originally designed as a web framework for a newspaper, but eventually grew into what it is today. Is pretty much the most comprehensive and well-tested Python web frameworks around. It has built-in support for virtually everything you will ever need to do for developing web applications. This thing is an absolute beast.
Incredibly well-documented, but will be a bit difficult for a beginner to setup. I would recommend a beginner to Python web development to choose a lesser complicated framework before using this.
Also has one of the most mind-blowing admin panels of anything web related ever.