What’s the most under-appreciated software?

ben profile image Ben Halpern ・1 min read

What code floating around doesn’t get the credit it deserves?


markdown guide

Microsoft Excel. Seriously.

  • The only database that the average person can use without training
  • Handles gigantic data volumes with extreme efficiency
  • Does everything. Like, I regularly discover new features, and no matter how obscure they are, they always work perfectly
  • Does massively complex calculations without a hitch
  • A non-negotiable dependency of almost every industry and profession
  • Dependable and consistent in a way that 99% of software cannot hope to achieve
  • Completely scriptable

The only database that the average person can use without training

I basically have no idea how to actually use excel 😄

I agree with you, but I still never wrapped my head around how to use this piece of software effectively...


Hard disagree. It's over appreciated.

  • It does not handle large volumes of data. I cannot get it to process a simple 50MiB CSV file on my desktop without it freezing for a while.
  • It does not understand timestamps/dates property. It assumes you have a record for every minute, otherwise 14:01 and 14:35 are put next to each other.
  • It does not properly handle numbers. Internally everything is stores as a IEEE double.
  • If a cell contains only digits, and assumes it is a number even though it cannot handle it. "000005234523453249587234985" is simply ruined.
  • It is the main competitor of a lot of specialized software. I work on software for the logistics sector, a big competitor of our business is MS Excel. If you ever wonder why things went wrong with your online order, there is a fair chance some company used Excel, and messed something up.
  • It is too easy to use, but too hard to use. It's like MS Paint with numbers.

PS, LibreOffice Calc does not solve many of those issues.

PPS, If somebody knows something between MS Excel and R to handle larger data sets to plot some graphs, please tell me.


If a cell contains only digits, and assumes it is a number even though it cannot handle it. "000005234523453249587234985" is simply ruined.

A quick note on this: If you input '000005234523453249587234985 into the cell it will store as a string and maintain the leading 0's. This is a pain for working with, but does make the numbers display nicely.

I recently found out about this because a user was inputting numbers like this and breaking a formula later on the page 🙃


I see a lot of these as productive compromises rather than bugs, but interesting thoughts in any case. It turns out that all software is built on compromises, even Excel.

sql database + sql viewer (Jetbrain's datagrip my preference, flyway versioning) + python notebook / jupyter and excel should be entirely dropped from any usage.

Excel is a nightmare for any programmer - no file format backward compatibility, every version has own new file format. It was meant to be just a presentation / visualization tool with simple calculation abilities - now it becomes a 'all-mighty' super-tool nightmare which is being used as database. No scheme versioning, no data sharing, data corruption. It should be abandoned entirely - it's not super easy, it's just told to be easy.


I was not a big Excel user until Joel Spolsky taught me a few things. youtu.be/0nbkaYsR94c

I started using it (and Google Sheets) more and more learning just how powerful and expressive they are.

As you said, there's lots to discover.


Been a big fan of Excel for many years. I built a relatively complex “app” in it during university, a building resource calculator for a strategy game I was playing at that time.

Nowadays one can even turn spreadsheets into mobile apps with little effort: glideapps.com/


The only database that the average person can use without training

I don't have any training. I can't use Excel, aside from filling in values and clicking together basic equations with the GUI. Can I use Excel? Yes. Can I do anything useful with it? No.

I think I get where you are coming from here: Excel is probably easier to learn for non-technical people than other tools for data manipulation and statistics, such as R or Python. But you'd still need training to properly utilize Excel.

Handles gigantic data volumes with extreme efficiency

That is one argument I don't subscribe to at all, I'm with Michiel Hendriks on this one. Everything over ~2500 columns, without complex macros or anything, and you'll wait for it to load way longer than what feels necessary.

A non-negotiable dependency of almost every industry and profession

Aside from the fact that this doesn't say anything about the quality of the software, that's not because of Excel per se, or the lack of alternatives, but a result of Microsoft massively and successfully pushing it for decades.


Excel is also great for cleaning up data! I use it whenever I need to change formatting for a list of records- remove spaces, add commas, etc

I also love Excel's concatenate feature, which comes in handing for quickly creating arrays and objects from strings. In terms of data handling, it definitely is the best quick tool to use


The only database that the average person can use without training

Should an untrained person use a database?

This is a kind of advocacy that I hear a lot. "If you use MySQL (or any other DB) you cannot ask your secretary to manage a data base" This sounds to me like "If you use a dentist drill you cannot ask your children to cure your cavities"


Well, technically Excel is Spreadsheet Software.


I discovered Excel a while ago and it blew my mind :)


At least you didn't say "MS Project". :p


What would you use instead? The problem that Project tries to solve has always struck me as a pretty tricky one. Not that I've looked in a long time, but I've not seen a better solution.

It's more the history/lore behind the project (if people working at Microsoft at the time of its initial release are to be believed).

That said, it's a horribly misused piece of software. Seems like 90% of the people that decide to use it (and not much smaller percentage of the people that should know how to use it) actually know how to use it effectively.


I know someone who can do anything in Excel, like with macros


Everyone has different interpretations of this question, which is fun.

I'd answer this question with...


It is installed in practically every computer, phone, etc. on earth.


We take for granted how epic a technology git is. It takes on some incredibly difficult problems with grace. Even if its interface is confusing or dangerous at times, its underlying mechanics are so much more sound than most software.


Another one of these ever-present pieces of software that just runs on so many machines and has been getting updates and new features for decades.


I don't think git is underappreciated at all. I mean, Git{Hub, Lab}. Everyone uses it.


That's true, but I still think the shear excellence of it gets taken for granted by the average developer. The fact that we can build software in a distributed manner using this tool is freaking magical.

And github, gitlab get more of the credit. (gethub should definitely get credit to changing the way software is developed through.)


Yes, everyone uses it. And everyone uses probably about 10% of its capabilities, while thinking it's all it does (push, pull, merge, commit, maybe rebase).


I'd say that nobody outside of professional development uses it.


Git is 100% underappreciated. Everyone should have to deal with one of the older, commercial solutions to appreciate it. Working with Subversion and Rational ClearCase definitely set me up to love git.


Team foundation server, perforce, RCS... I still shudder.


+1 for SQLite, I wasn't aware about it until I used it in my recent assignment. It is very powerful storage component (remember, I am not saying database server). I'd definitely consider it as a replacement of storing data in files.


Ditto to SQLite. That's something a lot of new Devs first start playing with when learning SQL.


+1 for SQLite. I was doing a diff between couple files(several GBs). The Unix tools based on estimate would have taken 3-4 hrs. I loaded them into SQLite, used the MINUS operation and the job was done in 5 mins. Remarkable piece of software for crunching locally stored data.


Maybe its dumb, but I started using github to log any code I write from scratch, even just method challenges in Java(I'm still learning). Mainly as a way to keep up activity on my account, and also I can look back if I'm unsure how to do something. I also have my personal site hosted on Pages. Nice to have free hosting. I just pay for a custom domain.


I completely agree with all those, especially sqlite, its built in to android and is super easy to use and just WORKS.


Sqlite isn't really "built" into anything as there's no DBMS to speak of. Every programming language simply contains modules to interact with its files almost as a rite of passage.


I'm often in awe of Git. I never had to use Subversion or its predecessors but I still often give silent thanks to Git


For me, I've been doing a lot of Web API work lately, so Postman has been invaluable in testing my code. It lets you build client-side requests in many formats and keeps track of them all for later use.


Never heard of it, but I just went there and it looks great.
I love the name too. 😊
Thanks Ben, I learn something new everyday!


Not sure why I'd use that over Postman though 🤔

I think the advantage is that is web-based, unlike Postman which you have to install.
I've tried to use it but it can't really replace Postman, but maybe they'll eventually make it good enough. It's open source.

I see, I tried it and I definitely prefer Postman over it. Open source is a plus, but not more than function :)

Hi there,

Thanks for trying out Postwoman. It's still a young project so we are still getting around implementing features you might expect.

If you won't mind, opening a feature request on our GitHub for the features you want, we could get into implementing them 😊


Postman used to be my go to rest client, but after a friend of me suggested Insomnia I don't see myself going back.


Thank you for the recommendation, looks amazing - will try as soon as I get to work


Wow, a cure for my sleepless nights 😊
Thanks Tore! That's another one I never knew about.
Everyone is so helpful here on DEV.


What does Insomnia better than Postman?

I find Insomnia to be easier to use. I needed to read the docs once and after that everting just made sense for me.
With Postman I more frequently had to google my way through the bit more advanced features.


Definitely love insomnia. Use it pretty frequently.


Same. I find Insomnia a lot faster and easier to work with pretty much haven't touched postman since I switched over to it.


+1 for this. Postman has been essential for me when I'm making an API for my own app and trying to test it, or one-off testing the API of a system I'm trying to integrate with.


After I discovered REST Client for VSCode I stopped visiting Postman often.

I don't have to switch tabs anynore...😊🤩


Probably something like openssl. It is responsible for so much of the security provided by TLS that we take for granted on the web and is maintained by just a few people.

It is used by over two thirds of websites and a single vulnerability in it cause cause widespread damage.

There's a lot of other critical infrastructure software that falls in this category too.


Not sure how much "appreciation" openssl deserves these days. I think the general rule is you don't implement security yourself and everyone has taken that to an extreme with the particular tool.


OpenSSL was run by mainly 2 people, and only 1 could almost be fully employed. Where was big tech to support these people?

Sure, there have been a bunch of major bugs in it. Just like other SSL/TLS libraries.

So yes, OpenSSL is underappreciated.


Literally anything built free and opened source is under-appreciated. So much of the modern tech world is built on essentially "free labor".

Gotta stop one second and appreciate that fact not everything costs $, but everything does cost time.


Netlify - Just how easy it is to deploy your frontend apps with netlify for free.
git - Git is an extremely powerful utility that I'd clearly not live without.
StackOverflow - Just saved me right now after hours pulling my hair.


I'm a huge fan of Netlify's branch previews too :) Makes it so easy to show folks unfinished / unmerged work without them having to pull down and build a whole repo.


Netlify is really amazing and easy to use.


None of these are underappreciated though! Most of the programmers uses them on a day to day basis all the times..


what I mean is we really use this tools and software as a norm for free and don't really think about what goes on under the hood.


Netlify one is true. I have used netlify a lot in that regard


Lots of people complain about cell signal coverage and quality. I used to too. Then I worked at Ericsson building software to help the people who engineer the cell towers to optimize their performance.

Wow, there is a lot that goes into cellular software to deal with the constraints of physics and the ever increasing expectations people have (and the increasing number of people/devices)!

Imagine you are talking to someone while driving (or on a train) and the signal needs to hand off from one tower to another at 65mph without dropping quality. Or you are trying to meet with someone near Shibuya Crossing with 2,500 other people and there are dozens of cellular antennas from all different carriers pointing in the same direction but the interference can't drop your call, or if it does, it needs to correct in less than a second so you can still hold a conversation.

My team had to deal with clusters of towers, each sending multiple terabytes of data every 15 minutes. We didn't deal with the software of the towers themselves but had software processing the data sent from them so engineers could then analyze if they should point the antenna in a slightly different direction, or change the gain of an antenna, or if neighboring antennas weren't handing off to each other properly.

The fact that we complain so much about it shows cellular software is very under-appreciated.


I worked for a company that did GSM network optimization for Telcel, in Mexico, and we offered services through Ericsson.

Definitely an extremely interesting business problem. Among other things, I was tasked with building a C# interface (which was essentially not much more than a web app wrapper) with a Google Earth plugin to show the network state on the map, locate traffic, with maps for interference, traffic, handovers, etc.

Was fun.


Very cool. That reminds me I worked with teams in Croatia and Spain who were making similar mapping functionality for an internal web tool. It used the data my team processed. My favorite map to look at was the visualization of neighbor relations

(@anras573 you should take a look at what ANR is in that link, too. I had forgotten about it in my response to you. There are many more acronyms mentioned there you can look up and get a better understanding of this stuff)


I always forget stuff like that whenever I have a bad reception 😅
Is there anywhere I can read more about this stuff? 😃


Heh, and no one likes getting the bill. My job before Ericsson was working on rating and billing software that needs to handle different kinds of events, several hundred-thousands a second, that need to be processed in accordance with the subscriber's plan so each person will be billed correctly according to text/voice/data rates that may change depending on roaming, or if the destination is a family member, or a toll-free call, etc.

This video gives a very high level overview youtu.be/iMduQ96N1F8. All the training I had was internal, on the job, so I don't know what else to send. You are probably very good at searching, but if you didn't know to search for OSS or BSS, you might not get far. When I worked at Ericsson, we got raw logs from cell towers (which aggregate multiple antennas) and batched data from OSSs which aggregate multiple towers. Both had different data that was important to keep track of.



Seriously, I think 75% of web development would be into chaos if npm suddenly stopped working. With that, a lot of IT companies.

What's actually quite scary is that npm is a private company that's still on the edge of financial collapse, and we don't have a backup plan ready.


Doesn't that make npm over appreciated?

So much work relies on it, and it is still a really volatile piece of software. I don't use it that often, but every time I need to use it, something is broken in some way, again. NPM is the Windows Me package/dependency managers.


One of my coworkers would agree with you. I'm still too new to it, though I grabbed some stuff a couple of weeks ago and kept seeing warnings about vulnerabilities and such and I was like, "OK, what the hell am I supposed to do about this?"


Considering most people don't know Android is based off of it, I'd have to agree.


ls is the most reliable piece of software I use daily!

$ which cd
which: no cd in [...]

Fun fact, cd is a shell command, and not an external program like ls, so really, it's a bash feature :D (at least on Linux).


Homebrew, apt-get, chocolatey:
hard to imagine how much time would be wasted installing software without those


Windows Phone!

I sported a Lumia 630 back in the day and loved it. WP was way ahead of its time.

  • A secure app store with only Microsoft-verified apps.
  • No viruses.
  • Fast as hell: The memory management was really well done. I still have my 630 and it runs the same as it did on its first day.
  • Ergonomic: Microsoft really understood the ergonomics of using a touchscreen on a small device. They menu bars were at the bottom of the screen rather than the top, the icons/typeface were big. Literally every element in the WP UI toolkit was thoughtfully designed.
  • Best. Keyboard. Ever.
  • iOS and Android adopted many of its features: live photos, menu bars at the bottom.
  • Tiles: Do I need to say more? So fluid!
  • Restrictive API: This gave apps very limited access to the resources making it a very secure system.

Perf perf.wiki.kernel.org/index.php/Tut... This thing is awesome. If you're having trouble isolating performance issues or want a quick and dirty view into what's going on RIGHT NOW on the cpu, perf is your jam.


I hate saying this... but PowerPoint.

Excel takes some knowledge, but anyone can make a PowerPoint. It’s like MS Paint for the office.

I worked somewhere that didn’t let you use rich text in email. Every email was just a PowerPoint with what they wanted to do in the email but could not.

Could not send a file or a image? Embed it into the PowerPoint to send... no joke.

Have a point to make, make 52 slides to say “No”.

So much of business Is just PowerPoints. Hell, “The Patriot Act” show in Netflix is just someone talking over a PowerPoint on a stage. Slightly more flashy than a TED talk.


Every time I see a Powerpoint presentation, I die a little. Mind you, I can't really blame the tool for people sucking at preparing presentations.


Flycut, a very handy clipboard manager for Mac OS, has made copy pasting much more handy. It allows you to scroll back to the previously copied values (the amount of values kept in memory is configurable).

Sadly I haven't found an equivalent that does the same for Linux nor Windows forcing me to work with Mac OS 🙈


I use KDE Plasma, and it has a built-in clipboard manager.

I've used Gnome 2 and 3, Cinnamon, Openbox, LXDM, and probably others, and plasma 5 is seriously the most fantastic DE I have seen. If you haven't used it and would want to go back to Linux, do give it a try!


Ditto does similar stuff on Windows


I use Alfred on macOS, which includes a clipboard manager that does that and Alfred also does a lot more. I severely underuse that software.


I use Clipy (another clipboard manager) something like every 15 seconds. Sadly, it's only MacOS too.


I Use Ditto on Windows, really handy!


I think it's Web browsers regardless if it's Firefox, Brave, IE or Chrome.

Web browsers is one of those most underated piece of software around.

Without it we won't be able to access Dev, Google, Stackoverflow that we need to use it as part of our daily lives.

It's becomes a topic of discussion when Web Assembly is used to talk about it


systemd, life would not exist without it.
Serious mode on, Its not really under-appreciated but I think nodejs and npm(not you node_modules) changed a lot in web development, think how many things wouldn't exist without it, plus, its very easy to debug you just rm -rf node_modules && npm i, okay I'll stop.



I'd vote Factorio. Praised by its fanbase, I don't see much talk about it elsewhere. They do really impressive dev updates talking about the challenges they face with the game.


Alfred for macOS. It's often dismissed as just a Spotlight replacement, but it can do so much more. The workflow and snippets/text replacement features have saved me tons of time over years.




It’s used as the basis of the PS4 operating system, and tons of the networking stack have been included into various OS’s (including Windows!) since it’s very efficient and the BSD license is very liberal for inclusion into commercial products.


OpenSSH, and a few years ago OpenSSL (look where that got us).

At higher level:

  • Calibre (everything ebook related)
  • Inkscape (vectorial drawing tool)
  • Markdown/LaTeX/RestructuredText
  • Bash, after a gazillion years still defacto shell, I've tried Zsh and Fish but they are :slower and just add things I don't care about (in facto my current Bash prompt looks better than any available theme for those) and when you get used to them you ssh to some standard machine and all the muscle memory goest to hell.
  • All RSS/Atom related: simple, fast, non-traceable, clean.

Finally not SW per-se but a PL; C, people talk about it like a dead language even tho maybe 80% of their daily SW is written on it, your OS, Webserver, Browser, if it runs fast is probably C, I don't include C++ here because some love goes to it but still very under-appreciated. just a few years ago, with Rust we got some potential replacement for C++, we are not even sure if it'll come as performant as plain C, so we have C for maybe decades ahead and still looked down as a dead language.


🔢 Calculator - everyone uses it, but don't bother at all.


I'd say that Rails is the most under-appreciated framework @ backend... little gems need love too :(



A great language for writing frontend applications. Not getting anyway near the popularity of JavaScript and React, although it is a great alternativ.


I use HeidiSQL mostly but I still use phpmyadmin now and again.

I automate all of my server builds and configs using bash scripts instead of Docker, etc. Powerful, especially when using sed to modify system configs.


Scroll Reverser, because macOS doesn't let you divorce the trackpad scrolling direction from the mouse scrolling direction.


Wish I knew about this one when I was using Mac


Not sure if this counts, but I don't know what I did before OneTab. Actually, yes I do- I used to have windows and windows of sites I didn't want to lose, but hadn't the chance to review yet. but I love that with OneTab, I can easily collapse my open tabs into just one


Not sure if this is under-appreciated or not but I've recently been using bear.app for organizing blog post drafts and I really love how simple it is to use and how nice it is to look at. Something about the UX just feels perfect to me.


Figma, because they make it so easy to build a prototype or mock-up for free!



It's the reason why video conferences and screen sharing apps are no longer awful.

I work a lot with Python, so I'm also going to mention:


Nextcloud, for providing a self hosted, open source and federalized alternative to Apples and Google's cloud consumer products.


Well, more like a nice gimmick, but nobody else seems to know genact, a small CLI tool to generate terminal activity. "Pretend to be busy or waiting for your computer when you should actually be doing real work!"
Already wrote a new module on my own, was a neat experience and the developer is super helpful.



RavenDB ! This easy to use (the LinQ provider is one of the most advanced in the market), easy to install for HA, "It just works" really applies here. There is a lot of things in the server or client lib that prevent you from shooting on your foot. It should be a mainstream tech.


Autoit is just amazing when you have to automate some stuff on windows. I developed a lot of stuff and tools with it before C#. And I have to say it : simpler and cleaner than .NET but a little bit less powerful.


Surprised no one mentioned Traefik yet.

I've been fighting with Nginx to get routing done to some Docker containers... It was extremely fragile. If your routes aren't up, it simply refuses to start. Traefik just uses dynamic configuration to find your containers, and you just need to add a few labels. No need to make a graph of which containers you need to start before you can use nginx!


Working against all odds, newsfeed eradicator has saved many an hour of me scrolling through fb before it became irrelevant


Netcat. I’ve used it for many things like file transfers, building mock servers etc.

Example usages: varonis.com/blog/netcat-commands/


And how could I forget about dev.to itself? It's awesome!


✊ Arch Linux. People often think it's hard and targeted at advanced users. Actually it's not only simple, but also easy. You just need to have ability to read their awesome wiki. That's it! 👍


IMO Linux is often taken for granted.


Non-trivial algorithms that we are so far removed from that are at the foundation of so much that we do:

  • (Efficient) Regular Expression engines
  • Diff software
  • Probably more!

Microsoft Access
You can have a database like postgress for asp without sqlserver. besides you can have a full crm inside.


Reasonml. Type safe, fast, looks like javascript (but it's not), compiles to javascript.