4 ms·
Yes and No. I think they understand the very real limitations of Windows and how developers and power users hate it. Let's compare and contrast the two. Linux
by 4thaccount 8y ago
Yes and No. I think they understand the very real limitations of Windows and how developers and power users hate it.
Let's compare and contrast the two. Linux has a usable shell that has GCC, Bash, Awk, dozens of specific commands that can be piped together, Perl, Python, TCL...etc all built-in and easily composable. Windows has well...CMD which is horrible, Batch files, VBScript (deprecated), VBA, and Powershell (a mess). If you install Visual Studio Tools you can get a C++ compiler and .NET languages like C# and VB.NET. Linux might have its faults, but the design is coherant and you can get stuff done. With Windows your only options are use a GUI or write at least a 1/2 page of code for something that is a oneliner in Linux. Powershell is a sometimes great (mostly meh) attempt to right this, but the everything is an object design is just simply more complex than the Unix philosophy of strings, pipes, and interoperable pieces. It seems like the Windows approach is to recognize the failing, while keeping in mind that a lot of desktop software uses Windows. So give developers Linux via WSL and people can still run their other Windows only software without Wine.
- userbinator 8y agoI am a developer (Win32; actually started with Win16 and DOS before that) and consider myself a "power user" of Windows, yet never had the feeling you describe. True, the -nix world has a great CLI shell, and some things are much easier there, but on the other hand, the GUI experience is (or at least used to be...) incomparable. AFAIK tiny single-exe-file no-install portable GUI applications just don't exist in the -nix world. I agree that PowersHell is a mess --- I tend to stay away from it and use CMD instead. In this particular case, it is very strange that they claim something which appears like it shouldn't be OS-dependent at all (Python is supposed to be portable, and there's no GUI stuff) would require a specific OS. A new Microsoft indeed, but unfortunately not one I'm a fan of...
- 4thaccount 8y agoYou can certainly create GUI apps on Linux, but I've never found the need or desire as the terminal works so well. Even with a GUI designer, it adds a bunch of code you wouldn't likely need if you had a decent environment. Of course if your app is for non technical folks, I sympathize and understand.
- debaserab2 8y agoOr maybe this came out of an MS R&D arm that had free reign on design and it’s not some overall signal that MS has admitted defeat to Linux on the shell. I have a hard time believing this couldn’t have just as easily been windows based with the exact same amount of effort. Windows has fantastic developer tooling that I think you’re downplaying quite a bit. > Powershell is a sometimes great (mostly meh) Powershell has a different philosophy for sure - but I have seen sys admins do some pretty powerful things with it, and quickly. What can a Linux shell do that power shell can’t (that isn’t specific to Linux platform needs)?
- 4thaccount 8y agoQuite a bit in my opinion. Of course if both are Turing complete the answer is nothing, but efficiency in development time and speed should be a factor. To give an example, suppose you have a directory with 20 .CSV files that are all 200 MB. This is extremely common for me and the files are much larger for many developers. Say you want to extract certain data matching a string and then sort the whole thing into a new file. In Linux this is really simple with a oneliner and it also runs really fast. Powershell has a oneliner capability, but it is quite frankly abysmally slow. The Linux solution takes about 5 seconds and the Powershell takes 15 minutes. Now there is a way to speed up the powershell code. Running it in parallel helps, but the true performance aid comes in calling some C# within the script and now it is definitely not a oneliner. That is the overall issue. The Unix philosophy is simple to execute, understand, and fast to run. The Windows is complex to understand and often slow. Powershell is great in some instances. The language is certainly better than Bash, but if I have to constantly use C# with it...you might as well just use C#.
- tracker1 8y agofor anything more complex, I often just defer to a node/js script... mostly out of more comfort, but also because it runs everywhere I want it to (linux, windows, mac), usually with minimal effort.
- 4thaccount 8y ago
- freeone3000 8y agoThis is a python framework for reinforcement learning, and has very little to do with the shell or development tooling on linux. Linux was the development focus because the vast majority of the reinforcement learning community use python3 on linux.
- tracker1 8y agoI mostly use the msys bash that comes with git for windows in Hyper (a couple minor configs, but generally works well enough) or the VS Code terminal (same base). I do have most of what you mention setup beyond the git tools, a lot of it is transpiled for windows, though sometimes the path escaping gets annoying and there's a couple other windows isms. I tend to use mac at home, windows at work, and linux via docker, ssh and/or VM for pretty much all targeted/test work. Not a big fan of PS, other than some of the commands available there that aren't generally outside PS.