As a front-end developer, my daily tasks revolve around running a development server using Node.js. Previously, I relied on PowerShell or the Windows Subsystem for Linux (WSL). However, a recent encounter with Docker, where I struggled with handling aliased hosts and experienced slow performance within the containers, led me to reconsider my options.
Driven by the desire for a more efficient workflow, I decided to dual-boot Ubuntu Linux alongside Windows 11. My initial plan was to spend my workday in the Linux environment and switch back to Windows in the evenings for gaming and other activities that Linux might not support as effectively.
In my quest for a more streamlined development experience, I built a dedicated Linux development machine using an Intel NUC 12 Pro. This compact yet powerful device offered the perfect platform for creating a robust and efficient development environment tailored to my needs. I essentially built a Hackintosh machine running Linux, with a clean all-in-one machine.
Despite a few rough edges, transitioning over to Ubuntu Linux. For instance, my Elgato Facecam didn’t work, and my audio sources required manual switching after every reboot. Additionally, screen sharing on some apps was a challenge due to Ubuntu’s use of Wayland for the UI instead of X11, which resulted in compatibility issues with certain apps.
However, the appeal of Linux lies in its alignment with server environments, which is particularly beneficial unless you’re working with .NET. Most developer-oriented tools and packages seem to be designed with Linux-type environments in mind. Furthermore, all the apps I frequently use for development, including Google Chrome, Visual Studio Code, Sublime Text Editor, and Gitkraken, are available on Linux.
Most of my tasks are performed on the command line, with the aforementioned apps as my primary tools. One significant advantage I’ve noticed since switching to Linux is the noticeable increase in speed. Tasks such as installing dependencies with npm, building with Webpack, and running a dev server are executed faster, enhancing my overall productivity.
While Linux may present a few challenges, its benefits for daily development tasks, particularly in speed and compatibility with developer-oriented tools, make it a worthy consideration for front-end developers. You don’t realise how slow Windows is for some development tasks until you start working with containers and VMs.