These are chat archives for GetmeUK/ContentTools
So thanks for getting in touch to discuss this. There's really a couple of issues you've raised here, TypeScript and the singleton pattern, so I'll do my best to answer both with regard ContentTools and decisions being made.
I've been honest with my answers but that doesn't mean they are correct and I'm certainly not suggesting your requests are incorrect, they just don't fit with the plan for CT.
CoffeeScript will remain because it's what we use in-house at Getme and whilst I develop in a lot of languages over the course of any given 12 months you'll see I tend to use those languages with indent based structure (all of my largest projects are currently developed in Python, CoffeeScript or MoonScript).
I realize this is a love/hate issue for many - but for me personally I read/write code quicker in the languages I just mentioned - and we all have a limited amount of time and a lot we want to achieve :)
With regard to singletons, this was a design decision made when we redeveloped CT based on what we felt was the simplest interface for the majority of cases - and for the majority of cases I think this was right.
We have 2 true singleton classes (ContentTools.EditorApp and ContentEdit.Root) but I more commonly use static classes (e.g Tools, Styles) over the singleton instance pattern (so there are quite a few CT interface that in some way fit this pattern).
There has been an attempt to implement these classes without using the singleton pattern, and instead using factories (the relevant PRs are here: https://github.com/GetmeUK/ContentEdit/pull/8and here: https://github.com/GetmeUK/ContentTools/pull/256). Unfortunately I felt this approach was too much of a shift at least for release 1..). This is still an open issue and I'd like to look at supporting multiple editor and root instances using a context stack instead before release 2.0.0 because I believe this could be implemented without affecting the libraries API (and breaking other peoples projects using CT). A context stack it's not the most pure of approaches (by some way) but at this point is perhaps the most practical.