David (I think) asked how BitC would be different from C#. On reflection,
that's an interesting question. Given that I think BitC needs a single
inheritance object system, it *does* start to look a bit like C#. So here's
an attempt to answer David's question. If I were king of the universe, what
would C# 6.0 have?

1. Fixed-size arrays in the safe language subset. The fact that the
*fixed* keyword
is unsafe is just plain irredeemably stupid. I'm told that fixed arrays
were planned for CLR 1.0, didn't make the cut, and were dropped. It's time.
Oh. They shouldn't be limited to non-reference types either.

2. Attributes on local variables.

3. Attributes on types, not just on variables. With this, and a very little
bit of attribute algebra, effects could be encoded as attributes and effect
propagation could be user defined.

4. A proper region typing system

5. readonly properly enforced, plus shallow and deep readonly.

6. Type classes, to be used as WHERE constraints

7. Nat kind and associated kind classes, as introduced in Habit

8. Top-level functions (this is just a sugaring change).

9. Closures (as opposed to delegates)

10. Direct support for immutable types and effect-free code.


Probably more, but that's my initial list.
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to