After Apple's Disappointing MacBook Pro Refresh, What's an Engineer to Do?
linkedin.com
linkedin.com
I hear this a lot, and it's quite sad. PuTTY is not a great terminal application. It just happens to be the only usable SSH client on Windows, and so everyone uses it because they have little choice in the matter. Connection management and copy/paste is such a pain. Microsoft's release of PowerShell as an attempt to improve upon cmd.exe was an enormous failure.
Multi-Tabbed PuTTY (MTPutty)
It's fine to be opposed to the object pipeline in powershell. Enormous failure? Not so much.
Don't like the desktop environment? Change it.
Want more than four virtual desktops? Add more.
Want/don't want fancy 3D desktop effects? Turn them on/off.
You also don't have to reboot constantly to apply updates and there's literally thousands and thousands of self-updating packages you can install in seconds without having to "search the internet." And they're not just limited to "apps."
Even better: If you're developing software to run on Linux servers you can test your code locally without having to upload it anywhere and you don't have to worry about zillions of platform gotchas.
Lastly, with Linux you get access to all sorts of neat things natively that you just don't get to fool around with in other OSes like cool filesystems, virtualization tricks, networking features up the wazoo, low level access to hardware (many motherboards have GPIO pins you can fiddle with natively!), and lots of other "fun" stuff (well, I have fun playing around with the new toys that are regularly introduced :).
-Debian LXDE
The reason I've used a MacBook Pro for so many years is because it really does "just work," or at least consistently has in the past. It's very, very rare (in my personal experience) to run into any system-related issues. I used to run Linux on a laptop and spent ages fiddling around with my Xorg, troubleshooting wireless issues, dealing with buggy desktop environments, etc...
I think a lot of other people are in a similar position, in that the "neat things" and "fiddling" are a negative. I just want a machine that works well with minimal configuration. Is desktop Linux at that stage right now? Popular opinion seems to say no, but I haven't actually tried running desktop Linux since for years.
(I do use Linux every single day, but it's always over ssh/tmux)
Nowadays a lot stuff just works, like tonight I just connected a bluetooth key board to my dechromed acer c720 running xubuntu 14.04. It paired and everything worked first time. Even reconnected after restart. I even exclaimed to my wife how surprised I was. Dechroming and getting xubuntu on there was a bit of work, but the guides online were good enough. Ymmv of course.
But my company is right now looking for a upgrade path out of MBP.
No 32GB option, no Kaby Lake, substandard GPU, AND $500 more? No thanks. We have about 15 machines that were locked into auto purchase for Mac, but now we want to move not only the Eng/Data Science teams away from Mac, but our entire company(through Linux and ChromeOS most likely). Our ~60 person company's IT budget won't cause any pain for Apple, but I wonder how many other similar teams will consider a similar path forward.
I use to do scientific computing, computational chemistry, and was just fine with only 3gb of RAM. No need for more even running on virtual machines.
Partly this is because of the tools and projects. The chemistry software was super lean and written in C++ or even Fortran. It had to squeeze every drop of performance out of a supercomputer but scaled down to my laptop for small problems with no trouble. What I wanted was a faster cpu not more ram.
The web tools are bloated by comparison. Multiple jvms that will take all the ram they can get. Software is written to add features fast. Who cares about performance when we can throw more ec2 instances at the problem. Also as micro services get more popular, you might be running several bloated services at once maybe in separate containers. Many of these services are mostly sitting idle, so CPU isn't a limitation but ram certainly is.
In Windows, you could replicate this with a virtual machine. Furthermore, you most likely don't want to be running your application code in Windows anyways. The best practice is to develop in as close to an environment as possible to what you will be using in production. However, with the proliferation of Docker, it's becoming less and less dependent on what your host OS is going to be. Still, it's just more convenient to have a Unix environment.
You know what they say... First impressions are dumb and wrong. Oh wait, they don't say that. But they should because in this case they'd be right.
Our forefathers and foremothers did everything from dumb terminals. They did serious things.