What makes you think that's even possible? WSL works because the NT kernel was built with POSIX compliance out of the gate and they've been able to translate some of the functionality. The Linux kernel wasn't built with Windows compatibility out of the gate.
Do you honestly believe that Linus would accept core kernel changes for the sole purpose of supporting Windows on Linux? It would NEVER. HAPPEN.
>I didn't document all my activities, so I can't point to which thing was slow.
I hate these vague "it was slow, I promise, just can't tell you what". If you can't tell us specifically what was slow, it's worse than anecdotal evidence. I do all of the things you listed there and the only thing that's ever been remotely slow is Git on extremely large repo's - which they're aware of an actively working ot fix.
>It works fine, sometimes, for a few things. Then it goes nuts. Wipe and reinstall (remove the Dell bloatware) and it's better.
What specifically "goes nuts"? I've got a laptop and desktop that have been running Windows 10 since launch and they work just as well as my Mac does. I've never re-installed any of them, and never had them "go nuts". That story reads like someone who last used Windows98 and thinks it still applies.
Have you heard of Wine? https://www.winehq.org/
Imagine if Microsoft put some of their developers on that.
Kinda off-topic, but, isn't Linus basically a Microsoft here? Does it matter if Linux's forkable and open-source, if nobody ever forks it to do what the community wants instead of what Linus wants? (e.g. stable kernel ABI, Windows support, etc)
> I've got a laptop and desktop that have been running Windows 10 since launch and they work just as well as my Mac does. I've never re-installed any of them, and never had them "go nuts". That story reads like someone who last used Windows98 and thinks it still applies.
I agree so much with this... last time I installed Windows, it was Windows 7 in 2013, haven't touched it since then, and it works perfectly. Of course it requires a bit of maintenance, but what doesn't after so many years.
Not really. With OSS, what matters is whether the community wants it badly enough. Forking a software project is fundamentally hard, and the payoff has to be big enough. With Microsoft, it doesn't matter how big the community's payoff is. If Microsoft doesn't benefit enough, it ain't happening.
I think the threat of forking is one of those really serious threats that still matters even if no one ever really comes close to doing it. It comes up more often in geopolitics, where military capability still matters even if no one wants to get anywhere close to a war.
The performance bottlenecks I hit seem to be disk i/o related. Things from path tab completion on the command line, to Vim's YouCompleteMe compiling code in the background, to a plain "git status", are just painfully slow right now.
If Microsoft can fix these performance issues, and someone ships a better terminal replacement (currently using ConEmu, also has issues), developing on Windows would be almost painless for Linux users (after learning how to integrate projects with Visual Studio...though I've read VS 2017 has better cmake integration).
* Do you have active snapshots (vssadmin list shadows)? Halves random writes to disk in the worst case.
* Do you have USN journaling enabled (fsutil usn queryjournal c:)? Adds extra IO to meta-data operations.
* NTFS/FAT is optimized for fast directory listing speed so modifying files also modifies directory entries. Nothing one can do about that (except being aware of that and designing programs with this in mind).
* Windows doesn't keep as much dirty fs data in fs-cache. I know of no way to change that. One can probably, if one uses a Windows Server OS.
* Is a on-access Virus scanner active? If yes, one cannot compare performance to Linux. It's a massive bottleneck.
Windows Defender will normally be active by default on Windows 10 unless you go out of your way to turn it off.
sc config WinDefend start= disabled
sc stop WinDefendwsl-terminal works for me.
Would it be possible to mount the folders with the code on RAM? They aren't, usually, very heavy. May be a small-ish 500mb volume on RAM could help? Is this even possible on WSL/Windows?
In contrast, while metadata performance is sluggish in NTFS, at least a few years ago there were ways to get better large transaction async file performance than ext4 if you knew what you were doing -- clearly that workload was something that customers had asked for.
I do node development on windows, but not in WSL. I would advise doing as much as you can with native built software and only using WSL to fill the gaps.
Case in point : cannot use Git on WSL with IntelliJ, Sourcetree
My plan is to try dual booting linux and/or using a Linux VM. I think the biggest hurdle will be changing my mindset. That is, looking for the OSX version of whatever it is I am looking for. Wrapping my mind around Linux... just Linux for as much as possible.
I am looking forward to using just Linux as time goes on. I need to ween myself off of a few things before I can make the switch completely... I did it when I went from win to mac.
1. Check hardware compatibility _before_ you order your laptop. Intel video drivers and wifi drivers are open source and reliable. Stay away from Broadcom, and unless you plan to do gaming, stay away from Nvidia (tho modern Ubuntu makes nvidia pretty darn easy). 2. Pick a DE (I recommend Gnome 3, but KDE is great too) and learn the shortcut keys. Expect a day or two of spinup time. If you go with Gnome, make use of the Gnome Tweak Tool and the super key shortcuts.
Good luck! This is exciting :-)
Frankly, I consider this table stakes for a competent OS and I don't understand why people put up with being deprived of this (especially devs): over the last decade I haven't been able to shake the feeling that almost everyone else in the personal computer market has been conned.
I remember following KDevelop progress hoping that one day it could eventually match what I already had available in Borland and MS tools.
(Of course none of this applies to personal computing, where I still don't understand Windows usage beyond the need for niche software).
Yet the majority of lab computers were running Windows 95/98.
UNIX was mostly used for the OS, compiler design and distributed computing classes.
Everything else, including graphics programming was on Windows.
Or any sort of GPU compute / machine learning. That is actually my primary reason for buying laptop with a dedicated Nvidia GPU - it sucks performance wise, that's to be expected, but at least I can play with both OpenCL and CUDA.
The newer AMD cards work very well with the mainline kernels and Mesa. (My desktop PC has an R9 Nano from 2015.) Haven't tried compute or Vulkan yet, though.
Of course, I work at Microsoft. That being said, many devs I see are open to or enjoy using Linux--myself included. I think, and hope, we'll see continued growth in support for it. Though, I have little to no influence over such things.
If we are talking about a beefy Xeon E5 workstation with 64 gigs of memory, you'll probably be able to assign more resources to the Windows VM than Visual Studio knows how to deal with.
Does the group working on Windows OS feel alienated at all?
I'd look at what the big names are, especially in paid versions as they have their business on the line, and check youtube or blogs for performance tweaks or maximizing performance, and see what those who use it day in and day out have found. There aren't any real benchhmark sites or articles I'd recommend, as it can be hard to distinguish unbiased reporting from advertising.
Personally, I would give the VMware products a trial (most have 60 day unlimited use options), but I'm also biased having been a VMware VCP5. Anecdotally, their performance (when set up properly) was better than when I ran VirtualBox or Xen.
Make sure all virtualization extension options are enabled in your BIOS, first off. Second, save some cores and RAM for your host machine. More cores is not always better when it comes to VMs, but this applies more to multiple VMs on a machine and CPU scheduling issues. Third, turn off any power saving features in the host software or guest VM. Things like CPU C states can be a silent performance killer. Fourth, make use of whatever metrics or utilities the software provides to see at the host and guest levels where the bottlenecks are. The guest may think it's waiting on CPU while the host is busy paging memory blocks on disk.
This very much depends on your machine. For example, I have an office machine running an older i7 with 16 GB of RAM. I give my VM's 6 cores and 8 GB of ram and I don't run into the issues you describe.
I also precreate the disk (instead of using dynamic) and shut off things that tend to be I/O intensive in Visual Studio, but once done I've not noticed a performance difference between it and native.
For the times you need Windows, there's always VirtualBox.
so i returned the XPS and ordered a new MacBook Pro. Sure touchbar is a gimick, and i dont like new keyboard even after so much time but its better then the alternative.
Latitudes lack that infinity display, sure, but at least I'm almost always using an external monitor anyway. Some of the other features are more subjective, but I also like the matte screen, better keyboard, camera on lid upper edge, support for a docking station, and so on.
Not so well on displays with non-integer scale factor (1.25-1.5x).
I've somehow managed Plasma & Qt apps to have acceptably sanely sized windows decorations and widgets, but failed to e.g. teach the browsers to calculate sizes correctly (e.g. make a block with `width: 50mm` to have correct size).
Biggest GNU/Linux problem is having way too much of the completely different solutions for the roughly the same thing that can't interoperate with each other.
There is a world of Windows software that is not POSIX and has viable business opportunity. I've been neglecting that because "OSX rules! POSIX or bust!" mentality. I am going to change my mindset.
Which is why GNOME and KDE to this day, still need to try to advocate to get more UI/UX developers involved into their projects.
RHEL/Centos is probably the most common distro used.
This is problem I have with a dual boot system, even with the ability to save state. Unless I absolutely have to, I'd rather keep running macOS's
That said, I understand not wanting to restart in order to get work done. However, I am looking at it with the perspective that I will be able to fully focus on the tasks at hand (ala Deep Work by Cal Newport), in a distraction free environment.
The sad thing is Windows 7 and 8.1 worked just fine; they screwed up with Windows 10. I've had both 7 and 8.1 running for years without a problem. But I had a pretty clean Windows 10 installation that tried to update itself and kept rebooting and rolling back. The fact that I couldn't suppress the specific offending update meant I couldn't update the OS anymore.
Still, this problem shouldn't occur at all.
Until they make this (and a native AD client), all the rhetoric around "Microsoft LOVES Linux" is empty marketing. (I understand it would be difficult to port. That's beside my point.)
Writers in our company were not very fond of Libre Office.
As an aside, opensuse is a great linux for laptops. IMHO, it has better hardware support then Ubuntu and it's a more consistent experience moving between the console and different GUI's.
What do you mean?
Slack is just not a thing for this use case, same for all the other collaborative tools. Hangouts delivers subpar video quality and decent audio quality (if we ignore the fact that it hasn't been working on Firefox for a while). Appear.in glitches and lags a lot, sometimes to the point that is not usable. Signal would be great, video and audio quality are amazing on mobile, but there's no desktop client (apart from a Chrome extension that can't really be called a desktop client). WhatsApp video quality is very poor while audio tends to be decent, but once again, no desktop client (there's an in-browser web app with no support for video calls). Skype too, is fine on desktop, but it's a huge resource hogger and consequently battery drainer on mobile (the only non-game app that manages to warm the back case of my Android phone).
So yeah, future doesn't look great. I am hoping in GNU/Ring, but who knows...
Wine is unfortunately not a reliable solution for a huge number of tasks mostly populated by windows-only software (e.g. professional CAD & PCB software - and no, open source "alternatives" in those domains are NOT able to compete, which is perfectly understandable IMO). Even when you get something running, you get locked out of updates because the next version of your software might not work anymore.
When you insist on running those on a Linux system, it becomes better just running a dedicated VM, but you can then kiss goodbye to performance on 3D rendering for example...
It seems obvious to me that running windows apps flawlessly on linux is something Microsoft absolutely does not want: The migration path to a Linux-only environment and native apps would become incredibly more simple, and they would probably lose market share overall... I definitely know I would eliminate it in a heartbeat if I could.
My convoluted point is that it really depends on what you throw at it. Anecdotally I've found stuff that ties into DirectX to be the most awkward and since you've mentioned 3D packages I'm not at all surprised you have had less success with WINE than I.
Really? Can I run those Apple specific daemons on AWS, Azure, or GCloud? How about Digital Ocean or Linode. I would love to run my Apple Automator scripts on the web too, can I?
The format of the init script is different but that is true between Linux and BSD or even various Linux distributions. None the less, the concept of running your services on OS X holds fast.
WSL's init however, is not a full implementation. To run a Linux service/daemon you have to resort to bootstrapping something from the Windows scheduler. That's not really the same thing.
The funny thing in all of this is that Apple have nothing to share with the rest of the world, sans swift. They got the underdog sympathy and have made a mockery of all who elevated them to their current status. That is, they have given JACK SHIT back to those who made them who they are.
Not completely what you want, but relevant: https://blogs.technet.microsoft.com/dataplatforminsider/2016...
what is worse - it charges you an arm and leg for running that joke on modern hardware. Rather than providing people with more tech details so the so called products can be better used in real life, it has a 30+ pages Licensing Guide telling people how Microsoft is going to screw them financially in different ways.
it is not "for Linux", every single aspect of the "software" described in that link against the fundamental values of Linux.
SQL Server for Linux is nothing else but a joke, those working on that projects in Microsoft should feel sad for the fact that they work in such an socially isolated team/company.
Of course I did a clean install with just the drivers. But even like that, when it was new, I got 1 BSOD for every piece of software I installed. No joke. Even now, after almost 2 years and countless firmware and driver updates it has occasional hangs and issues. And no, you can't use the webcam as it just films your chest. And no, you can't use the microphone as it is in front of the track pad so your partner can barely hear you.
I'm using it mostly for Visual Studio. And though I still consider it the best IDE, it gets slower and crashes more with every new version since maybe VS 2010.
I'll stick to Macs at home. Thanks.
Visual Studio is available on linux: https://code.visualstudio.com/download
Visual Studio for big things, Code for my little Raspberry Pi projects and Office 365 for everything else.
I've never had an issue, not even a tieeeeeny tiny one...zero.
I've tried Bash on windows multiple times and it's simply too slow. I ended up just running Linux VM as my development environment when I'm on my laptop.
It took some time getting use to it, but now I actually do feel like in an utopia. No pain for the last 3-4 months or so. You do have to get proficient with docker though for this to work.
I know I can do basic commands (even building images with `docker -H 127.0.0.1 build -t foo .` works), but I failed to find any way to share WSL filesystem with the containers (`docker run -v $(pwd):/foo ...`).
I can open bash there (WSL), or start a container
docker run -v C:\Development\Projects\MyAmazingProject:/mnt/project --net=host -it ubuntu bash
Though i usually do this only when I need to debug something. (WSL can't spawn additional threads, which breaks for example Delve, the Go debugger)
Need to connect to a cassandra db? docker run -it cassandra cqlsh mycassandraaddress
Docker compose works well too. And because WSL has unified network interfaces with windows, I can easily start a process in WSL and access a DB which I've run in docker.
I use docker from PowerShell, just saying.
We have hardly any complaint in the office from those with access to our Mac pools for iOS and OS X development, meaning Objective-C and Swift and not UNIX CLI stuff.
This doesn't sound so bad until it becomes apparent that any sort of build/test farms, like you'd want for CI, would be best served by dedicated hardware like this.
It’s only limited to their SQL Server product though.
For the record, I'm working with similar technologies(sql, go, linux boxes) - mostly with a text editor (ST3) on a few different machines: Best experience is with a desktop running ubuntu on a dual 1920x1200 screen setup. My 2015 macbook air is still blazing fast (running el capitan), and a smaller 2010 thinkpad running ubuntu is also pretty fast and stable to work with. All machines have i5 cpus and SSD disks, though.
What we get from microsoft now is a small linux environment inside a windows install. What he wanted was a small windows environment on a linux machine.
She really had me with the "imagine PowerPoint in Linux without a VM!".
I chose a maxxed out Dell XPS15 laptop with Windows 10 to replace my 3 year old rMBP with the (foolish) expectation that it could replace my Mac. Apple had lost sight of what mattered to developers, and I was angry. But now, 2 months later, here I continue developing and existing on my old rMBP.
Bash in Windows is incredibly slow on some actions. I didn't document all my activities, so I can't point to which thing was slow. But for a developer using Python, Elixir, Node, Nginx, PostgreSQL, MySQL, Git! SSH! and some other smaller accessories, WSL was far less performant than a Linux VM on my Mac. And it was far, far less performant than on native Mac.
I very much appreciate what Microsoft is trying to do. Perhaps in a generation or three they will finally leave behind most of their protectionist behaviors and embrace what works for them (for better or worse) - MS Office and the host of Windows apps that businesses depend on.
Apple is no saint or savior. But thankfully, some of what they did in the years past (dare I say during the reign of Jobs) is what has made them special. #1 - latency. My Macs work 99% of the time as expected. They run for weeks or months. My high end Android phone, even after factory reset, has occasional mind-boggling hangs (after which 1000 UI events register and take effect). The same applies to Windows 10! It works fine, sometimes, for a few things. Then it goes nuts. Wipe and reinstall (remove the Dell bloatware) and it's better. But it still lags so far behind macOS.
There is no utopia. There is only pain, frustration, and anger on the part of users. But please, give us developers (who practically _live_ in your environments) something.