TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Art vs. Computer Science

47 点作者 r11t超过 15 年前

15 条评论

dstorrs超过 15 年前
In college, I was an English major. I took CS 101 because it was the ONLY course open and I needed 3 more credits. In the first or second class Bob Geitz (the professor) demonstrated that you can directly transform a FOR loop into a DO...WHILE--they were completely interchangeable, but had different nuances.<p>This was a transformative moment for me--I realized that computer code <i>is</i> poetry, with all the beauty and elegance and difficulty that implies. Further, it is poetry that can alter the physical world. In legends and mythology, what is the one-word name for "poetry that alters the physical world"? <i>Magic.</i><p>I've been a computer professional ever since.
grantmoney超过 15 年前
Why is art reduced to craft in this modern age? Really, for any programmer to assume they are being artistic just because their code is 'nice' is absolutely absurd, and it's horrifying to think it happens. To be an Artist now is to be a social/cultural/literary critic. There cannot be art in programming, no matter how creative one thinks they code. Please stop it!
评论 #1043867 未加载
评论 #1044069 未加载
评论 #1044708 未加载
评论 #1043854 未加载
andreyf超过 15 年前
<i>I won't dispute that computer science is indeed a science. CS is very testable, we can easily show evidence that a pop operation takes O(1) time.</i><p>Science is about discovering models to describe the world. Proving from axioms that pop can be done in constant time on a Turing machine is math.<p><i>The fundamental theories of computation are mathematically rigorous.</i><p>Exactly. Math. Not science. Nothing in science is mathematically true, only not-yet-shown-untrue. See: <a href="http://www.edge.org/q2005/q05_8.html#kay" rel="nofollow">http://www.edge.org/q2005/q05_8.html#kay</a>
评论 #1045221 未加载
评论 #1045222 未加载
评论 #1044790 未加载
kellishaver超过 15 年前
FWIW, which probably isn't much, I have a degree in fine art. Most of my work these days is UI design for web apps, but I also end up coding those UIs. With the exception of one long-standing project, any backend development I do (which does come up from time to time), I do in Ruby, which I switched to almost exclusively after using PHP for years, because it felt cleaner and more natural to me. Not that I have anything against PHP (I don't want to make this into a language war), it just felt like a better fit for me, personally.<p>I love beautiful code, whether it's javascript, ruby, or just html/css markup. My goal, at the end of the day, is to do as much as I can with as little code as possible. For me, I find that when I'm pleased with how my code looks, it also runs better, more efficienly, and more smoothly-not to mention it becomes much more maintainable.<p>I would say that there are certain artistic principles that influence the way I code and I try to extend the clean elegance of the UI to more than simply its appearance. I want the code that powers it to match that aesthetic in terms of its form, readability, and efficiency of function.
ntownsend超过 15 年前
<i>I don’t have a paper to show you, some great insight into how von Neumann architecture is totally lame.</i><p>If it weren't for the von Neumann architecture the author wouldn't have pretty code to look at. I suppose he could write a post about the arty setting of switches and attachment of patch leads on his personal ENIAC.<p>It seems to me that the requirements for the existence of code meant to program a computer (and look pretty) are a memory to store the code and an automatic method of retrieving, and carrying out, the instructions in the code. That sounds a lot like the von Neumann architecture.<p>Also, I don't follow the analogy to pre- and post- relativistic physics. There was a shift in the intuition and the models used, but the object of study didn't change. Physics stayed the same. Electrons didn't change their behavior because we came up with new models for them. Similarly, in computer science, a shift in intuition and models doesn't change the nature of computation. The travelling salesman problem is still NP-complete.
amichail超过 15 年前
As you might guess, I think this completely misses the point.<p>See: <a href="http://blog.computationalcomplexity.org/2006/07/science-and-art-of-computation.html" rel="nofollow">http://blog.computationalcomplexity.org/2006/07/science-and-...</a>
评论 #1043652 未加载
评论 #1043937 未加载
steveklabnik超过 15 年前
I had to vote this one up. Thanks for submitting it.<p>I have a few posts related to this half written, but I haven't gotten around to finishing them yet. I think this is a really interesting topic that doesn't get enough discussion in the community at large. We already have "IT vs IS vs CS" distinctions that are tenuous at best, yet I think most people tend to approach CS more of an art or craft than as a science.<p>"Computer Science" as a term has really gotten muddled by the universities. I try to stick to its original definition, but I'm unsure how long it'll stay that way, considering languages change over time...
HenryR超过 15 年前
Computer science is the formal study of problem solving. Hence, algorithms - deterministic, mathematically tractable, general solutions to problems. Hence programming language theory - ways to efficiently express solutions to problems. Hence the study of data structures: building blocks that solve small problems, which crop up in many, many larger spaces, very effectively. Hence the study of the formal theory of computation: tractable models of mechanisms for general computations that happily map onto physically reliable machines. Hence computing machines: devices that allow us to compute solutions to problems at high speed. Hence machine learning, computer graphics and natural language processing: studies of specific classes of problems that happily submit to some general (but domain specific) approaches.<p>Computer science shares some of the creative sensibilities of mathematics: the building blocks (theorems) may be well understood, but there is a creativity and insight required to arrange them in such a way as to produce an [efficient/elegant/small/general] method to solve a given problem (proof). At the same time, this is why coding on its own is such a pale shadow of the entire field of computer science. Implementations at their worst are merely transcriptions of someone else's work.<p>Don't aspire to be an artist with your code; it's not the medium for art. There's a different aesthetics at work here. You will not habitually provide commentary on society or the human condition. Don't begrudge others the fact that they might. They don't begrudge you the beauty that you produce.
tumba超过 15 年前
I'm surprised nobody has referenced Donald Knuth's 1974 Turing Award speech, Computer Programming as an Art.<p><a href="http://portal.acm.org/citation.cfm?id=361612" rel="nofollow">http://portal.acm.org/citation.cfm?id=361612</a><p>Paul Graham even posted it in its entirety here: <a href="http://www.paulgraham.com/knuth.html" rel="nofollow">http://www.paulgraham.com/knuth.html</a><p>This question hinges on how you define the terms science and art. I like Knuth's definitions.
brazzy超过 15 年前
I think that if you believe coding is an art form, you are deluding yourself. You probably wish that your chosen field of expertise would get more respect from society rather than being considered a boring occupation of geeks. I can understand that, but wishes don't make beggars ride, and neither will they make coding fashionable and cool.<p>Code is not art, and never will be. Art is something created purely for its aesthetic appeal and to evoke emotions. Code written to be executed by a computer. It may have some aesthetic aspects but these are secondary to its executability. It also requires far too much prior knowledge to be appreciated by most people.<p>At best, code can incorporate aspects of industrial design: an aesthetically pleasing symbiosis of elegance and functionality, but with the latter always being the dominant goal.<p>The article also assumes a false contradiction between art and science that makes me suspect the author understands neither.
评论 #1044251 未加载
评论 #1043942 未加载
friism超过 15 年前
I think a project like OpenFrameworks embody some of the thoughts in the post: <a href="http://www.openframeworks.cc/" rel="nofollow">http://www.openframeworks.cc/</a> (don't get put off by the fact that it's C++)
评论 #1043844 未加载
robfitz超过 15 年前
<i>But you can’t get a ‘liberal arts’ CS degree.</i><p>Georgia Tech's Computational Media degree is one of these. The major is shared by their CS and Literature departments, thinking about programmatic artifacts as if they were traditional cultural media like poetry or music.<p>I was one of the first graduates from the program and it hit on something I'd really felt missing elsewhere, so take this as a recommendation if you happen to be looking for a university in the SE US... <a href="http://lcc.gatech.edu/compumedia/" rel="nofollow">http://lcc.gatech.edu/compumedia/</a>
评论 #1045237 未加载
justagirl超过 15 年前
Actually it is possible to have an arts degree in comp sci (i have one). Second - it doesn't matter what language you use; you can be a code "artist" and program in any language. I don't get why people obsess over obscure languages instead of developing marketable skills. Nobody uses Haskell! Finally, please not another computer science vs engineering vs art vs science debate. It gets old. Who really cares anyway?
amando44超过 15 年前
<a href="http://www.computer-nach-wunsch.de/" rel="nofollow">http://www.computer-nach-wunsch.de/</a>
anonjon超过 15 年前
I think of the non-hardware parts of computer science as applied philosophy.<p>Art seems wrong to me as a descriptor because it would imply that I'm writing code for a sort of aesthetic beauty. The aesthetic beauty should be in the end result.<p>Which also means it probably isn't science, because really what I worry about when I'm programming is that the end result will be correct. To some extent I am concerned about scientific process, having a program that is repeatably verifiable as doing what I expect, but in terms of actually using scientific methods to write software, I can't really say I do that very much. As with the beauty, the science is in the end result and not really the process.<p>Which brings me to why I think it is applied philosophy:<p>What am I doing when I write code? I am taking a problem and deconstructing it into different pieces, finding ways to represent the different pieces, and reasoning about how everything should interact. I think this basically holds true for functional, object oriented, and imperative programming.<p>I think that from this perspective, writing code is closest to some sort of philosophical inquery. You are using a computer to build abstractions, and through enough abstractions (or abstractions written by someone else, imported in libraries), you are able to create something.
评论 #1044279 未加载