Development language(s) choice is important, yet far from telling the whole story.
PL/1->C + MVA were critical to SAS growing out of its mainframe and mini-computer roots.
By the early 2000s, Java was necessary for Web, midtier and application infrastructure. A few folks got over -caffeinated and decided it could possibly be used for everything. They were wrong for a multitude of performance and architectural reasons!
TK was necessary because by the late 90s SAS was still profiting from and very focused on hosting the core product on multiple OS platforms/machine architectures. C++ was not yet mature enough as either a development language/set of libraries, nor able to support everything we needed with regard to multi -threading on all target hosts. TK filled a certain gap but then gained more ground than it probably should have because we didn't begin a transition to C++ by 2005 when that would've been possible. By then SAS should've started realizing their new reality would be fewer host platforms. Some did, yet too much emphasis was still placed on porting and supporting hosts that had no real profitability future.
TKTS was a complete cluster fu-k. Perhaps someone with direct experience can provide even more details why, but suffice it to say that very poor scoping, ineffective leadership, and a lack of deep database internals expertise ranked at the top of the list of why it failed. Apparently JG declare that he was actually happy TKTS failed, because he never wanted to be in the database business to begin with.
The Metadata server became the locus of Version 9 Enterprise enterprise products and the "glue" between our solutions/applications -- even so several of the product product groups managed to duplicate some of the effort that should have been centralized in a better Metadata server implementation. From its beginnings, there were a variety of architectural limitations baked in to the SAS Metadata server, owing to similar reasons stated for TKTS, only saved by the fact the Metadata server was more limited in scope, and had a small team of hard-core developers for most if its history.
HPA, In-DB, etc. were "stopgap" architectural extensions in an attempt to remain relevant on new platforms like high-performance storage appliances/data database hardware. This is directly related to JG's historical, thinking about the 2 to 3 time horizon for new tech. He was apparently more interested in preserving our analytics heritage than he was building out a massive architecture/framework that would've allowed us to capture the future more optimally. Version 6 (initial MVA) head already been a massive CapEx expenditure that introduced very thorny compatibility issues with prior non-MVA versions of SAS. Everything that followed, including TK was much more incremental and could piggyback off and extend the existing internal build/testing people and infrastructure (which was probably half the cost of everything we did in R&D).
SAS should've gotten into GoLang sooner WRT micros services. Most of the new analytics and systems level code after 2005 should have been written in C++.
Development standards that included. All of R&D, and all product groups should have been much more rigidly, enforced to reduce/eliminate so much duplication of effort.
As computer engines, LASR and ultimately CAS were in-memory data, multi-user/multi-threaded evolutions of SAS' heritage. Given the state of things at the time they were developed, they were decent ideas, yet could've benefited from more thoughtful architecture that considered cloud data integration, the growth of containers, etc. earlier on.
Virtually all of the current problems, we see at SAS stem from overall suboptimal management, lack of architectural vision, and diminished practical research/ongoing learning excellence within the rank and file.
JG and SAS executives had too much patience for the status quo, which included chasing niche markets (because that's what many product-mevel Diirectors understood) when SAS would've been much better servered long-term developing a cogent early architectural strategy for cloud and edge computing.