Node.js and Python Interoperability
fridgerator.github.io
Node.js and Python Interoperability
1–10 of 22 posts
Re: Node.js and Python Interoperability
#2All the Tcl runtime is in the "runtime" object, so like "runtime.puts('Hello World')" or "runtime.expr('2128')", etc
It was a lot of fun
Re: Node.js and Python Interoperability
#3I recently did something similar with Tcl (instead of Python) and Duktape (instead of V8): https://rkeene.dev/js-repl/ All the Tcl runtime is in the "runtime" object, so like "runtime.puts('Hello World')" or "runtime.expr('2 128')", etc It was a lot of fun
Re: Node.js and Python Interoperability
#4I recently did something similar with Tcl (instead of Python) and Duktape (instead of V8): https://rkeene.dev/js-repl/ All the Tcl runtime is in the "runtime" object, so like "runtime.puts('Hello World')" or "runtime.expr('2 128')", etc It was a lot of fun
Tcl is one of those languages that feel special once you get to know it. In a good way! It’s like a command prompt for actual code. I don’t know how to explain it any better.
Anyway, Tcl felt very much like an 80's interpreted language to me. It seemed like every data structure was built on top of strings, and every statement was being run through eval().
Re: Node.js and Python Interoperability
#5Re: Node.js and Python Interoperability
#6I've worked the opposite way: calling Javascript from Python, using PyV8. It worked okay enough, but it felt super fragile. We only used it to run a tiny bit of client-side code on the server. I wouldn't want to have a large project where Javascript and Python interact heavily.
Re: Node.js and Python Interoperability
#7Re: Node.js and Python Interoperability
#8I'm having the requirement to work with Node and Python now. I write my webapps in node but have data analytics scripts written in python to be invoked. I'm planning to use [python-shell - npm]( https://www.npmjs.com/package/python-shell )
Re: Node.js and Python Interoperability
#9Earlier quoted context omitted.
Tcl is one of those languages that feel special once you get to know it. In a good way! It’s like a command prompt for actual code. I don’t know how to explain it any better.
I'm not sure I got to know Tcl properly . I needed to use it to interact with an electronics design tool in order to extract information about a design, and so most of what I learned was from the tool's documentation about how to use its API, and some random Stack Overflow for specific questions. Anyway, Tcl felt very much like an 80's interpreted language to me. It seemed like every data structure was built on top o…
As for the eval you need to keep discipline there is difference whether you use [] {} or "".
The magic about the language is that it has no statements, for example you are missing try/catch? You can implement it your own: http://code.activestate.com/recipes/68396-try-catch-finally/
Re: Node.js and Python Interoperability
#10There were several tough things however. The first was error handling. Yes you can catch exceptions in native code and convert it to exceptions in the other language, but it's not straightforward to keep stacktraces. The second was circular references between runtimes. Since references across boundaries are global, garbage collector on either side could not reclaim circularly referenced objects. Although this could be resolved by manually breaking up the circle, it could be better to have weak references. (Or maybe other utilities, idk what would be more elegant.) The third was that js has no operator overloading, so I had to use .__add__() for example to call the python add operator.
One line example: https://github.com/swordfeng/pyjs/blob/master/test/jsobject.... It's a toy project I did years ago and not even compiling now. Also I was wondering if anyone really need to do things in this way, given there are bunch of popular and stable RPC libraries. But I was happy to learn something about underlying cpython and v8 from it.