I have just started looking into vim, and It seems very cool indeed ! However, I am not sure whether I should use it for everything or if I should use an ide with a vim plugin. I am interested in learning libgdx/android and google glass stuff. So which would be the better tool for developing with, eclipse or vim. I don't yet know what plugins exist for vim yet, but if you use vim for your java development then can you please tell me which plugins you enjoy, and if you use eclipse over vim can you state why that is as well.

Much appreciated!

Recommended Answers

All 27 Replies

You are talking about text editor VIM? If so, I prefer it over Eclipse because Eclipse is bloated. Even though there are a lot of things you can do on Eclipse, it is so big that would take me a lot of time to set up a small or test project. If a project is big and many people may involve in it, Eclipse would be a better choice...

I would go for sublime text(It's awesome!!) on small projects and as Taywin said Eclipse for medium/big ones especially if multiple people are involved

I would personally use something like Eclipse/IntelliJ because it "just works" out of the box and makes it easy to navigate complicated projects. Sure, you can use your Vim'fu to do all the same stuff I'm not a big fan of carefully tweaking each and every aspect of an "editor" to make it work like an "IDE".

And mind you, this is coming from someone who uses Emacs in Viper mode for his text editing needs...

commented: Yep! +6

Use whatever you want. I personally find Vim more productive.

I always find it questionable when a company asks you to use one IDE/text editor over another (ESPECIALLY when the person telling to use it isn't even a programmer). They tell you to use it like it effects the final product (it doesn't). That's like telling him he can't use his own chair. Or his own keyboard. Or the kind tires he needs to use to drive to work.

That's like telling him he can't use his own chair.

I disagree; that's more like saying you can't come in denims when the rest of the team comes to office in formal wear because that's the "dress code". I would seriously doubt the expertise of a programmer who insists on using IntelliJ because that's what he has been using in his previous company and doesn't want to switch to Eclipse because he would have to learn new key bindings.

Just to clarify, if you are working on your own, use whatever you feel like using (yeah Notepad, I'm looking at you). But in a team setting, please don't be the one who insists on using Emacs when everyone else is using IntelliJ or Eclipse.

Why can't everyone just worry about the code and not what other people happen to be using to write it in? What you write code in is completly negligable. Sure, clothes you wear to the office makes sense because your team might need to look presentable. I can't think of any productive reason why you should force everyone to use the same environment. Even if the code is set up to be only be compilable from a particular IDE, and has no command line compile options (something that I wouldn't recommend, and is very unusual to see in practice), you can still use Vim as a text editor, and your IDE for compiling, no sweat at all. You can even set up Sikuli to do it transparently.

If they insist and your being paid to do it, fine, do what they say. I'm not saying you should protest. However, what I am doing is criticising the decision of the team and it's management. In particular, you have so many more important things to focus on then which text editor to use, which is why I would question the decision maker.

Interesting responses. I think I will use vim here and there but mosty use eclipse or another powerful ide for bigger projects. I am interested in getting the best of both worlds though, so I will be looking into vim plugins for eclipse. Is it possible to use your vim configurations with any of these plugins? or would you have to reconfigure it all? How extensive are the plugins, if anyone knows. Is it truly vim-like editing?

Another question, which is only loosely related to the original post. If I was to switch to dvorak for programmers, how would this effect my experience on Ubuntu and with vim/eclipse etc. Are there tools to make sure its all mapped so I can operate on muscle memory? And if its just generally a really bad idea, can you voice your opinions on that too! It seems logical enough to me, but I would hate to invest a lot of time in it and find that its been a massive mistake!

Member Avatar for iamthwee

God no don't switch to a dvorak keyboard, I was tinkering with the idea but there are just too many cons. First, there is the overhead of unlearning the qwerty keyboard, which may take many months of repetition. And when you're coding these so called typing speed increases are negligible as writing code is so much more different than writing a paragraph of English.

But perhaps the most compelling reason to stick with qwerty is you won't always be programming from the comfort of your own machine, you have to fiddle around with the system settings to switch to a dvorak layout, and you'll have to memorise ALL the keys if it is just virtual.

In regards to the original question, those IDEs are bloated but they've got good overall features. In a professional environment those point click compile/ create a jar file/ code completion can be a time saver. Not saying you could set up sublime or vim to do a similar thing. Just it will take a bit more time to get it working as you like.

I program exclusively in sublime for web dev/c++, I use visual studio for dotnet and either eclipse or networks for java, but I haven't seriously needed to use java or c# or c++ for years.

Thanks for the reply! I have been testing out dvorak and I think it offers many benefits, though I understand some of the cons. Especially the hot keys and such, but I could just change them. And I doubt I'll ever need to use someone elses system, and downloading and change to dvorak for programmers only takes a few minutes, so if I ever did it would only really be a minor inconvience. It will probably take some time to get used to dvorak though, at the moment I can only achieve about 25-28 wpm with it. But I am sure if I switch to it I could probably reach 50 wpm within the week... if I stop using qwerty completely. It would be nice to here further opinions and anecdotal evidence to help me decide whether to switch now or not, I would hate to regret my decision either way!

I think it would be best for me to just learn and use the most appropriate tools for each job, which seems to be an ide with a vim plugin and vim and terminals open in other workspaces. Thank you for your input! Can I ask why you use don't use an ide for c++? Just out of curiosity.

Programming is 90+% thinking and 10-% typing, at best. I'm the world's worst typist, but it doesn't matter because I use NetBeans that does much of the typing for me, and identifies typos as I go. My guess is that, as an experienced developer, using Eclipse or NetBeans improves my productivity at least 10x, maybe even 100x, compared to any command line edit/compile/build/execute/debug environment. If your ambition is to be a typist then dvorak could possibly be relevant. If you want to write and test software then mastering a software developer's toolkit is where you should put your effort. The keyboard is irrelevant.

Eclipse is a nice, integrated, IDE (Integrated Development Environment) that has plugins to support most current programming languages - the editor is built in. VIM is a text editor based upon VI, but with additional functionality. Myself, for development, I prefer a good editor (nedit is my preference) - others prefer VIM, gedit, emacs, etc. It is really easy to get into a "editor wars" scenario - try them all and use what is most productive for you. I also prefer to use make instead of an IDE. It doesn't depend upon Java versions, or anything else, and runs on every system known to humankind. IE, I build Java programs with Makefiles instead of Ant/XML... Just call me old-fashioned, but there are times when one size DOES fit all! :-)

Why do I personally prefer nedit?

  1. I know the original creator.
  2. It provides syntax-directed editing for most languages you have every heard of (and some you haven't). It isn't difficult to add additional languages if you want.
  3. It has tabbed editing, and you can detach a tab into its own window.
  4. You have global search and replace, so if you change the name of a class, you can replace all instances of that name with a single gui command, in all files affected.
  5. It has superb regular-expression search/replace capabilities. So does VI/VIM. I think they are both based upon Henry Spencer's work and regex library. I know that nedit's regex tools are. Here is a link to Henry's Wikipedia page: https://en.wikipedia.org/wiki/Henry_Spencer

FWIW, I have been using nedit since the early 1990's. It is a bit long in the tooth, but still a superb text/program editor. Mark Edel, the original developer, was a staff member at Fermi National Laboratory along with my wife at the time (she is still there as a staff engineering-physicist). It is part of many Linux distributions, but if your preferred OS doesn't have it, you can get it from SourceForge.net. I run it on Linux, Solaris, AIX, HPUX, and Windows (under Cygwin).

@JamesCherill I understand that its not all about typing, but I hate having to stretch my fingers so far and I think its important for me to be able to type fast, I should never feel myself typing slower than I'm thinking, yet I often do... Especailly when it involves special chars. But I have decided that I have much more important things to focus on right now than learning a new keyboard layout, that could take weeks to get up to my current qwerty speed! SO I have decided to stick with qwerty, at least for now. Maybe there will be a better input device next time I decide to look into it anyway, something radically different that wont effect my qwert skills! Maybe I could get a keyboard with macro keys and map the home row to special chars so I can access commonly used chars with greater ease.

@rubberman thanks for the suggestion, I have looked it up but I think I would prefer to stick with vim, especially since I want to ssh from my windows laptop to my linux box quite often.

Another question I have is related to xiki, which I recenly noticed on kickstarter. Has anyone tried it or can anyone tell me what their opinions on it are? I think it looks quite interesting! Perhaps a tool worth checking out?

Member Avatar for iamthwee

No offence but the whole dvorak keyboard is a moot point when it comes to programming and speed. Simply because the speed occurs with intellisense or, if you are using sublime it has a handy snippet section where you can create your own custom snippets.

For example you might type classtemplate +tab and it handily creates the your default java class

public static void main...

The beauty about sublime is that it takes the name of the file and creates the template from that. I've never used it for java but I'm sure you could quickly setup default classes and helper snippets especially if you're using swing.

Also, in the real world you don't have just one workstation, you might have one at home and one at work, or you might have to hop on your work mate's computer. Not saying you could quickly change to dvorak layout then switch back after you're finished.

But overall I don't see the benefits... I don't even see the benefits if you're just a typist either... They have special shorthand typewriters, much like the ones you see used in a courtroom.

For java, I'd still recommend netbeans or eclipse. I like netbeans GUI builder, but then again I haven't seriously needed to use java in ages.

Member Avatar for iamthwee

I always find it questionable when a company asks you to use one IDE/text editor over another

No offence but that happens to be the norm and for good reasons - if not just office politcs. This is much the same reasons why companies use frameworks - although comparing frameworks and IDEs is somewhat counter intuitive.

Why companies ask what IDE you use is more of a 'how easily will you be able to jump onboard'. Another big reason is maintainability. Will your code be maintainable amongst other employees?

Now you could go ahead and setup sublime or vim to do just this, and no doubt it would probably be faster. But those special shortcut keys and snippets will be known only to you -and you alone.

That's a big problem in a company environment. All the java gurus James, jwenting sos, probably work with their company's IDE for that same reason.

It's for this same reason why visual studio has notable acclaim as being one of the best IDEs for the dotnet framework.

Also, it is worth noting that the statistically speaking the majority of people using notepad to write java - or other simple editors are in fact noobs and NOT gurus.

Member Avatar for iamthwee

Can I ask why you use don't use an ide for c++? Just out of curiosity.

Not sure what others think but c++ is a different beast from java or dotnet.

With java and dotnet you may find yourself writing GUI apps and this is where an IDE comes into its own. I find when I am writing c++ code tends to be system type code without any GUI stuff. So reading files, doing stuff with it. Writing a GUI with c++ you've got so many options, is it a win32 type GUI, is it QT, is it wxwidgets, blah blah. You pick one and then use an IDE specifically suited for that.

In any case I don't think c++ is suited for writing easy GUI apps, so I never bother. I mainly use 'nano' or sublime for c++.

No offence

None's ever taken. Maybe I can learn something.

Why companies ask what IDE you use is more of a 'how easily will you be able to jump onboard'. Another big reason is maintainability. Will your code be maintainable amongst other employees?

I would say knowing the baseline tools are vastly more important then the IDE, but yes. Given an employee who knows about the IDE we're mostly using versus one that doesn't I would take the one who does (all else being equal). It's a very small advantage, but an advantage non-the-less.

I don't see how the text editor you use can possibly effect maintainability. For example, I'm writting this post in vim to make a point. Is there something different about this post because it's written in vim? Of course not! A sequence of characters is a sequence of characters. You can open up Eclipse in the background, pop the file into vim, edit it, and continue to compile, etc. ussing Eclipse or the command line. No one would ever know the difference (assuming you are aware of whitespace, text encoding, BOM and EOL markers obviously).

I think maybe we should make a distinction here. A text editor edits text. Development tools take care of compiling, debuging, profiling, etc. An IDE is some interface that combines a text editor and the development tools togeather. You can use Ecplise as an IDE and use your own text editor at the same time. no one will ever know the difference. I don't think there is any productive reason to force everyone to use the built in text editor. Futhermore, if the development tools are useable from the command line (which is usually the case) then I can't see any productive reason to force people not to use the command line (identical result, programmer get's his preference). If the deveopment tools are not usable from the command line, then that's fine too. A programmer should still be able to use the text editor of his choice, and use the IDE for everything else (since a text editor and IDE serve different purposes).

Now you could go ahead and setup sublime or vim to do just this, and no doubt it would probably be faster. But those special shortcut keys and snippets will be known only to you -and you alone.

That's the advantage. Then everyone has there own environment to work in. Even if it is tailored to you in such a way that it's inoperable to other people, it doesn't matter. Other people are free to use whatever they want. If you're at someone elses workstation, just use the vanilla editor/ide.

One thing that I would like to point out, before all of this fancy IDE stuff if was never a concern. It was normal to see people programming in there own editor, it was normal for people to set up there bashrc how they like it (alaises and such). It was normal for people to set up their editors with their collection of plugins and custom scripts. Normal to see people who prefered tmux or GNU screen. Some people even used GUI stuff. And it was never a problem. Then companies started marketing their "flashy IDE's" to buisiness people, and buisiness people who buy into it tell programmers to use IDE's because their convinved it's "better". And then we get people telling programmers to use a particular IDE (like it's actually relevant to the code itself), even though the difference is negligable and may degrade programmer performance.

I only see advantages to letting people set up there environment to there liking, and forcing programmers to use a particular environment is just a waist of precious time.

Member Avatar for iamthwee

I don't see how the text editor you use can possibly effect maintainability.

I see the point you're trying to make but you're looking at it from a purely abstract non commercial pov. IDE's allow syntax highlighting, and prebuilt gui code completions... <-That's maintainability within a company setting.

then I can't see any productive reason to force people not to use the command line (identical result, programmer get's his preference).

Like I said, in an ideal world you're right. The programmer will setup his editor to mirror the functions of netbeans or whatever, but this is the real world. Companies can't afford to give their employees this freedom, what happens if joe bloggs leaves and someone has to take over. What happens if the code he sets up to create a gui button is error prone in some way? How long will it take joe bloggs to setup vim to do what netbeans does?

I only see advantages to letting people set up there environment to there liking, and forcing programmers to use a particular environment is just a waist of precious time.

Like I said, real world work politics can be a ballache... but rarely it's about the individual, there's a company as a whole to take into consideration... there is a niavity in your replies negating concerns of a company setting and management goals are far removed from the programmers.

That's the advantage. Then everyone has there own environment to work in.

Not for a company.

I see the point you're trying to make but you're looking at it from a purely abstract non commercial pov. IDE's allow syntax highlighting, and prebuilt gui code completions... <-That's maintainability within a company setting.

Vim allows exellent syntax highlighting and code completion. It has a host of other plugins that DESTROY what Eclipse can provide (it's not even a fight). I know that I can use the features that Vim provide to be much more productive then I would be with Eclipse. Now I'm not saying that vim is king, but I am saying that vim can easily provide those so called "commercial" features. The reason isn't even just for "faster text manipulation" either, it has to do with how I set up my screens and how I naviage through files. Take a look at ctags. It's like the "jump to definition" thing that Eclipse provides for Java, except that it works with virtually any language. Simular arguments can be made with other good text editors. The thing is that it isn't a "commercial" idea. It's what a programmer is using on his machine. It doesn't effect buisiness. It doesn't effect the finance department. It doesn't effect other programmers. It effects the one person using the machine at that time, and that's it. It never extends to effecting anyone beyond that.

The programmer will setup his editor to mirror the functions of netbeans or whatever

No, the programmer sets up what she wants to set up. It doesn't need to mirror anything. As long as she's able to compile it (most of the time it is compilerd in a standard way), she's good to go. I carry around my Vim setup on my USB, and it can be set up within a few minutes.

what happens if joe bloggs leaves and someone has to take over

The IDE and text editor has no effect on the development tools. If someone has to take over, they use whatever the heck they want to use, or they can use the vanilla tools, no problem at all. Same thing goes for a team of programmers. Everyone is free to use there own text editor and IDE. It still doesn't have an effect on development other then increased efficiency (which is debaitable, but everyone is happy). Everyone is able to call the makefile from his or her preferred environment. Having people join or leave the team has no effect whatsoever.

What happens if the code he sets up to create a gui button is error prone in some way?

If Joe's program contains a bug, then the bug would exist regardless of the IDE used. Furthermore, it would be the replacements job to replace said button. Unless you're saying the the button is fot Joes text editor/IDE. In which case, you can use your own text editor and don't worry about his weird setup. No problem.

If your saying that Joe made the button as part of the build system, I'm not saying that all aspect of the projects should be a free for all (obviously everyone is going to use a standard build system, everyone is going to use the same revision control, everyone is going to use the same testing harness and everyone is going to be using the same documentation system). I'm not saying that Joe should set up his own wonky build system. I am saying that a programmer should be able to choose his text editor and environment, since nothing about the poject is effected by it anyways, and waisting time forcing programers to use an evironment for no reason is an unproductive idea.

I would to go as far as to define the "environment" as everything that a programer may set up on his machine which does not effect the project itself. This different from the "toolchain" for which everyone uses the same tools (revision control, etc...) that are relavent to the project. Having the toolchain be inseperable from the environment is usually a bad idea, and isn't seen often in practice. Even then, the programmer still can control thing like the text editor, and the keyboard he uses.

How long will it take joe bloggs to setup vim to do what netbeans does?

Why would Joe Bloggs want to set up Vim to do what net beans does? He set's up vim however he want's to set it up! If he want's to compile it from the command line , he can do that. If he wants to compile it with netbeans, he can do that. No problem.

I carry around my Vim setup, and I have a copy online - it would take a few minutes to install. Usually projects are easy to compile from the command line (they usually use good build systems like cmake, ant, GNU buildutils, nmake, etc...). IF there not, just use the IDE. Then I'm good to rock and roll.

Not for a company.

Why not? I'm really interested in knowing what breaks when someone uses thier own text editor (besides trivial things like EOL of course). I've worked for a few companies. Most of the more serious development ones don't care at all. This is especially true in ones that work with more open sourced software. The ones that did care didn't take development as seriously, and it was a buisiness person who wasn't a developer who made the decision more or less because the IDE was sold to him, and no productive reason at all.

There are many possible reasons for standardising on a specific IDE.
While company politics and personal preference of people in positions of influence with management often come into play during the initial selection process, they're utterly irrelevant once the decision has been made.

ANY standard is probably better than none at all for productivity.
What a standard work environment gives you is easier project management, just put the project files and structure into your version control system (and there too it doesn't matter which you use so much as that you use one and preferably one that integrates nicely with your other tooling) and now everyone can just check out entire projects and be up and running in a few minutes from when their machines are configured.
It's also a lot easier to sit down with a colleague and work together on a single machine for a bit if you're both fluent in the use of the same tools.
And finding help if you run into a snag becomes a lot easier as well. Why spend hours searching the internet when you get an error dialog from your IDE you've not seen before when there's 5 guys in the room with you who're all expert users of that same IDE...

While I have personal preferences, and if I were asked to set up an environment from scratch (and given a free hand in doing so) that environment would likely reflect those preferences, I'm by now well versed in a wide variety of tools and environments, which is good for your career as it makes you a lot more flexible and able to jump into a new team much more rapidly.

Right now the IDE I'm using is dictated by the overall environment we're running here, as it's the one that best integrates with our runtime systems (database, application servers, other backend systems, etc. etc.).
I was not familiar with it when I started out here, but having used half a dozen or more others over the past 15 years it didn't take long to familiarise myself with it. And that's far more important than being a superexpert at any one tool.

As to VI(M), IMO every IT professional should be at least passingly familiar with it. It's often the only editor available to you when you are having to do work on a Unix machine over a terminal session, and that's going to happen sooner or later and when it does it's going to be urgent enough that there's no time to complain that "xxxx isn't here so I can't work" because it's going to be a production system that's down and costing your employer and/or his customers a massive amount of money and bad press for every hour you're sweating there trying to get it in the air again.
It's also often a lot quicker to use VI (or any text editor) to make a quick small change in a few files than it would be to load a heavy IDE, find the projects to open, find the files inside those projects inside the IDE, edit them, etc. etc.

Member Avatar for iamthwee

Hiroshe, it strikes me as odd, you're saying you've worked for a few big companies, yet your answers don't demonstrate this.
Maybe it's just me?

Jwenting great sum up of what I was thinking.

iamthwee every company has its rogues, and sometimes they can get away with it for a while.
I've worked for one big company where a rogue VP who led the department I worked for got away with buying millions of dollars worth of hardware and software outside of "official channels", from brands different than those dictated by official policy, for several years.
Of course in the end it bit him hard, his department was shut down, the hardware and software discarded, the people (good hands, most of them) he'd gathered around himself forced out of the company because we were all "tainted", all the years of hard work by all of us thrown out with the bathwater.

And yes, it's not always set in stone. Especially on smaller projects there's often not that much oversight. Or you're free to choose your own tools as long as you can work with the official ones as well and your choice doesn't interfere (no corrupting the official project files etc.). But for the most part it's usually easier and much better for your career prospects to stick to the official toolset.
What I've done at times is install other tools in tandem, use those where they were really superior (and not just "nicer") and then try to convince people with the power to make such decisions to get those tools added to the official set. But always try to make a valid business case. Just installing Netbeans and refusing to use Eclipse "because I don't like Eclipse" isn't going to make you any friends. If you can demonstrate a clear commercial advantage of something most companies are more than willing to go ahead and work to integrate it into their stack. Then again, most IDE preferences aren't like that, they're purely personal, often religiously so (I've seen people refusing a job offer because the company offering didn't use their prefered IDE and was unwilling to force all their hundreds of programmers to switch to something else).

Hiroshe, it strikes me as odd, you're saying you've worked for a few big companies, yet your answers don't demonstrate this.

What do you mean? I'm demonstrating that using your own text editor will not effect anyone else. And as far as I can see, it doesn't effect anyone else unless you are working with someone else right there. In that case, if a custom text editor really bothers them, you can switch. I have a hard time thinking of a situation where that can't work. Maybe one does exist. Maybe lot's exist. I don't see it though (even after reading other peoples responces). If someone can run through an example of where a preference of text editor effects the project (besides EOL stuff, etc. I assume that programmers are aware of that), maybe I'll see it.

Commercial programmers working on Unix almost always have their own bashrc, vimrc (emacsrc?), a choice of tmux, screen or I don't know what else. It's been like that for over a decade, and it has always worked fine, even in commercial environments. Heck, unix programmers don't even need to use the same shell if they don't want too. They still use the same makefile. They still use the same toolchain. They still use the same revision control. You can't just ignore that this has worked for over 20 years well in commercial environments. Then flashy, sometimes expensive IDE's came along, and all of a sudden that 20 years of no problems suddently become an "important issue"? You can't blame someone for being sceptical.

Again, if a company is forcing you to use a particular IDE for their preference, I'm not saying you call them out and say their wrong. If it put's food on the table, then do whatever they say. What I am saying (to project leads) is it's not worth the time to force anyone to use a particular text editor. Setup the standard tools on all of the computers, and give the programmers breathing space. This isn't advice for the programmers working; this is advice for people setting up their projects.

You can use all of the standard IDE, tools, etc. and still use vim for the act of editing files (if you are sure no one cares). If the project happens to to compilable from the command line (in a command or two), then if they want, programmers should be able to do that. If something does go wrong from the command line, or if they are working with other programmers, just switch back to the vanilla tools - it's literally as easy as that. I'm not saying that the programmer shouldn't be familiar with the vanilla tools.

The workflow works like this: edit your file in vim, then alt-tab to Eclipse to compile. If your working with someone else, alt-tab to Eclipse. If people care about you using vim, then don't use it. I do not see any problem, but if there is one, I would like to hear it.

Sure it might be annying to go to someone elses work station and their not using your preferred text editor. If it really bothers you that much, they can switch to vanilla for you. I'm not saying go rogue to make a point. I'm saying if you are allowed, then you might as well use a text editor you are comfortable with - and if your a project lead, you probably shouldn't force your programmers to strictly follow your preferences for the text editor. If the project relies on an IDE strongly, then fine. They can use the IDE with there own text editor if they wish. Dictacting a text editor is like dictating the color scheme and font you should use - it's not something you should really waist time over, especially since you have much bigger problems on your plate.

Member Avatar for iamthwee

Hiroshe, I have a few questions...

  1. Can you tell us the size of the previous companies you have worked for, no names.

  2. Give us a description of the problem or work tasks you were set. -What language you had to use and if it needed a front end gui.

  3. Tell us how you used vim to solve the task or problem.

  4. How you were able to use this to work with your colleagues to come about a solution.

  5. What tools did your colleagues use? Or were they using vim as well.

  6. Did you meet your project deadlines?

Just a hunch I have...

Can you tell us the size of the previous companies you have worked for, no names.

Generally team size is no more then 15 for each project. It's gone as small as 3 (since I wouldn't call 1 a team anymore). I've only worked for one larger company, most of the other ones are smaller. The large one had probably about a dozen or so projects at a time.

Give us a description of the problem or work tasks you were set. -What language you had to use and if it needed a front end gui.

I'm not sure what a gui has to do with editing code, they're both programmed in the same way (though testing and debugging still differ). Well, the most interesting one involved comming up with a tailored solution to the job shop problem for another manufacturing company. This was programmed in python because of the wealth of scientific packages that came in handy, as well as R and matlab. The project involved 3 guis. One was a visualization of the schedules (interactive). The second was a visualization of the flow through the shop itself. The third was just something for the workers of the machines to use. But that's just an example.

Tell us how you used vim to solve the task or problem.

It's just a preferred text editor. Nothing more. I mean, regex's come in handy, and it's nice to have a built in grep. ctag's is always handy to have. But it's just a text editor, and if I preffered something else, I would have used it. No problems arised (where is there a space for a problem to arise?).

How you were able to use this to work with your colleagues to and come about a solution.

What? It's a text editor. That's like asking how the kind of pencil I used was used to work with opther people on a group math assignment (I now prefer doing math in erasable pen - it seems to smudge less which always seems to happen to me, but I digres).

So how did I use it you asked? Welp, I wrote the code in vim, I compiled and tested it, then I commited in into the revision control. Then everyone else is free to edit it with wahtever they like. And when I pull it back, it's irrelevant what they've editied it with (not including EOL, etc...).

Just a hunch I have...

About what?

Here's a question for you: What is so wrong with using your own text editor (if you are allowed), and switching to vanilla if someone else needs to use your computer? I am generally interested in finding a good answer to it. I've only got vauge answers (or questions about my own experience), and some true statements that don't answer why you should force your programmers to use the same text editor.

jwenting has mentioned that it's easier to use other peoples computers - and that would be true assuming that you don't know how the vanilla ide works for the project (which is not what I would recommend, you should be familiar with everything the team is using in general). He also mentioned that if a problem arises, then it's easier to fix it if everyone is using the same ide - which is definatly true. If you can't compile it from the command line - then use the ide; I'm not saying be the person who persistantly uses his own stuff even though it waists time. However, if you pop a file into vim to edit it, it's hard to see why that is so wrong, and I'd question the person making the decision without some good third party reason (or a better reason then "it's what was sold to me").

The biggest point is about consistency. I really don't give a damn what someone uses as long as no one on the team is affected by what they use. For e.g. Eclipse has style/formatting rules which dictate whether you use tabs or spaces, wrap happens at xxx char count, particular style of brace placement etc. If everyone in the team is using Eclipse, it's simple to import these rules but someone working in a non-Eclipse IDE/editor has to do these things manually or write macros and what not.

It would be totally unacceptable for me if someone checks in code in a completely different format just because they were using their favorite text editor. It would also be unacceptable if that person spends 30/60 mins everyday messing around with custom configurations to ensure consistency is maintained because that's 30/60 mins off time the member could have been productive...

Agreed - you should always read through the coding convention. If one wasn't written up, then alteast there should be a general verbal agreement. If their is no verbal agreement, them go off the code base. If their isn't a code base, then work with the team to find some coding convention.

If your using your own text editor, then you need to be aware of the encoding, BOM, EOL marker, minding indentation style, whitespace convention, trailing spaces convention, maximum line length, alignment, maximum comment length, naming convention, comment style, etc... You should be versed in this for each project even if you're using some vanilla IDE, as it's visually painfull to see deviations (well for me), and the IDE will only take you so far (by itself) for that.

Also agreed that if you use your own tools, you need to be responsible for them and your productivity. Don't use something that's unstable and don't spend your day configuring everything. Don't bother anyone else with your setup. If it works, great. If not then deal with it while your at home and use whatever they have for now. If you like having your own configuration, then ideally it should already be setup to go after a minutes installation.

And even worse, a lot of IDEs impose their own project structure rigidly, often creating all kind of files for their own housekeeping.
Now if 20 people on a team each have their own IDEs you're in for a nightmare.
Just clearing out the backup files VI creates that sometimes end up in version control by mistake is a pain, now multiply that by dozens and add a few custom directories full of project files and other fluff from each of those IDEs...
And then someone decides to create that new project using his Netbeans where everyone else uses Eclipse...

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.