10 ms·
I prefer using tools like Linux, Emacs and the terminal because those tools are not prescriptive. Instead, they are flexible. I can mold them to my needs. That
by teodorlu 6y ago
I prefer using tools like Linux, Emacs and the terminal because those tools are not prescriptive. Instead, they are flexible. I can mold them to my needs. That flexibility brings a cost of learning, which I'm willing to spend.
On the other hand, I like using my Remarkable because it's just for handwritten notes and annotated documents.
I wouldn't say that prescriptive is better than descriptive, or the opposite. As much as dislike the phrase, it depends. I want my fundamental tools to be flexible. But I don't want to waste all my time configuring stuff.
- npsimons 6y agoThing is, the learning curve may be steep, but it's incredibly valuable, time very well spent. I learned VI on some UNIX tools my father installed on our DOS computer in the 90's. Then I learned Emacs in 2000 and have been tweaking my setup ever since. Sure, it's not perfect, every few years when I have some down time I will spend a day fiddling with things heretofore unlearned, but the general setup has worked well (and gotten better) for two decades. How many other editors have come and gone in that time?
- coldtea 6y ago>Thing is, the learning curve may be steep, but it's incredibly valuable, time very well spent. Is it? Or is it mostly the IKEA effect ("I spent time on this, so it must be valuable") and busywork? Was anybody's choice of editor really a major point in their developer progress and productivity?
- passivate 6y agoFor me, I do regret the countless hours I wasted learning vi. Back when I was a C++ developer, editing text was a tiny, minuscule portion of what I did. The overwhelming vast majority of time was spent reading, navigating, debugging, discussing, and explaining code. When I did switch to a mainstream IDE (Visual Studio + Visual Assist X), I was far far more productive in all areas that mattered to me. And so, even if I was born an expert vi user, I don't think I would have gotten any boost in productivity as a developer. Just my opinion though! :) (Yes, I know how you can get vi editing in VS. I purchased a copy of ViEmu.)
- nitrogen 6y agoWas anybody's choice of editor really a major point in their developer progress and productivity? Having used multiple IDEs and editors, from DOS edit/qbasic to notepad.exe, RHIDE from DJGPP, Visual Studio, Xemacs (briefly), Vim, Eclipse, IntelliJ, probably others... Yes, some of those bring unique abilities that the others lack, that have an effect on the way I write software. Had I just picked one editor or IDE and never used any others, I would be much less accomplished. Vim, for example, is for me incredibly rapid at rearranging and replacing words/lines/regions of text compared to the others.
- coldtea 6y ago>Vim, for example, is for me incredibly rapid at rearranging and replacing words/lines/regions of text compared to the others. Sure, but how much of that clerical work is relevant to programming, where a rate of say 100 lines per day is a major achievement, and it's usually much less? Even if one needs to delete/copy/re-arrange 1000 lines in order to get to those 100 (and usually it's more like 30-50 per day than 100 anyway), it's still a tiny part of the time. In any case, I've seen great coders, from Brian Kernighan and Bill Joy, to Linus, Carmack, and Persson using whatever from Vi and Emacs to Visual Studio and Eclipse, and still getting shit done...
- athrowaway3z 6y agoThe numbers aren't helping. 100 lines of what? It all boils down to 'it depends'. In my personal experience, before i started using spacemacs i would postpone re-arranging code when i was busy coding something useful. Pushing all the cost into an afternoon of _just_ rearranging code. Besides not having a very 'productive' afternoon, the costs would linger because i need to update my mental map of all the stuff that moved around. Now, most rearranging is a couple of key strokes away. I'm not sure what i would do in another IDE. I would probably do the rearanging as soon as required, because I've learned my lesson. But moving my hand to the mouse and clicking multiple buttons while typing new file names and dragging my mouse over pieces does take a lot of flow out of the session.
- 6y ago
- npsimons 6y ago> Was anybody's choice of editor really a major point in their developer progress and productivity? I believe you are picking a point that wasn't my main one. I may not have made it clear, but in my view, I'm going to be using a tool (in this case, an editor), so if I can pick one that is powerful and will be around, it's a net win to learn it. I'm going to learn it anyway (through use). Emacs is insanely powerful and it's not going anywhere, and I'm fairly certain it was a major point in my progress and productivity, and it continues to be.
- slx26 6y agoWell, you can also have both. Most tools should be prescriptive unless you have to go really deep and do your own. If you have the expertise, it might be ok for you to choose the rules of what you are doing. If you are not, being guided it's much better. I agree with the general idea of the article, but I also think it would have been interesting to discuss more in depth where each approach can be relevant. Making things accessible doesn't only require knowledge and features, but years of insight and clarity of thought. You want to benefit from that while you are new, because it will make your life much easier until you reach the point where you really want to choose on your own.
- swiley 6y ago> Most tools should be prescriptive unless you have to go really deep and do your own. Absolutely not. Compare most WiFi connection UIs to WPA_supplicant. On windows: 'connection failed' On wpa_supplicant: 'associating... atempting authentication... getting dhcpc lease... dhcp timed out' One says "sorry computer doesn't work" and the other tells you what you need to deal with the problem. Stop infantilising users, it's disrespectful and counter productive.
- bosie 6y ago> Stop infantilising users, it's disrespectful and counter productive. that goes both ways. if you show the wpa_supplicant message, my mother wouldn't even understand if she is connected or not. nor would she gain anything by that information. you just came up with the other side of the same coin of terrible UX.
- rapind 6y agoThis is true and yet I wonder how much more efficient it would be when they call me for help. “It said a bunch of gobbledygook that ended with dhcp timeout”, or “it just says connection failed”.
- bosie 6y agoor have some sort of a middle ground. 'not connected. more info: blah #32893289327". Microsoft did something similar with an error code that you could google. that was super useful for debugging. the error message was in laymen terms though.
- devmunchies 6y ago> Linux, Emacs you proved the article's point with these examples. If you want to write software that can become a sustainable business, don't do what linux and emacs did. It only serves power users and other businesses who will sell services. I also prefer descriptive tools (I hate rails/django), but I acknowledge that descriptive is typically worse UX unless the user is a power user.
- athrowaway3z 6y agoNo. The article overgeneralized when it conflated the term 'software' with 'product a business can package and sell'.
- devmunchies 6y agoreplace "product a business can package and sell" with "serves the most users" and the point still stands. Serving the most users (ie. NOT power users) is usually the best economic decision as well.
- TeMPOraL 6y agoServing or entrapping them? The end goal of any piece of software that wants to deliver actual value is to turn its user into a power user. Power users aren't born, they're made - made through repetitive use. Software that doesn't give a path for the user to grow and become more proficient is software that literally wastes their limited time they have on this planet. As usual, what's the best economic decision and what's actually good are aligned here only so much that you won't get laughed out of the room for proposing they're the same. But not much more than that.
- devmunchies 6y ago> made through repetitive use now who's entrapping who? you think its practical for every piece of software to be a massive time sink? > software that literally wastes their limited time they have on this planet. There's a saying "linux is only free if you don't value your time", now you're saying that software that takes MORE time commitment saves you time? C'mon, take off your engineering hat for a second.
- kqr 6y agoBut the examples you mention (Linux, Emacs, terminal emulator) are, in a sense, not end-user applications. They're platforms that run the actual end-user application. The actual programs you run in the terminal are probably more prescriptive (embedded in the "do one thing and do it well" philosophy); the same thing goes for the functionality you use in Emacs. You want libraries and platforms to be descriptive, and end-user functionality to be prescriptive. They're different types of software.