Coder Social home page Coder Social logo

blog's People

Contributors

ascclemens avatar

Watchers

 avatar

blog's Issues

Writing code: comfort reigns supreme

I have gone through many iterations of my development environment. Inevitably, I always come back to my MacBook Pro for writing code, and it's because it's just so comfortable.

I love my desktop. I built it maybe a year ago with some nice hardware. Originally, I didn't intend to do any development on it; I only intended to game on it. However, over time, I ended up doing more and more than just gaming on my desktop. It started with just Windows 10 Enterprise LTSB 2016, but I've since had many additional operating systems installed on it.

NixOS

At some point, I discovered NixOS. NixOS is neat in concept. I really love the idea of it, and it was very easy to set up and get a hang of. What was not easy, however, was dealing with dependencies when programming. I couldn't compile my code without opening a special shell with a nix command to compile inside of.

It was a lot of hassle to get certain things working, since everything is designed to work in an environment unlike NixOS.

I don't have the same keyboard anymore, but the first keyboard I used with my desktop was a wireless Logitech keyboard, and it felt slightly off to write code with it. The Fn key was in the wrong spot compared to my MacBook: the MacBook has the Fn key left of Control, and the Logitech keyboard had the Fn key to the right of Control. These little things were annoying and didn't work as expected on a Linux machine.

I still think that NixOS is a great OS to use for just a casual desktop not used for programming. It's very safe to experiment, because you can always roll back to a build before you made changes that broke your environment.

macOS

I do most of my programming on my laptop, which has macOS on it. It just so happens that all of my desktop's hardware is compatible with running Hackintosh, so I thought I'd go ahead and install it. My MacBook has an i7 installed, but the overclocked, properly-cooled i5 in my desktop actually compiles faster.

At this point, I had moved up to a CODE keyboard, which I like a lot, but still doesn't have the familiar feel of Fn+Arrow. Instead, I have to use the Home/End keys, which slows me down when I'm moving through lines of code.

I immediately realised I would never write any code on my desktop using macOS. I had everything set up just how I liked it, but the environment and workflow were just different enough to make it a pain. The lack of trackpad meant I had to use my mouse for switching between spaces (left and right press on mouse wheel) and use my thumb mouse buttons for showing the desktop and showing all the windows, which felt awful.

I'm used to pressing Fn+Right for End, Fn+Left for Home, Fn+Up for Page Up and Fn+Down for Page Down. I couldn't get those to all work correctly, and I reverted to writing code on my MacBook.

Arch

I was sitting on my laptop and casually chatting on IRC, and someone mentioned their Arch installation. I hadn't booted up my desktop's macOS disk in ages, so I wiped it and followed the Arch Wiki's guide to installing.

I essentially set up the same environment as I had on NixOS, just not using Wayland. On NixOS, I was using sway and Wayland, but now I'm using i3 and X on Arch just because it's easier. Getting Wayland to work was a huge pain, even though it provided many benefits (no screen tearing by default was a plus).

With the ability to just compile code normally with the dependencies installed, I could easily get into writing code on Arch, or so I thought.

While everything worked great and compiled fast, I still found myself swivelling in my chair and picking up my MacBook to write code – even though I was sitting at my desktop. I like the workflow I have set up on Arch as well as I like the one on macOS, but the controls and keyboard bring me back to my laptop.

Don't get me wrong. I love my CODE keyboard and it feels much nicer than my laptop's keyboard. However, I've become so used to writing code on my laptop's keyboard that it's second nature, while writing on my desktop feels slow and results in more typos.

The real nail in the coffin of writing on other systems for me is that I can't carry them around. With my laptop, I can lay on the bed, sit in a chair, or even go to the bathroom and not lose my place. That's not always a good thing – sometimes you need to stop and reflect to make better code – but it's really convenient.

Every now and then I'll write code sitting at my desktop, but I'm more comfortable writing it on my laptop, usually laying down in some fashion. I don't think any OS on my desktop will beat the feeling of writing code on my laptop.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.