Live data from Hacker News

Software development topics I've changed my mind on

chriskiehl.com

331–340 of 788 posts

Re: Software development topics I've changed my mind on

#331
post #65

> Good management is invaluable. (I went most of my career before seeing it done well) I don't think I've ever seen good management. Anyone care to explain what that would look like?

Good managers will help you develop to where you want to be next. Part of this is helping you see where the next place for you is. Then they give you tasks to do that get you there.

They balance the above with the current business needs of course. Generally the two should be inline, but where they are not they help you manage that.

Re: Software development topics I've changed my mind on

#332

> Most programming should be done long before a single line of code is written Nah. I (16+ years developer) prefer to iteratively go between coding and designing. It happens way too often that when you're coding, you stumble across something that makes you go "oh f me, that would NEVER work", which forces you to approach a problem entirely differently. Quite often you also have eureka moments with better solutions th…

The OP didn't say what it is they're talking about that should be done before writing any code.

He might have meant design, and I'm not sure about that.

But the other thing i think of is: Understanding the problem.

It's hard to do too much of that before you start coding, and easy to do too little.

It overlaps with design to some extent, because once you understand the problem better, some designs will naturally seem inappropriate or better -- without having to spend time allocated to "designing" necessarily, just when you design you're going to come up with things that work a lot better the better you understand the problem you are trying to solve.

How the stakeholders see it, and what's really going on, and why it's a problem, and what would make an acceptable solution, and what the next steps down the road might be.

Re: Software development topics I've changed my mind on

#333
post #239

Earlier quoted context omitted.

Fortunately nowadays formatting issues can be delegated to autoformatting in any popular language. Some people still argue over autoformatter parameters, but then people will always find a bike shed to argue about.

Maybe a new paradigm for code formatting could be local-only. Your editor automatically formats files the way you like to see them, and then de-formats back to match the codebase when pushing, making your changes match the codebase style.

this works for pure formatting, but falls apart when you start linting to exclude certain syntax or patterns

Re: Software development topics I've changed my mind on

#335
post #288

Functional programming does not prevent you from using objects Stop listening to functional programming bros. Watch someone like Zoran Horvat. While I can't cosign all of his opinions, he tries to bridge the functional/OOP gap for OOP programmers. OOP programmers urgently need to distance themselves from this binary narrative. Everyone should understand functional programming and how they can utilize functional appro…

I wrote a comment echoing this point, about the coexistence of FP and OOP. This ties to the article's point about finding an algebra. Once you have an algebra, you have the basis for implementing a lot of your application in the functional style, manipulating objects that are inputs to and outputs from your algebra's operators.

Re: Software development topics I've changed my mind on

#336
>DynamoDB is a good database (IFF your workload lines up with what it's offering)

>The query planner is a cruel mistress

>ORMs are the devil in all languages and all implementations. Just write the damn SQL

>DynamoDB is the worst possible choice for general application development

>It's very hard to beat decades of RDBMS research and improvements

All these points tell a beautiful story

Re: Software development topics I've changed my mind on

#337
post #75
post #2

> Java is a great language because it's boring [...] Types are assertions we make about the world This is less of a mind-was-changed case and more just controversial, but... Checked Exceptions were a fundamentally good idea. They just needed some syntactic sugar to help redirect certain developers into less self-destructive ways of procrastinating on proper error handling. In brief for non-Java folks: Checked Excepti…

> adding it to your own function signature This is precisely why they are so bad: checked exceptions must not be allowed to be used outside the package (or jar, or whatever, just limit it) otherwise they cause non-local build failures in all dependencies. They're fine if you are developing the artifact that's going to be deployed.

[deleted]

Re: Software development topics I've changed my mind on

#338

> Java is a great language because it's boring My issue with Java is not that it's boring, which it is not, but there is so much that needs to be done to get a simple "Hello World" program to run which also depends on an external library. It feels like you first have to build a castle just to put a bed in a room.

Do you mean "public class HelloWorld { public static void main(String[] args) { ... } }"?

Or the ridiculous Spring abstractions that many people insist on?

The former is a minor nuisance, easily filled in by an IDE. The latter is far worse, unnecessary bloat and complexity. Architecture Astronaut stuff.

Re: Software development topics I've changed my mind on

#339
> Most programming should be done long before a single line of code is written

> Frontend development is a nightmare world of Kafkaesque awfulness I no longer enjoy

These two may be interrelated. I do app (frontend) development, and it greatly benefits from an iterative, evolutionary approach.

Re: Software development topics I've changed my mind on

#340
post #165

How does > There is no pride in managing or understanding complexity interact with > If I think something is easy, that's a sure sign I don't understand it. ? Is it implying that you must understand the irreducible complexity, but mustn't take pride in that understanding? Or is "difficult" the opposite of "easy" here, rather than "complex?"

It's saying you don't need to be proud of your app that has multiple layers of abstractions to be immune to every possible change. There are hard problems, but the most complex solution is rarely good or best.
Post reply on HN