Comment by colechristensen

8 years ago

You'd better believe that if Windows had an acceptable terminal 10 years ago I would have never purchased my first MacBook.

The pleasant interaction with other *nix systems was and is a primary driver for my choice of OS X.

PuTTy sucks. Every other terminal I have tried on Windows sucks. Getting terminal-based software to work on Windows sucks. I stopped trying years ago because a terminal on OS X doesn't suck. It might not be a perfect 10, but I'm happy with it.

I'm also more interested in Windows more and more as time passes.

Losing as the most popular OS has made Microsoft start doing some of the right things.

Can't agree more. This was also what made me to buy my first Mac: the fact I have a natively supported terminal (that's blazingly fast), with ssh client (and server too, whenever I need it), with shell that's not some kind of ugly hack (geez, CygWin nightmares) and BSD userland tools at my fingertips is the quality no computer/OS maker can deliver up till today, so despite being displeased with some recent design choices (I love my 'old school' Mac keyboard, I love my MagSafe adapter, I love my 2015 MBPR ports and form factor, thank you) I keep buying Macs.

I'm a Linux guy myself, but whenever I see colleagues use a terminal on Mac OS or Windows, the amount of little annoyances on Windows really sticks out. It's nothing major (hard to configure colour schemes, awkward copy/paste operations, PuTTY), but it compounds to an unpleasant experience.

  • Also lack of fullscreen support (pre-windows 10), no history and it seems that command line was just a joke for MS for the longest time.

    I think it's the explosion of open source and the corresponding command line tools that they started investing some time and effort to the command line.

    • Honestly, I think the biggest driver is the type of developers you find now. With Open-Source being such a large area for almost every CS student and budding developer - the normal work environment is becoming very Linux-heavy.

      A natural result is now the Devs working at Microsoft ALSO wish they could use the command line for everything in Windows. Thus Powershell, and things like AZ CLI becoming much better.

This. 10 times this. I moved to MacOS 10.3 in 2004 because the things I did professionally were almost all in Linux (which I had been running in the data center literally since 1994), and MacOS felt and acted like Linux with a nice GUI. I lived most of my life in Terminal and rarely noticed the difference between when I was ssh'd in to a server or working locally. Awesome stuff.

I doubt Windows 10's inclusion of ssh alone addresses this use case; for that you'd want a full cygwin or something. I don't know anymore - I don't use Windows for any purpose other than games on dedicated gaming computers these days. Despite Apple going backwards with each successive macOS release (probably since 10.8) it's still a much more usable OS for the majority of the things I do than Windows 10. I do like Windows 10 better than Vista and 7, though, on my current gaming computer.

> PuTTy sucks

Never been a problem for me. What are your complaints?

I barely notice the difference, but if I had to choose I'd take putty over Terminal.app, which has default keyboard-shortcuts that clash with Bash. (I believe it was Alt-b, Alt-d, or maybe Alt-f. I forget exactly.)

  • It's one of those things that's hard to explain. If you're used to a proper terminal emulator, you'll know immediately. PuTTy has terrible configuration and awkward default settings, and gives the impression of being pretty flimsy. Remove the network cable while in an SSH session, and PuTTy will immediately disconnect you. Try doing a port forward, and you'll need to dig around instead of just typing it into a terminal. Also aesthetically, PuTTy has nothing on Terminal.app or iTerm2 etc.

    • This is so true. Another attemp to explain might be: The cmd.exe and PuTTy always feel like foreign bodies in the windows world, they don't integrate, they are an rough try to fill the gap between the "old" command line world and the "new" windows world (in the win95 language). In contrast, already the OS X terminal feels like a first class citizen in the environment.

      It is worth to emphasize what has been said before here: Since Windows popularity is decending, they start to catch up with that attitude. Nowadays, for instance, you can open the terminal from every folder in explorer.exe -- this is exactly this kind of integration Windows missed for 20 years. Once they kick out cmd.exe in favour of something like Console2 (https://www.hanselman.com/blog/Console2ABetterWindowsCommand...) and update the toolchain even more than they did with PowerShell (actually integrating GNU/bash was a major step), developers will come back.

      1 reply →

    • > Remove the network cable while in an SSH session, and PuTTy will immediately disconnect you.

      But it's not a problem with PuTTY, it's a problem with Windows networking subsystem. Once you remove cable, the whole interface immediately goes down, IP address gets deconfigured, and all open sockets using the address get closed. (I was bitten in the ass by this when I had several Windows Server machines under my care.)

      You'll get exactly the same with any other long running TCP connection.

      1 reply →

    • nix user going on 25 years here. I use WinSCP and PuTTY to all the time and they work just fine.

      > Remove the network cable while in an SSH session...

      This argument seems a bit contrived. Is this honestly something you're concerned with on a daily basis? I doubt it.

      > Try doing a port forward, and you'll need to dig around instead of just typing it into a terminal.

      No, you don't just type "it" into a terminal. First, you have to lookup the command syntax if you haven't used it in a while. Then you have to type it in correctly and if your syntax is off by even one character, things don't work.

      > Also aesthetically, PuTTy has nothing on Terminal.app or iTerm2 etc.

      Aesthetics are nice but do you even have a tool like WinSCP? It graphically displays the remote filesystem over your SSH connection and then lets you open a terminal to the path you were looking at. I don't even have to type my password when I open a new terminal from WinSCP.

  • Text rendering is bad (and is generally unpleasant to look at), it forces UI interactions, it's not a terminal so I can't do anything locally, no tabs, IIRC text doesn't reflow on window resize.

    It's generally difficult and awkward to work with and unpleasant to look at.

    • Text rendering (old problem) and high DPI scaling (new problem) are what keep me firmly planted in macOS land.

  • To add to the other problems that people have mentioned, text selection is a little strange and putty doesn't pass along keys like "End" for some reason, which is useful in tools like less.

    If you use git on Windows with PuTTY/plink it's also significantly slower than OpenSSH. I saw clones of a large repository go from 60 KB/s to 600 KB/s after switching from PuTTY to OpenSSH.

    • Wrt less: Assuming End just goes to the bottom of the document (I'm away from my computer so I can't check), G does the same thing

  • With PuTTy you have to open a separate application and configure connection in a completely different manner. Compared to Linux/OSX which enables a "work in a terminal" model, where "ssh", "scp", etc. are commands that can be used from within an existing terminal. It feels like a completely separate tool from the terminal instead of integrated with the terminal. I think this is a similar argument that users of text-based-editors (vim, emacs) have over using GUI-based editors.

  • Same.

    I like Putty's graphical session manager; on OSX and Linux I don't want to fiddle with ~/.ssh/config.

    The lock-in with Putty is annoying though, being able to export all configured sessions to a .ssh/config file would be awesome.

    • As a counterpoint, I LOVE the whole ~/.ssh directory. It keeps everything in one place, is text-editable, is cross-platform between Mac and Linux, and easily transferred to new machines, or restored to existing ones after a fresh reinstall.

      With Putty, if I want to change, say, the size of the terminal opened on connections, I'd have to update every Putty session individually. Been there; done that. Ridiculous. That should be a function of the terminal you run SSH under, not the SSH session itself.

    • The config all lives in HKEY_CURRENT_USER\SOFTWARE\SimonTatham\PuTTY. You can export it all via regedit or: reg export HKEY_CURRENT_USER\SOFTWARE\SimonTatham\PuTTY PuttyConnections.reg

      It is definitely a lot messier than working with ssh_config.

      1 reply →

    • There are versions of PuTTY that store the config in files, usually with names like Porta-PuTTY. I use the hacked up Xming Portable Putty because I do a lot of X forwarding and the base PuTTY used to have some stability issues with it. They're probably fixed now, but I still use the hacked up PuTTY because my configs are in the text files instead of the Registry and regular PuTTY doesn't know about them.

      1 reply →

    • It's all in the registry. I forget where, but search for the hostname or ip of one of your configs in regedit (CAVEAT EMPTOR!!!!) and export the whole folder with all the configs in. You'll get a .reg file (or whatever it is) that you can double click on any other windows machine and your settings will get ported over. Paths to key files are preserved verbatim.

      Again CAVEAT EMPTOR (as with anything to do with regedit).

    • All of the sessions are stored in the registry, which you can dump to a text file easily enough. A couple of minutes with awk or something and you'd have your ssh_config file.

  • I quite like PuTTy as well. I have only had problems when using gdb or jdb - it doesn't translate arrows properly so history or editing current command doesn't work and some apostrophes or ticks or whatever get translated to accented characters. I always blamed the shitshow of unix tty for that. Is there an ssh client/terminal that doesn't have these problems?

    • PuTTY on Windows does all of those things perfectly reasonably for me (I just checked) - it might be as easy as making sure your PuTTY environment defaults to UTF-8 instead of ISO-8859-1 or various codepages.

  • For one, it's plainly impossible to use an existing OpenSSH private key with PuTTY. You can convert PuTTY keys to the OpenSSH format with putty-keygen (or what it's called), but not the other way around. This antifeature alone cost me two hours recently.

  • Is anyone really using Terminal.app? Once I tried iTerm2 I never launched it again.

    • Been a while since I've used a Mac, but I seem to remember that at one time, Terminal.app lacked tabs, but they were added in a later version of the OS.

      What are the killer features of iTerm2?

The big problem is the filesystem is still vastly different.

The web, Unix, Linux, OSX, pretty much everything other than Microsoft uses properly namespace driven forward-slash separated paths with no drives and case sensitivity.

That you can't fix, merely abstract it away. I am tired of mapping between the two.

   scp myfile.txt winmachine:/d/Users/Whoever/Documents/Projects/X/File.txt

Then I cut and paste. Oh no wait I can't. Now I have to replace all the /'s with \'s and d with d:...

Or

   scp myfile.txt linmachine:/home/whoever/documents/projects/x/file.txt

I'm done and moved over the fence. \ means escape. / means path separator. No \\ problems either.

  • Totally agreed, I always use slash, and never use backslash, because I'm a 20 year nix user, and: powershell doesn't care. try it.

    • Powershell doesn't but not everything is powershell. Win32 underneath pokes its head out occasionally. And I don't want to use powershell. It's horrid in so many ways.

      I'm a Unix user since about '93 for ref as well. I am poisoned with forward slashes everywhere :)

      5 replies →

> Losing as the most popular OS has made Microsoft start doing some of the right things.

While Microsoft has started doing good things which I can agree on, when did they lose OS market share to the point of not being number one? If we're talking about Apple hardware outselling any one vendor, that's true, but there's volume. Also, one of the first things I did after getting my MacBook Pro (and others I know who don't want to leverage VMs/Parallels. I like Windows and OSX being separate from a context point of view) was dual boot Windows.

  • Likely a reference to this view of the OS war: https://en.wikipedia.org/wiki/Usage_share_of_operating_syste...

    Android is first by a large margin. iOS almost outnumbers Windows as well.

    Microsoft post iPhone needs to prove that it's worth using a desktop at all, not that they deserve to have the highest share of desktop users. Stopping the bleeding inflicted by Macs, which sync so well with iOS, is part of that.

  • Desktops and laptops have lost much ground to phones and tablets. There was a time where comparing a desktop to a phone was silly, that time has passed.

    The number of people using Windows to do their "computer things" has gone down dramatically. Even if they have a Windows computer, much of the time spent doing computer things has moved to Android and iOS.

Not that I have anything against MacBooks, but was installing some Linux distro (or a BSD) not an option?

  • Because the Linux desktop sucks. (that's the word of the day)

    If I had a Linux laptop, an extraordinary amount of my time would be spent trying to make it work. Wireless breaks, sound breaks, upgrades break everything. I would have to spend a serious amount of time and research finding a laptop that had good Linux support... regardless I would still probably have to spend hours trying to get the sound or the wireless or sleep or some feature or another to work properly.

    OS X just gets out of the way. I have never had to put any work into making the graphics card work or making sound work or making the network work or fixing boot... you get the picture.

    If I'm using Linux on a laptop to do any sort of work, a sizable portion of the work becomes keeping Linux working on the laptop and I don't want that.

    • ...meh, just limit yourself to the tops of the lines like Thinkpad, XPSs etc., make sure any networking components are branded Intel, pick Intel CPUs' integrated graphics or not-low-end Nvidia, and everything will just work fine out of the box with an LTS Ubuntu or latest Fedora (basically pick whatever's closest to what you use on your servers).

      But yeah, if you buy anything that's not part of the "top of the line developer notebook" category, specifically the Intel not AMD ones, then almost nothing will work out of the box :)

      1 reply →

    • I'm pretty sure that I've spent less time maintaining my laptop than my colleagues who are on OS X. That obviously isn't the case for every laptop, but I don't think that your statements generalize well either.

    • "Sucks" is subjective; you're allowed to think that.

      In years past you may have spent hours getting wireless or sound working. These days, if you buy decent, mainstream hardware it just works. Ubuntu does a great job of getting out of the way.

      I'm a Fedora guy, myself, but find myself recommending Xubuntu to more and more people for casual computing because 1) it really does just work, and 2) Xfce is lightweight and lets you use your CPU for doing real work vs. holding up a bloated windows manager.

    • linux desktop does not suck.

      Linux on unsupported laptops (which is most of them) sucks big time, but not linux desktop itself. It works great on standard desktop computers (towers)

      you should make that distinction, because otherwise you'll just start a flame war.

      11 replies →

    • Just to be clear, if a Macbook works better for you or if you just prefer macOS, by all means, go ahead. Macbooks, from what I hear, must be superb machines, and while I prefer Linux with a Mate or XFCE desktop, I have used a Mac for a while and there are things I do miss. And a lot of software is available for Windows and Mac only; given the choice between Windows and macOS, I wouldn't have to think long.

      I hear that argument frequently. On macOS (or even Windows) things just work(tm), while on Linux (or some BSD), there is always something that does not work correctly.

      I guess I must be quite lucky. A long time ago, I positively enjoyed spending an entire weekend getting a sound card to work or something. To be honest, these days I consider myself too old for that stuff. I, too, like it when things just work. But really, Linux as a desktop system has come a long way, and for the past couple of years, things have pretty much just worked(tm) for me.

      Picking hardware that is supported by Linux takes a little care, so does picking a distro[1], especially with laptops. But I prefer to do a little research before buying a laptop anyway, because I am usually on a budget.

      [1] In my experience, the more recent the hardware, the more unlikely Debian is to work. OpenSuse has worked well for me, though.

    • I put Ubuntu (Mate) on an old Macbook of mine because it was absolutely crawling with MacOs on it. The only driver it needed was a Wifi driver. Everything else worked fine out of the box.

      Also, I run an Intel Nuc (laptop hardware, essentially) with Ubuntu as a main development machine. 0 problems. 0% in the way.

      OSX is great, don't get me wrong. But, it's been years since I've ran into driver problems with desktop Linux.

    • > If I had a Linux laptop, an extraordinary amount of my time would be spent trying to make it work. Wireless breaks, sound breaks, upgrades break everything.

      At our office, the macOS laptops tend to have the most problems with sound & graphics; the Linux desktops, OTOH, Just Work™. I find that pretty funny, actually, because I would have expected it to be the other way around.

    • The most problems I ever had with Wifi was a mac machine (rMBP13). In the office, usually during RDP sessions, it often lost the connection and couldn't reconnect until reboot.

      I've never had anything similar happen with a PC (we use Thinkpads), whether running Linux or Windows.

      My Mac problem was solved using ethernet adapter.

    • Linux Mint worked perfectly on my T420, and I expect it to work perfectly on the T440 I'm picking up today to replace it.

      Sure, not the very newest hardware, but it's not like laptops have gotten significantly more powerful for anything that actually matters, for the last couple of years.

      8 replies →

  • Of course it is, but even with all advances in terms of UI in Linux distros, many people still prefer the MacOS/Windows GUI and ecosystems, or just like Apple hardware more.

    Macs historically have always been a decent compromise for having decent GUI/Linux-like terminal/nice hardware.

    It's kind of a different environment now, with PC manufacturers coming up with well designed laptops and Windows offering more Linux integration.

  • If you want to get some work done, and not just fiddle around with getting wifi, sleep, graphics working, then installing Linux is not an option.

    Linux could be the new Mac os X if all the Linux distributions chose to focus on one platform and way to do things, but nobody in the Linux world is going to do this.

    Also, Mac has unified hardware, so they pretty much can optimize so that stuff Just Works.

    • I haven't had any trouble with Linux desktop on mainstream laptops for the past 15 or so years. The days of hand tweaking your Xfree86 configuration files and refresh rates are gone.

      Of course there are things that are not working so nicely, and are not meant to. For instance, running RHEL (which is a server OS) on a laptop (which typically has new optimized hardware which is not meant to be server) and then expecting graphics and WiFi work on a kernel that is much older than your hardware and thus has no drivers.

      Perhaps you might expect some trouble also when running Windows Server 2012 on a new laptop? I don't know, I haven't tried, but wouldn't be surprised.

      2 replies →

    • You can buy a laptop that ships with Linux, and then you get the same works-out-of-the-box experience as a Mac.

      The Dell XPS 13 is a good choice if you want something from a major manufacturer, but there are loads of smaller companies, too.

      1 reply →

  • That resolves that issue, but has its own downsides.

    There’s a lot of things I like about macOS [eg: better power management], but the main reason I switched was because it was a Unix I could put Photoshop and InDesign onto.

    • Well, if you need certain applications that are not available on Linux, all the hardware support in the world does not help you.

      That argument trumps pretty much everything else. If my boss came into my office today and told me to switch all of our desktop computers to Linux, as much as I would enjoy that, I would have to tell him that it cannot be done, because we use a lot of software that just is not available for Linux. (And a fair amount of it is not even available for macOS.)

  • Personally the most annoying thing is the little UI inconsistencies like clipboard handling. In a mac it is always Command-C/Command-V - in X sometimes it is Ctrl+C/Ctrl+V, Ctrl+Ins/Shit+Ins, mouse-select/mouse-middle-click and so on. Many applications have incompatible clipboards.

    • The reason for the confusion is that there are two separate clipboards: one for Ctrl-C/Ctrl-V and one for mouse-select/mouse-middle-click. To use the first clipboard on terminal emulators you need to use Ctrl-Shift-C/Ctrl-Shift-V instead because the Ctrl-* shortcuts have legacy meanings in the terminal. I don't remember ever needing to use Insert for copy pasting (although you can use it if you want).

      I don't know what examples you had in mind when you mentioned applications having incompatible keyboards. The only one I know that does that is Vim (which by default uses the internal clipboard when you use its cut, copy and paste commands) but Vim is definitely not your average Linux application...

    • Well, Terminal.app also has mouse-select/mouse-middle-click, which is a separate clipbard (from Cm-C/Cm-V) as well

      1 reply →

Check out MobaXterm ( https://mobaxterm.mobatek.net/ ), it's the best terminal for windows I ever tried. Have a really handy list for remote connections, an X server, sftp browser for connected servers, Linux Subsystem fro Windows support, and a lot of other useful features. (I am not connected in any way to the developers)

Not to forget iTerm 2 on macOS is amazing. I find it much more pleasurable to use than the default Terminal.app

  • I try it every few years, but always seem to end up going back to plain Terminal.app. The main issue is speed and memory usage— iTerm2 seems to be much slower and laggier, especially on a busy laptop (running VMs).

  • Because *nix kernels provide terminal devices, making a new terminal program is relatively easy on OS X compared to Windows where a lot of the free things have to be written in userspace.

    I usually use iTerm2 as well.

> PuTTy sucks

PuTTy is amazing, and my experience of using windows over the years would have been far worse without it.

However I do understand the point - compared to using a real terminal, it does indeed suck to be stuck on windows using PuTTy

For a terminal on windows, I have now taken to install cygwin, X on cygwin, and then xfce-terminal on top. It's not perfect either, but it is better.

I've recently discovered cmder and it actually makes Windoze bearable to use. Of course I would never give up Linux if it were my own choice, buy work is work. So they've got an SSH client at last, but still no decent terminal, I suppose.

I think the question is not whether someone would buy a MacBook because it has these tools built in but rather, why would someone buy Windoze given that it doesn't have these tools built in?

  • I really like the Windows 10 OpenSUSE terminal. Just install it from the Windows Store. OR you could install the Ubuntu Terminal. Either way they have replaced cmder for me.

Primary reason I'm on OSX is due to working 100% Linux servers. The hardware of a MBP is unbeatable to me.

Try Cygiwin + ConEmu + MinTTY . It was I used when I was force to work on Windows to get a decent shell & terminal.

Bitvise SSH Client is the best one on Windows that I have ever tried. I agree - using Putty sucks massively.