Engelbart's Violin (2012)
loper-os.org
loper-os.org
No, but they do see things like "House MD", "ER","The practice" etc... , which resembles the actual medical or legal profession as much as movie "hacking" resembles computer programming.
Besides, I've never known a child to actually see "adult" programming - unless one of your parents is working from home, most "adult" programming happens in a corporate setting. In the same way I've never known a child to see "adult" psychology, or other professions which are practiced in closed environments.
"Virtually every profession has a concept of professional equipment"
True, but so do programmers. The idea that professional equipment has to be hardware (or for that matter a keyboard) is rather false.
Professional writers use the same hardware as amateur writers - pen, paper, computer . But they might have better word processing software.
And I'm not sure about others, but the hardware I use for programming is much different then what an amateur computer user might have- a lot more memory (to run those IDEs, databases, memory cache etc...) , two or more screens , and software that are unlikely to be used by non professionals (Jetbrains IDE, Beyond compare, virtual machines) etc..
Also - there are keyboards designed for faster typing, from my experience they just not very useful (programming rarely requires fast typing in my experience, better googling would be a thousand times more useful).
The demarcation is useful. I can try things quickly. But turning my spaghetti code into their good code is a point where all of my conceptual errors and missed corner cases can be wrung out, and they know how to maintain stuff for 10 years without going batty.
This is actually quite similar for music. A musician can't perform 40 hours a week, the process of playing is only a small part of being a musician. Unlike programmers, musicians typically only get paid for the time time they are performing, while programmers get paid for the time spent at work. This means that programmers really have a much better deal than musicians in general.
The advantage for musicians is that they also get recognition as individuals for their work, while the employers take most of that for programmers. That said, musicians can do the same deal if they choose to work as studio musicians or member of a symphonic orchestra or similar. Then they lose autonomy, but get more predictable pay.
I thought the same thing until I learned Vim.
If it were just typing, that'd be different. But editing is the real point. Being able to make changes almost as fast as I think them up has revolutionized my ability to get work done. It's not just that it speeds me up, it keeps me in flow, so I just get it done instead of getting bored and frustrated.
What I describe is at least true when you solve relatively complex problems, and is a relative experienced programmer that take most high level decisions about the code yourself. If you have a very junior position, where most decisions are made for you by others, and you work in programming languages and framework that require a lot of boilerplate, then what I said will be less true. Then using the right editor may matter at least a bit. Even in that case I doubt it is a major factor.
On the other hand, using the right programming languages, libraries and tools may boost you productivity quite a lot, and have much larger impact than typing speed or input method.
My doctor and plumber are professionals. They receive no recognition, and I don't even remember their names.
If a musician wants name recognition, then they would call themselves an "artist" and put up with all of the risks involved.
"Artist" and "professional" involve different skills too. For me to do "side man" work requires fairly extensive classical training and skills such as sight-reading, even though I play jazz. Many "artists" never develop those skills.
Perhaps the route for those who want to be "artists" in programming is academia or as a technical founder of a startup.
Possibly I should have emphasized the specific claim that junky input devices (e.g. QWERTY keyboard) are merely one symptom of the deprofessionalization of computer programming - rather than the 'alpha and omega' of it.
And, in this case, not only of computer programming. The fact that millions of people who make their living entering natural language text do so with the abominable limb destroyer known as QWERTY is an atrocity. Quite like the case of the radium watch dials and the labourers who went to an early grave making them. Or those who worked in the match factories, before them.
Why do you think Python etc. do not fill the hole HyperCard has left? Is it because of their ever-so-slight price of admission (which tends to push non-professional users away, as compared to the comfortable familiarity of a GUI)?
And does anyone alive know the above aggregate the way a kid can know Hypercard?
The 'master of all you survey' feeling of a kid on a raw Commodore-64 (or, to a lesser extent, Hypercard) - matters. If you've never experienced it, you are a blind man.
Asking the question re: Python suggests precisely this kind of blindness.
I confess that I do not know how to explain sight to a blind man. Perhaps someone else here is up to the task.
That is how I see Linux/Unix, and its tools - vim/emacs, the shell, etc. It doesn't have to be hardware, after all.
Hardware can be differentiated: HP Z series work station half a dozen large monitors and a mechanical switch keyboard will feel much nicer than a frankenbox from the local supermarket. I take the OAs point that it is still basically a 'glass teletype'.
That is a piece of professional equipment for a developer, and it cost about 4 times what a decent general purpose laptop does. But I could develop on any old box, and I like that.
Is faster typing really the solution to the problem of wanting to professionalize computer programming? And is that even a problem?
I play the double bass. The problem that faster "entry" solves for musical instruments is wanting to express complex ideas in real time.
I guess the real 'instrument upgrade' analogy in this case would be upgrading the human mind, or perhaps a well tuned programming language.
It's the inability to blend typing with other kinds of media I generate - easy references to diagrams, notes, reference papers, etc - that is my limiting factor, that is stopping my work for moving closer to my ideal of what a professional solution in software should look like.
I want some web-esque way to blend the several kinds of artifacts I make as a programmer in an easy to generate manner from a system that understands I'll be generating all these kinds of things, and that they're all fundamentally different expressions of the same idea.
That way I can blend drawing and doodling doing what they're they're good at with text entry with what it's good at, and create the deeper and more meaningful references that underscore the idea (or composition of ideas) I'm attempting, and not have several stand-alone pieces that don't express their relationships and interdependencies correctly.
Telling me how to play the violin faster doesn't help me conduct a symphony of ideas, and shows that the people proffering answers don't even understand what my problem actually is. (Hint: I'm rarely the one playing any particular instrument; rather, I'm trying to explain how I'll bring all the instruments to bear together on a single piece.)
Also, back when people had to book computer time 1h per week, they had to think the thing through before asking the compiler to check and run the code. I'm pretty sure they didn't want to waste their time slot on a misplaced comma.
The point is that software is often designed towards the average or median home user (i.e., mobile), not designed towards the professional software developer or the professional & expert users. Or, we conflate power with needing to be confusing(git, bash).
Probably the only piece of software I've heavily used that I can comfortably say is designed for professionals is emacs, and it's got well-known issues early on the learning curve. Arguably 30 years of modification in a system designed for modification have moved us to that happy place.
For example, I'd love to be more productive and use a WYSISYM system for my documentation, but the median person in the company that I work for can't get their head past a bog standard word processor, so won't be able to further develop what I write.
Some companies work on a higher plane, but most companies contain median programmers with median management, and need everyone to work at that level.
I refer to that as the law of large numbers for work. Everything regresses to the mean. As someone who strives regularly to push beyond the mean, it's extremely frustrating.
Perhaps not for desktop programming. But why am I only allowed to do meaningful work in an upright posture at a desk? One-handed development on a train would be pretty awesome.
Unfortunately, I haven't seen anything remotely close to this.
I think both you and the article are making a mistake here. If you listen closely to the 1968 demo and, especially, its 1969 follow-up (available on archive.org) it's clear that Engelbart was not using the chorded keyboard for text input but for command input.
You should think of NLS text editor as a vi without cursor addressing: you would enter the command to execute with the chorded keyboard then select the target character/word/sentence with the mouse cursor.
You can follow the evolution of this idea throughout history. Many of Engelbart's "employees" went to work for Xerox Labs, the Xerox Alto used the keyset to give commands just like Engelbart's NLS.
The keyset was removed from Xerox Star after it proved to hard to learn and replaced with an extra block of keys on the left of the keyboard [2] with the most used commands.
When apple copied from xerox they got rid of this extra block (probably in the name of ease of use) but someone kept the idea alive by inventing the ctrl-zxcv for undo, cut, copy, paste that are conveniently placed all on the left side of the keyboard, so that you can use them while your other hand is on the mouse, like Engelbart always intended.
On this page [1] you can see some of the command given using a combination of the keyset (the chorded keyboard) and the mouse, it is not exhaustive however.
[1] http://chm.cim3.net/cgi-bin/wiki.pl?NlsTechnical/KeysetMap
[2] http://www.digibarn.com/friends/curbow/star/keyboard/keyboar...
A while back I played around with some old Windows 3.0 software based on Engelbart's Augment. The modern tool closest in spirit to it is probably Emacs org-mode with evil-mode.
It was designed for both, and certainly Engelbart himself could and did type with it.
Context menus (originally from Smalltalk) are another substitute for the expanded command set of NLS' chording-augmented mouse.
The advantage of having a chord keyboard for typing is that you can avoid the mouse-to-keyboard-to-mouse hand-movements that are so annoying when you can only type with a two-handed keyboard. However a one-handed chord keyboard is even slower than two-handed QWERTY when it comes to typing, all else being equal, and there is obviously the burden of having to learn it. For programmers and many other people, then, a better setup is probably a two-hand keyboard that lets you control a mouse pointer with minimal hand movement: and in fact we now have these, in the form of pointing-stick keyboards and keyboards with a trackpad in relatively easy reach of the user's thumbs http://www.loper-os.org/?p=861&cpage=1#comment-16138 . The mystery is why why people are still selling and buying expensive keyboards without either.
And for who may interested in the idea behind chording keyboard, Bill Buxton wrote an informative chapter in his book http://billbuxton.com/input06.ChordKeyboards.pdf