News for hackers. Stuff that matters.
Re:Helping a Million Developers Exit Vim by blhack on Tuesday May 23, 2017 @02:37PM (#14403922)
I spent almost 10 years doing IT for a company whose backend was based entirely on as/400. If you've ever used a system like that, I'm sure you know where this is going...

The console's that the front-desk or clerical users used every day had a steep learning curve. It was something that you would definitely not be able to walk up to and just intuit.

However, once you figured it out, there is never going to be a faster UI that you are ever going to experience in your life until we figure out direct BCI stuff.

It was funny watching the new people come on board and insist that we should change the UI to something with a mouse (probably web based). They had no idea that more immediately intuitive was actually a step backwards.

My point is that just because something has a steep learning curve, that doesn't necessarily mean that it's a bad design.

Re:Helping a Million Developers Exit Vim by jakub_g on Tuesday May 23, 2017 @02:47PM (#14404013)
I work for a reservation systems company (a GDS) that is used by thousands of travel agencies. Of course, since the system was created 30 years ago, you were only able to create reservation with a text-based interface at the time, with short commands, inconsistent and complex flows to do some non-trivial things etc. So it's despised by newcomers because learning curve is steep.

However, the company has been building new web-based solutions for a while, but all of them have so called "cryptic mode" where you can still directly input the commands, as it is order of magnitude faster, mandatory feature for experienced old-timer travel agents.

Re:Helping a Million Developers Exit Vim by VLM on Tuesday May 23, 2017 @05:29PM (#14405546)
"inconsistent and complex flows to do some non-trivial things"

Note that's a characteristic of bad design, not a characteristic of CLIs, where constraining the UI to GUI, will merely result in a hard to use GUI, instead of a hard to use CLI.

Note that in an email or printed page I can provide any CLI walkthru and anyone can follow with minimal training ("Which key is the any key?"), but some purely graphical GUIs are impossible to discuss verbally, especially if badly designed (see above, and realize the badly designed ones are going to need the most help).

First, click on the icon that looks like a Rhinotia hemistictus nose, except its green. No, not that, thats more of a myrtle color, you want the really bright green one. OK, now if you see a screen that looks like a Type II Seyfert galaxy then you've clicked thru too far and need to click back. Oh no, there's no left arrow icon to go back, we outsourced development to save money and in the programmer's culture a left arrow is an obscene gesture indicating you mate with your sibling, so our discount software uses a thoracic vertebrae, superior side up, for its back icon, isn't that hilarious a "back bone" to go back oh those UX guys crack me up every time. Something thats one line at a shell interface that could have been cut and pasted in, can involve an hour of talking back and forth about a bad GUI.

Re:Helping a Million Developers Exit Vim by jakub_g on Wednesday May 24, 2017 @03:12AM (#14408098)
> "inconsistent and complex flows to do some non-trivial things"

> Note that's a characteristic of bad design, not a characteristic of CLIs

That's a characteristic of hundreds of developers creating features over dozens of years, and those features interacting with each other in subtle ways.

In my experience, even in small projects and codebases things get notoriously inconsistent very fast. It's a hard thing to keep, as it requires conscious effort and most developers don't care that much. And once something goes to production (or far enough in non-regression phase), it's a game over.

On top of that, AFAIU, in legacy systems, storage space was severely limited. Hence PNRs had a rigid structure that was not very extensible. That's another fact due to which implementing new features in a backward-compatible way might have been cumbersome.

Re:Helping a Million Developers Exit Vim by flukus on Tuesday May 23, 2017 @08:47PM (#14406756)
There's a reason most desktop support still rely on the command line in the windows start menu.
Re:Helping a Million Developers Exit Vim by Brotkrumen on Tuesday May 23, 2017 @03:21PM (#14404322)
Altea Amadeus.

And all the three big GDS need to be thrown into a fire. "Oh you want to add a person to the PNR? Well tough luck! Not a use case we handle!"

Re:Helping a Million Developers Exit Vim by Brockenstein on Tuesday May 23, 2017 @04:56PM (#14405260)
You should see how Sabre handles email address with it's bizarre, limited, possibly 7bit character set from 1959.

In Sabre emails can be like 70 characters long. But periods count as two characters, as do underscores, and @ counts as four. I mean given the choice between period and cross of lorraine I know which I am choosing to include.

Re:Helping a Million Developers Exit Vim by hackuser on Tuesday May 23, 2017 @05:29PM (#14405547)
What character encoding do they use? ASCII is 7-bit, all those characters use 1 byte in ASCII, and of course email addresses were originally (and until recently?) restricted to ASCII.
Re:Helping a Million Developers Exit Vim by Brotkrumen on Wednesday May 24, 2017 @04:01AM (#14408274)
Something weird:

https://sds.sabre.com/XTRANET_Access/sabre.htm

The @ is 0x2E20 in sabre hex

Re:Helping a Million Developers Exit Vim by gadders on Tuesday May 23, 2017 @08:10PM (#14406577)
Lotus 1-2-3 (the spreadsheet before Excel) used to have a text-based interface that people could rattle through.

It was so popular, you can still bring up 1-2-3 text menu equivalents in Excel by typing "/".

Re:Helping a Million Developers Exit Vim by bauerd on Tuesday May 23, 2017 @03:19PM (#14404306)
There's certainly a trade-off between learning curve and long-term productivity. But the problem here is that vi/m gives shitty feedback, that's all. It should say "Press <ESC> and type :quit<Enter> to quit VIM" but it doesn't. Most first-time users lack a mental model of input modes, so they get stuck.
Re:Helping a Million Developers Exit Vim by Ded7xSEoPKYNsDd on Tuesday May 23, 2017 @06:03PM (#14405770)
After pressing Ctrl-C a few times, the status bar says 'Type :quit<Enter> to exit Vim' for me. Not sure what else people try to exit vim.
Re:Helping a Million Developers Exit Vim by yjftsjthsd-h on Wednesday May 24, 2017 @12:13AM (#14407569)
There's always C-z, but that actually works.
Re:Helping a Million Developers Exit Vim by cm2187 on Tuesday May 23, 2017 @06:08PM (#14405807)
I think your are mixing steep learning curve with having keyboard shortcuts (whether they are commands or combinations of keys). You can have keyboard based shortcuts with any UI. Actually a UI with no shortcut is probably a bad design in the first place. A steep learning curve just means it is hard to learn, i.e. non intuitive, non discoverable. These are not qualities.
Re:Helping a Million Developers Exit Vim by Houshalter on Tuesday May 23, 2017 @06:05PM (#14405779)
I just hate programs that change patterns that are standard everywhere else. E.g. 99% of software uses control+c and control+v to do copy and pasting, so of course software that maps it to something totally different is going to be very frustrating. The same thing with vim using nonstandard way of quitting.

Discoverability is another problem. You can have weird keyboard commands, but make it possible to find them without searching stack overflow. I miss when applications had a big bar at the top of all the commands you could do and their keyboard shortcuts. I'm on chrome right now, and copy and paste is hidden away in a menu. And the keyboard shortcut for it isn't mentioned. How do you think people learned the keyboard shortcut in the first place? Or apple phones have a bunch of gestures that are useful, but no one knows about because you can't discover them.

Re:Helping a Million Developers Exit Vim by dllthomas on Tuesday May 23, 2017 @06:13PM (#14405837)
Approximately 0% of terminal programs use control-c as copy. Conventions depend on context.

"Control-C sends SIGINT" has been a standard for longer than "Control-C means copy".

Re:Helping a Million Developers Exit Vim by Houshalter on Tuesday May 23, 2017 @06:31PM (#14405975)
I'm well aware of that and the historical reasons that it's the case. I'm just using it as an example of breaking well established patterns that screw new users.
Re:Helping a Million Developers Exit Vim by boxfire on Tuesday May 23, 2017 @07:14PM (#14406272)
^C as copy is an example of breaking well established patterns that screw new users. Its THE canonical example in fact.
Re:Helping a Million Developers Exit Vim by photojosh on Tuesday May 23, 2017 @09:40PM (#14406987)
^C is SIGINT. ⌘C is copy.

I blame Microsoft.

Re:Helping a Million Developers Exit Vim by isostatic on Wednesday May 24, 2017 @12:22AM (#14407596)
Didn't Ms"S use to use CTRL-Ins or similar?
Re:Helping a Million Developers Exit Vim by JdeBP on Friday May 26, 2017 @12:24PM (#14425197)
The name that you want to look up is Common User Access.
Re:Helping a Million Developers Exit Vim by photojosh on Wednesday May 31, 2017 @11:53PM (#14457887)
Well TIL, thanks! Interesting to know the history.

(I still have a few Windows apps we use at work that use these standards; good to know they actually were a standard.)

Re:Helping a Million Developers Exit Vim by Houshalter on Tuesday May 23, 2017 @09:15PM (#14406894)
I really don't care who is responsible or which came first. I'm only pointing out the inconsistency and the problems it causes.
Re:Helping a Million Developers Exit Vim by wruza on Tuesday May 23, 2017 @11:19PM (#14407373)
Don't worry, in few years new bindings will be familiar to new people straight from their birth date. Then they will complain about changes and you'll tell them that changes were made long before.
Re:Helping a Million Developers Exit Vim by majewsky on Wednesday May 24, 2017 @06:14AM (#14408870)
Shortly after the introduction of the first generation of brain-computer interfaces: "Why do I have to think of Ctrl-C to copy text in this program? All the other programs have me think of a banana to copy a selection!"
Re:Helping a Million Developers Exit Vim by yohui on Tuesday May 23, 2017 @11:11PM (#14407343)
> I'm on chrome right now, and copy and paste is hidden away in a menu. And the keyboard shortcut for it isn't mentioned. How do you think people learned the keyboard shortcut in the first place?

Copy and paste are also in the right-click menu, and the keyboard shortcuts are shown there.

Re:Helping a Million Developers Exit Vim by kevin_thibedeau on Tuesday May 23, 2017 @09:35PM (#14406970)
Vi predates the Ctrl+C.X.V convention. Shame on all those Windows apps for not using the Esc key properly.
Re:Helping a Million Developers Exit Vim by Glyptodon on Wednesday May 24, 2017 @01:24AM (#14407782)
I hate VI not defaulting to wasd for movement like every other single piece of software I used growing up... (e.g. Quake, Marathon...) Ha ha ha. (Or should my games have used hjkl)?
Re:Helping a Million Developers Exit Vim by dllthomas on Wednesday May 24, 2017 @01:33AM (#14407804)
As I recall, both Quake and Marathon defaulted to arrow keys for movement. Half-Life was the first time I encountered WASD out-of-the-box.

> (Or should my games have used hjkl)?

I still play a game that does...

Re:Helping a Million Developers Exit Vim by flukus on Tuesday May 23, 2017 @08:49PM (#14406767)
> The same thing with vim using nonstandard way of quitting.

How do you quit man? How do you quit less?

'q' to quit is pretty standard in the TUI world.

Re:Helping a Million Developers Exit Vim by Houshalter on Tuesday May 23, 2017 @09:19PM (#14406911)
I tried it and typing q does not seem to exit the program. Nothing I tried worked and I had to exit the whole terminal.
Re:Helping a Million Developers Exit Vim by flukus on Wednesday May 24, 2017 @02:10AM (#14407919)
Well it's not quite that simple because it's more complicated than those tools. Once you are in ex mode ':' though it uses the standard exit key.

As for if you stuck in insert mode, this is more akin to when you have text highlighted in a GUI editor, the shortcuts change because you're in a different mode.

Remember all editors have modes, vim is just a bit more in your face with them.

Re:Helping a Million Developers Exit Vim by ecshafer on Tuesday May 23, 2017 @10:03PM (#14407098)
You have to type :q to quit. : Is the command mode.
Re:Helping a Million Developers Exit Vim by appleiigs on Tuesday May 23, 2017 @10:20PM (#14407148)
Missing one step. <esc>:q
Re:Helping a Million Developers Exit Vim by dllthomas on Tuesday May 23, 2017 @11:28PM (#14407400)
Actually, the missing step is the <cr> at the end.

The <esc> at the beginning is only necessary if you've already got into insert mode. That said, it'll not do any harm.

Re:Helping a Million Developers Exit Vim by Houshalter on Tuesday May 23, 2017 @11:23PM (#14407381)
So intuitive.
Re:Helping a Million Developers Exit Vim by dllthomas on Tuesday May 23, 2017 @11:30PM (#14407408)
q is only quit when run as a command. In normal mode, it's record.
Re:Helping a Million Developers Exit Vim by equalunique on Tuesday May 23, 2017 @06:44PM (#14406048)
just run vimtutor
Re:Helping a Million Developers Exit Vim by YeGoblynQueenne on Tuesday May 23, 2017 @03:59PM (#14404712)
I worked on Z/OS mainframes for a couple of years and the point-and-shoot interface is indeed very efficient, once you've learned to use it.

The only thing I remember being really annoyed with was that there was no way (or no way I managed to find) to select all the text in a line in one go. The same was true for the editor (EZY). I kept pressing Ctrl + V to do a block-select and pasted all sorts of gibberish all over the place. Apparently, there are no line endings in text fields so it's not possible to get something like block-selection working.

But that was about the only thing that sucked from my point of view and I grew up with GUIs and touch-interfaces, like everyone else in my generation.

Re:Helping a Million Developers Exit Vim by michaelwsherman on Thursday May 25, 2017 @09:25PM (#14421470)
A bit late to the convo here, but one of the things that really impressed me about the Bloomberg (my employer) Terminal is how they manage this old user vs. new user problem well.

The terminal looks like this now: https://www2.le.ac.uk/departments/economics/images/bloomberg...

You can still do everything with the same keyboard shortcuts that have worked for 30+ years (pretty much everything with a number in front of it), and the layout of the screens generally don't change. But now everything on the mostly text-based view is clickable as well--everywhere you see a number you can click with a mouse.

Additional shortcuts are hidden behind menus, like "Settings" in the photo. But if you know the shortcut, no need to look at "Settings" first (which itself can be opened by typing 97 or clicking it).

Re:Helping a Million Developers Exit Vim by gnaritas on Tuesday May 23, 2017 @03:24PM (#14404369)
> My point is that just because something has a steep learning curve, that doesn't necessarily mean that it's a bad design.

It does if the app is aimed at companies with high turnover where said learning curve poses a continual problem for users.

Re:Helping a Million Developers Exit Vim by flukus on Tuesday May 23, 2017 @08:59PM (#14406817)
If there is high turn over then the length of the learning curve is more important than the shape of it. Let's say there are two apps each with an employee starting, one requires two full days of training to be 90% proficient, the other allows for an instant start with a more gradual learning curve.

After 30 days of employment the first has spent 28 days at 90% efficiency, the other has had 7 days at 60% efficiency, 7, days at 80% efficiency etc.

A gradual learning curve could be much worse for companies with a high turn over.

Re:Helping a Million Developers Exit Vim by gnaritas on Tuesday May 23, 2017 @09:54PM (#14407056)
Absolutely true.