|
| Recent
Articles |
Microsoft Provides Coders With Robotics Studio The company recently announced its community technology preview of its Robotics Studio development platform, which may be freely obtained from Microsoft.
Source Code Needs A Place To Stay This isn't a chapter in the CVS versus Subversion debate, but a look at places online to view useful pieces of code.
Search Engines C Demand For Programmers The need for C/C++ programmers varies among the major search engine companies; Horace Greeley's advice to go West definitely applies here.
Two Routes To C On Supercomputers Both routes to programming in C on supercomputers will move through Silicon Graphics, as SGI works with a couple of firms to promote its blade hardware.
Google Contest May Jam Up Coders Google's Code Jam Europe wants to find the best and brightest among European Java and C programmers, but its scheduling leaves something to be desired.
Barnett Embedded C Book Arrives In June
Professor & Associate Electrical and Computer
Engineering Technology department head Richard Barnett's
"Embedded C Programming And The Atmel AVR" should
be...
XNA Hones C# For Game Programmers
Although it still isn't ready for prime time, Microsoft
did give game developers and C# programmers...
C Programming References – A Quick List Whether it is C or C# or C++, somewhere there is a website that can help the vaunted programmer find some useful bit for his or her work.
A New Book On C
The C programming language has been around for quite
a while now. A new book by Peter Prinz and Tony
Crawford called "C in a Nutshell" makes some interesting...
Developers, Welcome To Fight Club Programming for long hours under deadlines with an entire company's future sometimes hanging on every line of code leads to the kind of stress that can only be relieved by beating the stuffing out of someone else.
3G Scenarios For C++ Interface European tech firm Rohde & Schwarz produced a new package of 3G test scenarios for the MLAPI C++ programming interface, with plans of providing...
|
|
|
07.13.06 Computer Programming As Art By
David A. Utter This isn't about programming the visuals for the next great Pixar release, or even creating ASCII art for signature files, but whether the craft of programming itself can be artistic.
West Coast types, like Google's co-founders Larry Page and Sergey Brin, and many other programmers will recognize the name Donald Knuth. When it comes to The Art of Computer Programming, he not only wrote the book, he penned several of them.
If you're curious where they stack up historically, Knuth noted on his site that The Art of Computer Programming stood in good company:
At the end of 1999, these books were named among the best twelve physical-science monographs of the century by American Scientist, along with: Dirac on quantum mechanics, Einstein on relativity, Mandelbrot on fractals, Pauling on the chemical bond, Russell and Whitehead on foundations of mathematics, von Neumann and Morgenstern on game theory, Wiener on cybernetics, Woodward and Hoffmann on orbital symmetry, Feynman on quantum electrodynamics, Smith on the search for structure, and Einstein's collected papers. Wow!
Pat yourself on the back if you've read them all. Maybe you are an artist, whose oeuvre is expressed with includes and logic statements.
Pragmatic Programming authors Andrew Hunt and David Thomas have considered the art in computer programming, speaking about the topic in Denmark in 2001. "We think that it is all of these things, and none of them," they said of programming in comparison to art, craft, and engineering discipline.
They noted how the genius of Michaelangelo can help programmers with their tasks. In painting the ceiling of the Sistine Chapel, Michaelangelo did so in a way Hunt and Thomas believe indicated a careful approach, represented in three steps: high cohesion, low coupling, and conceptual integrity.
Cohesion gets compared to Unix command-line utilities - they do one thing and do that one thing well. Each panel of the Sistine Chapel tells a story, without extraneous elements. Code should do the same.
Coupling happens when some elements extend into others. As the authors explain, if a panel of the Sistine Chapel, or a section of your code, needs to be replaced, doing so should not result in the dismantling of several surrounding panels. Encapsulation helps, but it isn't a cure-all, so be careful.
C, Ruby, and Smalltalk all have conceptual integrity in common. "C++ doesn't," say the authors. "It tries to be too many things at once, so you get an awkward marriage of concepts that don't really fit together well."
This means constructing a project as a collection of applications that interact can help maintain the integrity of the concept behind the code. This is more than dressed-up words; think about projects that started as one thing before spiraling into much broader projects that never address the initial reason for beginning it in the first place.
There may not be room at the Guggenheim for "Hello, World." But there should always be a place for effective code. Some would call the approach 'artsy'; we think 'sensible' is a better description.
About
the Author:
David Utter is a staff writer for WebProNews covering
technology and business. |
|