5 ms·
Hi everyone, I'm the author of the blog post. Feel free to let me know if you have any questions or suggestions!
by fniephaus 7y ago
Hi everyone, I'm the author of the blog post. Feel free to let me know if you have any questions or suggestions!
- tus88 7y agoDoes anyone actually outside of Oracle actually use Graal?
- chrisseaton 7y agoTwitter uses Graal in production right now - if you send a Tweet it goes through Graal. Goldman Sachs use Graal for their Slang language experiments. I use Graal at Shopify. There are others.
- tus88 7y agoInteresting. Is it the cross-language support or are there other reasons to use it?
- chrisseaton 7y agoTwitter use it for simple performance in Scala. Goldman Sachs use it as an easy way to implement languages, to integrate existing C code, and possibly integrate Python in the future. I use it for Ruby performance.
- fniephaus 7y agoI'm not aware of anyone using GraalVM for its language interoperability in production. However, it's used by GraalVM languages internally for supporting things like C extensions and FFIs. So far, there's been a lot of interest in the performance improvements that the Graal compiler provides [1] and GraalVM Native Image [2], the toolchain that allows the compilation of Java apps and Truffle languages into binaries. But, there's a lot more you can do with GraalVM [3]. [1] http://www.ssw.uni-linz.ac.at/Research/Papers/Stadler14/Stadler2014-CGO-PEA.pdf http://www.ssw.uni-linz.ac.at/Research/Papers/Stadler14/Stad... [2] https://www.graalvm.org/docs/reference-manual/native-image/ https://www.graalvm.org/docs/reference-manual/native-image/ [3] https://www.graalvm.org/docs/why-graal/ https://www.graalvm.org/docs/why-graal/
- shelajev 7y agoFor example, NextJorunal is using it for React SSR [1]. There are other companies using GraalVM's JS engine for similar functionality. The Dutch Police is using GraalVM's interop between Scala and R for their data science [2]. I'm sure there are other projects which explore the benefits of having a polyglot runtime, would love to hear about those efforts. [1] https://nextjournal.com/kommen/react-server-side-rendering-with-graalvm-for-clojure https://nextjournal.com/kommen/react-server-side-rendering-w... [2] https://vimeo.com/360837119 https://vimeo.com/360837119
- fniephaus 7y agoAnd there are other products based on GraalVM. For example, the Gluon Client plugins can compile Java apps to iOS (https://gluonhq.com/java-on-ios-for-real/ https://gluonhq.com/java-on-ios-for-real/) with GraalVM Native Image. There are also a bunch of Java frameworks (e.g. Quarkus, Helidon, Micronaut; see "In the Highlights" section on the bottom of https://www.graalvm.org/ https://www.graalvm.org/ for more) that come with special support for GraalVM.
- carapace 7y agoVery cool! Congratulations. :-)
- fniephaus 7y agoThanks, glad you like it!
- jschnitzer 7y agoThis is very cool! Thank you for your work and inspiration it creates todo similar things.
- jgon 7y agoSmalltalk and especially Squeak is something I'll always love, congratulations on such an awesome project! One question I have is does the GraalVM open up any possibilities towards extending Smalltalk to a more multi-threaded domain using the capabilities of it and the JVM. I guess that the one thing that has always held me back from doing more Smalltalk is watching that single thread peak at 12.5% of my machine's capabilities, with the other 7 cores staying quiet. Or is the "single-threadedness" of Squeak too deeply baked into the implementation to be able to work around with the JVM? I know there were some multi-core experiements a few years ago with the RoarVM but nothing seemed to make its way into the main implementation.
- fniephaus 7y agoThanks! RE your question: Squeak's scheduler (also written in Smalltalk) would need to be extended with support for multi-threading. Since that requires a significant amount of work, it's probably out of the scope of the project at this point (unless someone is interested to work on this, of course). However, it's already possible to do multi-threading from Smalltalk using some other language like Java. We have some students doing just that with Ruby to parse HTML content in multiple threads.
- Rochus 7y agoThat's interesting work, thank you very much. I would be very interested in the performance gain in using the GraalVM JIT compared to the original Squeek (Cog) or e.g. VisualWorks the performance of which is comparable to CPython (https://benchmarksgame-team.pages.debian.net/benchmarksgame/which-programs-are-fastest.html https://benchmarksgame-team.pages.debian.net/benchmarksgame/...). I'm aware of another publication which concludes that the performance gain of a Truffle based solution is about the same as of an RPython based one. Did you also have a look at this? And finally: could'nt you improve performance even more by using a more optimized bytecode (instead of the bluebook one, as it was e.g. done here http://strongtalk.org/downloads/bctable.pdf http://strongtalk.org/downloads/bctable.pdf)?
- igouy 7y ago> ... VisualWorks the performance of which is comparable to CPython... https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/vw-python3.html https://benchmarksgame-team.pages.debian.net/benchmarksgame/...
- Rochus 7y agoI already posted the link in my comment.
- igouy 7y agoNo, I posted a different link.
- Rochus 7y agoIn what respect is it different? What did you intend to show?
- igouy 7y agoYou posted a link to normalized boxplot averages which-programs-are-fastest.html for 28 different language implementations. I posted a link to side-by-side measurements vw-python3.html of individual Smalltalk and Python programs.