Skip to main content

Command Palette

Search for a command to run...

How to do web programming on an old computer

Published
4 min read
M

I'm JS developer with 13 years of professional experience. I'm always happy to teach my craft.

Programming is a field that doesn't require much financial investment. To start learning or even working as a freelancer, you just need a computer — not even necessarily a powerful one. For many years, I was working on outdated machines, and I found a few tricks that allowed me to stay productive while doing web development.

Operating system: Linux

When I was starting in IT in the 2000s in Poland, the default operating system (OS) was Windows. It was working OK on the new machines, but after a few years and few system updates, most PCs were becoming painfully slow. I hated all the visual bells and whistles that were appearing in the interface with each new OS version: what’s the point of things looking nice if the system is painfully slow?

My solution was switching to Linux. Luckily, all the tools I needed (Apache, PHP, MySQL, Git) were created for Linux, so they were faster and easier to configure there too.

The distribution that worked for me the best was Lubuntu—a lightweight Ubuntu with a desktop interface optimized for older machines. It’s still regularly released, so I would check it out if you are struggling with the speed of your development machine.

Command line as an IDE

To do web development, you need a browser and a code editor. Code editors are often installed as a part of an integrated development environment (IDE). At my first job, I had a bad time trying to use a big, Java-based IDE called Eclipse on an old PC. It was so slow that I was easily distracted while the computer was processing. It was seriously affecting my productivity, so I started searching for faster alternatives.

Part of my job was done over SSH on remote servers, so I developed a workflow based on command line tools. The best part of the command line interface (CLI) is that the tools integrate well by default—you don’t need an IDE to integrate them for you.

Tmux

Tmux is a program that allows you to run multiple sessions of a terminal inside one window. With a bit of effort, you can easily create nested sessions, and a script to start it up for you. I found it so easy to work with that

  • I kept using a CLI-based workflow even when I switched to a much faster machine,
  • I don’t use a second screen: switching between application windows or CLI sessions is efficient enough with keyboard shortcuts to make another screen almost useless.

Vim

Vim is a great command line text editor. Because it’s developed with a keyboard only in mind, every feature is available as a keyboard shortcut. At first, it might give you a headache or two—you will probably have to search how to exit the files. When you invest time in learning it, you will find its interface very efficient. I’ve learned Vim by following about ¼ of the video course here and by occasionally searching for a solution to some problems.

NeoVim is a modern Vim reimplementation. It has a plugin that allows you to use syntax highlighting and suggestions integration from VS Code. The configuration can be tricky at times, but you have access to all the same tools as other code editors.

Git

Git is a key tool for development. The core program has a CLI only. There are some tools promising better user experience with a graphical user interface (GUI), but

  • I was never convinced by those promises, and
  • performance-wise, you will be the safest using CLI.

CLI tools

Most tools used in programming are developed first for the command line and later integrated into IDEs or get a dedicated GUI. This means that directly from the CLI you can access the same commands that you can from IDE — or sometimes even more commands. The only issue can be typing them in without making mistakes, but you can address this by defining aliases.

Low-cost screen sharing

I have never done this outside of experiments, but with SSH and Tmux, you can share a CLI session over the internet. It can be especially helpful if your internet connection isn’t stable enough to carry voice and screen sharing. You can find a how-to guide here.

Learn more

If you are working on a machine with a lower performance, the articles might also be interesting for you:

V

Wow! That really surprised me, you got on an almost full-CLI mode for performance. That's precious advice not only for old machines that lack performance, but also for really bad designed projects that have dozens of memory leaks and zero optimization, where you have to reserve a big fraction of the computer resources for that hungry system and avoid freezes and lags in order to keep your own sanity.

M

Thanks for your comment!

I wouldn't blame the IDEs design—they were built with a different set of constrains in mind (plenty of spare RAM), and my use case were not covered well.

1
V

Marcin Wosinek Oh no no, don't get me wrong, I meant the project, not the IDE. 😜 For example, I worked for some companies that were building systems for government and other companies as well, however, some projects were so badly designed that spending RAM with an IDE would seem like luxury. Because the problems were so deeply rooted that we couldn't fix it in time without breaking the entire schedule, we just kept on doing what we could, sometimes just running the system from command line in order to save RAM that would be used by IDE's to prevent a full machine freeze because Swap memory was close to 100% usage. 😱😱 That's one of the symptoms of technical debt https://stackoverflow.blog/2023/01/30/is-software-getting-worse/

More from this blog

H

How to dev

164 posts

Articles about programming. JavaScript and general advice for beginners in the industry.