Live data from Hacker News

John Carmack: Best Programming Setup and IDE – Lex Fridman Podcast Clips

youtube.com

271–280 of 303 posts

Re: John Carmack: Best Programming Setup and IDE – Lex Fridman Podcast Clips

#271
post #87

Has only a hammer and looking for nails. What takes appreciation is the differences between a DOS game executable and a modern hyperscale backend app server fleet. gdb-server ain't going to solve many problems on 500k boxes.

He’s talking about his field. Clearly gdb isn’t going to cut it for all fields within programming. You wouldn’t use gdb for HTML nor PL/SQL, for example. But these fields have their own debugging tools too. As does working on server fleets. I don’t really see the need to get snarky about his comments like that.

Even PL/SQL has a quite nice debugger.

Re: John Carmack: Best Programming Setup and IDE – Lex Fridman Podcast Clips

#272

Earlier quoted context omitted.

Another master programmer Linus Torvalds seems to have the opposite attitude though https://lwn.net/2000/0914/a/lt-debugger.php3 Wonder if there's a difference in average attitude between people who do creative stuff (e.g. games) vs people who do infrastructure type stuff (e.g. Linux kernel)

Yes, but of the two, which one would you say is happier? Some people like doing it the hard way because they think a bit of suffering is good for you.

Furthermore, Carmack mentions that this aversion to debuggers stems from the Linux bias.

Re: John Carmack: Best Programming Setup and IDE – Lex Fridman Podcast Clips

#274
post #90

Earlier quoted context omitted.

VSCode is based on Electron, a glorified hack/resource hog of Chromium than even Github largely abandoned. It maybe "great" and mildly "popular" here and there, but it's built on a foundation of mud. Build native apps that work and are performant. With enough effort and care, a frictionless experience can be made with a TUI should some "Jetbrains" come along and try to make a commercial product out of it.

Why should I prefer a strict grid of characters based on technology from more than half a century ago to a GUI for something with the functionality of a tool such as VSCode or Sublime Text?

> "Technology from more than half a century ago"

I think you are missing out the part where it's technology developed continuously for almost half a century.

VSCode is very nice, but I quickly become frustrated by it's lag in comparison.

It does beats the pants of every other GUI IDE out there, with JetBrains IDEs coming a significant second place.

But Vim or Emacs with LSP are extremely capable IDEs and have unmatched speed compared to any GUI IDE you can name.

Re: John Carmack: Best Programming Setup and IDE – Lex Fridman Podcast Clips

#275
post #128

Earlier quoted context omitted.

I listened to the first two hours on a train yesterday. I'll likely finish it later. The discussion about tools and languages was particularly interesting. You might expect John Carmack to be pretty old school and dogmatic on using e.g. C and instead it seems he has a very broad taste and experience with different languages and tools. Just a very pragmatic person that switches between doing C, python, Go and other la…

There really is a learning curve to using these tools, and the investment might not be worth it. I use GDB so unfrequently that I have to re-learn it every time I want to do something. Coupled with the fact that it's not integrated with the language (I can't run `cargo debug` or `cargo gdb` or something) and not the default on Mac (why should I relearn lldb), I end up just printing stuff instead of using it.

I don't know; I'm only a few years younger than John Carmack. IDEs with decent debuggers were a thing from the mid nineteen eighties already. They were widely used and you can learn to work with them in a few afternoons. And decent IDEs are available for many languages. Including Rust, C, and C++, etc. Also on macs.

Not using tools that are there is a choice that a lot of people seem to insist they need to make. I've heard all the excuses on this front and it usually boils down to people believing in their super skills, discipline, and intelligence to the extent that they believe they don't need those tools. Some people actually feel threatened by a tool telling them they are doing stuff wrong. They get annoyed and frustrated by that. It's irrational.

Re: John Carmack: Best Programming Setup and IDE – Lex Fridman Podcast Clips

#276
post #11

Such a joy to listen to Carmack talk about just about anything. Not sure if it's an age thing but there is a particular feeling common to contemporaries of that era, growing up in our formative years as computers grew from their humble beginnings to the incredible machines we have now. At that time, each new improvement brought astounding differences in capability. In the space of 10 years we went from 8k to 64k of m…

On the flip side, if only had the teenage me had a computer at home my last year in school. Or more than a single book on Turbo Pascal (with OO support in v5.5!) I was reading again and again. Forget about the Internet, had the college-age me had access to just Wikipedia :( It's _really_ painful to remember how scarce information was in the early 90s and how prohibitively expensive the hardware. I guess it was a bett…

> It's _really_ painful to remember how scarce information was in the early 90s

I think that scarcity of information has helped me quite a lot. I often see others giving up on problems where they lack sufficient information, but I have an ingrained ability to sniff out the information - whether it's reverse engineering, gleaning subtle hints from what is available in the documentation I do have or just "thinking like the computer" to intuit things, I can very often make headway where others have failed.

Re: John Carmack: Best Programming Setup and IDE – Lex Fridman Podcast Clips

#277
post #128

Earlier quoted context omitted.

There really is a learning curve to using these tools, and the investment might not be worth it. I use GDB so unfrequently that I have to re-learn it every time I want to do something. Coupled with the fact that it's not integrated with the language (I can't run `cargo debug` or `cargo gdb` or something) and not the default on Mac (why should I relearn lldb), I end up just printing stuff instead of using it.

I don't know; I'm only a few years younger than John Carmack. IDEs with decent debuggers were a thing from the mid nineteen eighties already. They were widely used and you can learn to work with them in a few afternoons. And decent IDEs are available for many languages. Including Rust, C, and C++, etc. Also on macs. Not using tools that are there is a choice that a lot of people seem to insist they need to make. I've…

Blame the tool, not the users

Re: John Carmack: Best Programming Setup and IDE – Lex Fridman Podcast Clips

#278
post #45

Earlier quoted context omitted.

> he has insane hours and has never burnt out I think there's two major things you need in order to do that. Work on what you love/want and have no/little need for socializing.

I think the point he made was rather the opposite. He works 10-12 hours a day, 60 hours a week, 6 days a week. He needs seven to eight hours of sleep, like a normal person. He specifically mentioned that he never was much into doing all-nighters and that he experimented with working different times of the day. So he'd start in the afternoon and then continue until deep in the night when he was younger whereas having…

I read Carmack post in Hackernews before. He mentioned that he didn't perform deep work for 12 hours. Within that 12 hours, he will perform maintenance work as well

Re: John Carmack: Best Programming Setup and IDE – Lex Fridman Podcast Clips

#279
post #247

Earlier quoted context omitted.

> bullshit socializing damn, I can only feel bad for people who use that term :( it seems like simple human interaction are being optimized out.

You say it but I argue otherwise. I am not saying don’t socialize, but think hard about what you get from many of those events. You’re drunk off your mind, you meet and hang out with people you really don’t care that much about, and often you are left with a hangover or worse, a sense of not having had a good time. Just those types of events.

I think everyone learns to outgrow these events

Re: John Carmack: Best Programming Setup and IDE – Lex Fridman Podcast Clips

#280

In 2000-2006 I implemented garbage collectors in C on Linux. I used Emacs and GDB, and likely also DDD and GDB from within Emacs. I don't think there was anything better back then. It's been a long time since I used C, but I wonder whether VSCode really gives a better experience than Emacs. Nowadays you can use Emacs with an LSP server, which is likely also what VSCode is doing. And there are Emacs distributions like…

> Regarding the comment about the debugging. For me personally, I always take the time to study the code first before I start debugging. A lot of times I already find the problem by just reading the code and even if that is not the case, I have a much better understanding about how the code is supposed to behave and that makes the debugging session a lot more useful. > And I say that because I have the impression tha…

I actually did watch the video. Don't understand me wrong: I don't have anything against a good IDE and a good debugger. I currently work with C# and use Rider.

Still, for me personally, I need to study the code and know what to expect before I start the debugger. It makes the debugging session a lot more useful and efficient. And, actually, like John Carmack said that other people told him, in a way, I do "replay" the code in my head while reading it. And a lot of times, I already figure out what the error is when reading the code. But, I will often still debug the code to verify that what I'm thinking is true: I do trust the debugger more than my brain.

Aside from that he also mentioned that nowadays software systems tend to be complex and too big to completely fit into one's mind. I agree with that, but IDEs make it easier to isolate the code in the system that is relevant for the issue at hand: you can find the call sites of a method, the use of results, the origin of input values and so on. I don't know how good IDEs are currently for C/C++, but those things are standard for C# and Java. And with those tools, it really is not that hard to get a rough view on where and how a piece of code is used in a big system. Obviously, this will be easier in a well-designed system than in a spaghetti-code system.

It is important to know all the contexts in which the code you are debugging is used. Often people are focused on the one specific context in which a user saw a bug, and they focus on that, start a debugging session for that, fix the code for that and break the usage in the other context... because they do not take the time to read and understand the code. And that is also where unit/integration tests come into play.

So, nothing against the use of good IDEs and debuggers, but always be sure to understand the code you are changing.

Post reply on HN