Live data from Hacker News

Rob Pike’s Rules of Programming (1989)

cs.unc.edu

71–80 of 483 posts

Re: Rob Pike’s Rules of Programming (1989)

#72
post #41

Earlier quoted context omitted.

> This is the biggest issue I see with AI driven development. The data structures are incredibly naive. Bill Gates, for example, always advocated for thinking through the entire program design and data structures before writing any code, emphasizing that structure is crucial to success.

Ah Bill Gates, the epitome of good software

Yes, actually. Gates wrote great software.

Microsoft is another story.

Re: Rob Pike’s Rules of Programming (1989)

#73

"Epigrams in Programming" by Alan J. Perlis has a lot more, if you like short snippets of wisdom :) https://www.cs.yale.edu/homes/perlis-alan/quotes.html > Rule 5. Data dominates. If you've chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming. Always preferred Perlis' version, that might be slightly o…

Also basically everything DHH ever said (I stopped using Rails 15 years ago but just defining data relationships in YAML and typing a single command to get a functioning website and database was in fact pretty cool in the oughts).

Re: Rob Pike’s Rules of Programming (1989)

#74

Obvious. Why the elevation of the obvious?

I think for people starting out - rule 5 isn't perhaps that obvious. > Rule 5. Data dominates. If you've chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming. If want to solve a problem - it's natural to think about logic flow and the code that implements that first and the data structures are an afte…

I mean - no. If you're coming to a completely new domain you have to decide what the important entities are, and what transformations you want to apply.

Neither data structures nor algorithms, but entities and tasks, from the user POV, one level up from any kind of implementation detail.

There's no point trying to do something if you have no idea what you're doing, or why.

When you know the what and why you can start worrying about the how.

Iff this is your 50th CRUD app you can probably skip this stage. But if it's green field development - no.

Re: Rob Pike’s Rules of Programming (1989)

#75
post #41

Earlier quoted context omitted.

> This is the biggest issue I see with AI driven development. The data structures are incredibly naive. Bill Gates, for example, always advocated for thinking through the entire program design and data structures before writing any code, emphasizing that structure is crucial to success.

Ah Bill Gates, the epitome of good software

> Ah Bill Gates, the epitome of good software

While developing Altair BASIC, his choice of data structures and algorithms enabled him to fit the code into just 4 kilobytes.

Re: Rob Pike’s Rules of Programming (1989)

#76

I feel like 1 and 2 are only applicable in cases of novelty. The thing is, if you build enough of the same kinds of systems in the same kinds of domains, you can kinda tell where you should optimize ahead of time. Most of us tend to build the same kinds of systems and usually spend a career or a good chunk of our careers in a given domain. I feel like you can't really be considered a staff/principal if you can't alre…

Rob Pike wrote Unix and Golang, but sure, you’re built different.

Do you think Rob Pike ever decided that maybe what was done before isn't good enough? Stop putting artificial limits on your own competency.

Re: Rob Pike’s Rules of Programming (1989)

#77

"Epigrams in Programming" by Alan J. Perlis has a lot more, if you like short snippets of wisdom :) https://www.cs.yale.edu/homes/perlis-alan/quotes.html > Rule 5. Data dominates. If you've chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming. Always preferred Perlis' version, that might be slightly o…

As much as relational DBs have held back enterprise software for a very long time by being so conservative in their development, the fact that they force you to put this relationship absolutely front-of-mind is excellent.

Re: Rob Pike’s Rules of Programming (1989)

#78
post #57

"Epigrams in Programming" by Alan J. Perlis has a lot more, if you like short snippets of wisdom :) https://www.cs.yale.edu/homes/perlis-alan/quotes.html > Rule 5. Data dominates. If you've chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming. Always preferred Perlis' version, that might be slightly o…

I find languages like Haskell, ReScript/OCaml to work really well for CRUD applications because they push you to think about your data and types first. Then you think about the transformations you want to make on the data via functions. When looking at new code I usually look for the types first, specifically what is getting stored and read.

Similarly, that approach works really well in Clojure too, albeit with a lot less concern for types, but the "data and data structures first" principle is widespread in the ecosystem.

Re: Rob Pike’s Rules of Programming (1989)

#79
post #5

"Epigrams in Programming" by Alan J. Perlis has a lot more, if you like short snippets of wisdom :) https://www.cs.yale.edu/homes/perlis-alan/quotes.html > Rule 5. Data dominates. If you've chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming. Always preferred Perlis' version, that might be slightly o…

Perlis is just wrong in that way academics so often are. Pike is right.

Could you be more specific?

Re: Rob Pike’s Rules of Programming (1989)

#80
post #64

Earlier quoted context omitted.

> Rob Pike wrote Unix Unix was created by Ken Thompson and Dennis Ritchie at Bell Labs (AT&T) in 1969. Thompson wrote the initial version, and Ritchie later contributed significantly, including developing the C programming language, which Unix was subsequently rewritten in.

Pike didn’t create Unix initially, but was a contributor to it. He, with a team, unquestionably wrote it.

> but was a contributor to it. He, with a team, unquestionably wrote it.

contribute His credits are huge, but I think saying he wrote Unix is misattribution.

Credits include: Plan 9 (successor to Unix), Unix Window System, UTF-8 (maybe his most universally impactful contribution), Unix Philosophy Articulation, strings/greps/other tools, regular expressions, C successor work that ultimately let him to Go.

Post reply on HN