# A day without X11 ?



## Spartrekus (Apr 10, 2019)

Hello,

A day without X11 ? No startx, no xterm, just the beauty of the console (ttyv0, ttyv1,...).
Note that if you have 3 to 4 monitors, you can do : ssh 192.168.123.100 > /dev/ttyv0   and run the same _screen_  (or _tmux_ for younger hacker generations) on your four monitors.

Would you be able to survive a long day without using X11 at all?

Regards


----------



## aragats (Apr 10, 2019)

Why a day? And why "survive"? I believe many people comfortably live without X. Personally I don't – since working in a corporate environment forces you using graphics. However, I always read/write my work and personal emails in mail/mutt (two separate rc files), use www/w3m, used to use net-im/finch messenger. For development I excusively use vim (either console or lite package) with _NERD tree_ navigation.


----------



## Spartrekus (Apr 10, 2019)

aragats said:


> Why a day? And why "survive"? I believe many people comfortably live without X. Personally I don't – since working in a corporate environment forces you using graphics. However, I always read/write my work and personal emails in mail/mutt (two separate rc files), use www/w3m, used to use net-im/finch messenger. For development I excusively use vim (either console or lite package) with _NERD tree_ navigation.



You are right now using a web browser to post, so it means you use X.  bouuuuu 

Well, corporate needs engineers. X11 is common today and (wayland for Linux).


----------



## D-FENS (Apr 10, 2019)

Spartrekus said:


> Hello,
> 
> A day without X11 ? No startx, no xterm, just the beauty of the console (ttyv0, ttyv1,...).
> Note that if you have 3 to 4 monitors, you can do : ssh 192.168.123.100 > /dev/ttyv0   and run the same _screen_  (or _tmux_ for younger hacker generations) on your four monitors.
> ...



No, because I use Eclipse for development. 
I could do with an mcedit, but it would be going back to my productivity levels from the 90-s. No thanks


----------



## D-FENS (Apr 10, 2019)

aragats said:


> Why a day? And why "survive"? I believe many people comfortably live without X. Personally I don't – since working in a corporate environment forces you using graphics. However, I always read/write my work and personal emails in mail/mutt (two separate rc files), use www/w3m, used to use net-im/finch messenger. For development I excusively use vim (either console or lite package) with _NERD tree_ navigation.


Does vim support refactorings for languages? Just out of curiosity. I myself never learned it, so I mostly end up cursing that I can't delete a character using Backspace or Del.  I know many people love it.


----------



## forquare (Apr 10, 2019)

Not "without X", so this strictly doesn't count, but...

Back around 2008-2009 I did a week at work 'only' using terminal windows*.  It worked surprisingly well back then, think I used www/lynx to use the web, including the Lab management web tool and some forums I was on at the time.  It really didn't impact my weeks work at all and taught me a great deal about living on the command line.

I don't think it's quite as easy to do for my work today (especially as I work in a department that develops web based video players!)

*Desktop was the Java Desktop, so whatever terminal emulator came with that - at the time I was had three SunRays linked to a UltraSPARC server running pre-release OpenSolaris builds and a modified SunRay Server...


----------



## rufwoof (Apr 10, 2019)

> Note that if you have 3 to 4 monitors, you can do : ssh 192.168.123.100 > /dev/ttyv0   and run the same _screen_  (or _tmux_ for younger hacker generations) on your four monitors.


For my local tmux I have the backtick set as the Prefix key. F11 to add a new window, F12 to step between windows. I just find that easier/quicker. Which is handy for when I ssh into hashbang.sh ... that also runs tmux using the standard keys (ctrl-b prefix) ... as the two don't collide. I have my tmux menubar at the top of screen, hashbangs is the default bottom of screen. No need for multiple monitors and I don't use panes (split a single tmux window down and zoom in/out one of many panes), but instead just flip between windows (each program maximised).




hashbang.sh like many provides email, irc, textual browser. Local has calcurse (calendar/todo/diary), cmus (music) ..etc. and I like mc for file manager and text editor. I could get by with that alone, however for https/browsing X/gui is pretty much a necessity. My android phone however could be used as a alternative to that so fundamentally could I live a day without firefox/X/gui and use just my phone instead .. yes easily, but for actual work, cutting and pasting from a browser into a text file etc. would be inconvenient.  Whilst I can mount my phone so that its folders appear as any other folder on my desktop system, its more awkward. If I could mount my phone and have the desktop keyboard/mouse control it, and have its screen displayed on another monitor (or window) then that would be more viable. A gap in the market however is that such a 'app' isn't readily available AFAIK (my awareness on that front however is lacking, so hopefully someone might pipe in with a pointer to such a app  )

A nice feature of using a ssh server is that you can just detach (ctrl-b d) and then later login again and attach ($ tmux attach) back into the exact same (still running) session with all your windows ready to go.


----------



## rufwoof (Apr 10, 2019)

The ideal for me would be a modest sized (portable, but not too big to lump around, whilst having a reasonable screen size) laptop, 'dual cored' with a integral phone and bluetooth headphones/mic, where the android phone 'core' aspect displayed on the laptops screen and was controlled via the keyboard/touch screen/voice and that was multiplexed with tmux. i.e. easier on tired (older) eyes with the convenience of the likes of googles speak to text alongside reasonable screen text size for irc, email ...etc. (tmux console sized text).


----------



## ralphbsz (Apr 10, 2019)

Sure, if you want to destroy your productivity, go without better tools for a day ...

I do 90% of my programming and analysis work using terminals, and typically have 5 or 6 terminal windows open, at work on two monitors (at home typically one on my lap, except on weekends I set up the desk in the study with the big screen).  But there are many things for which a terminal is sub-optimal.  For example color-coded 3-way diffs when doing code merges.  Or searching e-mails by text strings.  Or integrating well-formatted documents, spreadsheets, and graphics into mail.  Or analyzing data using Root / Jupyter / iPython, with graphs integrated into the workflow.  And even for my terminal windows, I use a GUI underneath, which allows me to move and resize the terminals flexibly (so if an error message is too long, I quickly drag my window to be wider, and when I need to look at multiple pieces of code, I make it narrower and add another terminal).

I really worry about Spartrekus luddite attitude: text-mode terminals were good 30 or 40 years ago, so they must be good now.  I've had a terminal on my desk at work since 1984, and at home intermittently since 1986.  But claiming that this is good is complete nonsense.  Yes, they were good back then.  The alternative back then was either to go to a terminal room in the computer center, stand in line until a terminal became free, and program while the people standing in line were giving you dirty looks because you weren't typing fast enough.  Or the alternative was to write one's programs with pencil and paper on a desk, and then later type them in at night, when the terminals in the computer center were available.  Or to write programs on cards, organize them at your desk, and carry them over to the computer to run (for a reasonably-sized program of 5000 lines, you need a cart, since that big a program is too heavy to carry).  Today, restricting oneself to text-mode terminals only makes no sense, and simply kills productivity.


----------



## hukadan (Apr 10, 2019)

ralphbsz said:


> Or searching e-mails by text strings


While I agree on most of what you said, I remember (can't use it anymore) that mail/notmuch was pretty good at searching emails by text strings.


----------



## Crivens (Apr 10, 2019)

ralphbsz said:


> Or to write programs on cards, organize them at your desk, and carry them over to the computer to run (for a reasonably-sized program of 5000 lines, you need a cart, since that big a program is too heavy to carry).


You forgot the part where you tripped on the stairs and sent your deck crashing down two flights, praising yourself for the foresight to number them so you now had a chance to check your knowledge of sorting algorithms. I bet quicksort was discovered that way. And now one or two cards were missing...


----------



## ralphbsz (Apr 10, 2019)

Or the day parts of the program were so worn out that they had to be duplicated.  Unfortunately, the code had been commented by writing onto the cards with a felt-tip pen, so after duplication the comments were lost.  Oops.

One disaster that has never happened to me, but that I've heard about: If your source code that has been punched on paper tape falls down, and makes a giant spaghetti on the floor.  You really don't want to tear it, so you'll spend a long time carefully winding it back up.  Compared to that, vi and emacs are great.

There is a lot of mystique about the old days.  One particular example is the paleo diet: If the neanderthal ate it, it must be good.  Nonsense.  The neanderthal were not healthy at all, had short live spans, and suffered from terrible diseases and malnutrition.  They would have been much better off with modern medicine, vaccinations, and good food.  Which doesn't mean eating McDonalds hamburgers all day (like the President of the US does), nor does it mean megadoses of vitamin pills and "herbal supplements", but a good balanced diet.  How do I know that?  I've met the neanderthals!  My hometown in Germany is within easy bicycle distance from the little valley of Neandertal (today a small part of the city of Mettmann, a suburb of Duesseldorf), which has a charming museum.  Somewhere at home I have a picture of our son and his cousin hugging a neanderthal guy at the museum.  And in that area, if you go to an amateur football (soccer) game on a Saturday afternoon, or to a Kneipe (pub) on a Friday evening, the place is full of living specimens.   <- Cruel joke, not meant seriously

Seriously, the world of computing has gotten much better.  GUIs and X are really much better to use than just text-mode terminals (which are not obsolete, just part of the solution), and punched cards and paper tape have rightfully been put into the dustbin of history.


----------



## Crivens (Apr 10, 2019)

Well, they are perfectly usable as bogeymen to scare youngsters into accepting the safety of modern times. And that goes for punch card readers with clubs as for neanderthals wielding spools of paper tape.


----------



## tedbell (Apr 10, 2019)

When I started out with Arch Linux I used the console exclusively. Unfortunately because of the javascript on the internet today, you have to use one of the major browsers.


----------



## Crivens (Apr 10, 2019)

Isn't there an ASCII art backend somewhere? I remember watching one episode of GoT on the console when X wasn't running.


----------



## forquare (Apr 10, 2019)

ralphbsz said:


> Seriously, the world of computing has gotten much better.  GUIs and X are really much better to use than just text-mode terminals (which are not obsolete, just part of the solution), and punched cards and paper tape have rightfully been put into the dustbin of history.



Having gone to uni in 2006, I wished that the department had been able to keep one of their first computers (I don't recall what it was, we were told, but it was punch-card operated).  I didn't wish to be seriously taught computing on it, but I thought it would have been wonderful to have had a term working within the constraints of such a system.  That would have given us all a lot more gratitude to the environments we find ourselves working in today, I think.


----------



## Spartrekus (Apr 10, 2019)

roccobaroccoSC said:


> Does vim support refactorings for languages? Just out of curiosity. I myself never learned it, so I mostly end up cursing that I can't delete a character using Backspace or Del.  I know many people love it.


is vim better than eclipse? might it be actually the opposite?



rufwoof said:


> For my local tmux I have the backtick set as the Prefix key. F11 to add a new window, F12 to step between windows. I just find that easier/quicker. Which is handy for when I ssh into hashbang.sh ... that also runs tmux using the standard keys (ctrl-b prefix) ... as the two don't collide. I have my tmux menubar at the top of screen, hashbangs is the default bottom of screen. No need for multiple monitors and I don't use panes (split a single tmux window down and zoom in/out one of many panes), but instead just flip between windows (each program maximised).
> 
> View attachment 6362
> 
> ...


I have three monitors. They are connected, displaying and running only a single same session of screen (or tmux).  why X when there is a fast, productive console.

Actually, for developments, vim, emacs,... are there as example of old, powerful editors.

For images or PDFs, there is framebuffer.


----------



## hukadan (Apr 10, 2019)

Crivens said:


> Isn't there an ASCII art backend somewhere? I remember watching one episode of GoT on the console when X wasn't running.


There is graphics/libcaca. In french, caca means poo, hence their logo.


----------



## unitrunker (Apr 10, 2019)

Crivens said:


> You forgot the part where you tripped on the stairs and sent your deck crashing down two flights, praising yourself for the foresight to number them so you now had a chance to check your knowledge of sorting algorithms. I bet quicksort was discovered that way. And now one or two cards were missing...


That's what rubber bands are for ...


----------



## ralphbsz (Apr 10, 2019)

forquare said:


> Having gone to uni in 2006, I wished that the department had been able to keep one of their first computers (I don't recall what it was, we were told, but it was punch-card operated).  I didn't wish to be seriously taught computing on it, but I thought it would have been wonderful to have had a term working within the constraints of such a system.  That would have given us all a lot more gratitude to the environments we find ourselves working in today, I think.


If you live in the San Francisco bay area, you can go on Wednesday to the Computer History Museum, and watch an IBM 1401 in action.  No disk drive, only storage is tape.  No semiconductor RAM, only memory is magnetic code (only a few kB of it).  No chips, no silicon, only germanium transistors.  All programming happens on cards.  Today, they use Raspberry Pi or similar to emulate tape drives and card reader/punches for their maintenance operations, to reduce wear and tear.

To get to program it (which is hard but doable, I've met quite a few people who do it) you have to volunteer on the project.


----------



## aragats (Apr 10, 2019)

Crivens said:


> Isn't there an ASCII art backend somewhere?


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.


----------



## kpedersen (Apr 10, 2019)

I spent my day without X11 today. Ironically much of it was also spent writing graphical software.
The technology I am working on (OpenGL | Distributed) was being written on a development machine running FreeBSD 9.1 (eeek ) on a Thinkpad T23 and then I was using an Android 4.x tablet to receive the messages to perform the render.

Yes, cheating using Android (SurfaceFlinger) as the client renderer but it still counts 

Its all ANSI C (C89 for ultimate compatibility) so the relatively underpowered Pentium III could easily handle the compiles. At this point I honestly just jumped on that machine because I like the keyboard haha


----------



## hukadan (Apr 10, 2019)

Wozzeck.Live said:


> www/surf which is not aware of Javascript


www/surf is based on WebKit2 and is aware of Javascript. I use it to check my email on Protonmail which makes heavy use of Javascript.


----------



## D-FENS (Apr 11, 2019)

Spartrekus said:


> is vim better than eclipse? might it be actually the opposite?


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.


----------



## Deleted member 30996 (Apr 11, 2019)

Spartrekus said:


> Would you be able to survive a long day without using X11 at all?



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.


----------



## kpedersen (Apr 11, 2019)

roccobaroccoSC said:


> 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?


----------



## Spartrekus (Apr 11, 2019)

Trihexagonal said:


> 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.


----------



## Spartrekus (Apr 11, 2019)

kpedersen said:


> 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.




aragats said:


> 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


----------



## D-FENS (Apr 11, 2019)

kpedersen said:


> 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.


----------



## aragats (Apr 11, 2019)

Spartrekus said:


> 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.


----------



## D-FENS (Apr 11, 2019)

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.


----------



## D-FENS (Apr 11, 2019)

Spartrekus said:


> 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.


----------



## aragats (Apr 11, 2019)

roccobaroccoSC said:


> 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:
	
	



```
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.


----------



## D-FENS (Apr 11, 2019)

aragats said:


> You should generate tags files first using devel/ctags:
> 
> 
> 
> ...


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.


----------



## Deleted member 30996 (Apr 11, 2019)

Spartrekus said:


> It seems that you need X11.



Could you please tell me how you get that I need X11 from my statement?



Trihexagonal said:


> 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.


----------



## ralphbsz (Apr 12, 2019)

Spartrekus said:


> 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.


Spartrekus said:


> 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.


----------



## rigoletto@ (Apr 12, 2019)

graphics/wayland


----------



## kpedersen (Apr 12, 2019)

roccobaroccoSC said:


> 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).


----------



## JAW (Apr 12, 2019)

roccobaroccoSC said:


> 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.



Have you tried IntelliJ, there is even a free community edition in ports [java/intellij]?


----------



## ucomp (Apr 12, 2019)

ralphbsz said:


> Actually, I use a GUI, and I don't use X11.  The MacOS GUI


 

... well, its so simple:
on our local dev-machines we use GUI and on servers we never start  an X-Window-system(because not needed and wasted resource)


----------



## ucomp (Apr 12, 2019)

here`s a pic of the GUI from my most beloved local dev-machine


----------



## D-FENS (Apr 13, 2019)

ucomp said:


> here`s a pic of the GUI from my most beloved local dev-machine


I love it!


----------



## mod3777 (Apr 13, 2019)

tedbell said:


> When I started out with Arch Linux I used the console exclusively. Unfortunately because of the javascript on the internet today, you have to use one of the major browsers.


And video playing?


----------



## D-FENS (Apr 13, 2019)

kpedersen said:


> 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.



kpedersen said:


> 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.


----------



## mod3777 (Apr 13, 2019)

roccobaroccoSC said:


> 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.
> ...



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


----------



## D-FENS (Apr 13, 2019)

JAW said:


> Have you tried IntelliJ, there is even a free community edition in ports [java/intellij]?


Yes I have. I don't use it, I know about it and it's probably a good IDE but I don't use it because of personal taste and being used to Eclipse's UI.


----------



## D-FENS (Apr 13, 2019)

mod3777 said:


> 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.


----------



## kpedersen (Apr 13, 2019)

roccobaroccoSC said:


> 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!


----------



## D-FENS (Apr 13, 2019)

kpedersen said:


> 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!
> 
> ...


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.


----------



## D-FENS (Apr 13, 2019)

Also, regarding the topic code generation, the regex would be completely useless.


----------



## kpedersen (Apr 13, 2019)

roccobaroccoSC said:


> 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.


----------



## D-FENS (Apr 13, 2019)

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.


----------



## kpedersen (Apr 13, 2019)

roccobaroccoSC said:


> 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


----------



## D-FENS (Apr 13, 2019)

kpedersen said:


> (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?


----------



## D-FENS (Apr 13, 2019)

kpedersen said:


> 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.


----------



## kpedersen (Apr 13, 2019)

roccobaroccoSC said:


> 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"!





						UNIX Programming Environment, The (Prentice-Hall Software Series): Amazon.co.uk: Brian W. Kernighan, Rob Pike: 9780139376818: Books
					

Buy UNIX Programming Environment, The (Prentice-Hall Software Series) 1 by Brian W. Kernighan, Rob Pike (ISBN: 9780139376818) from Amazon's Book Store. Everyday low prices and free delivery on eligible orders.



					www.amazon.co.uk
				








						Eclipse IDE: Eclipse IDE based on Eclipse 4.2 and 4.3 (vogella series): Amazon.co.uk: Vogel, Lars: 9783943747041: Books
					

Buy Eclipse IDE: Eclipse IDE based on Eclipse 4.2 and 4.3 (vogella series) by Vogel, Lars (ISBN: 9783943747041) from Amazon's Book Store. Everyday low prices and free delivery on eligible orders.



					www.amazon.co.uk


----------



## Crivens (Apr 13, 2019)

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.


----------



## D-FENS (Apr 13, 2019)

kpedersen said:


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


I agree. Supporting features and abstractions comes at a cost of resource consumption. That's for sure.


----------



## D-FENS (Apr 13, 2019)

Crivens said:


> 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.


LOL! That's a good one! Illustrating a point.


----------



## Spartrekus (Apr 14, 2019)

kpedersen said:


> 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
> 
> ...


The glory of using cscope, ctags, cmake,... and foremost java 

It is definitely a smart move to use Unix console only.


----------



## badbrain (Apr 14, 2019)

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.


----------



## Spartrekus (Apr 14, 2019)

badbrain said:


> 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.


----------



## D-FENS (Apr 14, 2019)

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.


----------



## D-FENS (Apr 14, 2019)

Spartrekus said:


> 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.


----------



## badbrain (Apr 14, 2019)

roccobaroccoSC said:


> 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.
> 
> ...


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.


----------



## D-FENS (Apr 14, 2019)

badbrain said:


> 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.


----------



## meine (Apr 14, 2019)

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


----------



## Spartrekus (Apr 14, 2019)

meine said:


> 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).


----------



## D-FENS (Apr 14, 2019)

meine said:


> 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.


----------



## meine (Apr 14, 2019)

Spartrekus said:


> 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]


----------



## meine (Apr 14, 2019)

roccobaroccoSC said:


> 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...


----------



## Spartrekus (Apr 14, 2019)

roccobaroccoSC said:


> 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)


----------



## Spartrekus (Apr 15, 2019)

meine said:


> 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.
> 
> ...



In past Prolog had bit of that...


----------



## D-FENS (Apr 15, 2019)

meine said:


> 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.
> 
> ...


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.


----------



## D-FENS (Apr 15, 2019)

Spartrekus said:


> 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.


----------



## badbrain (Apr 15, 2019)

I used stock eclipse for java ee. Eclipse use it own ecj compiler to incremental compile source changes in the background so sometime I saw it eating cpu when I do nothing.


----------



## kpedersen (Apr 15, 2019)

roccobaroccoSC said:


> 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 certainly get this one. Its weird but if I switch between two GUI programs like Dia and Gimp, it is fine, and two terminal programs like Vim and interactive CLI (i.e to run make) I am fine. However I find switching context between CLI and GUI programs much harder.

I think I just don't like being able to use the mouse for some things and not others, same with keyboard. I want to stick to one paradigm entirely.

Also the reason why tiling window managers to me are a bit daft. You have to use the mouse on the GUI programs within them, but often have to use the keyboard to move the windows themselves around (such as hold alt to grab a window). Doesn't make much sense; a single method of controlling the WM would surely be faster than a weird mixed approach (one that Gnome 3 is faffing about with). A single background console (with Tmux) with a few GUI windows in the foreground as they are needed surely seems easier (but each to their own I guess).

Because I happen to use 90% CLI applications that is a very strong reason why I am quite committed to Vim. Possibly if I had to use the majority of GUI applications, then yeah I imagine switching to a GUI text editor would be highly likely (possibly something a bit lighter than Eclipse though.. Sorry! )

When using MS Windows, I do use Notepad++ because everything is a sodding GUI application but my whole workflow is slow and awkward. I also find myself in a much worse mood after a while. That said, I don't think it is me. I think almost all Microsoft Windows users have slow awkward workflows, they just don't know any better haha.


----------



## Spartrekus (Apr 15, 2019)

kpedersen said:


> I certainly get this one. Its weird but if I switch between two GUI programs like Dia and Gimp, it is fine, and two terminal programs like Vim and interactive CLI (i.e to run make) I am fine. However I find switching context between CLI and GUI programs much harder.
> 
> I think I just don't like being able to use the mouse for some things and not others, same with keyboard. I want to stick to one paradigm entirely.
> 
> ...



The problem of long use of mouse is not good for the body, muscle and sitting position.
It is fairly better to use a gamer keyboard, about 100 to 250 bucks, only and foremost, this without a mouse. Ideally cordless on a good office chair (with arms).

Eyes:
Large fonts and longest distance between eyes and monitor, in order to tend to long distance vieweing. It allows to reduce eyes fatigue.
Console /black background with no-bold color, with high large font, ex. the regular bsd (second choice) of vidcontrol
With vidcontrol you can change it or just use into vim or emacs.

At the gold age, we could display graphics too on old computers.
Today it is much largely complicated, and FreeBSD tends to runs X11 rather than Framebuffer (no vgl support).







Monochrome : 27 800 FF (France, Dec. 83)


----------



## D-FENS (Apr 15, 2019)

kpedersen said:


> However I find switching context between CLI and GUI programs much harder.


Just use programs like yakuake or guake. The console is one keypress away.

Also, I don't use 90% of CLI because most of my CLI is automated. I would say ~50% CLI and 50% GUI.


----------



## Spartrekus (Apr 15, 2019)

roccobaroccoSC said:


> Just use programs like yakuake or guake. The console is one keypress away.
> 
> Also, I don't use 90% of CLI because most of my CLI is automated. I would say ~50% CLI and 50% GUI.



When you have chance not to be on MS Windows, why not trying under *BSD to go fully CLI and to drop this X11 that slows you down... ?

Just give  a try what is really CLI : 








						GitHub - spartrekus/lkmmc: The original Unix file manager (since Unix V6), modified and improved
					

The original Unix file manager (since Unix V6), modified and improved  - GitHub - spartrekus/lkmmc: The original Unix file manager (since Unix V6), modified and improved




					github.com


----------



## D-FENS (Apr 16, 2019)

Spartrekus said:


> When you have chance not to be on MS Windows, why not trying under *BSD to go fully CLI and to drop this X11 that slows you down... ?


Because we're not in 1992 anymore. Just a couple of reasons: Fonts, colors, scrolling, clipboard, tiling. Also - we not always use the PC for textual work. There are the picture and video editors, WYSIWYG, also - I sometimes watch a funny video in my break. You have a 1000 reasons to use the GUI.
Provided you have a handy console window, I don't see why I should drop functionality from my system? How does a GUI slow me down? I still have a CLI one F12 press away?


----------



## kpedersen (Apr 16, 2019)

roccobaroccoSC said:


> Because we're not in 1992 anymore.



That's not a great reason. A better one would be because "you prefer GUI environments".
The CLI environment far predates 1992 and will likely far succeed us and our children. The CLI isn't "old". It is a tool like any other and will exist in many modern forms on all relevant operating systems in the future.

Besides, I found even the primitive GUI environments in 1992 much better than the kiddie / tablet crap we have today (like Gnome 3) 
In reality you need both GUI and CLI but at least the CLI is getting better with time.


----------



## D-FENS (Apr 16, 2019)

kpedersen said:


> That's not a great reason. A better one would be because "you prefer GUI environments".
> The CLI environment far predates 1992 and will likely far succeed us and our children. The CLI isn't "old". It is a tool like any other and will exist in many modern forms on all relevant operating systems in the future.
> 
> Besides, I found even the primitive GUI environments in 1992 much better than the kiddie / tablet crap we have today (like Gnome 3)
> In reality you need both GUI and CLI but at least the CLI is getting better with time.


That's incorrect. I do not "prefer GUI environments", as I do not prefer CLI environments. There's the right tool for each job I want to do.
I have a perfectly capable CLI environment inside Xorg. It's summoned with F12 and it's a drop-down console.
What I am against is stripping down my GUI just for the sake of what? Having a textual console for my CLI? Why? I do have a CLI inside my X server. Why should I drop functionality without gaining anything?

It makes absolutely no sense for me.
If you demonstrate some advantage - sure, but I don't see any. What can I do more or better if I stop my display manager? I see only hacks and workarounds, so why?

Having CLI and working without an X server is not the same. X has tons of terminal emulators and CLI is completely supported there.
What is not supported in the pure textual console is graphics.


----------



## aragats (Apr 16, 2019)

roccobaroccoSC said:


> I need to see the manual page


That' a good point in favor of graphics: nowadays many manuals exist in form of PDF only.
I use vim to write C/C++ code, but I need to see schematic too!


----------



## ralphbsz (Apr 16, 2019)

roccobaroccoSC said:


> Because we're not in 1992 anymore.


The Xerox Alto started being sold in the early 70s.  Even before that, computer graphics existed (at least since the 1950s), although not really as a "graphical interface", since input operations on the graphics screens (like using light pens) were restricted to single graphics programs, not a shell-like construct that runs over multiple programs.

The Apple Macintosh made graphics and GUIs into a mass-market commodity in 1984 (see the famous commercial).  Funny story: A friend of mine (former ride-sharing partner at work) bought a Mac in 1984, and was showing it to colleagues.  One time he brought it to another lab to show to people there, and was demonstrating how useful it was.  After half an hour of demonstrating getting work done, he noticed that he had forgotten to bring the keyboard, and had used nothing but screen and mouse, and still been able to impress the audience!

P.S. Just looked it up: The IBM graphics terminal model 2250 was introduced in 1964.  Look for it on Wikipedia.  I think I first saw them in the mid 70s, and I used them, plus Tektronix 401x terminals in the early 80s.  Even early "home" computers of the late 70s, like TRS-80 or Commodore PET or Apple-II were able to display low-resolution graphics.


----------



## Spartrekus (Apr 16, 2019)

kpedersen said:


> That's not a great reason. A better one would be because "you prefer GUI environments".
> The CLI environment far predates 1992 and will likely far succeed us and our children. The CLI isn't "old". It is a tool like any other and will exist in many modern forms on all relevant operating systems in the future.
> 
> Besides, I found even the primitive GUI environments in 1992 much better than the kiddie / tablet crap we have today (like Gnome 3)
> In reality you need both GUI and CLI but at least the CLI is getting better with time.




It is actually good that people forget what console is. It is good that GUI is more dominant and present everywhere.
Because....
It means that overall Unix will go to different directions: Linux and Unix *BSD community.
As said one, wayland + kde + compositions + systemd + bash + xinerama + vnc + teamviewer + pulse + ... all those amazing stuffs.
There is a mouse too.
ah... I forget the web also, with Google Chrome and all css, java, ... stuffs.
It looks a bit like this in the screenshot.

Real CLI means that X11/Xorg/Wayland has never ever been installed.


----------



## rufwoof (Apr 16, 2019)

cli, command line, yes ... is limited. text user interface however much less so, especially if running a framebuffer on which you can view pdf's, images, videos ...etc. tmux with multiple panes that you can zoom/restore, or multiple windows is more usable than cli. mc file manager and text editor and you can cut/paste between multiple documents etc.

text user interface can work well in a more server/client arrangement, for instance I set my local tmux prefix key to be the backtick key, F11 for new window, F12 for next window (so not to collide with mc's F1 to F10). Which means that when I ssh into hashbang.sh and run its tmux that uses the default keys, that doesn't conflict with my local tmux. I also have my tmux 'tray' at the top of screen so hashbang's tmux 'tray' is at the bottom of the screen. On that I leave irc, mail ...etc. just running. I just detach (ctrl-b d) and logoff, so when I later log in again and attach (tmux attach), mail, irc etc are all instantly active/available again.

But why run just that alone, when you can have both. Typically I use three jwm (my preferred window manager) desktops. One for music (audacious with its equaliser etc.), another for browser (firefox with multiple tabs typically open), the third for tmux (with its multiple windows across two tmux 'trays').

In addition to that I have two sessions running, DISPLAY :0 and :1 (Xephyr for isolation), where :1 has capabilities dropped and firefox runs in a very restricted userid and where socks is proxied (again to hashbang.sh) so all https and dns traffic flows through a ssh tunnel. :1 is disposable, i.e. starts 'clean' at each restart.

Sticking to just one or the other cli or gui is just either hardcore, or task specific. If you spend all day just ssh logged into other remote boxes then text interface might fit that task better. If you spend all day surfing or doing other gui type activities then you may have no need for a textual interface. For others, a combination of both can serve better than just restricting yourself to one or the other alone. Meat and three veg, but by all means go a day without meat (or veg) if you're so inclined.


----------



## Spartrekus (Apr 16, 2019)

Maybe, we just need to rediscover what is limited graphics like DEC computers ...




(Illustrative picture only)
Framebuffer is a possible way to get some graphics without X11/Wayland using API fbio.h or actually alternatively caca library.

Btw, those keyboards were so cool...


----------



## ralphbsz (Apr 16, 2019)

Sorry, that's not the "first" DEC computer.  Rather on the contrary.  That thing looks like a low-end LSI-11 (a small PDP 11 with a micropchip-based CPU), and was probably from the 1970s.  Actually just looked it up: The VT100 sitting on top means that the picture can not have been taken before 1978.  Those things were mass-marketed: tens of thousands or hundreds of thousands were built.

The very first computer Digital built, the PDP-1, was about 20 years earlier.  And the PDP-1 is mostly famous for giving rise to the first graphical computer game, space wars.  I've never played it on a PDP before the PDP-11; it kept getting ported to newer and newer models (even though the instruction sets are quite incompatible).  Matter-of-fact, about 10 minutes by bicycle from where I'm sitting right now is the Computer History Museum, and they have the only functioning PDP-1 that's left in the world.  And once in a while they fire it up, and demonstrate playing spacewars.  The original PDPs are a very exclusive club; only dozens and dozens were ever built.

So as you see, graphical interfaces are really old, and have a long and illustrious history.


----------



## D-FENS (Apr 16, 2019)

Spartrekus said:


> It is actually good that people forget what console is. It is good that GUI is more dominant and present everywhere.
> Because....
> It means that overall Unix will go to different directions: Linux and Unix *BSD community.
> As said one, wayland + kde + compositions + systemd + bash + xinerama + vnc + teamviewer + pulse + ... all those amazing stuffs.
> ...



CLI means command line interface. If you have a command line, you have a CLI. It has nothing to do with text terminal vs GUI terminal. You can have CLIs in both.
Also you can have GUIs in both: ncurses is a GUI for text mode and Xorg based GUIs work in graphical mode.

These must be differentiated: CLIs are essential and will most definitely be around for the foreseeable future. GUIs also.

When it comes to: Should a GUI be installed? The answer is simple: removing the GUI is a resource optimization. If you need maximum resource utilization and use only CLI locally or over SSH (for example on a web server or Internet gateway), graphics has no place on such a system.
On a workstation, notebook or handheld device - I think GUI is a must have in 99% of the cases.

One more point: If you want to automate stuff, CLIs are irreplaceable. I hate GUI only programs without a CLI interface.
With that said, for every purpose there is the proper tool. If I have a screwdriver this does not mean I have to throw my hammer away, does it?


----------



## D-FENS (Apr 16, 2019)

Spartrekus said:


> It is actually good that people forget what console is. It is good that GUI is more dominant and present everywhere.
> Because....
> It means that overall Unix will go to different directions: Linux and Unix *BSD community.
> As said one, wayland + kde + compositions + systemd + bash + xinerama + vnc + teamviewer + pulse + ... all those amazing stuffs.
> ...


This is amazing!

However, installed mps-youtube and trying it out and - flop, it does not show the video, I hear the audio only. That's the problem with such hacks, you need to make them work first.
Otherwise the idea is phenomenal, thanks!


----------

