firelizzard

joined 2 years ago
[–] firelizzard@programming.dev 1 points 2 years ago

I'm definitely biased because I love the language, but I think Go is a good place to start. The authors talk about the language design more than I've seen for other languages. The Go blog occasionally has posts like that but Russ Cox's blog is the place to go for the gnarly details. Another good place is the proposals repo, e.g. the generics proposal. I also browse issues on GitHub and look for ones with interesting discussions.

including the syntax, which I know most nerds dismiss as superficial.

Syntax is mostly irrelevant as far as what is possible with a language, but it is a critical aspect of how easy/hard it is to use a language, and most critically how easy/hard it is to read code written in that language. IMO the only thing that's more important than readability is whether the code works as intended.

[–] firelizzard@programming.dev 1 points 2 years ago (3 children)

You get used to it. The only time I really notice it these days is when I’m debugging and commenting out code.

[–] firelizzard@programming.dev 7 points 2 years ago (2 children)

You’re also a programming language design nerd? Like, “Compare the features of language A to those of language B”, or nerding out about the underlying mechanics of things like generic types, virtual method dispatch, and no-stop garbage collection? I thought I was the only one. Well not the only one but it doesn’t seem that popular of a thing to nerd out over.

[–] firelizzard@programming.dev 1 points 2 years ago

I think the degree of footgun danger depends a lot on the language and the application. I agree that C and C++ are dangerous until you really know what you're doing, though IMO most of the danger comes down to memory management and that's a portable skill, once you've learned it. That being said, I don't have a lot of experience with C++. C was my first language so I'm used to plain old normal boring pointers (are those "dumb pointers"?) and I've never understood why C++ needs 9 billion types of pointers.

Go has one particular footgun - loop range variables. Other than that, IMO high-level, garbage collected languages don't have major footguns like that. My first job was writing a bespoke inventory system for a manufacturing company, and I wrote it in a language I'd never used before - C#. In five years the only major issue that had was due to my inexperience with SQL and had nothing to do with C#. And though I haven't written nearly as much code, I'd say the same about Java, Ruby, Python, and JavaScript.

[–] firelizzard@programming.dev 1 points 2 years ago (1 children)

Did I find another Sanderfan in the wild?

[–] firelizzard@programming.dev 3 points 2 years ago

As my first job out of college (when I didn't know what I didn't know) I was hired to build a bespoke inventory system for a manufacturing company. My prototype became a production system the second I showed it to one of the engineers. The next three months of my life were a living hell as I frantically fixed bugs on a live system. Lesson learned.

[–] firelizzard@programming.dev 2 points 2 years ago (2 children)

Counterpoint: knowing a programming language doesn't matter if you can solve problems. A competent programmer can pick up a new language and be productive within a few months. That is, a new language within the same paradigm - going from a imperative language to a functional language can be a drastic shift, but going from one imperative language to another is easy. If you can't do that as a intermediate to senior developer, you're not a competent programmer IMO.

The real skills of a good programmer are things like problem solving, debugging, understanding how to write readable and maintainable code, etc. Having deep knowledge of a specific programming language or languages is helpful and enables you to work faster, but if you're only a skilled developer in the languages you know - if you aren't capable of pivoting those skills to another language - you aren't a skilled developer IMO.

[–] firelizzard@programming.dev 8 points 2 years ago

Maybe these days. That definitely was not true when I was growing up, or even a decade ago.

[–] firelizzard@programming.dev 4 points 2 years ago

I find it very hard to believe that AI will ever get to the point of being able to solve novel problems without a fundamental change to the nature of "AI". LLMs are powerful, but ultimately they (and every other kind of "AI") are advanced pattern matching systems. Pattern matching is not capable of solving problems that haven't been solved before.

[–] firelizzard@programming.dev 62 points 2 years ago (1 children)

Linus might be an asshole but he's actually competent. Elon Musk is a fucking joke of a person. Not to mention Linus hasn't done anything that compares to things like Elon suing his way into being a "founder" of Tesla and kicking out the actual founders.

[–] firelizzard@programming.dev 5 points 2 years ago

I could use Google but I’m looking for opinions not just what journals have that kind of content

[–] firelizzard@programming.dev 2 points 2 years ago (2 children)

Of course I don’t browse the web with the command line.

That's my point. Browsing the web with a command line tool is obnoxious - you use a GUI for tasks that you find easier/more pleasant to do with a GUI. The difference is where that line is. When I'm reviewing what work I've done and checking through my code for debugging statements and other cruft I don't want to push, I prefer to have a nice tree view of my change set where I can click on an item, see what I've changed, select lines and stage them, select other lines and revert them, etc. I could do all of that with command line tools (though not that many have mouse support) but I already know how to do exactly what I want with VSC so why would I use anything else?

You’re already programming! Just learn the tool!

If someone is incapable of learning the tool, that's an issue if they're a developer. But your statement implies that everyone should use the CLI for everything. My point is that it's a matter of preference. The CLI is not superior and GUIs aren't superior. They're both just tools and if you can get your job done quickly and efficiently, that's all that should matter.

view more: ‹ prev next ›