$30 off During Our Annual Pro Sale. View Details »

Invited Talk at TU Dortmund

Invited Talk at TU Dortmund

Martin Lippert

June 05, 2023
Tweet

More Decks by Martin Lippert

Other Decks in Programming

Transcript

  1. Martin Lippert, Spring Tools Lead & Sustainability Ambassador @ VMware
    June 2023
    Invited Talk
    TU Dortmund

    View Slide

  2. Why are you here?

    View Slide

  3. Who am I ?

    View Slide

  4. Software Engineer

    View Slide

  5. Spring Tools Lead

    View Slide

  6. View Slide

  7. VMware
    Apple
    Google
    Xerox PARC
    Stanford University
    Meta
    Intel
    Tesla

    View Slide

  8. How I started

    View Slide

  9. Schneider CPC 664

    Z80 processor @ 4Mhz, 64 KB RAM
    https://de.wikipedia.org/wiki/Amstrad_CPC#/media/Datei:Schneider_664_en.jpg
    1985

    View Slide

  10. Atari 1040 ST

    Motorola 68000 processor @ 8Mhz, 1024 KB RAM
    @ Bill Bertram, 2006, https://de.wikipedia.org/wiki/Atari_ST#/media/Datei:Atari_1040STf.jpg

    View Slide

  11. Atari TT 030

    Motorola 68030 processor @ 32Mhz, 4 MB RAM
    https://de.wikipedia.org/wiki/Atari_TT#/media/Datei:Atari_TT030.JPG

    View Slide

  12. Apple Power Macintosh 6100

    PowerPC 601 @ 60Mhz, max 72 MB RAM
    MIKI Yoshihito - https://www.
    fl
    ickr.com/photos/mujitra/13981566927/

    View Slide

  13. On the software side?

    View Slide

  14. View Slide

  15. Today

    View Slide

  16. Software is everywhere

    View Slide

  17. Software changes the world

    View Slide

  18. How to develop


    truly great software?

    View Slide

  19. Structure

    View Slide

  20. Design Patterns
    Elements of Reusable

    Object-Oriented Software
    by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides

    View Slide

  21. Refactoring
    Improving the Design of Existing Code
    by Martin Fowler

    View Slide

  22. Feedback Cycles

    View Slide

  23. JUnit

    View Slide

  24. Test-Driven Development

    View Slide

  25. Test Driven Development
    By Example
    by Kent Beck

    View Slide

  26. User Feedback

    View Slide

  27. "Real Artists Ship"
    Steve Jobs

    View Slide

  28. Agile Software Development

    View Slide

  29. Extreme Programming
    Explained
    by Kent Beck

    View Slide

  30. Distributed Systems

    View Slide

  31. APIs and Evolution

    View Slide

  32. Eat Your Own Dogfood

    View Slide

  33. Test at scale

    View Slide

  34. "Hello World" always work

    View Slide

  35. Massive amounts of data

    View Slide

  36. public long calculate(List orders) {


    long sum = 0;


    for(int i = 0; i < orders.size(); i++) {


    sum += orders.get(i).getPrice();


    }


    return sum;


    }


    What is the problem here?

    View Slide

  37. Complexity Matters

    View Slide

  38. t(n) = n6 vs. t(n) = 2n
    103 machines in parallel
    109 operations per second
    n = 100
    1s universe doesn’t
    exist long enough

    View Slide

  39. "software is getting slower more rapidly
    than hardware is becoming faster"
    Wirth’s Law

    View Slide

  40. Back to the beginning

    View Slide

  41. Running on

    Motorola 68030 processor @ 32Mhz, 4 MB RAM

    View Slide

  42. What comes next?

    View Slide

  43. Vulnerabilities
    CVEs are now part of your daily life

    View Slide

  44. GenAI
    (probably more ML + LLM than intelligence)

    View Slide

  45. Decarbonization
    super important

    View Slide

  46. "The best way to predict the
    future is to invent it"
    Alan Kay

    View Slide

  47. Thank You
    for listening


    Martin Lippert


    @martinlippert

    View Slide