10 ms·
microsoft is leveraging FOSS Linux to get Mac users. I think it's a real smart move. The author points to using grep and Xargs and some other tools to quickly
by matt_wulfeck 11y ago
microsoft is leveraging FOSS Linux to get Mac users. I think it's a real smart move.
The author points to using grep and Xargs and some other tools to quickly update a package. That's the key here. These bash/Linux utilities are productivy boosters for all the Linux and Mac/bsd people out there. I can't imagine living without them and they're necessary for any system I develop on (which is currently a Mac).
- simonlc 11y agoI completely agree. I only really switched to OSX because getting node tools to work on windows and cygwin is a pita.
- tostitos1979 11y agoI've been "stuck" with a 2010 Macbook since Apple isn't refreshing it's laptop hardware soon enough. Plus I'm sick of soldered in RAM and other BS. For devs that do heavy Linux work (but have stuck with a Mac OS for GUI/app reasons), is it time to move (back) to Windows? If so, what would be a good laptop to get at the moment?
- sixothree 11y agoThinkpad T460s. I have the T450s and like it plenty. It's definitely up there with macbook build quality.
- meddlepal 11y agoThe T540p isn't though. I hate mine.
- criddell 11y agoI have a ThinkPad Yoga and an older ThinkPad T520. Both are pretty awful machines. Plus I really don't trust Lenovo anymore. If I were buying a Windows machine, the only one I would consider is the Microsoft Surface Book.
- peternicky 11y agowhy don't you trust Lenovo?
- jjawssd 11y agobad build quality. also had issues with humming and generally falling apart in subtle ways while macbooks never do.
- meddlepal 11y agoLots of cheap plastic. I don't love Apple products but the build quality of their products makes PC vendor laptops and desktops look really bad.
- se6 11y agoI prefer a great deal plastic to environmental foe aluminium. To me their use of aluminium is a very good reason not to buy Apple hardware. I have a Dell M3800 right now, and the build quality is very good. Thin, light, excellent 4K touch screen, good battery life, I easily added a second HDD to it. Not to mention that every thing works perfectly well under Linux.
- criddell 11y ago> good battery life What? The M3800 had terrible battery life under Windows and it was even worse under Linux.
- r3bl 11y agoI'm pretty sure that the answer comes down to one word: Superfish. Although, in my opinion, I wouldn't trust any laptop hardware company out there enough to use the system that came pre-installed with it, but that's for another discussion.
- criddell 11y ago
- snuxoll 11y agoDell's Inspiron line is my go-to for portable workstations. Run Linux straight on them, or if GNOME/KDE aren't your cup of tea just run Windows and put your distro of choice in a VM (I just run Fedora on everything but my gaming PC, personally). I'm personally using a Dell XPS 13 (2014), soldered in RAM, but I did buy an ultraportable and 8GB is more than sufficient to do my all my personal work on. Work supplied me with a Lenovo W540 that is substantially more flexible, but it weighs as much as a couple bricks and I usually just leave it at home on the dock.
- jpalomaki 11y agoI don't have hands on experience, but Dell XPS 15 looks like an interesting option for thoaw looking for Windows laptop that is close to 15" Macbook Pro (quad core, sleek etc).
- NateDad 11y agoI have the XPS 15. It is almost identical to a Macbook Pro. Build quality is really awesome. Super super happy with it. The new one with the infinity edge screen is super friggin' sexy, and will absolutely be my next computer. I know a bunch of other devs on the XPS 15 as well, also very happy (we run Ubuntu, but I'm sure it's even better in Windows).
- Pwngea 11y agoWhich one do you have? How is it specs-wise?
- NateDad 11y agoI have one that is now 2.5 years old. Specs-wise, it was basically top of the line. Quad Core i7, 16GB RAM, 500GB SSD, 3200x1800 touchscreen, GeForce 750m GPU (which was one of the best mobile GPUs back then). It has a lot of nice touches that lower end models don't have, like 2 or 3 USB3 ports, with 2 or 3 USB ports that have power even when the laptop is off (super handy for charging a phone on an airplane while your laptop is still in your bag, for example). Wireless N networking, HDMI and MiniDP connections, able to drive two external monitors at once along with the laptop screen (up to 1920x1200 over HDMI and 4k over miniDP). The touchpad is pretty decent. backlit chicklet keyboard with variable brightness. SD card slot, 1/4" headset port... the only thing it's missing is an ethernet port, but that's just because it's too thin for the port. A USB3 gigabit ethernet adapter is cheap and works great. And it's pretty damn light for a 15" laptop. Easily one-handable (I think it's like 2 pounds IIRC). And what's great is that you can crack it open and replace stuff - I swapped out the hard drive and replaced a malfunctioning battery myself with just a torx screw driver (super tiny torx, but still, no glue or special tools or anything). It was pretty expensive - like $1900 IIRC. You're paying for the high res screen, better build quality, and thinness/lightness. But it's still like $500+ less than an equivalent macbook.
- matt_wulfeck 11y agoI would say no, especially if your mac had an i7 and reasonable amounts of ram.
- x1798DE 11y agoWhy not move to Linux?
- matt_wulfeck 11y agoJust out of curiosity, what does a Linux desktop offer that's not also natively offered in Mac and also highly polished? Every year I try a switch to Linux desktop. This year I made it as far as trying to get multiple monitors working well. I also dabbed in gaming. In the end I went back to my work=Mac game=Windows duopoly.
- toyg 11y agoSome tools (docker etc) are typically borne on linux and later (not always) ported to OsX. Nothing you cannot get around with a bit of emulation, of course, but it can be painful at times. The whole python ecosystem is also better on Linux overall. Anything strictly desktop-oriented is better on OSX of course.
- zeveb 11y ago> Just out of curiosity, what does a Linux desktop offer that's not also natively offered in Mac and also highly polished? A GNU userland. A plethora of tiling window managers. A selection of clean terminals. Every single thing Debian's or Arch's repos offer which one must turn to brew for. And of course there's freedom too, which is nice. > Every year I try a switch to Linux desktop. This year I made it as far as trying to get multiple monitors working well. I've got multiple monitors running on Linux, over HDMI, at home & at work, at differing resolutions & orientations. I use arandr-configured xrandr scripts which set my desired orientation with a quick keystroke in my window manager. What more does one need?
- matt_wulfeck 11y agoMaybe HDMI is better supported that DisplayPort.
- diyorgasms 11y ago
- leshow 11y agowhy not just stay on linux
- zeveb 11y ago> For devs that do heavy Linux work (but have stuck with a Mac OS for GUI/app reasons), is it time to move (back) to Windows? Why not just use Linux? It has a GUI. It has apps. It does everything a modern desktop or laptop needs to do. It really is great.
- trill1 11y agoRight! This whole thread has me scratching my head. Not long ago Microsoft schemed to stomp out Linux and now they've had a change of heart? Fuck Microsoft! To this day even they engage in anti-competitive bundling with OEMs, not to mention their seedy history in relation to open source.
- khattam 11y ago>Why not just use Linux? I would LOVE to ditch OS X and run Linux on it, only problem is NO DISTRO supports latest hardware. There are always things that don't work and it gets tiring. I tried to run Ubuntu on my old Dell Laptop... there would always be some issues related to graphics card, wifi or some shit, overheating, battery drain... or something not working. At the end, had to go for Windows with Ubuntu on vagrant boxes and Desktop Ubuntu in Virtualbox. Then on my new Macbook Pro, I wanted to run Ubuntu 14.04... but of course, so many things don't work... like right clicking on the touch pad, WiFi or such simplest of features you'd expect to be supported in such widely available and pretty standard hardware... but NOPE. So, it's vagrant and Virtualbox running mostly Ubuntu on OS X again. I am actually considering installing Windows and running Linux on a VM inside it.
- JdeBP 11y agoWith UbuntuBSD (https://news.ycombinator.com/item?id=11326681 https://news.ycombinator.com/item?id=11326681) the equivalent question is "Why not just use PC-BSD?"
- deckar01 11y agoGo to a brick and mortar electronics store, pick out a laptop that meets your desired specs, and do something realistic with it for a while. There are lots of little things I took for granted about Apple MacBooks that no Windows laptops could match. Touch pad, high dpi display, and cooling were never quite done right, but they are crucial for every day operations.
- cheapsteak 11y agoI'm with you on the touch pad, three-finger touch-drag in particular is something I've not found a PC do well; my PCs' scroll simulated scroll momentum is also buggy (scroll, stop scrolling, Ctrl+click to open new tab, messes up the font size instead because it's still stimulating mouse wheel movement) I'm surprised to hear someone preferring macbooks cooling though, my macbook always gets so hot relative to other laptops
- willtim 11y agoI would suggest not trying to source quality hardware from an electronics store. For software development, Thinkpads more then compete with MacBooks, the keyboard is considerably better too.
- deckar01 11y agoI just meant electronics stores have display models you can try before buying. I think my local stores carry Thinkpads, maybe they were IdeaPads.
- skrebbel 11y agoWait, getting node to work on windows is a pita? I know of no language runtime and ecosystem that has better cross-platform support than Node (hm ok maybe Java also). I develop solely on Windows (I just like it better) and virtually all of NPM just works on my box. Even stuff people never tested elsewhere than on their Macs, it just works. Express, webpack, mocha, phantomjs, it's really quite impressive if you ask me.
- itsananderson 11y ago99% of the painful Node stuff on Windows comes down to native packages. To even compile, you have to install Visual Studio. Then you have to hope the module developer has a build definition that even works for Windows.
- edwinyzh 11y agoCorrect! The last time I wanted to npm-install a CLI but it needs gyp, I'm not familiar with the node thingy and I gave up after several failed attemps including installing the VC++ runtime, Python, etc....
- hatsix 11y agoWindows Path issues and compiling native code. Between those two things, nearly everything I've ever tried on windows has failed.
- girvo 11y agonode-gyp, though. In my experience, it's the native packages that cause problems, which is honestly to be expected because building a native library for Node to bind to in a cross-platform way is always going to be somewhat painful.
- whatever_dude 11y agoI agree. I'm (mostly) a Windows user, and the one reason I'm constantly thinking of moving to OSX as my primary OS is the amount of command-line tooling that is available in the system. Everything new is always there first. I've started feeling that I was holding back by staying on Windows, even if using Mingw daily. This might be the thing that saves Windows as a dev machine for me. I'm a heavy cmd/powershell user but I'd migrate to bash in an instant.
- avtar 11y ago> I'm constantly thinking of moving to OSX as my primary OS is the amount of command-line tooling that is available in the system. Everything new is always there first. Having had OS X, Windows, and various Linux distributions as my primary operating systems I would consider having an Arch Linux VM kicking around if you want all the packages in the world, maintained fairly well.
- whatever_dude 11y agoI've done so in the past, but it becomes cumbersome to manage shared folders. The ability to have everything shared and your driver naturally working under /mnt/ - essentially replacing cmd with bash and its tools - is a big deal for me. Using editing/managing/design tools in Windows build with a build/deploy system in bash, and no middle man... that'd be the day.
- Scarbutt 11y agoYou don't use shared folders with your linux VM, you ssh to it, and use tmux/(vim|emacs) ;)
- swah 11y agoMe too - but why not a Linux VM or a VPS? Its mostly for textual usage, no? (My own answer is that cheap VPSes are 150ms away from me, and with Virtualbox I had a few problems, always related to Windows file permissions yada yada yada...)
- tetraodonpuffer 11y agothis, so many people that develop OSS do so on mac laptops because it's so easy to get the toolchain working, with real linux binaries in windows it's making the value proposition of the surface book a lot stronger for developers.
- samstave 11y agoIts actually kind of interesting that we dont have a literal "standard base" of tools that any OS should supply. (unless I am missing something) But it would make sense that certain things should be doable on literally any computer. grep, find, vi, edit, etc... etc... I cant come up with a complete list - but it would be great to start that direction.
- matt_wulfeck 11y agoI would argue that gnu coreutils is this base. Available on al *Nix OS, including Mac.
- umanwizard 11y agoOS X definitely doesn't ship with gnu coreutils. Sure, it's possible to install them manually. Also, why gnu and not bsd? OS X's find, grep, sed, and so on work fine for me and are not gnu.
- umanwizard 11y agoWe have exactly what you're talking about. It's called POSIX. "The Portable Operating System Interface (POSIX) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems." (https://en.wikipedia.org/wiki/POSIX https://en.wikipedia.org/wiki/POSIX)
- stcredzero 11y agomicrosoft is leveraging FOSS Linux to get Mac users. I think it's a real smart move. Apple leveraged a form of BSD -nix to get developer mindshare. Now Microsoft is leveraging FOSS Linux to leapfrog Apple. It is a smart move. While OS X isn't bad for -nix-like development, it still involves jumping through hoops and compromises. (Homebrew/Macports)
- zxcvcxz 11y agoI believe there will be many hoops to jump through to use this as a development environment too, and the limitations of this ABI will be plenty.
- matt_wulfeck 11y agoThe thing I'm wondering is how it will handle launching daemons. It doesn't look like there's systemd or upstart integration, and without something like screen it quickly becomes a hot mess.
- JdeBP 11y agoIt is, quite simply, not aimed at launching daemons in the first place. * https://news.ycombinator.com/item?id=11391961 https://news.ycombinator.com/item?id=11391961 * https://blogs.windows.com/buildingapps/2016/03/30/run-bash-on-ubuntu-on-windows/ https://blogs.windows.com/buildingapps/2016/03/30/run-bash-o... I strongly suspect that you will never see systemd working on the Windows NT kernel. Getting systemd to work doesn't just involve supporting the Linux kernel system calls, but also involves getting what those system calls do to work as well. It's all very well supporting open(2), but if one cannot open (say) /proc/self/mountinfo or all of the stuff under /sys or many other things (some listed at http://0pointer.de/blog/projects/the-biggest-myths.html http://0pointer.de/blog/projects/the-biggest-myths.html), then systemd might load but it won't run and work. The same goes for upstart. For example: upstart uses pseudo-terminals for logging. The Windows NT Linux subsystem, according to the Microsoft demo video, doesn't implement pseudo-terminals and returns ENOENT when a program attempts to obtain one. * http://upstart.ubuntu.com/cookbook/#console http://upstart.ubuntu.com/cookbook/#console * https://news.ycombinator.com/item?id=11415843 https://news.ycombinator.com/item?id=11415843 Then there's the fact that the Windows NT Linux subsystem doesn't run Linux programs as the first process in the entire system. That honour goes, of course, to Windows NT's own Session Manager. Both systemd and upstart have "Am I process #1?" checks, and operate in a non-system mode if they aren't process #1. Which brings us on to the fact that Windows NT already has a mechanism for launching daemons. It already has a Service Control Manager that supervises daemons and that talks LPC to control utilities. It already has a Session Manager that handles initialization, shutdown, and sessions. Ironically, it has had some of the things that are "new" in systemd for roughly a quarter of a century. (But some of those "new" things aren't even new in the Linux and Unix worlds, really.) It's worth observing that the approach taken by the old Windows NT POSIX subsystem (the Interix-derived SFU/SFUA one) is to run daemons under Windows NT's own Service Control Manager. There is a small shim (psxrun.exe) for ensuring that the Service Manager could run and control the POSIX program, doco on what environment a POSIX program should expect when run under the Service Manager, and an Interix version of the service(1) command that understands Windows NT service management and how to speak to it. * https://technet.microsoft.com/en-us/library/bb463219.aspx#EHAA https://technet.microsoft.com/en-us/library/bb463219.aspx#EH... * http://systemmanager.ru/svcsunix.en/extfile/portapps/servicesanddaemons.htm http://systemmanager.ru/svcsunix.en/extfile/portapps/service... It would be interesting to see how some of the daemontools family of service management toolsets -- such as nosh, runit, perp, daemontools-encore, and s6 -- fared on the Windows NT Linux subsystem. I suspect that one would trip over unexpected holes in the Windows NT Linux subsystem (like setuidgid not working because the underlying system calls return EPERM, perhaps). But I also suspect for several reasons that quite a lot would work. The daemontools family uses FIFOs and ordinary files as the control/status API; is composable and loosely coupled and so doesn't lock everything in to Linux-specific stuff (like specific files in /proc, /dev, or /sys) even if one tool in a toolset might need such stuff and permits that one tool to be replaced or otherwise worked around; and can do service management without demanding to be process #1. So one could spin up svscan, or service-manager, or perpd, or runsvdir; stub out or comment out invocations of setuidgid or runuid with a dummy program if the Windows NT Linux subsystem didn't support that; similarly stub out or comment out invocations of jexec (for nosh service bundles that use BSD jails) and whatever of ionice, chrt, and numactl (for nosh service bundles that use those) don't work; and probably get quite far. But the big deal would be spinning service management up outwith a Windows NT login session, so that daemons are actually daemonized. The old Windows NT POSIX subsystem actually has an init process (and an inetd) that can spin up other stuff. I strongly doubt, given the very clearly stated aims, that the new Windows NT Linux subsystem has (or will have) anything similar.
- micahbright 11y agoOf course Mac Users think it's about them - everything is about them.