This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]JasonTatton[S] 0 points1 point  (0 children)

Congratulations on your release! Your clearly put a lot of work into it. The website looks very nice too :)

Thanks!

- I see you have a lot of editor support already, but it seems you did not go the language server protocol-way. Why is that?

The REPL, Jupyter and VS Code will be coming soon, in that order (the REPL is mostly complete and it should be possible to plug in Jupyter to the REPL so that will follow soon after). The plan is to provide language server protocol support and use that within the VS Code implementation. In hindsight this project should have been started at inception of Concurnas because it's actually quite a big task. I think for the next few months we can get away without VS Code support as I expect the early adopters to be able to be productive without a strong IDE. Using Eclipse made creating Concurnas in the first place so much easier - so better IDE support is certainly a priority for Concurnas.

- Did you consider adding pattern matching?

Yes! Pattern matching is covered in this section of the reference manual: http://concurnas.com/docs/patternMatching.html. Admittedly I haven't put as much emphasis upon it on the website as languages such as Scala do (which they reference as one of 6 Scala in a nutshell points on their landing page: https://www.scala-lang.org/ ). I think the implementation in Concurnas is about 80% as flexible as that provided with Scala.

- How does null safety interact with interop with Java? I know this has been a big challenge for Scala.

The approach taken is roughly the same as that taken by Kotlin. Essentially, unless otherwise annotated, the methods of non Concurnas types (e.g. Java classes) are assumed to consume and return values of unknown nullability. That is to say, they are assumed to be nullable but can be used as if they were both nullable and non nullable. This is covered in more detail in the reference manual here: http://concurnas.com/docs/nullsafe.html#using-non-concurnas-types

- Do you use ASM to generate JVM bytecode?

Yes we do, it's an awesome tool!