Instance: programming.dev
Joined: 2 years ago
Posts: 3
Comments: 53
Principal Engineer for Accumulate
Posts and Comments by Ethan, firelizzard@programming.dev
Comments by Ethan, firelizzard@programming.dev
Programmer Humor@programming.dev
When I first started using Go I bemoaned the lack of true inheritance and classes. Now I love it.
How is that useful? Because if your answer is “I boycott devs that have type errors”, I got bad news for you. Unless you’re working on mission critical systems, like pace makers, airplanes, spacecraft, financial systems, etc, sinking the necessary engineering time to 100% prevent those kinds of errors is a bad business decision.
An error message should either be instructions for the user, or something they copy-paste into a bug report (or equivalent). That’s it.
How would telling the user there’s a type error be helpful at all? If the user isn’t a programmer that would be utterly useless to them. If they are a programmer it’s probably still useless because the probably don’t have the source on hand.
Programmer Humor@programming.dev
I did not because the only part I actually cared about was the bullshit clickbait title.
Programmer Humor@programming.dev
Upstream infrastructure was compromised. Implying it’s a fault with Notepad++ fault is disingenuous. What OSS maintainer is going to think, “I need to pick a hosting provider that’s not going to get hacked by the Chinese government”? Unless your favorite editor is being hosted on infrastructure hardened against state level hackers, it’s not any better.
Programmer Humor@programming.dev
I, on the other hand, would not consider someone a serious, competent professional if they were unable to do their job without an IDE. Sure, every serious developer I’ve known uses an IDE or similar for day to day work, but that’s a matter of convenience. In my book “competence” includes being able to do your job without needing your hand held by the IDE.
Programmer Humor@programming.dev
Feel free to not use a debugger for your software. But I don’t hate myself so I’m going to stick to using one whenever possible.
We need better distributed connectivity. It wouldn’t be that hard to build a project management system (issues, etc) on top of Git, but DVCS only gets you so far without a way to connect directly to the other contributors.
Programmer Humor@programming.dev
They’re different signals. The default handling is the same - terminate - but they’re triggered by different things and (if the process handles them) handled by separate handlers.
Programmer Humor@programming.dev
I tried for a good 20-30 minutes to get it to generate something that worked. It just gave me a sequence of garbage. Each one looked plausible but as soon as I really read the code it was clear there were issues. Different issues each time. I wasted more time trying to get it to produce correct code than it took to write it myself, once I gave up on the AI.
For me the most productive way to use AI is to ask it to suggest a strategy and to implement that myself. If the code is simple enough for the AI to get it right, I can often write it myself with less effort. If it’s something that requires multiple reprompts to get right, I can almost always do it faster myself.
Programmer Humor@programming.dev
Or something more complicated than it can handle. Ask it to implement an ASN.1 floating point parser. It looks good but the closer you look at the code the more trash it is.
The core bug was that they were reading from a map without checking if the map entry existed. Given a non-nil var m map[K]V, m[key] always succeeds (never panics). If the given entry doesn’t exist, it returns the zero value for the type, i.e. var v V. If V is a pointer type, accessing a field or method will panic (because the zero value is nil). If V is a struct or other value type, it can be used normally. That bug is on them. Any Go developer who isn’t a novice should know how maps and value types behave.
Programmer Humor@programming.dev
Seniors should know their shit. If a junior doesn’t need help they’re either not doing their job or not a junior.
I think you haven’t met “problem solvers” as creative as the ones I’ve met. My first job out of college I built an inventory system for a small engineering firm. One of the engineers tried to solve his problem instead of asking for help. Once he gave up and called us, it took us an entire day just to figure out how he had managed to screw things up as badly as he did.
Programmer Humor@programming.dev
That’s preferable to people who don’t ask for help until everything is hopelessly fucked because they kept trying to solve their problem different git commands, none of which they understood.
Flash was awful. I was contracted to un-fuck a custom video player and that experience convinced me that Flash was a dumpster fire that needed to die. Fortunately it did.
Keep your Rust to yourself. I don’t care what language someone else uses for their projects but Rust is an unreadable mess that I don’t want anywhere near my projects.
Any function can be written in any Turing complete programming language. That doesn’t mean a sane person would use malboge or brainfuck for a production system. Language choice can have a huge impact on productivity and maintainability and time is money.
If you own the company, no one can force you to sell shares.

Golang
When I first started using Go I bemoaned the lack of true inheritance and classes. Now I love it.
How is that useful? Because if your answer is “I boycott devs that have type errors”, I got bad news for you. Unless you’re working on mission critical systems, like pace makers, airplanes, spacecraft, financial systems, etc, sinking the necessary engineering time to 100% prevent those kinds of errors is a bad business decision.
An error message should either be instructions for the user, or something they copy-paste into a bug report (or equivalent). That’s it.
How would telling the user there’s a type error be helpful at all? If the user isn’t a programmer that would be utterly useless to them. If they are a programmer it’s probably still useless because the probably don’t have the source on hand.
I did not because the only part I actually cared about was the bullshit clickbait title.
Upstream infrastructure was compromised. Implying it’s a fault with Notepad++ fault is disingenuous. What OSS maintainer is going to think, “I need to pick a hosting provider that’s not going to get hacked by the Chinese government”? Unless your favorite editor is being hosted on infrastructure hardened against state level hackers, it’s not any better.
… with a debugger
I, on the other hand, would not consider someone a serious, competent professional if they were unable to do their job without an IDE. Sure, every serious developer I’ve known uses an IDE or similar for day to day work, but that’s a matter of convenience. In my book “competence” includes being able to do your job without needing your hand held by the IDE.
Feel free to not use a debugger for your software. But I don’t hate myself so I’m going to stick to using one whenever possible.
Because I don’t hate myself
We need better distributed connectivity. It wouldn’t be that hard to build a project management system (issues, etc) on top of Git, but DVCS only gets you so far without a way to connect directly to the other contributors.
They’re different signals. The default handling is the same - terminate - but they’re triggered by different things and (if the process handles them) handled by separate handlers.
I tried for a good 20-30 minutes to get it to generate something that worked. It just gave me a sequence of garbage. Each one looked plausible but as soon as I really read the code it was clear there were issues. Different issues each time. I wasted more time trying to get it to produce correct code than it took to write it myself, once I gave up on the AI.
For me the most productive way to use AI is to ask it to suggest a strategy and to implement that myself. If the code is simple enough for the AI to get it right, I can often write it myself with less effort. If it’s something that requires multiple reprompts to get right, I can almost always do it faster myself.
Or something more complicated than it can handle. Ask it to implement an ASN.1 floating point parser. It looks good but the closer you look at the code the more trash it is.
The core bug was that they were reading from a map without checking if the map entry existed. Given a non-nil
var m map[K]V,m[key]always succeeds (never panics). If the given entry doesn’t exist, it returns the zero value for the type, i.e.var v V. If V is a pointer type, accessing a field or method will panic (because the zero value is nil). If V is a struct or other value type, it can be used normally. That bug is on them. Any Go developer who isn’t a novice should know how maps and value types behave.Seniors should know their shit. If a junior doesn’t need help they’re either not doing their job or not a junior.
I think you haven’t met “problem solvers” as creative as the ones I’ve met. My first job out of college I built an inventory system for a small engineering firm. One of the engineers tried to solve his problem instead of asking for help. Once he gave up and called us, it took us an entire day just to figure out how he had managed to screw things up as badly as he did.
That’s preferable to people who don’t ask for help until everything is hopelessly fucked because they kept trying to solve their problem different git commands, none of which they understood.
Flash was awful. I was contracted to un-fuck a custom video player and that experience convinced me that Flash was a dumpster fire that needed to die. Fortunately it did.
Keep your Rust to yourself. I don’t care what language someone else uses for their projects but Rust is an unreadable mess that I don’t want anywhere near my projects.
Any function can be written in any Turing complete programming language. That doesn’t mean a sane person would use malboge or brainfuck for a production system. Language choice can have a huge impact on productivity and maintainability and time is money.
If you own the company, no one can force you to sell shares.