While upgrading to Gluegun (#1332), let's update to use TypeScript as well.
Why? Why not just embrace ES6+ and help drive the community instead of enforcing an imperialistic worldview of "typing". JS is duck-typing and I am sadden to see project owners switch.
Obviously, I'm not a fan of the ideology behind TypeScript and its mono-linguistic approach to the world. I really like ignite and would be sad to see the switch, but perhaps there is a solid reason. I know it slows contribution from those that want to grow the JS language itself.
Good feedback @johntimothybailey !!!
I think this change doesn't force others to use TypeScript. It would just improve the integrity of the Ignite with some static type checking. Those who use/consume Ignite would still be able to ship vanilla JS. Gluegun itself is now in TypeScript (the change caught several JS bugs), however no project made with Gluegun is forced to be TS. It's an option.
You are valid on that it would slow down contributors! But that's generally not the way treat our open source. Since TypeScript is a superset of JS, a fully JavaScript PR with no strong typing would probably still get merged. There's no "types coverage" report, so when types are not enforced, we'll be all good.
Which leaves one final issue. Someone feeling they are having trouble understanding TypeScript, so they don't contribute. I think this is the one we can't fix. If someone sees TypeScript and says "nope!" that's a real loss. I'd weigh that it doesn't happen often if we're not super strict and our code looks clean. We're more into the static typechecking for making developers say "Hell yeah!" where dynamic typing allows a foot-gun. Implicit Nulls, typos, and missing critical object properties probably cause a lot more pain than the TypeScript barrier.
I'm interested in your thoughts on this. Also, we have examples of TypeScript projects, I wouldn't mind you looking at. Maybe when you look through them you'll approve of the way we generally treat it like javascript for the most part?
I definitely appreciate your feedback, @johntimothybailey. I concur with @GantMan's response, that we never want to raise the bar too high where people can't contribute. Perhaps we could include a "guide to TypeScript" in our contributing guide that gives you the tools you'd need in order to make changes. We don't mind helping out, too! If you submit a PR and need help with the types, we're only too happy to provide that feedback.
Ignite 3 is now using TypeScript 馃槃
Most helpful comment
Good feedback @johntimothybailey !!!
I think this change doesn't force others to use TypeScript. It would just improve the integrity of the Ignite with some static type checking. Those who use/consume Ignite would still be able to ship vanilla JS. Gluegun itself is now in TypeScript (the change caught several JS bugs), however no project made with Gluegun is forced to be TS. It's an option.
You are valid on that it would slow down contributors! But that's generally not the way treat our open source. Since TypeScript is a superset of JS, a fully JavaScript PR with no strong typing would probably still get merged. There's no "types coverage" report, so when types are not enforced, we'll be all good.
Which leaves one final issue. Someone feeling they are having trouble understanding TypeScript, so they don't contribute. I think this is the one we can't fix. If someone sees TypeScript and says "nope!" that's a real loss. I'd weigh that it doesn't happen often if we're not super strict and our code looks clean. We're more into the static typechecking for making developers say "Hell yeah!" where dynamic typing allows a foot-gun. Implicit Nulls, typos, and missing critical object properties probably cause a lot more pain than the TypeScript barrier.
I'm interested in your thoughts on this. Also, we have examples of TypeScript projects, I wouldn't mind you looking at. Maybe when you look through them you'll approve of the way we generally treat it like javascript for the most part?