* Runs on JVM * Good Java Interoperability * Data ...
# announcements
p
* Runs on JVM * Good Java Interoperability * Data classes * Null Safety * Smart cast
s
I’m not sure JVM/java interop are particularly relevant to a language design course 😕
p
Interaction with it’s environment is important when designing a language
h
DSLs
s
@pavel you’re not wrong, though I do wonder if the course is more geared towards things like type theory and syntax
👍 1
p
@Shawn you are probably completely correct. But then I would argue that they are doing it wrong since even world’s most beautiful language that can’t interact with it’s environment is worthless for all practical purposes. But we are way off topic now
👍 1
c
I think the interop is an interesting case
...and thank you everyone for your input, much appreciated
@pavel When you say interact with it's environment, what are you speaking to specifically
p
@chris_b A bunch of stuff. I am a backend developer. I have to take input from internet over http(s). I have to talk to databases, restful services, soap services, write logs. I have to deal with transactions. Some of those things are OS level things. Some of those are standard protocols. Developers of my favorite language can of course implement all of those. And I can implement some of those myself. Of course, those implementations are fairly likely to be much less efficient, bug free and fully featured as the mature ones present in JVM or .NET. For an android developer the list of things they need will be slightly different (my guess is that it will involve drawing stuff on the screen), but the basic premise is the same. Having access to the enormous Java landscape gives you a lot of power and, from my point of view, should be seen as a language feature much more important than syntactic sugar like Data classes or Smart casts.
c
I am thinking of focussing my paper on, interoperability and how that has influenced the language, coroutines and bundling all the syntax and such into a topic called expressiveness
How Kotlin implemented coroutines is fascinating and very much related to what we are studying.
p
I haven’t used coroutines yet, so can’t really comment on that. But I would guess that the implementations for JVM, js and native are very different since those 3 environments have different constraints
👍 1
c
Well, thank you again for your time!
👍 1