I know tabs vs spaces can be funny. But this comparison could be trivializing a serious problem.
Already, @danielwester and @remie are chiming in for “both” (and see what happens in my blog post to “both”?). Let’s talk this through since those 2 know full well how few resources are applied to documentation and specifically examples. How do you really want us to prioritize efforts?
- Do you want fewer and/or shallower examples in both languages?
- Do you want JavaScript transpiled from TypeScript?
- Is more developers better, if fewer are successful at getting anything running?
I feel like there’s an opportunity to set some values of Forge here. A parallel that I’m curiously watching play out is between Go and Rust. In the Go community, the “go” name represents a kind of “go fast” attitude. That’s been represented in choices about making sure compilation is fast, and that libraries are built quickly. That has lead some teams to have Go-regrets. The fast start sometimes stalls, especially when depending on cross-OS compilation where quickly built libraries often push problems back to developers. Meanwhile, Rust seems to prefer correctness. The spend a lot of time “getting things right” and they have a much slower compiler. In a lot of ways, Rust feels behind Go in terms of libraries and features. However, I’m seeing large companies (including Google who spawned Go) embracing Rust for that correctness.
The decision between those 2 isn’t just an arbitrary and individual-centric choice. Embracing a language is embracing the underlying values, which manifests in the patterns of change you will be subject to, and the quality of code you can write.
For all those reasons, I respectfully disagree with @rwhitbeck in that it’s a trivial choice, and with @danielwester and @remie arguing for “both” (but also while arguing in other threads for keeping quality documentation and examples working, even after engineering has “plateaued”.) I think Atlassian should pick the option that helps us avoid what we should have learned about P2 and Connect about making sure we only create so many examples as we can actually maintain. For me, that’s advantage TypeScript, where we get some leverage from tooling to help find problems with less human effort.