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

Talking to Machines: The History and Future of ...

Talking to Machines: The History and Future of Programming Languages - JavaZone 2026

Since the dawn of computing, we have strived to command machines as efficiently as possible. Over the last century, a myriad of programming languages has emerged, transforming how we converse with silicon. We have tested and implemented new concepts, paradigms, and patterns.

However, it increasingly feels like we are moving in circles, revisiting ideas pioneered in decades past. It is time to pause and reflect on the state of the programmer's primary arsenal.

In this session, we will tackle the hard questions:
- Are we stuck in a loop of reinventing the wheel?
- Are there deep analogies between code and natural languages?
- Why do some languages thrive for decades while others end up in the graveyard of history?
- Why do we get so attached to specific tools while despising alternatives?
- Do we prefer writing yet another CRUD in the latest Java, or sending humans to space using "obsolete" tech?
- Will English become the ultimate programming language in the AI era?

Avatar for Piotr Łaskawiec

Piotr Łaskawiec

September 04, 2026

More Decks by Piotr Łaskawiec

Other Decks in Programming

Transcript

  1. Who am I • Pragmatic Software Architect • Creating software

    for nearly 20 years • Founder of COMSENITY • Helping companies to deliver real value • Occasional speaker and trainer LET'S CONNECT @piotrl sk wiec @piotrl sk wiec.bsky.soci l a a a a a COMSENITY
  2. DISCLAIMER No programming languages were harmed in the making of

    this presentation. I respect all of them. The ones with semicolons, the ones without, the ones that steal my RAM, and the ones still running quietly in a bank basement since 1982. (And to be clear: I respect you whether you use tabs or spaces. I might judge you silently, but I respect you). COMSENITY
  3. “You live a new life for every language you speak.

    If you know only one language, you live only once.” COMSENITY
  4. 1962 1986 Simula 1996 Erlang 1959 OCaml 1980 COBOL 1995

    Ada 1958 JavaScript 1972 ALGOL 1949 Assembly 1957 Fortran Prolog Python 1972 1990 C Haskell 1972 1990 2004 Scala 2000 1987 SQL Caml 1962 1985 APL C++ 2024 C# English (AI) 2003 Std ML 1974 LISP Go 1991 Smalltalk 1958 2009 Groovy 1995 2015 Java 1995 PHP Rust 2007 Clojure Language Categorization Legend Icon Shape (Execution Model) Color (Paradigm) Imperative (step-by-step) Procedural Declarative (goal-oriented) Functional Multi-paradigm (mixed) 1964 BASIC Multiple paradigms Object-Oriented Logic / Relational 1977 Commodore BASIC V2 COMSENITY
  5. First-class functions Recursion LISP OCaml Strong static typing Algebraic Data

    Types Object integration Type inference ML Haskell Enums (ADTs) Pattern matching Immutability Symbolic processing Homoiconicity Typeclasses (Traits) Result/Option monads Erlang Pattern matching Declarative concurrency roots Prolog Rust Systems programming Zero-cost abstractions C Memory control Pointers Actor model concept Syntax Message passing C++ Syntax basics Pointers Fast compilation Curly brace syntax Bitwise ops Fortran Algebraic expression syntax Arrays ALGOL Block structure Control flow BCPL Go Classes Virtual functions Coroutines Array indexing Procedural loops Lexical scoping Blocks Simula Classes Objects Message passing Smalltalk BASIC Object-oriented paradigm Garbage Collector Java Control flow structures Bitwise operators Syntax conventions Structured programming Value/Reference passing COBOL C-style syntax Static typing Python Pascal English-like syntax Data records Strong typing Packages Ada JavaScript First-class functions Garbage collection SQL COMSENITY
  6. 1957 • Cre ted t IBM (le ded by John

    B ckus) user@comsenity:~/animation$ ./bounce bounce.f C • First optimizing compiler! • A-0 nd Gr ce Hopper • Autocode, The L ning nd Zierler system • Flow control • Oper tor Precedence P rsing nd comments Bouncing Character in classic FORTRAN IV / 66 +------------------+ INTEGER X, Y, DX, DY, I | X=2 | | *Y = 2 | | DX *=1 | DY = 1 | * | DO 100 I = 1, 50 | * | X = X + DX | * | Y = Y + DY | IF (X*.LE. 1 .OR. X .GE.|20) DX = -DX | @ 1 .OR. Y .GE.|10) DY = -DY IF (Y .LE. WRITE(6, 200) X, Y | | 100 CONTINUE | | 200 FORMAT(1H , 'Pos: ', I2, ',', I2, ' @') +------------------+ STOP Pos: END8,8 @ • Still widely used in HPC re a a a a a a a a a a a COMSENITY a a FORmula TRANslation
  7. 1957 • Cre ted t IBM (le ded by John

    B ckus) bounce.f C • First optimizing compiler! Bouncing Character in classic FORTRAN IV / 66 INTEGER X, Y, DX, DY, I X = 2 Y = 2 • A-0 nd Gr ce Hopper DX = 1 DY = 1 • Autocode, The L ning nd Zierler system DO 100 I = 1, 50 X = X + DX Y = Y + DY IF (X .LE. 1 .OR. X .GE. 20) DX = -DX • Flow control IF (Y .LE. 1 .OR. Y .GE. 10) DY = -DY WRITE(6, 200) X, Y • Oper tor Precedence P rsing nd comments 100 CONTINUE 200 FORMAT(1H , 'Pos: ', I2, ',', I2, ' @') STOP END • Still widely used in HPC re a a a a a a a a a a a COMSENITY a a FORmula TRANslation
  8. ALGOrithmic Language 1958 • Glorious Ide - open, univers l

    l ngu ge for describing lgorithms bounce.alg comment Bouncing Character highlighting Lexical Blocks; begin integer x, y, dx, dy, i; • Code Blocks / Lexic l Scope x := 2; y := 2; dx := 1; dy := 1; for i := 1 step 1 until 50 do begin comment Nested block structured execution; • Dyn mic t bles x := x + dx; y := y + dy; if x <= 1 or x >= 20 then dx := -dx; • C ll by V lue if y <= 1 or y >= 10 then dy := -dy; outstring(1, "Pos: "); outinteger(1, x); • B ckus-N ur Form (BNF) not tion outinteger(1, y); outstring(1, " @\n"); end end • ALGOL-like l ngu ges a a a a a a a a a a a a a a a COMSENITY
  9. LISt Processing or Lots of Irritating Super luous Parentheses 1958

    • Cre ted by John McC rthy t MIT bounce.lisp ;; Classic LISP 1.5 style using PROG and GOTO loops • Lists, lists everywhere (DEFUN BOUNCE () (PROG (X Y DX DY I) (SETQ X 2) (SETQ Y 2) • G rb ge Collection (M rk- nd-Sweep) (SETQ DX 1) (SETQ DY 1) (SETQ I 0) LOOP • Re d-Ev l-Print Loop (REPL) ;; Label declaration for GOTO (COND ((EQUAL I 50) (RETURN NIL))) (SETQ X (+ X DX)) (SETQ Y (+ Y DY)) • Spiritu l successor - Clojure (COND ((OR (<= X 1) (>= X 20)) (SETQ DX (- DX)))) (COND ((OR (<= Y 1) (>= Y 10)) (SETQ DY (- DY)))) (PRINT (LIST 'POS: X Y '@)) • Homoiconicity nd The Curse of Lisp (SETQ I (+ I 1)) (GO LOOP))) a a a f a a a a a a a a COMSENITY
  10. COmmon Business-Oriented Language 1959 BOUNCE.CBL * Bouncing Character in COBOL

    (Highlighting Optional Noise Words) IDENTIFICATION DIVISION. • First w rning • Gr ce Hopper’s leg cy (FLOW-MATIC) • Hier rchic l d t structures PROGRAM-ID. BOUNCE. DATA DIVISION. WORKING-STORAGE SECTION. 01 X-POS PIC S99 VALUE IS 2. 01 Y-POS PIC S99 VALUE IS 2. 01 D-X PIC S99 VALUE IS 1. 01 D-Y PIC S99 VALUE IS 1. 01 I PIC 99 VALUE IS 0. PROCEDURE DIVISION. PERFORM VARYING I FROM 1 BY 1 UNTIL I IS GREATER THAN 50 COMPUTE X-POS EQUAL TO X-POS + D-X • English nd noise words COMPUTE Y-POS EQUAL TO Y-POS + D-Y IF X-POS IS LESS THAN OR EQUAL TO 1 OR X-POS IS GREATER THAN OR EQUAL TO 20 THEN COMPUTE D-X EQUAL TO D-X * -1 • D t vs logic END-IF IF Y-POS IS LESS THAN OR EQUAL TO 1 OR Y-POS IS GREATER THAN OR EQUAL TO 10 THEN • Bullet-proof m th COMPUTE D-Y EQUAL TO D-Y * -1 END-IF DISPLAY "Pos: " X-POS "," Y-POS " @" END-PERFORM. STOP RUN. a a a a a a a a a a a COMSENITY
  11. Simula 67 1967 bounce.sim ! Bouncing Character showing Classes in

    Simula 67 ; • Cre ted by Ole-Joh n D hl nd Kristen Nyg rd Begin Class Bouncer(x, y, dx, dy); Integer x, y, dx, dy; Begin Procedure Move; • OOP s key to simul te complex processes Begin x := x + dx; y := y + dy; If x <= 1 Or x >= 20 Then dx := -dx; • Cl sses nd objects If y <= 1 Or y >= 10 Then dy := -dy; End; End; • Polymorphism Ref(Bouncer) b; Integer i; b :- New Bouncer(2, 2, 1, 1); • Inherit nce For i := 1 Step 1 Until 50 Do Begin b.Move; • Coroutines ! Calling object method ; OutText("Pos: "); OutInt(b.x, 2); OutInt(b.y, 2); OutText(" @"); OutImage; End; End; a a a a a a a a a a a a COMSENITY
  12. Smalltalk 1972 • Xerox PARC, Al n K y nd

    Dyn book Bounce.st "Bouncing Character in Pure OOP (Smalltalk-80 style)" • More th n | pos vel | l ngu ge pos := 2@2. "@ Creates Point objects" vel := 1@1. • Pure OOP 50 timesRepeat: [ pos := pos + vel. (pos x <= 1 or: [pos x >= 20]) • Mess ge p ssing over methods ifTrue: [vel := (vel x negated) @ vel y]. (pos y <= 1 or: [pos y >= 10]) ifTrue: [vel := vel x @ (vel y negated)]. Transcript show: 'Pos: ', pos printString, ' @'; cr. ]. a a a a a a a a a a COMSENITY
  13. Smalltalk 1972 • Xerox PARC, Al n K y nd

    Dyn book • More th n l ngu ge • Pure OOP • Mess ge p ssing over methods a a a a a a a a a a COMSENITY
  14. life ← {⊃1 ⍵ ∨.∧ 3 4 = +/ +/

    ¯1 0 1 ∘.⊖ ¯1 0 1 ⌽¨ ⊂⍵} !#$%&'()*+,-./0 COMSENITY
  15. hello.bf [ Hello World in Brainfuck ] ++++++++ [>++++[>++>+++>+++>+<<<<-] >+>+>->>+[<]<-]

    [ Initialize Tape ] >>.>---.+++++++..+++. [ Print 'Hello' ] >>.<-.<.+++.------.--------. [ Print ' World!' ] COMSENITY
  16. bounce.i PLEASE NOTE Bouncing Character in INTERCAL DO ,1 <-

    #50 DO .1 <- #2 PLEASE NOTE Init X DO .2 <- #2 PLEASE NOTE Init Y PLEASE COME FROM (10) DO .1 <- .1 ~ #1 DO .2 <- .2 ~ #1 PLEASE READ OUT .1 PLEASE READ OUT .2 DO ,1 <- ,1 ~ #1 (10) PLEASE IGNORE ,1 PLEASE GIVE UP COMSENITY
  17. hello.arnoldc IT'S SHOWTIME HEY CHRISTMAS TREE isReady YOU SET US

    UP 0 GET TO THE CHOPPER isReady HERE IS MY INVITATION 1 ENOUGH TALK TALK TO THE HAND "HELLO WORLD!" YOU HAVE BEEN TERMINATED COMSENITY
  18. New-Old Ideas in Java • L mbd s nd stre

    ms -> LISP, Scheme, Sm llt lk, APL, H skell • v r keyword nd type inference -> ML, H skell, Sc l , Kotlin • Records, Se led Cl sses, P ttern M tching -> ML, H skell, Sc l , Kotlin • Modules -> Mes , Modul -2, Ad , St nd rd ML • Virtu l Thre ds -> Erl ng, Go a a a a a a a a a a a a a a a a a a a a a a a a a a a COMSENITY
  19. Survival Instinct • Worse is Better • Ecosystem Gr vity

    (you’re only s good s your p ck ge m n ger) • The Tr p of Pl tform Lock-in • The Troj n Horse Synt x • Self-ful illing prophecy a a a a a a a a a a f a COMSENITY
  20. Digital Tribalism and Language Wars • S pir–Whorf hypothesis •

    „Blub” p r dox • Sunk Cost F ll cy • Essenti l vs Accident l Complexity • CV-driven Development a a a a a a a COMSENITY
  21. The experts say: natural language • A self-ful illing prophecy

    • Your d ily interf ce is lre dy convers tion • The end of the symbolic suprem cy • Every progr m w s lw ys speci ied in English a f a a a a a a a a a f a COMSENITY
  22. Levels of Abstraction • Level 0: Physic l Wiring •

    Level 1: M chine Code • Level 2: Assembly L ngu ge • Level 3: High-Level Imper tive • Level 4: M n ged Runtimes • Level 5: Synt ctic Ergonomics a a a a a a a a a • Level 6: Stoch stic Compilers
  23. No Silver Bullet Brooks, 1986 • Accident l Di iculty

    (how we build softw re tod y) • Essenti l Di iculty (the problem itself) • 70 ye rs of removing Accident l Di iculty • AI is the irst tool th t touches the essence • This time is di erent? a a ff a a ff ff ff a f a a COMSENITY
  24. Ambiguity a feature, and a bug • A fe ture

    of every n tur l l ngu ge • „The foolishness of n tur l l ngu ge progr mming” • Even the model does not trust English • Every profession th t speci ies in n tur l l ngu ge ends up inventing stricter version of it a a a a a a a a f a a a a a a a a COMSENITY
  25. How to talk to a machine Controlled Language to a

    Rescue • Structure be ts prose • Ex mples be t descriptions • Code c rries the precision • The best prompt is f iling test • Constr in the nswer, not only the question a a a a a a a a COMSENITY
  26. Caveman 1959: English added, so humans can read it. 2026:

    English removed, so machines can a ord it. https://c vem n.so/ ff a a COMSENITY
  27. AI-Native Language • Accur cy follows the tr ining d

    t • Veri ic tion is bottleneck • Types re the feedb ck loop • AI er protects the old l ngu ges a a a a a a a a a a a f COMSENITY
  28. „We learn from history that we learn nothing from history.”

    - Georg Wilhelm Friedrich Hegel COMSENITY
  29. COMSENITY Thank you for your attention. Contact [email protected] Social Media

    @piotrlaskawiec @piotrlaskawiec.bsky.social LET'S CONNECT