«Я не смог устоять»: как один человек в 1965-м добавил null, и оставил индустрии счёт на миллиард долларов

5 марта 2026 года в своём доме, в окружении семьи, тихо умер человек, чей код вы трогали на этой неделе. Возможно, прямо сегодня. Возможно, он уронил вам прод. Звали его сэр Чарльз Энтони Ричард Хоар. Для друзей — Тони. Для пары поколений студентов — C. A. R. Hoare, тот самый, что в 26 лет придумал quicksort, выиграв у начальника спор на шесть пенсов. Тьюринговская премия 1980 года, логика Хоара, CSP, на которой потом выросла половина теории конкурентности. Большая, красивая, почти безупречная карьера. Почти. Потому что в 1965 году тот же самый человек добавил в язык одну маленькую штуку. И эта штука пережила его, переживёт нас и, скорее всего, прямо сейчас лежит где-то в вашем стектрейсе. Это null. Есть расхожий сюжет: коварная индустрия наплодила багов, а гениальные инженеры героически с ними борются. Красиво. И, как обычно, неправда. Потому что самый дорогой баг в истории софта добавил не злодей и не нерадивый джун. Его добавил один из умнейших людей в истории computer science. Вот про эту историю и поговорим.

https://habr.com/ru/articles/1045718/

#null #nullpointerexception #тони_хоар #tony_hoare #algol #системы_типов #option #rust #история_программирования

«Я не смог устоять»: как один человек в 1965-м добавил null, и оставил индустрии счёт на миллиард долларов

5 марта 2026 года в своём доме, в окружении семьи, тихо умер человек, чей код вы трогали на этой неделе. Возможно, прямо сегодня. Возможно, он уронил вам прод. Звали его сэр Чарльз Энтони Ричард Хоар....

Хабр

Fehler gehören beim Programmieren dazu. Gerade in Java stolperst du ziemlich früh über sie, weil dir der Compiler an vielen Stellen sehr deutlich sagt, dass etwas schiefgehen kann. Dabei tauchen meistens zwei Begriffe auf, die erst einmal unnötig kompliziert wirken: checked e...

https://magicmarcy.de/fehlerbehandlung-in-java-so-unterscheiden-sich-checked-und-unchecked-exceptions

#Exceptions #Checked #Unchecked #Code #Java #Compiler #Fehlerhandling #NullPointerException #Coding #Programming

Fehlerbehandlung in Java - so unterscheiden sich Checked und Unchecked Exceptions | magicmarcy.de

Fehler gehören beim Programmieren dazu. Gerade in Java stolperst du ziemlich früh über sie, weil dir der Compiler an vielen Stellen sehr deutlich sagt, dass etwas schiefgehen kann. Dabei tauchen meistens zwei Begriffe auf, die erst einmal unnötig kompliziert wirken: checked exceptions und unchecked exceptions. Der Unterschied ist aber nicht nur Theorie. Er beeinflusst direkt, wie du Methoden schreibst, wie sauber dein Fehlerhandling ist und wie gut andere deinen Code benutzen können.

magicmarcy.de

Wenn du mit Java arbeitest, wirst du früher oder später auf das Thema Optional stoßen. Gerade für Einsteiger ist das anfangs oft verwirrend. Warum braucht man das überhaupt? Wieso kann man nicht einfach null verwenden? Und wie geht man richtig damit um? In diesem Beitrag möchte ich dir zeigen,

https://magicmarcy.de/optionals-in-java

#Optionals #null #Null-Problem #NullPointerException #Java8 #orElse #Java #Programming

Optionals in Java - warum sie so wichtig sind und wie du sie richtig einsetzt | magicmarcy.de

Wenn du mit Java arbeitest, wirst du früher oder später auf das Thema Optional stoßen. Gerade für Einsteiger ist das anfangs oft verwirrend. Warum braucht man das überhaupt? Wieso kann man nicht einfach null verwenden? Und wie geht man richtig damit um? In diesem Beitrag möchte ich dir zeigen, was Optional ist, wofür es gedacht ist und wie du es praktisch einsetzen kannst, um sauberen, lesbaren und sicheren Code zu schreiben.

magicmarcy.de

In nahezu jedem Code ist es unerlässlich Vergleiche anzustellen. Dies ist nicht nur bei der Eingabe von Daten unumgänglich, sondern auch für diverse Bedingungen. Beispielsweise muss man bei einem Login per Email-Adresse ja auch vergleichen können, ob die Eingabe korrekt gewesen ist. Ein anderes

https://magicmarcy.de/equals-richtig-nutzen

#Java #equals #Vergleich #NullPointerException #String #StringUtils #Apache_Commons_Lang

Equals richtig nutzen | magicmarcy.de

magicmarcy.de | Programmieren für Einsteiger

magicmarcy.de
Heute geht es in #Luzern den #NullPointerException an den Kragen: @SimonMartinelli erklärt uns Null Safety mit #JSpecify in der Praxis!
#Java #null #NPE

A helpful #NullPointerException, a trigger point & a working set—three features that can turn a week-long bug hunt into a half-hour fix. @manojnp shows how #EclipseIDE uses them in real-world #Debugging.

Find out more: https://javapro.io/2025/08/12/breakpoints-the-lifeline-of-debugging-an-eclipse-features-guide/

@EclipseFdn @EclipseJavaIDE #Java

The #1 production error in #Java? Still the #NullPointerException. NullAway and #JSpecify bring static null-safety to Java codebases—gradually and without breaking everything.

Richard Gross explains how to migrate the smart way: https://javapro.io/2025/08/07/fixing-the-billion-dollar-mistake/

@UberEng @SpringCentral

Wenn du mit Java arbeitest, wirst du früher oder später auf das Thema Optional stoßen. Gerade für Einsteiger ist das anfangs oft verwirrend. Warum braucht man das überhaupt? Wieso kann man nicht einfach null verwenden? Und wie geht man richtig damit um? In diesem Beitrag möchte ich dir zeigen,

https://magicmarcy.de/optionals-in-java

#Optionals #null #Null-Problem #NullPointerException #Java8 #orElse #Java #Programming

Optionals in Java - warum sie so wichtig sind und wie du sie richtig einsetzt | magicmarcy.de

Wenn du mit Java arbeitest, wirst du früher oder später auf das Thema Optional stoßen. Gerade für Einsteiger ist das anfangs oft verwirrend. Warum braucht man das überhaupt? Wieso kann man nicht einfach null verwenden? Und wie geht man richtig damit um? In diesem Beitrag möchte ich dir zeigen, was Optional ist, wofür es gedacht ist und wie du es praktisch einsetzen kannst, um sauberen, lesbaren und sicheren Code zu schreiben.

magicmarcy.de

Die häufigste Ursache für Fehler in #Java-Produktionssystemen? Immer noch: die #NullPointerException. Richard Gross zeigt, wie Tools wie NullAway & #JSpecify schon zur Compile-Zeit absichern & welche Entscheidungen Teams treffen müssen.

Lese: https://javapro.io/de/wie-man-den-milliarden-dollar-fehler-repariert/

@UberEng @SpringCentral

For over two hours, #Fennec 141.0.0 has managed not to crash. This is because I didn't attempt to use it during that time.

#Firefox #Mozilla #NullPointerException #FDroid