Skip to content
  • 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
Jonathan_Blow's profile
Jonathan Blow
Jonathan Blow
Jonathan Blow
@Jonathan_Blow

Tweets

Jonathan Blow

@Jonathan_Blow

Game designer of Braid and The Witness. Partner in IndieFund.

San Francisco
the-witness.net/news
Joined January 2010

Tweets

  • © 2019 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. Jonathan Blow‏ @Jonathan_Blow Nov 12

      as soon as it exists. You're telling me I can't rough-draft or storyboard, instead I should be trying to draw finished cels of my animated movie from day one. The cost of changes is very high, so I won't end up changing very much, and I can't iterate the structure of the whole

      3 replies 1 retweet 57 likes
      Show this thread
    2. Jonathan Blow‏ @Jonathan_Blow Nov 12

      solution without tremendous cost, so I won't do it. But I'll think I am being a Good Programmer because on the surface I am being very robust about making sure this API works, and these implementations work. The probelm is, it's the wrong API and wrong implementations.

      3 replies 0 retweets 59 likes
      Show this thread
    3. Jonathan Blow‏ @Jonathan_Blow Nov 12

      This is also how I feel about languages that I think are "too static" like Rust. If I am just rough-drafting, I don't care if things are quite correct. Let me leak memory right now, it doesn't matter, I will probably throw away this procedure 4 times anyway; when I get to the

      3 replies 6 retweets 68 likes
      Show this thread
    4. Jonathan Blow‏ @Jonathan_Blow Nov 12

      5th and final one, *then* let's make sure it doesn't leak memory. If you force me to be too correct up front, you remove the possibility of low-cost experimentation.

      5 replies 3 retweets 76 likes
      Show this thread
    5. Jonathan Blow‏ @Jonathan_Blow Nov 12

      I think that software quality today is very poor, and correctness-proving systems are key to fixing this. I think the idea that Rust has that you should have annotations in your program, that ensure whatever dimensions of correctness are possible to ensure, is a good one.

      3 replies 2 retweets 54 likes
      Show this thread
    6. Jonathan Blow‏ @Jonathan_Blow Nov 12

      But the flaw in Rust's approach is that I am forced to do this from day one (and forced to pay for it with time on every compilation). Let me experiment, let me gain expertise in this domain, then when it's time to get serious, let me layer in these checks.

      7 replies 2 retweets 68 likes
      Show this thread
    7. Jonathan Blow‏ @Jonathan_Blow Nov 12

      (In theory you can mark an entire Rust program 'unsafe' and slowly remove this over time, but the language doesn't seem to really want you to do this, and the all-or-nothing mechanics are impractical. Let me layer in one check at a time, build it up.)

      4 replies 1 retweet 30 likes
      Show this thread
    8. Jonathan Blow‏ @Jonathan_Blow Nov 12

      I don't mean to only address Rust here, it's just a concrete example of this class of languages. If you let me iterate and experiment, but then also provide me tools with which to ensure my program is correct, but I don't have to pay the costs of this on day one, that's great.

      5 replies 2 retweets 37 likes
      Show this thread
    9. Jonathan Blow‏ @Jonathan_Blow Nov 12

      Iteration speed is very important for productivity. There's a big difference between compilation being instant, and taking 5 seconds. There's a big difference between 5 seconds and a minute. There's a big difference between 1 minute and 20 minutes.

      5 replies 9 retweets 82 likes
      Show this thread
    10. Jonathan Blow‏ @Jonathan_Blow Nov 12

      If you have been paying 20 minutes every compilation for years, it's likely you no longer have a feel for what you have lost. If you get back to 1 minute, that'd be amazing. But also the person who was at 1 minute person no longer has a feel for what they have lost... !

      2 replies 7 retweets 52 likes
      Show this thread
      Jonathan Blow‏ @Jonathan_Blow Nov 12

      Computers today are amazingly fast. They should be able to compile programs almost instantly, for any reasonable program size. If they aren't doing that, it's the sign of a problem.

      8:48 AM - 12 Nov 2019
      • 26 Retweets
      • 154 Likes
      • Jeroen Noels Fredrik Matheson CooperK1ng async Daria Moreno-Gogoleva Denis Lopes Carvalho Brandon Duff Aivaras Prudnikovas Pavel Zinov Paul David
      9 replies 26 retweets 154 likes
        1. New conversation
        2. Mark Papadakis‏ @markpapadakis Nov 12
          Replying to @Jonathan_Blow

          Compile yes. Optimize, thars another story.

          1 reply 0 retweets 1 like
        3. Jonathan Blow‏ @Jonathan_Blow Nov 12
          Replying to @markpapadakis

          Yep, though lower levels of optimization are pretty fast and can give you the majority of the benefit.

          1 reply 0 retweets 3 likes
        4. 2 more replies
        1. Raph Levien‏ @raphlinus Nov 12
          Replying to @Jonathan_Blow

          I don't agree with you on everything, but on this point 100%. My main work now is GUI in Rust, and long iteration cycles are probably the biggest problem.

          0 replies 0 retweets 21 likes
          Thanks. Twitter will use this to make your timeline better. Undo
          Undo
        1. New conversation
        2. Sean T. McBeth‏ @Sean_McBeth Nov 12
          Replying to @Jonathan_Blow

          I know you don't like GC languages, but this is why I really like C#. I can escape the GC when I need to, but until then, I can move fast.

          1 reply 0 retweets 3 likes
        3. 6 more replies
        1. New conversation
        2. Nick Klingensmith‏ @koujaku Nov 12
          Replying to @Jonathan_Blow

          I really love the documentation driven testing I've seen in some REST APIs. Where the web-based documentation for the API contains a live example that is actually the test itself! Wish it was easier to do that sort of thing with native languages.

          1 reply 0 retweets 1 like
        3. 1 more reply
        1. This Tweet is unavailable.
        2. Dan Thompson‏ @tweets_dan Nov 12
          Replying to @JonOlick @Jonathan_Blow

          ... In debug mode though?

          1 reply 0 retweets 0 likes
        3. 1 more reply
        1. New conversation
        2.  💻 Scott Lee  🎮‏ @scottlee Nov 12
          Replying to @Jonathan_Blow

          Thank you so much for taking the time to write and speak so much, by the way. Have long been wondering about elaboration on your dislike of some of Rust's features. Really enjoy reading this and considering it. Feels like this would be easy-ish for the lang designers to fix.

          1 reply 0 retweets 0 likes
        3.  💻 Scott Lee  🎮‏ @scottlee Nov 12
          Replying to @scottlee @Jonathan_Blow

          Although realistically, I think they'll instead spend their time on working to just speed up their compilation process. They have a parallelization proposal out there for that they're working on. I'm guessing either way you feel that's the wrong priority / method though.

          0 replies 0 retweets 0 likes
        4. End of conversation

      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

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