29 ms·
Ask HN: What are your favorite examples of elegant software?
design or otherwise
- hamandcheese 4y agoZIO, a functional effect system (+ a lot more) for Scala.
- 2143 4y agoTaskwarrior.
- hatware 4y agoFrigate NVR: https://frigate.video/ https://frigate.video/ Incredibly easy to host open source network video recorder with object tracking and hardware acceleration support. You have to install hardware and know what you're doing to hook things up, but bespoke systems that do these things cost tens of thousands for hardware/licensing alone and don't do them half as well.
- ibejoeb 4y agoElegant construction and elegant use can be disjoint. For construction, Beautiful Code is a good read on a bunch of real specimens. https://www.oreilly.com/library/view/beautiful-code/9780596510046/ https://www.oreilly.com/library/view/beautiful-code/97805965...
- yewenjie 4y agohttps://lichess.org https://lichess.org
- bytematic 4y agoYes! Didn’t think I would see it, lichess has made some incredible architectural decisions. And also really brilliant, consistent philosophy.
- pyjarrett 4y agoFossil SCM (https://fossil-scm.org/home/doc/trunk/www/index.wiki https://fossil-scm.org/home/doc/trunk/www/index.wiki) It's almost like Git + Gitea, all in a single application. Code + tickets + wiki + notes all version controlled and capable of hosting the server itself. Also, the repo is just a SQLite database, so backup is easy.
- tigerlily 4y agoSolidWorks Altium Comsol Proprietary yes, but I’ve used all three over the last few years and found them each to be very streamlined, productive, and elegant after a fashion.
- contingencies 4y agoIMHO SolidWorks is terrible. Single core performance limitation, huge disk IO, no out of box support for STEP GD&T export, ridiculous drawing-oriented BOM export UX, half-measure built-in RCS/VCS system, collision-prone namespace, etc.
- vt240 4y agoThe modern Comsol GUI is truly phenomenal, especially considering where it was at with the 3.x versions. It's one of the rare cases, pretty much the only one I can think of in CAD/CAM, where the effort put into a radical GUI redesign really paid off significantly and immediately.
- heisenzombie 4y agoComsol is a truly inspirational bit of software. Remarkably easy to get started but with a huge breadth and depth of applicability. I wish there were a way it could be made free. Like, I think it might not be a waste of money for a country to buy a country-wide site license for their citizens. A browse through their application gallery can be pretty interesting: https://www.comsol.com/models https://www.comsol.com/models There's examples of studies into everything from cooking beef in a convection oven, to Bose-Einstein condensates, medical implants, geothermal storage, semiconductor manufacturing, etc, etc.
- heavyset_go 4y agoWireGuard
- ur-whale 4y agoYeah, it's definitely up there: it's one of these solutions, when you see it, you wonder how everyone could get it so wrong before it came around.
- aborsy 4y agoIt’s this!
- foobarandlmj 4y agoI was going to post this as well.
- jrm4 4y agoSyncthing, by a mile. As someone who very much enjoys tinkering with Linux and such, but also likes trying to onboard other people who aren't as techy, Syncthing is such a killer example. It's almost depressing because I want other free and open source stuff to be this good, though I know the economics (and proprietary interference, perhaps?) make that tough.
- dividuum 4y agoI'm really surprised by that. I feel like Syncthing would really benefit from a simplified user interface for its core use case, which I imagine is "sync one folder across multiple machines". It's really nice that they have all these additional features and detailed information on the default dashboard, but it can be really confusing if you cannot form a mental model of what the software does.
- sgtnoodle 4y agoI use syncthing and appreciate that it exists. It's way too easy to accidentally all your data, though! I've been dragging my feet migrating a hard drive from my old desktop to my new one for 1.5 years. This past weekend I finally got motivated to power the old one up and wait for syncthing to give positive indication that it's in sync with my server. The reason that was even a concern of mine is that the last time I used that desktop, I spent a whole weekend cleaning up about 200 GB of renamed and duplicated "sync conflict" files that syncthing created and then synced to my server when I previously migrated hard drives. I wasn't sure if all the fixes had made it to the server yet. That required writing my own tooling to positively confirm every duplicate was bitwise identical before deleting one or the other. The official documentation suggests I remove syncthing's metadata from the drive and then add it again on the new computer, and let it re-sync. It's a good way to check for bit-rot I guess. At least the documentation these days suggests marking one instance as read-only.
- Sakos 4y agoI've managed to delete a folder with GBs of important data because Syncthing has non-obvious ways of handling data. Thankfully, I have tons of backups of everything, so it wasn't a big deal, but since then I've been extremely paranoid when using Syncthing to make sure it doesn't happen again.
- Gualdrapo 4y agoRegarding code elegance, OpenBSD[0] surely pride themselves in their code correctness and how they make it clean and understandable. Another example might be my favorite text editor, vis[1]. [0] https://www.openbsd.org/ https://www.openbsd.org/ [1] https://github.com/martanne/vis https://github.com/martanne/vis
- nderjung 4y agoWe put a lot of effort and consideration into the architecture of Unikraft[0][1], its elegance towards modularity and abstraction is the reason why I joined the team to help develop it. :) [0]: https://unikraft.org/ https://unikraft.org/ [1]: https://github.com/unikraft/unikraft https://github.com/unikraft/unikraft
- hadrien01 4y agoThe Fork Git client is pretty much perfect (and native) on Mac and Windows
- pipeline_peak 4y agoSpiderMonkey, while it isn’t the best performing, its code is pretty straightforward. It also seems to be embeddable on its own, unlike V8.
- saurik 4y agoIn what way do you feel V8 is not "embeddable on its own"?
- pipeline_peak 4y agoWasn't Node basically created to make V8 embedding feasible? Just by looking at the answer in this example, the idea of isolates seems pretty complicated https://stackoverflow.com/questions/67041878/how-do-i-embed-v8-on-windows https://stackoverflow.com/questions/67041878/how-do-i-embed-...
- saurik 4y agoThat definitely isn't why Node was created... Node is a standalone programming environment that embeds V8, it doesn't somehow help you embed V8 in one of your projects or make that "feasible". In fact, one of the issues with Node for a long time was that every Node plug-in was expected to directly use the embedding API from V8--in no small part as it is actually a pretty easy-to-use API--and that made the entire ecosystem lock-step on V8 API changes (which got tied to major Node versions). Much later, Node added two little abstraction layer over V8's APIs: one that is mostly done in some header files (to deal with the occasional backwards compatibility issue) and another which actually wraps V8; and, even then, AFAIK the latter was mostly done to allow entirely replacing V8 with ChakraCore. But neither of these abstractions are designed to be used by others outside of Node's cosebase (something I almost sort of got working once, but not really): they don't help you embed V8... V8 is already easy to embed. Notably: V8's embedding API isn't particularly more complicated than the API of any other engine: it is simply more templated. If you sit around with SpiderMonkey, JavaScriptCore, or even DukTape, you will find yourself allocating machines, managing handles, converting strings, and checking types of values. This is of course going to be verbose, in the same way that using JNI to call into Java is verbose, or generally accessing any embedded VM from a language like C/C++ is verbose (and for all the same reasons).
- dvh 4y agomeld
- daveloyall 4y agoI've found myself using winmerge instead of meld, when I'm on a platform that supports it...
- emschwartz 4y agoThe Tokio async stack for Rust (https://tokio.rs https://tokio.rs). They did a really nice job of building thin layers up the stack from byte buffers (bytes), to async-friendly logging (tracing), basic IO (mio), async runtime (tokio), generic request/response services (tower), HTTP (hyper), and a web framework (axum). Each of the layers are useful independent of the other layers above, and every one is has a thoughtfully designed, pragmatic interface.
- swah 4y agoI believe I read that Tokio was a "hacky" way to add async to Rust - similar to the solution in the Python space... - is this not the case?
- krageon 4y agoIt could be an elegant, hacky solution :)
- emschwartz 4y agoI think this argument refers more to Rust not having built-in support for async from the language’s v1.0 rather than the design of the Tokio stack. That has definitely led to unfortunate incompatibilities between libraries built for the different runtimes. However, the Rust language team took a super methodical approach to async support and the way that more async-related traits are slowly being standardized (first Futures and hopefully Stream, AsyncRead / AsyncWrite at some point in the not too distant future) seems like a long-term-great way of building into the language the abstractions everyone can get behind while leaving room for experimentation. I’m sure others would have different takes but I’m a fan.
- sodality2 4y agoPersonally I love being able to experiment on the bleeding edge but waiting for a stable implementation, even if it takes 3 years to reach discussion on the RFC's. There are crates if you need it today, which operate on best-practice, but for an official solution I accept that it may take time for it to achieve acceptable standard library inclusion.
- whoibrar 4y agoStandard Notes. Simple. Free. Open Source. E2E encryption. Basically, No frills. Their idea is to make software not with most features but the one that stays until the next century. They have a great blog on this philosophy. https://standardnotes.com/longevity https://standardnotes.com/longevity
- jjnoakes 4y agoMan, I've looked at Standard Notes and want to love it and switch everything over to it. This is the only thing holding me back is the lack of background sync on mobile: https://github.com/standardnotes/mobile/issues/45 https://github.com/standardnotes/mobile/issues/45
- bbkane 4y agoI've started using plain git to sync my Markdown notes - https://www.bbkane.com/blog/how-i-take-notes/ https://www.bbkane.com/blog/how-i-take-notes/
- jjnoakes 4y agoI tried GitJournal but I got a bit scared by this: https://github.com/GitJournal/GitJournal/issues/241 https://github.com/GitJournal/GitJournal/issues/241
- vhanda 4y agoHello GitJournal author here. I was surprised to read "surprised" cause even if GitJournal choose badly, the history is still there. Nevertheless thanks for letting me know. I'll bump it in my internal Todo list.
- wunderlust 4y agoI was also going to suggest this, although there are a few things about the UI that I don't love - e.g., it takes 5 'tab' keystrokes to get from a note title to the note body. On that note (no pun intended), I do wish it was possible to query tag intersections, so to speak. E.g., show notes tagged with both 'todo' & 'coding'.
- jdauriemma 4y agoI don't see Airtable here yet. That team managed to make relational databases user-friendly to a consumer market without compromising the core features a power user might expect. Hats off to them!
- orhunp_ 4y ago`pass`, no cap. passwordstore.org
- throwawayboise 4y agoDiagram!, by Lighthouse Design, for NEXTSTEP. A drawing tool that featured "smart links." I believe it pre-dated Visio. Later cloned as OmniGraffle by OmniGroup.
- saikatsg 4y agoSublime Text
- annowiki 4y agoScikit-Learn's api is masterfully consistent. We've taken to using it as a source of inspiration for our own code.
- dragontamer 4y agoStockfish -- https://github.com/official-stockfish/Stockfish https://github.com/official-stockfish/Stockfish Some of the best C++ code written. Extremely clear and concise. Chess-AI is a bit complicated but the source-code + comments seems to inform the programmer where all the problems are.
- nabaraz 4y agoThinkorswim by TDAmeritrade. No one else has figured out how to lay out options (greeks, premium), charts etc. in such an intuitive manner.
- JamesSwift 4y agoUhhh well I would argue Tastyworks does it even better. But that was built by the same team so maybe its cheating?
- aaaaaaaaata 4y agoWho was first?
- JamesSwift 4y agoWell they made Thinkorswim, which was acquired by TD Ameritrade. After the lockup period, they left and created Tastyworks.
- julianeon 4y agothinkorswim, created by thinkorswim and acquired by TDAmeritrade. In case someone is wondering how a staid brokerage came up with this incredible technology: the trick is, they didn't.
- djmashko2 4y agoThings! The todo list app. It's the most elegant app I've ever used. feels like it just works, and I can rely on it 100%.
- andrewmcwatters 4y agoThe original QSpy protocol, which then became the GameSpy protocol, and later still made way for Valve's Master Server protocol. I'm not sure what other protocols exist today for tracking a list of servers, providing information on them, and are as up to date as the frequency of the heartbeats from those servers, but I suspect there are similar protocols out there, and I'm just not familiar with them. Unfortunately despite how elegant the QSpy protocol is, most modern video games no longer provide server browsers as first-class features, eschewing them in favor of matchmaking services or publisher provided dedicated servers.
- superasn 4y agoI'd say Linux Mint. It combines everything that's good about Ubuntu while removing things like snap. Also the design is so much better but I feel that's a personal choice. But everything in linux just works so well now. I run 4 monitors on 2560 resolution on two separate amd cards and everything runs flawlessly. I have all the software for free and most OSS is just as good if not better for my work (except games and Photoshop but photopea is a good alternative for that, and it can be easily my second nomination for this thread). I know linux has evolved a lot and it's the effort of millions of volunteers which has made Linux what it is today, but for me personally Linux Mint really combines all the great things about linux into an amazingly elegant software.
- dcminter 4y agoHmm. I was kicking the wheels on cinnamon the other day - but because it's not on Wayland it won't do mixed resolution displays out of the box, so it's not really viable for me. A pity, as I dislike snaps and the generally dumbed down direction of recent Gnome, so it would otherwise have been a good fit for me. For now I'm (still) on Ubuntu though.
- smackeyacky 4y agoPerhaps have a look at Pop!OS - still not Wayland but all the good stuff of Ubuntu and none of the snaps.
- usr1106 4y agoNo longer a question of elegance, but of practical importance anyway: Will they keep up with maintaing a Firefox package? (Or Chromium if you are so inclined?) And if they do, why could you not use the same on any Ubuntu variant after you remove snap?
- smackeyacky 4y agoThey use flatpak (at least I think they do) for firefox. I just use the .deb for chrome.
- gordon_freeman 4y agoSignal - 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.
- joshbochu 4y agoyes!
- bbkane 4y agoyes! they take donations too at https://www.signal.org/donate/ https://www.signal.org/donate/
- b0tch7 4y agoquite happy and impressed with signal too. realllyyyy cheering for them to become the default messaging app. i still use whatsapp heaps but would love to switch over
- zuhsetaqi 4y agoCan 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.
- aaaaaaaaata 4y agoSession, and I believe Briar, allow this.
- zuhsetaqi 4y agoI use Element with selfhosted Matrix at the backend which also allows that
- 4y ago
- ibiza 4y ago4.3BSD Unix. Arguably, the first modern operating system. https://en.wikipedia.org/wiki/History_of_the_Berkeley_Software_Distribution#4.3BSD https://en.wikipedia.org/wiki/History_of_the_Berkeley_Softwa...
- deleted 4y ago[deleted]
- ur-whale 4y agoblender (the finished product, can't comment on the code itself).
- GiovanniP 4y agoTeXmacs (www.texmacs.org), which is a finely crafted document preparation system realizing at the same time both the structured and the WYSIWYG paradigms. It is vastly superior to all other document preparation systems. In particular it is superior to both TeX (in all its variants) and to Word, under all respects: conceptually, in the power that it affords in manipulating documents, in the ease with which it makes it possible to write, concentrating only on the content and yet having one's document in front of one's eyes.
- anthk 4y agoAlso TeXmacs can work with Maxima inside your document.
- hnarayanan 4y agoThings, a todo system for macOS and iOS.
- spogbiper 4y agoMicroware OS-9. A Unix-like (..sort of) operating system that supported multitasking, multiuser operation on an 8 bit CPU with 64kb or less of memory back in 1979.. two years before IBM bought a CPM clone and called it DOS.
- kretaceous 4y agoVary random but these are stuff which impressed me on first try and never let me down: Kitty, the terminal emulator by Kovid Goyal wouter, a minimal JS routing library espanso, a text expansion program KDE Connect Tailscale The last 2 together curl
- throwaquestion5 4y ago> Kitty Could you elaborate on what do you feel is better or makes you more comfortable using kitty against any other random terminal? I also vouch for KDE Connect. Painless to use after installing. Very convinient for file transfer
- petepete 4y agoI love Kitty because it does the things I think are important really well.. It's well-maintained, extremely fast, always responsive, easy to configure, supports ligatures and IBus.
- lytedev 4y agoAnd emoji -- I know, not everybody's cup of tea, but if I'm using my terminal to exchange messages and emails, I want to see those emoji!
- kretaceous 4y agoNative tabs, panes. And the keyboard shortcuts for handling them is super intuitive. Some innovative keyboard functionalities. E.g., highlighting all the URLs in the current buffer, so I can open it in the browser with just keyboard shortcuts, same for file paths. One keyboard shortcut let's you open the last output in a pager. So I don't have to `previous-cmd | less` again. There are a lot of small stuff like this. Configurable to its core. Broadcast feature which lets you print output to multiple panes. Plugins (called kittens!) which can extend the functionality a lot. Like ctrl+f in the terminal. And as the sibling mentioned, well maintained. Kitty is one of the softwares on my "donate-to-when-financially-stable" list.
- 4y ago
- kettunen 4y agoThe original MapReduce implementation by Jeff Dean and friends is probably up there for me. Couple of hundred lines of code doing bunch of task distribution on a very large scale is just very impressive. Of course the current/latest version of it has took a life of its own in size and complexity (but of course with performance and reliability too) but the initial version still shines through!
- anthk 4y ago- TCL/TK - CWM - Music On Console - Sfeed+sfeed_curses+xargs+wget+MOC - Entr - Mit-Scheme + Edwin + SICP. It doubles as an IMAP client. Use Stunnel for TLS. - UDFClient - NNCP - S-Nail. It can be easier than Mutt.
- iwebdevfromhome 4y agoThe things app https://culturedcode.com/things/ 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 https://jetstream.laravel.com/2.x/stacks/inertia.html. Laravel was easy enough already to just pick and do things, now this solves the backend+frontend projects for me by allowing me to just put vuejs components on top of my laravel app and jetbrains already comes with Auth stuff setup solved.
- tnorthcutt 4y ago> jetbrains already comes with Auth stuff setup solved What do you mean by this? Perhaps that's a typo and you mean Jetstream?
- iwebdevfromhome 4y agohaha yes! Sorry for the confusion and thanks for the clarification
- synicalx 4y agoI 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.
- modinfo 4y agoWebsites: HN, sourcehut. Tech: Prisma. App: Postico.
- Xenoamorphous 4y agoVS Code
- paulgb 4y agoI've been pleased by NATS (https://nats.io/ https://nats.io/). I like how it builds its functionality on layers of abstractions, from the most basic (pub/sub), to request/response on top of that, to key/value and persistent streams on top of that. The CLI is simple to use and you can learn it in an afternoon, but it's robust enough to deploy.
- _virtu 4y agoEcto the database driver for Phoenix is probably the most amazing piece of software I've used. Elegant dx, performant and just enough of an abstraction on SQL. [1]: https://github.com/elixir-ecto/ecto https://github.com/elixir-ecto/ecto
- wunderlust 4y agodx == developer experience?
- _virtu 4y agoYes
- rubyist5eva 4y agoBoop.app for mac, also both Sublime Text and Sublime Merge.
- wrnr 4y agohttps://github.com/enkimute/ganja.js/ https://github.com/enkimute/ganja.js/ Geometric algebra for any R{p,q,r} dimensional space. Has it own custom JS to JS transpiler so the literal number "1e10" becomes a bivector. The code is just around a thousand lines while it lets you do amazing things like this right in the browser: https://enkimute.github.io/ganja.js/examples/coffeeshop.html#pga3d_distances_and_angles https://enkimute.github.io/ganja.js/examples/coffeeshop.html...
- RubberMullet 4y agoSoftimage, this is was the first 3D software that I really learned and the UI/UX was way ahead of its time. Macromedia Director, it was amazing how quickly you could create an interactive standalone app or CD-ROM.
- ohiovr 4y agoLingo was a lot of fun!
- bradwood 4y agoScrivener: https://www.literatureandlatte.com/scrivener/overview https://www.literatureandlatte.com/scrivener/overview
- 1vuio0pswjnm7 4y agotmux
- magarnicle 4y agoLots of people seem to use tmux instead of screen, but I can't see any great advantage to it. What am I missing?
- 1vuio0pswjnm7 4y agoNothing, 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 more difficult learn and I never felt comfortable editing the source code. I also thought when it was released tmux's documentation was more elegant than screen's. I do not follow screen anymore. Things may have changed after screen finally got some competition. This is not to say there is nothing one can do with tmux that one cannot also do with screen, or vice versa. There could be. I only opine that tmux is elegant, and more elegant than screen.
- magarnicle 4y agoRight. I wouldn't call screen "elegant", which is the point of this thread, though it has its moments.
- nathias 4y agovim
- throw10920 4y agoEmacs - although there's a lot of accumulated cruft in the form of whacky APIs and elisp functions, the design of Emacs is stunningly effective. The way that minor modes and keymaps are composed to customize the interaction mode for each individual buffer is clever and beautiful, to name just one thing out of many. And, as janky as elisp is, it's one of the few extension languages that's actually good at its job, and the Emacs elisp API allows you complete freedom over virtually every aspect of the editor. Unironically, Emacs is not a text editor - it's a toolkit for creating text-oriented applications. Forth, Lisp (Scheme, in particular - I love CL but it's the C++ of Lisps), and Lua - three languages that take a small set of elegant primitives and synthesize them to give you incredible power. Remember the Milk is a task-tracking SaaS that is one of the few pieces of software that I actually like, which is especially impressive given that it's proprietary. Cheap, fast, effective, and with a UI design that continually impresses me with its mix of intuitiveness and ergonomics.
- svat 4y ago> it's a toolkit for creating text-oriented applications Good examples IMO are Magit and Org-mode. They are basically large applications created in Emacs, and each so good that they are worth learning/using Emacs just for using them (I'd say AucTeX is also in this category).
- hsbauauvhabzb 4y agoI use emacs, but would love to see a from scratch modern rebuild which deals with rough edges like threading and performance.
- throw10920 4y agoOh, I completely agree! Emacs is only elegant along some axes, and those two are particular pain points for me, too.
- lytedev 4y agoEmacs is quite popular and has some of the most skilled programmers I know using it. I'm really surprised that there hasn't been a neovim-equivalent project for emacs. Or maybe it's out there and I just don't know about it?
- jjice 4y agoI guess my definition of elegant would be software that has fantastic UX and just works and works so well it boggles my mind how well it works. I'd also extended that to include a foundational core that all other parts can be built off of. In that case, I'd go with vim. I'm not even a huge Vim guy (use it for notes and remote stuff, but not my primary editor), but the concepts are simple and oh so powerful. It's just building blocks on top of text editing. Pipes in Unix as a concept are also a great abstraction. A bit dated, but still every powerful today. Files in Unix as well. Some people have gripes which are fair, but the idea that a device, a file, and a socket are all accessed via the same API is fantastic. Of course there are issues, but it's generally worked really well for me.
- wildrhythms 4y agoYes!! Learning Vim was a revolution for me. It eliminated the strain and repetitive movement of constantly turning to the mouse or arrow keys to navigate the cursor around. Just learning how to jump between INSERT and VISUAL mode and move the cursor was enough to hook me. Now I use nvim + COC for Intellisense-style completion and it's a joy. I love using this software!
- archielc 4y agoNorton Commander - https://en.wikipedia.org/wiki/Norton_Commander https://en.wikipedia.org/wiki/Norton_Commander. Not sure how elegant on the inside, but it comes from the era when software development was not so fast paced. And the fact that it inspired so many spin-offs (just to mention few that I personally used: Volkov Commander, Midnight Commander, FAR Manager, and my favourite - DOS Navigator (it had spreadsheet!)).
- phonon 4y agoMathematica
- Stampo00 4y agoGraphviz. Non-trivial graphs will make it produce hard-to-read output, and you can try fiddling with it forever to get better output. But it's still the first thing I reach for when I have to make a graph.
- uuyi 4y agoSo much this. Also I use this tool to sketch out graphs quickly: https://dreampuf.github.io/GraphvizOnline/ https://dreampuf.github.io/GraphvizOnline/
- vinodkd 4y agoAgree. And after years of using it, I discovered osage, and after a few years more, gvpr. It gives and it gives. And yes, I'm forever fiddling with it to make it look the way i want it to, but in my heart I know the layout algorithms now better :)
- Stampo00 4y agoTiddlerWiki. It's not everyone's cup of tea, but given the limitations it has decided to work within, it really is a wonder.
- h0p3 4y agoCame to hear to say the same. https://tiddlywiki.com/ https://tiddlywiki.com/
- lukasb 4y agoNotational Velocity Very simple, instant search, and having the same UI for searching and creating notes is genius - way fewer duplicated notes, for one thing.
- drewzero1 4y agoI used Notational Velocity for a few years for taking notes in school. I was really impressed by the search/create function and have tried using the same paradigm in my own projects. I couldn't find an equivalent on Linux, so I ended up using Emacs which isn't elegant in the same way.
- rkagerer 4y agoOpen Hardware Monitor (OHM) It's written in C# and the design seemed clean and approachable (at least a few years back when I tailored it a bit for my own use). https://openhardwaremonitor.org/downloads/ https://openhardwaremonitor.org/downloads/ https://github.com/openhardwaremonitor https://github.com/openhardwaremonitor
- Mister_Snuggles 4y agoMonument Valley and Monument Valley 2[0]. They're games, and relatively short/easy, but it's beautiful and elegant. [0] https://www.monumentvalleygame.com/mv2 https://www.monumentvalleygame.com/mv2
- eps 4y agoThat's cheating ;) There is a metric ton of elegant games. It's the elegant mundane software that is much more rare and therefore interesting.
- mackrevinack 4y agotownscaper is another "game" that i would consider to be very elegant considering all you do it click somewhere and it decides what type of building to add. the only option you have is what colour it will be https://youtu.be/QtVkteAS15M https://youtu.be/QtVkteAS15M
- dustractor 4y agoProjects developed under a BDFL: blender (ton) vim (bram) and python (guido)
- PascLeRasc 4y agoSpotlight. Everything about it is really well-thought out. I use it dozens of times every day to convert units or hold strings or check the weather.
- biorach 4y agoPeter Norvig's 27 line spell checker https://norvig.com/spell-correct.html https://norvig.com/spell-correct.html
- DC-3 4y agoThis is nice. One interesting choice is the decision to compute the number of observed words, N, as the default value of an optional argument, thereby ensuring that it is only computed once, while still limiting its scope to the function in which it is needed. Perhaps this is a common pattern but it's one I haven't stumbled across before. The short circuiting `or` chain is also pleasantly virtuosic. Sometimes a little flashiness is tolerable when it works this well!
- version_five 4y ago> One interesting choice is the decision to compute the number of observed words, N, as the default value of an optional argument, thereby ensuring that it is only computed once You're saying python computes an expression that's part of a default value when the code defining the function is run? I guess it makes sense now that i say it, I wouldn't have automatically assumed that. That's an interesting one to remember.
- deleted 4y ago[deleted]
- darkfirefly 4y agoPython's default arguments are evaluated and stored once. This can cause issues, for example the naive "default to []" program: >>> def function(b, a=[]): ... a.append(b) ... print(a) ... ... >>> function(1) [1] >>> function(2) [1, 2] >>> function(3, [4]) [4, 3] >>> function(5) [1, 2, 5] A correct implementation would be: >>> def function2(b, a=None): ... if a is None: a = [] ... a.append(b) ... print(a)
- 4y ago
- ohiovr 4y agoFFMPEG is an excellent piece of software. I used it last weekend to build an automatic video editor / titler and it only took about 10 hours to make it work. I was going to use moviepy but the rendering time was extreme and the memory consumption was horrible. My 300 line python script with imagemagick and FFMPEG produced a 30 minute long video in under 5 minutes.
- usr1106 4y agoExcellent once things work, yes, but elegant? It always takes me hours to search the forums if something doesn't work as expected
- Beltalowda 4y agoffmpeg is one of those things that has great internals, exposed by a ... daunting ... interface.
- blenderdt 4y agoBlender. It's architecture, the window manager/system, the UI, how it is built by and for the users, how the API is integrated and how fast it is compared to other software.
- mudlarker 4y ago
- bennysomething 4y agoYou might like the book "beautiful code"
- caraboga 4y agoNetBSD and OpenWRT. These platforms build across archs relatively easily and their configuration interfaces are pretty transparent.
- 1vuio0pswjnm7 4y agoGreat examples.
- chrisweekly 4y agohttps://every-layout.dev https://every-layout.dev - not just the ideas it conveys, but the site per se too.
- cnees 4y agoMindNode is a beautiful way to lay out your thoughts, and the graphs can be copied as bulleted lists. Alfred is an application launcher that also lets me enter shortcuts to quickly launch pages like my calendar and each of my team members' open PRs. I use it dozens, if not hundreds, of times a day. With the premium version, you also get a great clipboard manager.
- d08ble 4y agoScanwatch – Fast and simple file watcher for Node https://www.npmjs.com/package/scanwatch https://www.npmjs.com/package/scanwatch
- hnxs 4y agoxcode haha just kidding!
- throwaway_dcnt 4y agohttps://vertx.io https://vertx.io and https://lmax-exchange.github.io/disruptor/ https://lmax-exchange.github.io/disruptor/
- itsthecourier 4y ago
- protomyth 4y agoThe Visio that came on the sampler floppy. It was small and did an amazing job. PFE back in the day. Simple macros and templates that made life much easier in a small package. Some editors today don't even bother with macros or have all of PFE's options.
- reiblast 4y ago[dead]
- jeppester 4y agoGit is the first example that comes to my mind. I'm aware that the concept can be difficult to grasp and that the cli commands seem weird at first. Once it clicks however, it's an absolutely fantastic tool. I'm still often amazed by what is possible with selective resets, diffs, greps, and most impressively interactive rebases. It makes a lot of otherwise difficult tasks much easier, and more elegant. Git is IMO one of the most important pieces of software made in the last couple of decades and should be celebrated more for it.
- foofoo4u 4y agoYou might get a kick out of this. Tech Talk by Linus Torvalds at Google presenting Git: https://www.youtube.com/watch?v=4XpnKHJAok8 https://www.youtube.com/watch?v=4XpnKHJAok8 . He goes into his thought process of the pains with existing version control systems and how Git goes to address their shortcomings.
- rob74 4y agoNot sure about that - yeah, git is a powerful tool, but I can't help thinking that lots of things could have been done in a more straightforward and less confusing way. Such as the "double responsibility" of "git checkout" which has recently been split into "git switch" (for switching branches) and "git restore" (for reverting files).
- Centigonal 4y agoI disagree with this. I think the basic concept of Git is beautiful, but the implementation of some of the derivative operations are distinctly inelegant. For example, I hate the use of "ours" and "theirs" in merges and rebases. I understand the theory of why it works the way it does and why it's different when merging versus rebasing, but I just think it's downright confusing, and I still have to double check every time to make sure I accept the right changes. I don't understand why they couldn't just use the branch name (or branch + commit hash).
- yen223 4y agoSomething that comes to mind is that Github, as part of a "papercuts" initiative to fix small things, added an arrow that points from the "theirs" branch to the "our" branch in pull requests. That was such a huge improvement for me.
- ducktective 4y agofzf, dmenu, dunst, curl, jq, pup
- otikik 4y agoCreating a GUI Interface in Visual Basic to See If I Can Track An IP Address https://www.youtube.com/watch?v=hkDD03yeLnU https://www.youtube.com/watch?v=hkDD03yeLnU
- Aemorph 4y ago[dead]
- sparker72678 4y agoI've always liked how TaskPaper was entirely built around plain text files. https://www.taskpaper.com https://www.taskpaper.com
- mym1990 4y agoStardew 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.
- tylerscott 4y agoI second this. It is amazing the level of thought that went into the game design.
- smokeyfish 4y agoGit, grep, sed, awk; many Unix utils
- deleted 4y ago[deleted]
- crispisulcans 4y agoA very short example: The PNPOLY algorithm https://wrf.ecse.rpi.edu/Research/Short_Notes/pnpoly.html https://wrf.ecse.rpi.edu/Research/Short_Notes/pnpoly.html
- MrScruff 4y agoSidefx Houdini
- f0000 4y agoVega-Lite and Altair https://vega.github.io/vega-lite/ https://vega.github.io/vega-lite/ https://altair-viz.github.io/ https://altair-viz.github.io/
- enriquto 4y agognuplot Being able to just plot sin(x) blew my mind. More seriously: cholmod
- phkahler 4y agoSolvespace (CAD) https://solvespace.com/index.pl https://solvespace.com/index.pl A single executable of about 6MB with pretty significant capability. The source code is pretty clean as well.
- smm11 4y agoCircus Ponies Notebook (On OpenStep, then OS X), made my jaw literally hit the floor when I first saw it. I didn't just think all software had something to learn here, I thought this was the only software anyone would ever need. To be fair, my job lend itself toward this at the time, the WWW was nowhere near what it was a few years later, and everything-tied-to-everything was miles away. But this blew my mind.
- JFKKFJ 4y ago
- nope96 4y agohttps://tetr.io/ https://tetr.io/ even on an ancient laptop, it runs smoothly. I had no idea a javascript game could look/play this good. I've spent 100 hours on it since I first saw it posted here on HN
- rwxrwxrwx 4y agoThe Apache HTTP Server and the GNU Scientific Library come to mind.
- pddpro 4y agoI'm not sure if this has come before but for me it'd be ffmpeg. The things it can do!
- noizejoy 4y agoInsanely powerful and useful - very much so. And immeasurable impact on the entire media software and soundware landscape. It’s probably amongst my subjective top 10 list of software. But I’ve never considered it elegant.
- massprogrammer 4y agoThis is interesting question, several times I complemented Telegram in front of friends
- libraryatnight 4y agoObsidian.md - the markdown note taking app. I find it intuitive and powerful.
- ents 4y agoHazel. Automation at every level and an easy intro into scripting for non-programmers.
- linkdd 4y agoPython Trio[0] (an alternative async stack to the builtin asyncio). It allowed me to implement a mini OTP framework in Python[1]. [0] - https://trio.readthedocs.io/ https://trio.readthedocs.io/ [1] - https://linkdd.github.io/triotp/ https://linkdd.github.io/triotp/
- Centigonal 4y agoRollercoaster Tycoon! The game is beautiful, performant, and almost entirely hand-written assembly by one guy. Plus, the parks themselves can look very elegant (kind of like factorio factories). https://www.pcgamesn.com/rollercoaster-tycoon/code-chris-sawyer https://www.pcgamesn.com/rollercoaster-tycoon/code-chris-saw...
- wildrhythms 4y agoShoutout to the OpenRCT2 project! https://openrct2.org/ https://openrct2.org/ Lots of great QOL fixes and improved modern hardware support. For another fun game in this genre, check out Parkitect which has some additional logistical elements around transporting and hauling stall inventory https://themeparkitect.com/ https://themeparkitect.com/
- YesBox 4y agoI still play this game today. I managed to carry along an older version of RCT Deluxe (before it was patched up to defeat all the cheats) for all these years, with the cheat program "beast trainer" (or "cg_beast").
- aasasd 4y agoArt for RCT 1-2 was made by Simon Foster, and most of the objects were made in 3D, then rendered into frames. http://www.chrissawyergames.com/feature3.htm http://www.chrissawyergames.com/feature3.htm https://www.youtube.com/watch?v=5UKKaTGwIqc https://www.youtube.com/watch?v=5UKKaTGwIqc https://www.youtube.com/watch?v=p6Fci7NWYUo https://www.youtube.com/watch?v=p6Fci7NWYUo (videos by Simon Foster, from https://redd.it/32jind https://redd.it/32jind)
- ashton314 4y agoMicroKanren: logic programming in roughly 30 loc in any language with first-class functions. Can’t find original pub; here’s someone’s host of the original paper though: http://webyrd.net/scheme-2013/papers/HemannMuKanren2013.pdf http://webyrd.net/scheme-2013/papers/HemannMuKanren2013.pdf
- elihu 4y agoGHC, the Haskell compiler. Rustc. Pov-RAY (for creative interpretations of "elegant"). Diff and patch. The original Starcraft and BroodWar. Battle for Wesnoth. Bittorrent. Probably one not many people have used or heard of: CoCreate Solid Designer.
- memorable 4y agoApostrophe (https://gitlab.gnome.org/World/apostrophe https://gitlab.gnome.org/World/apostrophe). ABSOLUTELY GORGEOUS design. Smooth and clean. No words to describe it.
- weef 4y agoLINQPad by Joseph Albahari
- uhoh-itsmaciek 4y agoSequel [1], the Ruby ORM. It's rock-solid, provides similar abstractions to Active Record but feels much better thought out, and it has great docs. Also, at any point in time, it's likely to have zero open issues and zero open pull requests, which is pretty impressive for a project of its size. [1]: https://github.com/jeremyevans/sequel https://github.com/jeremyevans/sequel
- 13of40 4y agoTurbo Pascal 3 on an IBM 5150. Pick any font color as long as it's green. Editor does automatic indentation and understands arrow keys. Compiler is built in and does one damned job, making EXEs. Runs from a floppy disk and you install it with COPY if you're fancy enough to have a hard drive. The future is wide open.
- SeanLuke 4y agoLotus Improv. One of the most beautiful spreadsheet programs ever designed.
- SemanticStrengh 4y agoThe three of life is a fantastic design and use of openstreetmap software https://lifemap.univ-lyon1.fr/explore.html https://lifemap.univ-lyon1.fr/explore.html
- habi 4y agoOpenStreetMap?
- SemanticStrengh 4y agoYes as you can see it doesn't look at all like the same thing and yet it use OpenStreetMap svg renderer, which is very clever
- carapace 4y agoUnison, the rsync-like tool, has an awesome interface. ( https://www.cis.upenn.edu/~bcpierce/unison/ https://www.cis.upenn.edu/~bcpierce/unison/ ) Prolog. There's a reason it's been king of the Logical Paradigm for decades. Oberon OS. Turing Drawings. ( https://maximecb.github.io/Turing-Drawings/ https://maximecb.github.io/Turing-Drawings/ ) procmail ( https://en.wikipedia.org/wiki/Procmail https://en.wikipedia.org/wiki/Procmail ) one of the most beautiful (yet hideous) programs I have ever read.
- version_five 4y agoThis is an obscure one, but Mike Innes "[automatic] differentiation for hackers" tutorial. It's a code tutorial, not software, if that counts. Both the way it's constructed and the functionality of Julia that gets shown off here. https://github.com/MikeInnes/diff-zoo https://github.com/MikeInnes/diff-zoo
- rodgerd 4y agoScrivener. It's very focused on the task of writing - novels, short stories, screenplays. It pares away the parts of e.g. a word processor that are distracting (layout and the like), adds the functions of a database for tracking characters, locations, research and so on. The underlying implementation is also storing as plain files in directories, so you can be comfortable that you'll be able to retrieve your writing if Scrivener no longer exists.
- hatchnyc 4y agoNot a specific piece of software, but a characteristic of a limited percentage of anonymous internal systems--one of the most beautiful things to witness in the realm of design is a system undergoing catastrophic stress when the designers anticipated and planned for such events, and in usually a very short period of time you see the results of extensive planning spool out, design features hidden from view and unappreciated until this moment, kick in and recover/compensate in ways that feel almost magical. For obvious reasons it is much more common to see this level of design in physical, life-critical systems like aerospace or automotive technology, but you do see it sometimes in software. Well designed services that under heavy load, various kinds of infrastructure failure, attack, or other kinds of scenarios well outside the bounds of normal expected operations intelligently compensate while signaling alerts with precise, useful information, and attempt whatever kind of recovery is possible. This is hard to anticipate and often thankless to build in advance. It's always a stressful time when this behavior is visible, but it gives me a feeling of admiration for the perhaps long gone employees who built it.
- camelcasing 4y agoany examples?
- kjellsbells 4y agoNortel DMS-10 telephony switch springs to mind. They run in landline phone company switching offices amd date back to the early 1970s. Those things are indestructible in the face of all kinds of disasters.
- hatchnyc 4y agoMercedes has a system on the S-class that uses the sensors to detect a potential impact (e.g. an rapidly approaching vehicle while the car is stationary) and uses the active suspension to "jump" raising the car a few inches just at the moment of impact, apparently slightly reducing the potential for injury. Many cars and especially planes & spaceships are have tons of systems like this. I worked on a system that did things like in response to a primary datasource being offline would switch the queries it used to a different database to include substitute data and pass this back to be used instead until the primary store came back online. Three years after it was put in production this happened on one of the company's biggest and most important days of the year, and our SREs were sitting there calmly trying to solve the issue, ended up waiting until late at night to deploy a fix. It would have been reasonable for this service to just rely on the primary source, but we would have been offline for hours if this little trick hadn't been put in place.
- felipemesquita 4y agoThe newish email service Hey. For me it’s been really successful in its attempt to be useful and a bit whimsical.
- orsenthil 4y agoPython The language design of python made almost everyone learn programming.
- boban_dj 4y agoimagemagick,ffmpeg
- blame-troi 4y agoIEFBR14 https://en.wikipedia.org/wiki/IEFBR14 https://en.wikipedia.org/wiki/IEFBR14
- sirodoht 4y agoScheme. > Abstract: We show that it is Scheme, of the Lisp family, the language that deterministically emerges when one opts for elegance. https://chaitinschool.org/blog/the-most-elegant-of-arrays/ https://chaitinschool.org/blog/the-most-elegant-of-arrays/
- iroh2727 4y agoSpotify (brilliant!), unix, Google's Flume, DynamoDB, EC2, the Lithium ereader app on android (simplicity is good!), Wikipedia, Google Search (or perhaps Old Google Search), emacs, vscode
- anthk 4y agoSpotify is anything but elegant.
- secwang 4y agokdb+. It may be a little over-marketing, but it's really elegant. voodoopad.
- _vdpp 4y agopandoc comes to mind, one of those pieces of software that “just works.” I’m not a Haskell guy but pandoc makes me wonder sometimes. Visual Basic (cue the hecklers). Yes the language is awful. But the tool was great. I wish Microsoft (or somebody) would release a new version for full-stack apps with a drag-and-drop UI with js event handlers, easy backend framework, and a one-button “deploy to cloud” button for testing. Then a “publish” button that sets up your CI pipeline for production deployments. I feel like we’ve raised the white flag in terms of what software development should look like in 2022. Writing yaml feels like banging rocks together compared to possible alternatives.
- Ericson2314 4y ago
- Tao332 4y agoJust for you, I'll say Excel.
- Ericson2314 4y agoHaha sure. I give those old professional tools some respect.
- centur 4y agoAs other mentioned algorithms I found that ideas behind Bloom filter (https://en.wikipedia.org/wiki/Bloom_filter https://en.wikipedia.org/wiki/Bloom_filter) and Geohash (not to be confused with geohashing or geo caching, see https://en.wikipedia.org/wiki/Geohash https://en.wikipedia.org/wiki/Geohash and Z-order curves) are extremely elegant and inspiring.
- Tao332 4y agoElegance is usually an unassertive quality. It's harder to say what software is elegant than it is to say what isn't elegant. To me it usually means that something is done correctly for you, things are presented clearly, and annoying chores are removed. Consistency and a lack of surprises. The first thing that comes to mind as elegant compared to the alternatives is k9s for managing/monitoring kubernetes.
- Helmut10001 4y agoFor Docker stacks: Funkwhale [1] Their Setup for the Docker stack [2] is not only well documented, but also suitable as a blueprint for any persistent software setup with Docker. They also have a mentality for documentation as a firct class member, which is really important for OSS and self-hosting. You'd have to look hard to find any outdated piece of information or lazy written part in the docs. Lastly, the interface is just beautiful, simple and elegant. I finally enjoy listening to my music library again. [1]: https://funkwhale.audio/ https://funkwhale.audio/ [2]: https://docs.funkwhale.audio/installation/index.html#available-installation-methods https://docs.funkwhale.audio/installation/index.html#availab...
- alexose 4y agoElegance for me means a program that's lightning fast, efficient to use, and has a minimal learning curve. The first things that come to mind: OurGroceries, a lovely little free app to share grocery lists with your family FooBar2000, an early windows-based media player uTorrent (or at least the very early versions, before it became bloatware) Snapchat (again, the early versions when it was 5x quicker than any other mobile photo sharing platform)
- oxley 4y agoAutomated trains / subways. They are reliable enough for millions of people to trust them with their life, every day. That's an incredible achievement. If you're ever in Paris, get a front-row seat on subway line 14 and feel the magic.
- mackrevinack 4y agoworkflowy. i use dynalist these days as my main outliner / note taker since it has a lot more features, but workflowy still just has something more elegant and minimal going on with its UI
- ubadair 4y agoLLVM is pure joy to use in every regard. A priceless marvel of open source.
- surajs 4y ago
- laserbeam 4y agoSublime Text introduced multiple cursors to the world. A single incredibly versatile and elegant feature. That feature has empowered my ability to use other pieces of software faster, and programming languages I was unfamiliar with... Better. I've used it to: - batch edit columns copied from excel files. - wget/rename/run cli commands on dozens of inputs without having to worry about how for loops are written in bash/bat/powershell by just typing commands on a hundred lines and concatenating them with && - extract data from various text files without writing parsers or even thinking about regexes This is one keyboard shortcut, with one of the smoothest learning curves ever. Pure elegance.
- anthk 4y agoWith a tiny set of AWK yo could do that much faster.
- walrus01 4y agobbedit Does exactly what it promises
- stillblue 4y agoI'm surprised nobody has mentioned windows 11
- xhrpost 4y agoFirst coming to mind, HackerNews. No images, no ads, no complex settings UI, no complex points/karma system. Just text and links, it does what it's built for and does it well.
- jppope 4y agoyes, but the user experience is highly related to the awesome work that the moderators do...
- macampam 4y agoMy code is always super elegant compare to the rest
- zelon88 4y agoI think an honorable mention should go to PyGame. I used this to show my kids how computer games work. I started out by showing them Unreal Engine 4 so they understand the modern tool chain, but that still leaves the mystery of how the game is represented inside the computer. Within minutes you can have some code drawing things, real graphics, on the screen. I cannot adequately describe how easy it is. The experiment I did with them (young kids) was define some variables, draw a counter on the screen, start a loop, and then increment the counter. After they saw how that was represented to the computer it was easy to get them to imagine a character with all of his stats assigned at the beginning and then updated on every iteration of the loop as events take place. But with kids you've gotta move fast or they lose interest. PyGame makes creating games so fast you can literally pick it up and start teaching it to kids without knowing it yourself. It's that good.
- MichaelMoser123 4y agoIntelliJ and Goland. I mean both Eclipse and Visual Studio used to be good tools, but they lost it, however IntelliJ remains to be a good tool, throughout the years. Also Goland is much better than Visual Studio Code, imho.
- aasasd 4y agoOptimal ordered problem solver: http://people.idsia.ch/~juergen/oopscode.c http://people.idsia.ch/~juergen/oopscode.c (From http://people.idsia.ch/~juergen/oops.html http://people.idsia.ch/~juergen/oops.html)
- movetheworld 4y agoI'm on Windows and hated the File-Explorer for years: it always resets the view (even if you told it to use your standard view for all folders) and has terrible defaults. I tried many alternatives, then finally found XYplorer. It is so easy to use, well structured, but when needed it is also a power house full of soo many tools you otherwise need another app for. Really loving it and many kudos to the only(?) developer from Germany who constantly improves it.
- tjstebbing 4y agoI'm going to say vim, and I expect to get yelled at by folk who don't use vim, but here's why I call it elegant software: Vim's entire command model is based on the simple composition of motion and action. Until you understand this you will never 'get' vim. You may be able to use it, even efficiently, but you will never understand how these two simple concepts when fully understood are a force-multiplier. Motion indicates a range, of characters or lines, there are motion keys that will get you: to EOL, to EOF, to next matching char, to braces, to function / class blocks, to predefined marks. An action is something that applies to that range, these can be anything from auto-formatting, changing case, calling out to another process, anything you can imagine. When you understand this suddenly g=GG, ct(, y$ become: reformat document, cut to next paren and copy till EOL respectively. Does that sound horribly esoteric? that's only because you don't yet understand vim motion composition. I'm happy to argue that if anyone fully understands this concept they cannot help but agree that vim is at it's heart seriously elegantly designed software.
- tasuki 4y agoVim's UI is elegant, for sure. Its internals perhaps slightly less so, hence Neovim.
- btschaegg 4y agoThis. Plus: Macros. I just recently had an opportunity to flex my "wizard muscles" in a case where we had to feed a test consisting of about a hundred similar messages with minimal differences (numbers) to a system in order to reproduce an issue. "Can't we try to reproduce this?" "Maybe, but we'd need a lot of messages in order to reproduce this." "And...?" "That's tedious." "Watch me" *grinning* A couple of edits and a `100@q` later, we were ready to go.
- usr1106 4y agoNobody seems to have mentioned qemu. Right, it's proably more genius than elegant.
- Parker_Powell 4y agoMy favorite example of elegant software is the way Spotify organizes playlists and allows for playlist sharing between users. The playlists are very easy to search, browse, and make. They are also easy to share with friends, and you can find an endless number of playlists curated by other users on almost any topic you can imagine!
- LargoLasskhyfv 4y ago[1] https://en.wikipedia.org/wiki/Open_Firmware https://en.wikipedia.org/wiki/Open_Firmware [2] https://en.wikipedia.org/wiki/Architecture_Neutral_Distribution_Format https://en.wikipedia.org/wiki/Architecture_Neutral_Distribut... [3] https://en.wikipedia.org/wiki/TRON_project https://en.wikipedia.org/wiki/TRON_project
- pasttense01 4y agoA lot of nice examples in Donald Knuth's The Art of Computer Programming.
- Zecc 4y agoSince no one seems to have mentioned it yet: D3.js
- ravish0007 4y agoThe author of d3.js has a brilliant blog.
- reacharavindh 4y agoZFS. It made filesystems and Software RAID elegant and accessible with an elegant interface and a pleasure to work with. It offers all the features that one would want in a file system without many shiny bloat. Scrubs Distributed parity Hot spares Encryption Snapshots Compression Quotas All in an intuitive way that led to an almost cult like following in the Unix/Linux admin world.
- xtiansimon 4y agoSoftware ?= software application If yes, then I’ll offer an oldie but a goodie: Adobe Photoshop. Many of its tools are intuitive. As a photo artist you don’t want the application getting in your way. It’s easy to learn how PS organizes multi-color/layer/channel images. You can do a lot with a little bit of knowledge of the application, so you can do the simplest things easily and quickly. With more application skill you can produce the highest quality images necessary for _any_ static image project.
- ju-st 4y agoEverything, a Windows application which finds/searches files instantly. If MS Windows would include this as standard search function the worldwide GDP would probably go up by like .1% from the productivity gain. https://www.voidtools.com/ https://www.voidtools.com/
- ravish0007 4y agoxmonad
- uberwindung 4y agonon-boost asio: https://think-async.com/Asio https://think-async.com/Asio
- rad_gruchalski 4y agoTotal commander. By far the most ergonomic UI for working with multiple directories on Windows except of a terminal.
- commonalitydev 4y agoAdobe 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)
- qsort 4y agoWhy MS SQL Server in particular as opposed to a generic SQL database? (not criticism, just curious)
- mshaler 4y agoIMHO Lotus Improv/OpenStep Quantrix is the epitome of elegant software.
- chordmemory 4y agoAbleton Live
- eimrine 4y agoLISP 1.5
- spindle 4y agoNixOS (although yes it could be even more elegant than it is)
- sidcool 4y agoUnpopular opinion but Microsoft Excel. It's a powerhouse of features.
- jcparkyn 4y agoLots of features, sure, but elegant? I've always felt like excel was about as far as you could get from elegant, especially once you want to do anything more than data entry and simple charts. Elegant software doesn't normally need an interest group dedicated specifically to preventing people from misusing it. http://www.eusprig.org/ http://www.eusprig.org/
- Closi 4y agoI'm a definite 'excel-apologist' and think Excel is brilliant and incredibly powerful when used correctly, so the below may be biased but... > Elegant software doesn't normally need an interest group dedicated specifically to preventing people from misusing it. http://www.eusprig.org/ http://www.eusprig.org/ Plenty of the other software listed has user-error misuses (For instance C is listed, and by the same standard it could be considered responsible for more software vulnerabilities than anything else!). Sure there are errors in spreadsheets, but as the alternative is often calculating something by hand or asking similarly-trained users to write a python scripts, I think both those options probably create more errors. Looking at the 'horror stories' listed on that website: * The first listed is about the UK government using a version of Excel that is over 10 years old, with an issue that would not have happened if they updated the software. * The third listed is because someone ENTERED incorrect information into a procurement spreadsheet (they copied the specification for a standard bed in rather than a critical care bed). * The fourth is user input error - they input a fund as Dollars rather than Euros (how is this Excel's fault?) * The fifth and sixth talk about logic errors - one with hard-coding a value and another with using 'cumulative mileage totals rather than running calculations on a sample average for vehicles'. I agree that spreadsheets can have issues, but most of these can be mitigated by setting up sheets properly and I haven't really seen a compelling replacement for a spreadsheet for the sorts of stuff it gets used for. The real problem with spreadsheets is a lack of training - I would estimate less than 20% of users know how to turn on cell validation, less than 10% know how to write a dynamic array formula, and less than 5% know how to use PowerQuery. It's like asking a bunch of people to write python code, but only 10% of users know how to write a loop, and then we are surprised that there are issues. Besides, if you input a fund into a fancy financial package with the wrong currency it will cause the same issues.
- mikewarot 4y agoTurbo Vision/Turbo Pascal for MS-DOS. Borland put together one of the best instances of an object oriented library that just worked. The follow up with Delphi for Windows was the most productive environment I have ever experienced, until I was priced out of it in their pivot to "Enterprise" customers. Nothing since is anywhere near as productive. Lazarus is ok, but the documentation is horrible, (almost non-existent, only doc-strings in many cases) which makes the system far less useful.
- rlf_dev 4y agoIt's been an absolute joy toying with TV after all this years for some TUI side-projects. https://github.com/magiblot/tvision https://github.com/magiblot/tvision
- munificent 4y agoRelated: I did a lot of WinForms programming in C# when I was a tools programmer at EA and I don't know if I've ever been as productive as during that time. The whole API was really well thought out, Visual Studio was fast, C# was a beautiful language.
- gwbas1c 4y ago> C# was a beautiful language It still is. (And Blazor is pretty cool, too.)
- munificent 4y agoYes, definitely! I put it in the past tense only because I don't use it these days.
- arwhatever 4y agoEvery UI technology is unbearably cumbersome after starting my career in WinForms.
- archielc 4y agoThere's Lazarus project (https://www.lazarus-ide.org/ https://www.lazarus-ide.org/) - which is a Delphi compatible IDE. I've used it once to build a simple UI app, and it was a real nostalgic look back in time. Not to mention that it was extremely simple to build the app.
- j-pb 4y agoJonesFORTH Although one might argue it to be a case of really elegant documentation and literate programming.
- pcurve 4y agoAlways impressed with Palantir's software.
- leobg 4y agoCan you give an example? I’ve never seen it myself. What do you find the most impressive about it? Any links where those parts can be seen in action? Also, what would be the closest competitor, and in what regard are they worse?
- hulitu 4y ago"Any links where those parts can be seen in action?" No, but when they arrest you, you see the effect :)
- px1999 4y agohttps://vimeo.com/488141017 https://vimeo.com/488141017 there's a Gotham demo at around 43 minutes (which is probably the most interesting looking product they have)
- pcurve 4y agoI figured I'd get some downvotes mentioning PLTR here. ;-) GPalantir is definitely being more open with their demo now, so there are some good ones on their youtube channel. You can skim through. https://www.youtube.com/watch?v=uF-GSj-Exms https://www.youtube.com/watch?v=uF-GSj-Exms I'm impressed by how polished everything looks. As a person who does UX / product design, their working software looks better than most designer's portfolio mockups. I'm impressed by how fast and snappy everything works or feels. I'm impressed by how rich and custom tailored their UI component library is. I'm impressed by how focused and tailored their UI for job at hand. I'm impressed by how every single page in their application looks beautiful, not just a handful. They actually have all their React UI library published as opensource here. https://blueprintjs.com/ https://blueprintjs.com/ If there's anyone from pltr reading this, good job. Your design people are amazing.
- nicbou 4y agoI love utilities that quietly work, and just accept whatever workflow I throw at them. OwnTracks is an app that logs your position and sends it somewhere else. It has been running on my phone for like 2 years without issues, and talks to a server I wrote myself. FolderSync syncs folders on my phone to remote storage. It's super flexible and generally just works. The conditions for syncing are highly configurable. I lament the lack of a similar utility on Mac - basically an rsync+cron UI.
- reyostallenberg 4y agoMaybe https://syncthing.net/ https://syncthing.net/ ?
- flanking_pajama 4y agoEasily my choice for the OP's question. I have set and forgotten it for a few things here and there, like making sure the photos I take on my phone are backed up and available on my laptop as soon as they're on the same network.
- jasfi 4y agoNim. It's just so quick and easy to write high performance code. That's why I'm writing a web framework for it, soon to be released: https://github.com/jfilby/nexus https://github.com/jfilby/nexus
- m-p-3 4y agoSQLite. It's a damn fine piece of software for small applications.
- endgame 4y agoI've heard people call it "a replacement for `fopen()`". Similarly, I like ZeroMQ as a replacement for sockets.
- sitkack 4y agoI just loaded 4.6G of json into an in-memory sqlite database in about 20 lines of Python. It isn't just for data storage, it is also great for quick adhoc analysis.
- anitil 4y agoI honestly eats most people's "big data" for breakfast. Combined with datasette for turning your ad-hoc queries an api of sorts it's like a superpower.
- hulitu 4y agoAegis/Domain OS. I would love to work again with such an OS.
- dusted 4y agoAre unix pipes a software? If so, then that.
- bajsejohannes 4y agoRedis. The interface is quickly obvious using telnet (which makes all clients pretty obvious). The documentation is both succinct and complete. All operations are listed with their big-O notation.
- Centigonal 4y agoRedis's interface and docs are a joy to work with. Everything just feels so straightforward and uncomplicated. The config file stuff gets a bit weirder, but it's still pretty easy.
- joshbochu 4y agoAny implementation detail you could please share?
- spacechild1 4y agoLua
- bear8642 4y agoOver on reddit, /u/mikemike has good read order for Lua source code: <https://www.reddit.com/r/programming/comments/63ht/ask_reddit_which_oss_codebases_out_there_are_so/c02pxbp/ https://www.reddit.com/r/programming/comments/63ht/ask_reddi...>
- abcd_f 4y agoInheritance through table extensions is truly an elegance in the eye of beholder :-)
- sitkack 4y agoThe FFI design is also very clean.
- spacemanmatt 4y agoPostgreSQL
- xupybd 4y agoThe Elm architecture. I've only used it in F# with Fable but it's made UI programming fun again. It's robust and simple.
- nikivi 4y agoLinear is nice. https://linear.app https://linear.app
- HermanMartinus 4y agoBear Blog is simple to use, understand, with no frills or client-side JS. https://bearblog.dev https://bearblog.dev
- layer8 4y agoSelf promotion is off-putting in a thread like this.
- dhash 4y ago- NXT-G, the coolest (simple) visual programming language - Propellerheads Reason, a sweet DAW - emacs, a text editor so elegant it’s a real OS - Procreate, the nicest iOS drawing app
- m-p-3 4y ago> NXT-G On a similar tangent, NodeRED is also an interesting software to build workflow-based automation visually.
- spacemanmatt 4y agoA couple of my favorite programmable products from the MSDOS years: Telix QEdit
- type0 4y agoBEAM (Erlang VM)
- matreyes 4y agoAgree
- morelandjs 4y agonumpy started a science renaissance. fantastic library for what it does.
- Sohcahtoa82 4y agomIRC feels elegant by today's standards. A full-featured IRC client for Windows that includes an entire scripting language and yet it consumes less RAM than calc.exe.
- sedeki 4y agoHah, mIRC was a long time ago! I'm a bit nostalgic. :) But is it really true that vanilla mIRC consumes less RAM than calc.exe...? That'd be impressive, if I could believed that!
- Sohcahtoa82 4y agoJust popped open Task Manager... calculator.exe is at 74 MB working set, 24 MB Memory (private set), 50 MB Memory (shared working set), 48 MB commit size. mIRC.exe is at 31 MB working set, 13 MB Memory (private set), 18 MB Memory (shared working set), 38 MB commit size. Doesn't matter which value you use for "How much memory does this program use?". mIRC is smaller in all of them.
- daveloyall 4y agoThat's not `calc.exe`. I think windows doesn't ship with calc.exe anymore. The fair comparison would be the last version of mIRC that was current when the last version of calc.exe was shipped. I don't believe that mIRC would use less RAM than that... Certainly not when you were actually USING it! (including reconfiguring the size of your scrollback, for example..)
- layer8 4y agoYou can still get it from https://win7games.com/#calc https://win7games.com/#calc (via WinAero).
- assttoasstmgr 4y agoThe OG calc.exe still ships with the LTS[B,C] versions of Windows 10.
- leobg 4y agoKeyboard Maestro. It’s a tool for automating common tasks on a Mac. A real programming language is certainly more elegant for writing programs. But what I find elegant about Keyboard Maestro is that it lets me add programming logic to any application on my Mac, quick and dirty.
- leobg 4y agoAlfred (Mac launcher)
- lycopodiopsida 4y agoAnd LaunchBar - also a mac launcher!
- AlanYx 4y agoemacs, both for the elegance of its elisp-machine design and for how good its self-documentation is.
- pixelmonkey 4y agoI'm limiting my choices to open source with good explanatory write-ups or presentations. Graphite for "simple" time series storage: https://www.aosabook.org/en/graphite.html https://www.aosabook.org/en/graphite.html HLL datatype (PFCOUNT, PFADD, PFMERGE) in Redis for counting unique items in a set: http://antirez.com/news/75 http://antirez.com/news/75 Data structures and algorithms that make Lucene & Elasticsearch fast (video): https://youtu.be/eQ-rXP-D80U https://youtu.be/eQ-rXP-D80U
- pphysch 4y agoAWK Match this, do that.
- 1vuio0pswjnm7 4y agoI use flex for that purpose. Equally as portable and a bit faster than AWK. But I cannot call flex elegant. :)
- phoehne 4y agoAfter 50 years it doesn't seem like it, but C has managed to survive this long because it's a solid all-round player from the bare metal to web servers. It's simple enough that you could probably implement a fairly capable C compiler in assembler.
- tenebrisalietum 4y agoC has managed to survive this long because of: - Unix and its inertia - Licensing of Unix allowing it to proliferate to the masses and being used for education - because it is simple enough that a compiler can be quickly brought up for any new ISA that appears, as long as it looks enough like a 70's-80's CPU architecture enough for pointers to work. Elegant? No. - Making pointers and arrays synonymous is elegant only from the CPU's perspective. - The pointer syntax sucks. - Casting does weird stuff sometimes. - Bool - how hard is it to get true and false right? - Everything being an operator leads to the confusion between assignment and equality which is inelegant. It was cute in the 70's when you had limited disk space but sucks now. - `void *` being used for function pointers is not elegant. - Threads and any notion of multiple CPUs doesn't work well without a lot of libraries or help. - An elegant language would have not cared about the underlying CPU memory model, but C had to be enhanced for 16-bit x86 segmented memory models. - If you are using intrinsics or whatever to generate assembly opcodes (e.g. vector instructions) because your language doesn't support them, you are surpassing the limitation of your language in an inelegant way. - An elegant language makes things like the IOCCC impossible.
- t-3 4y ago> - Bool - how hard is it to get true and false right? I think this is actually much more complicated than it seems at first thought. There are a lot of different ways to represent booleans, each with their own advantages, and then the hardware has it's own ideas that might need to be considered. I'm not sure that there's any way to do bool that doesn't lead to pain somewhere.
- kevin_thibedeau 4y agoC23 is making true and false _Bool typed values.
- madjam002 4y agoMost recently Tailscale, I enabled it on NixOS and minutes later had a secure VPN set up.
- mackrevinack 4y agowas just about to mention this as well. considering it only takes 30 second to install and log in on a device, and then it just works without any more setup... can't really get any more elegant than that
- constantinum 4y agoVim Adobe Indesign Monodraw GNUcash Django Beeminder
- jansc 4y agoRabbitMQ. It just works.
- cedws 4y agoNot sure if games count as software but if they do - Factorio. I don't play much these days but I'm still utterly stunned how a relatively small, humble team of developers can build something so robust and performant. Granted, I've never really tried pushing the limits, but not once have I felt like the game is even breaking a sweat while processing thousands of machines, belts, and bots. It's a miracle to me. Their devblogs are really nicely written and you can tell they are extremely passionate about getting things right. In my experience that's a rarity now. And of course, it's a brilliantly addictive game.
- ibejoeb 4y agoIf they're made of software, they count
- ramesh31 4y agoDoubly so that the game is written entirely in native C++ and is fully cross platform compatible (mac/windows/linux) with a tiny binary size. The responsiveness and performance of that game even with thousands of agents onscreen has always impressed me.
- kjeetgill 4y agoSimilarly, mindustry is written in java by a single developer freshly out of college and is incredibly performant for the amount of moving pieces rendered at a time. Granted I'm not in video games, maybe it's not too hard, but I thought it was really cool. It's also an incredibly cool, interesting game design. If you like Factorio + Tower Defense you should check it out.
- jpeter 4y agoFactorio is able to handle insane base sizes https://www.youtube.com/watch?v=3QjAhxxKWIk https://www.youtube.com/watch?v=3QjAhxxKWIk
- AnIdiotOnTheNet 4y ago> I'm still utterly stunned how a relatively small, humble team of developers can build something so robust and performant. I'm not sure that, on the whole, robust and performant software can be put together by teams much larger than that.
- drunner 4y agoI can't speak to the quality of the code base (I don't know go), but as a user caddyserver is pretty great.