Atom taskpaper4/30/2023 ![]() ![]() Splitting it up would make large, atomic refactorings more difficult. Even at our current scale, we often make large changes throughout our code base, and having a single repository is useful for continuous modernization. We could have spent a lot of time making it more modular in a way that would be friendly to a source control tool, but there are a number of benefits to using a single repository. Our code base has grown organically and its internal dependencies are very complex. The original post at Facebook expounds on this: Instead of having separate repositories for independent projects (and sharing using a binary repository), the entire codebase is in a single large source repository. Rather turning this into another bzr/hg/git post, the one thing that stood out to me was this:įacebook stores all of its code in a single repository, which two years ago was based on subversion. I caught an interesting link (via Michael Tsai) about Facebook modifying Mercurial to operate faster than Git. When I see projects like Spring, AspectJ, and cglib, I don’t see handy libraries as much as I see people trying to fix problems that exist in the language itself. Java is abound with boilerplate and repetition. That said, Java is not my favorite place to be. The result was it was easier and faster to build correct systems. While I disliked Java’s restrictions and resource usage, it was easier to build and deploy, more portable, and less error prone. In the 2000s I moved, reluctantly, to Java. In the 90’s virtually all my server side work was in C/C++. While I’ve always done server side work, in the past few years my focus has drifted to large distributed systems rather than stand-alone servers, and I’ve been grasping for the best language to scratch that itch. The story on the server side in general has been a bit bumpier as of late. ![]() ![]() It’s not that I’ve got anything against Perl (PHP, we have issues), but Ruby hits all the scripting sweet spots for me. Eventually PHP displaced the web duties, then when I learned Ruby, I effectively dropped both of them. I used to do all my scripting and web work with Perl. If you program for long enough and you’re willing to try new things, your favorite tool for specific jobs will likely get replaced. If anything, we’ve been going in the other direction.Ī lot of programming languages are “general purpose” languages, but most of them have a sweet spot if not a specific problem domain. I thought peer-to-peer technologies would lead to more privacy and even more decentralization than we enjoyed in the past. And this one seems idealistic given where we are, but I thought IPv6 would give us enough addresses that everyone could have their own easy-to-manage home servers that let ordinary people participate on the server side of the Internet with applications that were as easy to install as desktop applications to do things like host podcasts, share photos, publish blogs, etc. I thought that personal computers would get smaller, lighter, and faster, but they would be more powerful and do even more things locally, not become thin network clients like Sun was pushing in the 90’s. When I thought about the future, I assumed in ten years we’d all have enough storage on our iPods/phones to store every song we ever wanted to listen to (which we owned outright) at lossless quality. It really struck a chord with me because a lot of the time I feel like tech history branched into multiple timelines around 2006 and we’re in the darkest timeline. Aaron Harpole had an interesting post a while back that expressed a feeling about where the personal computing landscape is going. ![]()
0 Comments
Leave a Reply.AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |