On Fri, 27 May 2005, Lothar Scholz wrote:

> Hello Thomas,
>
> TA> On Fri, May 27, 2005 at 01:35:19AM +0900, andrew.queisser / hp.com wrote:
>>> 1) Intellisense is really just another crutch that does more harm than
>>> good? There were a few hardcore defenders of this position but not many.
>
> TA> I'm indifferent.  It depends what mood I'm in as to whether it is useful
> TA> or not -- and invariably I tend not to use it, if only because, being
> TA> the author, I know what formal parameters most methods expect.
>
> Intellisense is most useful for the case where you use libraries or
> modify/extend code that you don't have written (aka multi person projects).
>
> Sometimes i think that the missing typeing eats up very much of the time
> that is saved by being typeless as Code is much harder to read and
> understand. That's why i simply can't understand people who are against
> "optional" type declarations.

do you really think so in the general case?

i think things like

   j = (char (*)[20]) malloc( 20 );

and

   char * const *(*next)();

and

   int (* foo())[]

take a considerable amount of time to read - at least for me.

scroll way down to see explanations of above - i'm curious how long it might
take people to de-code them.

in the end i've decided that there are only two reasonable forms of typing:
dynamic (a la ruby) or strong and automatic (a la ml langs).  other kinds are
evil IMHO.

that being said i'm not against optional typing - but coding the compiler to
understand all of them can be tricky unless it's just simplistic.  eg.  how
would you like to declare, in ruby, a that takes a string parameter, and a
hash of strings to arrays of int as args?  and, if you would only say 'proc' -
then what good is that typing system?


   hash = { 'key' => [42] }

   block = lambda{|string, hash| p hash[string]}

   #
   # how to declare callback?
   #
   callback = block

   callback[ key ]

cheers.

-a
-- 
===============================================================================
| email :: ara [dot] t [dot] howard [at] noaa [dot] gov
| phone :: 303.497.6469
| My religion is very simple.  My religion is kindness.
| --Tenzin Gyatso
===============================================================================























explanations:
1) j is a pointer to a freshly malloc'd array 20 of char
2) next is a pointer to function returning pointer to const pointer to char 
3) foo is a function returning pointer to array of int

man cdecl