Some time ago I posted about alternative TabPy implementation (AltTabPy – lightweight and straightforward alternative to TabPy) you can use with Tableau. Using that alternative solution is possible because AltTabPy implements TabPy API and Tableau Desktop or Server simply calls that API. So Tableau is not hardcoded to use TabPy.
But if alternative implementations are possible is it also possible to implement the API for something completely different than executing Python script… like another programming language?
Yes – it is possible and people actually do it. Here’s an example of how you can use Haskell scripts in Tableau calculations – https://databoss.starschema.net/tableau-external-services-api-adding-haskell-calculations/. The post explains step by step how to implement TabPy API in Haskell and how to use the server with Tableau. Very well written post indeed and highly recommended for reading. The project itself is available on GitHub – https://github.com/tfoldi/tc19-haskell-ext/.
With those two examples (and there are few more you can find) it should be possible to implement TabPy API for any programming language (Lua, SQL, JavaScript, etc.) or even a service (imagine receiving weather data for given coordinates and date/time).
More people have implemented great examples, like these web samples here which execute basic functions like currency conversion in Tableau: https://glitch.com/edit/#!/ext-api-test?path=README.md:1:0