... in Java, the conventional use of a null return both as an indicator of an error condition and as an actual data item
Manapság nem számít jó APInak ha egy függvény NULL-t ad vissza. A "checked exception" (kivétel amit kötelező elkapni) eszköze arra szolgál, hogy a hívó fél mindenképpen használjon catch blokkot - ezáltal elgondolkodva azon hogyan kezelje az esetet. Egy NULL ellenőztése könnyen elfelejthető.
I believe this is due to Google scale issues (recalling that Go was designed primarily to address Google development needs, rather than programming problems at large).
Vagyis a Go (szerinte) nem egy általános programozási nyelv, hanem egy, a Google feladataira optiamlizált eszköz. Ha ebben igaza van eleve értelmetlen összehasonlítani a C++ / Java párossal, amik teljesen általános programnyelvek.
But even in exception-based languages there is still a lot of code that tests returned values to determine whether to carry on or go down some error-handling path.
Erről nem vagyok meggyőződve. Legalább is ha zavaró méreteket kezd ölteni az mindenképpen tervezési hibára utal.
Amit hiányolok az az exceptionök hiányosságainak tárgyalása. Nem derül ki, hogy milyen problémát is old meg a Go által kínált hibakezelés.
Vagyis a Go (szerinte) nem egy általános programozási nyelv, hanem egy, a Google feladataira optiamlizált eszköz
Eredetileg így tervezhették, de miután publikálták, szerintem már nem csak belsős eszköz.
Amit hiányolok az az exceptionök hiányosságainak tárgyalása.
Szerintem inkább az a probléma, hogy nagyon könnyű rosszul használni őket. Beküldtem egy másik blogmarkot is a témában, de a szerkesztők végül nem élesítették ki, ott a tipikus eseteket kifejtik, és hasonló konklúzióra jutnak, hogy hibakódokat érdemes visszaadni, mert nehezebb elrontani a kezelésüket (rögtön a hívó függvény után kell foglalkozni velük).
Ez az ami számít. Legalább is az hogy később mássá mutálódott nem változtat a lényegen, vagyis ha lehet hinni a szerzőnek, akkor az exceptionöket főleg erőforrás követelmények / speciális toplógiai igények miatt hagyták ki. (Nem pedig "because they suck").
A másik blogmarkról nem nyilatkozom, de a szemöldökeim másfél napja vannak összeráncolva.
Exception
Manapság nem számít jó APInak ha egy függvény NULL-t ad vissza. A "checked exception" (kivétel amit kötelező elkapni) eszköze arra szolgál, hogy a hívó fél mindenképpen használjon catch blokkot - ezáltal elgondolkodva azon hogyan kezelje az esetet. Egy NULL ellenőztése könnyen elfelejthető.
Vagyis a Go (szerinte) nem egy általános programozási nyelv, hanem egy, a Google feladataira optiamlizált eszköz. Ha ebben igaza van eleve értelmetlen összehasonlítani a C++ / Java párossal, amik teljesen általános programnyelvek.
Erről nem vagyok meggyőződve. Legalább is ha zavaró méreteket kezd ölteni az mindenképpen tervezési hibára utal.
Amit hiányolok az az exceptionök hiányosságainak tárgyalása. Nem derül ki, hogy milyen problémát is old meg a Go által kínált hibakezelés.
Vagyis a Go (szerinte) nem
Beküldtem egy másik
Nem emlékszem, hogy találkoztam volna ezzel, és nem látom, miért ne jelent volna meg, ha beküldted. Küldd be (újra).
Igazad van, tényleg sehol
Tervezés
Ez az ami számít. Legalább is az hogy később mássá mutálódott nem változtat a lényegen, vagyis ha lehet hinni a szerzőnek, akkor az exceptionöket főleg erőforrás követelmények / speciális toplógiai igények miatt hagyták ki. (Nem pedig "because they suck").
A másik blogmarkról nem nyilatkozom, de a szemöldökeim másfél napja vannak összeráncolva.