cvogt / compossible

Scala Records: Extensible records and type-indexed maps
https://www.youtube.com/watch?v=pA2js-TV1Ck
82 stars 10 forks source link

Status of this effort? #11

Open Ciantic opened 9 years ago

Ciantic commented 9 years ago

I went through this: http://downloads.typesafe.com/website/presentations/ScalaDaysSF2015/T4_Vogt_Compossible.pdf

I've been looking a FP language with anonymous records. They are potentially immensely useful when dealing with SQL, as you pointed out in TODO.

I'm curious what is the status of this effort? Did you get the sense Scala itself could support this in future? Relaying on this feature in production would probably require some official support.

I wish Scala compiler was built like Roslyn (the compiler service of C#) so there wouldn't be holes in auto-completion.

cvogt commented 9 years ago

There is also the recording with live coding https://www.parleys.com/tutorial/scala-records-extensible-records-type-indexed-maps

The most recent code is https://github.com/cvogt/compossible/tree/tmp/0.2 .

It is an alpha implementation, so yes, Scala does support this as a library. No compiler changes needed. Just the current implementation needs to be cleaned up and battle tested.

The status is, that nothing happened since Scala Days SF. More urgent things have occupied my time. I am planning on resuming this effort in the next few months. There is also the scala-records project with complementary focus and there is a rough plan to merge efforts: https://github.com/scala-records/scala-records

Type-inference worked pretty well with this and so should code-completion in Eclipse and for anything blackbox in IntelliJ.

mfolnovic commented 7 years ago

Awesome work on this, I've been looking for this for a while. :)

I'm just curious on what's your current plan/status for this project? I genuinely think having good Records would make Scala really amazing.

cvogt commented 7 years ago

@mfolnovic I agree with you :). This is completely on pause. I am working on CBT these days: https://github.com/cvogt/cbt

There was the plan to integrate this with https://github.com/scala-records/scala-records which has overlap but different focus, to broaden the feature set.

I'd be very supportive if anyone picks it up.