kimikage / ProfileSVG.jl

Write flame graphs to SVG format and explore them interactively in Jupyter, Pluto, etc.
MIT License
52 stars 7 forks source link

[RFC] Use of TypeScript #13

Open kimikage opened 4 years ago

kimikage commented 4 years ago

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:

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.

fonsp commented 2 years ago

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.