Jak wyjaśnić różnicę między wartością NULL a wartością zero?

59

Praca nad problemem wykorzystującym formułę zmiany procentowej:

percent change =  100 * [(new value - old value) / old value]

Jak wyjaśniłbym tę różnicę new value or old value = NULL, zamiast 0komuś, kto może nie być programistą?

Mój szef zastanawia się, dlaczego w TextBoxie jest pusty ciąg zamiast wartości, ponieważ mamy starą wartość, ale nie nową.

OO
źródło
11
„Jak mam wyjaśnić różnicę”? W jakim języku Niektóre języki zgłaszają (lub zgłaszają) wyjątek. Niektóre zwrócą wynik NULL. Niektóre zależą od szczegółów implementacji NULL. Musisz być bardziej konkretny.
S.Lott,
29
Zmień pole tekstowe, aby powiedzieć „Dane niedostępne” zamiast pustego ciągu.
Craig,
3
@ZJR - więc wyświetl wiadomość na czerwono pod polem. Chodzi o to, że „NULL” lub pusty ciąg mają tyle samo zastosowania w interfejsie użytkownika, co adres pamięci obiektu.
detly
10
Analogicznie temperatura 0 stopni i brak odczytu temperatury to różne sytuacje ...
NWS
4
Nie mogę teraz odpowiedzieć, że jest chroniony, ale zawsze wyjaśniam, że NULLto stan , a nie wartość - oznacza to, że nie znasz wartości. W przypadku SQL zwykle używam analogii partii do zademonstrowania.
JNK

Odpowiedzi:

101

Aby wyjaśnić szefowi różnicę między „zero” a „null”:

„Zero” jest wartością. Jest to unikalna, znana ilość zera, która ma znaczenie w arytmetyce i innej matematyce.

„Null” nie jest wartością. Jest to „symbol zastępczy” dla wartości danych, która nie jest znana lub nie została określona. Ma to znaczenie tylko w tym kontekście; operacje matematyczne nie mogą być wykonywane na wartości null (wynik jakiejkolwiek takiej operacji jest niezdefiniowany, a zatem ogólnie reprezentowany jako null).

Na przykład, jak w komentarzach: „Jaki jest twój roczny dochód?” to pytanie wymagające odpowiedzi numerycznej. „0” jest całkowicie poprawną odpowiedzią dla kogoś, kto nie pracuje i nie ma dochodów z inwestycji. Jeśli użytkownik w ogóle nie poda wartości, niekoniecznie nie zarabia; po prostu nie chcieli powiedzieć Twojemu oprogramowaniu, ile zarabiają (lub mało). To nieznane, nieokreślone; dlatego, aby umożliwić kontynuowanie działania oprogramowania, należy określić symbol zastępczy „null” dla tego pola danych w oprogramowaniu. Jest to technicznie ważne z perspektywy danych; to, czy jest ważne na poziomie biznesowym, zależy od tego, czy rzeczywista wartość liczbowa (nawet zero) jest wymagana do wykonania operacji matematycznej (takiej jak obliczenie podatków lub porównanie z progami określającymi korzyści).

W komputerach praktycznie każda operacja na zmiennej zawierającej null spowoduje albo zerowanie, albo wystąpienie błędu, ponieważ ponieważ jedna z wartości zmiennej nie jest znana, wyniku wyrażenia nie można poznać. Odpowiednikiem wykonywania matematyki na wartości zerowej byłoby, gdybym zapytał „Co jest pięć plus liczba, o której teraz myślę?”. Nie możesz dać jednoznacznej odpowiedzi, ponieważ nie znasz numeru, o którym myślę. Operacja na zero, z wyjątkiem dzielenia przez nią, jest zwykle poprawna i zwraca inną znaną, unikalną wartość.

KeithS
źródło
37
„Symbol zastępczy” jest pomocnym opisem. Jeśli przeprowadziłeś ankietę i spytałeś „ile masz lat?”, A ktoś pominął to pytanie, NIE powinieneś przedstawiać tej odpowiedzi jako 0. To zakłada (prawdopodobnie fałszywe) założenie. Prawidłowa reprezentacja to NULL.
Nathan Long
Możemy więc po prostu powiedzieć, że NULL jest symbolem zastępczym w pamięci o nieokreślonym typie danych.
Maxood
1
@ Maxood - Zależy od języka programowania. Rozważałbym zmienną całkowitą, która może mieć wartość NULL (używając składni A) i jest ustawiona na NULL, aby nie miała znanej wartości całkowitej. Oczekiwany typ jest znany, więc jeśli nie jest zdefiniowany, można uznać, że nie jest w 100% poprawny. Prawidłowe jest stwierdzenie, że null nie ma wartości ani typu. Osobiście powiedziałbym, że typ null lub NULL nie jest zdefiniowany w zależności od kontekstu i języka, którego używasz. W języku C # oznaczałoby to po prostu, że odwołanie do obiektu byłoby niezdefiniowane.
Ramhound
NULLto wyraźny BRAK danych, nie jest symbolem zastępczym, jest pojedynczą reprezentacją braku danych.
Termin „symbol zastępczy” znajduje się w tej odpowiedzi od pierwszego ogłoszenia i nie będę jej teraz zmieniać. Edycje, które ponownie podbiły to pytanie, miały wyjaśnić inne punkty w wyjaśnieniu. Jak zaimplementowano w większości języków, jest to rzeczywiście „symbol zastępczy”; zarezerwowana lokalizacja w pamięci pod adresem zero, która istnieje w strukturze programu w celu wyraźnego „odniesienia” przez wskaźniki pamięci w celu wskazania, że ​​wskazują one nic użytecznego. To więcej, niż OP musiałby powiedzieć swojemu szefowi.
KeithS
172

Boss-speak jest zawsze trudny ...

Zero to liczba, dzięki czemu możesz z nią robić różne rzeczy.

Null to jednorożec. Nie istnieje, więc nie możesz nic z tym zrobić.

Dave Wise
źródło
45
+1 dla jednorożca! Muszę dodać: bardzo dobre wyjaśnienie.
BЈовић
14
Być może będę musiał zacząć umieszczać moje zapytania:; NVL(somefield,'UNICORN'))
FrustratedWithFormsDesigner
11
Wtedy szef może po prostu zapytać: „Dlaczego nie ustawiamy na 0, żebyśmy mogli z tym coś robić? Null brzmi bezużytecznie”.
AlbeyAmakiir
26
@AlbeyAmakiir - Prawidłowa odpowiedź na takiego szefa brzmiałaby: „Udając, że wiemy rzeczy, których nie wiemy, dlaczego nie zarobimy 1 miliona? To miłe i duże”.
Nathan Long
12
Nie mogę uwierzyć, że uzyskało ponad 90 głosów. Zacznę umieszczać jednorożce we wszystkich moich odpowiedziach.
Morons
38

Po prostu sformułuj równania na zdania:

„Jaka jest zmiana procentowa, jeśli zaczniesz od nieznanej wartości, a skończysz na 150?”

i

„Jaka jest zmiana procentowa, jeśli zaczniesz od 85 i skończysz na nieznanej wartości ?”

Oczywiście odpowiedź na oba pytania brzmi: „Nie można tego obliczyć, ponieważ brakuje jednego z najważniejszych elementów obliczeń”. To jest istota „null”.

Powinno być zatem łatwo wymyślić równoważne zdania o wartości zerowej i zobaczyć, w jaki sposób są one zasadniczo różne:

„Jaka jest zmiana procentowa, jeśli zaczniesz od 0, a skończysz na 150?”

i

„Jaka jest zmiana procentowa, jeśli zaczynasz od 85, a kończysz na 0?”

Chociaż odpowiedzi mogą nie mieć większego sensu (z zerami), przynajmniej można to obliczyć . W przypadku wartości null obliczenie nie jest nawet możliwe .

Eric King
źródło
2
+1 „Nieznany” jest zdecydowanie świetnym wytłumaczeniem i jest łatwe do wyjaśnienia w zdaniach.
Scott Rippey,
@ ScottRippey - argumentowałbym, że wartość nie unknownjest po prostu nie istnieje, ponieważ w przypadku wartości NULLprocentowej tak naprawdę nie ma ŻADNEJ wartości liczbowej (procentowej) ani innej wartości procentowej.
Ramhound
2
@Ramhound Oto, do czego chciałem dojść w kontekście pierwotnego pytania: „Nieznany” reprezentuje „symbol zastępczy” w odpowiedzi KiethSa, co moim zdaniem jest doskonałym wyjaśnieniem. Dla szefa niebędącego programistą oznacza to, że może gdzieś istniała wartość, ale jej nie mamy (w bazie danych, systemie, formie itp.). Czy jest jakaś wartość? Nie mamy wystarczającej ilości informacji, aby wiedzieć w ten czy inny sposób. Brak danych. To subtelnie inne znaczenie niż nic , co sugeruje, że nie ma żadnej wartości . W zależności od kontekstu dyskusji każde z wyjaśnień może być poprawne.
Eric King
20

Gdy rozmawiasz z szefem, użyj 0zerowania i zerowania ?. To właściwie oddaje, że jest to symbol zastępczy coś ale nie wiem co to jest.

Michael Haren
źródło
? genialny, prosty i jasno przekazuje tę koncepcję świeckim.
nelaaro
12

Co powiesz na to:

  • 0 jest odpowiedź na „ile płynu jest w pustej butelce?”.
  • NULL jest odpowiedzią na „jaka jest zawartość pustej butelki?”.

Lub jeśli wyobrażasz sobie bezdzietnego mężczyznę:

  • liczba jego dzieci jest 0
  • jego najstarszym dzieckiem jest NULL

Podstawowa różnica polega na tym, że 0chodzi o mierzalną ilość, podczas gdy NULLo istnieniu. Będąc ilością, 0reprezentuje coś , tj. Ilość, to znaczy 0bardzo podobnie 0.000000001reprezentuje ilość (taką, która w problemach codziennego życia jest w istocie nie do odróżnienia 0). W przeciwieństwie do tego nieNULL reprezentuje nic . W rzeczywistości nie ma nic bliskiego NULL. Dowolna wartość zmiennej (i wyrażeń) to albo NULLcoś, albo coś.

back2dos
źródło
8

Tak zawsze z powodzeniem tłumaczę:

0 to liczba 0.

NULL to nirwana, nic, nada, niente, nieistnienie, nieobecność.

Operacje arytmetyczne zdefiniowane na NULL zawsze dają wynik NULL.

... do tej pory pracował dla mnie.

Sokół
źródło
8
NULL to całkowite ustanie cierpienia? Łał! Muszę tego częściej używać w moim kodzie.
Claudiu
Tak, 0 to liczba. zerowa jest brak w dowolnej ilości.
Michael Durrant
7

Dlaczego nie zacząłbyś od pytania „dlaczego wartość jest równa NULL?” To może pomóc ci wyjaśnić, dlaczego obliczenia mogą być nieprawidłowe.

Jeśli robiłeś okresowe aktualizacje, a nowa wartość się nie prezentowała (na przykład błąd sieci), to NULL może oznaczać, że obliczenia nie można wykonać, a stara wartość procentowa jest nieaktualna. Możesz chcieć pokazać symbol informujący o tym, że masz nieaktualne dane, aktualizacja nie przebiegła zgodnie z oczekiwaniami.

To samo może być prawdą w przypadku brakującej starej wartości, ale trudno mi zrozumieć, w jaki sposób można utracić starą wartość (chyba że jest to pierwsze obliczenie lub bateria ulegnie wyczerpaniu i dane zostaną utracone). Ale możesz chcieć pokaż symbol, który wskazuje również na ten stan.

W każdym razie nie chcesz, aby tak się stało:

wprowadź opis zdjęcia tutaj

Źródło obrazu

Jim
źródło
+1. Oto odpowiedź: wyjaśnij, dlaczego wartość jest pusta. Jeśli nie możesz tego wyjaśnić, oznacza to błąd.
MarkJ
5

OldValue=Null nie znasz starej wartości, więc różnica jest nieznana (Null)

OldValue=0 Znasz Starą wartość, to 0, więc Różnica to Nieskończoność (Null)

Jeśli ważne jest rozróżnienie tych dwóch, po prostu zapisz Starą wartość jako PreviousValuei wyświetl ją gdzieś.


Edytuj na podstawie poniższego komentarza:
po prostu zapytam go, co chce zrobić w następujących sytuacjach i pokażę przykłady każdego z nich. Następnie zapytaj go: „Jaką wartość chcesz dla nich wyświetlić?”

Nie rób w żaden sposób problemu komputerowego. To pytanie biznesowe.

rev Morons
źródło
Nie sądzę, by mój szef zrozumiał to, co właśnie powiedziałeś :)
OO,
+1 za potraktowanie go jako pytania biznesowego. Szef prawdopodobnie i tak nie przejmuje się implementacją.
Allen Gould
4

Odniosłem duży sukces dzięki „pustemu”.

W przypadku osób, które rozumieją podstawową algebrę (lub prosty pomysł, że można przypisać wartość do symbolu), idea „pustej” wartości wydaje się dość prosta i różni się od wartości zerowej.

Jonathan Rich
źródło
4

NULL nie jest wartością, jest jej brak. Zero jest nadal wartością. (nawet jeśli można go użyć w przypadkach, w których nie można go w pełni ocenić.

Przez analogię (dobry sposób na wytłumaczenie non-teckies;

if I have three apples then I subtract three apples how many apples do I have? is 0

If I have a bag of apples and I never look in the bag, how many apples do I have? is null

Chociaż w tym przypadku dwa mogą mieć tę samą wartość (w zależności od języka), są one koncepcyjnie bardzo różne

Tom Squires
źródło
4

Naprawdę nie ma znaczenia, czy twój szef jest programistą. Problem jest konceptualny, a nie techniczny.

Poproś go, aby założył, że masz podwyżkę. Twoja stara pensja wynosiła 175 tys., Ale nowa pensja jest nieznana. Następnie zapytaj go - jaki procent podwyżek otrzymałeś?

Jeśli jest on arytmetycznie wyłączony, przeprowadź go przez cały proces, aż zobaczy, gdzie jest brakujące ogniwo.

Jonathan Maddison
źródło
3

Używam klapki monety. Prawda to głowy, fałsz to ogony, a jedna ręka spoczywa na drugiej, a moneta ma wartość NULL. Jeśli wiesz, że moneta jest główką, bardzo łatwo jest odpowiedzieć na pytanie „co jest przeciwieństwem tej wartości?”. Jedna ręka ukrywająca monetę pokazuje bardzo łatwo, że dana osoba może odpowiedzieć, jeśli pozwolisz jej zobaczyć aktualną wartość, ale ponieważ tego nie zrobisz, nie może ci dać odpowiedzi. Z tego, co wiedzą, nawet nie masz pod ręką monety!

Bryan Boettcher
źródło
1

Na polu NULL mówi, że nie mam pojęcia; nie ma tu żadnych danych - to odpowiednik pustego miejsca. Zero (0) mówi, że znam wartość tego pola wynoszącą dokładnie 0, np. Liczba całkowita, która jest o jeden mniejsza od liczby pierwszej.

Np. Mogę mieć kartkę, którą piszę do systemu komputerowego, która mówi, ile jest winien każdy klient. Klient A jest winien 50 USD, klient B jest winny 0 USD, a klient C jest winien NULL (????), ponieważ kwota kwoty należnej klientowi C została zredagowana (ktoś narysował nad nim czarną linię i jej nieczytelność; lub ich notatka mówiła, że ich rachunek za nie jest jeszcze gotowy). Mogę z łatwością powiedzieć, że klient B jest winien 0 USD, i mogę spokojnie powiedzieć, że nie wiem, co jest winien klientowi C. Nie chcę obciążać klienta kwotą 0 USD (ponieważ mogą być winni pieniądze).

dr jimbob
źródło
1

Zakładając, że nie zajmujemy się rzeczami specyficznymi dla języka, takimi jak:

#define NULL 0

Różnica polega na tym, że 0 jest wartością liczbową, gdzie NULL nie. To jest jak pusta komórka na kartce papieru milimetrowego. Komórka może zawierać „0”, ale może być również pusta. Wartość null wciąż jest wartością, ale uważałeś ją za wyjątkową. Na przykład, jeśli twoje komórki były teraz znakami, możesz użyć pustej komórki jako spacji, a pusta komórka nie jest już możliwa, chyba że wyznaczysz lub stworzysz znak, który ma być przypadkiem szczególnym.

Co oznacza wartość null, zależy od sposobu interpretacji danych:

  • Dane zerowe mogą oznaczać „jeszcze nie dostarczone”, a program poczeka chwilę, zanim ponownie sprawdzi wartość.
  • Dane mogą nie mieć wartości zerowej. Można to interpretować ściśle jako liczbę całkowitą, a wartość niecałkowita byłaby niemożliwa.
  • Zwykle w pamięci adres 0 jest interpretowany jako zero, co oznacza, że ​​nie można go użyć.
Wasilij Szarapow
źródło
NULL == 0działa dobrze, gdy masz do czynienia ze wskaźnikami zerowymi w C i in. Jeśli próbujesz wyjaśnić ten pomysł swojemu szefowi, który nie jest programistą, pokazując im kod, robisz to źle.
Tullo_x86
1

Uruchomiłbym sprawdzanie NVL i jeśli jeden z parametrów ma wartość NULL, wyświetliłbym ciąg „N / A” (nie zwracaj „0”, ponieważ to po prostu nieprawda!).

Jest to coś, co z punktu widzenia menedżera wyglądałoby bardziej profesjonalnie niż wyświetlanie wartości NULL, która wygląda tak, jakbyś miał błąd (którego oczywiście nie masz - ale tak to wygląda w przypadku nieinżyniera) .

alfasin
źródło
+1 szefowi i wszystkim użytkownikom nie obchodzi, co oznacza null. Chcą sensownego wyjaśnienia wartości. Jeśli nie ma starej ani nowej wartości, nie ma zmiany.
jqa
1

mamy starą wartość, ale nie nową wartość.

Wydaje się, że w jego umyśle brak nowej wartości nie oznacza, że ​​jest nieznana; jest taki sam jak stara wartość. Możesz to odpowiednio zakodować bez wyjaśniania wartości null, ponieważ jego zdaniem nigdy nie ma wartości null.

Zamiast argumentować na temat wartości NULL, upewnij się, że nie spowoduje to innych problemów. Jakie są konsekwencje posiadania zbyt starych danych? Kiedy ktoś widzi zmianę 0%, czy naciska przycisk paniki? Czy to wypaczy jakieś analizy lub agregacje w czasie?

Po prostu nie sądzę, że potrzebuje samouczka programowania komputerowego, ale byłoby miło, gdyby wiedział, co to jest zero i zadał właściwe pytanie.

JeffO
źródło
1

Jeśli old valuewartość jest zerowa, wynik równań powinien być odpowiednio zerowy. Wynika to z faktu, że null nie jest liczbą, oznacza to nieznaną wartość. Dlatego obliczenia nie mogą być kontynuowane.

Oczywiście twoje równanie również zawiedzie, jeśli old value = 0nie możesz podzielić przez zero.

Zazwyczaj zajmujesz się tymi rzeczami za pomocą instrukcji case, która poprowadzi cię ścieżką tego, co chcesz pokazać. Więc jeśli chcesz, aby wynik był wyświetlany jako null, gdy nie możesz obliczyć (jak w przypadku wartości null lub zero, to zrobiłbyś instrukcję case coś w rodzaju

case when [old value] = 0 then null 
else 100 * (([old value] - [new value]) /[old value]) 
end
HLGEM
źródło
Z punktu widzenia użytkownika 0 i NULL w przypadku starej wartości nie byłyby równe różnicy (np. Gdybym musiał pokazać wartość w polu tekstowym). Zmiana procentowa, brak wartości może oznaczać to samo co zero lub zero, prawda?
OO
W przypadku zmiany procentowej zero oznacza konkretnie, że nie było żadnej zmiany (stare i nowe wartości były dokładnie takie same), zero oznacza, że ​​nastąpiła zmiana, ale nie można ustalić wartości procentowej. Dlatego prawdopodobnie nie chcesz pokazywać zera jako wyniku, ponieważ jest to mylące.
HLGEM
1

Kilka świetnych dyskusji na temat analogii w celu wyjaśnienia mechanicznych aspektów symbolu zerowego w porównaniu z innymi wartościami; jednak sedno tego pytania, być może z perspektywy menedżera, polegającego na odpowiednim wyrażeniu wyników w interfejsie użytkownika, reprezentujących znaczące granice zmienionej formuły stosowanej w odniesieniu do ich konkretnego problemu, można odpowiedzieć bardziej szczegółowo.

W przypadku forumula ze zmienioną wartością procentową należy przedstawić dwie rzeczy: kiedy coś jest mierzone po raz pierwszy i kiedy nic nie jest mierzone dla konkretnego aspektu.

Kiedy coś jest mierzone po raz pierwszy (oldValue === NULL), zmiana procentowa nie ma zastosowania; i można / należy wyraźnie zauważyć, że jest to pomiar początkowy dla tego cyklu pomiarowego.

Gdy nic nie jest mierzone (newValue === NULL), faktyczna wynikowa zmiana procentowa jest w rzeczywistości wartością zero (przy założeniu różnej wartości w poprzednim cyklu). W tym przypadku zero jest ogólnie odpowiednią odpowiedzią na formułę. W ostatnim cyklu nie było żadnego pomiaru, a zatem nie wystąpiła zmierzona zmiana. Nie powinno to oznaczać, że nic się nie zmieniło, tylko że nic nie zostało zmierzone, zarejestrowane ani przekazane w odniesieniu do tego aspektu.

JustinC
źródło
0

Z pewnością rozumieją pojęcie umieszczania „nie dotyczy” w formularzu, gdy mają na myśli „niedostępne”. Na przykład, aby odpowiedzieć na pytanie: „Ile lat ma Benjamin Franklin?” odpowiedzi 0 i nie dotyczy są oczywiście różne (a ta druga jest poprawna). Podobnie odpowiedzi 0 i NULL są różne.

Scott Whitlock
źródło
0
  • NULL to brak wartości.
  • -Zero- jest wartością, a ta wartość to -Zero-.

Gdybym musiał komuś wyjaśnić te pojęcia, narysowałbym dwa pola.

  • Puste pole reprezentowałoby NULL.
  • Pole z liczbą -Zero- reprezentowałoby -Zero-.
Jim G.
źródło
0

Różnica między 0 a zerowym jest jak różnica między posiadaniem konta bankowego z saldem 0 a brakiem konta bankowego.

JSR
źródło
-1

Najlepiej to wyjaśnić za pomocą wskaźników.

var a -> [0] // variable a is initialized and set to hold 0
var b -> [123asgeb0] // variable b is initialized but not set, memory is pointed to, but holds whatever was there last

Z tego powodu, jeśli Twój język nie śledzi zmiennych NULL, użyjesz wszystkiego, co już tam było . Może to prowadzić do przepełnienia, zepsucia stosu lub innych nieprzyjemnych efektów ubocznych.

Jeśli język nie śledzić zmienne NULL, wówczas będzie to miało podaną sprawę do obsługi tego. IE traktuje NULL jako zero, rzuca wyjątek, traktuje jak nop itp.

Aby zademonstrować swojemu szefowi, zdobądź kilka kawałków zużytego papieru.

  1. Weź 2 szklanki i biały patyk.
  2. Wyjaśnij część strony i zanotuj zero
  3. Połóż na tym szklankę (to jest var a)
  4. Umieść szklankę nad inną sekcją strony (jest to var b)
Spencer Rathbun
źródło
-1

Sądząc po różnorodności odpowiedzi na to pytanie, można wywnioskować, co już wiemy: null może oznaczać wiele rzeczy.

Albo oznacza to, że dane są:

  • nie wiadomo,
  • znany jako nieznany,
  • niepoprawny (np. błąd pomiaru),
  • niedostępne (np. ze względów bezpieczeństwa),
  • znany jako znany, ale nieistotny dla bieżącego przetwarzania danych
  • dane są nieskończone (często używane w bazach danych)
  • prawdopodobnie jeszcze 10 rzeczy, o których nie myślałem

Z tego i wielu innych powodów często przydatne jest zdefiniowanie struktury danych, która zawiera znaczenie wartości zerowej (np. Klasa Opcjonalna).

Dibbeke
źródło
-2

Osoba, która to zrobiła, nie ma poczucia humoru. FWIW Sam jestem architektem.

Brak jest pustką. Według legendy istnieje 17 smaków (możliwych znaczeń) Null, w tym „Nie wiem”, „Nie powiedzieli” i „Ktoś to złamał”. Nikt nie wie, dlaczego oprócz DBA i architektów, którzy patrzą z ciemnych pokoi na zaplecze zwykłych programistów. Uśmiechają się uprzejmie do szefów i poruszają językami z głęboką troską z niemożliwie złożoną mądrością, która musi tak być, i jest bardzo ważna, ale niezbyt jasna - ponieważ szefowie zapewniają ważną wydajność DBA i Architektowi. Czek płacowy. Mimo to Nulls nigdy nie zdradzają swoich tajemnic. To czarne dziury puste. Jedno zero nigdy nie równa się drugiemu zeru, ponieważ każda pustka jest pusta od równości i odmawia przyznania, że ​​może nie być wcale pusta. Jest to oczywiście przypuszczenie, ponieważ żadna szanująca się wartość zerowa nigdy nie mogłaby tego przyznać. Czasami wartości zerowe zasysają ogromne ilości rzeczywistych danych do ich (). Nazywa się to błędem, ale tak naprawdę jest to pustka umysłu programisty zapominającego o zerach. Więc widzisz, że czasami rozmnażają się. Ale jak i dlaczego zawsze szybko się zapomina. () jest czasem znakiem zerowym lub jego kuzynem zerowym, ale paradoksalnie rzadko jest błędem.

Zero to określona ilość czegoś. Zera są znacznie szczęśliwsze niż zero. Zera są po prostu leniwe i nie dodają wiele do wyniku.

Dla nudnej, bardzo starej, dokładnej odpowiedzi Null jest reprezentacją „brakujących informacji i nieistotnych informacji” EF Codd, twórca SQL.

Codd wynalazł także trzecią normalną formę, którą stosuje się w umysłach młodych informatyków jako formę wstępnych tortur. Po opanowaniu jest całkowicie ignorowane. Podobne rzeczy dzieją się po wprowadzeniu projektowania obiektowego. I nigdy nie cieszymy się, że zostawiamy to w spokoju, więc pojawia się niedopasowanie impedancji, aby dodać do brawurowej walki.

Michael
źródło