Web Technologies: Sanity check

I’ve been helping someone come up to speed on web development, and he’s asked some questions that I’m pretty sure I know the answer to but I want to do a sanity check lest I spread dis-information.

What I’m looking for is a general overview of various web technologies and what needs to be done to 1) set up a development machine and 2) set up a production server. I’m talking in-general, not specifics. We’re not actually setting up anything.

I’m not looking for DB stuff. From what I can tell, just about everything deals with whatever DBMS you want to use.

Also, I know there’s a thousand different ways to do this stuff - for example, you don’t HAVE to use VS to write ASP.NET code, but most people do, so that’s what I’m listing. I’m looking for the common ways that most people use this stuff.


I’m a .NET person, so I know this stuff:

Development:

  • Windows box
  • Visual Studio
  • You use VS to both design your HTML pages and also write whatever server-side code you want, typically in C# or VB.
  • Debugger & mini-web-server is built into VS, so to debug & run on your development machine you don’t need any additional software.

Production:

  • a Windows Server
  • IIS

It’s been a while since I’ve done Java, but this is the setup I remember. Tell me what I’ve got wrong:

Development:

  • *nix/Windows/Mac box
  • A text editor of some sort
  • An HTML editor of some sort
  • OR: an IDE, typically Eclipse, which does both text editing and a bit of WYSIWIG HTML
  • Debugging: If you’ve got Eclipse, it’s built in. If you’re not using Eclipse (or another IDE) …?
  • Running on the dev machine: I think you need to have Apache or another web server installed locally, correct? Then whatever add-ons you need for Java (Tomcat?)

Production:

  • typically an *nix box, but I think you can do it on Windows, too. Just not as common
  • A web server, typically Apache
  • the add-ons (servlets?) to handle the java stuff, something like Tomcat.

php/python/etc:

Pretty much the same as Java, only substitute whatever flavor of language handler you want instead of Tomcat. And debugger - what do you use for these languages?

Ruby on Rails:

same as above - though I’m not sure on the development tools/debugger.

Any major technologies I’ve missed?

Flash.

Tomcat isn’t an Apache add-on like mod_perl is. It is a servlet container which can act as a stand-alone web server and frequently does in development environments. Jetty is also used in this fashion. In production environments, Tomcat is typically front-ended with Apache which handles things like static web pages. Tomcat may also be replace with a full-featured JEE server like JBoss, Geronimo, WebSphere or Weblogic. Incidentally, JBoss uses Tomcat for the servlet container portion of the server.

FWIW,
Rob