Elegance

74 views
Skip to first unread message

Chris Morris

unread,
Jun 5, 2014, 6:35:46 PM6/5/14
to philosophy-in-a-...@googlegroups.com
I asked the Dave Sims this offline recently, but was curious what others would say. 

We talk frequently about finding elegant solutions in software. How would you define 'elegance' in philosophical terms?

Alex Payne

unread,
Jun 6, 2014, 12:40:11 AM6/6/14
to philosophy-in-a-...@googlegroups.com, chr...@clabs.org

Peat Bakke

unread,
Jun 6, 2014, 12:56:24 AM6/6/14
to philosophy-in-a-...@googlegroups.com, chr...@clabs.org
... That didn't stop generations of philosophers from attempting to wrap their arms around the subjective. ;)

Kant's critique of judgement is a notable example, and applicable here. I'll write up a bit more when I get to a proper keyboard.

--
Peat Bakke
@peat
--
You received this message because you are subscribed to the Google Groups "Philosophy in a time of Software" group.
To unsubscribe from this group and stop receiving emails from it, send an email to philosophy-in-a-time-o...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Simon St.Laurent

unread,
Jun 6, 2014, 7:47:52 AM6/6/14
to philosophy-in-a-...@googlegroups.com, chr...@clabs.org
On Thursday, June 5, 2014 6:35:46 PM UTC-4, Chris Morris wrote:
I asked the Dave Sims this offline recently, but was curious what others would say. 

We talk frequently about finding elegant solutions in software. How would you define 'elegance' in philosophical terms?
 

It's probably not the answer you want, but I gave up long ago on expecting philosophers to have much useful to say on aesthetics.  Even the clearest ideas and terms philosophers suggest seem to pale before the things aesthetically-motivated creators do. 

If I want conversations about aesthetics or elegance, I vastly prefer conversations with practitioners or historians, say William Morris or Christopher Alexander. 

Granted, I haven't read philosophers on aesthetics in a long long time. I do spend a lot of time with notions of craft and virtue, largely with an Alasdair MacIntyre skew - but that just reinforces my opinion that these are better discussed in the specifics of a craft context rather than something broader and more abstract.

Thanks,
Simon St.Laurent
http://simonstl.com/

Steve Klabnik

unread,
Jun 6, 2014, 10:53:18 AM6/6/14
to philosophy-in-a-...@googlegroups.com, chr...@clabs.org
Not to pick on you, Simon, but I have something small to say about

> these are better discussed in the specifics of a craft context rather than something broader and more abstract.

I see philosophy as a sort of 'higher order discipline.' So yes, I
think that discussing the specifics in a craft context makes more
sense, but in order to figure out what 'a craft context' even _is_,
you need philosophy.

This is similar to the recent brouhaha about 'science vs philosophy.'
They're not really opposed, they're just for different things.
Philosophy sets up a scientific context, and then science runs with
those boundaries and limits to find as much as possible.

Peat Bakke

unread,
Jun 6, 2014, 1:02:45 PM6/6/14
to philosophy-in-a-...@googlegroups.com
Regarding Kant and elegance --

Kant had an interesting approach to objectifying the subjective. Like pretty much any philosopher dealing with subjective issues, there are plenty of hand-wavy, "drive a truck through me" arguments that also depend on subjective evaluation ... but his framework for the judgement of beauty is reasonably coherent, and I think it is the most directly applicable to the question of elegant code.

He had four principals to weigh in making an objective judgement of beauty:

- Are you disinterested? Basically stated, if the code you're looking at does *not* solve a problem you're grappling with, then you have the perspective of someone who does not have an emotional or financial stake in how it performs. Kant argues that you cannot make an objective assessment if you are invested in a particular outcome.

- Does the code satisfy universal, objective conditions? We've left personal interest aside, now we're looking for objective qualities of the object itself ... and with code, one of the most obvious is whether or not it compiles/interprets cleanly. :)

- Does the code satisfy it's purpose? This is where we start to grapple with context. To what ends is this code intended? To operate within certain timing constraints? To be maintainable? To solve a one time problem? What is the use case that prompted the code to be written, and does it satisfy that case?

- Finally, if you can clearly state all of the above to someone else, will they *necessarily* agree with you?

It's an interesting set of requirements, and I don't think it's entirely sufficient ... but it provides a reasonably clear framework that has allowed generations of philosophers to fight tooth and nail about the elegance of Kant's arguments. ;)

Fun stuff.

-p

Alex Payne

unread,
Jun 6, 2014, 1:33:49 PM6/6/14
to philosophy-in-a-...@googlegroups.com
And then there's Eco on beauty for more of a historicist approach.

But "elegance" is not beauty. An ugly person could move in an elegant way, or turn an elegant phrase, or wear an elegant outfit well. Ugly code could offer an elegant solution to a problem. Etc. etc. Beauty could be a component of our motive to ascribe elegance to a thing, but it is not independently sufficient. Hence my insistence that the philosophical framework of qualia is probably the most useful for an ineffable concept like elegance.

This discussion makes me think of J, a functional array programming language with roots in APL. Much J code is "elegant" in the dictionary definition sense of "simple and ingenious". But J itself is so alien and unapprochable to the majority of programmers/humans that the act of choosing to solve a problem in J lacks the inherent grace and taste that we associate with "elegance". I can appreciate that an experienced J programmer might find a clever J program elegant, but that mode of expressing code is too alien for me to truly share the sentiment. Elegance being quale, its application is a function of individual experience.

Programmers seem to go through a phase of thinking of some code as "elegant" or "beautiful" once they've learned one or more languages thoroughly and can enjoy the idioms of those languages. I certainly went through that phase, and I'm sure my enthusiasm leaked out into Programming Scala when trying to excite readers about that language's particular approach. But in time, if programmers progress to engineers, they come to appreciate the more concrete aspects of a program, usually in a context that's more informed by the operation of real-world systems. Peat's application of Kant to code feels like it better addresses the more mature engineering mindset.

To unsubscribe from this group and stop receiving emails from it, send an email to philosophy-in-a-time-of-software+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Peat Bakke

unread,
Jun 6, 2014, 1:57:17 PM6/6/14
to philosophy-in-a-...@googlegroups.com
It's fun to get into the semantics of elegance and beauty. I think the two terms are essentially synonymous to me, so I'm curious how you distinguish the two. I'm playing around with the notions of profundity, pleasure, inspiration, mastery, etc. Art theory was one of my favorite courses, and it was a slow motion train wreck when it came to these kinds of distinctions. I still can't look away. Haha.


To unsubscribe from this group and stop receiving emails from it, send an email to philosophy-in-a-time-o...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Simon St.Laurent

unread,
Jun 6, 2014, 9:36:03 PM6/6/14
to philosophy-in-a-...@googlegroups.com
 On Friday, June 6, 2014 10:53:18 AM UTC-4, Steve Klabnik wrote:
Not to pick on you, Simon, but I have something small to say about

> these are better discussed in the specifics of a craft context rather than something broader and more abstract.

I see philosophy as a sort of 'higher order discipline.' So yes, I
think that discussing the specifics in a craft context makes more
sense, but in order to figure out what 'a craft context' even _is_,
you need philosophy.

Not to pick on you, Steve, but that is of course what a philosopher would say.

Unfortunately I don't think it works.  You step up a level of abstraction, and *poof* what you were talking about disappears in a bit of smoke.

You can talk - ala MacIntyre - about craft in a philosophical way, but that conversation is as much or more about the nature of humans as it is about anything a level up. More recent efforts, like Shop Class as Soulcraft (ah, Plato), seem to reinforce that challenge, not ease it.
 
This is similar to the recent brouhaha about 'science vs philosophy.'
They're not really opposed, they're just for different things.
Philosophy sets up a scientific context, and then science runs with
those boundaries and limits to find as much as possible.

I don't even think philosophy should be allowed to set the boundaries on aesthetics.  Science does seem to crave philosophy, though.

Thanks,
Simon

Steve Klabnik

unread,
Jun 7, 2014, 11:39:01 AM6/7/14
to philosophy-in-a-...@googlegroups.com
Fair enough :)

How do you decide what 'craft' is without using philosophy?

Nick Novitski

unread,
Jun 7, 2014, 1:51:02 PM6/7/14
to philosophy-in-a-...@googlegroups.com
Kant's four conditions seem inherently unsatisfiable, which would conveniently support my preconceived belief that "objective beauty" is an oxymoron.

What "objective conditions" can code (or any real object) be subject to?  Compilers are in no way objective: they can vary, they can fail, they can not exist yet (or ever).
On Sat, Jun 7, 2014 at 8:38 AM, Steve Klabnik <st...@steveklabnik.com> wrote:
Fair enough :)

How do you decide what 'craft' is without using philosophy?

Peat Bakke

unread,
Jun 7, 2014, 2:44:04 PM6/7/14
to philosophy-in-a-...@googlegroups.com
Well, whether or not compilation succeeded is pretty straight forward, regardless of the quality of the compiler.

At the end of the build, you can still assert "this code compiled in environment X" or "this code did not compile in environment X."

Similarly, you can assert "this code was formally verified" or "this code is syntacticly correct" ... And those are also verifiable statements, provided a third party has access to the prerequisites required to reproduce the results.

Objective, reproducible, and verifiable conditions are the easiest part of that stack. This is software. :)

--
Peat Bakke
@peat

Greg Borenstein

unread,
Jun 7, 2014, 3:31:50 PM6/7/14
to philosophy-in-a-...@googlegroups.com
To broaden the discussion from elegance specifically, awhile back Alex pointed out that software aesthetics conversations could dramatically benefit from increased literacy in the the aesthetics literature generally, from philosophy to art history and theory.

As an art historian by training, to answer his call I put together a bit of an eccentric intro reading list in this post here:

http://urbanhonking.com/ideasfordozens/2009/04/05/an_aesthetics_reading_list_for/

In addition to the (relatively dry to me) question of objective vs subjective judgement, I think there's a whole suite of important skills in articulating (and understanding) your own taste, from the phenomenological side of examining your own process of perception (covered by Elkins in my list) to the historical dimension of building and resisting teleologies (Greenberg) to the ethical implications of aesthetic judgments (Scarry).

In this list I tried to provide texts that are friendly intros to all of these dimensions.

Hope some here find it interesting.

-- Greg

Simon St.Laurent

unread,
Jun 8, 2014, 1:33:11 PM6/8/14
to philosophy-in-a-...@googlegroups.com
On Saturday, June 7, 2014 11:39:01 AM UTC-4, Steve Klabnik wrote:
Fair enough :)

How do you decide what 'craft' is without using philosophy?

Practice.  Occasionally language. 

Philosophers can certainly discuss craft - the point I'm standing by is that discussions among practitioners don't always survive the transition to another level of abstraction.

Thanks,
Simon

Steve Klabnik

unread,
Jun 8, 2014, 2:05:20 PM6/8/14
to philosophy-in-a-...@googlegroups.com
> discussions among practitioners don't always survive the transition to another level of abstraction.

Agreed!

Evan Buswell

unread,
Jun 8, 2014, 3:45:38 PM6/8/14
to philosophy-in-a-...@googlegroups.com
I'm with Alex, in trying to separate elegance and beauty. As an example maybe more are familiar with than J, Perl 5 classes have a certain elegance to them, but I doubt anyone would call them beautiful (some might disagree with the elegance, too, but this seems at least debatable). In contrast, Ruby classes are certainly pleasing in their consistency, but this seems to me to be more of a beauty made by brute force (or brute fiat) than any underlying elegance.

As far as "phases of thinking," it seems to me that really the phase many programmers go through is a preference for *beautiful* code, rather than *elegant* code, and that really as a programmer sees (intuitively) the distinction between the two and comes to prefer elegance, this is the path to better programming. I'm not sure I'm really disagreeing with Alex as rewording what he said, as there are strong connections between elegance and "the more concrete aspects of a program."

And here, I think, is where this other debate about philosophers vs. practitioners becomes relevant. The separation (and entanglement) in Greek of techne and episteme is at least in part repeated as Plato's fundamental philosophy-founding move: to rigorously separate appearance (or doxa) from knowledge. It should be interesting to us that there is in fact very little in philosophy about "elegance" or "poise" or "grace" (other than in the technical Christian sense). "Elegance" may have more to do with techne than episteme.

Some observations/questions:

* Less conservative/non-self-abolishing philosophy (i.e. the continental tradition) has been trying to overcome the techne-episteme distinction, but this is relatively new (since 1845). Most of the accounts of art and semiotics in this field do not involve an account of aesthetics, and those that do (e.g. Adorno) seem somewhat accidentally related to what we would normally recognize as "beauty." Can elegance be a concept of use here?

* Aesthetics as the underlying point of art has long since been a minority opinion among practitioners. Does the concept of elegance have anything to add to this conversation?

-Evan

P.S. I don't remember how I got on this list, but this piqued my interest so I just stopped lurking. Hi!
Reply all
Reply to author
Forward
0 new messages