On 20 February 2012 22:07, Frank Shearar <[email protected]> wrote:
> On 20 February 2012 20:24, Igor Stasenko <[email protected]> wrote:
>> On 20 February 2012 21:18, Frank Shearar <[email protected]> wrote:
>>> On 20 February 2012 19:41, Guido Stepken <[email protected]> wrote:
>>>> Am 20.02.2012 10:22, schrieb Edgar J. De Cleene:
>>>>
>>>> Yesterday in a response to Craig I said have a Cuis with a wiki on top and
>>>> this .image is 5 mb and run on a “modern” G4 400 mhz PowerMac.
>>>>
>>>> That’s is a beauty and the power of Cuis, thanks Juan for your reduced 
>>>> image
>>>> of 2 mb
>>>>
>>>>
>>>> Looks nice.
>>>>
>>>> World menu -> appearance -> set desktop color -> Error
>>>>
>>>> What i - never ever - understand is, why - when Smalltalk is a reflective
>>>> language and there are so mighty tools - like Moose - out there, able to
>>>> search the whole codebase for possible occurrences of "message not
>>>> understood"?????
>>>
>>> This is just a trivial application of the solution to the Halting
>>> Problem (left as an exercise for the reader).
>>>
>> I wonder, what kind of language solves that problem better than smalltalk 
>> does?
>> Apparently compilers can complain about using wrong type/name.. but they 
>> cannot
>> complain about null pointer(s).. they usually crash & bail to OS :)
>
> The sad thing is that null pointer exceptions are perfectly avoidable
> in statically typed languages. Er, in decent ones at least! You have
> to actively work to use nulls in Haskell, for instance. If you have
> something that might or might not be there, you have an option type:
> Maybe in Haskell, or Option in Scala. It's just a wrapper that tells
> you "yes, I have a value, and this is it" or "no, I have no value".
>

Well yes, you add null to be one of the "expected" values,
so you basically turn your input dataset S into (S+nil).
but i was actually referring to them as unexpected value(s)
which is much harder to deal with.
But the problem is that for any input dataset for which your code
works, there could be another
dataset for which it doesn't, named unexpected input :)
Because doing data validity checks
at every possible entry point (method) of your application might not
what you would like to do.

DNU is about dealing with unexpected input, i.e. object receives a
message which it cannot understand.
So, the question is basically the same: how those languages deal with
unexpected input?

> (I have a Smalltalk implementation up on
> http://www.squeaksource.com/Nutcracker/ in the Maybe package. You
> still have the problem in that you can always say Just value: nil, but
> it's handy for (a) saying "this is optional" and (b) chaining
> operations together such that a Nothing stops computation from
> proceeding.)
>
> frank
>
>>> Or: if you want to avoid MNU, don't use a dynamically typed language.
>>>
>>
>>> frank
>>>
>>>> This is no personal quality problem, this is a methodical problem. In the
>>>> whole Pharo team. "Wrong development process!"
>>>>
>>>> Please, again: "Develop the development process!"
>>>>
>>>> Have fun, Guido Stepken
>>>
>>
>>
>>
>> --
>> Best regards,
>> Igor Stasenko.
>>
>



-- 
Best regards,
Igor Stasenko.

Reply via email to