>
> As a counterpoint to your example, (although this isn't strictly
> correct), Rust has also been cited as an example of a language solving
> some of the problems that were seen in BitC's development..
>
I think Rust is looking pretty impressive as a project and if Bitc
kicks of again is probably a good starting point and has regional
analysis  built in ( the compiler is rust )

It has a solid team now ( the Firefox dev team)
It is funded
good environment with LLVM back end
good documentation
seamless interop with c with no marshalling .
good modularization ( .NET style assemblies and working libs)
Significant body of code in the stdlib and compiler.
Performance is currently between Java and Haskell.  ( They are
changing from dynamic vectors to supporting fixed sized arrays which
should prove a performance boost)
utf8 strings ucs-4 chars.
No GC pauses at the moment.

Technically for those who are interested it allows safe pointers via
regions  , a basic type class system ,  interfaces or functions and a
funny way to tie records/structs to methods. There is no encapsulation
and very basic polymorphism. They had classes but scrapped them since
no one used them , an important point.
Compilation is AOT .  Types can be  ref types  or value types and can
be shared or local.  The system has some inbuilt types and all other
data types are records / unions.

Probably the most critical thing is they have sort of embraced the
concepts of parallelism with basic Erlang style tasks and messages
between them.  Most types in Rust by default are not shared and are
stack allocated , because of this they have a dynamic stack that grows
and shrinks.  Shared  types are supported and use ref counting but
they soon plan to use a GC ( it may be there already)  , the key here
is heap types are a much smaller percentage resulting in smaller GC
heaps . Also any thread running a task with no shared types in the
task  has no relation to the GC and does not need to be paused.

Biggest issues
 Clumsy tying of records to functions using enum
 Type class system is pretty basic so the new arrays will need bounds checks.
 Lack of encapsulation or method overloading / var args
 runtime lib is not that great , its c style and I would prefer to see
a more non expert programmer friendly lib. ( eg string has an addchar
method that  builds a new string  behind the scenes)
performance not close enough to C++ .

Ben
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to