Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Reinventing the wheel ... as a service

Reinventing the wheel ... as a service

In software engineering it happens very frequently that good, or even not so good, ideas are periodically reinvented, possibly rebranding them with new and cool-sounding buzzwords. These trends follow a few recurring patterns. Sometimes we try to simplify core concepts up to a point where oversimplification leads to something impractical to use in real-world situations. Even more often our architectural choices, like in the cases of centralized vs. distributed or fat vs. thin clients, keep swinging like a pendulum between 2 positions. Finally other times we explore different solutions but at the end of this cycle we find ourselves at the starting point or very close to it. During this presentation, mostly delivered as a rant of a 50 years old engineer who for some reasons insists on writing software on a daily basis, we will go through and try to make sense of these trends.

Mario Fusco

May 01, 2022
Tweet

More Decks by Mario Fusco

Other Decks in Programming

Transcript

  1. Reinventing the wheel … as a service Recurring trends in

    software development and architecture by Mario Fusco @mariofusco
  2. Disclaimer: this talk is NOT about methodologies I have ethical

    principles … therefore I don’t shoot on the red cross
  3. Dynamic Typing The best way to discover that a duck

    cannot bark ... ... in production ...
  4. Dynamic Typing The best way to discover that a duck

    cannot bark ... ... in production ... ... on a Friday evening
  5. Fallacies of distributed computing • The network is reliable •

    Latency is zero • Bandwidth is infinite • The network is secure • Topology doesn't change • There is one administrator • Transport cost is zero • The network is homogeneous
  6. Intelligent systems Changing random stuff until your program works is

    “hacky” and “bad coding practice”. But if you do it fast enough it is “Machine Learning” and pays 4x your current salary.
  7. Machine Learning ML is the thing suggesting to buy laundry

    detergent together with your new washing machine because they're statistically related ...
  8. Machine Learning ML is the thing suggesting to buy laundry

    detergent together with your new washing machine because they're statistically related ... … or more often the one thinking that, since you want to buy a washing machine, you decided to start up a whole new laundry.
  9. Why not Machine Learning + Symbolic Reasoning ? + ML

    to find statistical correlations and discover new patterns SR to filter away the ones not making sense under a business point of view SR to filter away the ones not making sense under a business point of view
  10. Why not Machine Learning + Symbolic Reasoning ? + ML

    to find statistical correlations and discover new patterns SR to filter away the ones not making sense under a business point of view ML AI SR to filter away the ones not making sense under a business point of view
  11. Why not Machine Learning + Symbolic Reasoning ? + ML

    to find statistical correlations and discover new patterns SR to filter away the ones not making sense under a business point of view ML AI SR to filter away the ones not making sense under a business point of view Your business domain knowledge lives here!
  12. Often the right questions is not “should I use the

    old way or the new one?” ... … but “how can you combine the two and take the best of both?”
  13. Pendulum of innovation • Fat vs.Thin clients terminals • Centralized

    vs. Distributed systems • Outsourcing vs. Insourcing
  14. Pendulum of innovation Mainframe Desktop Server side webapps Applets Server

    side HTML rendering Innovation Innovation Innovation Innovation
  15. Pendulum of innovation Mainframe Desktop Server side webapps Applets Server

    side HTML rendering Microfrontends Innovation Innovation Innovation Innovation Innovation
  16. Concurrent Programming in Java Spiral of innovation Green threads Native

    threads Events ( actors / message passing ) Reactive programming
  17. Concurrent Programming in Java Spiral of innovation Green threads Native

    threads Events ( actors / message passing ) Reactive programming Virtual threads (Project Loom)
  18. Modularization • Code – Package – OSGi – JPMS •

    Architecture – distributed computing – SOA – microservices
  19. … and what you can do about it • Beware

    of stretched narratives and analogies
  20. … and what you can do about it • Beware

    of stretched narratives and analogies • Beware of NIH syndrome
  21. … and what you can do about it • Beware

    of stretched narratives and analogies • Beware of NIH syndrome • Think with your head
  22. … and what you can do about it • Beware

    of stretched narratives and analogies • Beware of NIH syndrome • Think with your head • Ask yourself: where have I seen this before?