ProfileSVG.jl
ProfileSVG.jl copied to clipboard
[RFC] Use of TypeScript
The interaction features of ProfileSVG are written in JavaScript (ES5). However, I don't like JavaScript very much. On the first day I took over the maintainer, my heart is already going to break by the ES5 code.:tired_face:
The development language candidates are as follows:
- ES5 (current)
- ES6 (dropping ES5 support)
- TypeScript
Of course, even If we use TypeScript, the end users do not need to install the TypeScript compiler.
I'm not going to draw a conclusion right away. The ES5 code will be maintained for the time being.
I'm a huge fan of ES6! It's modern JS and does not require a build step, which is great! This is especially important for Julia packages, where you probably want to avoid a client-side TS build step, so you would need to keep bundled JS files in source code.
If you do go for TS, I recommend deno bundle
over any other build system because of its simplicity.
PS: JavaScript can be really nice, you just need to be able to look past the things people were doing before ES6. 😅 Its interpreter-compiler mix is super advanced and fast, the object syntax is fantastic and I think the promise/async/await concept is a really well thought-out feature.