Skip to content
By using Twitter’s services you agree to our Cookies Use. We and our partners operate globally and use cookies, including for analytics, personalisation, and ads.
  • Home Home Home, current page.
  • About

Saved searches

  • Remove
  • In this conversation
    Verified accountProtected Tweets @
Suggested users
  • Verified accountProtected Tweets @
  • Verified accountProtected Tweets @
  • Language: English
    • Bahasa Indonesia
    • Bahasa Melayu
    • Català
    • Čeština
    • Dansk
    • Deutsch
    • English UK
    • Español
    • Filipino
    • Français
    • Hrvatski
    • Italiano
    • Magyar
    • Nederlands
    • Norsk
    • Polski
    • Português
    • Română
    • Slovenčina
    • Suomi
    • Svenska
    • Tiếng Việt
    • Türkçe
    • Ελληνικά
    • Български език
    • Русский
    • Српски
    • Українська мова
    • עִבְרִית
    • العربية
    • فارسی
    • मराठी
    • हिन्दी
    • বাংলা
    • ગુજરાતી
    • தமிழ்
    • ಕನ್ನಡ
    • ภาษาไทย
    • 한국어
    • 日本語
    • 简体中文
    • 繁體中文
  • Have an account? Log in
    Have an account?
    · Forgot password?

    New to Twitter?
    Sign up
cmuratori's profile
Casey Muratori
Casey Muratori
Casey Muratori
@cmuratori

Tweets

Casey Muratori

@cmuratori

I'm worried that the baby thinks people can't change.

Seattle
caseymuratori.com
Joined March 2009

Tweets

  • © 2021 Twitter
  • About
  • Help Center
  • Terms
  • Privacy policy
  • Cookies
  • Ads info
Dismiss
Previous
Next

Go to a person's profile

Saved searches

  • Remove
  • In this conversation
    Verified accountProtected Tweets @
Suggested users
  • Verified accountProtected Tweets @
  • Verified accountProtected Tweets @

Promote this Tweet

Block

  • Tweet with a location

    You can add location information to your Tweets, such as your city or precise location, from the web and via third-party applications. You always have the option to delete your Tweet location history. Learn more

    Your lists

    Create a new list


    Under 100 characters, optional

    Privacy

    Copy link to Tweet

    Embed this Tweet

    Embed this Video

    Add this Tweet to your website by copying the code below. Learn more

    Add this video to your website by copying the code below. Learn more

    Hmm, there was a problem reaching the server.

    By embedding Twitter content in your website or app, you are agreeing to the Twitter Developer Agreement and Developer Policy.

    Preview

    Why you're seeing this ad

    Log in to Twitter

    · Forgot password?
    Don't have an account? Sign up »

    Sign up for Twitter

    Not on Twitter? Sign up, tune into the things you care about, and get updates as they happen.

    Sign up
    Have an account? Log in »

    Two-way (sending and receiving) short codes:

    Country Code For customers of
    United States 40404 (any)
    Canada 21212 (any)
    United Kingdom 86444 Vodafone, Orange, 3, O2
    Brazil 40404 Nextel, TIM
    Haiti 40404 Digicel, Voila
    Ireland 51210 Vodafone, O2
    India 53000 Bharti Airtel, Videocon, Reliance
    Indonesia 89887 AXIS, 3, Telkomsel, Indosat, XL Axiata
    Italy 4880804 Wind
    3424486444 Vodafone
    » See SMS short codes for other countries

    Confirmation

     

    Welcome home!

    This timeline is where you’ll spend most of your time, getting instant updates about what matters to you.

    Tweets not working for you?

    Hover over the profile pic and click the Following button to unfollow any account.

    Say a lot with a little

    When you see a Tweet you love, tap the heart — it lets the person who wrote it know you shared the love.

    Spread the word

    The fastest way to share someone else’s Tweet with your followers is with a Retweet. Tap the icon to send it instantly.

    Join the conversation

    Add your thoughts about any Tweet with a Reply. Find a topic you’re passionate about, and jump right in.

    Learn the latest

    Get instant insight into what people are talking about now.

    Get more of what you love

    Follow more accounts to get instant updates about topics you care about.

    Find what's happening

    See the latest conversations about any topic instantly.

    Never miss a Moment

    Catch up instantly on the best stories happening as they unfold.

    1. Casey Muratori‏ @cmuratori Aug 13

      [3/*] With just one tool, the build has an over 95% chance of working after five year. With ten tools, it has only a 60% chance! And that's with every tool having a _99%_ chance of remaining working (meaning no breaking changes to the tool that affect the build in question).

      1 reply 1 retweet 42 likes
      Show this thread
    2. Casey Muratori‏ @cmuratori Aug 13

      [4/*] If we assume a still probably favorable given today's environment, but slightly lower p of 90%, the graph now looks like this:pic.twitter.com/rGIdVncsEB

      1 reply 0 retweets 38 likes
      Show this thread
    3. Casey Muratori‏ @cmuratori Aug 13

      [5/*] This is, of course, an epic disaster. With just 3 tools used, after 5 years there is _very little chance_ that your codebase will still build correctly. And that's at 90% and just 3 tools!

      2 replies 2 retweets 42 likes
      Show this thread
    4. Casey Muratori‏ @cmuratori Aug 13

      [6/*] If you look at 90%/10 tools, heaven forbid, that bottom line says your build almost certainly doesn't work after only 2 years... and in fact has barely a 30% chance of working after just 1 year!

      1 reply 0 retweets 36 likes
      Show this thread
    5. Casey Muratori‏ @cmuratori Aug 13

      [7/*] Now imagine that we don't say "tool". We just say "dependency". The equation _remains the same_. Modern codebases often have 10s, 100s, or even 1000s of dependencies! What does that do to this graph?

      2 replies 1 retweet 55 likes
      Show this thread
    6. Casey Muratori‏ @cmuratori Aug 13

      [8/*] Here is the graph of 10, 100, and 1000 dependencies, assuming a never-happens-on-github percentage chance of a dependency not breaking your build at 99%:pic.twitter.com/kHM2ayp2Y8

      1 reply 5 retweets 45 likes
      Show this thread
    7. Casey Muratori‏ @cmuratori Aug 13

      [9/*] 10 dependencies sort-of works. It has a 60% chance of still working after 5 years. 100 dependencies doesn't work. It's less than 40% after just 1 year. 1000 dependencies breaks with almost complete certainty after a mere _four months_.

      3 replies 2 retweets 35 likes
      Show this thread
    8. Casey Muratori‏ @cmuratori Aug 13

      [10/*] All of this is already something you know intuitively. Projects with lots of dependencies never work out-of-the-box. You are constantly updating, patching, and struggling to get their builds working, because every time something downstream changes, somebody has to fix it.

      3 replies 3 retweets 62 likes
      Show this thread
    9. Casey Muratori‏ @cmuratori Aug 13

      [11/*] The "dependency culture" of modern programming has put us into a state where software requires perpetual, constant maintenance. No longer can we take a build and say "this works" and come back to it in a year. Great for job security, horrible for software quality.

      9 replies 13 retweets 121 likes
      Show this thread
    10. Casey Muratori‏ @cmuratori Aug 13

      [12/*] As for speculation, I wonder, at least in part, if this answers the questions me and other people like me have, which is how do companies like Twitter employ thousands of developers while seemingly producing almost no additional software or improvements?

      2 replies 5 retweets 81 likes
      Show this thread
      Casey Muratori‏ @cmuratori Aug 13

      [13/*] Well, if you assume that Twitter's collective codebase is a 1000+ dependency nightmare, as I assume it probably is, then the math kind of tells us the answer: the vast, vast majority of their time will have to be spent simply keeping their existing code working.

      3:03 PM - 13 Aug 2021
      • 8 Retweets
      • 92 Likes
      • 👁👅👁 Suirabu Dimitar Sotirov Caleb Gingles Urbit København Jakob Feifan Zhou Adam Argyle Gordon Brander
      10 replies 8 retweets 92 likes
        1. New conversation
        2. Joshua Silva‏ @silvascientist Aug 13
          Replying to @cmuratori

          I think at least part of it seems to be the perpetual problem of keeping a site running that has evidently grown so large they can no longer even guarantee that it does the right thing every time, only that it *eventually* does the right thing

          1 reply 0 retweets 0 likes
        3. Joshua Silva‏ @silvascientist Aug 13
          Replying to @silvascientist @cmuratori

          There's probably a high degree of correlation between these two phenomena

          0 replies 0 retweets 0 likes
        4. End of conversation
        1. Emad Elsaid‏ @emad__elsaid Aug 13
          Replying to @cmuratori

          I have wrote about this issue last yearhttps://www.emadelsaid.com/on-modern-web-applications-stability/ …

          0 replies 0 retweets 1 like
          Thanks. Twitter will use this to make your timeline better. Undo
          Undo
        1. New conversation
        2. peterix‏ @peterixxx Aug 13
          Replying to @cmuratori

          Yep. I've seen this happen. The devs are on a treadmill, updating deps all the time. This is why I take all the dependencies and freeze them. I still use Qt 5.4 and Ubuntu 14.04 for linux builds of MultiMC. I'll update when I consider it necessary... not when a number goes up.

          1 reply 0 retweets 2 likes
        3. peterix‏ @peterixxx Aug 13
          Replying to @peterixxx @cmuratori

          For this, you need stable ABI guarantees. Qt does that. So I can build with a 6 year old version and it runs with the current ones people actually have. There was one case of a crash bug introduced by upstream (Qt) in 6 years. They fixed it. Everything else just worked.

          0 replies 0 retweets 0 likes
        4. End of conversation
        1. New conversation
        2. Daniel Hoffmann‏ @DanielHoffmann_ Aug 13
          Replying to @cmuratori

          that is a bit simplistic conclusion. Lockfiles are a thing, if your codebase uses them then your dependency is your compiler/runtime/os + your dependency management service. If you commit your deps you eliminate your reliance on the dependency management service

          3 replies 0 retweets 4 likes
        3. Daniel Hoffmann‏ @DanielHoffmann_ Aug 13
          Replying to @DanielHoffmann_ @cmuratori

          you can replace your compiler/runtime/os with a docker image which could also be comited

          1 reply 0 retweets 0 likes
        4. Show replies
        1. Adz‏ @ItizAdz Aug 13
          Replying to @cmuratori

          I guess a dep has to promise that the features it provides out weighs the maintenance cost it incurs. Which for postgres might make sense, but for others it does not.

          0 replies 0 retweets 0 likes
          Thanks. Twitter will use this to make your timeline better. Undo
          Undo
        1. New conversation
        2. Oliver‏ @Phazyck Aug 14
          Replying to @cmuratori

          For the build tools, you could put that in a Docker image as it is today, and use that same image in 5 years, and the tools will be exactly the same. Of course, then you miss out on updates that could be valuable. Not the prettiest solution, but might work? Any comments on this?

          1 reply 0 retweets 1 like
        3. Sam‏ @LagMasterSam Aug 14
          Replying to @Phazyck @cmuratori

          Security issues are always popping up in dependencies, and someone always wants to add another dependency that requires a later version of something else. In theory you can just keep using the same versions, but in reality there's always a reason you need to update.

          1 reply 0 retweets 0 likes
        4. Show replies

      Loading seems to be taking a while.

      Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.

        Promoted Tweet

        false

        • © 2021 Twitter
        • About
        • Help Center
        • Terms
        • Privacy policy
        • Cookies
        • Ads info