Live data from Hacker News

Software development topics I've changed my mind on

chriskiehl.com

591–600 of 788 posts

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

#591

> REPLs are not useful design tools (though, they are useful exploratory tools) I disagree with this. I’m a Clojure dev, and most of the time, I use the REPL to iterate on features, fix bugs, and refactor, thanks to the fast feedback loop. I used to be a Java dev—oh god, restarting the whole app after every change made me want to shoot myself in the head. Now, I use the REPL to build what I want and then move on. Thi…

Java has been able to hot swap code since the beginning? Well, maybe not the beginning. But very early versions.

The standard runtime didn't like some redefinition. But there were alternatives. Eclipse, for example, would purposely let you get otherwise broken code running so that you could breakpoint and replace as you went.

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

#592
post #496

> 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…

> I (16+ years developer) prefer to iteratively go between coding and designing I have an extra ten years on you and couldn't agree more. There are two jokes: - A few months of programming can save weeks of design. - A few months of design can save weeks of programming. Inexperience is thinking that only one of these jokes is grounded in truth. Recognizing which kind of situation you're in is an imperfect art, and in…

I like to say:

- One hour of planning saves ten hours or programming...

- and one hour of research saves ten hours of planning.

You can also invert it:

- Ten hours of programming saves one hour of planning...

- and ten hours of planning saves one hour of research.

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

#593

> 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…

Developer for 20+ years. I can't even design anything without coding something.

I've compared it to finding the integral of a function. Unless it's trivial or closely resembles something I've done before, how am I going to have the faintest idea what it's going to be like until I start?

Sometimes the exploration is the design process.

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

#594
Can someone explain the ORM thing to me? I’ve been a developer for 8 years but never really worked on an app that was really database dependent. ORMs for me have always been convenient, and the performance has been fine. I understand there’s obvious tradeoffs I’m making, and in some cases full control is necessary, but I’ve never seen it happen. What level of complexity does an app need to get to before an ORM becomes a nightmare?

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

#595
> Code coverage has absolutely nothing to do with code quality (in many cases, it's inversely proportional)

My theory from working at a company that demanded high unit test coverage is that it encourages coding patterns that are easier to create coverage for. Not necessarily easier to genuinely test, but easier to get a high coverage metric.

For example, try/catch blocks are bad if you want coverage. Now you have to do things like inject exceptions. People will try to design things so that's not required, with odd side effects.

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

#596
post #544

Earlier quoted context omitted.

Most programming is actually figuring out what already exists and what (and more importantly: why) the requirements are. This is best done long before a single line of code is written. I think the author is taking a wider view of "programming" than the actual writing of code as the end product. Some of the most important work I've done is spend the time to argue that something doesn't need to be done at all.

And how do you figure out what the requirements are? In my 10+ professional years, I have never gotten requirements by asking for them. Almost always I had to show my interpretation of what I think the requirements are, and use the feedback I got to define the actual requirements. The quickest way to get there is by iterating.

You don't ask for the requirements. You ask what they're trying to do, or what problem they're trying to solve. Sometimes I have to ask "where is this data going" or "what do you expect the end result of this to be".

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

#597

> 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…

This kind of thing is incredibly context dependent.

But it basically sounds like waterfall development, which is a reasonable approach in certain contexts.

But this thinking doesn't really make sense for any of the projects I work on.

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

#598

> 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…

Most programming is actually figuring out what already exists and what (and more importantly: why) the requirements are. This is best done long before a single line of code is written. I think the author is taking a wider view of "programming" than the actual writing of code as the end product. Some of the most important work I've done is spend the time to argue that something doesn't need to be done at all.

> Most programming is actually figuring out what already exists and what (and more importantly: why) the requirements are. This is best done long before a single line of code is written.

Calling requirements gathering "programming" is just misusing a term for no good reason. By all means, include it in "software development" but it clearly isn't "programming".

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

#599

> 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…

'Programming as theory-building' is an approach that has grown on me in the past few years. Your first draft may be qualitatively an MVP, but it's still just a theory of a final product you want, which requires a lot of iterative building before you get to that. As such, there's no way to not shift between code and design, especially when business requirements are involved and which themselves may change over time.

> Programming as theory-building

Sounds similar to https://en.m.wikipedia.org/wiki/Curry–Howard_correspondence.

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

#600
post #496

> 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…

> I (16+ years developer) prefer to iteratively go between coding and designing I have an extra ten years on you and couldn't agree more. There are two jokes: - A few months of programming can save weeks of design. - A few months of design can save weeks of programming. Inexperience is thinking that only one of these jokes is grounded in truth. Recognizing which kind of situation you're in is an imperfect art, and in…

The difference between DRY and YAGNI is experience. Both are predicting the future, and you can only do that by having watched code evolve.
Post reply on HN