I love to look at the logs to see how people find this blog. Some of the search strings people use amaze me. Sometimes I’m not sure which to wonder more about – how did that string find my blog or what in the world are they really looking for. Recently I saw a search for “is it better to study computer science or web development” that was a bit of a puzzler. I’m not sure those are separate subjects. Can you do good web development without a grounding in computer science? Can you be a knowledgeable computer scientist without some knowledge of web development? Probably not.
I suspect that at the heart of this question was a vocational idea. What career should they go into? Programming (which is what many people think of when they think of computer science) or web development (which many people don’t seem to be aware requires some computer science to do well).
These days most important web pages have database access, active response, and other “programming” that take them a whole level beyond the static web pages of the past. It’s hard to see how one can keep up with the trends towards AJAX, HTML5, Silverlight, Cloud computing and so much more of the direction of the web without a good computer science background. Sure there are self taught people who do great things but having a good solid base of computer science knowledge would seem to be a big edge for learning the new technologies.
Related to this is that I keep seeing people list HTML as a programming language. That confuses me. I’ve worked with mark up languages for years (anyone else remember Runoff?) and while they are useful tools I see them as data rather than as programming languages. Are they part of computer science? For sure. They take in data, meta data, process descriptions and much more. But HTML is not a programming language. Perhaps this is part of that whole confusion that has people thinking computer science and programming are the same thing? Are people calling HTML a programming language an attempt by people to try to justify calling web development computer science? If so, I think they are missing the point. Web development is a part of computer science.
It may not have the prestige in academic circles that other parts of CS have but it is growing in importance in the “real world” all the time. I think we really want the people developing the next big web app (think Facebook, Twitter and Amazon.com) to know a bit about “the rest” of computer science. What do you think? Is HTML programming? Is web development computer science? Or is it rightly kept separate?
I am totally agreed on what you said earlier about the differences on CS, Web Development, HTML and programming. I am a CS grad and currently working for the federal government on ICT education. For my opinion, CS is a discipline which focuses more on programming; Web Development might have been part of CS, but it also cuts across other fields, say Multimedia (Flash production). HTML is definitely not a programming language, because it doesn’t have any programming concepts in it such as selection control structure, looping or polymorphism etc. It uses a set of tags to define the way data shown on web pages.
An interesting question is this: What are the conceptual differences between Web applications and "conventional" client/server applications?
The latter locate application code on the server, presentation code (ANSI escape codes & data, other terminal instructions, or client-side executables on the display host, e.g., dumb terminal, X terminal, IBM 3270 console, fat client, etc.) on the client, and communicate with established protocols.
Answer: Both locate application code on the server and presentation code on the client and communicate with established protocols.
Therefore, there are no conceptual differences. The differences are implementation details; there are no theoretical distinctions of any relevance.
this computer post was the bomb!
No. Web development is no more computer science than any other programming. Does programming/web development incorporate ideas from CS? Absolutely. However, that does not make it CS.
Think of it this way:
To build a building properly, you need to use and know maths. However, that does not make it math.
I think this is premised on a very strange notion of "computer science".
Programming isn't computer science, it is one activity that enables the confirmation or refutation of computer science hypotheses. Other activities include mathematical proofs and empirical observations.
So what hypothesis does "web development" attempt to prove or disprove?
I think web development, like so much industrially-motivated development, is just "computing", as in, "the application of computers". There is no computer science in it. Even while programming you are unlikely to be doing "computer science". It's just "computing".
So I would be fascinated to know what your definition of computer science is that would permit "web development" to fit into it, because it appears to be very different to mine.
hypertext and markup languages are computer science. web development is the application of those things. Some may not actually differentiate these things right now, but one is math/science and the other is applied practice. Like physics vs. engineering, or medical care vs. biology.
"No. Web development is no more computer science than any other programming."
heh. really? so, for example, in facebook's case, what scientific category would you call something that runs thousands of shared applications through single sign-on spread across 20,000 physical computers? oh, and achieves millions of hits per second from 350 million users.
it used to be that the hardest problems in computer science to solve involved graphics. these days, it's real-time data scalability.
writing up a few html pages is not, i repeat, NOT web development.
*chuckles* "web development is not computer science..." that's funny.
"what scientific category would you call something that runs thousands of shared applications through single sign-on spread across 20,000 physical computers? oh, and achieves millions of hits per second from 350 million users."
That's an engineering problem. There might be some people doing "computer science" at Facebook (in fact, I know there are), but the actual act of building the Facebook software is not a "computer science" activity.
For example, building a bridge involves doing lots of mathematics and lots of physics, but it is not a "mathematical" or "physics" activity, it is the application of both of those things to bridge-building.
Similarly. building a computer program (to do anything!) is not "computer science", it is the application of computer science to some problem.
Most people who call themselves "computer scientists" are not. Most people who are programmers never even see most of what constitutes computer science. It's just a common misunderstanding as to what computer science actually involves.
memnoch, that's still not computer science.
Computer science is almost pure theory. Knowing how to model a system to calculate how it will perform under load, knowing how to create efficient code, etc. - that is computer science. Applying it isn't.
To go back to my earlier example, to build a suspension bridge requires understanding math and physics. However, that doesn't make building a suspension bridge physics or math - it's engineering.
I dunno, I can build a backyard shed without a degree in mechanical engineering & architecture. Sure, it's theoretically helpful but definitely not essential.
Many of the web apps I see today could be built in much the same way with much the same amount of sophistication.
"I dunno, I can build a backyard shed without a degree in mechanical engineering & architecture. Sure, it's theoretically helpful but definitely not essential."
That's about the level at which most software development occurs (web or not). That's why most software is mostly terrible. We really need to stop training people to be hackers and spend more time teaching people to actually engineer software with some rational, normative methods for software engineering. We don't have anything even approaching that yet.