Occasionally I get asked for advice on the best software to use for various tasks, and while I can’t claim to know what is objectively the best software to use for every scenario I can at least provide some information on software I like to use for various daily tasks and a brief description on why I use it.
Web Browser - Firefox
Site: mozilla.org
Cost: Free
License: Mozilla Public License 2.0
When the choice of major browsers comes between something primarily developed by people trying to cram advertising into every inch of your life, and something primarily developed by a foundation who's guiding principles promote an "open and accessible" internet where "Individuals’ security and privacy ... are fundamental and must not be treated as optional" that "must enrich the lives of individual human beings" the choice to me becomes very easy.
Firefox's configuration options are second to none, there is no shortage of plugins for those that like to enhance their browsing experience. I recommend that all Firefox users install the EFF’s “HTTPS Everywhere” plugin to ensure that your connections are always encrypted where possible and also the “Privacy Badger” plugin, which adds extra protection against trackers that appear all over the net.
People like to compare the speed of browsers to decide which to use, but with first place changing frequently between the various options and the differences in speeds between browsers being marginal it isn't much to go by, particularly when these tests probably don't reflect well in a real use case with the browser set up just how you like it.
I have heard concerns that web applications may not work correctly or look right in Firefox, but I am happy to report that I have never had any issues of that nature.
Email Client - Thunderbird
Site: thunderbird.net
Cost: Free
License: Mozilla Public License 2.0
Though I usually use neomutt to keep an eye on my inboxes Thunderbird is a great option for those looking for a fully featured mail client. Thunderbird is developed by Mozilla and is packed with useful tools. In particular I am very fond of its unified mailbox, its ability to quickly search through and sort thousands of emails with ease and its intuitive user interface.
Text editor & IDE - Vim
Site: vim.org
Cost: Free
License: Vim License
My development environment is something I spend a lot of time in, so it is important for it to be streamlined and efficient. Over the years I have experimented with a lot of IDEs and text editors. The likes of Eclipse and Netbeans are great for their out of the box features, but I have had issues with stability when it comes to extending them to support more. Editors like Atom and vscode are a total mess and seem to be far too focussed on flashy features that are ultimately useless, and are ultimately overkill considering the simplicity of their MVPs. Vim is just right.
For new users Vim can be pretty daunting. Before Vim became my primary editor I tried using it on many occasions, usually giving up after having difficulty with the most basic of tasks like editing a document and saving it, however if you put in just a few minutes to learn how to use it you won’t regret it. For the most basic usage you can edit your file by hitting “i” to go into “insert mode”, hit escape to exit out of insert mode, use “:w” to save (or “write”) your file, and use “:q” to quit Vim. Past that I recommend looking up how to use features such as find and replace, tile management etc as and when you need them. When I committed to using Vim I learned most of the commands and shortcuts I need in day to day development within a couple of days or so, and after that steep leaning curve my development has never been more efficient.
On the surface Vim is just a simple, terminal based editor but it is capable of big things. I mostly Vim for C++, PHP, and Python development, and it has great syntax highlighting, code completion for all of those once you install the respective plugins required. For C and C++ in particular Vim has great support for Makefiles and GDB, highlighting errors when they occur and allowing you to set breakpoints and other tags for debugging.
Vim is highly configurable so if you don’t like something it is likely you can change it. If there is something you are missing plugins are also very easy to add.
Music Player - cmus
Site: cmus.github.io
Cost: Free
License: GPL-2.0
When I am using my computer I pretty much always have a music player open, so it really doesn’t make much sense to use a music player that uses a lot of system resources; luckily cmus is a nice, capable music player that has a low impact on my system.
Cmus supports all the major audio formats, online radio streams and even support for cue files, the latter being a feature that I have found difficulty finding in even the biggest audio players.
Cmus runs in the terminal and may be a little daunting for new users but there really isn’t a lot to learn. For the most basic usage, once you are in cmus you can hit ‘5’ to access the file browser, from which you can play files directly or import them into cmus using the ‘a’ key. Once imported you can hit ‘1’ to view your library where you can use the arrow keys to select an artist, hit ‘tab’ to browse albums and songs by that artist and press ‘enter’ to play the album or song selected. Hitting ‘c’ will pause and play the track, the ‘s’ key will toggle shuffle mode, the ‘r’ key will toggle repeat mode and the ‘plus’ and ‘minus’ keys will set the playback volume. When you are all done you can hit ‘q’ to quit cmus.
General Media Player - VLC
Site: videolan.org
Cost: Free
License: GPL-2
VLC is a great choice for video and audio playback. It is probably one of the largest media players out there so its development community is very active, it has out of the box support for all major video formats and can read media disks and subtitle files and with no problems. Though VLC does support playback for media files on the local file system it really comes into its own with its capabilities of media playback over the network, supporting the likes of UPnP and Youtube and can even be used to stream your desktop or movies to other systems on the local network or over the internet. VLC has many options when it comes to configuration and can even be reskinned to make it look any way you like.
Image editing - GIMP
Site: gimp.org
Cost: Free
License: GPL-3
Though its name is always sure to give Tarantino fans a little giggle the GNU Image Manipulation Program is a very powerful image editor, boasting many features people think are unique to non-free image editors like Adobe Photoshop. GIMP is great for basic tasks such as colour correction on photos and basic paint-style drawing right up to cutting objects or people out of photos entirely, editing blemishes from photos and scripting the generation of effects and advanced patterns. GIMP has great cross platform compatibility and another highly active development community.
Office Suite - LibreOffice
Site: libreoffice.org
Cost: Free
License: Mozilla Public License 2.0
Admittedly there aren’t a lot of options when it comes to full ‘office’ software packages capable of being a replacement to the likes of Microsoft office in the free software world, however LibreOffice, (a fork of OpenOffice) is a great, free replacement with no shortage of useful features across its various tools.
LibreOffice comes with support for modern Microsoft Office file formats such as docx Word files, xlsx Excel files and pptx PowerPoint files to name a few, so if your colleges, tutors or associates aren’t using LibreOffice there is a very good chance you will still be able to access and edit any documents they send to you.
If you are switching over from Microsoft Office you may be happy to find LibreOffice has a nice, clean and easy to use interface that is much more like Microsoft Office 2003, before they introduced those ugly, unintuitive “ribbon” menus in Office 2007.
Another really nice thing about LibreOffice is the built in support for Google Drive and One Drive, meaning that if you, or anybody in your team uses those services you can edit those files directly from LibreOffice rather than having to open up your browser and download files or edit them in their respective browser applications.
GNU/Linux Distribution - Debian
Site: debian.org
Cost: Free
License: Various, see debian.org/legal/licenses/
There is plenty of choice when it comes to GNU/Linux distribution, and different distributions fit the specific needs of different users. I use Debian for its stability, making it perfect for use on both my servers and my local system. This stability does come with the shortcoming of packages not always having the latest features, but in my my opinion that isn’t much of a detrimental compromise, and in cases where I would rather have the latest features in a program the option to get compatible binaries straight from the software developer or build binaries from source is always available. Debian’s development community is again a very active one, with a healthy focus on software freedom, transparency of problems and a firm stance on anti discrimination. See debian.org/social_contract. Unlike many distributions Debian isn’t trying to sell you something so its also comforting to know the interests of its developers aligns with that of its casual users.
At installation Debian offers a “minimal” image which allows you to select which packages you want on your system yourself without the bloatware included with many distributions. As a result of this minimal setup being available my system idles using around just 100MB of memory leaving me with plenty of free memory for heavy tasks; a very nice statistic when a lot of modern systems now use multiple gigs of memory when not doing anything.
Window manager - I3
Site: i3wm.org
Cost: Free
License: BSD
I3 is a great window manager for those looking to get the most out of their screen space. Tiling window managers are great for displaying what you want to see in a clutter free way and I3’s configuration is perfect for those that want to customise the look of every corner of their window manager without having to look much further than a couple of config files.