6 ms·
Paradox of the perfect code editor
- smitty1e 5y agoAll this small thinking. . . The perfect code editor is speech-to-text plus AI, with a thick Vaporwarium™ layer that listens to the executive's stream of consciousness and spits out performant, sticky, yet bug-free apps in near real-time.
- sparsely 5y ago> Or when I find a really nice Node.js library that Just Works™. This happens to me all the time. Every day really, whenever I type `npm install` I'm just delighted by the results. Those node libraries just make my programming experience so smooth and carefree, just like Apple products.
- tgv 5y agoThis morning I did just that, and was greeted by a nasty error. The solution turned it into an incompatibility between requirements. Not that impressed.
- bryanrasmussen 5y ago>whenever I type `npm install` I'm just delighted by the results. best definition of luck yet encountered.
- buttersbrian 5y agoOnce you know your dependency, please use `npm ci`. It is your friend (if you aren't already doing so)
- tigerlily 5y agoI find myself reaching for the most low-fi editing tools. I can never get VSCode to look right, so I just use notepad++ and the pain goes away.
- rightbyte 5y agoNotepad++ is so good. Straight Win32 calls and no BS. Just about the right amount of features. I wish they had a official Linux release ...
- thrower123 5y agoThere are, or used to be, a lot of decent Scintilla-based editors. Geany isn't a bad alternative to notepad++ on linux
- d3nj4l 5y agoEvery DE has a code editor these days, GNOME has geany and KDE has Kate, and so on. Incidentally, marcan of asahi linux fame primarily uses Kate in his streams, and from what I've seen it's perfectly functional.
- mellavora 5y agoI once heard about something called vim
- mixmastamyk 5y agoGeany is gtk, has no other connection to gnome.
- d3nj4l 5y agoMy bad. I mixed it up with gedit, which is the thing that comes bundled with GNOME.
- dotancohen 5y agoLet me know what you'd do in Notepad++ that Kate doesn't already do. I'll try to find it or file a feature request. Kate is absolutely terrific, it sits perfectly between VIM in a terminal and JetBrains for an entire project, whether I'm editing code, personal notes, or prose.
- delian66 5y ago
- luxurytent 5y agoMy "perfect" code editor is neovim with maybe a dozen or so plugins, primarily focused linting my code, less so on major interface changes (e.g. NERDTree) Someone else's perfect code editor will be the flip side of that: an easy to use (perhaps via mouse) file tree, autocomplete with snippets, virtual text, etc. Someone else will be in between. You get the point, each option is not more or less effective as it comes down to the individual.
- TheRealNGenius 5y agoThe dilemma sounds convincing, since the author seems to suggest that there are two possibilities. But they fail to realize that the one where you spend 0% of time in there is no longer a code editor.
- contravariant 5y agoWell neither is the 100% option. At that point it's just a nice operating system lacking a decent editor.
- silvester23 5y agoI think it's not a dilemma at all because the two goals are not even mutually exclusive: - You want to spend 100% of your coding time in the editor - You want your coding time to make up as little as possible (ideally 0%) of your total work time Given that, the perfect code editor is obviously one that makes coding so easy and quick that it hardly takes any time and one that you do not have to leave for external information whenever you do use it.
- rgoulter 5y agoThe idea of "a perfect code editor which could instantly provide the solution you want" reminds me of this commitstrip comic: https://twitter.com/commitstrip/status/885146229281366017 https://twitter.com/commitstrip/status/885146229281366017 One person explains in the future, there'll be no need for programmers since AI will be able to generate the code which fulfills the program spec; the programmer replies "and what would you call someone who instructs the computer what program to write?".
- anchpop 5y agoIt’s conceivable that in the future, coding will be so easy it won’t exist as a specialized job anymore. Consider how the web dev career of making websites for small local businesses has been substantially replaced by squarespace, which can be thought of as a tool for which the input is a very high level specification and the output is html/css/js/backend code. And the specification is high level enough that you can ask your mom to use it - it won’t shock me if we see this happen to more industries
- JohnAaronNelson 5y agoSpeaking as a web developer, the need seems to be increasing despite the plethora of available no-code tools. Meanwhile, no-code websites seem to be locking people out of their walled gardens evermore (Facebook Groups is horrid)
- drunkpotato 5y agoIt's possible, but I'm skeptical, because the hard part of coding isn't "typing words into a text editor/IDE." It's thinking algorithmically in enough detail, with edge cases, fallbacks, error handling, etc, that most people struggle with. Squarespace is actually a good example; someone still has to write all the nifty widgets and figure out how they'll work together for a pleasing experience. If putting an attractive visual layer on top of code was all it took, then Smalltalk would have won decades ago and everyone would program. The main barrier to "no code" and "everyone can program" is still the mode of thought, not the mode of representation. This has parallels in artificial intelligence, where as soon as a problem is solvable by a computer, solving the problem no longer counts as "AI" (chess, natural language processing, even sentiment analysis!). Similarly, as soon as a problem is made easy and accessible to non-algorithmic thinks, programmer move on to the next thing that requires that mode of thought. Maybe we'll exhaust the problem space of potential programs someday, but I don't see any evidence for it.
- islon 5y agoIf we could create a editor so good that it can generate all you app in a couple minutes, it means the "editor" is a strong AI that can take vague, subjective descriptions an generate a working, correct program (like a programmer would do). If that's the case you don't need programmers anymore: just put the customer in front of the AI and let them design the software. But them if you have such AI, every job would be obsolete.
- stavros 5y agoThe first option assumes you want to do your job easily. The latter assumes you want to solve all your problems. I'd love to have the former editor when coding as a hobby (where writing the code is fun), and the latter when coding for work (where solving the problem gets me paid, no matter how I solve it).
- a_c 5y agoThe perfect editor is when your editing happens within the runtime environment, giving you ultimate feedback speed. Common lisp's REPL come closest to mind. Erlang's hot swapping is the dopplerganger in deployment world. Bret Victor's inventing by principle is a good analogue to UI programming imo. Imagine editing CSS in browser's inspector, and have the change reflected back to source code. No more switching between editor(IDE) and runtime(browser). I heard smalltalk provide similar development experience, but I had no experience on it yet
- gefhfff 5y agoIs this even possible with languages like Rust and C?
- ximeng 5y agoZig is working on hot reloading, needs compiler and linker level support. https://github.com/ziglang/zig/issues/68 https://github.com/ziglang/zig/issues/68 That issue has some links to people doing it in C/C++.
- yissp 5y agoQuirky as it is, I believe Terry Davis's TempleOS actually allowes REPL-style development in its C dialect (HolyC). I'm not sure how exactly it works, but it's able to compile and execute statements as you type them in.
- thurn 5y agoMun is a subset of Rust syntax which supports hot-reloading, I think that could be a good direction to enable this sort of thing for the most frequently-changing business logic.
- maccard 5y agoI've used Live Plus Plus [0] succesfully for a few years in C++. It's great. [0] https://liveplusplus.tech/ https://liveplusplus.tech/
- nextaccountic 5y ago
- h2odragon 5y ago"perfect" will vary from person to person, and depending on the job to be done. not all "editing code" is equal. Emacs can be found all over the proposed spectrum here, because there's so many people have made it their perfect editor for their current circumstances, and shared the tweaks that made it so for them. I'm sure the other "favorite editors" have similar, i'm just not speaking of them because I'm ignorant of how often they nail "perfect", myself. As usual the "paradox" is in how we look at it, not the cold realities.
- draw_down 5y ago> "perfect" will vary from person to person, and depending on the job to be done. That actually isn’t relevant here. This is a thought experiment about which heuristic should be used to determine the perfect editor. How to think about what the perfect editor even is. Maybe you grip your knife one way and I another, but we may both agree that the perfect knife is the one that gets our cutting done the most quickly, or with the most precision, etc
- varispeed 5y agoI wish someone figured out how to reduce latency from keypress to screen. Even the JetBrains with their "zero latency" editor is lagging like mad. How come old underpowered computers worked perfectly whereas new beefy machines can't do such a task?
- Chris2048 5y agoI don't really understand the semantic games played here. If you want to interrogate the issue, you need strong upfront definitions: what is a code editor? I'd assume the thing that edits the code, but the problem is created by shifting the scope to "everything related to software development". That's either out-of-scope for the problem, or you need to define the problem better. There are also a few dubious distinctions e.g. what are the boundaries of the "editor" - you could create a singe app that spawned two windows, one for docs the other for code; or use two different apps with exactly the same UI - from UX perspective the technical distinctions aren't relevant.
- t43562 5y agoMy perfect (hypothetical) editor doesn't try to keep you "in" but it interacts with other tools supremely well. I can use it to find text, to mark or select it and then apply a great variety of tools to it. I might select text in another application and then find myself live-editing it in my editor so that I can always use my favorite tool no matter what the application might be. It also expects interoperability from other tools - so there's no file load dialog or project files view because all you do is load up your operating system's file manager and drag and drop. It, with other components, build up into what one might call an IDE and it's up to me to construct my custom tool from all the bits including the editor.
- maydup-nem 5y agowow, this is stupid i don't think i even want to elaborate