Live data from Hacker News

Ask HN: What are your favorite examples of elegant software?

news.ycombinator.com

401–410 of 422 posts

Re: Ask HN: What are your favorite examples of elegant software?

#402

Earlier quoted context omitted.

Lots of people seem to use tmux instead of screen, but I can't see any great advantage to it. What am I missing?

Nothing, necessarily. Primary initial motivation for tmux seemed to be to create a BSD-licensed "screen" for the OpenBSD userland. In any event, tmux quickly appeared in NetBSD's package collection and I was an early user. Comparing the source code is where I saw a difference. Maybe I am just dumb but I found the tmux approach was easier to comprehend and I could edit tmux source easily whereas I found screen was mor…

Right. I wouldn't call screen "elegant", which is the point of this thread, though it has its moments.

Re: Ask HN: What are your favorite examples of elegant software?

#403

Earlier quoted context omitted.

The CLI is so confusing that Stackoverflow has a bunch of questions for things that should be easy or trivial by default. Last thing I would call git is "elegant". https://stackoverflow.com/questions/tagged/git?tab=Votes

I knew there would be people commenting on this. But I don't think something has to be intuitive for newcomers to be elegant. There are also posts here mentioning vim, which to most people is weird and useless at first. Some tools takes effort to understand, but once you put in the effort, they become tremendously powerful. I would say that they are elegant in that they allow you to do something otherwise difficult i…

> I would say that they are elegant in that they allow you to do something otherwise difficult in an effortless and obvious way.

But this CANNOT be said about git! For example [1]:

-----

In Git you can merge with an unrelated repository by doing:

> git fetch

> GIT_INDEX_FILE=.git/tmp-index git-read-tree FETCH_HEAD

> GIT_INDEX_FILE=.git/tmp-index git-checkout-cache -a -u

> git-update-cache --add -- (GIT_INDEX_FILE=.git/tmp-index git-ls-files)

> cp .git/FETCH_HEAD .git/MERGE_HEAD

> git commit

Those commands look quite arcane to my eye. In Mercurial we do:

> hg pull --force

> hg merge

> hg commit

-----

So in a sense you are right, that's exactly the point of contention. However, simple (and hard) things in Git are done in a complicated and non-obvious way, which require you to memorize a bunch of commands and flags which require understanding the internal implementation of git. There are much easier and intuitive ways of doing version control, and Mercurial proves it.

As a side note, I can't be bothered to look it up right now but iirc even Torvalds said that originally Git's CLI was not actually meant to be used by end users (rather, another abstraction layer on top would provide a friendlier approach to version control). But people ended up using it as it was, for various reasons.

[1] https://stackoverflow.com/a/892688/1780726

Re: Ask HN: What are your favorite examples of elegant software?

#404
post #365

Earlier quoted context omitted.

I agree that the concept behind git is powerful and elegant. I very much disagree that the implementation of git is elegant. For example: how many things does `git checkout` do? And I still don't understand what the point is of having a staging area. Or why I need to edit files in order to provide Git with instructions on what to do when it rebases. Or why adding hunks is so much more difficult than adding complete f…

> I still don't understand what the point is of having a staging area. Nor do my coworkers who keep committing whitespace changes and machine-specific configuration changes unrelated to the tasks at hand. For a more serious answer: I find it extremely useful to be able to control what goes exactly into each commit. Sometimes I refactor more than one part of the code at the same time. If one part passes tests and anot…

You would still be able to do that without a staging area by having `git commit` take roughly the same arguments as `git add`. So instead of running `git add foo bar baz` followed by `git commit`, you'd just write `git commit foo bar baz`, and it'd launch $EDITOR for the commit message.

My understanding is that other distributed version control systems, such as Mercurial or Bazaar, take a similar approach to the above.

Re: Ask HN: What are your favorite examples of elegant software?

#405
Adobe Photoshop around v3/4/5 (newer versions may be as good or better, but I haven’t used them)

Microsoft SQL Server 7 or later

NextStep

BitTorrent (more the protocol, but could also apply to any good implementation)

JetBrains software (pretty much any of it)

Think Pascal

ZFS

OS/firmware in Nokia “slab” phones from the late 90’s

StarCraft II, original Tetris, original SimCity (since all the cool kids are suggesting games)

Re: Ask HN: What are your favorite examples of elegant software?

#406

Adobe Photoshop around v3/4/5 (newer versions may be as good or better, but I haven’t used them) Microsoft SQL Server 7 or later NextStep BitTorrent (more the protocol, but could also apply to any good implementation) JetBrains software (pretty much any of it) Think Pascal ZFS OS/firmware in Nokia “slab” phones from the late 90’s StarCraft II, original Tetris, original SimCity (since all the cool kids are suggesting…

Why MS SQL Server in particular as opposed to a generic SQL database? (not criticism, just curious)

Re: Ask HN: What are your favorite examples of elegant software?

#407

The things app https://culturedcode.com/things/ , even though it's just an elegant TODO app something drove me to buy the iPhone and Mac versions. Some time ago I spent a good amount of time looking for a development stack that allowed me to just build stuff. I ended up trying and deciding on Laravel Jetstream with InertiaJS https://jetstream.laravel.com/2.x/stacks/inertia.html . Laravel was easy enough already to ju…

I love Things, and for a long time used it every day. I just can't get behind their pricing model though, the desktop version in Australia is $80 which is outrageously expensive for a TODO app that can largely be replaced with the slightly inferior but free Reminders app.

That’s even less attractive when you consider that you have no idea when they will switch to a new version number and ask you to pay again.

Things 3 have been out for a long time now so personally I wouldn’t take the risk and would rather wait for Things 4, so that my payment lasts some time.

Re: Ask HN: What are your favorite examples of elegant software?

#409

Stardew Valley! I always marveled at how it was a one man team, and everything from the graphics to the game systems seemed to work well. I haven't seen the code base or anything, so I am not sure if this is 'elegant', but my assumption is that for one person to put out that kind of work, some things have to be going right in the design.

I second this. It is amazing the level of thought that went into the game design.

Re: Ask HN: What are your favorite examples of elegant software?

#410

Signal - The elegance here is the "Privacy-first Design". Every feature and code for Signal messenger is designed on collecting as little (or no) data as possible and it is an essential tool for folks like me who are tired of having tracking and ads nonsense in their most-used apps.

Can you create an account without a phone number? Last time i checked this wasn't possible and is everything else than "Privacy-first Design" or as you said "Every feature and code for Signal messenger is designed on collecting as little (or no) data as possible". Here in Germany at least it's not possible to register a new mobile phone number without your identity connected to it.

Session, and I believe Briar, allow this.
Post reply on HN