<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: DanRosenwasser</title><link>https://news.ycombinator.com/user?id=DanRosenwasser</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 07 Oct 2026 02:10:07 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=DanRosenwasser" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by DanRosenwasser in "Friendship ended with Deno, now Node is my best friend"]]></title><description><![CDATA[
<p>Yes, but your TypeScript code has to be checked against the libraries in node_modules, and it is significantly costlier to check against implementation files (the .ts/.mts files) than the produced declaration files (the .d.ts files).</p>
]]></description><pubDate>Tue, 06 Oct 2026 06:48:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=49975080</link><dc:creator>DanRosenwasser</dc:creator><comments>https://news.ycombinator.com/item?id=49975080</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49975080</guid></item><item><title><![CDATA[New comment by DanRosenwasser in "TypeScript 7"]]></title><description><![CDATA[
<p>> How does this affect downstream tools like tsdown and esbuild, which need to build the TypeScript codebase?<p>esbuild doesn't rely on TypeScript at all, so there's no issue there.<p>With tsdown on the other hand, it depends on if you use --isolatedDeclarations. If not, you can install TypeScript 6 side-by-side (instructions for this are on the blog)</p>
]]></description><pubDate>Wed, 08 Jul 2026 22:05:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=48838009</link><dc:creator>DanRosenwasser</dc:creator><comments>https://news.ycombinator.com/item?id=48838009</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48838009</guid></item><item><title><![CDATA[TypeScript 7]]></title><description><![CDATA[
<p>Article URL: <a href="https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/">https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48833715">https://news.ycombinator.com/item?id=48833715</a></p>
<p>Points: 720</p>
<p># Comments: 301</p>
]]></description><pubDate>Wed, 08 Jul 2026 16:06:35 +0000</pubDate><link>https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/</link><dc:creator>DanRosenwasser</dc:creator><comments>https://news.ycombinator.com/item?id=48833715</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48833715</guid></item><item><title><![CDATA[TypeScript 7.0 RC]]></title><description><![CDATA[
<p>Article URL: <a href="https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-rc/">https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-rc/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48586001">https://news.ycombinator.com/item?id=48586001</a></p>
<p>Points: 82</p>
<p># Comments: 19</p>
]]></description><pubDate>Thu, 18 Jun 2026 14:31:56 +0000</pubDate><link>https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-rc/</link><dc:creator>DanRosenwasser</dc:creator><comments>https://news.ycombinator.com/item?id=48586001</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48586001</guid></item><item><title><![CDATA[New comment by DanRosenwasser in "The Green Side of the Lua"]]></title><description><![CDATA[
<p>The methodology used in this paper was extremely bad. There is no reason there should be any disparity between a TypeScript and JavaScript benchmark.<p>Unfortunately it has continued to make the rounds for about a decade now and gets re-posted every year or so.</p>
]]></description><pubDate>Thu, 28 May 2026 08:43:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=48306334</link><dc:creator>DanRosenwasser</dc:creator><comments>https://news.ycombinator.com/item?id=48306334</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48306334</guid></item><item><title><![CDATA[TypeScript 7.0 Beta]]></title><description><![CDATA[
<p>Article URL: <a href="https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-beta/">https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-beta/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47852567">https://news.ycombinator.com/item?id=47852567</a></p>
<p>Points: 19</p>
<p># Comments: 1</p>
]]></description><pubDate>Tue, 21 Apr 2026 18:29:18 +0000</pubDate><link>https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-beta/</link><dc:creator>DanRosenwasser</dc:creator><comments>https://news.ycombinator.com/item?id=47852567</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47852567</guid></item><item><title><![CDATA[TypeScript 6.0]]></title><description><![CDATA[
<p>Article URL: <a href="https://devblogs.microsoft.com/typescript/announcing-typescript-6-0/">https://devblogs.microsoft.com/typescript/announcing-typescript-6-0/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47491794">https://news.ycombinator.com/item?id=47491794</a></p>
<p>Points: 49</p>
<p># Comments: 1</p>
]]></description><pubDate>Mon, 23 Mar 2026 16:35:24 +0000</pubDate><link>https://devblogs.microsoft.com/typescript/announcing-typescript-6-0/</link><dc:creator>DanRosenwasser</dc:creator><comments>https://news.ycombinator.com/item?id=47491794</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47491794</guid></item><item><title><![CDATA[New comment by DanRosenwasser in "Tree-sitter vs. Language Servers"]]></title><description><![CDATA[
<p>> It is possible to use the language server for syntax highlighting. I am not aware of any particularly strong reasons why one would want to (or not want to) do this. The language server can be a more complicated program and so could surface particularly detailed information about the syntax; it might also be slower than tree-sitter.<p>We (TypeScript) used to do this for Visual Studio prior to tmLanguage. It was nice because we didn't have to write a second parser. Our parser was already error-tolerant and incremental, and syntax highlighting just involved descending into the syntax tree's tokens. So there was no room for divergence bugs in parsers, and there was also no need to figure out how to encode oddities and ambiguity-breaking logic in limited formats like tmLanguage.<p>This all predated TSServer (which predated LSP, though that's coming in TypeScript 7). The latency for syntax highlighting over JSON was too much, and other editors often didn't make syntax highlighting available outside of tmLanguage anyway. Eventually semantic highlighting became a thing, which is more latency-tolerant, and overlays colors on top of a syntactic highlighter in VS Code.<p>The other issue with this approach was that we still needed a dedicated thread just for fast syntax highlighting. That thread was a separate instance of the JS language service without anything shared, so that was a decent amount of memory overhead just for syntax highlighting.</p>
]]></description><pubDate>Thu, 22 Jan 2026 20:25:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=46724691</link><dc:creator>DanRosenwasser</dc:creator><comments>https://news.ycombinator.com/item?id=46724691</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46724691</guid></item><item><title><![CDATA[New comment by DanRosenwasser in "The Performance Revolution in JavaScript Tooling"]]></title><description><![CDATA[
<p><a href="https://github.com/microsoft/typescript-go" rel="nofollow">https://github.com/microsoft/typescript-go</a></p>
]]></description><pubDate>Sun, 11 Jan 2026 10:50:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=46574398</link><dc:creator>DanRosenwasser</dc:creator><comments>https://news.ycombinator.com/item?id=46574398</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46574398</guid></item><item><title><![CDATA[New comment by DanRosenwasser in "The Performance Revolution in JavaScript Tooling"]]></title><description><![CDATA[
<p>I guess since this at the top of HN, I'll just plug that we (the TypeScript team) are looking for broader feedback of the native previews before our stable release, whether that's:<p>- through builds (<a href="https://www.npmjs.com/package/@typescript/native-preview" rel="nofollow">https://www.npmjs.com/package/@typescript/native-preview</a>), or<p>- through the editor extension (<a href="https://marketplace.visualstudio.com/items?itemName=TypeScriptTeam.native-preview" rel="nofollow">https://marketplace.visualstudio.com/items?itemName=TypeScri...</a>)</p>
]]></description><pubDate>Sat, 10 Jan 2026 09:36:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=46564227</link><dc:creator>DanRosenwasser</dc:creator><comments>https://news.ycombinator.com/item?id=46564227</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46564227</guid></item><item><title><![CDATA[Progress on TypeScript 7 – December 2025]]></title><description><![CDATA[
<p>Article URL: <a href="https://devblogs.microsoft.com/typescript/progress-on-typescript-7-december-2025/">https://devblogs.microsoft.com/typescript/progress-on-typescript-7-december-2025/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46123921">https://news.ycombinator.com/item?id=46123921</a></p>
<p>Points: 100</p>
<p># Comments: 37</p>
]]></description><pubDate>Tue, 02 Dec 2025 17:37:06 +0000</pubDate><link>https://devblogs.microsoft.com/typescript/progress-on-typescript-7-december-2025/</link><dc:creator>DanRosenwasser</dc:creator><comments>https://news.ycombinator.com/item?id=46123921</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46123921</guid></item><item><title><![CDATA[New comment by DanRosenwasser in "A 10x Faster TypeScript"]]></title><description><![CDATA[
<p>pnp is still very cool, and it would be great if we can find a better API story that works well with pnp!</p>
]]></description><pubDate>Tue, 11 Mar 2025 18:04:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=43335318</link><dc:creator>DanRosenwasser</dc:creator><comments>https://news.ycombinator.com/item?id=43335318</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43335318</guid></item><item><title><![CDATA[New comment by DanRosenwasser in "A 10x Faster TypeScript"]]></title><description><![CDATA[
<p>Hey bcherny! Yes, dog-fooding (self-hosting) has definitely been a huge part in making TypeScript's development experience as good as it is. The upside is the breadth of tests and infrastructure we've already put together to watch out for regressions. Still, to supplement this I think we will definitely be leaning a lot on developer feedback and will need to write more TypeScript that may not be in a compiler or language service codebase. :D</p>
]]></description><pubDate>Tue, 11 Mar 2025 15:56:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=43333740</link><dc:creator>DanRosenwasser</dc:creator><comments>https://news.ycombinator.com/item?id=43333740</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43333740</guid></item><item><title><![CDATA[New comment by DanRosenwasser in "A 10x Faster TypeScript"]]></title><description><![CDATA[
<p>We are sure there will be a way to embed via something like WebAssembly, but the goal is to start from the IPC layer (similar to LSP), and then explore how possible it will be to integrate at a tighter level.</p>
]]></description><pubDate>Tue, 11 Mar 2025 15:18:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=43333336</link><dc:creator>DanRosenwasser</dc:creator><comments>https://news.ycombinator.com/item?id=43333336</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43333336</guid></item><item><title><![CDATA[New comment by DanRosenwasser in "A 10x Faster TypeScript"]]></title><description><![CDATA[
<p>We'll be working on an API that ideally can be used through any language - that would be our preferred means of consuming the new codebase.</p>
]]></description><pubDate>Tue, 11 Mar 2025 15:11:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=43333264</link><dc:creator>DanRosenwasser</dc:creator><comments>https://news.ycombinator.com/item?id=43333264</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43333264</guid></item><item><title><![CDATA[New comment by DanRosenwasser in "A 10x Faster TypeScript"]]></title><description><![CDATA[
<p>We anticipate that we will eventually get a playground working on the new native codebase. We know we'll likely compile down to WebAssembly, but a lot of how it gets integrated will depend on what the API looks like. We're currently giving a lot of thought to that, but we have good ideas. <a href="https://github.com/microsoft/typescript-go/discussions/455" rel="nofollow">https://github.com/microsoft/typescript-go/discussions/455</a></p>
]]></description><pubDate>Tue, 11 Mar 2025 15:09:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=43333243</link><dc:creator>DanRosenwasser</dc:creator><comments>https://news.ycombinator.com/item?id=43333243</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43333243</guid></item><item><title><![CDATA[New comment by DanRosenwasser in "A 10x Faster TypeScript"]]></title><description><![CDATA[
<p>We did anticipate this question, and we have actually written up an FAQ entry on our GitHub Discussions. I'll post the response below. <a href="https://github.com/microsoft/typescript-go/discussions/411" rel="nofollow">https://github.com/microsoft/typescript-go/discussions/411</a>.<p>____<p>Language choice is always a hot topic! We extensively evaluated many language options, both recently and in prior investigations. We also considered hybrid approaches where certain components could be written in a native language, while keeping core typechecking algorithms in JavaScript. We wrote multiple prototypes experimenting with different data representations in different languages, and did deep investigations into the approaches used by existing native TypeScript parsers like swc, oxc, and esbuild. To be clear, <i>many languages would be suitable in a ground-up rewrite situation</i>. Go did the best when considering multiple criteria that are particular to this situation, and it's worth explaining a few of them.<p>By far the most important aspect is that we need to keep the new codebase as compatible as possible, both in terms of semantics and in terms of code structure. We expect to maintain both codebases for quite some time going forward. Languages that allow for a structurally similar codebase offer a significant boon for anyone making code changes because we can easily port changes between the two codebases. In contrast, languages that require fundamental rethinking of memory management, mutation, data structuring, polymorphism, laziness, etc., might be a better fit for a ground-up rewrite, but we're undertaking this more as a <i>port</i> that maintains the existing behavior and critical optimizations we've built into the language. Idiomatic Go strongly resembles the existing coding patterns of the TypeScript codebase, which makes this porting effort much more tractable.<p>Go also offers excellent control of memory <i>layout and allocation</i> (both on an object and field level) without requiring that the entire codebase continually concern itself with memory <i>management</i>. While this implies a garbage collector, the downsides of a GC aren't particularly salient in our codebase. We don't have any strong latency constraints that would suffer from GC pauses/slowdowns. Batch compilations can effectively forego garbage collection entirely, since the process terminates at the end. In non-batch scenarios, most of our up-front allocations (ASTs, etc.) live for the entire life of the program, and we have strong domain information about when "logical" times to run the GC will be. Go's model therefore nets us a very big win in reducing codebase complexity, while paying very little actual runtime cost for garbage collection.<p>We also have an unusually large amount of graph processing, specifically traversing trees in both upward and downward walks involving polymorphic nodes. Go does an excellent job of making this ergonomic, especially in the context of needing to resemble the JavaScript version of the code.<p>Acknowledging some weak spots, Go's in-proc JS interop story is not as good as some of its alternatives. We have upcoming plans to mitigate this, and are committed to offering a performant and ergonomic JS API. We've been constrained in certain possible optimizations due to the current API model where consumers can access (or worse, <i>modify</i>) practically anything, and want to ensure that the new codebase keeps the door open for more freedom to change internal representations without having to worry about breaking all API users. Moving to a more intentional API design that also takes interop into account will let us move the ecosystem forward while still delivering these huge performance wins.</p>
]]></description><pubDate>Tue, 11 Mar 2025 15:05:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=43333204</link><dc:creator>DanRosenwasser</dc:creator><comments>https://news.ycombinator.com/item?id=43333204</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43333204</guid></item><item><title><![CDATA[New comment by DanRosenwasser in "A 10x Faster TypeScript"]]></title><description><![CDATA[
<p>Hi folks, Daniel Rosenwasser from the TypeScript team here. We're obviously very excited to announce this! RyanCavanaugh (our dev lead) and I are around to answer any quick questions you might have. You can also tune in to the Discord AMA mentioned in the blog this upcoming Thursday.</p>
]]></description><pubDate>Tue, 11 Mar 2025 14:39:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=43332903</link><dc:creator>DanRosenwasser</dc:creator><comments>https://news.ycombinator.com/item?id=43332903</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43332903</guid></item><item><title><![CDATA[A 10x Faster TypeScript]]></title><description><![CDATA[
<p>Article URL: <a href="https://devblogs.microsoft.com/typescript/typescript-native-port/">https://devblogs.microsoft.com/typescript/typescript-native-port/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=43332830">https://news.ycombinator.com/item?id=43332830</a></p>
<p>Points: 1827</p>
<p># Comments: 907</p>
]]></description><pubDate>Tue, 11 Mar 2025 14:32:23 +0000</pubDate><link>https://devblogs.microsoft.com/typescript/typescript-native-port/</link><dc:creator>DanRosenwasser</dc:creator><comments>https://news.ycombinator.com/item?id=43332830</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43332830</guid></item><item><title><![CDATA[TypeChat 0.1.0]]></title><description><![CDATA[
<p>Article URL: <a href="https://microsoft.github.io/TypeChat/blog/announcing-typechat-0-1-0/">https://microsoft.github.io/TypeChat/blog/announcing-typechat-0-1-0/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=39819625">https://news.ycombinator.com/item?id=39819625</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 25 Mar 2024 18:22:34 +0000</pubDate><link>https://microsoft.github.io/TypeChat/blog/announcing-typechat-0-1-0/</link><dc:creator>DanRosenwasser</dc:creator><comments>https://news.ycombinator.com/item?id=39819625</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39819625</guid></item></channel></rss>