Hacker News new | past | comments | ask | show | jobs | submit login
Review of James Coglan’s Building Git (alanstorm.com)
49 points by teleforce on April 20, 2023 | hide | past | favorite | 23 comments



First real paragraph contains false or at least misleading information.

then a venture backed startup created a web application and support structure for the git program called GitHub (a web application and support structure that was mostly separate from the git project) and sold themselves to Microsoft for seven and a half billion dollars in stock.

GitHub didn’t get involved with VC until they had already completely captured the market. They were a bootstrapped, remote-first startup which later became venture-backed.

Decent review overall, excellent book, but when they created the “web application and support structure for the git program,” they were not yet venture-backed.


You raise a valid point. Seems the development started in 2007 and the site launched in 2008, only funded by the founders. It wasn't until 2012 they received their first investment if Wikipedia is to be trusted.


First round of funding discussed here on HN:

https://news.ycombinator.com/item?id=4220353


I wish there were more books in this mold (reimplementing interesting or foundational systems in ways intended for humans to read and understand). I feel the like systems that would admit this sort of thing are important systems. I’d love to see this done with (for example) a Smalltalk image and interpreter, or a simplified network stack.


Well —

"Chapter 26 described the function of the Smalltalk virtual machine, which consists of an interpreter and an object memory. This chapter and the next three present a more formal specification of these two parts of the virtual machine. Most implementations of the virtual machine will be written in machine language or microcode. However, for specification purposes, these chapters will present an implementation of the virtual machine in Smalltalk itself. While this is a somewhat circular proposition, every attempt has been made to ensure that no details are hidden as a result."

p568 "Smalltalk-80: The Language and Its implementation" 1983

https://rmod-files.lille.inria.fr/FreeBooks/BlueBook/Blueboo...

"To check the accuracy and the clarity of the first book, we invited a number of groups outside of Xerox to build implementations of the Smalltalk-80 system. Those groups uncovered problems with the written description, and with the system itself, which we then corrected. … Paul McCullough of Tektronix suggested that all of the implementors submit papers describing their experiences to a software engineering journal or to collect papers from each group into a book form. This book, then, is the outcome of that suggestion."

iv Preface "Smalltalk-80, Bits of History, Words of Advice" 1983

https://rmod-files.lille.inria.fr/FreeBooks/BitsOfHistory/Bi...


This is magical! Thank you!


It's not quite the same thing, but The Architecture of Open Source Programs (https://aosabook.org/en/index.html) has a wealth of knowledge that is well worth exploring.


This will serve to protect millions of users. Upon contacting SPAMMER ROOTKITS recovery, I was shocked and amazed to learn that SPAMMER ROOTKITS Recovery had assisted me in recovering my account, which I had lost to fictitious online investors. I had seen a slew of people who have commented about SPAMMER ROOTKITS Recovery, and I kept wondering if they were truly an expert and not a scammer like the others. I'm really delighted to share this story with you all, and if your BTC trading account has been compromised, you can also get in touch with them (spammer@fastservice.com) or (+351920258835).


Love it and would buy but I don't know Ruby and I feel like it would take me too much work to learn ruby syntax to make it worth my while.

Note: I think there should be a blurb somewhere on the sales page that it's written in Ruby, it was hard to figure that out.


No need to worry about Ruby language; it's in Appendix and covers pretty much what you need to know.

https://shop.jcoglan.com/building-git/contents.pdf


Any similar types of project based books?


Perhaps Crafting Interpreters?

https://craftinginterpreters.com/


Not a book but an "awesome list"-formatted collection that mentions Crafting Interpreters: https://github.com/codecrafters-io/build-your-own-x

(Discussed in https://news.ycombinator.com/item?id=32157759)


From Nand to Tetris: Building a Computer from First Principles

https://www.nand2tetris.org/


*


They're not at _all_ similar.


FWIW, the author's name is Coglan, not Cogland.


Fixed above. Thanks!


I don't know why people complain about git being hard to use. If you have a basic understanding of how branching works and aren't a complete dunce with CLI tools, it's very simple. It's also one of the best CLI's I've ever come across.

People over complicate it - In 5 years now as a full time SWE I barely ever use commands other than the basic ones - git pull, git commit, git add/remove, git push, git merge.

Occasionally annoying conflicts happen on merge that you can eyeball and fix fairly trivially.


I only need to reach for fancy git commands when a colleague come to me with a broken repo. How exactly they land in these situations is not always clear to me. But the frequency that it happens suggests something is confusing at least one segment of the user base.


> I barely ever use commands other than the basic ones - git pull, git commit, git add/remove, git push, git merge

I routinely use checkout / switch, rebase, diff, cherry-pick, stash, revert, git status (on CLI). They are very useful. I don't know where "5 commands" meme comes from.


Git is simple for you because you've been using it for so long. If you've worked with any junior people, you know a lot can go wrong. Recent small example: merge conflicts being committed.


My version of the "git is hard to use" is because so much of it doesn't feel intuitive. I use it literally every day and can use the 5 commands you list with almost zero thought at all. They probably account for about 90% of my usage and everything is fine. But then... I need to fix a merge that has gone wrong, recover a commit that a mistakenly removed in a squash, delete a remote branch, undo a bisect that I mistakenly flagged as good/bad, or any number of the things that I've had to do multiple times that make up the other 10% of my usage. And absolutely none of them can I remember how to do, nor do I have any confidence that I could stumble onto the correct syntax. The interface just isn't ergonomic. And so I inevitably turn to google/stackoverflow.

I can't think of any other examples of something I use so much where I have this problem. Conversely I had to use the Docker and Heroku CLIs recently, having used neither for probably a year or so, and managed to remember/stumble my way through pretty easily without the need to look up help or external sources.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: