A day without X11 ?

The word "better" is a very slippery one. It implies a linear scale and a quantitative relation.

Yep and you cannot compare apples to oranges.
  • Vim is an editor / IDE.
  • Eclipse is a number of collections of Java bytecode masquerading as IDEs, all subtly broken in stupid ways that all seem to call themselves Eclipse.
You also cannot fully turn off auto indenting on Eclipse.. I don't understand how that works in the real world where you will work on many projects, all with different style guidelines; you will either waste most of your time in the settings menus changing between them or some will simply be lazy and screw up everyone elses format?
 
What's this preoccupation with X11?

I can turn off all my laptops, unplug my cable modem, turn off my flip phone (which doesn't even have Internet service) and survive somehow for days on end.

It seems that you need X11.

Some other BSD user might likely do not rely on X11. Many are here in this case, usually older generation programmers and Unix.
 
Yep and you cannot compare apples to oranges.
  • Vim is an editor / IDE.
  • Eclipse is a number of collections of Java bytecode masquerading as IDEs, all subtly broken in stupid ways that all seem to call themselves Eclipse.
You also cannot fully turn off auto indenting on Eclipse.. I don't understand how that works in the real world where you will work on many projects, all with different style guidelines; you will either waste most of your time in the settings menus changing between them or some will simply be lazy and screw up everyone elses format?

It seems that most windows programmers / developers does not rely on VIM, *vim* sucks before it is strange.
Well, actually, eclipse is not that bad, because windows programmer can do something with it.

Anyhow I prefer vim because it is very efficient and powerful. Emacs next to it, sounds good tools.


multimedia/mplayer supports ascii art with -vo aa option. It used to be enabled by default, but now you have to explicitly set if building from ports.
I have a sample video I made out of mplayer's output to demonstrate folks the real abilities of text terminals.
framebuffer saves you and your cpu ;)
 
  • Eclipse is a number of collections of Java bytecode masquerading as IDEs, all subtly broken in stupid ways that all seem to call themselves Eclipse.
You also cannot fully turn off auto indenting on Eclipse.. I don't understand how that works in the real world where you will work on many projects, all with different style guidelines; you will either waste most of your time in the settings menus changing between them or some will simply be lazy and screw up everyone elses format?
Eclipse is a platform and not a simple text editor. There are actually hundreds of different editors that run on Eclipse. So your remark about the indentation obviously applies to one of them, not Eclipse as a whole.
Are there shitty Eclipse plugins - sure. But this is not platform's fault, just like a shitty browser plugin does not mean the browser is garbage.
Eclipse is definitely an IDE. The design principles behind it are very robust, especially OSGi and SWT - those are fundamentally good technologies.
They have a couple of unresolved issues, most prominently the app is single-threaded and could freeze at times if a plugin misbehaves.
Another issue is the horrible release engineering and build system.
But apart from this, the platform is rock solid and I have never ever seen anything that comes even close to Eclipse's refactoring capabilities. It's insanely good for Java development.
 
It seems that most windows programmers / developers...
There are many tools for difference purposes, when people work on big commercial projects, the efficiency is on the first place.
E.g. a guy from a big corporation demonstrated me how efficient is MS Visual Studio for Atmel microcontroller projects compared to the "native" IAR. The actual compilation then is done in IAR.
Sure, he/I/whoever could use vim/emacs etc, but most likely with lower efficiency.
 
Yeah, just like any other tool - GUI vs console cannot be answered with this is better or the other is better. Those are tools that are optimized for different use cases.
If you are a painter, console won't do anything for you. However, a sysadmin would and should love the console above all. It boils down to usage patterns.
I myself use both, each for the appropriate purpose.
 
Anyhow I prefer vim because it is very efficient and powerful. Emacs next to it, sounds good tools.
Can vim do refactoring? I am genuinly asking, I have no idea. I do heavy refactoring when bug fixing and that's why I like Eclipse so much.
vim might be a very powerful text editor, but its drawback is that it has no knowledge of the code structure, apart from coloring the keywords. I may be wrong about this - so please vi experts, correct me.
 
vim might be a very powerful text editor, but its drawback is that it has no knowledge of the code structure, apart from coloring the keywords.
You should generate tags files first using devel/ctags:
Code:
exctags -R
at the top of your project. Then you can simply navigate to definitions of symbols using Ctrl-].
If you install NERD tree vim plugin, you'll get the tree view of your project.
 
You should generate tags files first using devel/ctags:
Code:
exctags -R
at the top of your project. Then you can simply navigate to definitions of symbols using Ctrl-].
If you install NERD tree vim plugin, you'll get the tree view of your project.
That's nice but what I'd like to know is can I change a variable's name in vim? And would it warn me, if there is a name conflict with another variable?

In this list all supported Java refactorings in Eclipse are listed: https://help.eclipse.org/neon/index...jdt.doc.user/concepts/concept-refactoring.htm
The feature list is massive. Also there is similar support for generating code like getters and setters, constructors, delegates, ...

So code editing is not just writing text! It's manipulating the AST of a program - across files.
vi processes files and text. Eclipse+JDT processes AST and code. They work simply on different abstraction levels.

Now, this has only incidentally anything to do with GUI vs. console. Eclipse just happens to be a GUI application, but it could have been a console one just as good. It's the features that count.
 
It seems that you need X11.
Actually, I use a GUI, and I don't use X11. The MacOS GUI is no longer built on X. I have also used Windows machines as desktops (not to program on, only as a things to run many terminal windows on), and again it does not use X11.

However, I stand by my statement that most people are way more productive when using a GUI. Partially because a GUI allows one to create lots of virtual terminal windows (and run text based tools such as vi, emacs and make inside them), and use them flexibly.

Some other BSD user might likely do not rely on X11. Many are here in this case, usually older generation programmers and Unix.
I am definitely older generation. Matter-of-fact, I started programming at about the same time that Unix was first used at Bell Labs (in the late 70s). I also have done a lot of professional programming on many flavors of Unix, since roughly the mid- or late 80s. Yet I use a GUI.

I'm sure I have mentioned it before here: Ken Thompson, one of the two fathers of Unix, is still alive. Rumor has it that he uses a Chromebook. Rob Pike, one of the slightly younger members of the original Unix research group at Bell labs, and one of the fathers of Plan 9, uses a MacBook as his primary machine. Your claim that older programmers and Unix programmers don't use GUIs is just laughable, and inspection of most of those people will prove otherwise.
It seems that most windows programmers / developers does not rely on VIM, ...
You are confusing something here. There are lots of software engineers who use Windows or a Mac (or a Linux or BSD) desktop machine. But the bulk of them are not Windows programmers: they don't write program for Windows. Instead they use GUI-based machines to write programs, which most commonly run on a Unix variant, today nearly always on Linux (because Linux has a very high market share among servers).

Now, if you ask me: among my colleagues, what fraction uses vi, what fraction uses emacs, and what fraction uses GUI-based development environments (such as Eclipse, but there are many others that are either expensive or proprietary or both): I would guess roughly half use GUIs, and the second half is evenly split between emacs and vi. It could also be one third each. But in reality, what editor one uses to type in source code is really insignificant. For a real software engineer who builds complex systems, the editing of source code is only a small part of the job. Much more time is spent understanding requirements, reading and writing designs, communicating with other stakeholders (be they marketing, partners, customers, suppliers, other parts of the system), and interacting with people.

Look, the two best books about software engineering are "Peopleware" by Lister and DeMarco, and "Mythical Man-Month" by Brooks. You will not find a discussion of what editor to use in them, if I remember right. But Peopleware has a long discussion about good phone systems and how to manage phone conversations. Man-Month talks about an engineering group having to have a dedicated person who is a "source code librarian". Now, the technologies used when these books were written are obsolete (we no longer use desk phones, instead we communicate via e-mail, IM, and various web-based paradigms, and our source code is not stored on punched cards in drawers, but in SCCS like git and mercurial), but the principles still apply. To make software engineers productive, you need good communication mechanisms, the ability to get to a quiet area and focus on difficult technical problems, and a group culture sociological structure that makes people productive without waste and office politics. Which editor to use, and whether X11 is in the mix or not, is irrelevant.
 
Can vim do refactoring?

Neither Vim or Eclipse (not even the CDT) can refactor complex C++ projects in a guaranteed manner.
The more "wildwest" nature of native code and include headers with multiple ifdefs does admittedly make this difficult.

As for Vim / Java I believe there are quite a few plugins.
I know I found a very complex plugin to refactor a Javascript project into Lua. Quite impressive (although it didn't entirely work perfectly).
 
here`s a pic of the GUI from my most beloved local dev-machine
6372
 
Neither Vim or Eclipse (not even the CDT) can refactor complex C++ projects in a guaranteed manner.
The more "wildwest" nature of native code and include headers with multiple ifdefs does admittedly make this difficult.
I would not expect from any IDE to handle C or C++ effectively. I was talking just about Java.
The preprocessor is only one part of the problem. When you dive into template metaprogramming things start getting really weird indeed. There are only a handful of people in the world understanding and doing it, and they probably don't need an IDE for that.

As for Vim / Java I believe there are quite a few plugins.
I know I found a very complex plugin to refactor a Javascript project into Lua. Quite impressive (although it didn't entirely work perfectly).
That's exactly what I meant. There are tons of tools that claim to do refactoring. But Eclipse JDT is the only one that I know that actually works.
I remember using Microsoft Visual Studio to refactor C# and C++ and it was also not too bad, but featurewise not even close to what JDT offers.
 
The word "better" is a very slippery one. It implies a linear scale and a quantitative relation.
Without precisely specifying in which aspect we are comparing I don't think it's possible to conclude that one is better than the other.

Text editors are a matter of personal taste and experience, also - use case.

To formulate the question differently: "Which editor has better Java refactoring capabilities?" - Eclipse does this really well. I don't know vi enough that's why I asked the question.
If we ask however: "Which editor am I most productive with when editing general text?" - then it depends strongly on the person in question.

Would I use Eclipse in every possible situation? Definitely not. When I work in a textual console I go nano, ee, mcedit or even vi (but not gladly).
You need the right tool for the job.

And a last thought, vi is a very nice and sophisticated editor. If only it were a bit easier to learn and more intuitive, I just get frustrated so early on.
As I use hundreds of software tools I cannot possibly know all their features and shortcuts by heart. I don't have the time and energy to read the manual every 15 minutes when I am editing text. It's that simple. And with vi, I would have to do it.
vi is for people that use it all day long and have time to learn all the commands by heart.

I guess you meant Vim, as Vi(nvi) is pretty bare bones. Unless programmer needs extensive code refactoring, auto complete, auto suggest, auto formatting, tons of plugins to drive his project (Maybe in that case, his program is already complex), vi or even Vim is not going to cut through this. Not to mention IDEs are resource intensive for bare minimal tasks
 
I guess you meant Vim, as Vi(nvi) is pretty bare bones. Unless programmer needs extensive code refactoring, auto complete, auto suggest, auto formatting, tons of plugins to drive his project (Maybe in that case, his program is already complex), vi or even Vim is not going to cut through this. Not to mention IDEs are resource intensive for bare minimal tasks
Definitely! I'd never ever use Eclipse for editing my /etc/rc.conf. That would be silly.
But when working on my Maven+Java projects - most definitely. There I need all the bells and whistles, I am not insane to pull-up a member or extract an interface using nano.
 
That's exactly what I meant. There are tons of tools that claim to do refactoring. But Eclipse JDT is the only one that I know that actually works.

Thats kinda the point of Vim. I would never suggest use Eclipse JDT for Java, Visual Studio for C++, PHPStorm for PHP, etc. Switching between IDEs just for the language they support is too inefficient. Just for refactoring which in my opinion a less flexible solution to regex. I stick to one tool (Vim in my case) and the time saved on muscle memory alone beats some percieved conveniences.
Throw in the fact that I don't need to set up "projects" for the IDE to work and I can use it remotely across SSH, it is a clear winner for my uses.
How long have you been using Eclipse JDT for? Try downloading some earlier versions and you will see that this tool actually dies every year and a new completely different one (with the same name) takes its place. I am not learning a new tool every year!

Plus we should save the environment. The electricity requirements for booting up Eclipse takes so much of the earths resources in fuel that I cannot justify it XD

The real interesting debate is between Vim and Emacs!
 
  • Like
Reactions: a6h
Thats kinda the point of Vim. I would never suggest use Eclipse JDT for Java, Visual Studio for C++, PHPStorm for PHP, etc. Switching between IDEs just for the language they support is too inefficient. Just for refactoring which in my opinion a less flexible solution to regex. I stick to one tool (Vim in my case) and the time saved on muscle memory alone beats some percieved conveniences.
Throw in the fact that I don't need to set up "projects" for the IDE to work and I can use it remotely across SSH, it is a clear winner for my uses.
How long have you been using Eclipse JDT for? Try downloading some earlier versions and you will see that this tool actually dies every year and a new completely different one (with the same name) takes its place. I am not learning a new tool every year!

Plus we should save the environment. The electricity requirements for booting up Eclipse takes so much of the earths resources in fuel that I cannot justify it XD

The real interesting debate is between Vim and Emacs!
A regex works on text and refactoring works on an AST.
Working on a higher abstraction level does not have convenience as its purpose. Convenience is a side effect of using the right abstraction level.

Sure, I also have a script to recursively rename files and replace strings in them. But in a commercial project I would very soon be pulling my hair out, trying to figure out which variable name clashed with another.

To illustrate my point: A java program file can be edited on different abstraction levels:
  • using a modeler - on the model abstraction level
  • using a code editor like JDT - on the AST level
  • using a macroed editor like vi - on the text level
  • using a hex editor - on the binary level.
  • using an oscilloscope and a voltage generator to manipulate the memory bits directly.
All of them work, so why bother having a higher abstraction level? Why not use hex code for editing everything?
I use a general rule of thumb: I do not go down the abstraction hierarchy without a good reason to do so.
 
Back
Top