Live data from Hacker News

Advice to my younger self: become allergic to the churn

lambdaisland.com

31–40 of 221 posts

Re: Advice to my younger self: become allergic to the churn

#31
post #27

Earlier quoted context omitted.

>I personally hate Make, it's burned me too many times. I’d be interested in hearing about the problems Make has caused you— Whenever I’ve needed to write or edit a makefile, it’s been a pain looking up the relevant details in the manual, but nothing as severe as what you seem to be implying. Have I just been lucky, working with less complicated projects, or something else?

Sometimes you can make mistakes which delete files, but you should keep development files backed up in some capacity. Still, spot the bug here: AS_SRC = main.S util.s OBJ = $(AS_SRC: .S=.o) [...] clean: rm -f $(OBJ)

Whatever the bug, git reset is the solution.

Re: Advice to my younger self: become allergic to the churn

#32

Just this morning I've spent an hour trying to get a well-known Http library to work in my project, cos the developers keep completely refactoring all the classes and methods. Stop it!!

Are you able to program against an interface rather than the classes themselves or is the entire API changing?

Re: Advice to my younger self: become allergic to the churn

#33

Just this morning I've spent an hour trying to get a well-known Http library to work in my project, cos the developers keep completely refactoring all the classes and methods. Stop it!!

A breaking change in API should mean a major version bump. You're either not using the public API, using the 'latest' version, or the library is, pardon my french, poop.

Re: Advice to my younger self: become allergic to the churn

#34
post #27
post #17

The piece reads like a Unix pastor's pulpit preaching "Great nutritious technologies to use: Make, Emacs, Lisp, CLI" "Bad unwholesome technologies to use: JavaScript, Ruby, IDEs, Graphical User Interfaces" I personally hate Make, it's burned me too many times. Now I use CMake, and I haven't been burned in years. And is it candy or an olive that I like VSCode and not Emacs (not that I've ever tried Emacs, I just don't…

>I personally hate Make, it's burned me too many times. I’d be interested in hearing about the problems Make has caused you— Whenever I’ve needed to write or edit a makefile, it’s been a pain looking up the relevant details in the manual, but nothing as severe as what you seem to be implying. Have I just been lucky, working with less complicated projects, or something else?

> I’d be interested in hearing about the problems Make has caused you

The main problem that kept burning me was that I'd have a "dirty" build when I thought I had a clean one or an incorrect one when I thought I had a correct one. It was super hard to get the dependency graph correct because developers were creating files left and right but would only update the Makefile just enough to get it building (and forget to add new header files to the list of headers, etc) so I had little confidence in incremental builds and was always building from the ground up.

CMake's generated build systems always have correct dependency graphs (i.e. it will only rebuild the bare minimum when you touch a given file) and I've always had complete confidence that my build is clean (since I just created a fresh directory) and that my incremental builds are correct.

Re: Advice to my younger self: become allergic to the churn

#35
post #27

Earlier quoted context omitted.

>I personally hate Make, it's burned me too many times. I’d be interested in hearing about the problems Make has caused you— Whenever I’ve needed to write or edit a makefile, it’s been a pain looking up the relevant details in the manual, but nothing as severe as what you seem to be implying. Have I just been lucky, working with less complicated projects, or something else?

Sometimes you can make mistakes which delete files, but you should keep development files backed up in some capacity. Still, spot the bug here: AS_SRC = main.S util.s OBJ = $(AS_SRC: .S=.o) [...] clean: rm -f $(OBJ)

The source files with a lower-case extension aren’t getting their file names translated and are passed straight through into OBJ unchanged.

Granted, knowing that there’s an error here helped greatly in spotting it; there’s a good chance I would have run the incorrect makefile at least once before investigating.

Re: Advice to my younger self: become allergic to the churn

#36
> The Churn is spending a week just to get a project you wrote a year ago to even run.

How much effort would it be worth avoiding to spend a week every year ?

Sure the weeks can add up, but so does the time spent on low level abstraction, and refusing to adopt better tools when the whole environment in changing around (e.g. there is no mention of native mobile environments. Would it be churn use to Swift instead of non-ARC ObjectiveC ?)

Re: Advice to my younger self: become allergic to the churn

#37

I mean, sure. But at a certain point, LISP was Javascript in terms of bleeding edge no? As someone who has built multiple things using React Native I can absolutely relate to the churn, but each time I willfully wade into it and each time I get better at handling all the pains that come along. I also can't think of a better way to improve debugging skills than to use a tech stack that gives rise to issues not easily…

Lisp was theory before it was code.

Javascript was a fashionable imitation of another popular language dialect.

Re: Advice to my younger self: become allergic to the churn

#38
post #34
post #27

Earlier quoted context omitted.

>I personally hate Make, it's burned me too many times. I’d be interested in hearing about the problems Make has caused you— Whenever I’ve needed to write or edit a makefile, it’s been a pain looking up the relevant details in the manual, but nothing as severe as what you seem to be implying. Have I just been lucky, working with less complicated projects, or something else?

> I’d be interested in hearing about the problems Make has caused you The main problem that kept burning me was that I'd have a "dirty" build when I thought I had a clean one or an incorrect one when I thought I had a correct one. It was super hard to get the dependency graph correct because developers were creating files left and right but would only update the Makefile just enough to get it building (and forget to…

That makes a lot of sense. Setting up automatic dependency detection is what finally made Make click for me, and it’s not the most straightforward process to get right. How does CMake detect the files that a given product depends on; does it have language-specific dependency detection or something else?

Re: Advice to my younger self: become allergic to the churn

#39
“Examples: Clojure, Common Lisp, HTML, Make

Counter-examples: JavaScript, Ruby, React-Preact-Vue-Angular-“

OP does not give any reason as to why these are churn and why stop them ? This makes no sense...basically to op’s point we should just never adopt new technology because it’s just a new shiny thing. This makes no sense at all.

Re: Advice to my younger self: become allergic to the churn

#40
Churn can be all of the things the post describes, and I think it's good to be skeptical of churn--always looking for ways to avoid it.

But it's also hard to tell the difference between churn and maintenance, and I think one of our modern world's blind-spots is a de-prioritization of maintenance.

Post reply on HN