I don't want to start any flame wars but I happen to do a lot of pair programming sessions with people (I'm a freelance dev) and a number of people have said they were jealous of my set up and are thinking about a Windows laptop for their next upgrade. Not because my set up is special or super cool, it's just their Mac set up is all sorts of broken and buggy. I can hear legit sadness in their voice.
You don't need MS to bundle an Xserver by the way. Just download VcXsrv for free https://sourceforge.net/projects/vcxsrv/ and be up and running in a few minutes. I use it mainly for flawless zero configuration clipboard sharing between Linux apps running in WSL to work with my Windows clipboard, but graphical apps run ok too (I even tried running i3 through it which was usable but too limiting with multiple monitors).
I guess I just wanted to really say that Linux based / Docker development on Windows is very much possible even today on the stable version of Windows 10, and WSL v2 is just going to make it a lot better than it already is.
I haven't been this excited over a new OS / OS feature since Windows 7 was first released.
Only problem is the June release is for insiders, not stable, and insiders requires sharing A LOT of private info with Microsoft (unacceptable IMO). It might not be until October 2019 or even April 2020 before this hits the stable channel of Windows 10. Doh.
I'm normally very happy with the dev experience on my 2016 MacBook Pro. I run iTerm2 (multiple split panes in a window), zsh/ohmyzsh, homebrew, and VSCode. The new APFS filesystem is insanely fast, especially when combined with VSCode's ripgrep-based text search. I watch my Windows-based colleagues start a VSCode text search in our repo and it takes 10-15 seconds to complete. Me - it's usually less than 5 seconds and often instant. Also, moving/copying/deleting large directories (i.e. 25k+ files) is unbelievably fast.
So macOS is great, in my opinion. But I'm often frustrated with this machine: (a) the keyboard is unreliable - certain keys develop habits of not responding (the `fn` key is currently driving me round the bend), (b) it crashes every time the battery runs low, and (c) my corporate policy installs Sophos which sometimes slows it to an absolute crawl.
From many developers' perspective, Windows' greatest downfall is that it's, well, still Windows. There is so much legacy to maintain, and so many ways that it differs from macOS and Linux at low levels. WSL and the new terminal/PTY are making inroads, but if Microsoft would only fork Debian and build their own supported distro, I can guess that's where we'd all be going very soon. What if they forked Wine as well and built a supported Windows compatibility layer on top?
I think this must be due to the NVMe drives they use in MacBook Pros. APFS has some performance overhead that makes it slightly slower than HFS+ (but I do think you get other improvements, when copying files etc.).
We switched from XAMPP and Eclipse for PHP development to WSL with VSCode and so far the transition has been really good. The only problem is that OS X still has a way better free MySQL client in the form of Sequel Pro compared to Windows which only has MySQL Workbench and HeidiSQL for the free options. I wish there was a better SQL client we could use.
Dbeaver, sqlyog (free edition) are a few more free ones that come to mind.
Thanks for your thoughts on WSL & the new Terminal.
Re. release mechanisms, etc: Terminal will be delivered via the Store so we can ship out-of-band.
We're aiming to deliver new Terminal preview builds every 2 weeks or so which, since we're delivering via the Store, will auto-upgrade everyone soon after each release.
Re. Insiders: We do NOT gather any personally identifiable information. We only collect anonymized statistics about some of the features you use and/or issues you experience. Why? To ensure that we can find and fix issues as effectively as possible.
For example, with WSL, we collect the number of times an un-implemented syscall is called, or # of times a syscall returns an unexpected error. We couldn't care less WHO experiences these issues, only how OFTEN they occur. This info (esp. combined with bug reports in our repo, etc.) has been essential in helping us prioritize which syscalls are being called, which we've implemented, which are failing, and thus, which we need to pay attention to. Without this info, we wouldn't have been able to make WSL as good as it is.
We understand the community's concern about data collection - heck, EVERYONE should be - but in the general scheme of things, I think it fair to say that Microsoft's telemetry data collection is pretty well contained and is not egregious.
If you'd like to see what telemetry is being collected, on your machines, this may be of help: https://docs.microsoft.com/en-us/windows/privacy/diagnostic-...
HTH.
The last time I tried to install insiders it mandated that I sign into Windows with a real Microsoft Live account, which requires an email address sign up.
Where as the stable version of Windows allows you to create an offline account.
If I sign in with a Microsoft Live account, now you can associate my email address to my OS usage stats. Isn't that the definition of personally identifiable data?
Also, you may have linked to the wrong sub-link. The page that lists what's tracked for insiders is this one I think? https://docs.microsoft.com/en-us/windows/privacy/windows-dia...
It mentions "User ID -- a unique identifier associated with the user's Microsoft Account (if one is used)". It also mentions collecting a bunch of low level network data that look questionable, such as IP addresses flowing through network devices. Isn't that saying "logs every website you visit"?
Then it mentions it logs every app I open and how long it was opened for, and even what I search for in those apps. I didn't go through the whole list in detail but that was what I saw in a 60 second scan of the page.
But on the topic of WSL, are you saying if we run Windows stable we'll be able to get and continuously update WSL v2 from the store? That would be neat.
They got windows+linux users in the first place by pre-installing curl+ssh, now their version of ls, find, and bash are all holding back those same windows+linux users.
Another example is Ansible. Since my entire dev environment is in WSL and WSL is running Ubuntu 18.04, I can reuse all of my exact Ansible roles that I use on a production Ubuntu 18.04 server. They work just the same in WSL, so setting up my dev environment involves nothing more than reusing roles I've created for production.
Each of the last few major updates have added more and more control over this. The latest release is allowing even more user control.
Windows already tries to track active use times for the user, and is capable of waking a machine up in the middle of the night, install updates, and then go back to sleep. Improvements to session restore makes this almost seamless.
At some point MS, as the maker of the largest consumer OS, has a responsibility to patch critical vulnerabilities. Balancing the need to keep users secure with the inconvenience of a reboot, and the feelings of lack of control that come with it, is not an easy task.
On the opposite side, I've been frequently annoyed when Windows, unable to install an update, turns my computer on in the middle of the night, fails to install, and keeps the machine on. Lovely way to waste electricity, error messages are silent, and I had to run a command line power management tool to determine why my machine was waking up every night at 1am.
Except for all the work it destroys in the process. Many productive workflows can't just be closed and restarted at random - pretty much anything in a terminal, for example. This new one seems great, but it can't be any different in that regard, as it has to run the same command line tools.
Effort should be spent on resuming where you were after a reboot.
Some things cannot simply be resumed, I know. However, some things can.
There is an attitude at my workplace which I can only summarize as "I automate anything that helps my customers, and I will not automate anything that helps me."
We're smart people. Why are we simply giving up and throwing in the towel when it comes to reboots?
Too few people have heard of the "screen" command maybe. I was using it 20 years ago to reconnect to terminal sessions. I'm told that tmux does similar things, but I don't know if that's true.
The iPhone does get annoying about updates, but it always is still up to you when it happens.
Sorry, but I don't buy that. If Microsoft did this, I think it was for a reason. It's very easy to sit on HN and opine about how Apple can persuade iPhone users to upgrade. But we're not the ones at Microsoft with the job of dealing with the reality of millions upon millions of desktop computers that simply aren't ever being patched, no matter how hard we prod our users, with the result that they are being exploited en masse, used for criminal purposes, and as a result our reputation is getting trashed and governments and other powerful actors are demanding we do something to fix this problem.
They may have all the reasons in the world, but Windows is objectively worse for me (and I believe other power users) in this regard than other OSes.
I'm not sure why you think it's a good idea to defend a company that takes away _your_ control of your computer, and how the other computers having been exploited makes you feel better about losing _your_ work (when you are presumably qualified to avoid and/or detect being exploited on your own). Perhaps you're lucky to not have had trouble with this yet?
Hah, say that to my iPhone - every time there is a new update it automatically downloads it (further crippling my already low storage) and keeps asking me for my passcode every few hours. One wrong tap and there goes my phone for the next 10-15 minutes.
To be fair, how could you have known that? It only says so when asking for your passcode, after all.
A) When it thinks it is not in use, not so easy to predict.
> To be fair, how could you have known that? It only says so when asking for your passcode, after all.
Yes, but it actually presents the prompt twice, and one wrong tap reboots the device with no way of aborting the process which on a good day takes 10 minutes on my phone.
Because if I leave something running over night, and Windows reboots without asking me because it thinks it can resume the task, and Windows is wrong, then I have to wait until the next evening.
I would have no problem with any of this stuff if Microsoft gave the user control. They don't, and the steps they've taken so far don't go nearly far enough.
If you, or the system, initiates a reboot/shutdown, and all apps that you have running are such apps, the reboot will just happen, with no further confirmation.
If, however, any app that you have running does not assert that it can be perfectly restored after reboot, then the OS will pause the reboot process and prompt the user to confirm that they want to shut down said app. If the user says no, the reboot is aborted. If the user does nothing (or isn't there to respond), the computer just stays stuck on that prompt forever.
I don't see anything wrong with such a "conservative" auto-detection system, personally.
Microsoft would have to actually implement it that way, though.
Problem is, apps can lie.
Not many apps take advantage of that, however.
All in all, not too shabby.
It's not like it hits you without warning. You also have the ability to manually reboot whenever you like(!) and prevent surprises that way.
I think the problem already has a solution: no automatic reboots. Tell me it's needed and I'll sigh, do what I need to to save my state, then do it myself.
That's EXACTLY what it does now. I have never been surprised by a reboot on any computer I log into and actually use.
Which I know will fail - my laptop has been failing to update for the past year or so, but windows still insists on restarting my computer so it can fail the update again.
_Sometimes_ using the "defer updates for a month" will work. Other times, windows will completely ignore it and restart in the middle of my work day.
Windows 10 telemetry is not an oopsie or one time thing. It's an entire saga that got wide press coverage every time Microsoft was playing dumb, diverting attention or making up excuses and generally being asses. Windows 10 updates completely ignoring the wishes of the owner of the PC is not a one time thing either.
Microsoft has simply lost respect for its customers, it thinks it can throw some open source bones over the fence to keep the nerds happy and switch to SaaS, this time copying Google instead of Apple. They deserve zero respect for that, no matter how many terminals they include in their OS.
Calling names like "herd" and "groupthink" doesn't contain information either; it's just bragging. I wrote about this the other day: https://news.ycombinator.com/item?id=19791293
Serious note: forums decay. Entropy in social media, and forum denizens exists. Such a result is unsurprising,
Too bad Paul Graham doesn't give a rat's ass. He has the opportunity to create something beneficial to world society here but doesn't care to put in the money and thought to figure out how to make it work.
Seriously, YOU DUDE, who lead this at MS - just go, get fired, whatever !!!
The entire industry has moved to a "less testing, more releases" mentality. Not so bad for websites, where the damage is sandboxed by the browser, but IMHO it is unfortunate this mentality has pervaded everything.
I totally get rapid release cycles, I've lead teams that releases C++ code every 3 weeks! But we had a A+ solid test team backing up every one of our releases, and each of those releases got 2 weeks of testing done to them before they went to beta.
Best team I ever worked on automated every single bug that they have ever seen into a regression test. That mentality requires having a test team that is equal in size (and technical capability!) to the development team, and the current trend of "developer tests" tends preclude such thorough testing practices.
We live in a world where car entertainment systems can lock-up and reboot themselves and where headphones need firmware updates.
And there are other people running Debian Stable.
I don't think there's anything wrong with Microsoft's fast release cycle, but I think there's lots wrong with forcing everyone on that cycle. Microsoft already makes LTSB/LTSC—why is it limited to enterprise customers? Microsoft seems to be afraid of people actually buying LTSC and preferring it...
But its not only about bugs, MS should not mandate new features on me, only security fixes. In one of my previous updates my camera stopped working so I couldn't use any IM any more. Tried to fix it for days in vain. Then latest update returned it so I realized that first time they simply turned it off by default (for paranoid people I guess that cover their camera with a tape; I found a setting after reading a changelog). Why ? WHy? WHY ? Why turning off camera FFS ? Or any other stupid decision like keeping windows.old for months with all those GBs of unused space ...
You are totally right about it - web apps need this, browser is their OS. Normal OS doesn't. Even phone doesn't. At least leave me an option.
Eh, it depends.
Microsoft got seriously dinged in the press, and by customers, for their long release cycles. MacOS and all the mobile OSes, offered seriously cool new features on a regular basis! Windows looked stale by comparison.
And some of the new features are sweet, such as the new terminal! Heck having native OpenSSH support built into the OS is wonderful! Being able to iterate on search so it now actually works! The improvements to OneDrive and the underlying file system. These are all great features that have rolled out with Windows.
(Media controls from the lock screen, improvements to Windows Snap, better BT pairing.)
Meanwhile Android is set to kill file managers, and Google Music can't differentiate between differently named files that have blank ID3 tags, necessitating my using a file manager to play my MP3s. (That one seriously throws me for a loop, just show me the file name as a fallback!)
(I should just get around to manually adding ID3 tags, but how is a regular end user supposed to figure out what is happening?)
Honestly most of the time rolling Windows updates mean my OS just gradually gets better. I don't notice it unless things go wrong, but isn't that how it always is with software?
Make features. Make them optional, non-imposing and non-surprising on existing systems. Maybe do reverse on new installation. You can be nice and respect existing people choices.
> Meanwhile Android is set to kill file managers
Well, there is always Total Commander which has a decent music player too. But yeah, its like Exploder era again.
> And some of the new features are sweet, such as the new terminal! Heck having native OpenSSH support built into the OS is wonderful!
Argh... sweet new terminal 20 years behind everybody else. What else ? Notepad update ? Paint ? Some other completely granny stuff ?
Why is this integrated into OS update is beyond me honestly. Adopt decent package manager and update tools on its own (Chocolatey as an example). I don't need OpenSSH most of the time. When I need it, its `cinst openssh` away. Why is that a problem ?
Actually, I always cringe when OS updates brings awesome new "features". OS update should be all about kernel, file systems , drivers and other low level shit. Package manager can cover everything else.
> I don't notice it unless things go wrong, but isn't that how it always is with software?
It shouldn't be like that with OS. OS is not a typical software. Murphy always worked like a clock for me, so now, I only update OS (Linux too) when I am on vacation :) and have time to lose. Or I can revert ASAP (VM, BTRFS...)
https://www.windowscentral.com/windows-core-os
One of the big things Microsoft has been working towards with Windows Core OS is an improved Windows Update system that installs updates in the background and requires less than a minute to restart once those updates are ready to do so.
How it works is very similar to how Android and Chrome OS do updates today. On those platforms, the OS runs in two separate mirrored partitions, and when an update is ready to install, the update is downloaded and installed to the offline partition that you're currently not using. When that's done, the OS will ask you to restart, and while it may look like you're just rebooting, what's actually happening is you're booting into the partition that just spent 25 minutes installing an update in the background.
Windows Core OS keeps system updates to under a minute.
It boots right up, as if there was never an update waiting to be installed, and that's because all the installing has already been done while you were busy using the other online partition. Now, you've booted into the partition where the update is installed, and the partition you were just in becomes the offline partition for newer updates to be installed to down the line.
This should solve one of the big issues Windows has when it comes to updates. Updates can usually take anywhere between 5 to 30 minutes to install, and even longer on older devices. Windows Core OS solves this problem by making it so the user isn't unable to use their PC for no longer than a minute. It simply restarts like normal, and you're back up and running again.
Santorini is the codename for Microsoft's forthcoming 'Windows Lite' OS designed for laptops and 2-in-1s.
Microsoft is building out Santorini as the version of Windows Core OS that runs on consumer and education foldable PCs, laptops, and 2-in-1 tablets. It may even eventually show up on Microsoft's mythical Andromeda device. It's a new take on what Windows can be, introducing a brand new user experience that's a little more like Chrome OS and less like old-school Windows. It has deep ties with web experiences and puts universal Windows apps front and center, with the ultimate goal of having everything in the Microsoft Store runnable on Santorini.
Santorini features a centered taskbar experience, similar to that on the Surface Hub 2X. There's a simple app launcher that doesn't feature live tiles, which lists your installed apps from the Microsoft Store or pinned websites. I'm also told that Windows Sets has a pivotal role in the overall Santorini experience, with apps and websites running under tabbed windows that also get grouped as such in the taskbar.
Didn't they say recently that Sets is not being developed, partly because it was too closely tied to non-Chromium Edge? Which makes me wonder how much else of that is still being developed.
[1] https://www.thurrott.com/windows/windows-10/205364/is-micros...
[2] https://twitter.com/richturn_ms/status/1119646566782910464
This should be actually fucking illegal. Yet another nail in the Windows 10 coffin, then. It will never be on any of my machines. Never. The level of shit they think we will put up with is utterly outrageous.
Windows has a slew of options. A giant dialog popped up asking me if I wanted to enable installing updates during quiet hours. I selected yes. I was given choices for when quiet hours are. The OS also has options to auto-detect quiet hours.
The idea is good, I just wish the implementation was foolproof. Then again the desktop it doesn't work on is ancient and has been updated from Windows Vista to 7 to 10, so it is a bit finicky. The various update mechanisms work fine on my other machine.
I've been using exclusively Windows 10, for 2 years at work and more at home, not once had I an uncontrolled reboot. Perhaps rebooting at least once a week help.
Apple has been making huge mistakes in their Mac strategy. From the outside it seems they got drunk on the iPhone success.
With the exception of the iMac 5K and maybe the Mac Mini, I'd say the complete Mac line of products is now in worse shape than ever. It started decaying around 2013 with the trashcan Mac Pro and the gradual death of the Apple pro apps (Motion, Aperture, Final Cut, Logic, etc).
Regardless of the mediocre state of Mac hardware I love macOS. Although I agree that Windows is in great shape now and is only getting better.
I hope Apple is changing course and it's only taking so long because it is difficult to steer a huge ship into a new direction.
The keys were a concave curved shape so they were comfortable to your finger pads and tactile so that you could center your finger on they key by touch.
Since then, it's been form over function.
WSL and Hyper V(really docker for windows on top of hyper v) has gone a long way to stop me from switching to linux for development.
You forget that the battleground in their business is the smartphone, capitalizing on the gains in smartphones and accessories is what will make the most profit. Additionally Apple is well fomented against the PC market taking over, all over Silicon Valley, Macs (Unix) are a clear preference for getting work done.
Apple is so off the charts popular, that their events even take the world's attention. The glitz, the buzz, the beast marketing machine can't be defeated.
Does it matter? According to market share numbers osx/macos' is ca. 14%. Developers/others who care about terminal environment must constitute a tiny share.
All they do for desktop and laptop is just tell the public number of git branches they made as number of new features added.
I could still use Snow Leopard if they kept patching it for recent hardware.
Loss of a visionary is a way for a slow death. When are they going to wake up and be innovative again?
I don't see this as a loss for Linux. I see it as Microsoft bridging a gap (albeit a gap they deliberately created) that Linux hasn't yet. If I could do it the other way around (Linux running windows) then maybe I would but when I created this setup some years ago I couldn't so... Yeah idk this way Linux at least gets to be a part of my life.
When I can do this in windows (unix command line): cat somefile.txt | sort | uniq > output.txt, then it'll become a threat. Otherwise, Microsoft should fork a version of GNU/Linux and port all of their apps and GUI. They need to stop trying, they had their chance but may never achieve equality when it comes to the Windows Vs. Unix/GNU-Linux command line.
This is my opinion and observation.
Peace
in cmd.exe
type somefile.txt | sort /unique > output.txt
or in powershell
type file.txt | sort -unique
Powershell is obscenely powerful, it is equal to anything Bash can do plus:
1. It sends objects instead of streams, so instead of relying on fixed width output and string splitting, you can specify which column(s) of output you want from a tool directly
2. It can pull data from all sources of sources, including databases, WMI, COM sources and more.
3. Fully plugged into automation for servers, rich auto-complete, and a native ecosystem that is designed to all work together.
4. It can call into .NET libraries
But even cmd.exe can handle outputting text and sorting it!
Yeah, modern shells should stop pretending that everything is text. That's ridiculous. Powershell is doing a good job here.
As for power, powershell is to weak compared to Python or Ruby, too few libraries and fancy stuff, at least on unices. Maybe it could compete with Racket, but Racket is a much nicer language IMHO.
> short-circuit operator are completely broken.
What do you mean ? This kind of thing ?:
> 0 -and (Write-Host 2)
False
> 1 -and (Write-Host 2)
2
False
Not typically used in PowerShell, its bash paradigm IMO. There are objects here, so we throw error objects mostly and combine lines differently.Every time I've dove into Powershell, wow, impressed, but I have over 2 decades of experience with cmd.exe!
There are a lot of responses of the form "you can do this similar command in WSL/PowerShell/etc.," where that similar command will not run on a standard Unix-based system. I think that misses half of the point. One of the reasons a lot of programmers use OS X is specifically because you don't need separate sets of commands for the desktop and Linux cloud server (obviously, Linux gets even closer).
It's been possible to do a lot of stuff from the Windows command line for a long time. The problem has been that to do so effectively, many teams have to maintain a .bat alongside the .sh that will be used in production.
The opposite also works. Powershell has had a Linux port for a bit now. There's no reason you couldn't use use Powershell scripts to deploy to Linux servers if you wanted to.
Based on the peer comments I was replying to, a lot of Windows developers aren't even aware of this ability (hence my comment).
Thanks for clarifying!
bash -c "cat somefile.txt | sort | uniq > output.txt"
Since bash handles pipes and redirection in this case, it preserves Unix semantics exactly. And since WSL can see all your filesystems (they're mounted under /mnt/c, /mnt/d etc), and bash.exe maps current working directory, this works in any directory.This is much more tedious when you have to specify paths, because they have to be mapped explicitly, much like cygpath in Cygwin:
bash -c "cat `wslpath -u 'C:\Temp\somefile.txt'` | sort | uniq > output.txt"I take it you haven't tried WSL in the last couple of years?
cat .\somefile.txt | sort | unique | add-content "sortfile.txt"
I mean really it's not that hard to learn the actual PS syntax instead of the aliases: get-content .\somefile.txt | sort-object | get-unique | add-content .\sortfile.txtNot only can you do operate your typical one-liners but if the package is basically command line driven you can just apt-get install it and go.
There is a remaining wart that I hit from time to time, if I have a git repo that I want to talk to both from the WSL window and from a Git Shell (Cygwin app), the line endings get tweaked. It can be managed but it is still annoying.
me@thinkpad:~/
$ cat somefile.txt | sort | uniq > output.txt
me@thinkpad:~/
$ uname -r
4.4.0-17763-Microsoft
If I were an engineer in Apple's OSX group I would see this as the horde amassing an army on the border. Bit by bit, Microsoft is going down the checklist of why someone would use a Macbook pro rather than a Windows laptop for their daily driver and erasing the advantage (or at least mitigating it to the best of their ability).
This will never convert the die hard OSX fans to use Windows laptops, like the OSX features could never convince die hard Windows users to use Macbook Pros, but the real prize here is the large bulk of users who aren't die hard Apple or Windows fans and just want to get their job done on one laptop reliably.
Apple's latest earnings report re-iterates that they aren't investing in the Macbook Pro or OSX in any meaningful way. Microsoft's success with the Surface Pro series against the Macbook Pro has shown that good electrical engineering can be bought and if the software is good enough, it can remove the last objections to the Windows laptops.
I see Linux as a big loser here too as the opportunity for a Linux desktop, for the bulk of the users, recedes further into the distance with two capable, and supported, offerings from larger players to choose from.
I've got one of everything it seems, and I had a Macbook Pro as my daily driver starting at Google in 2006 through my exit from IBM at 2015. I bought a SurfaceBook when they announced them for the drawing experience and laptop that had more capability than my Macbook Pro. I then tag teamed between them until I got the Surface Pro 4 with the same drawing experience, but lighter than a Macbook Air and with WSL and a third party X server a decent Linux/UNIX like development environment.
I still haven't replaced my Macbook from 2015 with the various things that Apple has thrown out there, the keyboard issue, the track bar issue, the lack of drawing, the lack of any compelling reason to upgrade. I still use it for Xcode for the iPad app I am doing in my spare time but use it less and less.
The new terminal will make it easier to not use the Macbook. If Microsoft starts bundling an Xserver for the occasional windows app it would make it even easier to stay on their platform.
I can't tell if Apple sees this as a threat to their business, or just doesn't care anymore about that part of the business and so they are willing to cede it to Windows as the "portable" development environment supported by an enterprise vendor.