33 ms·
Graal and Truffle could accelerate programming language design
- wellpast 10y agoI think another key part of the dream is IDE support. So maybe the dream is complete with: Graal + Truffle + Nitra[1]. [1] Nitra - https://github.com/JetBrains/Nitra https://github.com/JetBrains/Nitra
- zokier 10y agoHow does Nitra and MPS fit together? They both come from JetBrains and both describe themselves as "language workbenches"
- dangerlibrary 10y agoThere are a lot of weasel words for the other languages, but the comment about ruby is extremely interesting: "For example, the TruffleJS engine which implements JavaScript is competitive with V8 in benchmarks. The RubyTruffle engine is faster than all other Ruby implementations by far. The TruffleC engine is roughly competitive with GCC."
- geodel 10y ago> The TruffleC engine is roughly competitive with GCC It is not surprising in sense Java is competitive to C/C++ as per many Java developers.
- pjmlp 10y agoI work with .NET, Java and C++ stacks. In many use cases, C++ might win the benchmark game, but the end user will not notice any difference in human time. The biggest issue is of course than one needs to learn how to optimize code, use the right algorithms and data structures in first place.
- geodel 10y agoI agree mostly. Any Java application which does not need GUI other than web is just fine in most use cases.
- the_duke 10y agoUIs though... I haven't worked with a single Java based GUI application that did feel smooth, fast and efficient. I wonder why that is.
- pjmlp 10y agoBecause most developers don't care and code everything on the UI thread. Additionally Swing has bad defaults, so it requires effort to make the required set of calls to make them look better. Back in the Sun glory days, there were Sun blogs like Filthy Rich Clients, which lead eventually to a book http://filthyrichclients.org/ http://filthyrichclients.org/. It was a consequence of Sun not getting what it means developing GUIs for the consumer systems, think that their Solaris UIs (SunView, OpenWindows, CDE) weren't that great in that area. So most Java developers stick with the defaults and as such the majority of Java based applications send the wrong message.
- vvanders 10y agoAndroid does a bunch of things to keep you off the UI thread(IO throws an exception, handlers, Async Tasks, etc). You still have to GC at some point and when that happens chances are you're going to drop frames. Unless you're very aware of the garbage you're creating you'll take more than ~5ms which is usually enough to push you over 16ms with the other work that goes on during a frame.
- pjmlp 10y agoMeasure Java performance by how Android works is not a good measure. Dalvik is well known on Java world for having a JIT and GC implementations that worse than what most commercial embedded JVM are capable of. Things have improved with ART, but even there there are quite a few performance improvements that Google could eventually do. Soft real time Java GCs for embedded devices are being used in ground station controls of missiles and a couple of US Navy weapon systems. They surely don't want GC glitches in battle situations. The Android team seems to only bother with "good enough" in what concerns Android performance. As a side note, just check how many Android releases are they going through and yet real-audio support isn't quite there. Even Windows Phone has better support for it, and they do have WinRT and .NET on them.
- matthewrudy 10y agoChris Seaton gave this talk recently about JRuby+Truffle and some specifics about how it optimises so well compared to other Ruby implementations. https://youtu.be/b1NTaVQPt1E https://youtu.be/b1NTaVQPt1E Previous discussion https://news.ycombinator.com/item?id=12062454 https://news.ycombinator.com/item?id=12062454
- vidarh 10y agoChris is also reasonably active here. I've had the pleasure of discussing some of his jRuby work with him in the past (I occasionally plod along with own Ruby compiler in Ruby - it's nowhere near complete) and they've done a lot of impressive work to demonstrate how compiling Ruby into fast code is largely about assuming people will behave sanely (e.g. people won't usually give Fixnum#+ side-effects, or make it return weird stuff), but add fallbacks for when they do. This is the big challenge with Ruby: The subset of Ruby that people actually tend to work in is largely very predictable and possible to compile efficiently, but there's a lot of stuff around the fringes that people expect to work on the very rare occasions that we use it.
- azakai 10y agoI believe those benchmarks are for throughput, though. JS VM startup times (including v8) are highly optimized, while Graal+Truffle run on the JVM which is more optimized for sustained speed. JS VMs also tend to have multiple tiers for that reason - interpreter, baseline, and full JIT, etc. - while AFAIK the Graal+Truffle/JVM approach has just 2 (which is optimal for Java, but not for startup times of JavaScript and other dynamic languages).
- the8472 10y agoStartup times are mostly important for scripting or running things in the browser. If you start applications once on the server or desktop and keep them running then steady-state performance is more important. There also are projects underway to bring AOT compilation / caching of compiled code to the JVM. Right now they're only available to commercial customers due to their experimental nature and the needed support but if I remember the talk correctly they're supposed to be added to openjdk eventually
- azakai 10y agoTrue about AOT coming to the JVM, however, dynamic languages can't be AOT'd well in general, so that won't help Graal+Truffle languages much. Instead, dynamic languages tend to do tiering, which in principle is something Graal+Truffle could do, but it might be a lot of work.
- deleted 10y ago[deleted]
- hencq 10y agoWell at least it would help you avoid warm-up for the interpreter/compiler itself, so it might help a bit.
- wellpast 10y ago> Since the dawn of computing our industry has been engaged on a never ending quest to build the perfect language. ...unfortunately. I see PLs as mere material - sure, you can improve on them but at far more important is how we architect our systems (the PL-independent ways we create and organize our systems into interfaces and components) is where I see the software practitioners of today flailing - and no PL is going to save us there. We need to have a better way to analyze systems on these architectural measures and a better way to train people to build better architectures, not more PLs.
- stcredzero 10y agounfortunately. I see PLs as mere material That's only part of their point. It's as if we were in the building industry, and we needed new tooling for each specific material. When I'm at a hackspace, the same chop saw will let me cut wood, delrin rod stock, steel linear rails, and aluminum extrusion. The same drill press and bits will operate just fine on most of the above as well. What we have in the programming world is a situation where I'd need a different toolset for every material I'd listed above.
- rogerbinns 10y agoHave there been any recent languages/environments that (have reasonably) succeeded but aren't completely open source? I feel a general resistance to building a dependency on something when you don't have complete access to it, but maybe that is just me.
- ktRolster 10y agoHave there been any recent languages/environments that (have reasonably) succeeded but aren't completely open source? Xamarin. iOS too, although that depends on what you mean by 'recent'
- rogerbinns 10y agoMy comment was because I found it interesting that they are trying the partially open source model, when it seems like that hinders adoption. So 'recent' is the competition for adoption. Didn't a lot of Xamarin get open sourced after the acquisition? Swift is also open source, although Xcode isn't.
- ktRolster 10y ago>Swift is also open source, True, though practically speaking, it's not very usable without the (closed-source) Cocoa libraries (much like objective-C).
- kodablah 10y agoThe Oracle flavors of the JVM/JDK probably scare too many away with regards to redistribution of their product. That coupled with the fact that things like the AOT engine is closed source and the weight of the JVM for anything besides daemons (both mentioned towards the end of the article) probably keep language designers away these days. I would love a lightweight toolkit that made for easy language development. VMKit[0] is dead, MicroVM[1] is a nice idea but not full fledged. Many like myself looking to implement a toy language would love to be fast out of the gate and would rather not mess with the OS-specific constructs and specifics of LLVM IR. So we end up cross-compiling to existing languages or marrying ourselves to a certain runtime (e.g. the CLR). Any other lightweight VMs or AOT compilers that are cross-platform that language designers can use these days? 0 - http://vmkit.llvm.org/ http://vmkit.llvm.org/ 1 - http://microvm.github.io/ http://microvm.github.io/
- the8472 10y agoGraal/Truffle is not a proprietary part of the JDK, i.e. it's also part of OpenJDK. The article mentions this. Some tangential things mentioned are proprietary though.
- geodel 10y agoAlso sometime back there use to be OpenJDK maxine VM project which is gone and now an option of closed source SubstrateVM appeared. It may be unlikely but Oracle can simply remove highly paid staff from above mentioned projects and put in some closed source alternative/analogous projects. Open source project may then be left to rot. As it is almost every single developer on Graal etc is Oracle labs or Oracle funded research group at university.
- Scarbutt 10y agocheck out RPython.
- kodablah 10y agoI should have mentioned one of my wants was a pluggable type system. Maybe not a full type inferencing component (that would be nice!) but at least static typing at the IR level.
- azakai 10y agoGraal + Truffle are very, very cool. The main downside is that it only runs on the JVM, which is a substantial limitation. However, I assume one goal of the project is to make the JVM more competitive, which it certainly does.
- nostrademons 10y agoThere's actually a fairly long history of cross-language VMs, with various degrees of success. What usually happens is that they work fine for languages that look, semantically, basically like the native language on the VM. So LLVM works well as long as your language is mostly like C (C, C++, Objective-C, Rust, Swift). Parrot works if you language is mostly like Perl 6 (Perl, Python, PHP, Ruby). .NET works if your language is mostly like C# (C#, F#, Boo, IronPython). The JVM works if your language is mostly like Java (Java, Clojure, Scala, Kotlin). Even PyPy has frontends for Ruby, PHP, Smalltalk, and Prolog. "Mostly" in this case means semantically, not syntactically. It's things like concurrency model; floating point behavior; memory layout; FFI; semantics of basic libraries; performance characteristics; and level of dynamism. You can write a Python frontend for both the JVM and CLR, and it will look like Python but act like Java and .NET, respectively, with no guarantee that native CPython libraries will work on it. The problem is that this is where basically all the interesting language-design research is. I wouldn't use Rust for the syntax; I'd use it because I want properties like complete memory safety, manual control over memory allocation, easy (and fast!) access to C libraries, and short startup time. These are all things that Truffle explicitly does not deliver. It's a great tool if you work in the JVM ecosystem and want to play around as a language designer. But most of the interesting languages lately have created their own ecosystems, and they succeed by solving problems so fundamental that people will put up with having to learn a new ecosystem to gain the benefits they offer.
- pjmlp 10y agoWell you have the mainframes model that used kernel JITs for all their official languages, like the OS/400 nowadays IBM i. On IBM i the language surface is RPG, Cobol, C, C++ and Java. On other ones you could eventually consider the micro-coded CPUs as a kind of cross language VMs.
- nickpsecurity 10y agoThe ctoss-language compatibility was a feature of OpenVMS systems. The AS/400 family had AOT and/or JIT for all object code in system. They also had PL/S that subsetted PL/I by removing runtime. These tech seem to combine all those capabilities in one stack.
- lisper 10y ago> A way to create a new language in just a few weeks As a Lisp programmer, I regularly create new languages in a matter of hours.
- bostonpete 10y agoI'm vaguely familiar with Lisp, but I'm not a Lisp programmer. Can you explain this comment?
- nilved 10y agoLisp languages are easy to build because of their simple syntax. It's also easy to use a Lisp to build a Lisp, since it is homoiconic (this is what you're doing with the macro system.)
- stcredzero 10y agoIt's much the same in Smalltalk. Often, one could create a domain-specific superset of Smalltalk, complete with its own control structures.
- chrisseaton 10y agoDo you mean macros? Could you re-implement a language such as C as a macro? And have it be about as fast as GCC? I didn't think they were that sophisticated.
- ktRolster 10y agoCould you re-implement a language such as C as a macro? You can do that pretty quickly in IO language (admittedly, that's not Java)
- wcrichton 10y agoYou cannot. Because Lisp is homoiconic, you don't code in (what I personally believe to be) reasonable syntax, you code in abstract syntax trees. Lisp is so easy to metaprogram because everything is parentheses and the burden is on the user, not the parser, to determine the program's abstract syntactic structure. So, Lisp can only metaprogram its own syntax, you can't introduce a C-like syntax.
- outworlder 10y ago> Since the dawn of computing our industry has been engaged on a never ending quest to build the perfect language. Except it really hasn't. The industry is going to use whatever language has the bare minimum feature set they value at the moment and no more. Call me cynical but my point of view is: if the industry were really striving for perfection, there would be no COBOL or BASIC, for instance. Lisp had already been invented. Garbage collection was a thing already. We had macros. A REPL. A little later, OOP and multiple dispatch. The list goes on. They had to ditch the (almost) perfect wheel for a cheaper square one. Fast forward a few years, and the square wheel is now polished but just as square, the insanely great wheel now just is as cheap as it is, but we won't use it, as the axles expect the square wheel. And then we invent Java and XML...
- ktRolster 10y agoif the industry were really striving for perfection, there would be no COBOL or BASIC, for instance. COBOL was a huge improvement at the time, an innovation in readability. BASIC is a good demonstration of why the platonic ideal language is wrong: it was designed for beginners (that's what the acronym stands for), and it did a reasonably good job at that. Beginners might be overwhelmed by OOP, multiple dispatch and a list of design patterns. Sometimes experts are too. Garbage collection is a nice feature, but it doesn't fit everywhere. Sometimes you want to manage your own memory. That's why we have more than one language.
- kbenson 10y ago> BASIC is a good demonstration of why the platonic ideal language is wrong That's often my point when people bring up arguments against a language that seems a bit more complex (Perl), or for language simplicity (Python). Some complexity falls into a sliding scale where there is more cognitive load while learning, but it pays of in the every day usage. The siple example of an extreme end of this is APL. If you can internalize and understand the extremely concise and powerful syntax and semantics of the language (I haven't), you can do amazing things very quickly[1]. Now, doing amazing things very quickly isn't the only metric by which we judge a language, but it is a useful metric, and it's probably worth having a language on that end of the spectrum in your tool set. 1: https://www.youtube.com/watch?v=a9xAKttWgP4 https://www.youtube.com/watch?v=a9xAKttWgP4
- speeder 10y agoAsk HN via comment hijacking due to the Ask HN post also failing with various errors: I want to submit a story about WhatsApp being blocked in Brazil, again. My first attempts told me I was submitting too fast (but I didn't submitted anything in a LOOOONG time... I am slow-banned or something?) Then I thought it was a bug due to me having a invalid character in the title, when I attempted to submit it again with the title fixed, it only upvoted another person submission... that had wrong title. I tried to make a comment with the right title, I got a message: "You cannot comment here". I then tried to load the comments page, and the submission was deleted :/ So I then tried to submit again, this time I got "already submitted". So... what is going on HN, why I can't submit it? EDIT: please don't downvote/flag before someoen reply... I couldn't find another way to get in contact. EDIT2: Can some mod delete this post? I am getting downvoted a lot :(
- hobs 10y agoDo a little googling and you wont get a downvote: https://news.ycombinator.com/item?id=7494732 https://news.ycombinator.com/item?id=7494732 dang's profile https://news.ycombinator.com/user?id=dang https://news.ycombinator.com/user?id=dang with contact information.
- shoyer 10y agoAt the very bottom of every Hacker News page, there is a contact link: hn@ycombinator.com
- IanCal 10y agoThere is a contact link at the bottom of the page : hn@ycombinator.com
- ktRolster 10y agofwiw IO language is a pretty good prototyping language too.....good for experimenting with different syntaxes, etc
- ricardobeat 10y ago> Interpreted dynamic languages like Python, JavaScript, PHP and Ruby look the way they do because building such a language is the path of least resistance when you start from a simple parse tree. This looks... backwards?
- stormbrew 10y agoEspecially if you want to talk about ruby as a language with a simple parse tree.
- dkarapetyan 10y agoDoesn't RPython do all the same things? Also there are language workbenches (http://www.languageworkbenches.net/ http://www.languageworkbenches.net/) that allow one to get a bunch of things like IDE support and even basic compilers by properly expressing the language syntax and semantics. I agree there is a lot of interesting stuff going on here but lets not forget the prior art. Even OMeta I think already did a lot of these things way back when. Going further back there's META II (https://en.wikipedia.org/wiki/META_II https://en.wikipedia.org/wiki/META_II). I think building self-specializing interpreters is the main trick. If that becomes easy then a whole bunch of other magic is also possible. But I'm just an amateur so all of this is still very impressive.
- jakub_h 10y agoSince you mention OMeta, let me remark here that for some reason, this whole Graal+Truffle thing looks to me like an "enterprisey" version of OMeta+COLA.
- deleted 10y ago[deleted]
- Veedrac 10y agoRPython is very similar to Graal+Truffle, except that RPython is based on tracing and Graal+Truffle is based on partial evaluation. There's a nice paper comparing the two approaches and their relative merits: http://stefan-marr.de/papers/oopsla-marr-ducasse-meta-tracing-vs-partial-evaluation/ http://stefan-marr.de/papers/oopsla-marr-ducasse-meta-tracin...
- TheMagicHorsey 10y agoInteresting. But I feel like Racket is a better framework for quickly prototyping new languages.
- trishume 10y agoTotally, Truffle is not nearly as easy as a simpler interpreter in a terser language, but unlike a Racket interpreter your code can actually run faster than raw Racket, and have incredible tooling and integration support.
- wcrichton 10y agoBefore anyone gets too excited, make sure you look at what a compiler using Truffle actually looks like, and remember that Java is far from an ideal language for writing a compiler. I'll use their SimpleLanguage (their primary tutorial lang) as an example. Parser [1] shows how lack of sum types makes code messy. Lots of "factory.createStringLiteral" kind of calls. At least Java has a mature parser generator. Implementing interpreter nodes [2] requires a pretty large amount of boilerplate, each individual node is relegated to its own file, some classes are littered with probably autogenerated getters/setters. While functional languages can be too terse, Java shows its exceptional verbosity here. [1] https://github.com/graalvm/truffle/blob/master/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/parser/SimpleLanguage.atg https://github.com/graalvm/truffle/blob/master/truffle/com.o... [2] https://github.com/graalvm/truffle/tree/master/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes https://github.com/graalvm/truffle/tree/master/truffle/com.o...
- alehander42 10y agoWell can't we just use another language for JVM (e.g. Kotlin or Scala)
- wcrichton 10y agoHopefully! I would love to see a Truffle language written in Scala, although some of the DSL stuff I've seen in Scala (e.g. Delite) is still pretty verbose. I feel like the missing piece is quasiquotations--writing the code generation step would be a lot easier with those.
- qwertyuiop924 10y agoUrrgh. This just reminds me of why I gave up on android app development, and the JVM ecosystem as a whole: it tests my ability to put up with bullshit.
- deleted 10y ago[deleted]
- 10y ago
- Animats 10y agoSo why is Oracle doing this? Also, anything from Oracle which is partly open and partly closed is scary. They've done that with Java and MySQL, which drives people away from both.
- nickpsecurity 10y agoThat was one of my counterpoints. We've seen Oracle fight to say API's are copywritten and try to take down Android. All that kind of crap makes me think safest route is pushing ETH/Wirth languages and/or Racket if you want DSL's and stuff.
- ilostmykeys 10y agoFunny, I posted this yesterday and got no up votes. Can you post a duplicate of some post and get up voted? I didn't realize that was possible.
- chrisseaton 10y agoTake a look at the Medium URLs and you'll see they have a fragment ID and so count as different submissions.
- trishume 10y agoI wondered why this didn't get merged with my submission. Makes a neat example of how random getting on the HN front page is though. Although I'm sad that randomness chose to give the second posting karma instead of mine.
- grashalm 10y agoWhat was your title? Without a good one, your post might have been just skipped by most.
- ilostmykeys 10y agolike Digg before it, HN can be easily easily gamed you have sizable groups of people who work like one team, one person submits and others up vote In the Digg days I was approached by some guys in Eastern Europe who offered to get me diggs for $$. I declined. I was hoping HN is harder to game, but I don't see any evidence that support that.
- trishume 10y agoExactly the same except including the "radically" from the blog post. Wow I missed out on 400+ karma at this point... Oh well, at least they are only internet points.
- grashalm 10y ago
- wahern 10y agoJudging by LuaTruffle, the Lua example, then this framework is useless. LuaTruffle appears to implement the syntax of Lua but none of the semantics. For example, no metatables and no coroutines. Lua is unparalleled in its support of coroutines, and metatables are what make optimizing Lua _difficult_. Without implementing either of those things you've neither demonstrated the ability of the framework to implement novel control-flow semantics (asymmetric coroutines that can yield across multiple, unadorned function invocation) nor performance capabilities (JIT-optimizing Lua tables is non-trivial). I'm not even sure LuaTruffle implements Lua's lexical closures or tail call optimization, both critical to Lua's ability to support functional programming patterns. Of course, it definitely doesn't implement the Lua C API, which is part-and-parcel of what makes Lua preferable as an extension and glue language. But I was willing to overlook that if it could easily implement the former. The beauty of a good DSL isn't the syntax (I know, hard to believe!), but in novel approaches to code flow execution and other deep semantics. Golang's goroutines are beautiful. Rust's ownership analyzer and prover are what _defines_ the language. Haskell's lazy evaluation open up whole new dimensions for problem solving (and headaches). If your language framework doesn't at least preserve the ability to implement those things cleanly and performantly, it's not adding much value and is basically a toy. It's not like writing a lexer for a DSL is a serious impediment. (Using Lua's LPeg, for example, you can write parsers and build an AST for most major languages in a few hundred lines of code.)
- trishume 10y agoTruffle+Graal could actually easily implement all of those things, LuaTruffle is just one of the less developed ports. JRuby+Truffle has highly efficient analogues of most of the things you mention.
- chrisseaton 10y agoLuaTruffle has a few hours work by an casual non-expert external person. If you want to know about how well we can implement the semantics of an existing language then look at JRuby+Truffle - it passes more Ruby language tests than any other alternative Ruby implementation. The only stumbling block is co-routines as the JVM doesn't have these and they're hard to implement efficiently with other constructs.
- zzzcpan 10y agoSo, judging by the slides for that "one vm to rule them all" talk [1], it's Java all the way. One has to generate AST in a form of Java code and deal with Java ecosystem. And it feels all very very complicated for all the wrong reasons. I guess some people from the Java world could find something useful there, but it's very unlikely to attract anyone else. [1] https://lafo.ssw.uni-linz.ac.at/pub/papers/2016_PLDI_Truffle.pdf https://lafo.ssw.uni-linz.ac.at/pub/papers/2016_PLDI_Truffle...
- makmanalp 10y agoPreviously: https://news.ycombinator.com/item?id=6232240 https://news.ycombinator.com/item?id=6232240
- qwertyuiop924 10y agoOkay, very cute, but what if you want your language to have significant semantic differences from C and the like? What if you want to write a Scheme interpreter, for instance? Can I have Continuations? Can I have Tail Call Optimization? I very much doubt it. If you want to write a language that is semantically like C for the most part, than go ahead and use Truffle, but that's not where interesting language design is happening. Show me that Truffle's Ruby implementation hasn't removed callcc (yes, Ruby has callcc), and maybe I'll reconsider.
- kovrik 10y agoDon't know why you get downvoted. That's exactly what I thought. Java is my main lang and currently I'm working on my hobby project - implementing Scheme r5rs in Java. That is hard! And I doubt I'll be able to implement full r5rs even close. I have no idea (yet) how to implement Continuations: In theory yes, you can implement Continuations in any lang which has Exceptions (the only way in Java to unwind a stack). Like: https://www.politesi.polimi.it/bitstream/10589/108685/3/2015_07_Bernardini.pdf https://www.politesi.polimi.it/bitstream/10589/108685/3/2015... Proper TCO: AFAIK it is impossible in general case in object-oriented lang. That is one of the reasons why Rich Hickey decided to have explicit recur in Clojure, Yeah, you can implement your own stack and stop using Java's stack, but then you lose performance and interop: "Interop, speed, TCO -- Pick two." Rich Hickey See https://news.ycombinator.com/item?id=4922848 https://news.ycombinator.com/item?id=4922848 Then Full Numeric Tower is hard! Mostly due to the fact that Java's type system is not strong enough. I think Kawa is the best implementation of Scheme for JVM you can get now. But even Kawa has some limitations (due to JVM limits): https://www.gnu.org/software/kawa/Compatibility.html https://www.gnu.org/software/kawa/Compatibility.html
- polskibus 10y agoThis article, while very interesting, completely ommitted .NET CLR. Does anyone know how does the CLR compare to JVM, especially the new CoreCLR? How maturę is it in terms of using the best of breed JIT optimizations?
- desireco42 10y agoOne word: Oracle.
- carterehsmith 10y agoTo be fair, Oracle gives you things such as VirtualBox, MySql, Java, Netbeans etc for free. That's not too bad for an 'evil' company.
- wilonth 10y agoNo it doesn't, they are made by Sun Microsystems, they are free because of Sun, not Oracle.
- ZenoArrow 10y agoThey were project from Sun Microsystems originally, but Sun Microsystems doesn't exist anymore. Oracle have chosen to keep some of the Sun products open/free (they've closed support for others, such as OpenSolaris, which was continued through an open-source fork).
- carterehsmith 10y agoThat's just not true. Consider all the improvements to the above software that came after Oracle's purchase of Sun. There was a boatload of them and they keep coming. Oracle is paying for that. They are all free, and that is because of Oracle, not because of Sun as Sun does not exist anymore.
- wilonth 10y agoImprovements? How much? They ruined OpenOffice, triggering the LibreOffice fork. They ruined MySQL, triggering the MariaDB fork. The original Sun would have done 10X better improving those things they made.
- carapace 10y agoWell now, I have got to find time to implement Joy (lang by Manfred von Thun) in this and see if it works. (I can't tell just by thinking about it, at least not so far. It will either work and be great, or not-work and be really really interesting why not.)
- kristianp 10y agoWhen I first heard about this it was promoted as a faster ruby implementation. How far away is it from running rails? Interesting that they've gone as far as running C extensions "internally", making it easier to run existing ruby apps without running up against the barrier of a native gem and having to change the code.
- cpeterso 10y agoHere is a video of a Graal/Truffle talk given by a researcher at Oracle (presented at Mozilla in 2013): https://air.mozilla.org/one-vm-to-rule-them-all/ https://air.mozilla.org/one-vm-to-rule-them-all/
- grashalm 10y agoThis is quite outdated. here is an overview of Graal/Truffle papers and tutorials: https://wiki.openjdk.java.net/display/Graal/Publications+and+Presentations https://wiki.openjdk.java.net/display/Graal/Publications+and...
- deleted 10y ago[deleted]
- iso-8859-1 10y agoIs this one less outdated? https://www.youtube.com/watch?v=FJY96_6Y3a4 https://www.youtube.com/watch?v=FJY96_6Y3a4
- grashalm 10y agoYes this brand new. Have fun!