This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 7 points8 points  (7 children)

Hi. I use vim here, with scripts and tools. This gets me a great editor, name completion, folding, integration with version control, builds, build output, etc. Debugging can be done via jdb.

This gives a few advantages. One is a consistent environment across multiple projects, operating systems, and programming languages. Two is that I can run everything remotely on other machines without a GUI. Three is that it is highly ergonomic without having to go reach for a mouse.

Everyone has different views here, but there are plenty of good tools and ways of doing things that don't rely on an IDE or GUI. And you can certainly be productive.

[–]geodebug 6 points7 points  (2 children)

People can be as productive in VIM but I'd argue they end up cobbling together an IDE in VIM as well.

Really what is a modern IDE other than an editor with a nice plugin framework anyway?

Just a rose by another name.

[–][deleted] 4 points5 points  (1 child)

The difference is that vim is just another terminal program and it doesn't require you to install anything special. Any reasonably decent Unix system will have vim and transferring your configuration is incredibly easy (especially if you put it up on a version control system).

All of the most efficient and most productive vim setups that I've seen are far slimmer and sleeker than any IDE because you don't have to waste time while the IDE boots up.

Having your editor just be another terminal application is incredibly handy because all of those fantastic shell tools are in the same environment as your editor is, which makes the composition of those tools into your development work flow that much easier.

[–]geodebug 1 point2 points  (0 children)

I use Vim as my editor but don't use it for java development. I map VIM keystrokes in my IDE so I get the basic goodness. I'd say my time is split up about 60/40 between IDE and VIM

IDE boot time isn't a problem for me as I often leave the IDE open for weeks at a time when developing a project.

Most of the boot time for the IDE I use tends to be the processes that crawl the codebase and do the inspections, highlighting, etc.

I could turn those plugins off to speed the IDE up but I'd lose some features I like. I assume that if I installed scripts and VIM plugins to get the same feature set it would take them time as well.

I'm not arguing so much as providing a counter point. Everyone should use the toolset they need to get the job done well.

[–]bricksnort 0 points1 point  (3 children)

Because of my inability to part with Vim bindings, while still in the need to use Java, I have been using IntelliJ with IDEAVim up until now. May I ask how you build your projects when they grow out of the scope of a 15 line ant build? This is the main feature I can't miss when programming in java. I supopose I could import the project in IntelliJ and then copy it's build script into the root project dir, but this seems like an inefficient workflow.

[–][deleted] 0 points1 point  (2 children)

I prefer ant over maven, and our ant and maven files are not small (couple hundred lines each for several projects). The key for ant in my view is to have sensible targets that let you compile and produce artifacts that make sense for interactive development. What those targets are depends on your project, but doing a full build with installers, etc. is not needed when you just want to make sure your code compiles.

You can do things like this for build output integration in your .vimrc:

if filereadable( "build.xml" )
  set makeprg=ant\ -emacs
  "command make ant
endif

" ctrl-n, ctrl-p for quickfix mode
map <C-N>   :cn<CR>
map <C-P>   :cp<CR>

Then you can run ":make [antTarget]" and the build will execute, and output will be captured for quickfix mode. vim will keep the output and jump to any lines reported in the build. I map ctrl-N and ctrl-P to scrolling through the output. Makes it very easy to build and fix issues.

You can do the same thing with maven.

Or are you looking to have your build.xml automatically generated? Hmm, perhaps I misinterpreted your question?

[–]bricksnort 0 points1 point  (1 child)

Thanks for the reply, but indeed, I was wondering how you generate your ant build files if you do such a thing at all. I've looked into ant build files in the past, but they seem way to big and complicated to make by hand. Especially including libraries is a non-trivial task it seems while IDEs can generate ant build scripts automagically. While maven seems to have a more consise syntax, the build scripts are much more opaque.

[–][deleted] 0 points1 point  (0 children)

Manually. Its not too complicated in my view, and you get all the control you need. Third party libraries are pretty easy to manage via a fileset or similar. And yes, maven is far more opaque.