4 ms·
I'm seeing a lot of meanings to "beautiful" here, please, let's define what we're talking about. Does "beautiful" means "the code is clean"? If so, the Quake s
by Ace17 11y ago
I'm seeing a lot of meanings to "beautiful" here, please, let's define what we're talking about.
Does "beautiful" means "the code is clean"? If so, the Quake source code is "beautiful", while Duke3D Build engine is "ugly".
Does "beaufitul" means "the code is clever"? If so, gcc, ffmpeg and ODE are "beautiful", and Google's Ninja is "tasteless".
Does "beautiful" means "the code is modular" (I mean "open-closed" here)? If so, VLC is "beautiful", and everything monolithic is "ugly" (gcc, Linux, systemd, LLVM, ...).
Does "beautiful" means "the software performs flawlessly"? If so, the Duke3D Build engine, Quake's engine, and Portal's physics engine are "beautiful", while VLC is "ugly".
Does "beautiful" means "the software embodies a clever concept"? If so, "grep" and "xargs" are "beautiful", and the Windows Batch interpreter is "ugly".
Does "beautiful" means "the software is easy to use"? If so, the Windows calculator is "beautiful", while Mathematica and vim are "ugly".
Does "beautiful" means "the software can be twisted in lots of interesting ways"? If so, dynamic language interpreters are "beautiful", while static language compilers are "ugly".
My point is, any piece of software can be seen as "beautiful" or "ugly".
We have meaningful objective attributes at our disposal, like "simple", "clever", "fit", "robust", "fast", "small", "user friendly"... let's use them!
- wingerlang 11y agoWhat if OP wanted different examples and the explanation why they are beautiful in the posters opinion? Seems like it would get more interesting submission than simply asking for "small" software.
- lucideer 11y agoI completely agree with wingerlang here, and I think the fact that the OP ends with > ... and what makes it beautiful. makes this clear. It's a subjective question deliberately looking to elicit subjective answers, with the point of interest being the individual justifications behind those answers. However, despite my disagreement with your sentiment (calling for a more objective question), you did actually answer the question as well. Thanks for the list.
- ponderatul 11y agoHi, that is exactly what I meant. The reasoning behind it is just as important as what it is your example. Paul Graham says in Hacker's and Painters that “... If there is such a thing as beauty, we need to be able to recognize it. We need good taste to make good things. Instead of treating beauty as an airy abstraction, to be either blathered about or avoided depending on how one feels about airy abstractions, let's try considering it as a practical question: how do you make good stuff?” So I'm really looking for patterns here. 'Clean code' seems to be a characteristic of beautiful software. Another one seems to be ' code is clever ' from what I see. That's all I'm doing here, finding some patterns. So if I would've asked what are some example of beautiful software ( where beautiful means 'clean code') I might've gotten a more focused set of responses, but then I would've missed out on the other dimensions of beautiful.
- vikrantpogula 11y agoAdding to this, I think one should not assume beautiful software and beautiful code to be the same thing. Just like the many dimensions of beautiful, there are many dimensions of "software", only one of which is code. Beautiful software should solve a problem. It should fit in like a cog to empower humans to do lot more things or do things which were harder to do before. Beautiful software includes a lot more things than just code or how code is written.
- eru 11y ago> Does "beautiful" means "the software can be twisted in lots of interesting ways"? If so, dynamic language interpreters are "beautiful", while static language compilers are "ugly". You'd be surprised what people do to static language compilers. C++'s template are turing complete, after all.
- pjc50 11y agoTemplates can achieve "towering soviet concrete brutalist monument to ugliness" levels of ugly.
- kpil 11y agoBest metaphore ever!
- PeCaN 11y agoThat's when you make a nice set of M4 macros that generate C preprocessor macros that expand to templates. To be honest the time I did that it actually helped, which I guess goes to show how elegant C++ templates aren't....
- eru 11y agoYes. I mentioned C++ templates, because I don't want to only talk about Haskell. (People make ghc do interesting things, too. And some of them are even not-so-ugly.)
- munificent 11y agoOne could argue that's precisely because they stuff a dynamic language interpreter inside a static language compiler. :)
- jbms 11y agoThis is a superb comment that illustrates how for a given purpose different quality factors are important. Can anyone recommend resources that try to systemise why these choices are made? Edit: Grammar.
- muzani 11y agoI would define it as something that evokes emotion and admiration. It can be something that makes you calm, angry, disgusted. The more so, the better. Javascript and Windows are great examples of this. Almost always you'd sit there and wonder why anyone would go to the lengths to build this. Lengths can mean that they went to the effort of simplifying a complicated thing or even making a complicated thing absurdly complicated. E.g. I see beauty in the Sydney Opera House, not only because of its form, but because they managed to build a grand opera house in one of the least culturally sophisticated cities in the world. There's just something completely out of place about the Sydney Opera House and that's what makes it so beautiful. Most people think the characteristic roof symbolizes sails, but it's actually an orange peel. It's like a clever prank. When you go back to the Hackers and Painters essay - PG tries to associate the two together. Beautiful hacks are like shortcuts that work. Almost always a great hack does something dumb, but is very effective.