In reply to Scott Bass.

I'm really late to this conversation, but anyone using SAS Viya now has the option to incorporate Python within their SAS programs:

%let inlib=sashelp;
%let outlib=work;

proc python;
submit;
import pandas as pd

def foo(a,b):
return a**b

l=[]
for x in range(1,11):
for y in range(1,6):
l.append({'x':x,'y':y,'z':foo(x,y)})

foo = pd.DataFrame(l)

if foo.empty:
print("foo is empty")
else:
ds = SAS.df2sd(foo,'work.foo') # write DataFrame to data set

inlib = SAS.symget('inlib')
outlib = SAS.symget('outlib')

for name in ['class','stocks','shoes']:
SAS.submit(f'''
data {outlib}.{name};
set {inlib}.{name};
run;
''')

endsubmit;
run;

This is not a true "open code" solution, of course. The Python code has to be within the PROC boundaries, and the SAS code submitted from Python is a string. But, the Python session persists across multiple calls to proc python, so any functions and DataFrames are still available, and there are callbacks for macro variables and transfers to/from data sets and DataFrames.

So it's a hybrid approach, but it gives the option to use whichever language components are best suited to the task at hand.