Marduk Bolaños wrote on 08/14/2015 10:06 PM:
Since Racket is a compiled
language, I thought that perhaps it would be possible to compile these
packages as shared libraries and then (ideally automatically) generate
bindings for the desired language.

I think I understand your message, and am sympathetic.

It's tricky. There are lots of ways to "interoperate" between languages, but once you get into high-level languages (Racket, Java, Python, JavaScript, etc.), the C calling-convention native code way you might be thinking of doesn't necessarily work well. We can make it work, as needed, but sometimes making it work very smoothly and efficiently for all cases, like you might imagine, is infeasible or simply a low priority. (I started to get into details here on all the ways you can interoperate, but it's too big a topic for a general email.)

Also, FWIW, consider that, even if today you had *everything* using the native code interoperation, we might be in trouble when we find we have to write code that sits on the GPU (i.e., a different native architecture) at the same time as the code we're reusing, or use some "safe" "big data" compute server model, or whatever comes next. Maybe higher-level languages that aren't so easily mapped to a particular model of native code put us in a better position to smooth that transition.

It really bothers me that the current status of scientific software
engineering is such that there are several implementations of plotting
libraries, computer algebra systems, numerical routines libraries,
etc. all doing mostly the same things but differing in the language in
which they are written.

Note that I have nothing against diversity, but it seems to me that
there is too much reinventing the wheel.

Agreed, there is a lot of reinventing the wheel in computing in general, and rough interoperation in computing in general. This is not unique to computing. There's no single reason for it, but any of a large number of reasons, varying per instance. Sometimes overwhelmingly good reasons, usually trade-offs, sometimes no good reason I can see.

Don't get me started on some of the travesties that have happened relatively recently in CS -- in which accidents, impropriety, and just plain ignorance led to big steps backwards in the tools that we CS people use for thinking and building. It's not only *non*-CS scientists who feel the pain of IT wheel-reinventing. :)

You mentioned Racket plot. I know there has been interest in doing more numerical things in Racket. I don't know what the latest Racket plans are, but I assume that there are good reasons for whatever is being, er, plotted.

Neil V.

--
You received this message because you are subscribed to the Google Groups "Racket 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to