Use Mojo as ArcGIS Pro's geoprocessing language instead of Python

198
1
04-04-2024 10:09 AM
Status: Open
Labels (1)
Bud
by
Notable Contributor

Geoprocessing is relatively slow in ArcGIS Pro. For example, creating a linear referencing Route Event Layer was instantaneous in ArcMap using the UI dialog (raw ArcObjects/C++?), but the Make Route Event Layer geoprocessing tool takes 10 seconds to run in both ArcMap and ArcGIS Pro 3.2.2. Other UI-like geoprocessing tools are relatively slow too. Same with analytical and data management geoprocessing tools.

It's my limited understanding that a lot of geoprocessing tools are Python under the covers. Python is notoriously slow compared to most other programming languages.


Modular's Mojo language is an up-and-coming superset of Python. It honours Python syntax but is orders of magnitude faster than Python.

When Mojo eventually becomes stable/when the kinks are worked out, could Esri consider replacing Python in ArcGIS Pro with Mojo?

1 Comment
Luke_Pinner

@Bud wrote:

It's my limited understanding that a lot of geoprocessing tools are Python under the covers.


Not really.  Most of the GP tools are native (they'll have a tool icon in Toolbox).  The ones that are implemented in Python (script icon in Toolbox) mostly use arcpy which is a thin wrapper around the underlying native implementation in ArcGIS.  I don't think the bottleneck is the "glue" language (python in this case) and changing it isn't going to change the overall execution speed much. 

Python is not always slow.  Depends what for/how it's used. There's a number of other efforts at speeding python up, from python implementations (pypy, pyston), compiling python code to native code (numba, cython)  and the usual "write all the slow stuff in C/C++/Fortran and compile a native extension" like arcpy, numpy and many others.  MoJo seems to be yet another attempt.