Hacker News new | past | comments | ask | show | jobs | submit login

> I also feel that Julia managed to achieve "forward interoperability" between libraries that is almost unparalleled in my experience: It is often possible to just pass data structures across library boundarie

Never coded in Julia, how does this work?






Caveat: This is in my view not just a technical achievement, it also works because some library authors play nice. And because things where standardized from the get-go, instead of evolving organically/provided much later by users.

I think the main thing that Julia gets right is that there are de-facto standardized interfaces for a lot of things that are actually followed/used.

E.g. in C++ on the other hand, you have a bunch of libraries that bring their own primitives, like all the Matrix classes-- their is no interface for those, and even if their was, it would be a pita to write C++ code that was able to work with a bunch of difference primitives here. So the problem is not only that it would be a lot of work to write C++ code to be "primitive-agnostic" (=> you would basically have to soak your codebase in templates), there are not even common expectations for you to build upon (like: does a matrix class provide rowncnt()? or rowCount()? or size(1)?, or nrow()? => if there is no common ground not even extensive template magic is gonna save your day).

Julia also makes it super easy to write type-agnostic code in general ("dynamically typed"), which is simply not the default and/or extra effort in many other languages.


There is a talk on how this is possible due to multiple dispatch: https://www.youtube.com/watch?v=kc9HwsxE1OY



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: