News for hackers. Stuff that matters.
Re:How to Exit Vim by joeraut on Wednesday January 08, 2020 @06:52AM (#21990564)
One of my Computer Science lecturers had a rule: use Vim for all development for his class whilst on campus, and if caught using any other editor/IDE – or committing any artifacts showing evidence of such – we would lose several percentage points from our final mark for his class.

Harsh? Perhaps. But I can’t thank that lecturer enough for that rule. He converted a mostly IDE-wielding class into one that actually appreciated Vim, and most of us still use it or its key bindings.

Edit: this was in 2018, when VS Code, etc. were already popular.

Re:How to Exit Vim by ChrisRR on Wednesday January 08, 2020 @07:50AM (#21990906)
That's stupid and elitist. There's no reason to force students to go against IDEs that they're already used to, but also the general method of navigating around a computer which they're probably used to from MS Word etc.
Re:How to Exit Vim by OkGoDoIt on Wednesday January 08, 2020 @12:56PM (#21993914)
It’s a college class in which students are supposed to learn something new, that seems like a perfect example of a situation where you should be forced to do something outside your comfort zone.

I don’t interpret that as the college professor saying this is actually the best way to code, just that forcing students to struggle through it is a learning experience.

Re:How to Exit Vim by dragonwriter on Wednesday January 08, 2020 @02:12PM (#21994694)
> It’s a college class in which students are supposed to learn something new

Unless the central thrust of the course is supposed to be the mechanics of a particular dated editor, the restriction described seems to be a distraction from rather than an aid to what the students are supposed to be learning.

It doesn't make any more sense than a social science course where the deliverables for most assignments are essays mandating WordPerfect for DOS. Sure, you'll learn something you might not otherwise, but it's a distraction from what you came to the course to learn.

Re:How to Exit Vim by Seirdy on Wednesday January 08, 2020 @11:15PM (#21998516)
> particular dated editor

I wonder how you feel about age discrimination. Old != bad.

I started using Vim when I was 14; I was the only one in the class who wasn't using an IDE. Vim (perhaps combined with a language server if you're okay with the complexity) runs circles around bloated IDEs like IntelliJ/VSCode. Unix combined with a tiling WM is the best IDE in existence.

The professor in question is likely doing the students a service by showing them the advantages of minimalism and function-over-form over the trend of bundling an OS with every "app". Many students today only feel comfortable using software that saturates their synapses with colors and animations; having to use Vim for a semester forces the good ones to realize that maybe, just maybe, function should come before form. Maybe 10k lines of C or POSIX shell solves a problem better than a VC-backed Electron app.

To continue your analogy, WordPerfect and DOS, unlike Vim, aren't better than today's tools. What would be an improvement is LaTeX/BibTeX for writing essays. Once I realized how much work was automatically done for me--from Chicago-style footnotes/endnotes and auto-generated ToC from headings, the time I spent formatting my papers dropped to zero. I would absolutely incentivize students to use these tools over "modern", bloated word processors.

Re:How to Exit Vim by saagarjha on Thursday January 09, 2020 @05:44AM (#22000085)
Cool, I use nano. Should I be penalized?
Re:How to Exit Vim by Seirdy on Thursday January 09, 2020 @03:16PM (#22005173)
Minimalism for the sake of minimalism isn't what I was arguing for. If it were, I'd say that every paper and program should be written with `ed`, the standard text editor [0].

What I was trying to say was that if minimal solutions run circles around bloated ones thousands of times their size, and when it takes a startup and two funding rounds to develop something that does exactly what tools did three decades ago less efficiently, then maybe Braithwaite was on to something:

> “It’s a curious thing about our industry: not only do we not learn from our mistakes, we also don’t learn from our successes.” -- Keith Braithwaite

[0]: https://www.gnu.org/fun/jokes/ed-msg.html

Re:How to Exit Vim by Aperocky on Wednesday January 08, 2020 @04:43PM (#21996116)
Modal editor are not dated. You’re saying this as if the command line itself is dated. It’s not, casual user can go ahead and use Windows or Mac, but shell and she’ll editors will not in the foreseeable future be dated.
Re:How to Exit Vim by chipotle_coyote on Wednesday January 08, 2020 @08:08PM (#21997531)
I suspect the rationale is that, depending on the language you're using, some IDEs "help" with coding to the point where they're correcting your mistakes and even writing parts of your code for you. This is pretty much a selling point for everything JetBrains makes, and arguably even Visual Studio Code rubs against the edge of that if you're using a language that's well-supported by IntelliSense. The central thrust of the course is presumably how to write code yourself, and the case could be made that learning with an editor designed to routinely save you from yourself isn't going to be as good as an editor which, well, isn't.

(This is setting aside the argument as to whether Vim is a "dated" editor. Vim is an old editor, to be sure, but forget WordPerfect -- it's not as old as Microsoft Word is!)

Re:How to Exit Vim by Faark on Wednesday January 08, 2020 @09:00PM (#21997826)
I still prefer what they made us do for the test: Write the program on paper.
Re:How to Exit Vim by stolen_biscuit on Wednesday January 08, 2020 @06:11PM (#21996802)
Vim is far from dated, and comparing Vim to wordstar shows how little you understand it
Re:How to Exit Vim by RandomException on Wednesday January 08, 2020 @08:08AM (#21991049)
I've found myself learning stuff better when there is no IDE correcting me all the time and auto-generating stuff out of thin air. IDEs are awesome once you know what you're doing but I do also see the reasoning for forcing to use an ancient (and still quite powerful) editor.

Disclaimer: I do most of my coding in Vim but use IDEs every once and a while.

Re:How to Exit Vim by dorfsmay on Wednesday January 08, 2020 @09:44AM (#21991846)
If this was at work, or if this was for every class at a given university, I'd agree with you. But, in a place where you go to be challenged intellectually and open your mind, why not? This would be perfect if the same professor forces everybody to use a specific IDE in a different class...
Re:How to Exit Vim by na85 on Wednesday January 08, 2020 @08:57AM (#21991427)
I disagree completely. When I took CS036 in first year engineering, it was a C++ course that used Visual Studio and while I received a good grade on that course, at the end of it I did not know how to invoke the compiler from the command line. I only knew how to build software from the drop down menu in VS2004 or whatever version it was.

IDEs are a crutch.

Re:How to Exit Vim by bradstewart on Wednesday January 08, 2020 @02:40PM (#21994948)
Sure, but invoking a compiler from a command line is something you can easily pick up from a coworker or an internet tutorial.

The primary focus of an intro engineering course is (usually) about the theory and structure of computing, along with general techniques for writing code.

Learning about various build tools distracts from that focus.

EDIT: Also, you seem to be implying (apologies if I'm wrong) that invoking a compiler from a command line is somehow "better" than using IDE. Why?

Re:How to Exit Vim by Skunkleton on Wednesday January 08, 2020 @06:50PM (#21997054)
My intro course used BlueJ, which is (was?) some sort of dumbed down Java IDE specifically for students. The thought was that dealing with all of the crap surrounding software development, like make systems, editors, compiler flags, etc was a distraction from learning basic programming constructs. Looking back I agree completely. As a new programmer, things like compiler flags are pretty much black magic. You don't really learn anything by reciting magic spells.

Learning development tools like the CLI, IDEs, debuggers, linters, et. al. should be required for a CS degree. I don't think an intro course is the right setting.

Re:How to Exit Vim by gbacon on Wednesday January 08, 2020 @12:29PM (#21993621)
I’ve seen Java developers completely lost with no idea where to start debugging an installation in a lab environment because they had no IDE, JDK only. Sure, you might argue that it’s an unlikely scenario, but never say never. CS is one of many fields where having a basic understanding of how things work at least a couple of layers of abstraction down is a good thing, and at least could save potential embarrassment.
Re:How to Exit Vim by filmgirlcw on Wednesday January 08, 2020 @02:10PM (#21994672)
You're not wrong, but I don't see how forcing people to use vim solves this problem. If anything, you risk having a whole class of students who can only do things the vim way. I'll grant you that you're much more likely in a lab environment to have access to a POSIX system so you can use vi or whatever, but you could also wind up in a shop that dictates its devs use a specific IDE.

I'm in full-agreement that it's a good thing to have a basic understanding of how stuff works, but I'm not sure how enforcing vim over VSCode or Sublime or [insert your favorite editor] necessarily teaches that. It teaches adherence to vim.

I'm of the opinion that programming tools are very personal -- that's why there are so many debates and that's why we'll never have universal agreement. I know my way around the command line and I'll suffer through vim if I have to (it's fine. It's just not my editor of choice), but if I don't have my dotfiles or configurations, I'm not going to be very productive either.

I'm fine with saying, "don't use an IDE in my class, use a text editor" -- but I find it draconian and ridiculous to insist upon a specific text editor.

Re:How to Exit Vim by gbacon on Monday January 13, 2020 @12:11PM (#22036346)
I should have been clear that I lean toward your side of the issue in that a blanket policy for the entire term does seem a bit extreme but completely without value. If I were pushed to defend the instructor’s policy of a particular editor, vi is nearly certain to be on any Unix installation. Not necessarily how I would (or have) done it, but the approach is not without value.

My preferred Unix editor is the vi family. I wonder whether emacs people are less sympathetic.

Re:How to Exit Vim by manmademagic on Wednesday January 08, 2020 @07:47AM (#21990885)
Had the same thing when I was studying CompSci.

Ended up spending more time configuring vim than doing the work I was supposed to do.

Even did the completely pointless exercise of making custom syntax highlighting for the pseudocode language we had to use.

Re:How to Exit Vim by joncrane on Wednesday January 08, 2020 @09:26AM (#21991698)
This prepared you for the 'real world' better than any programming lessons could!
Re:How to Exit Vim by Aperocky on Wednesday January 08, 2020 @12:55PM (#21993913)
Once configured vim works fine. I probably spend 1-2 hour/day in vim for my personal projects but haven’t configured anything in months.
Re:How to Exit Vim by manmademagic on Thursday January 09, 2020 @02:15AM (#21999154)
I think I had most things working properly within the first few days, but kept customizing and changing settings/fonts/themes/plugins.

Mostly procrastinating by pretending I was "Being Productive"

Re:How to Exit Vim by filmgirlcw on Wednesday January 08, 2020 @02:38PM (#21994922)
I'm glad you had a good experience with this, but I can tell you right now that if I had a professor insist I couldn't use my own tools for his class out of what appears to be nothing more than "you will use what I force you to use because I believe only REAL programmers use vim," I would be the type of student who would take great pleasure in using my text editor of choice discretely and doing whatever I could to ensure there was no proof that I was using my tools of choice.

I'm fine if a professor wants to say "we're not using IDEs, we're using text editors in this class and this is why" -- but to dictate the editor would be akin to being told what type of pencil or pen I could use to take hand-written notes.

It reminds me of one of my writing professors who insisted that all papers presented to him be formatted in Arial. Arial is a bad font, so I asked if I could use the metrically identical Helvetica, and he refused. I still submitted my papers in Helvetica anyway and he never noticed.

(I'm not claiming this is a mature response, FWIW, but a core part of my personality naturally pushes back on anyone telling me I can't use something for a wholly arbitrary reason or because they want to enact a ridiculous level of control.)

Re:How to Exit Vim by yebyen on Wednesday January 08, 2020 @02:56PM (#21995098)
I am a Vim user, and if I had a group leader tell me that I had to use some different editor because we are all learning how to do this job together, and that learning how to use the editor properly was part of learning how to do the job, I would do what he says. At least for as long as he stays in the room...

On the other hand, we had an architect who has since retired that said, if it was up to him, all developers across the campus would use the same programming language, editor, and configuration. Thankfully it was not up to him, and we still have this lovely diversity of opinions and tools that signals it is encouraged for specializations to develop, thus making sure that we are not all replaceable cogs in an exceedingly boring machine.

But the memory of this man's twisted vision remains with me, and it strikes me that the leadership still would seem to prefer if we were in fact fungible units of work-capacity, without any distinctive features or unique characteristics differentiating us from other developers.

IMO if you learned to ensure there was no proof of different tools, you learned an equally valuable lesson; I would mark you down for example if I opened your file and found a bunch of CRLF line endings, or some other similar obvious linting violation that was prevented by an editor configuration you were supposed to have installed during the class. But if you applied enough attention to detail to make sure this was not possible, in a way you got the point (and also for the purposes of the grade, you definitely got the point!)

Re:How to Exit Vim by vidarh on Thursday January 09, 2020 @06:21AM (#22000253)
I would do as they said if they convinced me that they had sound reasons for the choice. I don't think they'd be able to come up with sound reasons for dictating vi specifically, over a more lenient requirement, though. And being dictated to like that without sound reasoning behind it would instantly make me rebel. Unlike the other commenter, I would not do so quietly - I'd be more likely to make sure to use whatever he'd take most offense at in front of him, and seek to rally others to that cause.
Re:How to Exit Vim by yebyen on Thursday January 09, 2020 @07:18AM (#22000562)
I just sat through a two day training/workshop session called "Design Thinking" during which we learned about techniques to interview stakeholders, and how to empathize with their needs and concerns (specifically without solving the problem at hand, or trying to solve it.) My perception is that I am closer to the problem than most of the other classroom participants, and I have more than enough experience to solve it by myself, without any help.

It was very difficult to follow the guidelines for the exercise and refrain from simply going ahead and solving a problem that I've solved many times before in a way that was familiar to me. In my view it would have taken less time to simply solve the problem than to engage in this seemingly "pointless" exercise, but I do think I understand better after taking the time to convince myself that those other points-of-view have merit and should be taken into account.

Maybe I simply have a case of the old Stockholm syndrome, but between you and GP, I think I'd rather have a more cooperative and acquiescent person on my project team, for the grade. Sounds like a bikeshed argument. First we said the choice didn't matter, that it was less important than the actual programming content of the class; now we're actively combating and making a big stink until someone does some argument dance about it, and convincing happens, so the justification for the specific choice is judged acceptable. (And I guess you've already dug in your heels by this point, and won't be convinced no matter what the reasoning offered.)

What would be your reasons for rejecting vi, specifically? It seems to me that we've actually rejected the idea that editor choice is unimportant; if it was so trivial and doesn't matter which editor, we probably wouldn't be fighting about it, nobody would mind the seemingly arbitrary decision. Nobody would ask for sound reasons to justify.

Re:How to Exit Vim by vidarh on Thursday January 09, 2020 @02:20PM (#22004495)
I don't like vi, but that's besides the point - I'd fight it exactly because I'd see it as a pointless restriction that indicates dysfunction, and I'd see that as reason to protest it in itself.

If the point of the course had been to learn vi, or the teacher had given a compelling reason for why specifically vi, rather than less specific instructions, then I might have accepted that if their reasons were good enough.

Re:How to Exit Vim by danShumway on Wednesday January 08, 2020 @08:59PM (#21997816)
Everything I'm about to say, I say as a Vim/Evil user who avoids IDEs like the plague. I like Vim. I like composing commands on the fly, I like modular editing, I like that I can magically format CSV files with quick macros, and I like jumping around my editor like I'm Spider-Man. Heck, I swapped out my window manager with EXWM and Evil just so I could use Vim-style modular commands everywhere.

But learning Vim isn't related to learning how to program. In that context, it's a pointless distraction.

Be honest -- when was the last time that you or anyone you know had a programming assignment at work and came back to scrum a week later saying, "I'd have finished this, but navigating around my editor just took up too much time?" >95% of programming is going to be bottle-necked by the speed you think, not the speed at which you can edit text.

So it's like forcing all of your students to learn Dvorak, or to submit all their written work in cursive. Undoubtedly a few students will thank you for it at the end of the class because some people do get real value out of learning those skills -- but just as many of them will say you wasted their time, and they'll be right. I write in cursive too; it's an objectively faster, more pleasant way to take handwritten notes. That doesn't mean that learning cursive has anything to do with learning to write books.

To any professors on HN reading this: if you're teaching a programming class, please teach programming. Because if students just wanted to learn something new, or to be forced to struggle with something outside of their comfort zones, there are a lot of cheaper ways than college they could do that.

Even with that goal -- a programming professor can't come up with any outside-the-box assignments more related to their subject than "learn Vim"? I can't fathom that kind of lack of creativity in a field this broad.

Re:How to Exit Vim by iamaelephant on Wednesday January 08, 2020 @02:07PM (#21994644)
Love to trap my students in the 90s and pretend no progress has been made on editors since.
Re:How to Exit Vim by hwestiii on Wednesday January 08, 2020 @07:46AM (#21990881)
This is more or less what I did, but under my own motivation. I charged myself to do all my CS homework in vi and had a copy of O'Reilly's Linux in a Nutshell at my side. It didn't take more than a couple of semesters and I didn't need the book at all.
Re:How to Exit Vim by Aperocky on Wednesday January 08, 2020 @12:54PM (#21993902)
He should at least allow emacs.

He might find my vim configuration looks a lot like an IDE with almost 60% of feature of one. (Except compile, I like to use command line for that)

Re:How to Exit Vim by swiley on Wednesday January 08, 2020 @06:12PM (#21996806)
Honestly I really hate being forced to use any particular piece of software and I love vim!

I'm really happy my algorithms professor let me use Makefiles and vim even though the standard tool at the university was (blegh!!!) visual studio.

Re:How to Exit Vim by lasagnaphil on Friday January 10, 2020 @06:40AM (#22010289)
I used to be a vim evangelist before, but after seeing some of the people at my lab writing code as fast as me in Sublime Text, I’ve decided not to participate in editor wars anymore.
Re:How to Exit Vim by vidarh on Thursday January 09, 2020 @06:15AM (#22000222)
I'd have taken the loss in mark on principle over something like that.
Re:How to Exit Vim by barkingcat on Wednesday January 08, 2020 @12:38PM (#21993731)
In 2018 - this is so bad that it deserves some kind of disciplinary measure from administration.

This is absolutely unacceptable for students needing different accessibility enabled tools other than vi /vim.

For example, if using an alternative screenreader or a vocally/sound enabled ide or if needing to interact with a text editor via a brail enabled tool that doesn't work with vi, does the student just get failed out? That's a lawsuit waiting to happen.

Re:How to Exit Vim by aquova on Wednesday January 08, 2020 @12:53PM (#21993892)
...This is a bit of an overreaction. I think it's safe to say that the professor won't fail any blind students simply on the basis of being unable to use Vim.
Re:How to Exit Vim by kick on Wednesday January 08, 2020 @02:08PM (#21994647)
ex, something that comes with every installation of vi, is completely accessible.
Re:How to Exit Vim by JdeBP on Wednesday January 08, 2020 @05:36PM (#21996512)
Some of the vi clones do not have an ex mode, note. NeoVIM has neither ex nor open modes, for example.