i am really confused about web development and how it all ties together. i constantly hear the terms: html, xhtml, css, javascript, mysql, apache, php, perl, ajax, dom scripting, etc... being thrown around whenever someone talks about web development. really, its just hard for me to believe that it takes so many different parts to run a website. and when i read up on some of these "tools", they all seem to do similar, if not exactly the same, things. in any case, my general, vague understanding of the matter is that there is a web browser that presents information in a nice manner to the user (as well as inputs information from the user), that comes from a web server handling these requests, acting on a database, that stores and organizes this information, or something along those lines, i could go into more detail, but its not my point. my point is that there seems to be a neverending amount subjects needed to get a fucking job. i mean, do i really have to know actionscript too? fuck
html web page
xhtml eXtendable HTML
css Style Sheet for HTML\xHTML
javascript Scripting language embeded into webpages that runs in the users browser
mysql Database
apache Free and popular web server program
php For processing data server side
perl Same
ajax Same
dom scripting Blah.
[HTML]
There is a very old technology called SGML, which is nothing more than inserting a few special codes into plaintext, to note typographical features. It was originally created to help in the digitization of book publishing. HTML is a variant on SGML, where a bunch of plaintext is interspersed with elements that a web browser uses to organize the text. Really, it's only a little more complex than making a veeeery long string and jamming a whole boatload of escape characters into it. Of course, there are a small handful of very special elements, such as IMG, OBJECT, and LINK, that contain references to other files; web browsers use the information in these elements to embed one document, often of a different format, in another. See a photo on a web page, or a Youtube video? That's as complicated as it gets, and it's only one or two lines of text.
[CSS]
After a web browser uses the elements in an HTML file to organize its text, it uses a cascading style sheet to know how to display it. CSS is a plaintext files containing a series of rule sets. Each rule set has the following format:
selector {
property: value;
property: value;
...
}
If you want to show paragraphs of text as Helvetica, or put a nice tiling effect across the left-hand side of the page, or make text wrap around images, this is what you use.
[XML]
XML is more or less a way of formatting data to be easily read by many different programs. It's also the foundation a lot of other formats use. Spend five minutes studying its syntax, and move on.
[XHTML]
Different browsers have slight variations in how they display HTML. XHTML is XML used to mimic HTML in such a way that most web browsers will be able to display it as though it were HTML, but prevent some of the inconsistencies that happen with displaying HTML across various browsers. XHTML is a god-damned headache for both web designers and browser developers. Again, spend five minutes on the format, take note of the more important things like the backwards-compatible syntax for empty elements, and move on.
[JavaScript]
Copy the following, and paste it into your address bar. Then click on 'Go':
javascript:window.alert('Hello World!');
JavaScript is a scripting language that allows the client (a fancy term for the browser) to alter the appearance of the web page, without demanding that the server make and send a new version of same. Comprehensive knowledge of JavaScript is very useful, but most web pages will not need it. Let me repeat: MOST WEB PAGES WILL NOT NEED JAVASCRIPT. Too many people use it just for gimmicks.
[AJAX]
AJAX is a myth. There is a JavaScript function, XMLHttpRequest(), and several related functions, that allow you to embed information from an XML file into an HTML file after the latter has been loaded, and then selectively alter the layout of the HTML page that the client sees. If there's a useless, unneccesary, or poor implementation of JS, frequently it will include XMLHttpRequest. Use it, but not unless you actually need it.
[DOM Scripting]
The document object model is this hierarchical way of perceiving the information inside a web page. When using Javascript, to change the user's view of the web page without having to actually fetch a new one from the server, you will have to use functions to alter the DOM. Mostly, this'll be document.getElementById() and createElement().
[PHP]
Also a scripting language, but this one is server side. When a client requests certain pages from a server, that server can optionally use any server-side script or program to create a page from scratch, then send it to the client. As an example of what it's practical for, well, all online message boards rely on some sort of server-side script or program to operate. Also, if you maintain a very large website, you will become grateful for include() and related functions.
[MySQL]
This is a language that allows you to retrieve data from, and add it to, a database. Also, mistakes in implementing MySQL are responsible for many security problems online. Learn how to use it, but make sure you learn to use it securely.
[Apache]
This program, when installed onto a computer, turns that computer into a server. You will probably rent a server from a hosting company, and therefore have little need for knowledge of Apache. However, learn how to edit httpd files, and you can get a lot of work out of them.
[Perl]
If you already know how to program in perl, you could use this instead of PHP for any server-side scripting needs. Otherwise, don't bother if you can just learn PHP first.
In order to write a webapp, you need to know (in order of importance): (X)HTML, any or all of Perl/PHP/Ruby/Python, SQL, CSS, Javascript.
If you want to be employed, you'll need to know all of the above. If you're a part of a larger team you might be able to skip out on CSS and Javascript or Perl/PHP/Ruby/Python and SQL. If you have to choose, skip on the former; it's the most unpleasant part of webapp development.
>>5
why is the former (css and javascript), the most unpleasant part of webapp development?
>>6
I'm not much of a webdev, but
CSS is plain boring and you have to run tests with all the browsers out there to make sure it gets parsed correctly.
No, sticking to the standards won't help.
Javascript is a pain to debug.
As >>7 says.
If you want to cover most of the important browsers, you'll need to develop and test on IE6, IE7, Firefox and Safari. If you're feeling generous, maybe Opera too.
Unfortunately, they all implement things differently, particularly in the case of IE. Sometimes these things are mutually exclusive. And even once you have somehow contorted your code to fit all these browsers, their behaviours may change with future revisions; you do not have any control over this since it's your visitors that decide which browser to use.
It's a real ugly mess. The server is a much happier place to reside, and your skills are more transferable to other domains.
> Unfortunately, they all implement things differently, particularly in the case of IE.
they really don't except for IE6, unless you're doing incredibly hackish non-standard things. if you are, there's probably a better way to do it that will work in firefox, safari, opera, and maybe even IE7.
>>9
They do, in subtle ways that will bite you and make you bleed if you don't test, but which you'll seldom encounter if you do.
I've found though, generally once you get IE and Firefox showing the page the same, Opera usually works.
it also should be noted that CSS/javascript frameworks are starting to pop up, take YUI for example.
>YUI
"JavaScript libraries" almost universally suck. JSQuery is one of the ones that might not suck, but all it's useful for is emulating CSS3.
> "JavaScript libraries" almost universally suck
that's a pretty strong statement
http://www.456bereastreet.com/archive/200612/six_things_that_suck_about_the_web_in_2006/