
Ask HN: What is the best-designed software you've used? - mean_joe
All things considered, when someone asks you this question which software comes to your mind immediately?
======
olooney
LLVM is quite impressive in terms of software architecture. The use of IR
decouples everything and allows optimization passes and backend (machine code
generation) to be shared across languages. This also hugely lowers the barrier
to entry for designing a new language, so we get Rust, Swift, Julia, etc.
We're undergoing a kind of mini renaissance in compiled languages at the
moment, which I directly attribute to the success of LLVM's design.

[http://www.aosabook.org/en/llvm.html](http://www.aosabook.org/en/llvm.html)

------
rectang
The UTF-8 encoding. It's optimal in so many ways it's like a quadruple bank
shot. Here's a 1997 paper talking about some of its properties:

[https://www.sw.it.aoyama.ac.jp/2012/pub/IUC11-UTF-8.pdf](https://www.sw.it.aoyama.ac.jp/2012/pub/IUC11-UTF-8.pdf)

Between UTF-8 and Unix, Ken Thompson is my engineering hero.

~~~
O_H_E
Don't forget Plan9

------
com2kid
Hands down, Rhino3d ([https://www.rhino3d.com/](https://www.rhino3d.com/))

It is an amazing piece of 3D modeling software. After having used it, other 3D
modeling software seems software seems clunky in comparison.

Rhino3D is the best mixture of command line, auto complete, and a mouse based
interface that I have ever seen. Lots of CAD software combined the two, but
Rhino does an incredible job. The commands are also incredibly well named, to
the point that you can often just guess what you want to do, and the command
is right there.

If you mean well architected, the RTOS that ran on the Microsoft Band is some
of the best code I'll probably ever have the pleasure of working with. The
lead architect on it reviewed every single code submission to ensure
consistency in quality and style. Imagine hundreds of thousands of LOC with
all the variables being well named, the same conceptual layout of code in
every source file, all written against an incredibly well designed run time.
The abstractions in the RTOS were all pure and consistent, you didn't run into
surprises.

In terms of UI, a lot of specialty software actually falls into this category,
it just has a learning curve, but the software is all driven around a single
purpose and once you have learned it, that shows. Photoshop is actually like
this, once you have learned it, the UI is incredibly powerful and the
different abstractions used are at the right level of complexity to get the
job done. (No idea how that code base looks though... :) )

The WPF Framework in the .NET Micro-Framework is another bit of good code. I
think I am one of a handful of people to ever use it, but wow, is it a nice
graphics API to write against. (Super limited, but that is kinda the point, it
kicks butt at its one job!)

~~~
panic
The company behind Rhino, Robert McNeel & Associates, has also managed to stay
small ([http://www.mcneel.com/contact](http://www.mcneel.com/contact)) and
user-focused (from
[http://blog.novedge.com/2007/03/an_interview_wi_3.html](http://blog.novedge.com/2007/03/an_interview_wi_3.html)):

 _> In the last few months, there has been a lot of talk in the CAD community
about proprietary file formats and how companies protect them. I would like to
know how a CAD system like Rhino was able to succeed with a file format that
is open, documented, and free (OpenNURBS)._

 _The CAD users need and want open high-fidelity data exchange. Unfortunately,
open file formats are not in the best interest of investors. Investors would
rather bet on companies that have a protected proprietary market. Unlike most
CAD companies, we are not a public company nor are we venture capital funded
with plans to be public. That means that our only customer (and source of
income) is our users._

 _> Rhino users had to wait a few years between Rhino 3.0 and the new Rhino
4.0. In the mean time, they enjoyed a continuous stream of improvements and
bug fixes delivered to their PCs by the Rhino automatic updating system. Based
on how well this system has worked, are you considering moving from a release-
based system to some sort of subscription-based system?_

 _No. Again, those systems are usually in the best interest of the investors.
Our users have the luxury of not having to buy upgrades until we provide
something that is actually useful to them. In addition, all current users get
to be involved in the development process are every stage, not just for a
couple of months at the end. Since we don’t pay any attention to what other
CAD companies are doing, we rely on the users to provide the direction for
each new release._

~~~
com2kid
Rhino is such a joy to use, I honestly wish I had a reason to do some 3D
modeling just so I could justify purchasing it, and have an opportunity to use
it.

An absolutely amazing bit of software.

------
y-c-o-m-b
Winamp. It really whips the llama's ass.

~~~
swingline-747
Winamp was my fav after AcidTracker.

Warez/demoscene apps were usually awesome with badass visuals and music.

------
signoftimes
There a lot of great software; but first thing that came to my mind
immediately was Redis. From documentation and SDKs to the focus and self-
imposed constraints, I love pretty much everything about it.

~~~
swalsh
I took a peek under the covers a while ago, and the bit that really stood out
to me was the networking code. It's hard to do right.

------
whitepoplar
Consumer products: Foursquare, iA Writer, Dropbox, Basecamp, Tinder, Tweetbot,
Citymapper, Fantastical, Instapaper, Hotel Tonight, Cash App, 1Password,
youtube-dl, Mailbox RIP :'(

Dev products: Postgres, Heroku, Elixir, DigitalOcean, Tower (git GUI), Sentry

------
fancyPantsZero
Ableton Live.

The way the UI design packs tons of control into a simple, flat interface. The
way everything happens in realtime. The way everything can be routed and
automated and chained.

Even though I'm a shitty musician, I love this program so much.

~~~
meowface
I'd argue Bitwig is even better designed. It was started by some employees at
Ableton who split away from it.

------
groestl
I like PostgreSQL, especially when you include documentation, software
development and release process in the definition of design.

~~~
kaixi
Their commit messages are the golden standard of commit messages.

------
superasn
Paint shop pro version 5.0 (by Jasc). I don't know when it was made but it
still sits on my desktop till today and is more useful and handy than any
image editing software I've used.

It can handle almost all image formats, loads up in less than 1s and
everything is so fast and breezy. The Ui is super intuitive that I've never
had to once search for help.

~~~
godot
Thought I was the only one! :P It's from the late 90s. I myself use PSP6
instead of 5. I don't really remember what the differences were anymore. My
only complaint about it is it doesn't do transparent PNGs well (or at all),
whether it's reading or writing one. As far as features/functionality/UI
though, I like it more than anything else (Photoshop, Gimp, Pixlr on web,
etc.). For example, I can never figure out for the life of me how you
rectangular-select an area, and just move that area in all those other
programs (they always try to move your selection and not the content inside
the selection; whereas the default move operation in PSP is to move the
content). But then again I'm a dev, not a designer, and I do pretty simple
stuff with a graphics program.

------
btown
Pivotal Tracker. It's opinionated, but because it can rely on those
assumptions, it strikes this incredible balance between information density,
on-the-ground usability, and the ability to have a birds-eye-view of the risks
of a software project. A diligently updated Pivotal project is a thing of
beauty and confidence and inspiration. One size does not fit all (and
certainly, if you want to give your team the opportunity to work on more
difficult-to-spec, research-oriented, or experimentation-dependent projects,
it's far from ideal), but for typical web applications, it's industry-
defining.

Worst-designed software: Oracle PeopleSoft Campus Solutions -
[https://www.google.com/search?q=peoplesoft+campus+solutions&...](https://www.google.com/search?q=peoplesoft+campus+solutions&source=lnms&tbm=isch)
. A case study in "how many workflows can we fit into one infinitely
customizable software product without hiring a UX or UI designer to give any
thought to a single one of them? Oh, and how can we make it as non-performant
as possible to do the most common tasks?" I understand the siren call of "an
interface that works for every workflow imaginable" \- but unless you build
design-customization tools on top of it, it will be a hated monstrosity.

Fun story: my undergraduate college used this, and I got a highly competitive
internship after an interview where I spent the majority of the time ripping
apart exactly how bad this software was, and how I would fix various aspects.
I imagine no person motivated enough to solve those problems has any desire to
work for Oracle, so the problem will persist for at least another century.

~~~
m90
Pivotal Tracker is so incredibly good, it's a shame it's kind of niche
(compared to Jira).

When Jira gives you the mightiest of tools to postpone and reconsider
everything into oblivion by discussing and custom-workflowing it in epic
Cinemascope, Pivotal Tracker will give you just that little amount of space
for collecting what you need, and then get things shipped.

It may be weird, but a company using Pivotal Tracker has a big +100 from my
side when looking for a job.

------
brunosutic
\- Unix command line.

\- Vim's commands and keybingings interface (not the UI).

~~~
sanityvampire
>Vim's commands and keybingings interface (not the UI).

I recently decided to finally get good at Vim, but the UI, being text-only,
can be charitably described as "awful."

Solution: Sublime Text 3 with the NeoVintageous[1] plugin. Takes a beautiful,
highly customizable, extensible editor and adds most of the Vim bindings. I
can do all of my main development work in a gorgeous editor, and when I have
to hop onto an unfamiliar machine, I'm still good at using Vim.

[1]
[https://github.com/NeoVintageous/NeoVintageous](https://github.com/NeoVintageous/NeoVintageous)

~~~
canhascodez
You may want to check out SpaceVim. I've been developing on a remote machine
lately; before I was using ST2/3\. I could have continued to do so using
(e.g.) sshfs, but I think that I'm probably more productive this way. One of
my favorite features so far is that the terminal is bound to SPC+', and that
lets you easily yank and paste and navigate using the vim tools. It's not
quite as pretty as ST or Atom. Powerline fonts and a 24-bit color terminal
emulator are recommended.

[https://github.com/SpaceVim/SpaceVim](https://github.com/SpaceVim/SpaceVim)

------
comboy
What do you mean by well-designed? API, UI, performance or the internal
structure?

------
dustingetz
Datomic, Rich Hickey's postgres killer [http://www.dustingetz.com/:datomic-in-
four-snippets](http://www.dustingetz.com/:datomic-in-four-snippets)

~~~
twocats
yes to Datomic, also the JVM but Smalltalk-80 takes the prize for me.

------
androidgirl
Ah, definitely the suckless suite. Runner ups are probably spectrwm and
Vagrant, possibly Ansible.

I absolutely love dmenu, and the suckless philosophy is great. Dmenu ties in
great to spectrwm, which is a simple tiling window manager that has sane
defaults and just lets me work.

Vagrant makes my life so much easier, likely it's saved me hundreds of hours
of my time.

And I find all of the Red Hat documentation to be fairly good where it
matters, even if I prefer using Chef over Ansible in complex cases.

------
1_800_UNICORN
Developer tools: Twilio, Heroku Consumer software: TurboTax

I know that TurboTax is a controversial choice because they are incentivized
to fight to keep tax law complicated, but if we ignore the political context,
their software works beautifully well. It never does anything I don't expect,
when I need more time on a section it's easy to drop out and revisit later,
and I always feel confident at the end that I've filled out my taxes
correctly.

------
O_ct_O
PHPStorm has made me a lot more productive when it comes to building sites.

It has so many amazing plugins and the ability to sync settings AND plugins in
combination with VCS allows you to pick up your project from anywhere. With a
plugin like Key Promoter X you're well on your way to developing without
taking your hands off the keyboard.

Built in terminal is great, no more alt+tabbing and cd'ing to the project
directory.

It's only like $9/month on JetBrains

------
AnimalMuppet
In terms of UI, it was the FrameMaker desktop publishing program. A beautiful
implementation of the idea of "progressive disclosure".

~~~
pavlov
Was that on classic Mac OS? I’ve long wanted to take a look at FrameMaker. I
wonder if it’s easily available in abandonware somewhere for an emulator
tryout.

~~~
AnimalMuppet
It was on an SGI workstation, IIRC.

------
cmroanirgo
Considering the obvious click-bait title, there are fundamental problems with
the question imho.

How can you know how well some software is _designed_ by _using_ it? You
can't. You need to see the code, to look at its specs, etc.

Of course, the OP might be taking about UX, rather than the other facets of
software design, but even then there's a large disconnect from the _design_
and the _use_.

As a user, all you can do is comment on metrics that are important to you:
usability, speed/responsiveness, accuracy, stability, originality... At best,
this might hint at the result of good design, but not always.

PS: My actual answer to all of this is: Software design can always be improved
upon. There is nothing that I've written that I can't improve upon/do better
after a re-design.

------
travisjungroth
Garmin 430/530\. It's an in-panel GPS NAV/COM for small airplanes. The UI is
focused on predictability to the cost of style and even intuitiveness. It also
has a level of reliability that makes a joke of any web app.

[http://www.kingschools.com/otherimages/430_530_panel.jpg](http://www.kingschools.com/otherimages/430_530_panel.jpg)

------
hdoomsday
Varnish

[https://varnish-cache.org/trac/wiki/ArchitectNotes](https://varnish-
cache.org/trac/wiki/ArchitectNotes) and [https://varnish-
cache.org/docs/6.0/phk/firstdesign.html](https://varnish-
cache.org/docs/6.0/phk/firstdesign.html)

------
ForrestN
Basecamp. The level of care that goes into how it feels to use the product is
extraordinary and has made my life much better.

~~~
andrei_says_
It’s awesome to use a product designed by people who are genuinely excited
about it, about design, about making collaboration better.

------
troydavis
Other than apps I’ve designed for my own use… Enchant is the first thing that
comes to mind: [https://www.enchant.com/](https://www.enchant.com/)

It’s a ticketing/customer support Web app. A hundred tiny UX decisions make it
much more pleasant than similar apps.

------
Serow225
SQLite.

------
guessmyname
Unix… but the definition of _" well-designed"_ may differ from person to
person.

------
krylon
From the UX perspective of a long time user: GNU Emacs, I guess. AFAIK, its
general architecture has not changed much in 30+ years. It was meant from the
get-go to be extensible, a decision that has proven wise many times over.

------
zarify
Affinity’s Designer and to a lesser extent Photo. They’ve done a great job at
reducing the complexity of illustration and photo editing and making it just
really pleasant to do (particularly compared to Illustrator for example).

------
dugluak
VueJs - from 0 to a basic working application literally in 2 minutes. Same
with older versions of AngularJS, but not sure whatsup with the new Angular JS
though (simply called as Angular) it is not easy to get up and started.

------
soulchild37
Git Tower, its design and performance (real native Mac app) is so much better
than other competitors that I begrudgingly subscribed to its annual plan
because other Git GUI app doesn't even come close.

------
uvesten
One of the earlier versions of iMovie. I had zero knowledge of movie editing
when opening it for the first time, and managed to produce a reasonably well
edited short movie in about two hours. Magic.

------
kaixi
Redis and Postgresql.

------
swingline-747
FlowDock is/was the best of the chat apps pre-Slack due to threading, search
and tagging that worked. HipChat/Campfire were scrolling hell.

------
mikeleeorg
I used to love Instapaper, but then migrated to Pocket. Both those kinds of
apps serve as both article bookmark managers and article readers.

~~~
andrei_says_
Is it possible to migrate content from Instapaper to pocket? Especially
content no longer available on the web?

~~~
mikeleeorg
Sorry for the late reply. I believe you can do that:
[https://getpocket.com/import/instapaper/](https://getpocket.com/import/instapaper/)

------
willpewitt
Linux, the whole software philosophy is quite pure.

~~~
O_H_E
It is called: The Unix Philosophy
[[https://en.wikipedia.org/wiki/Unix_philosophy](https://en.wikipedia.org/wiki/Unix_philosophy)]

That's not to say that Linus is not a great engineer

------
scriptnull
Notion ([https://www.notion.so/](https://www.notion.so/)) and Telegram

------
andrei_says_
The Libby iOS app for access to public library content.

Also wins for best software funded by my tax $$.

------
throwaway8879
Ableton Live.

------
dagoat
Ambiguous question but off the top of my head: SendGrid, Stripe, Heroku,
GitHub, Redis

------
salutonmundo
Probably, VLC media player. It does _everything_ I need a media player to do.

~~~
iopuy
If we are talking about UI design, in my opinion VLC falls short. I still
can't figure out where the setting is to turn off the title overlay at the
beginning of the video. Does anyone here know?

------
jbob2000
This will be controversial, but my vote is for Uber. I am constantly surprised
at all the nifty features they have tucked away that reveal themselves exactly
when you need them. I'm often using it while I'm busy doing something else and
I haven't had a moment of frustration yet.

------
xtiansimon
Adobe Photoshop and Adobe Illustrator were amazing in their day.

------
keiraarts
Fusion 360! Autodesk did a fantastic job designing it.

------
linker3000
Aldus Pagemaker / Adobe InDesign.

------
prolikewh0a
Pocket Casts

~~~
gtf21
I tried _a lot_ of podcasting apps after Instacast died and PocketCasts was so
far ahead of the competition (and Instacast) that I fell in love with it (and
now many of my friends have it as well). It has almost everything I want in a
podcast app except for being able to search through the episodes (I often
remember an episode during the course of a conversation and want to send it to
someone).

~~~
prolikewh0a
If you didn't know, their web app is another $10 (when I bought it 3 years ago
at least), but it's just as good and syncs.

------
m90
discreet logic flame from around 2001, I think it should have been version 6
or 7

------
gigatexal
Mysql8 and Oracle workbench.

------
jamiegreen
Notion

------
abdullahkhalids
emacs

------
nickjj
\- Stripe's API

\- Shopify for a web UI

------
patriot_prayer
Robinhood Onboarding

------
yesenadam
bash, AWK, TextWrangler, Audacity, VLC, ffmpeg

------
LarryMade2
FoxBase+/Mac

------
ifend
Windows Phone.

------
cerberusss
TCP/IP.

------
rodjomatic
waveapps.com, love the UI

------
nardonne
Bitbucket

------
cuchoi
uBlock Origin

------
nardonne
bitbucket

