9 ms·
The course is quite opinionated, in a good way: It is essential to be able to efficiently use a text editor, and doing all your writing / coding / text pro
by divbzero 4y ago
The course is quite opinionated, in a good way:
It is essential to be able to efficiently use a text editor, and doing
all your writing / coding / text processing in one of the common editors
available on all Unix systems is good practice. vi(1)/vim(1) and emacs(1)
are popular choices.
My college instructor encouraged the use of emacs in particular. I eventually migrated to vim but appreciated the instructor’s core message that text editor + CLI feels less magical than a full fledged IDE.
- weatherlite 4y agoAfter 10 years of writing software for a living I still don't get this. Why vim/emacs and not Intellij (for instance?). What do you mean magical - I want a powerful tool to help me edit code...
- nuclearnice1 4y agoOne difference might be the pedagogical vs the productive perspective. Perhaps the magic of a full fledged IDE is thought to obscure some of what is essential to the subject.
- weatherlite 4y agoI vaguely remember hearing something like that when I just started uni and they had us all working on Emacs. I can attest it added zero value to me...but that's just me.
- alpark3 4y agoI'm assuming the rationale is that for someone who's doing complex system-level stuff on unix/linux they should be able to change things deep in the weeds instead of pulling the entire code out to IntelliJ or an IDE.
- 533474 4y agoExperienced emacs users will beg to differ. It is as capable and arguably, more easily extensible. I must admit, it is not for everyone. As your anecdotal 10 years experience, I have the opposite opinion but I think it is fair to say that both, Graphical IDEs and emacs/vim, have their merits. Having transitioned from Graphical IDEs -> vim + plugins -> emacs + evil + configs + org-mode. I will never go back to my old self, I've never been as productive and free.
- scruple 4y agoSame trajectory here. I started with vi(m), used a handful of IDEs along the way, but vi(m) was (is*, if I'm in my terminal and just need to edit a config file or look at some data file, and sometimes even just for reading source, I default to using neovim) a mainstay, and I also eventually landed on Emacs with evil-mode. I still use an IDE frequently for graphical debugging. I find it's the best way to approach thorny problems, but I jump in and out of the IDE quickly. I don't hang around in it and write code, almost as a rule.
- ms4720 4y agoI just wish emacs used a better lisp or scheme
- waynesonfire 4y ago> I want a powerful tool to help me edit code... Then why would you use Intellij and not vim/emacs?
- emoII 4y agoPlease educate me - since I feel like writing Java without IntelliJ is like riding a bike without wheels, what does emacs/vim do better?
- HL33tibCe7 4y agoTbf I’m a heavy vim user but I’d still 100% use IntelliJ to write Java. It’s different to most other languages in its verbosity, and the fact that (imo) it doesn’t slot nicely into Unix conventions in general.
- pjmlp 4y agoOne would think Sun understood what UNIX was about.
- ninkendo 4y agoSun never really integrated Java into its UNIX environment very well, IMO. My memory of that time is spotty but I don’t recall any of their UNIX tools actually being written in it. (Likely because the startup time is awful, which is bad news for any CLI programs which need to execute and finish quickly.) The Java way of doing things and the UNIX way of doing things are worlds apart. UNIX prefers small executables that do simple tasks, mostly with text, tied together with scripts, where Java (at least at the time) preferred pure-Java libraries assembled into larger applications with graphical interfaces. Sun never seemed to square that circle, and Java felt like a second-class citizen on Solaris.
- pjmlp 4y agoForte IDE was written in Java, the IDE used for Solaris development. There was a research implementation to write Solaris drivers in Java. https://dl.acm.org/doi/10.1145/1215995.1215998 https://dl.acm.org/doi/10.1145/1215995.1215998 The Sun network computing thin clients had plenty of Java into them. The classical UNIX does one thing well myth was hardly followed by all major UNIX vendors.
- misnome 4y agoSooner or later, in many lines of programming, you are going to find yourself remoted in to a server somewhere that only has the basic tools. That’s probably not the best time to try to learn an editor.
- anta40 4y agoPerhaps "magical" = increased complexity, like you can't just build a standalone source file. You have to setup a project first, configure the required build XML, add your code files to that project, etc etc then finally compile it. with editors like vim/emacs, it's much simpler, like typing `vim test.c` and `gcc test.c -o test`. OK it's simpler, assuming you already have the toolchain installed properly. In general it's true, a few lines of apt-get/homebrew/etc get the job done. BTW, I have nothing against IDE. As a Android developer, I won't ditch Android Studio for any editor. But for quickly navigating or building non Java codes, I'm happy with vim + Makefile/scons/etc. Or VSCode, if I'm not in the mood of running full featured IDE.
- chrismarlow9 4y agoFor coding in your normal day to day? Sure use intellij. For trying to debug some deep level production only issue where every second of downtime means big money lost? You'll want to know vim/emacs.. Edit: I'll also add that once you learn vim or emacs you'll be far more efficient manipulating text. Sure you could add the bindings to intellij, but I think that's admitting the point is valid. At a point it becomes like a real time meta language where you edit lines the way you would algorithmically.
- weatherlite 4y agoYeah I can see that's possible sure. Though if I have access to the code I just use Github but sometimes I guess that's not possible. Still quite rare though no?
- chrismarlow9 4y agoIn some places it's rare, in some places it's a daily occurrence, and sure you should work towards stability, but the reality is you have to fix this thing now with what you have. There's also the fact that even if it's rare I still have to know it. And if you don't use it often you will forget it. And then why learn two tools if I can do everything with 1? With intellij I can only do day to day, with vim I can do mission critical and day to day. I'd also argue that a seasoned vim user can get things done incredibly faster than a seasoned intellij user.
- treeman79 4y agoVim mode in intelij rocks
- monkey26 4y agoYeah, I'm torn on this. I wrote C in emacs for 20 years, and still do. But when I write anything else, particularly javascript, java and rust, give me intellij ide's...
- weatherlite 4y agoWhy not Clion for C?
- fijiaarone 4y agoBecause it teaches you that compile and run aren’t just buttons on a window, it’s taking one or more files (streams of text == data) and translating them into other files.
- deleted 4y ago[deleted]
- sqqqqrly 4y agoWho cares about java in this context?
- ddacunha 4y agoQuite simply, I may have to login into a server on a high pressure time sensitive environment, think downtime. I want to maintain my vim skills at a level that allow me to focus on the issue. It's also why I use bash and GNU coreutils on my MacBook Pro.
- nverno 4y agoSame, the professor used Emacs in only programming class I took in college. Seeing what he could do with Emacs left as much of an impression on me as the rest of the material, and I've never considered another editor seriously since.
- gauddasa 4y agoTo literally add my 2 cents: I use Geany for all code, whatever the language.
- casey2 4y agoI'll just go ahead and shill acme: If you want to learn the Unix programming environment, vi and emacs are good in that they will work mostly as expected on any OS, but that's because they don't assume that you will use any user level applications. On acme, it's assumed you that have a shell, plumber and a whole load of commands and scripts ready to help out (as well as a mouse). In the process of learning Unix you learn acme for free and vice versa.
- Koshkin 4y agoI don’t know man… Acme requires a GUI (and a mouse), has been imported from Plan 9 (Unix does not have a notion of a “plumber”), and its UI is pretty much a copy of Oberon’s. The way it look to me, this is as far removed from whatever Unix is all about as it gets…