What would be a good language/framework pair for learning Web development? I know other people have asked this very same question (for example, Learning Web Development-Choosing a Language and Framework), however, my case is a little different, since I have some additional constraints:
The language the framework is written in must not be "opinionated" about the way I should do things. On the other hand, the framework being opinionated is not much of a problem, as I can always at some point
ditchreplace itforwith another framework or even my own mini-framework.The framework must let me see how it works, aka, I must have access to the source code. (Which is not the same as the framework being open source. I just want to be able to read the source.)
Also, since my Web server is a Windows 7 Professional x64 machine with Apache 2.2 installed:
The framework must provide convenient access to at least one database engine that can be installed on Windows 7 Professional x64.
Deployment of my Web applications must be as easy as installing an Apache module, editing the httpd.conf file properly and restarting Apache.
Optionally, in decreasing order of priority:
It is desirable that the language the framework is written in be dynamic.
It is desirable that the framework provide convenient access to any SQL database that can be installed on Windows 7 Professional x64.
It is desirable that the framework or a module/plugin compatible with the framework provide convenient access to a non-relational database that can be installed on Windows 7 Professional x64.
EDIT: Since my question has been labelled "subjective and argumentative" not only once but twice, I want to clarify some things:
If the word "ditch" was too crude, my apologies. I already
ditchedreplaced it.By specifying that the language not be "opinionated", my intention is to avoid having to ask "What is the recommendable/standard/approved/blessed/inherently-good way to do something?" in the future. I want to design my applications, desktop or Web, entirely on my own. If only to find out why some designs are not recommendable/standard/approved/blessed/inherently-good.
By specifying that the framework let me study how it works, my intention is to avoid having to ask "Why subsystem X throws error Y when I try to do Z?". I want to find it out on my own. If only for education purposes.
There is nothing else I can find that I think can potentially be interpreted as "subjective and argumentative". In particular, specifying an operating system and a Web server just means "I don't want to have to install other things than I already have installed on my PC". (Besides, Apache is pretty much the standard Web server.)
Yeah, the question is open ended. This is because I am asking for suggestions. And, since I am a complete newbie to Web development, there would be no point (at least for me) in arguing your suggestions. Also notice, the question is community wiki.