Hacker News new | comments | ask | show | jobs | submit login
Ask HN: What is the best-designed software you've used?
50 points by mean_joe 5 months ago | hide | past | web | favorite | 81 comments
All things considered, when someone asks you this question which software comes to your mind immediately?

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.


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:


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

Don't forget Plan9

Hands down, Rhino3d (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!)

The company behind Rhino, Robert McNeel & Associates, has also managed to stay small (http://www.mcneel.com/contact) and user-focused (from 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.

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.

Winamp. It really whips the llama's ass.

Winamp was my fav after AcidTracker.

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

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.

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.

This is my choice too, i love everything about redis!

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

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.

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

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

Their commit messages are the golden standard of commit messages.

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.

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.

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&... . 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.

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.

Nailed it for worst category. Roughly a decade ago when we 'computerized' student orientation program signups, I was in a meeting on collecting payments through that system. There were about a dozen programs new students could sign up for (kayaking trip, etc) and the prices varied from $50 to $5,000. Since these weren't classes and students hadn't started yet, these couldn't be made into classes or there'd be problems with transcripts, GPA computations, having to creatively edit academic programs and so on.

Best proposed solution by people intimately familiar with the system was to have students purchase fake parking spots which were price-equated to match a workable unit to cover the wide range in prices. In other words, choosing to build with Habitat for Humanity was one parking spot, and trip to Ecuador was 100 parking spots. To enforce class size limits, they proposed to make one virtual parking lot per program and assign their number of available parking spots accordingly.

We didn't do it that way.

- Unix command line.

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

>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

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.


I will go far out of my way to avoid working with text in an editor without Vim keybinding options. Fortunately most editors (even Emacs) offer them.

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

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

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

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.

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.

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

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

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.

It was on an SGI workstation, IIRC.

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.

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.


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

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

Other than apps I’ve designed for my own use… Enchant is the first thing that comes to mind: 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.


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

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.

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).

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.

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.

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.

Redis and Postgresql.

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

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

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

Sorry for the late reply. I believe you can do that: https://getpocket.com/import/instapaper/

Linux, the whole software philosophy is quite pure.

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

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

Notion (https://www.notion.so/) and Telegram

The Libby iOS app for access to public library content.

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

Ableton Live.

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

Probably, VLC media player. It does everything I need a media player to do.

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?

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.

Adobe Photoshop and Adobe Illustrator were amazing in their day.

Fusion 360! Autodesk did a fantastic job designing it.

Aldus Pagemaker / Adobe InDesign.

Pocket Casts

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).

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.

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

Mysql8 and Oracle workbench.



- Stripe's API

- Shopify for a web UI

Robinhood Onboarding

bash, AWK, TextWrangler, Audacity, VLC, ffmpeg


Windows Phone.


waveapps.com, love the UI


uBlock Origin


Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact