> Most won't care about the craft. Cherish the ones that do, meet the rest where they are > (…) > People who stress over code style, linting rules, or other minutia remain insane weirdos to me. Focus on more important things. What you call “stressing over minutiae” others might call “caring for the craft”. Revered artisans are precisely the ones who care for the details. “Stressing” is your value judgement, not neces…
Software development topics I've changed my mind on
641–650 of 788 posts
Re: Software development topics I've changed my mind on
#642Earlier quoted context omitted.
Vehemently disagree. I get that go's conventions line up with your own, but when they don't, it's irritating. For example, Dart is finally coming around on the "tall" style ( https://github.com/dart-lang/dart_style/issues/1253 ). But why should people be forced to wait for a committee (or some other lofty institution) to change a style convention that then effects everyone using the language? What's the harm in letti…
> Why must the formatter be so insistent about it? Exactly to avoid conversations like this...If you want a tall format then just add a dummy comment at the end?
Re: Software development topics I've changed my mind on
#643Let's just apply "Hitchens's razor" to this kind of none sense:
What can be asserted without evidence can also be dismissed without evidence
Re: Software development topics I've changed my mind on
#644"Given a long enough time horizon, you'll deeply regret building on Serverless Functions" Let's just apply "Hitchens's razor" to this kind of none sense: What can be asserted without evidence can also be dismissed without evidence
Re: Software development topics I've changed my mind on
#645Earlier quoted context omitted.
gofmt sorts imports within the block they are in. I have a habit of putting stdlib imports, a line break, golang experimental (x) imports, a line break and external imports. I just tested, gofmt orders imports within these blocks. If I won't use the line breaks, it'll consider it a single block and will globally sort. golang also aligns variable spacing and inline comments to look them as unified blocks (or a table i…
I meant that you could do this with isort in Python or rustfmt with `group_imports = StdExternalCrate` (sadly, not the default), where the imports are automatically separated into blocks, which is basically what you seem to be doing manually. My point is that many things we end up doing manually can be automated, so I don't need to care about unsorted or unused imports at all and can rely on them to be fixed without…
Also, gofmt not removing the breaking lines and handling groups inside themselves tell me that gofmt is aware of these choices already and accommodates this without being fussy or needing configuration about it, and it's an elegant approach.
Re: Software development topics I've changed my mind on
#646Earlier quoted context omitted.
> Why must the formatter be so insistent about it? Exactly to avoid conversations like this...If you want a tall format then just add a dummy comment at the end?
Except that a prescriptive formatter with zero configurability is causing this conversation.
Go is a programming language developed for teams. From its syntax to core library to language server to tooling, Go is made for teams, and to minimize thinking. It's opposite of Rust. It's devilishly simple, so you can't make mistakes most of the time.
Even the logo's expression is an homage to this.
So yes, Go's formatter should be this prescriptive. The other thing is, you can continue this conversation till the end of time, but you can't argue with the formatter. It'll always do its thing.
In other words, "computer says no".
Re: Software development topics I've changed my mind on
#647Earlier quoted context omitted.
It was botched from the start because there's so many opportunities for unchecked exceptions as well. Without a more sophisticated type system that represented nullability, you can get NullPointerException anywhere. Divide by zero. And so on. You also have a problem similar to "monads and logging": if you want to log from anywhere in your program, your logging function needs to be exception-tight and deal with all th…
Unchecked exceptions are just Java's weird way of what languages call panicking these days. They suck, but as long as you don't throw them yourself and catch them in a logical place (i.e. at request level so your web server doesn't die, at queue level so your data processing management doesn't lock up, etc.) you can usually pretty much ignore them. The worst part about them is that for some reason even standard libra…
Re: Software development topics I've changed my mind on
#648Earlier quoted context omitted.
I've never understood the ORM hate because a good ORM will get out of the way and let you write raw SQL when necessary while still offering all of the benefits you get out of an ORM when working with query results: 1. Mapping result rows back to objects, especially from joins where you will get back multiple rows per "object" that need to be collated. 2. Automatic handling of many-to-many relationships so you don't h…
You are describing data mapper ORMs, a.k.a the good ORM. I think all the other ORM-loathing guys here had bad experiences with active record ORMs, a.k.a the bad ORM. Also, infrastructure guys and DBA types tend not to like ORMs. But they are not the ones trying to manage the complexity in the business process. They just see our queries are not optimal, and it is everything to them.
Re: Software development topics I've changed my mind on
#649Earlier quoted context omitted.
Except that a prescriptive formatter with zero configurability is causing this conversation.
When you are a solo dev, everything is acceptable. When you're in a group, this can cause friction and cause real problems if people are "so insistent" about their style. Go is a programming language developed for teams . From its syntax to core library to language server to tooling, Go is made for teams, and to minimize thinking. It's opposite of Rust. It's devilishly simple, so you can't make mistakes most of the t…
Re: Software development topics I've changed my mind on
#650Earlier quoted context omitted.
I've never understood the ORM hate because a good ORM will get out of the way and let you write raw SQL when necessary while still offering all of the benefits you get out of an ORM when working with query results: 1. Mapping result rows back to objects, especially from joins where you will get back multiple rows per "object" that need to be collated. 2. Automatic handling of many-to-many relationships so you don't h…
You are describing data mapper ORMs, a.k.a the good ORM. I think all the other ORM-loathing guys here had bad experiences with active record ORMs, a.k.a the bad ORM. Also, infrastructure guys and DBA types tend not to like ORMs. But they are not the ones trying to manage the complexity in the business process. They just see our queries are not optimal, and it is everything to them.
SQLAlchemy is the real deal, but it's more difficult and people prefer easy.