ph34r my 133t j4v4 h4><0r1ng sk177z
Make visible what, without you, might perhaps never have been seen.
- Robert Bresson
Originally posted by Michael Ernest:
Yes it is.
Nathaniel Stodard<br />SCJP, SCJD, SCWCD, SCBCD, SCDJWS, ICAD, ICSD, ICED
Originally posted by Nathaniel Stoddard:
Perhaps science itself is an art.
Originally posted by Ray Marsh:
I've always been of the opinion that creativity is the essential aspect of programming.
Originally posted by Ellen Zhao:
I'd imagine they probably couldn't analyse the problem in a logical way, or they haven't known wonderful algorithms for such problems which has existed for decades...[ February 11, 2005: Message edited by: Ellen Zhao ]
ph34r my 133t j4v4 h4><0r1ng sk177z
Le Cafe Mouse - Helen's musings on the web - Java Skills and Thrills
"God who creates and is nature is very difficult to understand, but he is not arbitrary or malicious." OR "God does not play dice." - Einstein
Originally posted by Max Habibi:
Programming is a craft, much as capentry is a craft. With apologies to Robert Pirsig:
[qb]Sometime look at a novice workman or a bad workman and compare his expression with that of a craftsman whose work you know is excellent and you'll see the difference. The craftsman isn't ever following a single line of instruction. He's making decisions as he goes along. For that reason he'll be absorbed and attentive to what he's doing even though he doesn't deliberately contrive this. His motions and the machine are in a kind of harmony. He isn't following any set of written instructions because the nature of the material at hand determines his thoughts and motions, which simultaneously change the nature of the material at hand. The material and his thoughts are changing together in a progression of changes until his mind's at rest at the same time the material's right."
"This divorce of art from technology is completely unnatural. It's just that it's gone on so long you have to be an archeologist to find out where the two separated[/QB]
...I�m not saying strong mathematic background and fundamental theory of computation are not important. Quite the opposite, truth is that they are essential, even for the most mundane, �stepped� computational tasks. All programs eventually talks to machines, no matter how high-level the programming language is. Machines don�t process information quite the way we humans do. Humans are so advanced, our logic can be fuzzy, we have great intuitions in various occasions. But machines can only process things in a stricktly mathematicised way. The logic which machine can understand and process has to be precise. For the time I�m blogging this piece, no matter how advanced a computer is, it is in fact a super Turing Machine in nature. That�s why all the greatest computer scientists strive to formalise everything to make our complex real-world machine-processable. IT field is constantly changing. I�ve seen way too many developers, who didn�t have a formal education in computer science, killing themselves to learn the newly popped technologies to make themselves marketable. However, whatever the trendy technologies are, there�s always something static behind the scene. Real computer scientists understand the way a technology abstracts things, can recognise a technology�s math pattern, can evaluate how effetively a technology can reduce the entropy of certain problem domain...
Originally posted by Nick Leaver:
On the flip side somebody who knows the language inside out, can convert binary to hexidecimal in their sleep and could recite the JLS is not a programmer if they cannot visualise a solution to a problem.
Originally posted by Jayesh Lalwani:
You cannot say that using a Facade pattern will increase maintainibility by X amount, or using Listener patter will increase Reusability by Y amount. It's mostly gut feel and experience
Originally posted by Ellen Zhao:
Dear Mr. Lalwani but I'm afraid the efficiency of a system _can_ be measured this way. But how to measure it is just very difficult mathematics (but such math does exist), hardly any people really master it. So that people resort to gut feel from time to time. Here experience is very important. Experiences reveal certain facts for example this is more efficient that is not. But behind the this and that, in the field of programming, there is solid, beautiful but difficult math.
[ February 12, 2005: Message edited by: Ellen Zhao ]
Originally posted by Jayesh Lalwani:
Efficiency is not the only goal of a software system. Efficiency is one of the goals that can be measured. Other important goals like maintainability, reusability, scalibility, etc cannot me measured.
Besides, in most projects, especially, those that require a lot of user interaction, efficiency takes a back seat over maintainability and reusability.
Originally posted by Warren Dew:
Jayesh Lalwani:
You cannot say that using a Facade pattern will increase maintainibility by X amount, or using Listener patter will increase Reusability by Y amount.
Ellen Zhao:
Dear Mr. Lalwani but I'm afraid the efficiency of a system _can_ be measured this way. But how to measure it is just very difficult mathematics (but such math does exist), hardly any people really master it.
Yes. Measurement and analysis of these things really would qualify as science - since it involves observing and understanding parts of the world (specifically, programmers and what they do). It would be computer science - understanding how programming works - rather than software engineering - actually doing the programming.
Jayesh:
Efficiency is not the only goal of a software system. Efficiency is one of the goals that can be measured. Other important goals like maintainability, reusability, scalibility, etc cannot me measured.
It seems to me all these things can in fact be measured. Observe how many programmer hours are required to maintain a system for a few years; that's a measure of maintainability. Observe how many times a particular module is reused; that's a measure of reusability. Scale up the use of the system and see when it breaks to measure scalability.
These things may be expensive and difficult to measure, and that's indeed why they aren't often measured. Also, the measures may not be perfect - no measurement is. But making such measurements is possible, and can be useful in certain circumstances.
Originally posted by Jayesh Lalwani:
Parts of it like building electronic circuitry are based on pure science.
But, there's nothing like Software Science or Programming Science.
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi
MH
MH
There will be glitches in my transition from being a saloon bar sage to a world statesman. - Tony Banks
Le Cafe Mouse - Helen's musings on the web - Java Skills and Thrills
"God who creates and is nature is very difficult to understand, but he is not arbitrary or malicious." OR "God does not play dice." - Einstein
Le Cafe Mouse - Helen's musings on the web - Java Skills and Thrills
"God who creates and is nature is very difficult to understand, but he is not arbitrary or malicious." OR "God does not play dice." - Einstein
Originally posted by Dave Lenton:
Science is the application of order to chaos.
Dear Mr. Lenton I am so, so provoked.
In my humble opinion, science is the application of chaos to order. It describes the objective world. While art, as I had said, it's the reflection of human's intuition, be the image is skillfully presented or not. There are common principles for good art, but one cannot formalise art with formal logic. The object of art is "beauty". In the universe of art, people care only about "is it beautiful or not" but not other things. A program can look good and seemingly working, but if it's proven to be mathematically invalid, it has to be thrown away or modified.
In programming there is most definitely art
Sorry dear Mr. Lenton but I'm afraid in programming there is most definitely science, no matter how well the science therein is encapsulated into things like design patterns, enterprise architechtures...so that it's unseen to most programmers, but it's still _science_. The inventors/founders of modern programming: Alonzo Church and Alan Turing are both brightest mathematicans of 20th century. A great artist without going really far into highly abstract mathematics, would never establish a solid foundation for modern programming.
Another way of putting it - the art in programming is everything that "goto" isn't.
All programs, no matter what programming language they are in, can be mapped into 100% equivalent Turing program. What's for addressing in Turing program? Only _goto_ but nothing else. People don't see _goto_ in most high level programming languages because the compiler in the bottom takes the _goto_ job for programmers. Boilt down, programming is computation is science. The quality of a program/software project can be mathematically/formally examed and proved. Many researchers are on such business...
Here is a really good book by prof. Michael Sipser (MIT):
Introduction to the Theory of Computation
Among the books on theoretical computer science I've read, this book is the most readable/understandable. Highly recommend! On preface page XV, Mr. Mark Herschberg was mentioned as one of the acknowledgements.
[ March 01, 2005: Message edited by: Ellen Zhao ]
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Ilja Preuss:
What difference does it make?
Le Cafe Mouse - Helen's musings on the web - Java Skills and Thrills
"God who creates and is nature is very difficult to understand, but he is not arbitrary or malicious." OR "God does not play dice." - Einstein
Originally posted by Ellen Zhao:
In my humble opinion, science is the application of chaos to order. It describes the objective world. While art, as I had said, it's the reflection of human's intuition, be the image is skillfully presented or not. There are common principles for good art, but one cannot formalise art with formal logic. The object of art is "beauty". In the universe of art, people care only about "is it beautiful or not" but not other things. A program can look good and seemingly working, but if it's proven to be mathematically invalid, it has to be thrown away or modified.
In programming there is most definitely art
Sorry dear Mr. Lenton but I'm afraid in programming there is most definitely science, no matter how well the science therein is encapsulated into things like design patterns, enterprise architechtures...so that it's unseen to most programmers, but it's still _science_. The inventors/founders of modern programming: Alonzo Church and Alan Turing are both brightest mathematicans of 20th century. A great artist without going really far into highly abstract mathematics, would never establish a solid foundation for modern programming.
All programs, no matter what programming language they are in, can be mapped into 100% equivalent Turing program. What's for addressing in Turing program? Only _goto_ but nothing else. People don't see _goto_ in most high level programming languages because the compiler in the bottom takes the _goto_ job for programmers. Boilt down, programming is computation is science. The quality of a program/software project can be mathematically/formally examed and proved. Many researchers are on such business...
There will be glitches in my transition from being a saloon bar sage to a world statesman. - Tony Banks
Le Cafe Mouse - Helen's musings on the web - Java Skills and Thrills
"God who creates and is nature is very difficult to understand, but he is not arbitrary or malicious." OR "God does not play dice." - Einstein
Well THAT's new! Comfort me, reliable tiny ad:
Smokeless wood heat with a rocket mass heater
https://woodheat.net
|