Aerilius is correct. It was rewritten into C++. That way it can be used on all out platforms if needed. (And I wasn’t doing that conversion - I just consulted.)
Personally I prefer extensions to remain extensions in general. They are more flexible to maintain and update. And open an extension provide specialized functionality that does’t apply widely. But there are some which is generic enough to justify adopting into SU itself. SI is one of them.