[ISN] Embracing the Art of Hacking

From: InfoSec News (isn@private)
Date: Wed May 19 2004 - 05:20:05 PDT

  • Next message: InfoSec News: "[ISN] Conference Wireless LAN is Hacker Heaven"

    http://www.wired.com/news/infostructure/0,1377,63506,00.html
    
    [ http://www.amazon.com/exec/obidos/ASIN/0596006624/c4iorg  - WK]
    
    By Michelle Delio
    May. 19, 2004
    
    The idea that every hacker is an artist and every artist is a hacker 
    isn't groundbreaking -- recent gallery and museum shows have focused 
    on the link between art and coding -- but a new book by programmer 
    Paul Graham gives the concept a fresh twist by advising hackers to 
    improve their skills by borrowing creative techniques from other 
    artists. 
    
    Billed as a guide into the minds and motivations of hackers, Hackers & 
    Painters, due to be released by O'Reilly Media later this month, is a 
    mixed bag of essays on topics ranging from aesthetics to high school 
    hazing, spam to startups, Microsoft to money. 
    
    It doesn't quite live up to the promotional promise that "if you want 
    to understand what hackers are up to, this book will tell you," since 
    it's unlikely that the mildly hacker-curious will wade through four 
    chapters on the pros and cons of programming languages. But, on the 
    whole, the book does provide some fascinating reading for anyone who 
    cares about making great things. 
    
    Graham certainly knows hacking: Currently working on a new programming 
    language called Arc, he developed the first Web-based application 
    (Viaweb, which was acquired by Yahoo in 1998) and created a simple but 
    effective Bayesian spam filter that inspired most of the current spam 
    busters. He also knows art; Graham studied painting at Rhode Island 
    School of Design and the Accademia di Belle Arti in Florence, Italy. 
    
    Unfortunately, Hackers and Painters gets off to a slow start with a 
    dull chapter on why geeks aren't popular in high school, a subject 
    that's been exhaustively covered elsewhere. Graham breaks no new 
    ground here -- we already know that young geeks care more about 
    learning than being popular, which can lead to social awkwardness, and 
    we also know that other kids are often mean to them. 
    
    It's a shame that Graham didn't offer some solutions to the problem of 
    keeping geek kids sane in school. He does mention some possibilities 
    in a one-paragraph addendum in the back of the book -- suggesting home 
    schooling and making high school more like college. Had these ideas 
    been the focus of the "Why Nerds are Unpopular" chapter the book might 
    have provided real options to suffering young school-bound hackers. 
    
    The chapters on general rules of good design as they apply to 
    programming, painting and any creative endeavor are by far the best in 
    the book. Graham slams the artistic conceit that all art is good and 
    taste is purely subjective, pointing out that if you aren't willing to 
    say that some creations aren't beautiful then you'll never develop the 
    aesthetic muscles necessary to define and develop good work. 
    
    Graham steers programmers, writers and other artists toward 
    simplicity, making the point that ornate stylistic embellishments 
    often cover up lack of substance, whether you are writing a computer 
    application or a novel. He urges anyone who is involved in creative 
    work not to get pretentious and to retain her or his sense of humor, 
    noting that "good design may not have to be funny, but it's hard to 
    imagine something that could be called humorless also being good 
    design." 
    
    Graham also shares ideas on how to produce work from other creative 
    fields and advises hackers to apply these tools to their own 
    endeavors. Writers and painters know that good work is the result of 
    an enormous amount of reworking or rewriting and are taught to be 
    patient with the process of figuring out what they are trying to 
    create. But programmers, Graham writes, are taught that they should 
    "figure out a program completely on paper before even going near a 
    computer." 
    
    "I found that I did not program this way.... Instead of patiently 
    writing out a complete program and assuring myself it was correct, I 
    tended to just spew out code that was hopelessly broken, and gradually 
    beat it into shape. Debugging, I was taught, was a kind of final pass 
    where you caught typos and oversights. The way I worked, it seemed 
    like programming consisted of debugging. 
    
    "For a long time I felt bad about this, just as I once felt bad that I 
    didn't hold my pencil the way they taught me to in elementary school. 
    If I had only looked over at the other makers, the painters or the 
    architects, I would have realized that there was a name for what I was 
    doing: sketching. As far as I can tell, the way they taught me to 
    program in college was all wrong. You should figure out programs as 
    you're writing them, just as writers and painters and architects do." 
    
    Encouraging programmers to make what writers sometimes refer to as 
    sloppy first copies also has implications for programming languages, 
    Graham writes. "It means that a programming language should, above 
    all, be malleable. A programming language is for thinking of programs, 
    not for expressing programs you've already thought of. 
    
    "We need a language that lets us scribble and smudge and smear, not a 
    language where you have to sit with a teacup balanced on your knee and 
    make polite conversation with a strict old aunt of a compiler." 
    
    Taking inspiration from artists working in other media will also 
    improve software, Graham writes, comparing open-source development to 
    painting with oils, a flexible medium that allows for reworking and 
    overpainting, as opposed to the more fixed and rigid nature of tempera 
    paints. 
    
    "Open source software has fewer bugs because it admits to the 
    possibility of bugs ... and it helps to have a medium that makes 
    change easy," Graham writes. 
    
    Graham rounds out the book with chapters on programming language 
    politics (essentially: "yay" for Lisp and "boo" to Java), and an 
    excellent chapter on spam-filter technology. He predicts applications 
    will vanish from desktops shortly and will instead run via browsers 
    over the Web, says Microsoft is all but doomed and also provides some 
    hints to those who'd like to be the next Bill Gates. 
    
    The chapters on free speech and free thought contain little that's 
    new, but these subjects are so central to hacking philosophy that an 
    overview has to be included in any book on hackers. 
    
    Graham wraps up the book with a final excellent chapter on good 
    design, offering up more tools used by artists and writers that would 
    work equally well for programmers. 
    
    "Design must be for users, but I don't mean to imply that good design 
    aims at some kind of lowest common denominator," Graham writes in his 
    last chapter. "If you think you're designing something for idiots, 
    odds are you're not designing something good." 
    
    Hackers and Painters is not a masterpiece, but it's far from bland 
    match-your-couch art, either. It's a very personal, often 
    illuminating, rather jumbled and only occasionally tedious look at one 
    man's ideas about how to create good things. 
    
    
    
    _________________________________________
    ISN mailing list
    Sponsored by: OSVDB.org
    



    This archive was generated by hypermail 2b30 : Wed May 19 2004 - 06:32:00 PDT