4 ms·
I've often found it very peculiar that while many industries have specialized input hardware, it is still the norm for developers to type awkward key combinatio
by davegauer 10y ago
I've often found it very peculiar that while many industries have specialized input hardware, it is still the norm for developers to type awkward key combinations* for common programming symbols such as (,),{,},[,],=,<,> etc. which are be used in mass quantities all day, every day.
I understand how we got where we are, but it's nevertheless surprising that something like a modernized space-cadet keyboard isn't standard for developers. Or at least a programmable keyboard with a thumb-activated modifier key plus a home row key for the most commonly used symbols.
* SHIFT+<anything other than letters> is awkward if you have to do it enough. Especially laptops, which enjoy deviating from ANSI or ISO layouts. I've also heard it told that some international layouts make "[" and "]" especially unhandy.
- lallysingh 10y agoThere are layouts for this, like programmer's dvorak: https://www.google.com/webhp?sourceid=chrome-http://www.kaufmann.no/roland/dvorak/ https://www.google.com/webhp?sourceid=chrome-http://www.kauf... A programmer's qwerty would be pretty handy, too. Edit: and there's plenty of programmable keyboards, like ergodox (https://ergodox-ez.com/ https://ergodox-ez.com/, though I'm not sure if that's the canonical url).
- davegauer 10y agoYes, we're actually in the midst of a new golden age of keyboard hardware (and hobbyist electronics in general). I've constructed a Planck from Ortholinear Keyboards and keep trying to find time to get it set up for my One True Programmer's Layout!
- swyman 10y agoYour programmer's dvorak link didn't work for me. I believe this is the correct URL: http://www.kaufmann.no/roland/dvorak/ http://www.kaufmann.no/roland/dvorak/
- Nullabillity 10y agoThere is already specialized input hardware for development. It's already either attached to, bolted onto, or (poorly) emulated on every single computer you use.
- Hansi 10y agoBloomberg developer accounts do not give you a BBG keyboard you just get the fingerprint thingy on it's own and use your own keyboard.
- Sanddancer 10y agoI actually use a gaming keyboard for that very reason. It's got a set of thumb-activated macro keys that I've programmed for common things. There's even a part of me that wants to pick up a piece of Midi->HID software so I can use a DJ controller as a debugger tool for stepping through code, etc.
- snuxoll 10y agoYou just gave me a mental image of scratching a record to scroll through a stack trace, now there is absolutely no way I can end my day without a smile on my face.
- semi-extrinsic 10y agoInstead of a DJ controller, there are USB controllers for scrubbing through timelines in movie editors. Those are already HID devices, so probably much easier to integrate with your favourite IDE/editor/debugger. http://www.bhphotovideo.com/c/product/298670-REG/Contour_SPROV2_ShuttlePRO_v2.html http://www.bhphotovideo.com/c/product/298670-REG/Contour_SPR...
- Trillinon 10y agoProgramming languages have evolved around the keys present on the QWERTY keyboard. It would be interesting to develop a programmers keyboard geared at providing more useful symbols for programming, and then write languages around the new keyboard. When not programming, many of the symbols on the QWERTY keyboard are useless, and it's missing a lot of typographic symbols that I end up having to use shortcuts, character maps, or unicode for. It doesn't even have a real apostrophe or left and right quotes, let alone en and em dashes, bullets, or various space widths.
- stepvhen 10y agoIf you are savvy and feel its worth the cost, there are keyboards available that are fully programmable, depending on how much customization you need. A Poker 3 would be probably be the best option for something off the shelf, featuring 3 separate fully programmable layers. If you go diy, you can do literally anything.
- jerf 10y agoTake control of your keyboard. At least Windows and Linux let you remap pretty freely. You probably have more than enough keys to do everything you want already, start remapping! A common path in is to remap Caps Lock to do something useful. (I favor Backspace, one of the keys that never shows up on the list of keystrokes if you just analyze text, but YMMV.) However, it is still the case that even programmers will likely have the symbols off the beaten path a bit. Programmers still do a lot of not-programming, so it's hard for a symbol to displace even unpopular letters from the most convenient spaces. Your local written language will still end up dominating the keyspace.
- consto 10y agoIf you are using Windows, how are you rebinding your Caps Lock key? AutoHotKey? I've made my own keyboard layout using Microsoft Keyboard Layout Creator which unfortunately doesn't support rebinding the modifiers.
- throwanem 10y ago> AutoHotKey? It sort of works, but you're much better off doing it in the registry: https://www.emacswiki.org/emacs/MovingTheCtrlKey#toc18 https://www.emacswiki.org/emacs/MovingTheCtrlKey#toc18
- delluminatus 10y agoSome mechanical keyboards let you configure this with DIP switches on the keyboard itself. My keyboard even came with an extra set of keycaps for swapping the caps lock and left control keys.
- jsprogrammer 10y agoTo really take control of your keyboard, you want one that supports hardware remapping, then you get your map on every machine and every OS.
- snuxoll 10y agoThere has been some effort to make a keyboard layout better for programming, namely Programmer Dvorak. It's certainly not amazing by any means, as the reordering of the numerical keys really stinks, which is why I stick with the traditional dvorak layout (which actually has some disadvantages in curly-brace languages since the {} keys are right next to backspace and require moving my entire right hand off the home row to reach comfortably, whereas the traditional QWERTY locations can easily be hit by my little finger). As much as neat devices like the data hand and other input devices make waves on HN every now and then, I feel most programmers are just like the rest of the world, they just use QWERTY because that's what they learned and never saw anything wrong with it.
- consto 10y agoI would be surprised if switching to a slightly nicer keyboard layout would overcome the loss of muscle memory.
- snuxoll 10y agoIt certainly takes time. I never learned how to touch-type on QWERTY (I got really fast at pecking at keys) - so taking the dive from ~30WPM to ~15WPM for the first two weeks wasn't too big of an issue, now if most of the online typing tests can be considered "good enough" I now type roughly between 80-95WPM on average using Dvorak - which is mostly excessive when it comes to my day job of programming since I spend more time thinking about what I'm trying to write than I do typing it, but it comes in handy when replying to comments on Hacker News and Reddit or when I have to type up documentation.
- consto 10y agoHonestly, symbols such as (, {, [, =, <, etc... are no harder to type than CaPiTaL LeTtErS. However, I have bound countless mathematical symbols, arrows, diacritics and the entire Greek alphabet to AltGr combinations. Heck, I have even made a AutoHotKey script to let me input Unicode codes when I hold down the fn button. I'm probably not the best person to judge difficult key combinations, and I don't even use vi! The best part of using the mentioned symbols is that they are found on virtually every keyboard, you don't need a specialised input device. You mention laptops being awkward to type on and yes the travel is bad, and the layout is often cramped, but it really depends on the laptop in question. I'm not a 3d modeller, accountant, or anyone who actually uses a num pad, so I am glad to not have one. With that said, my current laptop (Lenovo U430p) has my favourite keyboard layout yet - I miss it on my desktop. It's not flawless. However, if I was to make changes I would basically change the fn modifier layout, and the labels. Reason why is that AutoHotKey is awkard compared to a custom keyboard layout. Maybe I should make a custom mechanical keyboard for my desktop.
- gd1 10y agoAPL had specialized keyboards.
- erikb 10y agoThese problems can be used in hardware, but also in software, e.g. with another keyboard layout for your specific topic or a good text editor. While I don't believe that hardware is as hard/expensive to develop as software, I certainly know that it is harder to change. Changing software according to your needs is a one man weekend project. Especially if you are a software developer.