Still though, at the moment I can step through code without really thinking about it, partly because I know where the keys are based on how the keyboard feels, combined with the tactile feedback of pressing the buttons.
I would worry that with no physical presence on the keyboard, I would spend a lot more time looking at the keyboard figuring out where the function key I need is than actually getting things done.
I would be keen to see a review from somebody who uses the new Macbook Pro professionally as a developer to see if this is as much of an issue as I imagine it to be.
> I would worry that with no physical presence on the keyboard, I would spend a lot more time looking at the keyboard figuring out where the function key I need is than actually getting things done.
Exactly. In Eclipse, F5 steps into a function call, F6 steps over it, F7 returns from the current function, and F8 resumes execution, and mistakenly pressing the adjacent key can be frustrating (although, with time-travel debuggers, this issue might be alleviated?).
Interestingly, when Lenovo did Thinkpad T430 series, they removed the spacing between the F-keys (in order to fit ESC in the same row). Such a tiny change, yet how much usability it destroyed - suddenly it was impossible to use F-keys by touch.
It's the same argument from the Blackberry v iPhone days. Maybe not great for you. The question is - for most people are configurable F keys more useful than touch-typable F keys.
As a touch typist, can you please explain how function keys are particularly relevant to touch typing?
Stepping through the debugger is not typing, and function keys change role according to the selected app anyway. And when they are system function keys (brightness, volume, etc) they are even more irrelevant to typing and/or touch typing.
Besides, there's nothing particularly hard about finding a touch based F6 key compared to a physical F6 key. A key's position (which won't change) gives more of a clue than the key's boundaries.
Heck, it's called touch typing -- a touch strip doesn't sound that alien to it.
You can feel the boundaries of physical keys, unlike virtual ones on a touchscreen. The nubs on F and J serve a similar aligning purpose as, and enhance the functionality of, the interkey gaps on the function key row.
Stepping through the debugger is not typing,
I disagree. E.g. when you're deciding to step in vs. step past vs. step out vs. run etc.; finding the right key is extremely important.
...and I challenge anyone to hover their fingers over the respective keys continuously for hours without touching them, losing their alignment, or unnecessarily tiring the muscles of their hand.
Thanks, you answered the question perfectly. I never look at the keyboard whilst typing normally. I have transitioned to using Visual Studio 2015 in the last year, and am now also developing my muscle memory of the function keys.
I use a Logitech G910 keyboard (love those Romer G switches now, even though it took a while), and e.g. setting a break point with F9 is easy as it's the first key of the third block. For a debugging session, the rest follow - I can rest my fingers on the buttons and just step through / skip over etc - no need to look at all, the focus staying on the code.
Actually knowing when I press the button too is extremely important; there's no mistaking the action on a physical keyboard.
I also have a X1 Carbon laptop, the first gen. Fantastic keyboard (and thanks to getting the i7/8/256 version which was rather outstanding back then, it still serves me well today even though the 8gb is getting limiting). In its 2nd iteration, they went for capacitive function keys, much to just about everyone's chagrin. Thankfully, Lenovo listened to feedback and in its the 3rd generation the function keys are back to normal, i.e. same as mine. If they bring a 32gb model out by the time I feel I need to upgrade, I'll probably look at another one (in 1-2 years).
There are many applications, that do use F-keys for shortcuts.
Not only debuggers, like others mentioned. But also some popular file managers (windows: Far, Total Commander; linux and osx: Midnight Commander).
When using these applications, I can copy files using F5 - and I know it is F5 without looking, because it is in the middle and has an empty space to the left. Similarly with F8 (delete) - in the right region, has space to the right.
With touch strip, you pretty much have to look away from the screen, onto the strip.
>When using these applications, I can copy files using F5 - and I know it is F5 without looking, because it is in the middle and has an empty space to the left. Similarly with F8 (delete) - in the right region, has space to the right.
Well, no such space on the physical keyboard I'm using now. Not after F5, and not after F8.
Yes, there are such keyboards, from the popular ones Thinkpad [TX][245]30 series for example and the previous rMBP too. However, most keyboards do have the spacing.
Actually Xcode has been updated for touchbar, and has some useful code editing commands. But does not show any debugging commands in the touchbar. Perhaps it will in future.
It is possible to show F keys by holding the fn key and you can configure the touchbar to always show F keys by default.
Are you kidding me? How can you not see that this is nothing more than an arbitrary habit that you've grown comfortable with? Imagine the function keys had never existed to begin with. Don't you think we would have come up with a different way of stepping through code with a debugger? I understand that it's annoying to have to change your habits, but you're a developer for crying out loud: Your job is literally to change how other people do work, to make it more efficient, easier to learn and so on. We all know that our users often resent us, because we change how they have to do their work. But we do it anyway, because we believe deeply (and mostly rightly) that the benefits of progress outweighs the short term annoyances of having to change habits. But when we're the ones who have to change, hoo-boy, suddenly the sky is falling. Give me a break.
Well...pretty much everything you do is an arbitrary habit that you've grown comfortable with.
Sleeping in a bed is an arbitrary habit that you've grown comfortable with, why not sleep on the floor, or in the bath?
The fact is that when developing and debugging, the function keys represent the most efficient way of stepping through code, and a part of this is to do with their physical presence on the keyboard.
I know that I don't have to use them, there are other ways to achieve the same thing, but those things have always been there and I choose the function keys because they are the best option.
Sleeping in a bed is an arbitrary habit that you've grown comfortable with, why not sleep on the floor, or in the bath?
Because contrary to what you say, sleeping in a bed is not just an arbitrary habit. The bed is a special purpose piece of furniture, optimised for sleeping in. The use of f-key to step through a program is OTOH simply an accident of history. The f-keys were chosen because they were there. Had they not been, some other solution would have been invented, using the keys that were there, and (this is my point) the solution would have been just as good!
I must admit, I rarely use the function keys as they seem to be different everywhere... Mainly from years of VS usage, actually...
But I use the escape key hundreds of times a day.. not having that as a dedicated key will hinder me as much as removing the backspace key.. I mean nobody needs to go back, and you can just use the mouse with cut..
> The fact is that when developing and debugging, the function keys represent the most efficient way of stepping through code, and a part of this is to do with their physical presence on the keyboard
> an arbitrary habit that you've grown comfortable with
You mean a workflow?
Who are you (or anyone else) to decide what works best for me? Am I not capable of making my own decisions? Do I really need a hardware company making those choices for me?
>Who are you (or anyone else) to decide what works best for me? Am I not capable of making my own decisions?
Most people aren't -- from politics to personal finances and relationships, there are tons of bad decisions everywhere one looks. (Including my decision to answer this comment some would say -- heh).
We have schools, best practices, guidelines, standards etc, to try to enforce some good decisions upon people.
That said, if one feels strongly about it, there's always the decision NOT to buy such a laptop.
>And many people are making that decision, so what seems to be your problem with this?
No problem with this.
My problem is that they frame it as if their personal habits/users are universal, and a computer that doesn't cater to these is inherently bad (as opposed to just bad for them).
Who are you (or anyone else) to decide what works best for me? Am I not capable of making my own decisions? Do I really need a hardware company making those choices for me?
Did you not read beyond my first sentence?
Who are we as programmers to decide what works best for our users? Were the clerks at the bank not capable of deciding for themselves if their pen and paper workflows worked better for them than the computer programs we made to replace them? The typographers of yore were almost certainly more comfortable and faster using a linotype machine than this new fangled desktop publishing software, that we invented. I simply cannot wrap my head around people in our profession who kick and scream because the march of progress once in a while makes their lifes a tiny bit uncomfortable for a short while.
> Who are we as programmers to decide what works best for our users?
Where did I say that? You seem confused.
And your argument regarding publishing and banking software is a strawman intended to shift the focus away from the real argument - that of choice. Forcing a change on my workflow can have very real effects on my ability to generate income. Why should anyone be ok with that?
> Who are we as programmers to decide what works best for our users?
Where did I say that? You seem confused.
I am saying that we as programmers force people to change their habits all the time. We do it to in the name of efficiency and progress. We eliminate workflows, we make entire jobs redundant. We of all people should be able to recognise that even though change is uncomfortable, it is inevitable, and mostly for the better.
And your argument regarding publishing and banking software is a strawman intended to shift the focus away from the real argument - that of choice
Please. Even if we pretend that you don't still have the option to use a third party keyboard, or buy one of the Macs that still have the f-keys, what about the people who would prefer the new touch bar to the f-keys? What about their choice?
Forcing a change on my workflow can have very real effects on my ability to generate income
I'm sorry, but that's ridiculous. You are not going to feel a very real effect on your ability to generate an income simply by being forced to learn a different set of shortcut keys to step through a debugger.
Well, in this case, it's not deprecated. It's deprecated by one computer manufacturer. There are more than enough other computer companies still willing to sell you a keyboard layout like the one you've been used to for the last 30+ years.
The problem is, say you're an iOS developer, you get no choice; you HAVE to run a Mac and be at Apple's mercy.
Firstly, it's not true that you don't get a choice. Apple still makes laptops with f-keys. And you can always plug in a 3rd party keyboard.
Secondly, an more importantly, of all the options Apple don't give you (and there are an infinite amount of them), this one is so minor. Why, other this is how you are used to it, are the important reasons for using specifically the f-keys to step through a debugger? What is wrong with any of the other keys?
I agree of course that change merely for the sake of change is not a good idea, but surely, surely we can all recognise that Apple did not make this change on whim, simply to try something different?
You can use Visual Studio on Windows to write iOS apps with Xamarin or Cordova, using a network-attached Mac solely as build server, without ever having to use it (except for updating stuff, via VNC)
It kind of is... this reminds me very much of moving from a blackberry to an iPhone. Sure, the features of the iPhone were great, but for my (at the time) primary purpose of using the device for sending emails, it as a MASSIVE step backwards. I could touch type nearly as fast on a blackberry as on a regular keyboard. Moving to a touchscreen meant I had to look at the screen while typing. It slowed me down tremendously, and IMO was a massive step backwards in usability.
It's an interesting comparison, but IMO not that apt. Going from a physical keyboard to a touch screen, something is definitely lost (even though much is also gained). The removal of the function keys will at worse force people to memorise different hot keys (any reason why the number row could not serve the same purpose exactly as well?), and at best it will make providers of IDEs and other productivity software revisit old assumptions, and improve the usability of their software.
They aren't just function keys. Losing the tactile feedback of volume and screen brightness, while not THE END OF THE WORLD will very quickly become an every day annoyance for me. In order to... have a contextual touchscreen that forces me to take my eyes of the monitor to use?
Sorry, I'm just not seeing the draw. I'm also struggling to buy into the "not everyone is a touch typist" excuse. Anyone under the age of about 40 has had a typing class. Anyone under the age of about 25 (who is using a computer for their job/attending college) knew they were going to spend the rest of their life using a computer and probably paid attention.
>They aren't just function keys. Losing the tactile feedback of volume and screen brightness, while not THE END OF THE WORLD will very quickly become an every day annoyance for me. In order to... have a contextual touchscreen that forces me to take my eyes of the monitor to use?
Most people "take their eyes of the monitor to use" the function keys. Given this, the function row strip will finally be more usable and more obvious for lots of other uses besides volume and brightness (things that people at best adjust a dozen of times a day).
Most laptop users are neither programmers not touch typists that use the function row 2000 times a day. Nor does being a "pro" users means you are either of them. A graphic designer might not be a touch typist or care for the f row, but he is a professional. Same for a doctor, an architect, a musician, a videographer, a CEO, an accountant, etc etc...
"Sorry, but I'm just not interested in this motorized wagon you've invented. It's noisy and ugly. Could you please just go and invent me a faster horse instead?"
So you're comparing a touch bar, which has already been done before and met with the exact same pushback, to a radical new form of transportation? Fanboy alert.
So, a product that went from non-existent to being the #1 sold item in it's niche, the #2 in overall watch sales, and outsold competitor smartwatches 10 to 1, becoming a multi-billion dollar thing?
And all that in it's first 2-3 years (it took more for the iPod to become ubiquitous from its 2001 introduction), and while not of course being expected to become the next iPhone anyway...
No, I am making the observation that most users are conservative and resist change, even for the better. And that most people can't recognize progress even if it hits them in the face.
Do modifier keys (control, alt, command, fn, shift) fall under your definition of modal UI? If so, how do you deal with the fact that your keyboard doesn't (I'm guessing) have dedicated keys for cut, copy, and paste? I think its safe to assume that everybody uses those significantly more often than they step through a program with a debugger.
If you're using a MBP at the moment - then you're already pressing the fn key to use the functions keys for anything other than the media-stuff they've been designed around for years. Your workflow is exactly the same - you're just using soft keys instead of physical ones.
Or change the preferences so the function keys work as expected and you have to use the fn key to access the media options. I probably use the function keys 100x more often than the media ones.
So the touchbar has a setting where it behaves precisely like the current MBP? Esc, row of 12 keys, which are either f1-f12 or media with a setting, and are toggled between with fn? That's strictly worse if I only ever use it like that because it's the same but with soft keys, but sure that's basically the same.
The debug step keys will show up in the touch bar? If they are not stupid enough to swap them around sometimes, then they should stay in the same position.
Use the strip bar in debugger keys mode, or function keys mode for non-updated apps?
Or use printf statements (seriously -- I never advocated for much debugger use, unless it concerns very focused stepping. A lot of people step all around and examine everything and anything for ages with no clear idea of what the bug might be).
What should I do instead? Serious question.