Live data from Hacker News

How I'm still not using GUIs in 2019: A guide to the terminal

lucasfcosta.com

181–190 of 248 posts

Re: How I'm still not using GUIs in 2019: A guide to the terminal

#181
post #18

I'm a game developer mainly writing/reading/debugging C++ on a codebase that's well over a million lines of code. As with most game-dev I'm developing almost entirely using Visual Studio, and I can't imagine trying to navigate code using a terminal based editor. Maybe it's just because this is what I'm used to, however I just don't see how some of the tools would even be displayed in a terminal (parallel stacks windo…

Some game devs prefer to use VS with an external editor (as shown by Casey Muratori and Jonathan Blow in their live streams).

I watched Casey's earlier streams. The only thing he likes VS for is the debugger. He would say he's looked and hasn't found anything better, but expressed a strong desire to find something else.

Since he started streaming he has moved (from emacs?) to I think http://4coder.net/, which seems to have spawned from his audience. Similarly, a few debuggers have, too. https://remedybg.handmade.network/ https://lysa.handmade.network/ but I think he still uses VS' debugger.

Re: How I'm still not using GUIs in 2019: A guide to the terminal

#182

"Not every machine has VSCode, Sublime or Atom installed, but every machine has a terminal." I love that the article goes from this sentence immediately to: "These are the main programs I use to make my terminal a complete development environment:" And proceeds to list 5 different programs, some of which are only available on macOS. Brilliant. Edit: One of which are only available*. My point isn't that there isn't a…

Using the terminal at least makes you proficient with the lowest common denominator of tools. I know I can SSH into any random machine, and edit a config with the copy of vi/vim it has, even if it doesn't have my fancy plugins. And if I get a new machine, all I have to do is install my tools via Apt/Brew/etc, clone my dotfiles repo, and run an install script.

> I know I can SSH into any random machine, and edit a config with the copy of vi/vim it has, even if it doesn't have my fancy plugins.

The android phone I'm currently messing around with had neither vi nor vim...

Yes, knowing the lowest common denominator is great. But doesn't make a great dev environment. OP is describing how to set up a customized one for exactly that reason.

Re: How I'm still not using GUIs in 2019: A guide to the terminal

#183

Earlier quoted context omitted.

It's not inherently a problem, but I do think that there are certain measures that can be taken to reduce code bloat, stack size, and development time. Someone else already noted that large business software can be a bit complicated solely based on the business needs. Regulatory rules and the ability to audit certain actions in the financial industry tend to add a bit of complexity to business logic, and those are co…

This has nothing to do with their core point. Yes, Java sucks. This doesn't prove that IDEs suck too. They make Java bearable. They can make editing simpler languages better as well.

I think you misread or I didn't convey my point well enough. I'm not against IDEs. I think they definitely have their place and are a great tool for development.

Re: How I'm still not using GUIs in 2019: A guide to the terminal

#184

Earlier quoted context omitted.

This is why defaults matter. People sometimes downplay changes with "well, you can just tweak it if you don't like it", but in the long run tweaking the install every time is effort. Especially when you're working on non-internet connected machines. It's why I get annoyed when for example Ubuntu stops shipping the ability to burn DVDs on the install disk.

Why would you have to tweak it every install? Isn't the whole point of separating the configuration from the application's data so that you can move it around?

Moving in a configuration is tweaking it. And then you're on a machine that is STIGed or is on a standalone network or you're helping someone do something on their account. The end result is you end up back in the default mode a lot so you might as well learn it.

Re: How I'm still not using GUIs in 2019: A guide to the terminal

#185

I always find the benefits of portability to be a rather funny one: It's always immediately followed by 800 lines of dotfiles that do an incredible amount of customization. The IDE vs. vim/emacs purist debate is always crazy to me. There are some places where IDE's are almost certainly better: Java in a large project in IntelliJ has to be 100x better than in Vim. For new languages or languages where there isn't subst…

Just wait for the vim guy who will be like "but muh java plugins make it more efficient then IntelliJ"... I think i am more productive in an IDE, faster. Sure if you have this insane VI/EMACS setup that you have tuned for years. Good for you, you probably are a fucking wiz. My standard right now is a terminal & IDE combo. Working in the cloud era as a data person, you need to be comfortable with terminal & vi/emacs (…

> I think i am more productive in an IDE, faster.

Personally agree with this part.

For those who need it because they are used to vim style editing most ides (at least on the Java side, + VS Code for everything else) has vim modes.

For those who have never used it and think they need it because it seems so cool and "everybody" uses it: You don't need it, at least not right now. Most great developers I know actually don't use vim for programming high-level languages, even if some of them use vim modes.

Instead I'd recommend:

- Use a decent mainstream IDE

- Memorize shortcuts for selection, search, replace, global search, global search and replace.

- Learn to use the included refactoring tools

- Learn to use the built in VCS tooling (or try and fall back to the console for VCS handling).

Re: How I'm still not using GUIs in 2019: A guide to the terminal

#186
Personally I reall like VScode debugger, and pretty much centered my workflow around it.

Sure, is really usefull to learn the ropes when work from terminal, because sometimes you will need to remote into a server.

Or even, as happened before, people will give me a shit machine to work from. I was prograing in C/C++ in payment terminals (you know, credit card machines), and they give me an old dell with only 4gb to work with.

The default environment was in Eclipse IDE, that usually fell bloated, and was even worst in this pc. So I just installed vim, make a fell changes in the .vimrc and I was read to go.

I fell things: I don`t really care about the whole h,j,k,l on vim. I see no problemas in using the arrow keys. Maybe this was a problem like 20 years ago, but now keyboards pretty much will always have the arrows, and they will work just fine. If you use a keyboard with the arrow keys, I really think you like to complicate things. Sorry, nothing personal.

Re: How I'm still not using GUIs in 2019: A guide to the terminal

#187
post #104
post #18

I'm a game developer mainly writing/reading/debugging C++ on a codebase that's well over a million lines of code. As with most game-dev I'm developing almost entirely using Visual Studio, and I can't imagine trying to navigate code using a terminal based editor. Maybe it's just because this is what I'm used to, however I just don't see how some of the tools would even be displayed in a terminal (parallel stacks windo…

> I'm a game developer mainly writing/reading/debugging C++ on a codebase that's well over a million lines of code. As with most game-dev I'm developing almost entirely using Visual Studio, and I can't imagine trying to navigate code using a terminal based editor. I'm working with vim on a ~5 million line C++ code base. Thanks to rtags[1] I've all I need: auto completion, goto definition, even semantically correct re…

Code visualisations I agree aren’t that useful, and if I never have to look at UML style diagrams it’ll be too soon.

The visualisations I’m talking about are mostly debugger tools. The parallel stacks view is life saving when you’re trying to figure out a deadlock. Having to scroll around this huge viewport with a cursor would just piss me off. I just can’t see how you could navigate a huge (10x screen width) node graph in a text terminal using vim style commands.

Re: How I'm still not using GUIs in 2019: A guide to the terminal

#188
For people using neovim, I've been impressed by this completion engine:

https://github.com/neoclide/coc.nvim

It uses Language Server Protocol and goes quite deep pulling completions, and can, eg, render function documentation into floating windows (not yet merged into neovim)

Re: How I'm still not using GUIs in 2019: A guide to the terminal

#189
post #18

I'm a game developer mainly writing/reading/debugging C++ on a codebase that's well over a million lines of code. As with most game-dev I'm developing almost entirely using Visual Studio, and I can't imagine trying to navigate code using a terminal based editor. Maybe it's just because this is what I'm used to, however I just don't see how some of the tools would even be displayed in a terminal (parallel stacks windo…

On the other hand I have worked on code bases in the 50M lines of code that would bring VS on its knees; people ended up just using it as a glorified text editor. Note I'm not knocking down on IDEs; as an Emacs user I would love reliable semantic indexing and navigation, but all the solutions that I have tried (rtags was the best) consume a lot of time and CPU indexing and switching branches often forces a rebuild. C…

I have nearly the same setup you do but recently switched from ag to ripgrep (with deadgrep emacs plugin). It's a bit faster and allows filtering by files, etc. You may want to give a test

Re: How I'm still not using GUIs in 2019: A guide to the terminal

#190
post #187
post #104

Earlier quoted context omitted.

> I'm a game developer mainly writing/reading/debugging C++ on a codebase that's well over a million lines of code. As with most game-dev I'm developing almost entirely using Visual Studio, and I can't imagine trying to navigate code using a terminal based editor. I'm working with vim on a ~5 million line C++ code base. Thanks to rtags[1] I've all I need: auto completion, goto definition, even semantically correct re…

Code visualisations I agree aren’t that useful, and if I never have to look at UML style diagrams it’ll be too soon. The visualisations I’m talking about are mostly debugger tools. The parallel stacks view is life saving when you’re trying to figure out a deadlock. Having to scroll around this huge viewport with a cursor would just piss me off. I just can’t see how you could navigate a huge (10x screen width) node gr…

You certainly wouldn‘t have a node graph like this in vim, because like you are saying, it just doesn‘t work well with text.

I had a look at parallel stacks and it looks nice and seems quite helpful. But I have to think, if you have that many threads that might deadlock and it happens often, if your architecture might be the issue.

Most of our parallelism is job based. There is a job queue and worker threads are taking jobs from it. So deadlocks are pretty much a non issue for us.

I‘m not trying to say that everything you‘re doing is obviously wrong, but the older I get the more suspicious I‘m getting if there‘s a need for „fancy“ debugging tools, because it might mask that there are some more serious issues in the application.

Post reply on HN