Porting a Library to a Different Language with a Sentence
Key topics
The post discusses porting a JavaScript library (Slate) to TypeScript, but receives criticism for its brevity, lack of code sharing, and poor writing style, sparking a debate about technical blogging and open-source practices.
Snapshot generated from the HN discussion
Discussion Activity
Active discussionFirst comment
2d
Peak period
12
60-66h
Avg / period
6.7
Based on 20 loaded comments
Key moments
- 01Story posted
Sep 22, 2025 at 5:24 PM EDT
4 months ago
Step 01 - 02First comment
Sep 25, 2025 at 4:22 AM EDT
2d after posting
Step 02 - 03Peak activity
12 comments in 60-66h
Hottest window of the conversation
Step 03 - 04Latest activity
Sep 25, 2025 at 11:34 AM EDT
3 months ago
Step 04
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.
Tip for anyone writing technical/product blogs: never assume readers know what your product is. They probably came in for the first time from a random link on some site like HN and this is your first (and maybe only) opportunity to get that elevator pitch in. I think this particular example is a good one, in that they immediately provide a one-sentence "refresher" that gives the rest of the post some context.
Might be also worthwhile considering a more memorable/distinctive name, unless of course this is only aimed at those who are actively and aggressively following developments in that space. The post piqued my interest enough to make me vaguely think, hmmm, I might follow that up some time in the future when I'm less busy however if I fail to bookmark it and assuming the name 'slate' loosely sticks in my head, then a Google search for 'slate', 'slate ai' or even 'slate ai agent' isn't going to bring me back to this product again.
Yeah, they make audio plugins. :)
Its javascript to typescript, which unless I'm missing something, can be done with `mv foo.js foo.ts`. No examples of any transforms done by the tool.
And it wasn't one sentence, it was a sequence of questions and answers.
I guess they started with the title for the blog post and didn't really worry about showing whether it did anything useful or not.
How would you verify that the ported code actually works if you don't port the tests and examples?
I see tremendous use in a tool that could be used to port "any" library to any language. I'm very skeptical if this works if the library itself depends on other language specific libraries, ... but we'll see.
If you'd seriously want to use that port in production it only makes sense to port the tests and examples. How would you verify the ported code works otherwise? This also means that if the original library has bad test coverage.. you have too.
Port tests, run them against unported code. Port code, run it against unported tests? That way you also verify that the public api hasn't changed
And as a sidenote, why would you ever hijack the up/down cursor keys on a web page? There are still people out there on actual computers which use them for scrolling.
There are also people who will give up on the article when they realize they can't scroll with the arrow keys.