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
joeerl's profile
Joe Armstrong
Joe Armstrong
Joe Armstrong
@joeerl

Tweets

Joe Armstrong

@joeerl

Writes programs and books. Invents things. Gives talks. Fixes broken software. Hobbies: Stroking cats, playing piano, grumbling, reading, thinking.

Sweden
joearms.github.com
Joined June 2009

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.

    Joe Armstrong‏ @joeerl 18 Dec 2018

    Joe Armstrong Retweeted Sam Ferree

    Of course - I try to write code with zero dependencies - code I wrote 25 years ago with zero dependencies still works today. Code I wrote 5 years ago with external dependencies often fails. It’s my contribution to the war on entropy.https://twitter.com/sam_ferree/status/1074678991628484608 …

    Joe Armstrong added,

    Sam Ferree @sam_ferree
    I’m calling for an end to holy war against code duplication. We convince young developers and engineers that it’s the worst thing ever, when time teaches all of us that it is, the vast majority of the time, duplication preferable to dependency.
    Show this thread
    11:27 PM - 18 Dec 2018
    • 453 Retweets
    • 1,244 Likes
    • Sergey Zenchenko Richard Senar Jorge Quilcate VisArch Robin H. Hansen Jason dalton Graham Huck Peter Miron Alan Plum
    27 replies 453 retweets 1,244 likes
      1. New conversation
      2. James Bond‏ @ethericlights 19 Dec 2018
        Replying to @joeerl

        If there are no dependencies in your code then you do not code or you haven't moved past Hello World. A software system simply cannot be built without components based on other components whether they are soft or hard dependencies. Data is often dependent.

        6 replies 2 retweets 9 likes
      3. whizzkid‏ @5weden 19 Dec 2018
        Replying to @ethericlights @joeerl

        Oh the irony 🙈 your argument aside, the tweet you wrote from your android phone probably made possible by the guy you said haven’t moved past hello world. Google Erlang.

        2 replies 2 retweets 66 likes
      4. Joe Armstrong‏ @joeerl 19 Dec 2018
        Replying to @5weden @ethericlights

        Indeed - if you use WhatApp or if your mobile Internet comes through an Ericsson Base Station, then some of the software was stuff I wrote 25 years ago and which has no dependencies (other than the compiler)

        1 reply 4 retweets 95 likes
      5. 1 more reply
      1. New conversation
      2. Jaron‏ @Comradephate 25 Dec 2018
        Replying to @joeerl @jessfraz

        what does code that doesn’t depend on anything even do? Without any API/ABI interactions of any kind?

        2 replies 0 retweets 0 likes
      3. Joe Armstrong‏ @joeerl 26 Dec 2018
        Replying to @Comradephate @jessfraz

        To clarify - the code has no dependencies on any libraries or frameworks that I do not have control over. It depends upon the compiler and I have to assume the correctness of the compiler.

        0 replies 0 retweets 4 likes
      4. End of conversation
      1. New conversation
      2. Marcin‏ @albamus 18 Dec 2018
        Replying to @joeerl

        Why so? Do the original versions of the dependencies disappear? Or what? If so, why not static linking or docker or “vendorization”?

        4 replies 0 retweets 3 likes
      3. The Slough House‏ @SlauHaus 19 Dec 2018
        Replying to @albamus @joeerl

        The dependencies themselves may not disappear but grow and change. Joe should like "snaps" in Linux. But then that's dependent on the containerisation infrastructure. And I guess any program is dependent on the surrounding OS continuing to exist. Oh my aching brains!

        1 reply 0 retweets 4 likes
      4. Daniel Schildt‏ @autiomaa 19 Dec 2018
        Replying to @SlauHaus @albamus @joeerl

        Compexity of maintaining forks of 3rd party dependencies (when features don't match anymore) can exceed the complexity of building the needed functionality yourself.

        1 reply 1 retweet 17 likes
      5. Marcin‏ @albamus 19 Dec 2018
        Replying to @autiomaa @SlauHaus @joeerl

        Who’s talking about maintaining forks?

        1 reply 0 retweets 2 likes
      6. Peter Green‏ @plugwash 19 Dec 2018
        Replying to @albamus @autiomaa and

        The problem is that dependencies have dependencies and the world moves on even if you don't. So sticking with an old version of a dependency often means effectively maintaining a fork.

        1 reply 1 retweet 6 likes
      7. 1 more reply
      1. New conversation
      2. Zafer Ayan‏ @ZaferAyan 19 Dec 2018
        Replying to @joeerl

        25yo code still works?pic.twitter.com/GvTtzlHOvk

        4 replies 0 retweets 5 likes
      3. Case de Groot‏ @cdegroot 19 Dec 2018
        Replying to @ZaferAyan @joeerl

        Some 15 years ago, I had to resurrect a complex set of libraries (forms, btrees, stuff like that) I cobbled up in '87. Given that its set of external dependencies was tiny (screen and file I/O) and factored out in a couple of modules, it was surprisingly easy.

        1 reply 1 retweet 6 likes
      4. Zafer Ayan‏ @ZaferAyan 19 Dec 2018
        Replying to @cdegroot @joeerl

        In 80s, development were easy to today. I mean no browser issues no any other fancy graphical libraries required. You want to code for embedded systems? Take a book and read the instructions and code your algorithm. But today, even that fancy Flash scripts or Applets won't work.

        1 reply 0 retweets 2 likes
      5. Zafer Ayan‏ @ZaferAyan 19 Dec 2018
        Replying to @ZaferAyan @cdegroot @joeerl

        We are using IP addresses to connect to internet right? IPv4 released 35 years ago. It works well but address space is so small and not enough for today's iot devices. So IETF released IPv6. I mean even this kind of basic things deprecated today.

        1 reply 0 retweets 0 likes
      6. Zafer Ayan‏ @ZaferAyan 19 Dec 2018
        Replying to @ZaferAyan @cdegroot @joeerl

        Even concrete buildings making problem when years passed after. Just like buildings, code is a living thing too. Evolves as time goes on. And needs to maintain when requirements change.

        0 replies 0 retweets 1 like
      7. End of conversation
      1. New conversation
      2. Ryan Conway‏ @rylon 19 Dec 2018
        Replying to @joeerl

        There’s a balance though because you don’t want to, for example, write your own SSL or date/time parsing, but you also don’t want to be subject to disappearing dependencies. How do you feel about vendoring those dependencies so they effectively become static?

        1 reply 1 retweet 3 likes
      3. Daniel Gibson‏ @Doomed_Daniel 19 Dec 2018
        Replying to @rylon @joeerl

        shipping an old (or aging) statically linked SSL lib is only marginally better than implementing it yourself, considering how often they tend to get security updates (no, I have no good solution for this)

        2 replies 0 retweets 3 likes
      4. Gaspar Chilingarov‏ @gasparch 19 Dec 2018
        Replying to @Doomed_Daniel @rylon @joeerl

        Use SSL offloading and make some other service in front of yours to take care of SSL :) yes, that can be done secure, yes, latency will increase, yes, it is easier to maintain and scale, no, most probably first two concerns are not critical for your application :)

        2 replies 0 retweets 1 like
      5. Daniel Gibson‏ @Doomed_Daniel 19 Dec 2018
        Replying to @gasparch @rylon @joeerl

        But what about client software?

        0 replies 0 retweets 0 likes
      6. 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