Slashdot Mirror


Where Can I Find Beautiful Code?

eGabriel writes "One of the benefits of free software that I haven't seen explored here is that of the opportunity to study elegant, masterful code. Besides the fact that we can all share and enjoy applications, and reuse their source code, we can also simply download the code and view it for pleasure, to learn from masters of the art. Certainly there are different criteria for determining what makes a piece of code excellent or beautiful, and I am not as interested in discussing that. If however, anyone has found a piece of free software that serves as an excellent example for study because of qualities they as programmers hold dear, I would love to read that code also and be educated thereby. Equally interesting would be code that really is bad, as long as it didn't turn into direct attacks upon the programmers involved (they can't all be gems!) Any code that shows elegant and masterful design would make for excellent reading; the language in which it is written isn't as much a concern. 'Literate' code is a bonus."

30 of 371 comments (clear)

  1. Deja Vu by cradle · · Score: 4

    I remember when I asked a similar question a few years ago. It might be informative to take a gander at it. -David

  2. Tex by drix · · Score: 3

    Donald Knuth's Tex certainly qualifies. Not only was it written, from the ground up, by arguably the greatest computer scientist of our time, but it's so good that it's bug free. Literally, there are no bugs in it. Stop and think about what that means for a minute. Can you come up with any software program on the planet of equal size and complexity (several megs of source code - not huge, but still formidable) that can make that claim? I can't. Granted, I may be incorrect, but nevertheless I find that amazing. You can view the parts of Tex that Knuth actually wrote here. They're written in (I think) CWEB, which is some literate programming language he has a real hard-on for. That probably means it fscking rules all, but personally I don't have the time/patience to pick it up. If you're sufficiently motivated, though, I'd imagine the Tex sources would prove very enlightening.

    --

    --

    I think there is a world market for maybe five personal web logs.
    1. Re:TeX by SecretAsianMan · · Score: 4

      as the years wore on and the few remaining bugs were fixed ... the bribe went up

      The bribe started out at one cent (for the first bug) and doubles for every new bug, I believe. Now THAT's some trust in your work!

      --
      SecretAsianMan (54.5% Slashdot pure)

      --

      Washington, DC: It's like Hollywood for ugly people.

  3. Sure, I Can by waldoj · · Score: 3

    NOOP

    God, I love Assembly.

    1. Re:Sure, I Can by f5426 · · Score: 3

      > I`d have used a case statement, instead of the if..else if business!

      Actaully, I first wrote it with an added if (n<0) { /* Error handling case */ } that cannot be dealt nicely in a switch. Then I removed the error test, because I felt it was pedantic to post it that way (more precisely, in real world, I would expect an "assert( n>=0 )" before the if/else)

      Btw, I generally avoid the switches because it is sometimes difficult to add new entries (it is not difficult, but it is error prone in the case where you need 'n<0', 'n==0', 'n==1' and 'n>=2', because you have to turn the whole switch into an if-else. I learnt the hard way to minimize changes to working code). Also, switches fails on non-integral types, so you need to master two idioms (one for the integral types, one for the floating point or function call decision tree, etc, etc)

      The less idioms I use, the less bugs I make, so I now only use switches when the tested value is an enumeration (because it never needs to be changed into an if/else), and where the default case is error handling or not used (so if I extend the enumeration I'll get either a warning or a run-time error, not a software that silently do something unexpected).

      It is a question of style, and you may feel better with a switch in that case.

      Cheers,

      --fred

      --

      1 reply beneath your current threshold.

  4. Elegant beautiful code? try perlmonks.. by dallen · · Score: 3
    I've seen more elegant code on perlmonks.org than anywhere else. I've learned a lot there. People submit their craft, and more advanced disciples of perl comment on it and occasionally turn it into beautiful code.

    --
    Q: What do you get when a Postmodernist joins the Mafia?

  5. NeoMail by LawnMowerMan · · Score: 3

    Many have the belief that NeoMail (http://neomail.sourceforge.net) is a project written in Perl which is not only excellently coded and well commented, it is also very efficient.

    1. Re:NeoMail by happystink · · Score: 3
      wow, they must have really cleaned it up from a few months ago then, cause back then it had a security flaw so super-basic that it showed that they didn't really understand a single thing about web security, and I decided at that point to never use it, who knows what else they were forgetting. (the flaw was that if someone clicked a link on an incoming message, and the url of that message got passed to your referrer log, you could go to that url and you'd be intheir mail, with full access to their mailbox. The worst example of session-tracking I have ever seen).

      sig:

      --

      sig:
      See the "..for smart people" banners Wired runs here? Look elsewhere guys.

  6. Re:The best code has lots of comments. by Fizgig · · Score: 4

    The best-commented code I have ever seen is Doug Lea's malloc, or dlmalloc, the malloc used in glibc, among other places. I had no idea how a malloc would work, and I wanted to write one for my OS class, so we looked at the dlmalloc source code. MAN, that's some well-commented code! Not only does it explain what individual functions do, but it also explains each general part of the algorithm in excellent detail. And it's malloc; it better not have any bugs!

  7. Personal recommendation by mattbee · · Score: 4

    People seem to be mentioning the obvious targets: Knuth, BSD etc. but I notice nobody has mentioned Dan Bernstein's projects, notably qmail. This guy basically didn't trust the standard C library routines for security and wrote his own string handling, file processing etc. based on a few system calls. He also splits up his programs into separate binaries as much as possible and is very, very minimalist in other ways too. The code seems quite impenetrable at first, I'm not sure beautiful is the right word, but it's certainly an education.

    Also worth a read is Sam Latinga's C++ port of the classic Mac game Maelstrom. The actual code of the game is surprisingly small and very well-written.

    Oh, and while I think about it, the InfoZip sources are a real surprise too-- I mean this code is one of the most portable pieces of code you'll ever see; they're a very good example of the sort of lengths you'll need to go to in order to achieve this kind of portability, and it's still elegant in my opinion.

    --
    Matthew @ Bytemark Hosting
  8. Why just code... by platypus · · Score: 5

    I'm far away from being a linux zealot, but an real good example (IMO, YMMV etc.) is reading linux-kernel.
    L.T. and the other kernel hackers sometimes get into very interesting discussions. Lately there was a discussion where L.T. called the HP-UX sendfile implementation obviously stupid (and BSD's too, yeah, roll on ;-)).
    One of the people who answered was ... well the implementor on HP-UX himself and a very interesting discussion began.
    So, leeching on mailing lists might help - and if you're not into low-level os programming I'm sure you'll find a open source project which covers areas interesting to you (unless you're doing ERP applications or such stuff).

    --
    "There is so much to be said in favor of modern journalism. By giving us the opinions of the uneducated it keeps us in touch with ignorance of the community."

    Oscar Wilde (1854-1900)

  9. The best code has lots of comments. by Dr.+Tom · · Score: 5
    When I download something, the first thing I look for is comments. No matter how clever or elegant the code is, nothing 10,000 lines long can ever be so self-evident that you don't need comments.

    Especially if the algorithm is particularly clever, it can be relying on some subtlety that will be entirely missed without a good long comment. Modifying such code is dangerous.

    One of the reasons people like Knuth's approach so much is that he puts the comments first, conceptually. The code is essentially embedded in a great long comment that describes everything that's happening. The code is just there to distill the essence of the algorithm into a form a stupid machine can understand. If the machines were a bit smarter, they would be able to run the program by reading the comments and executing them!

    Code with no comments is not a sign that the author understands his code so well that he doesn't need them. It is a sign that the programmer is lazy, sloppy, and doesn't care whether or not his code is maintainable. I just can't emphasize this point enough: for Open Source projects commenting is even more important than code. A large faceless company can get away with releasing products built on hundreds of thousands of lines of uncommented code, because they have external documentation, and can afford to spend thousands of dollars training new programmers. But if you want other people to even look at your code, you have to help them understand it. People making patches to code they don't fully grok are just going to make a mess.

    Good commenting style is as difficult to develop as good coding practices (the two really go hand in hand). Mental discipline (did you ever say to yourself "I'll go back and comment it later"? Did you?), clear exposition of an algorithm (no, the code is not a clear exposition -- remember code is CODE, it's meant for a stupid machine, not an intelligent human), maintainability, etc. Comments should be written in complete sentences wherever possible. Don't comment like this:

    /*
    * this comment
    * is pretty
    * but hard to format again
    * when you change it
    */
    Rather, write them like this:
    /* This comment is a paragraph. Any text editor can reformat this comment after you change it. */

    Not everybody uses the same tools you do. Comments should be as easy to change as possible. If they aren't, people won't do it, and the comments can get out of synch with the code, which is even worse than no comment at all.

    Languages without block quotes are very irritating in this respect.

    So don't look for beautiful CODE, look for well written prose comments. THAT program will be more stable, easier to use, more functional, and a joy to work on.

  10. hard to identify beautiful code by J.J. · · Score: 3

    The problem with reading source code is that it's a lot like art. Not art the idea, but art the thing. (Writing good code is an art (the idea) but that's not the point)

    Art is enitrely subjective. And the definition of good code is subjective. You realize this, and state that you're not interested in what defines excellent code. But we do agree that to find excellent (to you) code, you're going to have to dig through a lot of good (to others) code before you find that gem. Which leads to the next problem...

    Art takes study to fully understand. And again, excellent code takes study to fully understand. Some will say that the ability to understand code quickly is an element of excellence, but this goes back to the first point, that art is subjective. Perhaps someone else places versatile and consistent APIs across a tool set above readability. Programmers are always making trade-offs between the relative incline of the learning curve and the power of the interface. (windows vs. unix, for example)

    You can continue the analogy for a while, but these two combine to make a situation where you're going to have a tough time finding good code. You'll get tons of submissions of what excellent code is, but to make that distinction yourself, you're going to have to study each case in-depth.

    Good luck.

    J.J.

  11. www.altivore.com by RobertGraham · · Score: 3
    I wrote a piece of code in just a weekend that emulates the functionality of Carnivore. Because it was a rush job, I wouldn't call it particularly artful, but one of the "artful" things is that it compiles on Linux, Solaris/SPARC, and Windows (yes, Windows) with identical functionality but no platform-specific #ifdefs.

    The reason I think this is artful is that people tend to write code that runs only in their own platform. The fast majority of Linux code I see will not compile/run on a Solaris/SPARC system. Likewise, the Solaris/SPARC code rarely runs on Linux. Throwing Windows into the mix makes things even tougher.

    For example, one of the chief problems is that the old *(int*)p problem. If you are lucky, you simply get a byte-swapped value; if 'p' is unaligned, your program will actually crash (it's a RISC thing).

    When deal with external data structures (network protocols, binary files), most programmers think it is "elegant" to map structures on top of pointers. In reality, it is one of the most evil/ugly things you can do to code. One of the prettier pieces of code I've seen recently actually had a comment /*struct are for weenies*/ (meaning the structure-mapping process, not internal data structures). Dealing with such data one byte at a time sure look ugly to the uninitiated, but it really is the prettiest way.

    In any case, one of the reasons I'm posting this is because I don't post much open source, and therefore don't know much about what other people find ugly. I would be interested in hearing your comments about the source on www.altivore.com. Please send e-mail to altivore-comments@robertgraham.com.

  12. TeX by cyrusp · · Score: 5

    Jargon file says it best:

    TeX has also been a noteworthy example of free, shared, but high-quality software. Knuth offers a monetary awards to anyone who found and reported bugs dating from before the 1989 code freeze; as the years wore on and the few remaining bugs were fixed (and new ones even harder to find), the bribe went up. Though well-written, TeX is so large (and so full of cutting edge technique) that it is said to have unearthed at least one bug in every Pascal system it has been compiled with.

  13. The Story Of Mel by Eight+Star · · Score: 5

    For all of those who haven't read it, or want to again, this is a good story about cool code, and a cool coder.
    This is the Google search I found it with.
    The real Eight Star misses Technocrat.

    --

    lsmvcprm.com, Tools for geek power
  14. Hello World Seven Ways by amnesty · · Score: 4

    This really got my geeky juices excited when I saw this. One piece of source code that could compile/run unchanged into 7 different languages. Listed in the source they are: ANSI COBOL, ISO Pascal, ANSI Fortran, ANSI C (lint free), Shell script (GNU Bash, Ksh, sh), PostScript, and 8086 machine language. No matter which you use, the magical words "Hello World" will appear!

    Click here for the link.

  15. Y-Combinator...... by ndfa · · Score: 3

    This is in my mind some really really sexy code.
    I guess you can call is OSS, you see it in almost every Programming Language book that uses scheme or something like scheme/lisp.... to see what it does check out Y-Combinator Derivation . So the basic idea is to be able to have a recursive func. that does not have a name.....

    (define Y
    (lambda (m)
    ((lambda (f) (m (lambda (a) ((f f) a))))
    (lambda (f) (m (lambda (a) ((f f) a)))))))


    --
    Non-Deterministic Finite Automata
  16. 34 Line Web Server by Baldrson · · Score: 3

    Check out the 34 line web server written by Rick Klement, the best Perl programmer I've ever known, who says of it:

    I wrote this after seeing a small HTTP server that took ~650 lines of C. I thought it would be an interesting challenge to try for a ten-to-one reduction. Not only did I exceed that, but the ~650 line server did not do POST type CGI's, which mine will.

    This server (which I name 'ws') has been quite useful. I use it for CGI testing, it's much simpler launching 'ws' with all parameters given on the command line than modifying an Apache conf file and firing the new Apache server up.

    'ws' takes four arguments on the command line,
    ws port_number doc_tree_base cgi_tree_base cgi_location
    but they all have defaults. I usually fire it up with
    ws 80 . .
    and then fetch plain docs from machine/somedoc.html and CGI's from machine/cgi-bin/somecgi.pl

  17. Emacs Source Made Me Decide to Remain a Programmer by goingware · · Score: 5
    I was in and out of my University physics studies a number of times, and having a generally bad time, because of a serious illness, and at some point decided I should get out and get a programming job because I figured I'd be better at that than school.

    I didn't really know how to program, I knew a little FORTRAN, C and Basic from doing data analysis during summer jobs, and I didn't really like it all that much. I used to really have to struggle to spend several weeks writing a 500 line program, and I'm sure I'd be embarrassed if I had to look at the source code to those programs today.

    I figured I'd program for a while because it paid the rent (I was making $20k a year doing Sun administration and writing image processing software), but when I figured out what I really wanted to do for a living I'd quit programming and get a real job.

    That was in 1988. Then some consultant visited and installed GNU Emacs on our machines (two Sun 3/160's, one diskless, both with terminals and no workstation monitor, but with frame grabber cards and NTSC color monitors). He explained about the GNU manifesto.

    I thought it was pretty cool but didn't see it affecting me personally in a big way. I was mostly annoyed that I had to wait up while the consultant installed the software on what was supposed to be my day off while a ladyfriend was visiting from away.

    Then my friend Jeff Keller, who went to MIT for a while and vaguely knew Richard Stallman, spent an evening with me singing the praises of Emacs. What I really wanted was VI with macros you could program to include conditional branches, and he said it had all though and much much more.

    So I learned to actually use Emacs, and soon learned that it was quite extensible, but it wasn't made too clear how to extend it. The online manual was useful mainly to people who already knew what they were doing.

    So I read the source code. One thing I was interested in doing was writing C functions that were callable from Emacs lisp as lisp functions. There are many such functions built into Emacs (usually for performance) and you can add your own. There's this big DEFUN macro that even makes the C API look like Lisp.

    I learned that and a lot more. I learned what an eloquent statement of software architecture Emacs is.

    I learned that there really was something worth my while doing in the way of software.

    I wanted to write a program like that someday. Not another big editor, but a program that would someday strike other young programmers the way Emacs struck me.

    During the course of reading the source code, one day I stayed at my terminal 24 hours straight, arising only to get coffee and use the restroom, not even eating. I only realized how much time had passed when I started to fall asleep.

    That was when I started to take programming seriously. I began to put serious effort into studying programming, and studying it deeply.

    For example I would read Knuth's The Art of Computer Programming on the bus on the way to work and I would stay up all night after work learning to program better on my Macintosh at home.

    For many years I selected all of my jobs based mainly on what I could learn from them.

    I've become a very skilled programmer. You can see this from my consulting business website, my resume (on my resume the place where I first encountered Emacs is the Programmer job at Verde Technologies) and my programming tips pages.

    So in a very direct and profound way I owe it all to Richard Stallman and Emacs.

    I still haven't written my great program yet. I don't even know what it will be. One project I've worked on peripherally is the ZooLib cross-platform application framework and a project I've just started up but not gotten too far with yet is the Linux Quality Database.

    I did finally get my B.A. in Physics, from UC Santa Cruz, but only after being out of school working at a programmer for a number of years.


    Michael D. Crawford
    GoingWare Inc

    --
    -- Could you use my software consulting serv
  18. The most beautiful code I've seen this week... by Error27 · · Score: 4

    can be found right here.

    It's cool because it's really small.

    In fact I think it's the smallest program possible with an ELF binary. About an eight of the size of the excecutable created if you use some kind of fancy-schamcy assembler. And a 50th the size of the same program created by gcc.

    darn cool if you ask me.

  19. This question is a bit too vague by Triscuit · · Score: 5

    I think the question can really only be answered to applying it to a particular task.

    There are almost always good solutions to a certain task that can be considered good.

    Next thing that must be done is to define "Good Code". I'm sure everyone has their own opinion as to what good code is;

    Readable, Well Commented, Efficient Algorithm, Proper Naming Conventions, Follows Appropriate Documented methods, etc...etc...

    I'm sure there are hundreds others!

    Perhaps a question like "What defines good code" would still be only slightly more beneficial to those reading the posts.

  20. IJG, ZLIB, BZIP2 by istartedi · · Score: 3

    Not so much the code itself, but the APIs are easy to use, they're highly portable, and very free. I wish I could say libpng, but it took a little bit too long to figure out how to make it do what I wanted. Maybe that was just me though. There was some trial and error involved. Let's hear it not only for "beautiful code" but the entire package being well designed and easy to use.

    --
    For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
  21. Re:The most beautiful piece of code... by garett_spencley · · Score: 3
    How about:

    msg:
    .string "Hello, world!\n"

    .globl main

    main:
    pushl %ebp
    movl %esp,%ebp
    subl $8,%esp
    addl $-4,%esp
    pushl $14
    pushl $msg
    pushl $1
    call write
    addl $16,%esp
    xorl %eax,%eax
    jmp return

    return:
    movl %ebp,%esp
    popl %ebp
    ret

    ????

    I know it's not indented... I tried... Darn html.. Oh well...

    --
    Garett

  22. Is anyone taking this seriously? by sv0f · · Score: 4

    Beautiful code is a subject worth contemplating, not speeding by with the standard crap answers above. Here are two quite-different places to find beautiful code:

    (1) The "Programming Pearls" books by Bentley.
    (2) "On Lisp" by Paul Graham

    Also, Here are some quotes of relevance:

    The [benefit] which rhyme has over blank verse...is, that it bounds and circumscribes the fancy. For imagination in a poet is a faculty so wild and lawless, that, like an high-ranging spaniel, it must have clogs tied to it, lest it outrun the judgment. -- John Dryden

    The central task of a natural science is to make the wonderful commonplace: to show that complexity, correctly viewed, is only a mask for simplicity; to find pattern hidden in apparent chaos. - Herb Simon

    The mathematician's patterns, like the painter's or poet's, must be beautiful; the ideas, like the colours or the words, must fit together in a harmonious way. Beauty is the first test; there is no permanent place in the world for ugly mathematics...It may be very hard to define mathematical beauty, but that is just as true of beauty of any kind -- we may not know quite what we mean by a beautiful poem, but that does not prevent is from recognizing one when we read it. -- G. H. Hardy

    Joseph LaGrange..."believed that a mathematician has not thoroughly understood his own work till he has made it so clear that he can go out and explain it effectively to the first man he meets on the street." -- E. T. Bell

    When judging a physical theory, I ask myself wether I would have made the Universe in that way had I been God. -- Einstein

    Beauty is the proper conforminty of the parts to one another and to the whole. - Hesienberg

    There is no excellent beauty that hath not some strangeness in the proportion! - Francis Bacon

    Simplex sigillum veri - The simple is the seal of the true. And Pulchritudo splendor veritatis - Beauty is the splendour of truth. - S. Chandrasekhar

    The Scientist does not study nature because it is useful to do so. He studies it because he takes pleasure in it; and he takes pleasure in it because it is beautiful. If nature were not beautiful, it would not be worth knowing and life would not be worth living... I mean the intimate beauty which comes from the harmonious order of its parts. -- Poincare

    My work always tried to unite the true with the beautiful; but when I had to choose one or another, I usually chose the beautiful. -- Hermann Weyl

    Beauty is truth, truth beauty - that is all Ye know on earth, And all ye need to know. -- Keats

    There are some great men of science whose charm consists in having said the first word on a subject, in having introduced some new idea which has proved fruitful; there are others whose charm consists perhaps in having said the last word on a subject, and who have reduced the subject to logical consistency and clearness. -- J. J. Thomson

    Do you know we're sitting on 4 million pounds of fuel, one nuclear weapon, and a thing that has 270,000 moving parts built by the lowest bidder? Makes you feel good, doesn't it? -- Steve Buscemi ("Rockhound") in "Armageddon."

  23. Who is Mel? by TheVet · · Score: 3

    From the Jargon Files: Mel's full name is Mel Kaye. He is refered to in the LGP-30 manual as "Mel Kaye of Royal McBee who did the bulk of the programming [...] of the ACT 1 system".

  24. Wrong approach by blamario · · Score: 3

    Gosh, this is really a hard question as you can see from the apparent lack of enthusiastic answers. If only you asked where can you find BAD, AWFUL code I can guarantee there would be a lot more links. I mean, there are movements devoted to producing as bad code as possible. Take a look at Obfuscated C Code Contest. You can learn from negative examples as well, and they are much easier to find.

  25. CircleMud by slugo · · Score: 3

    http://www.circlemud.org I had fun intalling this on freebsd and getting it to run. You can open the code and make mods to the mud and enjoy playing your mods. Apply the patches from the ftp site. Others can come in and enjoy your mods. I learned alot about C programming from modifying this software and had fun playing with the mods I created. For instance, mod the software to have Puff roam around town instead of hanging out in Limbo. RO mud did this. Is it still around?

  26. id software: doom, quake by eulevik · · Score: 5

    The source code to id software's doom and quake is the nicest real-world code that I have seen. Knuth's TeX, especially in book form, is also worthwhile.

  27. Re:What kind of question is that? by kilgore_47 · · Score: 3

    I'm inclined to disagree. Code can be an art form, and if you dont agree you probably arn't a programmer. I wish I could write code decent enough to post under the 'beautiful' subject here, and I would tend to respect those who can...

    --
    ___
    The way to see by faith is to shut the eye of reason. --Ben Franklin