|
![](/i/fill.gif) |
On 14/08/2012 11:17 AM, clipka wrote:
> So, how many (mainstream) programming languages have you seen that
> actually /do/ work this way?
>
> C# is pretty "innovative" in that respect.
If doing things right rather than copying the old kludges that everybody
else uses is "innovative", then sure...
>> My point being that everybody acts like "oh, of /course/ you can't
>> possibly do that", when in fact you can.
>
> You can't with the conceptual approach used by C#. You know, the "I can
> verify at compile time that the object referenced by variable X can do
> A, B, C and D."
>
> If you want to give such guarantees, you can't handle variables of types
> for which you have no declaration, because obviously you can't tell
> whether they can do A, B, C and D or not.
...and yet, in my Haskell snippet, a type is not exported, yet still you
can convert it to a string, because that interface is implemented.
Obviously /the compiler/ must be able to see the declaration for the
type. But that doesn't mean that /the programmer/ needs to.
> Andy, be fair. The fact that there's /someting/ programming language X
> can't do that Haskell can doesn't mean that programming language X is
> "poor quality".
No, that's true. I was really point pointing out that somebody says "X
*must* work this way", and, er, no, it doesn't. It could work
differently if you wanted it to. I guess it's a silly thing to argue
about though.
My real concerns about C# are that they seem to have added a feature for
everything, rather than step back and look for a simpler, more elegant
design that solves everything, not just the things they added specific
features for.
Post a reply to this message
|
![](/i/fill.gif) |