Hacker News new | ask | show | jobs
by skoczko 2051 days ago
I've been holding off on upgrading my MBP13 for a few years now because Apple was painfully slow to refresh it. I was ready to order the model that came out in May (with 32GB RAM) but then the rumour about ARM hit the internets so I kept waiting.

Now (I guess always?), it's clear that Apple Silicon is not going to be a comfortable dev environment, at lest not for some and not for a while. JDK macos/aarch64 port is still in dev and so is VS Code. Docker support is probably months away (looking at their roadmap no dev has even started) and when it arrives it's almost certain to be limited to ARM linux images.

Still, hanging on to x86 on a Mac seems like a lost cause and I wonder if I should just change my approach. Rather than getting a beefy MBP, get the cheaper Air with M1 and a powerful MiniPC (NUC or similar) with native Linux. VS Code has a Remote Development (over SSH) feature, has anyone used it? Can it be combined with Docker (on Linux) in a seamless setup where the Air runs VS.Code and all devel happens on the MiniPC through remote coding? Is this setup going to work when VS Code macos/aarch64 is out or is there something else one needs to wait for?

7 comments

Up until this year, I had using BYOD MBP for both work and personal development, I'm on the late 2016MBP and it's been a great setup that allows me to both interact with corporate's exchange server, edit power point slides, WebEx screen share, and still develop for Linux servers.

End of last year, I switched jobs and have been forced onto a Windows laptop. I had been using VSCode, so after fighting with WSL1 and Docker on the work system for months, I installed a dedicated console only linux VM (under vmware workstation) within Windows and I use the VSCode's SSH remote option. It's pretty much seamless. The VM runs docker "natively" within it, the core part of vscode is running within the VM itself. There used to be a bit of confusion if you open a new vscode window, then you had to use that to open a second ssh-connected window. But last month, they changed that so you can connect the current window. When you open a folder or file, it's all like browsing the "remote" VM's filesystem. VSCode also now can auto-detect when you're starting a program on a localhost port and creates an ssh tunnel from your desktop to the remote system (you can also set these up manually if it fails to detect it). Sidebar: Now that WSL2 is available, I could see migrating from my Linux VM under VMWare to a WSL2 Linux VM under Hyper-V, but that's another level of effort for about the same end result.

Just prior to the pandemic, I had set myself up a linux desktop and made that my primary system (relegating my MBP to secondary/couch use). My work laptop was on a stand to the right and my MBP was on a stand to the left. I would use vscode to remote into either the VM on my work laptop or develop personal stuff locally. I also setup VSCode on the MBP to remote into the desktop. During the pandemic with kids home, I had to migrate from my detached garage/home office to inside the house. So I rarely touch my desktop directly and do my (personal) dev work remotely on it from the MBP.

In the future, should it come time to replace my MBP, I don't think I'll use another Apple. Since I can't BYOD it for my current job, and I don't need Outlook and PowerPoint for personal use, getting a hefty Linux laptop seems just fine for personal. If they would let BYOD MBP on the corp VPN, I'd consider it.

I haven't used it with docker, but the remote development feature of VS Code is surprisingly good. You don't feel like anything is missing or slow compared to running on your own machine.
> VS Code has a Remote Development (over SSH) feature, has anyone used it?

I actually take this route, building a $300 personal server out of second hand parts (except for the ram and ssd) so I don't waste too much money if it doesn't work and try to exclusively use vscode remote development feature. It's working perfectly. My development workflow is not changed at all. I was expecting some friction, but there are almost none. I can even work outside my home network seamlessly using zerotier. Building a ryzen system would be totally great for this setup.

I've been using WSL2 for my personal projects on Win10 and it feels really good if you use VSCode. The "spaces" version of windows is better IMO which is a huge plus. It was very easy for me to go from my mac workflow to windows which I found surprising. Docker, Windows Terminal, VSCode, WSL2 all seem to work well for me. Windows 10 even has a spectacle equivalent-ish where you can drag and snap windows to create grids for your apps.

This allows me to go from development on personal projects to gaming and vice-versa which is very satisfying.

All this trouble so you can stay with apple?

Unless you are an ios dev, why??

MacOS, is usually the answer.
That begs an even bigger why, given it's such an awful OS in many ways.
LOL. Because people value different things?

I stay on MacOS because it works very, very, very well for what I want to do.

There are a large number of affirmative reasons I prefer Macs. Hardware build quality has traditionally been stellar, on par with the golden age of Thinkpads (which is one reason the keyboard thing was so jarring). The OS is immensely, profoundly stable. The built-in tools for things like mail, contacts, and calendars work very very well. The overall polish of the experience is unmatched.

AND I have access to a bash prompt, and a whole host of FOSS offerings for things I might want. (As I've moved away from actually writing code, this has mostly boiled down to emacs and a few other bits, but still; it's comforting.)

I also use an iPhone, an iPad, and have an Apple Watch. The seamless integration is really, really great. I'd be hard pressed to give that up.

Add to this the fact that there are material reasons I want to AVOID the other two players:

- Windows is a chaotic disaster in terms of consistency, stability, overall design, and general behavior over time. The degree of weird enmeshment of binaries required to install software more or less guarantees system bloat that just doesn't happen on Macs.

- Linux can be many things to many people, and if Apple hadn't moved to a unixy base at the turn of the century I'm sure I'd have ended up there. But as it is, I'm just not willing to tinker around to achieve a workable environment for me, or deal with the inevitable interoperability challenges that would come from living without the COTS tools I rely on, like Office.

So much this, OSX remains a great tool for devs on X86. As much as I would love to move to Linux full time, I also don't want to think or deal with OS issues when I'm trying to write my code. OSX is far more polished than any other unix-based system out there, and there's a ton of support for any issues you might have.

I also love homebrew, it strikes a good balance between something like apt and windows-style installers. Toss all that together with the ecosystem that apple offers with it's other products (being able to send texts from my laptop via iMessage was a revelation) and you have one hell of a value proposition. There's a lot of valid criticism against apple but I can pretty much guarantee that 99% of the actual devs who rail against them use a MBP for work.

People have to understand that these are not your bargain-bin windows laptops, these are premium products. You wouldn't compare a Ferrari to a Toyota Camry, nor would you treat them the same or expect the same level of "performance" across all use cases.

Why is there this illusion that osx just works and linux requires much maintenance??

Only today we had 2-3 _major_ osx issues on HN front page. For example

https://twitter.com/lapcatsoftware/status/132699029641299148...

It's not maintenance. It's the hassle of getting it to work the way you want it to work (which, for me, would mean "on par with the seamless experience I have on MacOS/iOS).

Maintenance is dead easy on Linux. Setting THAT up, though, isn't.

>Hardware build quality has traditionally been stellar, on par with the golden age of Thinkpads (which is one reason the keyboard thing was so jarring).

Really? You think the same Macs that maintain silence by overheating have "stellar" build quality? Seriously, go watch Louis Rossmann's channel. You'll soon see how terrible the build quality in Macbooks is. Just because it's encased in aluminium doesn't mean it's well made.

Yes, in my personal experience (20+ years of personal and organizational Mac hardware), their build quality has been well in excess of everyone but golden-age Thinkpads.

- They work a long time

- They tolerate travel and other "heavy use" scenarios much better than most other laptops

- I've only rarely had to resort to warranty support or repair, which is 100% not the case with even the higher-end Dell (e.g.) machines I've bought for organizations.

I used Linux exclusively for a number of years and was pulled into the Mac world kicking and screaming for bureaucratic reasons.

I actually like it. I get a sane shell with all of the basic *nix tools I need and I get the wide consumer-level support of the rest of the OS.

One basic thing I really enjoy is having extra monitors just work without wrestling with display settings. A small thing, sure, but it was a surprisingly persistent pain.

people have different opinions about things. What you think is awful, another may enjoy.
On twitter one of the Docker Eng. posted that they are at present working on docker support for Apple Silicon (sorry did not bookmark it so can't provide a link)
I've been using Remote SSH from Windows and it works pretty good I must say