4 ms·
One headache I see that no one seems to mention is thread affinity seems a lot harder to manage in an implicit system. Many patterns use a single thread for sy
by jayd16 6y ago
One headache I see that no one seems to mention is thread affinity seems a lot harder to manage in an implicit system. Many patterns use a single thread for synchronization but often times one thread is special. UI systems often have a UI thread that controls the GLContext or what have you. In something like C#'s async, you can easily schedule tasks off and on that thread. I'm not sure how you could do this implicitly. Loom seems to keep around native Threads for this sort of thing?
I would be really interested in seeing a UI system written with Loom.
>FFI that bypasses the JDK and interacts with native code that does either IO or OS-thread synchronization is extremely rare in Java.
I would also argue its rare because its hard to do. This is a self fulfilling argument. In C#, a very similar language, its much more common to do that sort of thing because its easier. C# is chosen for games and other apps because it can interop with native more easily.
- pron 6y ago> I'm not sure how you could do this implicitly. See https://news.ycombinator.com/item?id=25301246 https://news.ycombinator.com/item?id=25301246 > I would also argue its rare because its hard to do. I would argue it's mostly because the Java ecosystem is so rich (often richer than "native" alternatives), there's hardly ever a need to do it. BTW, as of JDK 16, you'd be able to do FFI in pure Java: https://openjdk.java.net/jeps/389 https://openjdk.java.net/jeps/389 It's not yet entirely convenient -- that would come later.
- vbezhenar 6y ago>>FFI that bypasses the JDK and interacts with native code that does either IO or OS-thread synchronization is extremely rare in Java. >I would also argue its rare because its hard to do. Is it? I recently had to write some simple code with C to interact with WinAPI and JNI was pretty straightforward to do.