views:

63

answers:

3

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 ditch replace it for with 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 ditched replaced 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.

+2  A: 

You'll probably need to learn both a server-side and a client-side language.

For client-side development, I recommend:

JavaScript with the JQuery framework library http://www.jquery.com

For Server-side development, I recommend:

C# with the .NET framework library http://www.microsoft.com/express/windows/

BoltBait
+1  A: 

PHP and CakePHP are pretty good for LEARNING, there are lots of examples, tutorials and help out there and CakePHP follows the MVC pattern.

Steven smethurst
+1  A: 

Smalltalk with Seaside would be the most fun. One click image can be downloaded, and the book is online.

1 Smalltalk insists that you organize your code in classes and methods, but is open to suggestions on how to do that. Seaside is an opinionated web framework, with a strong focus on DRY.

2 It is a Smalltalk, so all objects and sources are available and inspectable.

3 You can easily get started without a database. Larger scale persistence is done most easily by deploying on a glass object-oriented database (zero code needed). It runs in a VMWare image or on a linux or os-x machine. If you want to write code, you can use the GLORP ORM with SqueakDBX to connect to all databases supported by openDBX, or directly to PostgreSQL.

4 Does it have to be that difficult?

5 If it provides an ODBC adapter.

6 There are interfaces to various NoSQL databases.

Stephan Eggermont