A day without X11 ?

A regex works on text and refactoring works on an AST.

Yep, in my line of work I deal with technologies in which an AST cannot be built by the text editor. LLVM is making life easier (and there do exist plugins to leverage that). You need smarter tools than what Eclipse provides to perform an automatic refactor of many languages.

That said, working on text for 99% of refactors is actually no problem. If you have *really* fsked up and need to do a program wide refactor then you probably have bigger problems haha.
You can refactor your code but you will still need to manually fix the diagrams, unit tests and everything else.

Intellisense, autoformatting, refactoring and automatic code completion are all very overrated in my opinion. Getting away from them is liberating. Developers are starting to realise this which is why the lightweight "Visual Studio Code" is now more popular than the fat bloated "Visual Studio 2017".

But you can easily experience what I mean by downloading a large project (i.e Unreal Engine 4, LLVM or Firefox) in Eclipse (CDT) and try to refactor something trivial like a single function name in the same way you would Java. It wont work. To be honest, I doubt you could even get the project loading and building in Eclipse (Eclipse is simply not flexible enough for large projects). For one, Eclipse has no concept of custom build tools like ubt.
 
Smart is good, I'm all for smart. :) As long as you keep enough control to do exactly what you want.

Surely anything can be written with simple tools. It just eats a 100 times more time. A house can be built with a hammer and a shovel, but having a crane and a truck too helps you finish it in 1/100-th of the time it would otherwise take.

CDT: I am not praising using CDT for C++ development. C++ is very hard to parse effectively. That's not the case for Java.
 
Surely anything can be written with simple tools. It just eats a 100 times more time. A house can be built with a hammer and a shovel, but having a crane and a truck too helps you finish it in 1/100-th of the time it would otherwise take.

Yep, unless you cannot fit the crane and truck round the side of the house in such a built up residential area.

Project constraints are a bitch XD
 
(Eclipse is simply not flexible enough for large projects).
That is factually incorrect. I have worked on projects with a few million lines of code, it works just fine. Is every Eclipse plugin usable for every large project. Of course not. But the platform should not be confused with a specific plugin you have bad experience with in a concrete setting.
Eclipse is perfect for large projects. Especially for newcommers who need to browse through the code and need orientation.
For example, when the cursor is on a method call, you can skip to the method definition in the interface. You could also jump to any of the N implementations of the method. I don't know another tool that could do this. Can vim open implementations of a method? emacs?
 
Yep, unless you cannot fit the crane and truck round the side of the house in such a built up residential area.

Project constraints are a bitch XD
Of course! There is a tool for everything. Every tool has its applications and areas it does not fit well. Eclipse is a very powerful tool. vi also. And they have areas where each of them is appropriate and areas where that's not the case.
 
Can vim open implementations of a method? emacs?

Vim makes no assumption that the language you are using supports methods (i.e C). This is what makes it fast and flexible :).

That said, we both use IDEs. You use Eclipse. I use the "UNIX Programming Environment". Both are actually more similar than you think. With tools like cscope, ctags, cmake; they are both at feature parity. I just rather write my IDE plugins in C rather than Java ;)

Both also have books that are thicker than they should be for glorified "text editors"!
 
Best thing I can say about a java manual is that it's index sent you to page 691 for ArrayOutOfBoundsException, in a book of 690 pages.
 
  • Thanks
Reactions: a6h
Vim makes no assumption that the language you are using supports methods (i.e C). This is what makes it fast and flexible :).

That said, we both use IDEs. You use Eclipse. I use the "UNIX Programming Environment". Both are actually more similar than you think. With tools like cscope, ctags, cmake; they are both at feature parity. I just rather write my IDE plugins in C rather than Java ;)

Both also have books that are thicker than they should be for glorified "text editors"!
The glory of using cscope, ctags, cmake,... and foremost java ;)

It is definitely a smart move to use Unix console only.
 
Eclipse is not perfect for large project. If you put everything on ssd and has 64gb ram with 8 cores cpu I would reconsider it. The first thing when I open eclipse is waiting for it to indexing something if I forgot to close my opened project from last session. Sometime it just stuck indexing something and not let my app run when I kick the green > button. Sometime I have to delete the whole workspace, create a new one and import my previous projects. Many more small annoyances.
 
Eclipse is not perfect for large project. If you put everything on ssd and has 64gb ram with 8 cores cpu I would reconsider it. The first thing when I open eclipse is waiting for it to indexing something if I forgot to close my opened project from last session. Sometime it just stuck indexing something and not let my app run when I kick the green > button. Sometime I have to delete the whole workspace, create a new one and import my previous projects. Many more small annoyances.

Common humans are used to wait in front of their monitors (soft, win updates, login, ...), or to go to the store to get a better hardware, as recommends Microsoft.
 
From the word "indexing" I deduce that your message relates to CDT. I am not endorcing Eclipse for any kind of C++ development.

I use eclipse with Java and that's in my opinion its strongest part.

When it comes to C++ development, you have to be really careful to organize your project properly and not overuse macros. The key is to break dependencies - compile and link time. If you don't do that, the result is poor build and IDE performance.
I worked for 6 years on a large C++ project and we had build times of 15-30 minutes on relatively fast dev machines. Touching anything small and you had to rebuild half the world to compile your module.
I optimized the build, broke dependencies and fixed the precompiled headers and the build times were cut to less than half, while at the same time you could touch most of the CPP files and it would result in compiling 1 file and linking 3-4 executables.

To summarize: a suboptimal build is not the IDE's fault. Also - insufficient resources are not the IDE's fault.
If you do serious development on a large project, yes - you should have at least 32 and even better 64 GB of RAM.
Resources and tools make you productive.

By using a simple text editor you're not fixing the problem with the build. It's just being hidden.

Also, Java programs are not slow per se. There's this myth that to make Java programs quicker, you have to reimplement them in C++ or that Assembler programs are faster than C++.
It's the algorithm that makes things slow, not the language. You could write slow or fast programs in any language. Even in Assembler you could shoot yourself in the foot. Even easier than in higher gen languages.
For high performance calculations there are GPUs, for the rest - using abstractions is a good idea.
 
Common humans are used to wait in front of their monitors (soft, win updates, login, ...), or to go to the store to get a better hardware, as recommends Microsoft.
Unfortunately yes. In my opinion we should be changing that in a couple of ways:
  • make things asynchronous and parallel
  • optimize algorithms to avoid repeating operations
  • better hardware (this is a given anyway)
  • better abstractions
And I believe all these are coming gradually.
 
From the word "indexing" I deduce that your message relates to CDT. I am not endorcing Eclipse for any kind of C++ development.

I use eclipse with Java and that's in my opinion its strongest part.

When it comes to C++ development, you have to be really careful to organize your project properly and not overuse macros. The key is to break dependencies - compile and link time. If you don't do that, the result is poor build and IDE performance.
I worked for 6 years on a large C++ project and we had build times of 15-30 minutes on relatively fast dev machines. Touching anything small and you had to rebuild half the world to compile your module.
I optimized the build, broke dependencies and fixed the precompiled headers and the build times were cut to less than half, while at the same time you could touch most of the CPP files and it would result in compiling 1 file and linking 3-4 executables.

To summarize: a suboptimal build is not the IDE's fault. Also - insufficient resources are not the IDE's fault.
If you do serious development on a large project, yes - you should have at least 32 and even better 64 GB of RAM.
Resources and tools make you productive.

By using a simple text editor you're not fixing the problem with the build. It's just being hidden.

Also, Java programs are not slow per se. There's this myth that to make Java programs quicker, you have to reimplement them in C++ or that Assembler programs are faster than C++.
It's the algorithm that makes things slow, not the language. You could write slow or fast programs in any language. Even in Assembler you could shoot yourself in the foot. Even easier than in higher gen languages.
For high performance calculations there are GPUs, for the rest - using abstractions is a good idea.
My project is Java. My college teach Java. A not so complex project. Most of the time students are instructed to delete their workspace and import old projects when thing get stuck or slow down.
 
My project is Java. My college teach Java. A not so complex project. Most of the time students are instructed to delete their workspace and import old projects when thing get stuck or slow down.
From my experience one should be extra careful about the plugins one installs. I have seen some really bad eclipse plugins that totally screw everything and you have to wait for ages for them to build. These plugins should be removed.
This is the reason I don't install the prepackaged Eclipses but start with a bare plaftorm. The prepackaged ones don't allow you to remove their parts.
One example for a bad plugin would be the JPA project configurator from the J2EE platform tools. On a workspace with ~50 projects it goes crazy and you have to wait for 15 minutes when you load your workspace.

One bad habit of eclipse is to block your workflow while doing something. The app is single threaded and that's a side effect. This is one of its biggest downsides IMHO.

With that said, when working on large projects, one has to carefully configure the workspace and the plugins so that they work in an optimal way. I personally use workspaces with 100-200 projects without any problem.
One of the nice things is, because Eclipse is based on OSGi, it persists its state on disk. So when you start it next time, everything is loaded and good to go....
Compilation is also done extremely efficiently and your code gets compiled while you edit it. Very nice.

All in all, I would neve edit my java projects outside the IDE. It manages so much for you - class paths, dependencies, .... I have long forgotten how to launch the programs manually and set the class path myself. It's a hassle and unnecessary.

Another insanely good feature of Eclipse JDT is its code formatter. It's quite powerful indeed.
 
When I set up my FreeBSD box, I intended to live without X11.

A tty-life is very productive,

you only need X to socialize
 
When I set up my FreeBSD box, I intended to live without X11.

A tty-life is very productive,

you only need X to socialize

how can you display a png on framebuffer then?
This is the biggest issue actually, because libcaca does not display that well, even on height /row of console of 300 (chars).
 
When I set up my FreeBSD box, I intended to live without X11.

A tty-life is very productive,

you only need X to socialize
Fair point.
For me productivity boils down to being able to focus. My personal bottleneck is focus. I have no problems typing fast.
 
how can you display a png on framebuffer then?

My console life is full of character, no visuals needed.

[off course a bit exaggerated, but since my profession only needs well chosen words, I don't need pictures other than for amusement. but "YES", everybody needs X11 in this era and use bits efficiently to describe things words don't have the capacity for]
 
My personal bottleneck is focus.

Mine was Focus too, and just using a few CLI programs was enough.

Until I discovered that you can easily switch between CLI and GUI.

Even screen is distracting, because my working file in vim is open next to email, RSS feeds, IRC and whatever more...

When having a console with just one program, distraction is just a <Meta>+<Fx> away...
 
Fair point.
For me productivity boils down to being able to focus. My personal bottleneck is focus. I have no problems typing fast.
I think that tty is more productive because you can type very fast with emacs or vim.
No distraction, if you need something w3m or links and it runs faster than any X11 or windows super pc.

But still I need to see my png in latex, and I still use devuan over fbi /image fb viewer (on sshfs tunneled) :(
 
Mine was Focus too, and just using a few CLI programs was enough.

Until I discovered that you can easily switch between CLI and GUI.

Even screen is distracting, because my working file in vim is open next to email, RSS feeds, IRC and whatever more...

When having a console with just one program, distraction is just a <Meta>+<Fx> away...

In past Prolog had bit of that...
 
Mine was Focus too, and just using a few CLI programs was enough.

Until I discovered that you can easily switch between CLI and GUI.

Even screen is distracting, because my working file in vim is open next to email, RSS feeds, IRC and whatever more...

When having a console with just one program, distraction is just a <Meta>+<Fx> away...
Yeah sure. If you work on a text document or a configuration file it's perfect.
My work on the other hand mostly requires switching between 2 or more programs and for me switching context every 5 seconds is actually a hassle and I lose focus. I need to see the manual page, my source and its output next to each other. They are different aspects of the same task. For this reason I love >=3 monitors.
But you're right, it's very easy to get distracted in this setting.
 
I think that tty is more productive because you can type very fast with emacs or vim.
No distraction, if you need something w3m or links and it runs faster than any X11 or windows super pc.
But still I need to see my png in latex, and I still use devuan over fbi /image fb viewer (on sshfs tunneled) :(
I can generate Java code even faster with Eclipse. It takes about 2 seconds to generate missing getters and setters, a couple of constructors, to format and clean up the code - there's a shortcut for this.
To type this manually it would take me 5 minutes, also - why risking a mistake when the IDE does it perfectly each time?
I prefer spending my intelectual capacity on the creative side of the programming and letting the IDE do the monotonous heavy lifting.
 
Back
Top