|
![](/i/fill.gif) |
Am 14.08.2012 10:06, schrieb Invisible:
>> C# has a lot of these "if you DO mean it, say so in the code" things.
>> Which I, personally, think is pretty smart.
>
> If by "pretty smart" you mean "how /every/ programming language should
> work in the first place", then yes.
So, how many (mainstream) programming languages have you seen that
actually /do/ work this way?
C# is pretty "innovative" in that respect.
>>>> Yes. Well, what would you expect? A public method that returns a value
>>>> of a type you can't see the declaration of?
>>>
>>> Haskell lets you do exactly that, yes.
>>
>> I /think/ you should avoid trying to compare maintream languages'
>> features to those of Haskell.
>
> 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.
> Besides, why should I avoid comparing things to Haskell? It's true that
> almost nobody has heard of it. But does that mean that it's OK for
> mainstream languages to be poor quality? I think not...
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".
I'd dare say C# is actually pretty /high/ quality (at least the language
per se; one might argue about its standard libraries); there's something
to the claim that it's kind of "Java done right".
Post a reply to this message
|
![](/i/fill.gif) |