I dislike this post intensely. The opinion comes across as uncharitable, as the author probably has not used this Macbook Pro yet. How can you (alexeysemeney) be so sure?
I consider myself a developer, and I almost never use the Fn and ESC keys on my Mac. Everybody uses the computer differently, but I'm pretty sure this is not a deal-breaker for most. One could also argue that the touch bar might lead to innovative developer tools, such as timeline interfaces for Replay Debugging. There are already a lot of applications in the content creation (Photoshop, Illustrator, Maya) space, which developers frequently use to create assets.
I would say the author clearly knows very little computer specs:
"The MacBook Pro had options with 2.4 gigahertz dual-core processors back in 2010. Anything new in 2016? Not really, well… nope."
Because a 2010 2.4ghz dual core is identical to a 2016 2.4 ghz dual core.... I thought we got over comparing processors purely by their clock speed a long time ago. (I will agree that theyve been going with lower and lower power to allow for better battery life, this is a terrible way to make the comparison. Id much rather see a processor comparison graph here).
Personally I think this is a terrible decision, but then again, I think using a laptop keyboard for programming is a terrible decision too. I need multiple monitors and an external keyboard to get anything done, so I typically use a desktop, and then use a lightweight laptop (basically a chromebook) to remote into the desktop if I absolutely need to be mobile.
Also, "What other people are saying" and then listing 4 anecdotal quotes seems pretty uncompelling.
I imagine this is not a great developer's laptop. But apple fanboys will keep buying it and either stop using vim just so they can keep using apple or buy an external keyboard. And Im really not sure what else you could really want out of a laptop then.
I nearly exclusively use VIm and any other editor I use has a VIm mode plugin installed. I pretty much can't work productively in anything else.
I can tell you that I haven't used Esc in ages. I have Caps Lock mapped to Ctrl (as it is a vastly more useful a key than Esc and Caps Lock is a much better position for it and is just as an extraneous as Esc is). I use Ctrl-C or Ctrl-[ to exit insert mode and it works just fine. In fact I understand that most experienced VIm users do this.
Esc is, by and large a useless key. Even if it wasn't you can remap keys as you like so feel free to map Esc to Caps Lock if you want. Taken alone the lack of Esc and Fn keys is not an argument against the design of the new MBP for developers.
Also... the F1 keys are like super important for debugging. Sure, you can click with the damn mouse in the button for step in, over, run, etc, but the thing is faster with F keys.
Even if mac apps come mapped to other keys, many peaplo still runs windows with bootcamp, virtual box etc and wine programs in apple computers, making things even harder.
And about external keyboards? Apple keyboards comes with F keys... they are going to be uselles now?
This is really just a war of opinions now, but the F1 keys are indispensable to me. My fingers rest on the hotkeys for "step into", "step over", "run to breakpoint" and I can keep my eyes glued to the watch list, inspecting the variables at each step. Some times you want to quickly step into functions, other times step over, and it's just really handy to have it mapped to keys.
I'm not even a power emacs user or something (IntelliJ is my preferred IDE). YMMV of course, but I find the hotkeys super useful.
But what if your IDE simply adds the debugger buttons to the touch strip instead? They could even have the correct icons and update state as you debug. Seems even better to me.
It's really odd when people say "I need one function key for some application specific operation", when those kinds of things are pretty much exactly what an adaptable, customizable touch row is perfect for. If apple could have read the touch bar complaints before, they probably would have been convinced to put a touch bar in earlier.
Main point for touch strip is changing icons/state. But that's absurd because not even my mother blind types.
This is clearly another fancy thing that removes functionality.
I have a blank keyboard, I never look at it, when I use for debugging I'm extremely fast as I don't have to look back and forth on keyboard and screen or use mouse (who uses mouse that much anyway?), I'd miss F keys if I bought the new macbook pro.
There will be one, they've shown it in some of the promotional imagery. I think everybody is just up in arms about the physical key being gone.
I'm a heavy vim user and use the ESC key all the time. If I get the new MacBook Pro I'll probably see how the touch key works, and then rebind if it's necessary. It's not the end of the world.
> I use Ctrl-C or Ctrl-[ to exit insert mode and it works just fine. In fact I understand that most experienced VIm users do this.
That's pretty uncommon to imply it's generalizable. Most vim users, I feel comfortable in saying, actually use 'Esc', or a key mapped to the same. Speaking for myself, I can't see why I'd want to use two keys when one would do.
Well having to stretch your little finger all the way to the corner of the keyboard gets pretty annoying when you have to do it all the time, as you do with Vim. Much easier to remap another key close to the home row, and since caps-lock is so redundant, it is the obvious candidate.
So whether you map it directly to Esc or to a modifier, the parent's point stands: Vim users don't need the Esc key and are probably better off without it.
classic apple fanboy huh? I've a shortcut for my F1 key which toggles terminal on full screen. What there? You don't expect me to map one key for that as well, do you? I'd still prefer a physical button.
- can you give me some details on your remap setup on macOS? if you have dotfiles somewhere that'd be great.
- as a vim user who only uses vim as an editor, I challenge the assumption that touch Esc is a horrible thing. Esc is a very special key and it may turn out to be ok for it to _be_ different, and _feel_ different.
I'm a vim user as well, and I'm actually shocked at how many users apparently still use the ESC key. I actually didn't know any regular vim users did that, because to me, it seems super inefficient. I don't say that as a put-down or anything like that. But if you use vim, I'd highly recommend remapping caps lock to Esc. I think you will get used to it within a day and will never go back.
I'm a long-time vim user, and I use the esc for two reasons. First, because it's critical muscle memory, and if I go to a machine that is not my own don't want to be crippled. I would still consider remapping caps lock (as opposed to .vimrc remapping) since that would work when ssh'ed into arbitrary machines, but the problem there is I'm already using it for control, and because the control key is resized on the laptop keyboard I can't develop normal muscle memory when moving between different apple keyboards.
Personally I think people make way too big a deal about the escape key being difficult to hit. It's right there in the corner, never been a problem for me.
I've tried ctrl-c, ctrl-[, and ESC. The one that stuck for me was ESC. The others usually don't work in other programs that use vim keybindings.
Many people already map capslock to ctrl. You could map ctrl to ESC, but then it gets uncomfortable when switching computers, and it goes against 10+ years of muscle memory.
I tried remapping capslock once, but it got too confusing when switching computers.
I am a developer who writes code while in tmux and vim. I have remapped my Caps Lock key so it's Ctrl when presses with another key and Escape when pressed on it's own.
The other anecdote is I've been using vim for about 15 years, and use esc daily. I am constantly in multiple vim environments - different servers, different clients, different OS, etc. I don't have the luxury of saying "I'm going to install all my default vim keybindings and plugins on every vim installation I ever use". Walking someone else over the phone who has to do vim - I need to count on some standard defaults being there, and 'esc' is one.
So yeah - some of you "power users" - fine - you've never touched ESC in 20 years - good for you. You're in the minority.
I've been using vi for over 20 years, but not a power user or anything (emacs for code, vi for quick edits), and have no idea how to use it without esc. Did vim change something? How do you switch modes?
Ctrl-[ == Esc. I had to learn Ctrl-[ three years or so back due to bluetooth keyboard paired with tablet and insufficient time to troubleshoot why Esc wasn't working, and then discovered that it's actually easier on my wrists to use Ctrl-[ and never went back.
I use vim, I just assumed that when you open Terminal, a virtual escape key would appear in the touch bar. It'd still be in the corner, so fitts law would still apply, and it'd be easy to find.
I'm not even a power user, & after 25 years, I just know the basic few commands that you need to do anything - insert, delete, search/replace, save, & quit.
ESC is the key that (roughly) takes you back to normal mode from insert mode, visual mode, etc. If you aren't using it, then you're either using one of the other ways to get back to normal mode (like CTRL-[), or you are using Vi in a very non-standard way.
Are you talking about the same editor? From a 1996 vi man page [0]:
There are commands that switch you into input mode.
There is only one key that takes you out of input mode,
and that is the <escape> key. (Key names are written
using less-than and greater-than signs, e.g. <escape>
means the ``escape'' key, usually labeled ``esc'' on
your terminal's keyboard.) If you're ever confused
as to which mode you're in, keep entering the <escape>
key until vi beeps at you.
Which is fine if you do everything locally (because you control that configuration), but not having escape really sucks when you are on servers a lot and you can't necessarily go changing vim settings around.
I don't know why that would be anyone's preference given that if you used telnet to connect to a remote shell, ^] is the default escape character. So using ^[ to exit input mode is dangerously close to popping you out of your telnet session. Someone who claims to have used vi for 25+ years (get off my lawn, ssh didn't exist back then) would have likely used telnet and been bitten by that more than once.
I love jk, been using that one for at least 8 years. I even got in the habit of tapping it a few times while thinking, sort of like how you might sometimes shake your leg or whatever. I trained myself off of that though when I had to use Eclipse more and more -- edits or undoes to a file can bring Eclipse to its knees....
Yeah, I'm not sure I'd even call it a command - but it is pretty fundamental to vi usage, unless you're using some alternative like ^C or the "remap typing 'jk' to Esc" trick. When you're saying you've never used the Esc key, you mean you only use the Esc key to take you out of insert mode, I guess?
The processor speed is less important to me. But the lack of more than 16 GB of RAM is a serious problem. As a developer, I frequently run a large number of VMs at once. My current laptop has 16 GB of RAM, and I frequently need more to run all of the VMs that I need, so I wind up having to use my workstation with has 32 GB of RAM, and just connect to that remotely when I'm on my laptop. That's cumbersome and doesn't work well when I'm on the road in places with flaky connectivity (I travel a lot, as I work remotely and come into the office, so being able to do all of my work on my laptop would be a big win).
The escape key issue doesn't bother me as much, but I'm not a Vim user and I already have Caps Lock mapped to escape or control depending on whether it's a modifier or not. I do use the function keys occasionally in cross-platform development tools like gitk, but I'm sure that other keybindings can be substituted and I'd be able to deal with that.
But the lack of RAM beyond 16 GB pretty much means there's no reason for me to upgrade from my 3 year old laptop. I would have considered upgrading this cycle if they offered more RAM, but as it is I'll probably hold off. Maybe if they release another in a year or so with more RAM I'll upgrade; if not, I may just switch to a Lenovo or other laptop that has more expansion room.
3 years without a bump in RAM capacity seems like an awful lot. I realize that Moore's Law is flattening out, but stagnating for 3 years like this seems like a long time.
As a fellow Vim user, I don't use the escape key anymore. It's awkward to hit and I rebind it to "jj" (or more recently "jk"). It's unergonomic to reach for the escape key where it customarily is. If it were where Caps Lock is, it would make much more sense.
That said, I don't like rotating my hand or remove my fingers from the home row.
It's really a non-issue because you can rebind keys so easily, it's not even funny. Everyone seems to be making a mountain out of a molehill.
This. I never "learned" how to type, and while I've tried, I simple can't get rid of almost 20 years of muscle memory typing like a buffoon. It's much easier for me to use ESC and the arrow keys than people who keep their hands on the home row.
> If it were where Caps Lock is, it would make much more sense.
macOS Sierra allows you to rebind Caps to the Esc key, which seems like a good compromise to me. As a non-vim user, I just wish I could bind Caps to other keys as well :(
Have a look at Karabiner-Elements. The author recently open sourced it and kept up his brisk development pace. Every year he updates I'm lockstep with macOS releases and every year, I donate. Amazing project.
No, not in Sierra, because Karabiner classic does not work in Sierra. Karabiner-Elements, which is Sierra-only, can only do basic key remapping. None of the fancy stuff.
That doesn't seem right- I use "jj" to escape insert mode and nothing unusual happens when I use hjkl to navigate in normal mode. The only "pause" is when I type the letter "j" in insert mode.
But any laptop you buy is a product of some design chosen by other people and not something you can make work precisely as you want. You've adapted to the designs already available, not the other way around.
I realise that, but I'm mostly adapted either to common standards (like QWERTY) or something that provides a benefit to me. I would like a laptop that fits the habits I already have as much as possible, unless there is some good reason for it not to be that way. From the demos I've seen of the touch bar, it will be a gimmick that I very rarely use, so why should I invest in the change?
Also, I work about 50/50 from a USB keyboard. With this keyboard layout, I would need to remember which keyboard I'm using - awful for productivity.
Then just map Esc to Caps Lock if you like. Unless you feel Caps Lock is still critical for commenting on YouTube videos, in that case I guess the new MBP is just a useless paperweight.
You're wrong. Muscle memory is very hard to retrain. To buy laptop with esc button is much more easy. It will be just not MacBook Pro, but it's their problems.
You're wrong? Muscle memory is not that hard to retrain. I had to do it when I first started using a Mac, on which most of the non-qwerty keys (and some of the qwerty ones too) are in a different location to the standard IBM layout.
Nope - at the moment, my CAPS lock does nothing. But I'm not going to adjust my habit of where to find the ESC key just so I can have some pointless colourful lights.
Instead you could adjust your habit of where to find the ESC key for the sake of ergonomics (Caps Lock is much bigger and closer), like I did years ago, and take the colorful lights as a bonus.
What about the fact that I frequently jump between machines, many of which aren't mine? It's the same as people telling me to learn the Dvorak layout. Any possible productivity gains are lost in forever remembering what keyboard I'm on.
I find it interesting and perhaps a bit telling that the most common response to the Esc key portion of this post is remap/use a different key binding.
How is that a reasonable response? To me, the reasonable response would be, "I remap/whatever, but maybe it's best if you look at a different platform where this isn't a concern." Or, "I can see how that's a problem, here's what I do."
We do have some responses in the 'reasonable' category, by we also have replies like "Esc is, by and large a useless key." and "It's really a non-issue because you can rebind keys so easily, it's not even funny" and "the ESC key in vim can lead to RSI" and "Only if you're too lazy to rebind it to any of the many more finger friendly options". All of them saying, "You're doing it wrong" - even if not in so many words.
Telling someone they're wrong to dislike a specific change because a workaround happens to exist says to me that you're making a whole lot of assumptions about other people based on what works for you at best, and being patronizing at worst.
Three points: The escape key is not where it is normally. The escape key is not present in all contextual operations (that is, you can open up a menu on the touchbar which causes the escape key to disappear in favor of a "close" button). There is no physical feedback that you've hit escape.
For me? Because I can't tell without looking at the keyboard whether it exists or not (and potentially whether it's been moved by some program's integration with the touchbar).
I've been touch typing for years now, and the idea that I have to look down at the keyboard to see if a key exists (a key that that has existed for the entirety of my computing history) is ludicrous.
But then how do you change the volume when using vim? Does vim need a special touchbar that basically completely emulates the old keys? That seems excessive.
It's a perfectly fair point. The function keys provide 2 operations each, depending on whether you use the [fn] modifier, so does the ribbon duplicate this functionality or are we effectively left with half the functionality of the old keys?
Personally, I don't see how you can quickly modify the volume from the ribbon if the application you are using has repurposed that space for some other functionality it thinks you are more likely to want
It's extremely patronizing and dismissive to insinuate that only "apple fanboys" buy macbook pros. There are plenty of reasons to buy an apple laptop without being a "fanboy". Searching for the best laptop leads many to apple simply because of logistics/price/ease-of-use.
That said, most of the other stuff you say is true.
My point was more that there are people who buy Apple regardless of quality or features. If you buy Apple because it's the best for you, go for it. I agree that they are quality built laptops.
You don't find people who are dedicated to buy only Dell laptops even if something negative happens. There are no Dell fanboys (that I've ever encountered). If Dell does something stupid, people will buy ASUS, HP, Samsung, Toshiba, Lenovo, etc and get basically the same experience.
The point was less that ONLY fanboys buy macbook pros, but moreso that Apple has a large enough loyal fanbase that they can basically do whatever, and people will defend the decision.
You will hear people say that 16gb of RAM is a non-issue and if you need more than that you are doing it wrong. That is a fanboy response. A logical response is "I don't need 16gb of RAM, but I'm not everyone, so I'm not going to start a debate over this"
The interesting thing is that Apple just released the ability to remap Caps-Lock to Esc. natively in macOS 10.12.1, which doesn't seem to be incidental.
I wonder if any of the people watched the demo. They showcased Terminal, and there was an escape key on the touch bar. They also specifically said pressing the "fn"'key would show function keys on the touch bar, which is exactly what you have to do on current Apple keyboards to use the function keys.
It seems like a non-issue to me unless people simply don't like the touch bar not being physical keys, which is fine, because they can just get the other Pro without it.
I haven't. I based my prediction on the assumption Apple engineers are not stupid. For what I observe, it's quite the opposite.
The bar's function varies according to the application being used. It should be trivial to make, say, iTerm, which is immensely popular (I use it myself) have Esc and function keys available by default.
Similar here. When my coworkers have to detach from their 23" monitors they say they're no longer able to do anything but email and chat. I have a guy who won't WFH because work won't buy him a monitor for it.
What does an external keyboard give you that you can't get from a laptop keyboard? I like the macbook pro keyboard. I plug in two monitors and I'm good to go. Vim users should remap somewhere closer. I use cap locks. Will that not be possible anymore?
The big obvious difference is the numpad, or lack thereof. Plus, mechanical keyboards are a lot more comfortable I find. I know they're a bit of a meme right now, but I definitely prefer them over tiny short press chiclet keys.
For me personally, Home, End, PgUp and PgDown keys. Also, MX switches. I can work without them, but I really think my tools should adapt to me, rather than vice versa.
Have you never used a quality, full-sized mechanical keyboard? There's something kind of joyful about clickety-clacking away.
Maybe my hands are too big, but I am just not really comfortable typing on a laptop keyboard. It's not as bad as trying to do anything on a miniscule on-screen keyboard on a phone, but I still tend to hit at least two or three keys at once far too often.
If you're a Vim user and have escape as one of the keys farthest away from you, they did you a favour. I don't mean that as a defence of the MacBook Pro. At the very least, switch caps lock and escape if you're not using caps lock for something else.
So can repeated use of keyboard chords. Not to mention the absolute position and shape of the control key can change based on the type of keyboard you're using (such as wired apple keyboard vs. wireless vs. built-in).
I really like laptops for research and prototype stages of programming: my Macbook works great at finding, curating, reading, and composing documents; handling email, IM, VOIP, VPNs, etc to actually communicate with services; dealing with internet search and websites for services (github, aws, etc); and I find that I even do better at writing "naive" implementations of things with just some paper and a laptop at a coffee shop, because it forces me to skip over most of the technical details (eg, efficient file IO) and just write the essence of the program (ie, the main algorithm or idea I'm trying to implement).
For actually writing a finished production-ready product, a desktop with several monitors and a real keyboard is preferred. But being able to switch between the two modes -- research and creative, focused and technical -- gets the best results.
Devs are a huge market for Apple, but Apple is ignoring them.
This isn't about ESC, it's about whether Apple has any interest in acknowledging the dev market and keeping devs on board.
The answer is "no."
Apple is making no concessions to developers or professional power users who need performance. Instead, Apple is producing vanilla-grade laptops with a touch of gimmicky brand frosting to justify the high price.
The real heuristic is skimping on performance and connectivity to maintain margins. The cost to users is significant lost productivity.
This is the MacBook Pro Intern Edition. It could have been more, but that's where Apple is now.
They're ignoring the giant behemoth that is ....Vim users..? What?
Wait till the EMACS crowd gets a whiff of how Apple refuses to sell pedals for their keybindings, then Apple is truly in trouble.
Look, I know VIM is popular, but so is XCode, so is Sublime, so is Atom, so is TextMate, so is a multitude of other text editors for God's sake, that to claim that Apple is somehow "abandoning the entire software development community", as if VIM users somehow speak for all of them, is pretty whiny and unrealistic.
Do you think Apple really worries that a bunch of what, Open Source "hackers" producing yet another Ruby testing framework are now going to abandon their platform? Seriously? Get off your high horse, man.
There's thousands of Visual Studio developers in the Windows world and thousands of XCode developers in the OS X world who don't give two shits about your 1970's vintage terminal mode text editor. Apple will be fine. Software developers (again, a much larger group than you obviously think) are also going to be fine.
And aren't you guys always bragging what power users you are? So now that one (remappable!!!!) key is gone your entire world is crashing around you?
If you're such a fossil that you can't adapt to the absence of this one key, that already is of extremely limited use for 99.9% of people, how did you cope with the disappearance of the floppy disk, the caps lock key, the parallel port, VGA, optical disc drives? How did you ever adjust from storing backups of your code on floppy disks once that went away?
What happens when Windows laptops one day follow suit and remove the Escape key and the (just as useless) Caps Lock key? If VIM users can't adapt to a simple change such as this, maybe you deserve to fade to irrelevancy? Just keep buying 2008-era laptops off Ebay well into the 2030's, I guess?
So basically what you are saying is that Devs need to adapt to apple products not the other way around, because apple knows best.
IMO what is really pathetic is people tying the hardware to the software, I don't buy "Windows Laptop", I buy a Laptop with the hardware that suits my needs and install Linux on it if it's not already installed, but I guess my opinion is irrelevant as I'm an emacs core user and use VIM as a text editor.
Let me give you a tip here, If you buy a Laptop and chose to have it without Windows pre installed you will get a discount ( The windows License fees)
And guess What I will never pay a license fee for an IDE (from M$ or Apple) that do not match half what I get from my open source "vintage editor", but that just only me!!!
Were you clicking around the menus all the time or using a heavily modded keymap? Building, running, almost all of the debugger commands, viewing property pages, switching between code and designers, all make heavy use of the function keys out of the box. Those are pretty common tasks.
I've developed on a MacBook Pro for the last 5 years in vim and I have never touched the escape key or any of the F keys, ever.
If you're using vim and reaching for the escape key you are doing it wrong imho. Rebind esc to something else (like capslock) or learn another pattern that has more ergonomic value.
A lot of us live in a transient computing world, where we neither own nor have permissions to edit the bindings. Having one host with a binding and 6 other client's envs without, would a context switch failure invoke
You'd be surprised. Some corporate environments keep machines pretty locked down in terms of what you can change in the System Preferences, or install on your own.
Just fill in the ticket, call to follow it up, explain what you want again, re open the closed ticket, open the ticket again, do a few ritualistic incantations and you'll get there.
> So yes, rebinding Escape is the right answer if you heavily use it.
nobody does that because it was unnecessary. Of course, now developers need to ADAPT the Macbook instead of the Macbook ADAPTING developer's workflow. That's not the definition of a developer friendly machine. The touchbar is a gimmick and even then it doesn't justify the removal of an entire row of keys. It was purely an aesthetic decision. But I forgot, developers like to work with "beautiful" computers instead of functional ones /s
In my experience, quite a lot of people who take working on the keyboard seriously remap some keys.
I'm more of an Emacs guy, but still frequently hit Escape (I use it as the Meta key in Emacs). I've bound Escape to the Caps Lock key for as long as I can remember. Like I said, the normal location of Escape is way too far from the home row, and quite bad for touch typing.
In fact, the entire function row is too far for me to conveniently use while touch typing, and I have long fingers. I probably won't miss the function key row at all.
I haven't used or seen the actual touch bar, so cannot really make a strong statement whether it's a useless gimmick or actually useful. I have my doubts, but it could turn out to be useful in some applications.
Sorry, but removing this row of keys is entirely justified if you accept that the touchbar is a valuable addition. Having to reach over a row of useless keys (I suspect Apple's data would show ~90% of customers literally never use them, except for the system-control functions) to interact with the touchbar would seriously compromise it's utility.
> (I suspect Apple's data would show ~90% of customers literally never use them, except for the system-control functions)
Completely dishonest and backed by no fact at all, you can make up some data, I can too, I didn't. You call them "useless keys" but there are here for a reason. There are so useless than the touchbar can emulate this "useless" row, except that now users have to look at the keyboard to type since there is no physical feedback to guide them. this isn't innovation, this is a step back.
Calling it dishonest and backed by no fact at all and then go mentioning they are there for a reason. Can you elaborate?
Historically they are programmable keys, not very standard at all. Same goes for the reason keyboards are staggered, to mimic mechanical typewriters that couldn't have the keys orthogonally placed. No problem changing that.
And no I'm not a fan of the Touch Pad at all, using a 2013MBP as a daily driver. I don't understand all the fuss.
> The normal positioning for Escape is very inconvenient for touch typing.
But what if you're not a touch typist? I'm not, and I use the ESC key all the time when using vi/vim, So much so, that it is almost a mindless reflex. I have no choice but to adapt, I know, but my most likely response to this will be to use my Linux laptop more frequently. I still have to use the Mac for OS X and iPhone development, but for other server side stuff, I guess I have to switch to Linux.
Recent generations, yes. vi was designed for a keyboard where the Escape key was where the Caps Lock key is today. When Escape ended up in a hard-to-reach place on the 103-key layout, vi users sighed and rolled with it (and new users didn't know any better.)
I've been a vi user since 1996 and have always remapped the Esc key because it's too far from home. I had assumed others also did this because I've never seen a vi user who works without some customisation on commonly used boxes and it seems like one of the obvious first changes to make.
This is bullshit. You know what else is not on the home row? Most of the keys on the keyboard. The ESC key is very easy to hit without looking down, there is absolutely no need to remap it and I refuse to believe that people that grew up with keyboards with ESC keys ever feel the need to remap it.
> This is bullshit. You know what else is not on the home row? Most of the keys on the keyboard.
...So? You know where you spend most of your time in Vim? the home row. It's called that for a reason...
I grew up with `esc` way up in the corner, and as soon as I started learning Vim I googled for common workarounds to reaching so far. Refuse to believe it, but it's true.
I've never been able to touch-type a function key on any keyboard, ever. Replacing them with a dynamic interface like the TouchBar seems fine for a row I have to look down at every time, anyway. Even on my 2015 MBP I have to make sure I'm hitting a volume button and not the power button.
Programming is not regular touch typing. There are all kinds of punctuations and weird key combos you have to do frequently that are not on the home row. And yes, I hit function key combos without looking many times a day. I will not be buying this laptop.
Good on you. Neither am I, and I have no desire to convince you to. Point still stands that not everyone is as comfortable as you with reaching. I certainly spend most of my time outside of insert mode, firmly on the home row. When I'm done inserting, I want to be back on the home row as quickly and comfortably as possible. Reaching for the furthest row from it before returning home will always be the last thing I want to do.
Eh. I'm using Dvorak, so most of the keybindings in Vim are total madness anyways. For most regular typing, my fingers stay on home far more than you Qwerty typists.
This is the kind of advice that young programmers need to get earlier. I'm new to Vim and I'm slowly realizing that A) Vim is way more powerful than I originally gave it credit to be and B) I'm vastly underutilizing its power.
You don't even need to rebind the escape key. I've been using ^[ for years, and it works in basically all standard terminals and vims as the escape key.
The escape key can be right there on the capslock (option to be enabled in System Preferences -> Keyboard). Using Esc key heavily with its default location is not practical at all. As for the F-keys I think this is more of a problem.
IIRC Support for Caps Lock -> ESC mapping in System Preferences is new as of 10.12 (or maybe 10.12.1?), so many people may not know that's an option. I didn't until I read your post and checked!
How do you achieve this with just System Preferences? On 10.11.6, I see the System Preferences -> Keyboard -> Modifier Keys allows re-mapping to Nothing, Control, Option, and Command, but not Escape. Is this a macOS Sierra thing? Tell me your secrets!
Check out Karabiner and Seil- you can even use these to map "tap capslock" to esc and "hold down capslock" to ctrl. (Seil has some issues in 10.12, but they're working on it.)
They have made karabiner-elements to do just some basic things and which works with sierra. I had a problem with it though as it remaps F-keys by default and it was clashing with Palua on 10.12
Vim user as well, while I haven't used the new device. Judging from the distance and where I hit the ESC key on the current keyboard, it shouldn't pose any issues. Even if they did remove it, the power of vim is the ability to just remap keys.
I used to do it without looking at my phone, now with touchscreen I lost that ability, I have to check every word, some keyboards help with that correcting my words if I moved my fingers a little to the side, but it's not the same, with physical buttons I was sure I pressed the correct buttons. Physical buttons give touch feedback and that's important when you're focused on something important in your screen. I don't want to switch my focus from my screen to my keyboard every time I need to use a function key.
I almost always text on my phone without looking because the visual effect where the selected letter appears above your finger actually makes me slow down. I was never able to use physical phone keyboards as easily as the adaptive software ones on modern phones.
Also I use vi mostly so I only use function keys rarely, in which case I look up.
Which phones did you use? I used Palm Treos from 2004 to about 2009 or so, some of the keys even had a bump so you could locate the home row keys. You truly could type somewhat accurately without looking at the keyboard.
If it's anything like their existing dynamic stuff, I worry it will be too slow. There are far too many cases where I search for something, see it pop up, go to hit enter, and as I'm hitting enter, Spotlight decides to shift focus to something else. So for their magic toolbar thing to work, they'd have to do something they haven't been able to do in my experience.
That's fair. My experience has been, at least with the iPhone, that they've made an effort to make it more and more responsive as time has gone on. Tangentially, this is why I don't understand people who install these third party keyboards that make background network requests. It's like, the keyboard is slow enough as it is without having to go to the public internet on a cell connection :/
Yeah, I haven't noticed that yet. Not to say it hasn't improved, but I just haven't noticed an improvement. My other concern is workflow. Right now, the magic toolbar is only on the laptop. This basically means the magic toolbar is only useful when using my laptop's keyboard. Otherwise, it's really an awkward tool to use.
I'm 99% sure the escape key will be there when in Terminal.app, I also imagine terminals like iTerm2 will have some really sweet TouchBar options to make it even better with all your console apps.
The feel of a real button is great, but you can imagine the possibilities of what you can do with that space when you look at your MacBook keyboard right now and notice you likely never use a thing but the escape key, brightness and volume.
I haven't used it yet, so I can't judge it too much, but I imagine Escape actually works well since it's the top corner of the keyboard and easy to feel, if escape were anywhere else it would really suck.
The only F key I don't use regularly is f6. (Though f2 is mainly a Windows thing... I doubt I use it much in OS X.)
I've got a keyboard with clicky button-type Esc and F keys, which might be a fair approximation to the new F key strip. (Pressing them isn't a million miles away from clicking on the Force Touch trackpad.)
If you can't rebind keys, Ctrl [ is THE most ergonomic way to use VIM. I really don't understand why you would use the real Esc key. It's too far away to be useful.
I'll give you the same answer I'll give Apple: don't tell me how to be productive. I have already found vim key bindings to improve my development experience by almost an order of magnitude. You're not taking that away from me.
I was configuring a server while walking through the airport the other day (long story and I won't bore you with details) on my ipad. There is no control key on the ipad keyboard meaning that I could not save any files from the ssh terminal. It was not the greatest experience and I can definitely see these kinds of things happening on laptop now due to apples "courage". They seem to be gung-ho on breaking things that work perfectly in the name of "progress".
Unless Apple made an iPad SSH client I don't know about, this sounds like you were just using a bad app. The first two that popped up when I just googled for "ipad ssh client" clearly have control keys, as seen in their screenshots, and some other ones I've tried also have control keys.
When I concluded my Thinkpad Tablet 2 was a little bit too small to work as a primary machine (switched to a Helix 2 for that), I re-paired the bluetooth keyboard w/optical trackpoint with my tablet. The keyboard fits inside my jacket.
I can't express quite how wonderful it is on the occasions I don't have a bag with me to still be able to have a proper keyboard+mouse setup when something goes sideways.
I find really amusing that after the Macbook reveal last year half of the response comments (in sites like ArsTechnica) were of the gist "just give me an updated Macbook Air, with the same form factor and a better screen".
Well, the base Macbook Pro model does exactly that. There is also an option (cheaper!) to keep the function keys.
I might be getting old and grumpy, but more than anything else
it boggles my mind when apparently everyone believes they should be the target user Apple (or Microsoft, or Google,or...) design their product for, and they consider a personal insult when that is not the case.
I don't think there was ever a time where the laptop market had so many options, at all price levels, many of those of such a high quality.
You don't like that a particular manufacturer is offering ? Vote with your wallet and choose another option, don't whine.
I think there are lot of us who may never have really like Mac hardware, but find the OS is the best option out there to get our work done. Its just a little sad it locks us to specific hardware platform as well.
> I consider myself a developer, and I almost never use the Fn and ESC keys on my Mac.
ESC usage just off the top of my head: cancelling any dropdown (e.g. IDE autocomplete, browser autocomplete, Spotlight, quick file search in Atom/Sublime), cancelling any OK/cancel dialog (e.g. save as), the ESC + '.' sequence in Bash to get the last word of the last command.
If you go to the current Apple homepage, the first image they present you with shows the Esc key right there. So all of those things you currently do with it? You'll still be able to do with it.
I don't think it would be very hard for terminal.app (or other apps targeted at developers) to show esc f1 etc along the top when it is open, and it can strictly have better function keys because instead of f4 etc they can be customised to say what they'd actually do.
I agree the fuss over the touch bar is overplayed.
It's a terrible post, and a terrible site (did it break anyone else's back button?)
I gave up on Mac as a development platform back in 2012 when they removed expose and replaced it with that terrible Mission Control garbage. Then I went back to Linux and discovered tiling window managers and haven't looked back. (and yes, I realize there are some good ones for mac now).
But I will say on this post that the escape key is a good point. I use it all the time. Sure you can rebind it, but it's not a useless, SysReq/ScrollLock type key. Most developers will have to rebind it if it doesn't appear on that touch bar thingy.
I've used the Lenovo's "adaptive keyboard". It's crap to use, especially for development. FN keys are especially easy to remap for macros or lesser used functions, and having no haptic feedback essentially kills their function for a touch typist.
It's also no wonder that newer carbon models came back to regular fn keys.
I actually bought/buy macbooks for their build quality, and generally only install linux on them. Looks like this particular model marks the end of this path.
The ESC key should hardly be a deal breaker for Vim devs - most remap it to caps lock on a Mac because it's easier to reach.
The 13" model has a version that keeps that row anyway. And the Touch Bar does still have a function key row/view? with ESC. MacVim and iTerm could probably add the functionality that the whole row is an ESC key when they are the active apps.
For me though, Apple got it wrong by releasing a gimmick (touch bar) which may be useful for some groups of Pro users (designers/film editors?) but I can't see adding much value to what I think is their largest group - software developers.
For me my ideal developer laptop is small, light and powerful. So while it's great the Pro is now the same size and weight as the air (13" model), I think they could have gone even smaller - see the Dell XPS 13. A 13" full powered (i7, 16GB ram) in a 12" body (by having an edge to edge 'infinity' screen). Basically they should have released a MacBook that can run an i7 and 16GB ram.
I do some programming (Xcode and VS Code), I do some 3D art (blender, substance), and I do some photography (Lightroom). Not all of those programs will support it at launch, but I expect they will sooner or later. And the new screen sounds fabulous (I have a wide gamut external screen already, though it's AdobeRGB instead of P3, the MacBook will do better in reds and not quite as well in greens). I wish it were cheaper, sure, but this looks like a fantastic computer to me.
Yeah, you need some different cables. You might need to rebind some hotkeys. It might take a while for some pieces of software to support the touch bar properly.
If you don't want to be an early adopter or you can't get over your Vim muscle memory, pick up a refurbished 2015 model and the rest of us can buy a few new USB cables and move on with our lives.
If I were still a Mac user (back to Linux a year or so ago), I think I'd be annoyed by the new laptops. Not enraged...just annoyed a bit. It's not the end of the world, but like a lot of Apple's recent moves, I'm left with a feeling of "OK, but why?"
With both the headphone jack removal on the iPhone and the function keys here, Apple has used "but they're old" as part of the justification. Playing a slideshow showing me a keyboard from 1970 that had function keys is not itself any form of argument against function keys. Sure, the touch bar can serve the purpose of the escape key. Crucially however, so could the escape key. The demos look neat enough, but it's hard to envision a 0.5" strip of touch screen being all that broadly useful outside a few niche cases where a long linear control is just what you need (e.g., audio scrubbing).
It's not that I think these laptops are bad necessarily. It's more that I think they're gimmicky. Apple seems to do an awful lot of things these days that remind me of Samsung circa 2012 or so -- "press this button to send your heartbeat to your spouse" kind of stuff. Meanwhile, Microsoft looks to be absolutely on fire.
The justification isn't just "they're old" though. It's "they're old and almost completely unused."
I know in Windows there are actual actions on the f-keys (F1 for help, F2 for rename, F5 for reload, etc.), but the Mac has no such equivalents. They're used for hardware and music control, and have this whole secondary mode of fn+F_ chords that hardly anyone touches.
The touch bar will be useful in nearly every app. I wasn't about to set up and memorize custom F-key bindings in every piece of software I use, so it's going to be more useful. And it allows for types of input that buttons couldn't offer to begin with.
With the headphone jack, it was "it's old and we have something better," which I'm not thrilled by (but I wasn't planning on getting a new phone anyway). The USB-C and removal of F-keys I'm totally on board with.
I realize I don't know the first thing about MacBook keyboards. Are you saying they don't have Page up, Page down, Home and End?
Maybe a Windows thing but I use Function keys everyday, F3 for incremental search, F5, F9, F10, F11 for debugging. Not having these keys would be handicapping.
Home/end are not really necessary on a Mac, where you can use cmd+arrow keys instead (left=start of line, right=end of line, up=start of document, down=end of document).
The function keys are also not commonly used by apps because the system maps them to brightness control, volume, play/pause etc. by default and you need to use the Fn key to produce the actual function key keystrokes.
The convention for incremental search is: cmd+F to open the find dialog, cmd+G for "Find Next" (which is great because it's right next to cmd+F), and cmd+E cmd+G for "search for selection". Every macOS app works that way and the F3 key will not be missed.
It's really not that bad. The only key I miss on Mac keyboards is forward delete (Del).
You can change Fn keys behaviour from prefs and I believed all developers would have defaulted to Function keys but seems not so.
Chrome, IntelliJ, VSC all use Fn keys for debugging, and also at least I have mapped most of function keys to some tasks, like F5 for open symbol etc.
Touchbar is only good for some slider like things where continuous strip will help. It is also good for novice users like MSOffice ribbon, they can see a lot of things on screen now and they don't have to hunt in menu or remember shortcuts.
But for a real pro user spending whole day in few softwares, it makes no sense. I have seen pro photoshop users using 3-4 keys long shortcut like second nature, they need access to tonnes of features and variants so more keys the merrier.
Honestly, I haven't seen any real use cases of the touchbar, smileys and photo slider is cute but not something on top of my list to optimise.
You're describing the 'Fn' mod-key. Everyone else here is describing the F-keys. The 'Fn' key is still there and does what it always did. In fact, it calls up the traditional 'Fn' keys on the touchbar, functionally just the same as the old MBPs, making all this whining look particularly stupid.
You may never use the Fn and ESC keys (I hardly do either), but this does add to the list of events developers now need to handle in order to develop cross-platform compatible software.
Using function keys as shortcuts is already a terrible idea on macOS because these are used to control the screen brightness, volume, play/pause etc. The TouchBar might actually make it easier for new users to realise what the Fn key does.
either you don't use macbook or not interested enough to look for how to change that behavior. It is a single flag in preferences that allow you to use the keys as function keys and screen brightness etc. with 'fn' key.
I know, but that doesn't make the F keys a good choice for cross-platform app developers. Nobody would release a web browser on macOS where F5 is the only way to reload the page - not before and not after the TouchBar.
I couldn't agree more, this kind of stance is embarrassing from a professional standpoint. It's ridiculous to act like this one special arrangement of plastic on a computer is so crucial to development.
All 'real' developers remap their own modifier keys.
All 'real' developers use full cherry-mx mechanical keyboards.
All 'real' developers write assembly with pen and paper and then print their stack of punchcards once.
etc, etc.
Developer here. Dealbreaker for me. All my tools heavily use function keys and escape. If I had no other options I'd just deal with it, but Apple is competing with themselves: since they didn't bother to upgrade the actual performance, I have no incentive to move from my current macbook. And when I do, I'll probably just buy a different brand if they don't release a laptop that's actually useful for me.
Non-developer here. The new MacBook has both an escape key and function keys, as could clearly be seen in the demos and screenshots on Apple.com. So all your tools will still work.
Saying the new MacBook doesn't have an escape key is like saying the iPhone doesn't have an "L" key. It does when you need it to.
I use the F keys a lot in Matlab, but I'd guess that Matlab users are just as much a minority of developers that developers are of Mac users, so I can see why it's not a big deal to Apple. Maybe Mathworks will add some of the functionality to the touch bar anyway.
Then I'll wager your knowledge of the capabilities of the apps you use is limited and if you are developing UIs I'll bet that while you consider them slick and sophisticated, they are in reality limited and inefficient.
It has always been possible to set those keys to default to F-key functions instead of media functions. The difference here is that the position may not be constant, and you can't feel with your fingers what you're over before you commit to activating the function, so you must look. In some contexts you can "get used to it", but this is a steeper uphill battle.
Visual Studio is the only place I've really used the function keys (F5, F10, F11), and I rarely use VS anymore. Outside of that I use F2 when in any kind of GUI that permits renaming of a file or folder.
C-] might be a better bet - it will cancel any active command, like C-g, and also back out of any recursive edits, while leaving your window layout intact.
Surely the weird thing about removing the escape key is that it is used to bring up the force quit menu (cmd-option-esc). Pretty ingrained in my mind at least, but to be fair not needed that often.
I have a 2013 15" MacBook Pro, the diference with the top of the line that came out yesterday comes down a slight bump in the dedicated Graphics Card (which I don't appreciate since I use CUDA a lot and as such I actually prefer the GTX 750M to a only slightly better AMD card in the new model), and a 0.1 GHz bump in the processor (back from the 2.3 GHz i7 my MacBook Pro has).
I do understand that taking out the Esc and F* keys and replace it for a smart bar can be seen as a valid design option, but I can't see how shipping a Laptop 3 years later with, lets face it, basically the same specs and ask for the same price can be something positive.
I consider myself a developer, and I almost never use the Fn and ESC keys on my Mac. Everybody uses the computer differently, but I'm pretty sure this is not a deal-breaker for most. One could also argue that the touch bar might lead to innovative developer tools, such as timeline interfaces for Replay Debugging. There are already a lot of applications in the content creation (Photoshop, Illustrator, Maya) space, which developers frequently use to create assets.