![]() It can stream it over the network too, with probabilistic read ahead and caching for maximum efficiency. Root has its own file format for efficiently storing massive amounts of data in arbitrarily complex structures. In fact you can pause your entire program and save it to disk or send it over the network to keep running somewhere else. Root can serialize any object, without requiring any custom code whatsoever (some serious dark magic needed for this). Root is fully interoperable with Python and R - you can mix scripts and REPLs between the languages and pass objects between them. python + numba as well, but not as straight-forward. Yes this is technically possible with e.g. After identifying performance critical parts of your code, you can compile them and get the full power of bare metal C++, without changing anything about the code. After prototyping you can save your code as a script. You can work with it completely interactively. Root has a feature complete C++ interpreter, with scripting and a REPL loop. Root gives you dynamic library loading and reloading - you can fix a bug or add a new feature, recompile parts of your program and keep working without restarting it. ![]() Root adds fully working reflection to C++. If you're "just" trying to analyze some data, your experience will indeed be "horrible" compared to what's offered by Python, R, Matlab, or Julia. It gets a bad rap because it forces you to use primitives that were designed back in the early nineties. Root is absolutely, mind-blowingly, amazing. Worth noting, when you look at all of the existing native Clojures (Ferret, Carp, jank, etc), only one of them aims to be Clojure source compatible while providing a true REPL-driven experience: jank. In particular, its interop and memory management systems are of interest. I have my eye on it so that we might be able to learn from some of the decisions made over there. My overall sentiment for Ferret is that it's great and I'm excited that it exists. Ferret is written in Clojure and requires the JVM to run, whereas jank's host is native, meaning its runtime and compiler and both native (C++) Ferret doesn't have a JIT-based runtime, meaning no nREPL while you build your programs jank provides the whole Clojure interactive programming experience, meaning you can start with a REPL and an empty file and end up with a whole server/GUI application/game without stopping to recompile/run againģ. Ferret targets embedded platforms primarily jank is more general and less constrainedĢ. Ferret and jank have similar goals, but some key differences:ġ.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |