Hacker News new | ask | show | jobs
by jclay 2607 days ago
I switched from Mac to Windows a few years ago and I have to say, I’m always excited to see their latest announcements and OS updates.

When was the last time macOS had an update that was exciting for developers? They’re phasing out OpenGL, and there is no CUDA support for Mojave. Docker support was pretty frustrating the last time I tried it as well. No big features in the last few macOS releases. All the latest features increase lock-in and don’t exist outside of the mac ecosystem (looking at you Handoff and iMessage)

Microsoft now has:

- VS code

- A new terminal announced today (a very welcome change)

- Ability to natively run any linux distro, with GUI! (WSL w/ X11 server)

- Hyper-V powered docker containers (and they’re fast)

- Great CUDA support

- One click to install and run Ubuntu desktop in Hyper-V

- Chocolatey has grown on me and is an effective brew replacement.

Overall, i’m very satisfied with the development experience on Windows, and the pace at which it is improving makes me very confident that it will continue to attract more devs.

I also like that they make their products available on other platforms. I know that if I switch back to MacOS my OneNote, word docs, and C# code can be brought over without issue. The same equivalents for macOS don’t provide any cross platform equivalents.

I’m still holding out for tabbed windows in the file explorer, though :/

12 comments

I find it amusing you claim docker on mac was frustrating when it's damn near useless on Windows. File change notifications still don't work right (as of about a month ago).

Edit: I'd love to use Windows as my daily BTW, it's just not there yet for me. I don't want to have to jump through hoops to make my current workflow, work.

With the new WSL2, you can run Docker natively!
How is performance? I used Windows subsystem for Linux a year or so ago. Using a package manager to pull down some dependencies, which should take on the order of tens of seconds took several minutes to complete. It was painfully slow.
WSL2 now uses VM technology, so the performance is now a lot better.
Wow, that's a welcomed change for me. I was trying every 3-4 months to get WSL working as a suitable development environment. There was always _something_. Excited to try this out again when I have a free day on a weekend.
WSL performance problems were mostly due to slow I/O.

How does virtualization fix that?

Translating syscalls to the NT kernel is slower than running Linux with a virtual filesystem.
WSL in beta was significantly faster than that. Not sure what was wrong with your install or if it was something else (apt-get has always been crazy fast for me).
Looking forward to trying it out. I hope this means nodemon, etc will work as expected without having to enable 'legacy mode'
> File change notifications still don't work right

WSL doesn't support the inotify api so even basic tools like tail don't work.

Actually, I believe inotify was added back in 2016 (https://devblogs.microsoft.com/commandline/wsl-adds-inotify-...)
It's still an issue in 2019: https://github.com/Microsoft/WSL/issues/3292

In ubuntu you have to pass the --disable-inotify flag and the Debian version (without this flag) simply doesn't work.

Not the person you're replying to but I believe docker just hasn't added support. There's been a few issues regarding it open for a long time with no movement at all.
> I also like that they make their products available on other platforms. I know that if I switch back to MacOS my OneNote, word docs, and C# code can be brought over without issue. The same equivalents for macOS don’t provide any cross platform equivalents.

This is what essentially kept me off from adopting Apple's walled garden or Google's web only systems (except for Google Photos and YouTube). I've had devices from either of these firms but I always restrain myself from investing into their platforms because one day I'll find something better but they'll hold my data as a ransom. Google will let me "export" the data, but in that form it is almost useless to me.

I also game a lot, so no other platform comes even close and now Windows has shipping support for:

- Mixed Reality / VR

- Raytracing (not just a tech demo)

which no other platform at the moment does.

You’d be surprised how easily you can export pretty much all your Apple-app data using AppleScript on a Mac. There’s almost nothing inaccessible via apps’ APIs
But can he run iMessage on Windows?

Sure, he might be able to export his data but what use is that??

You can't, this is why I run Windows 10 in a VM.

I keep all my personal stuff like email, messaging, browsing on Mac where privacy is higher and easier to maintain.

I do all my dev on Windows for the most part, along with my corporate Outlook account (which I use in a tab in Chrome, not even installed on Win10), that's basically how I do things.

This also allows me to make snapshots of Win10 whenever I'm considering installing something that might f-up my machine (aka test out some alpha release of dotnet core etc).

This year's macOS update is expected to include a framework which makes it easy to port iOS apps. That will likely be exciting for developers, because there are _a lot_ more iOS developers than Mac developers.

The Mac is already a unix, so a lot of the things you list aren't necessarily things that Mac developers are clamoring for. WSL was a big deal because it brought the unix-like ecosystem to Windows, but Macs already had the ability to natively run a lot of unix utilities.

I still appreciate the WSL approach quite a bit more. I use them as “containers” (though to be clear they don’t support running Linux containers) If I need to test that my C++ project will compile and run on Debian, Ubuntu, and Arch, it is pretty trivial to do that using WSL.

I also avoid the issue of the differences between macOS unix tools like grep, where there are certain flags that differ from those on linux as I recall. This is of course resolved with using a port, but they’re still community maintained ports and under no guarantee to work the same on macOS and Linux.

> though to be clear they don’t support running Linux containers

I think this needs a 'yet', since supposedly it'll be changing with WSL 2 later this year.

That seems quite risky. There are important differences between WSL and the real Linux kernel, and running on either is not adequate testing for the other.
"iOS developers who want to sell their product on the Mac App Store" is a rather small subset of developers. I suppose it's nice that they're getting a bit of extra dividend on their existing iOS efforts, but that's pretty much it. Marzipan does nothing for the Mac.

Notably left out from Apple's current direction are existing Mac developers and web developers, whom Apple has been taking for granted for years.

One application domain with a largish number of iOS apps is electronic music.

The latency (sample buffer size to prevent drop-out due to preemption) on Android is too high, so mobile music production gravitated to iOS. E.g. - the latency on a $160 iPhone SE is still about half that of a $700 Pixel 2 phone.

>iOS developers who want to sell their product on the Mac App Store" is a rather small subset of developers

You'd be surprised. There's absolutely no reason to be a "small subset" if it makes men easy money for quick recompile + some small GUI adaptation.

People with iOS apps on the App Store are a small subset of developers. That's the reality now. Marzipan isn't going to grow that number.
>People with iOS apps on the App Store are a small subset of developers. That's the reality now. Marzipan isn't going to grow that number.

Of course it is. In fact, that's the main purpose behind its development.

You think someone who wouldn’t previously have developed an UIKit app is now going to do it because of Marzipan? What’s the incentive?
Well, seeing that all of the games that will be part of Apple’s games subscriptions will also be on the Mac and some iOS developers have already said they wanted to have a port ready “day one”....
Microsoft have been very good at figuring out which features they need to add for developers, but the actual experience of using Windows is not great.

Part of the problem is that they are adding stuff without taking anything away. My Windows development machine manages to be both overstuffed with multiple shells, run-times etc., and have quirks or issues with almost everything that I care about. I just want a Bash shell, Python, SSH and a package manager that all work.

Of course they are, their PR department reads HN and others now.
> I’m still holding out for tabbed windows in the file explorer, though :/

Give Directory Opus a go https://www.gpsoft.com.au/

Friends don't let friends use Explorer.

>> I’m still holding out for tabbed windows in the file explorer

Try these:

Total Commander: https://www.ghisler.com/ fman: https://fman.io/

Or xyplorer, or xplorer² or any number of other explorer replacements.

The 'tabbed windows on explorer' thing is well done, and I dunno, MS has always seemed less willing to copy a 3rd party app and kill its market than Apple are. That's one of the reasons why the 'better terminal' surprised me, conhost is very long in the tooth, but again plenty of 3rd party options.

fman author here, thanks for the mention! Unfortunately, fman does not yet support tabs. It's pretty awesome otherwise though ;)
The million dollar question: Will Microsoft's developer tools draw in more business? (In my mind, the play is, if Microsoft is more friendly to developers, and developers sometimes hold the keys to what vendors to work with, new business could come in).

For example: I use VSCode, but I'm not sure I'd pay for Azure. In prior threads on HN, I recall reading some displeasure without service outages and availability issues.

Unless Microsoft had some other motive for caring about developer tools after a long period of not doing so. Regardless, their contributions to the open source community are welcome.

What do you mean by not caring about dev tools for a long period? Their tools were always industry-leading. It's what brought platform dominance to them in the first place. One might even hear a faint chant from the past: developers, developers, developers!
Did you ever try developing a web application and using IE's Developer Tools to inspect? Chrome gave them a run of their money.
Web applications are only development there is? Also, Chrome is on Windows too.
No, but it's an example of where, in the past, Microsoft didn't take the lead on developer tooling.
Visual Basic vs. Delphi for RAD/GUI programming comes to mind as well.
Maybe in some categories but when I think of Visual Studio for C++, MS didn't really try until a few years ago.
Vs has been the best c++ ide for a while. the debug is way better
snowAbstraction may be thinking about VS’s infamously poor relationship with the C++ standard.
* I think before 2015 some things were working better or faster in other IDEs.

* I am happy with with the big improvements in VS starting around 2015. But the fact, that the C++ support was so bad in earlier versions (even if it was better in some ways than other IDEs) that it makes me upset that people had to put up with inferior older versions for over decade.

* It was not my original point but yes MS does not follow the standard very well, at least before. I even found a compiler bug myself back in VS2015 (the last version I used before moving linux server dev.)

Any chance you've looked at scoop over Chocolatey? I depended heavily on Choco but scoop doesn't require Admin shell/UAC, and has a good selection of my favorite stuff (extras bucket is a must).
Scoop is much better than Chocolatey IMO, definitely recommend.
And Windows will soon come with a tabbed terminal! Finally! Looking to get the Surface Book 3 at the end of the year and dropping my 2017 Macbook whose keyboard I replaced 3 times.
Same. A year or two ago when I needed a MBP replacement after a decade of OS X, I jumped to a Surface Book 2 and haven't looked back.

Satya's Microsoft is almost doing everything right.

> I’m still holding out for tabbed windows in the file explorer, though :/

I've you're willing to look at 3rd party software, I've been a happy user of Directory Opus for many years.

>When was the last time macOS had an update that was exciting for developers?

Swing 5 just a few months ago?