103 comments

[ 2.7 ms ] story [ 174 ms ] thread
How does a programmer evaluate this machine without discussing at least one of vi and emacs, and the absence of real Esc and Fn keys?

By the way, I visited an Apple store and played with the new 15" MBP. It's even worse than I thought. I downloaded the latest Gnu Emacs, and the Fn virtual keys were not available. And in no case did I see the Esc and Fn virtual keys present at the same time.

Also ridiculous is the fact that the touch bar is not available on any keyboard other than the built-in MBP keyboard. So you now have to choose between the features of the touch bar and the comfort of external peripherals.

It is astonishing how many bad decisions were packed into this one revision of a formerly great machine.

>If you need access to function keys (F1–F12), hold down the Function (fn) key at the bottom-left of your keyboard. Touch Bar changes to show the function buttons for you to select, and then it returns to its previous state when you release the Function key.

From https://support.apple.com/en-us/HT204436.

Which is exactly how it works by default on old MacBook pros, since almost all the function keys were overwritten to control functions by default.
It appears you can't opt into it permanently? I'd be interested in finding out if you can just set it to always show function keys.
Even better: you can configure it per application in the foreground.
I have my MBP (with real function keys) set up to not require than I press the Fn key to operate them. Pressing Fn to access the function key is an undesirable workaround.
Can you not do that with the new macbook? I figured you'd be able to do this context-dependent, so that they'd be function keys for relevant programs.
You definitely can, geophile is just being obtuse.

>For some apps, you can make the function keys display permanently in Touch Bar: In System Preferences, choose Keyboard. Click Shortcuts. From the left sidebar, select Function Keys. Click the “+” symbol, then navigate to the app and select it.

From: https://support.apple.com/en-us/HT207240

If you want always function keys, you can do that too:

>If you prefer the top row of keys to always behave as standard function keys without holding the Fn key: Choose System Preferences from the Apple menu. Click Keyboard. Click the Keyboard tab if it's not already highlighted. Select "Use all F1, F2, etc. keys as standard function keys"

From: https://support.apple.com/en-us/HT204436

I actually looked through System Preferences. I did not see a new Touch Bar option, and it didn't occur to me that a non-keyboard device would be configured under Keyboard. My bad. While this does improve things, I would still rather have real keys. Tactile feedback is a thing.
Note: the second link only applies to non-Touch Bar devices.
Not every programmer cares about vi and emacs.
Only something like 1/3
Everyone on Mac that actually produces software for macOS, iOS, tvOS, watchOS.
>>How does a programmer evaluate this machine without discussing at least one of vi and emacs, and the absence of real Esc and Fn keys?

What percentage of programmers use vi or emacs?

Use or say they use? vi and emacs are alot like some programming books people say they have read to show they are a programmer because they think that it what it means. My guess, < 10% with all the IDEs and text editors out there today. On servers or VMs they are common, in actually coding, probably overstated.
Admit I use nano whenever editing through ssh, fake escape key was still the first thought through my mind when I saw that though. They at least have a little braille bump where escape is supposed to be? (if not new accessory opportunity? can i get a design patent on that?)
My laptop's top left corner of keyboard recently stopped working (new one shipped), and well, I've only then realized how much I use vim. I don't use it for programming, but well, it's the text editor I use the most for config files. I had to install a virtual keyboard (onboard) just to be able to press esc. So, while no esc isn't be a reason to not buy the new mbp for me (price, lack of magsafe and the dongle madness are the reasons I don't buy, though), it is still be very, very annoying.
intellij has a vi mode that doesn't suck
Quite a lot. If you are doing anything on remote servers it's likely to be the only text editor. But I guarantee you that 99.999% of them only know (and need to know) the basics e.g. saving file, search, find/replace etc.

I would say maybe 1% of developers actually use them as an IDE given how poor they are compared to something like IntelliJ or Visual Studio.

1% is WWWAAAYYY too low. The stack overflow survey in a sibling comment had 30%. Some of us don't love all the baggage that comes with a full IDE.
I would bet that it's really in the single digit range. I think lots of programmers dishonestly claim to use it because its some sort of badge of honor to say you do.
Is more from old habits than a badge of honor. Fewer new developers use emacs or vi for coding. But I think "single digits" is too low too. I've been to talks by Microsoft engineers where they code using vi or emacs. One of the reasons is that the IDEs are always a step behind the languages.
> One of the reasons is that the IDEs are always a step behind the languages.

Depends on the language, some of them are IDE friendly, e.g. Java, C#, Eiffel, VB, Delphi, C++ Builder,

A lot of developers who use IDEs Ike Visual Studio also use VI style bindings with modal development styles within those IDEs.

When Visual Studio Code came out, the VIM extension was one of the most sought after.

I see vim or emacs used in just about every programmer meetup or dev on-site I visit. Every single one. And the numbers are much, much higher than 1%.

If you get used to editing vim or the extreme ease of laying out windows on the fly, jumping between window configurations and saving UIs in emacs, then even IntelliJ seems quite old-fashioned. I've tried 3 times to switch to CLion by JetBrains and every time I immediately miss all the ways emacs has streamlined my development life. (I use emacs with vim-emulation)

Vim keyboard macros (supported in emacs), the use of the "." key for all kinds of editing magic, and other things are extreme improvements over old-school editing that most "modern" editors use. The makers of VS Studio seem to think that a better autocompletion is going to improve the lives of developers, and other similar cockpit-like features. It's just basic text editing prowess that actually improves their lives, and that is where vim and emacs shine.

I'm not a hater, but emacs with vim-emulation. I've now seen everything :D
Evil mode is its name, and it is very popular. Best of both worlds.
Did you not read the article? That was addressed directly.
(comment deleted)
The person who reviewed this may have been a programmer, but the review doesn't seem to be in context of programming. I care about how well I can work on it, not now well it works with remotes.

> The MacBook Pro is more an evolutionary than a revolutionary upgrade over my MacBook Air.

That seems to sum up this review. The macbook pro is a successor to the air, not the old macbook pro.

So a MacBook Pro is a "Pro" device because it has lots of different ports ?

That seems illogical.

It's just about better specs, which before the great de-portening meant screen, CPU, and memory.
How is a large 15" laptop with a discrete GPU a successor to the MacBook Air?

The problem I have with that statement is that "the MBP" is an ambiguous term. It's a product lineup, and there are products in that lineup that are not in any way the successor to the Air.

It is quite hard to make a "Pro" machine targeted at professionals with a product line up of 4 laptop (and maybe 4 laptop total in the whole Mac line) with very little configuration options.

That's the most obvious conclusion of all those MBP review and comment. Apple just serve a small slice of the consumer market that intersect a narrow slice of the professional market. That narrow slice just gets smaller with each major iteration and Apple is not sad about it.

I think this is an okay viewpoint, but it forces the conclusion that Apple has never made a Pro machine (because the MacBook Pro lineup has never had that many options and configurations). Personally I'm fine with that conclusion, but it's not consistent with the narrative that this is the first MacBook Pro which is not for professionals.
I remember people always complaining about how the MBP was not for professionals.

Lack of ports, lack of DVD reader, lack of configuration options, lack of OSX corporate feature, lack of customisability, lack of Windows, too expensive, ...

Most of those "lacks" are relatively recent evolutions of the product line. It doesn't feel like it was that long ago I had a MacBook Pro with a DVD drive, Ethernet port, and expandable memory.

It was a bit bulky, but I really miss some of those features these days.

That's fair. I was particularly referring to the 13", and more so referring to how the article specifically was in context of someone switching from an air to the pro. They all seem to have gone the route of thinner and sexier while sacrificing "proness," though.
> How is a large 15" laptop with a discrete GPU a successor to the MacBook Air?

The article is talking about the 13": I’ve moved from a MacBook Air 13" to a MacBook Pro 13".

(comment deleted)
> That seems to sum up this review. The macbook pro is a successor to the air, not the old macbook pro.

I could see that argument for the MBP13 but not 15. You should clarify your remarks if that's what you meant because it looks like you're trolling otherwise.

The problem is that the 15'' pays for the sins of the 13''. It has to be the same thinness and share most of the same components, because of economies of scale (which are basically Cook's religion). But the priority for the 13'' is to be "a better Air, at Pro prices", so most trade-offs made there (33% smaller batteries, no high-power Ram etc) end up crippling the 15''. The artificial push to merge Air and Pro lines sacrificed one half of the audience.

Apple should have taken the boring, predictable step of giving the MacBook a 13'' version, rehashing the 12'' if necessary to match; that would gave been the super-thin Air line. Then they could have designed MBPs around the 15'' and power users -- which is what they basically did to great success in 2010-2012. But I guess the current solution has better margins, so 15'' users can go screw themselves.

Yeah, I see what you're saying. It makes some sense on product line delineation. Not sure MBP15 owners got screwed or are crippled though. All the criticism of the new MBP shows how awfully spoiled people have become. There's really not much more you could do there to improve on the best constructed laptop anyone has ever created.
I hadn't considered the removal of the esc key from a vi/emacs perspective. Is this something that can be lived with?
I use ctrl+C instead of Esc in vim all the time (quite useful on iPad keyboards as well) plus you can remap the Caps Lock key as stated in TFA.
Apparently using TAB or CAPS LOCK instead of ESC is a pretty popular alternative. I haven't tried it myself, but I have heard of it.
I have caps-a mapped to Esc but still find myself hitting escape just as often.
For vim either map a key sequence "jj" or "fd" to esc or remap caps lock to esc. Many vim users do that anyway for the convenience.

Not sure about emacs (I use spacemacs). Does esc come in for more than just cancelling commands? If you don't need to use your caps lock for ctrl for emacs, the same remap to esc would work as well.

Anyway, basically boils down to two things: 1) the touch bar escape is fine for occasional use but I wouldn't want to use it frequently and 2) that isn't a problem if you don't mind remapping caps lock and have nothing more important to do with it.

Emacs user here, I think I never use escape; I use C-g to cancel a command.
The idea behind evil mode in emacs is to not use the control or meta keys for most things, since they are awkwardly placed. Evil mode activates the Esc key just like in vim.

evil-escape module for evil mode adds the 'fd' functionality discussed here.

I've always used Ctrl-[ instead of escape. it sends the same character code but keeps my hands at the home row. great for when you're on a roll and don't want to break your flow.
Which is why 'fd' as a key combo is even more useful than Ctrl-[. The keys are right there on the home row buttons themselves!
but f is one of the best commands in vim (fX finds the next instance of X on that line only; F does the same but backwards; t/T forward/backward search and put the cursor to the left of the next instance of the following char on that line). X is a char not a regex; f. will find the next period.

if we use carat for cursor,

   this is a line of text
        ^
typing ft does

   this is a line of text
                     ^
whereas tt would

   this is a line of text
                    ^
But fd is for escaping insert mode. The commands you are talking about are not used in insert mode. That is the entire point of fd.
By just getting a real laptop, yes. I can't believe how often Apple gets away with taking away core functionality like headphone jacks and vga ports, but unfortunately as long as there's an Apple logo on it then people will buy it, for an absurd markup. I wonder if the Apple Car will have no parking brake because it's not used often enough.
Actually, the Apple Car is more aggressive: they got rid of the car itself!

(because they decided not to make one, actually)

It was a hypothetical.

Apparently they did actually consider making a car, which I didn't know.

I remap Caps-Lock to a Ctrl/Esc combination: When it's pressed and released on its own, it sends an Esc; when it's used as a modifier key (pressed together with another key), it sends a Ctrl. I haven't touched the Esc key in years.

When you consider what the keyboard layout on the machine on which vi was made looked like: http://xahlee.info/kbd/i/vi/terminal_ADM-3A_keyboard.jpg , it's easy to understand why dual-use caps-lock makes the usage feel smoother and more natural than on regular PC keyboard layout.

For anyone that would like to do this, here are example instructions for both Linux and MacOS: http://www.economyofeffort.com/2014/08/11/beyond-ctrl-remap-...

Make sure you try out the 'fake' esc key. I was expecting this to be a problem, but in practice I didn't really notice the difference. Granted, this was just messing around in the store, but I was pleasantly surprised.
See my other comment here: https://news.ycombinator.com/item?id=13098257. I don't use vi or Emacs, but I still use the Escape key constantly.

tl;dr: If you, like me, touch-type and work very fast, then the absence of tactile feedback on the new Esc is unnerving. It's like a work-stopper. Even if something did happen when you hit it, the lack of feedback means your brain automatically thinks you didn't hit anything. I don't know if this is something one gets used to. After a week, it's still awful.

A coworker got the new MBP and didn't realize that he wasn't actually clicking the trackpad for two days. If I didn't know better I also would've been fooled. In my opinion the haptic feedback and the huge trackpad are actually the best features of the new MBP.
Took me months to realize (on macbook) ... no one believes me until I power it off and have them try again.

Spooky is the word.

"Any sufficiently advanced technology is indistinguishable from magic." -Arthur C. Clarke

I completely agree though, I checked it out in-store and was far more impressed with the new MBP than the reviews had me believe I would be. People must be very spoiled to downplay it IMO. The keyboard and trackpad are really impressive. I'm debating whether to replace my old desktop with a i7-7700K or pickup the MBP15 1TB with a few dongles to hookup to my existing peripherals. It would be my first Mac ever (I had a Commodore 128 in the 80s) and it certainly seems like a marvel of engineering to me. I'm starting to think the best way to run Linux or Windows would be using either in VMWare under macOS or using Parallels to get the best of every world.

The one thing the Apple folks could've done better is make the tilde key the new escape and make the tilde/grave alt remaps. If I got one that would likely be the first thing I do.

I run Linux on my Mac using Veertu, which utilises the apple provided Hypervisor.framework. I've had a lot of success with it performance wise compared to VirtualBox, for example.
I just checked one out at the store, and my main observation is that the esc 'key' worked exactly as a real key would have. Provided it's there when you expect it to be (or can force it to be), I don't think I'd really miss it that much.

I still think they could have kept a couple standard USB ports to help ease the transition, but overall it seemed like a fine machine.

> In my opinion the haptic feedback and the huge trackpad are actually the best features of the new MBP.

It's not really new. It was introduced with the early 2015 MBP. You can even get it in the new magic trackpads.

The Pro in Macbook Pro does not stand for "programmer". The device is not catering to the past. The world is not full of UNIX era programmers. Some future programmers are getting their first laptop during the coming holidays. If you think Esc then I is the future of programming tools, I don't know what to tell you.
Vi is not just the past. It remains one of the best ways to edit text, period. And it will probably continue this way long into the future. Why do you think so many IDEs come with vim emulation?
Popularity isn't really a good argument.

It could either be because it's a good way to edit text, or because of inertia and extreme conservative nature of developers.

I made no claim about popularity. I did make a claim about productivity. Big difference.
> Why do you think so many IDEs come with vim emulation

I was referring to the claim that a popular choice amongst IDE makers meant it was a good idea.

Just for the record, I use vim all the time on the new MBP and don't have any issues. I remapped Esc in vim ages ago, though. vim was not designed around the current placement of the Esc key.
What do you use in its stead?
For the past year or so I've been using the key sequence "fd", which I discovered from spacemacs. (I've actually copied a lot of spacemacs keybindings because I found them very ergonomic.)
Great tip! I've installed evil-escape in my emacs and now have the same binding. Quite useful.
Ctrl-C is equivalent to pressing Esc in Vim and you don't have to move your hand so much.
Ctrl is one of the keys that vim specifically tries to avoid.
Certainly by having modes vim has great keyboard shortcuts and avoid having to press combination of keys. However, for redo you have to press Ctrl+R, so that would indicate that Ctrl is not forbidden in vim. In this particular case, I find more confortable to move a little my fingers to press Ctrl+C than having to move my whole hand to the upper top of the keyboard to press esc. Also, it is nice that this shortcut works everywhere without having to remap your Donglebook.
It stands (presumably) for professional, so it seems very reasonable for professionals (in this case programmers) to discuss how useful it it for them. As I'm sure digital musicians are talking about how well it will work with logic.

> If you think Esc then I is the future of programming tools, I don't know what to tell you.

It's certainly not the complete future of programming, but it seems like we'll be in the command line and remoting into machines for a long time. It's condescending to write off those concerns as being "in the past."

> The world is not full of UNIX era programmers.

It is actually still full of *NIX programmers. What's your real point?

I guess buying a 3000€ device to use it as expensive xterm manager.
So? If one likes the quality of the product, why not?
I work in a group in which nearly every developer has a MacBook Pro, and they are all used pretty much just for this. It's quite common. It's a cheap way of getting a relatively decent Unix workstation. We all use the terminal or iTerm2 for local development and work on remote Linux systems, and around half are vi or emacs users. The rest use a bit of Sublime Text or Eclipse depending upon what they are doing. The mac is useful for maybe 5% of each developer's work, otherwise a Linux box would be just as useful (I'm one of the outliers who uses Linux and BSD nearly exclusively.)

Certainly for our purposes, the new MacBook is pretty sub-par. All the lost connectivity options were used heavily. I doubt when the time comes around to refresh them they will be as compelling as they were in 2011-2012. I'll probably just get a stock Dell or HP and find it massively less frustrating. It's not like the old MacBook Pros didn't make compromises either, but now it's making so many its use is difficult to justify.

Don't forget that Finder can connect to sftp fileshares.

Would they be better off using KDE 5 to develop? Probably, but good luck getting your manager to sign-off on a linux laptop, especially when all the other devs use 3000€ devices to manage their xterm sessions.

> If you think Esc then I is the future of programming tools, I don't know what to tell you.

Of course text editing isn't the future of programming, but when I can create and run macros as fast as I can think through a formatting change, an IDEs regex find/replace and refactoring menu with a dozen options irrelevant to the task at hand feels clunky and limited.

This device is not catering to the past, sure, but its also not catering to a large group of users the previous device did. It also seemed to have caught a lot of them off guard.

Why didn't they make the touch bar an option rather than force it on all users? they could easily have added it above the previous keyboard configuration.

Does anyone understand the decision to not left align the esc "key"?
I believe the screen simply doesn't extend that far to the left (although the touch-sensitive bezel does).
I've thought about this for a bit and I think that Jobs would have lost his shit over this.
My only problem with the keyboard (I actually like it, which surprised me) is that it seems quite easy to get small things like crumbs stuck under the keys, which can render them unusable. I've already had this happen on the new MBP, never experienced it on any other keyboard. Was able to dislodge it with compressed air, but if this happens a lot it could become a serious inconvenience.

I thought about a keyboard cover but I don't think apple left room between the keycaps and display for that when the lid is closed.

Totally nothing on battery life. Can OP say something about it here?
I went from a 2015 MBP13 to a 2016 MBP15 TB. It is shorter, especially if you have the brightness cranked up. If you cut the screen down to 1/3-1/2 brightness I'd say it is close. I have a pretty variable power usage though. I've also been running a couple VMs lately that have been eating power. I use chrome most of the time so that eats power as well.

All told I can probably get 5-7 hours out of it depending on the day. The need to plug it in and out frequently really makes me miss the magsafe jack. Whoever made that call should get fired.

Think there is a market for high end laptops for developers that are maybe 30% more expensive than a macbook? Looking at System76 and Dell they are all bricks. The Razer Blade Pro is probably the closest thing. Even that is huge and heavy.

By my count, he bought five adapters and a docking station. This gives a decent "in the wild" report of what is required to get the machine connected to one's peripherals. Thank you for the writeup.
I have been using the 2016 MacBook Pro 15'' for more than a week. Overall, I like most things about it. It's nice and thin, the fingerprint reader is a time-saver. I'm also fine with USB-C and the new dongle normal. I'm disappointed about the lack of bump in performance or RAM, but those things are not dealbreakers.

The new touch bar/keyboard combo, however, is. Here are the issues I'm having.

* No tactile feedback. Having no tactile feedback for the Escape key is... unnerving. Did I hit it correctly? Did it do anything? Even if something actually did happen on the screen, a little feeling of self-doubt follows, and you feel like hitting it again. It feels wrong. I'm a developer, and I use the Escape key about 10 times per minute as part of my workflow. Yes, I know that you can map it to Caps-Lock, but chalk it up to 30+ years of muscle memory; I want my Escape key to be where it is, and it's hard to switch, especially since you can't turn the fake Escape off, either during the learning period. (Maybe I should try covering it with tape.)

* Unintended touchbar touches. I discovered to my chagrin that I have a habit of resting my fingers around the area where the function keys are; my default position for the left hand is above QWERTY, and with my fingers outstretched, they reach into the touch bar. This has resulted in some incidents where the machine seems to have come alive and is doing things on its own, when in fact I was just obliviously holding down on the escape key or some other touch bar widget. Muscle-memory again, but then: It'd be nice to be able to be able to just touch my computer without causing accidents.

* It's pretty useless. As a touch typer, I never look at the keyboard. Not even to touch farther-away function keys like volume, play/pause, previous/next. Having a touch bar that changes its contents might be great for novice users who look at the keyboard all the time, but for me, it's a distracting context switch. The app-specific touch bar widgets are also generally useless (the little Safari preview of your browser's page is particularly ridiculous). I can see where they'd be nice for providing "analogue" controls for things like music and audio editing, but the rest are pretty close to useless. Consider the emoji one — sure, maybe it's nice when you use on of the common ones. But the moment you want a snowman, good luck to you, there's no search (unlike the much nicer Ctrl+Cmd+Space dropdown which probably few people know about). In the end, the app controls got so distracting — and the lack of fast one-click access to things like volume and brightness — that I turned off the app controls altogether. Which gives me the same layout, nearly, as my previous MacBook. In conclusion, while the touch bar is clearly technologically very cool, it feels like a marketing gimmick more than a carefully thought-out feature.

* Unintended trackpad touches. Again, you have to rest your hands somewhere. The trackpad is now so big that it's almost impossible not to inadvertently touch it, especially in a resting position. I have now disabled all the gestures so I don't trigger anything unintentionally. It's a nice idea that should probably have received more focus-group testing.

* The arrow keys. This is probably one that I'll get used to, but at this stage it's annoyance. While the new keyboard is probably objectively better than the old one — I like it very much, at least — Apple changed the shape of the arrow keys, which means that they don't feel any different from other keys. Again, as a touch typer, I'm used to just "finding" that pyramid of arrow keys under my first three fingers, and muscle memory is now telling me that left/right aren't positioned correctly, and I keep hitting the Shift instead of Up. Unlike the Esc key, it's probably, hopefully a passing prob...

Thank you, this is the kind of review I was looking for.
Great review, this is more insightful and relevant than the linked piece.

I ended up up buying a 2015 MBP model and know several others who have done the same after avoiding or returning the 2016 MBP. I personally could have probably stomached the various 2016 compromises and nuisances for much improved performance and 32GB/64GB RAM, but as is, just can't do it. Maybe next year.

> I miss the half-size left and right arrow keys ... it makes the arrow keys harder to hit blindly

This little detail is a big problem for me when using any image or music program where I want to quickly find the arrow keys and shift things around.

I have Emacs and Atom and Eclipse open all day, plus a byobu session and half a dozen local terminal windows. They all use ESC and F keys in a dozen little ways. I would pretty much have to force the touch bar always to be on F key display. And if I do that, then touch bar seems just a downgrade.

Edit: Just checked Atom, there's not really any F-key dependence there. But I use escape all day long to cancel out of UI dialogs. Just saying there's a lot more affected here than just vi users (and I do use vi all day long too, for git commits and editing smaller param files).

He says that the four ports are all the same, but that is not correct. According to https://support.apple.com/en-us/HT207256: "MacBook Pro (13-inch, Late 2016, Four Thunderbolt 3 Ports) supports Thunderbolt 3 at full performance using the two left-hand ports. The two right-hand ports deliver Thunderbolt 3 functionality, but have reduced PCI Express bandwidth."
Not being able to find volume controls by touch will be infuriating me forever I guess. Although I doubt personally It would much value for me I can see how TouchBar could be a nice addition to a laptop for many people. If they would have just placed it above the current row of function keys... I also read about some issues with the power button, sometimes requiring you to close/open the lid. Can;t find it now, does anybody know more about that?
First they came for the ethernet port, and I did not speak out - because wireless is ubiquitous.

Then they came for the headphone port, and I did not speak out - because I could still plug into my external audio interface or mixer _when at home_.

Then they came for my keyboard, and NOW I CAN'T ESCAPE!