<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: slavapestov</title><link>https://news.ycombinator.com/user?id=slavapestov</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 25 Apr 2026 14:06:14 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=slavapestov" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by slavapestov in "Swift is a more convenient Rust (2023)"]]></title><description><![CDATA[
<p>> Swift uses subtyping, while Rust uses typeclasses. Even looking only at their type systems, the two are completely different.<p>What does it mean to “use” subtyping vs typeclasses? Swift protocols are essentially typeclasses with associated types, just like Rust traits.</p>
]]></description><pubDate>Sat, 31 Jan 2026 23:38:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=46842064</link><dc:creator>slavapestov</dc:creator><comments>https://news.ycombinator.com/item?id=46842064</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46842064</guid></item><item><title><![CDATA[New comment by slavapestov in "Swift is a more convenient Rust (2023)"]]></title><description><![CDATA[
<p>Similarly, the ‘indirect’ keyword can be omitted from Swift example in the blog post, for the same reason. A Swift Array stores its elements out of line, so an enum case payload can be an array type whose element contains the same enum, without any additional indirection.</p>
]]></description><pubDate>Sat, 31 Jan 2026 23:33:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=46842031</link><dc:creator>slavapestov</dc:creator><comments>https://news.ycombinator.com/item?id=46842031</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46842031</guid></item><item><title><![CDATA[New comment by slavapestov in "Factor 0.101 now available"]]></title><description><![CDATA[
<p>> Does anyone know of larger apps built using Factor?<p>The Factor build farm, the website, and the concatenative wiki are all built in Factor, if that counts.</p>
]]></description><pubDate>Thu, 11 Dec 2025 17:11:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=46234060</link><dc:creator>slavapestov</dc:creator><comments>https://news.ycombinator.com/item?id=46234060</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46234060</guid></item><item><title><![CDATA[New comment by slavapestov in "Apple will phase out Rosetta 2 in macOS 28"]]></title><description><![CDATA[
<p>> In 2025 you can run apps targeting W95 just fine (and many 16-bit apps with some effort)<p>FWIW, Windows running on a 64-bit host no longer runs 16-bit binaries.</p>
]]></description><pubDate>Tue, 28 Oct 2025 17:44:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=45736164</link><dc:creator>slavapestov</dc:creator><comments>https://news.ycombinator.com/item?id=45736164</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45736164</guid></item><item><title><![CDATA[New comment by slavapestov in "ML needs a new programming language – Interview with Chris Lattner"]]></title><description><![CDATA[
<p>I wasn’t trying to start a fight over languages, that would be silly. I also wrote a language once and then moved on from it (to your former language ;-)), so I know the feeling! I wish you luck with your new language, and I wish for many more languages in the future to try different approaches and learn from each other.<p>My original reply was just to point out that constraint solving, in the abstract, can be a very effective and elegant approach to these problems. There’s always a tradeoff, and it all depends on the combination of other features that go along with it. For example, without bidirectional inference, certain patterns involving closures become more awkward to express. You can have that, without overloading, and it doesn’t lead to intractability.</p>
]]></description><pubDate>Sat, 06 Sep 2025 19:00:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=45151955</link><dc:creator>slavapestov</dc:creator><comments>https://news.ycombinator.com/item?id=45151955</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45151955</guid></item><item><title><![CDATA[New comment by slavapestov in "ML needs a new programming language – Interview with Chris Lattner"]]></title><description><![CDATA[
<p>> Bidirectional constraint solving. It's bad for compile time but even worse for predictable diagnostics.<p>That’s really only true if you have overloading though! Without overloading there are no disjunction choices to attempt, and if you also have principal typing it makes the problem of figuring out diagnostics easier, because each expression has a unique most general type in isolation (so your old CSDiag design would actually work in such a language ;-) )<p>But perhaps a language where you have to rely on generics for everything instead of just overloading a function to take either an Int or a String is a bridge too far for mainstream programmers.</p>
]]></description><pubDate>Sat, 06 Sep 2025 18:25:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=45151663</link><dc:creator>slavapestov</dc:creator><comments>https://news.ycombinator.com/item?id=45151663</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45151663</guid></item><item><title><![CDATA[New comment by slavapestov in "ML needs a new programming language – Interview with Chris Lattner"]]></title><description><![CDATA[
<p>So what did you decide to give up on? Overloading functions with the same name, or bidirectional constraint solving? :)<p>These days though the type checker is not where compile time is mostly spent in Swift; usually it’s the various SIL and LLVM optimization passes. While the front end could take care to generate less redundant IR upfront, this seems like a generally unavoidable issue with “zero cost abstraction” languages, where the obvious implementation strategy is to spit out a ton of IR, inline everything, and then reduce it to nothing by transforming the IR.</p>
]]></description><pubDate>Sat, 06 Sep 2025 17:48:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=45151373</link><dc:creator>slavapestov</dc:creator><comments>https://news.ycombinator.com/item?id=45151373</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45151373</guid></item><item><title><![CDATA[New comment by slavapestov in "ML needs a new programming language – Interview with Chris Lattner"]]></title><description><![CDATA[
<p>> let a: Double = -(1 + 2) + -(3 + 4) + -(5)<p>> Still fails on a very recent version of Swift, Swift 6.1.2, if my test works.<p>FWIW, the situation with this expression (and others like it) has improved recently:<p>- 6.1 fails to type check in ~4 seconds<p>- 6.2 fails to type check in ~2 seconds (still bad obviously, but it's doing the same amount of work in less time)<p>- latest main successfully type checks in 7ms. That's still a bit too slow though, IMO. (edit: it's just first-time deserialization overhead; if you duplicate the expression multiple times, subsequent instances type check in <1ms).</p>
]]></description><pubDate>Sat, 06 Sep 2025 17:29:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=45151204</link><dc:creator>slavapestov</dc:creator><comments>https://news.ycombinator.com/item?id=45151204</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45151204</guid></item><item><title><![CDATA[New comment by slavapestov in "Swift-erlang-actor-system"]]></title><description><![CDATA[
<p>> Any object that is passed into a library function can escape the current thread,<p>In Swift 6 this is only true if the value’s type is Sendable.</p>
]]></description><pubDate>Tue, 22 Jul 2025 22:20:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=44653646</link><dc:creator>slavapestov</dc:creator><comments>https://news.ycombinator.com/item?id=44653646</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44653646</guid></item><item><title><![CDATA[New comment by slavapestov in "The new skill in AI is not prompting, it's context engineering"]]></title><description><![CDATA[
<p>I feel like if the first link in your post is a tweet from a tech CEO the rest is unlikely to be insightful.</p>
]]></description><pubDate>Mon, 30 Jun 2025 22:12:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=44428472</link><dc:creator>slavapestov</dc:creator><comments>https://news.ycombinator.com/item?id=44428472</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44428472</guid></item><item><title><![CDATA[New comment by slavapestov in "Why is the Rust compiler so slow?"]]></title><description><![CDATA[
<p>> This has tradeoffs: increased ABI stability at the cost of longer compile times.<p>Nah. Slow type checking in Swift is primarily caused by the fact that functions and operators can be overloaded on type.<p>Separately-compiled generics don't introduce any algorithmic complexity and are actually good for compile time, because you don't have to re-type check every template expansion more than once.</p>
]]></description><pubDate>Fri, 27 Jun 2025 15:18:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=44397467</link><dc:creator>slavapestov</dc:creator><comments>https://news.ycombinator.com/item?id=44397467</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44397467</guid></item><item><title><![CDATA[New comment by slavapestov in "Redesigned Swift.org is now live"]]></title><description><![CDATA[
<p>> the only-very-recently-stable ABI,<p>You mean 6 years ago? <a href="https://www.swift.org/blog/swift-5-released/" rel="nofollow">https://www.swift.org/blog/swift-5-released/</a></p>
]]></description><pubDate>Thu, 05 Jun 2025 20:18:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=44195402</link><dc:creator>slavapestov</dc:creator><comments>https://news.ycombinator.com/item?id=44195402</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44195402</guid></item><item><title><![CDATA[New comment by slavapestov in "Ask HN: SWEs how do you future-proof your career in light of LLMs?"]]></title><description><![CDATA[
<p>Find an area to specialize in that has more depth to it than just gluing APIs together.</p>
]]></description><pubDate>Mon, 16 Dec 2024 14:59:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=42431568</link><dc:creator>slavapestov</dc:creator><comments>https://news.ycombinator.com/item?id=42431568</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42431568</guid></item><item><title><![CDATA[New comment by slavapestov in "Emit"]]></title><description><![CDATA[
<p>You might find Kitten interesting: <a href="https://kittenlang.org/" rel="nofollow">https://kittenlang.org/</a></p>
]]></description><pubDate>Fri, 18 Oct 2024 13:51:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=41879477</link><dc:creator>slavapestov</dc:creator><comments>https://news.ycombinator.com/item?id=41879477</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41879477</guid></item><item><title><![CDATA[New comment by slavapestov in "Perfectionism – one of the biggest productivity killers in the eng industry"]]></title><description><![CDATA[
<p>This “Jordan Cutler” guy has a nice grift going, makes money writing a newsletter about career advice when according to his resume, he only has five years of programming experience at best: <a href="https://jordancutler.net/assets/images/JordanResume.pdf" rel="nofollow">https://jordancutler.net/assets/images/JordanResume.pdf</a></p>
]]></description><pubDate>Sun, 28 Jul 2024 20:16:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=41095663</link><dc:creator>slavapestov</dc:creator><comments>https://news.ycombinator.com/item?id=41095663</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41095663</guid></item><item><title><![CDATA[New comment by slavapestov in "I am sick of LeetCode-style interviews"]]></title><description><![CDATA[
<p>The whole point of being an “experienced developer” is that you know more than the new grad. What kind of experienced developer forgets basic computer science on top of which all else is built?</p>
]]></description><pubDate>Tue, 04 Jun 2024 12:30:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=40573799</link><dc:creator>slavapestov</dc:creator><comments>https://news.ycombinator.com/item?id=40573799</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40573799</guid></item><item><title><![CDATA[New comment by slavapestov in "I am sick of LeetCode-style interviews"]]></title><description><![CDATA[
<p>To be fair, you need at least one person on the team to do the actual work, while everyone else is “communicating and managing expectations”.</p>
]]></description><pubDate>Tue, 04 Jun 2024 12:28:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=40573783</link><dc:creator>slavapestov</dc:creator><comments>https://news.ycombinator.com/item?id=40573783</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40573783</guid></item><item><title><![CDATA[New comment by slavapestov in "I am sick of LeetCode-style interviews"]]></title><description><![CDATA[
<p>Basic coding problems involving data structures and algorithms are table stakes for a programmer. This whole thread is embarrassing.</p>
]]></description><pubDate>Tue, 04 Jun 2024 12:20:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=40573716</link><dc:creator>slavapestov</dc:creator><comments>https://news.ycombinator.com/item?id=40573716</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40573716</guid></item><item><title><![CDATA[New comment by slavapestov in "Apple hiring compiler developers for improving Swift / C++ interoperability"]]></title><description><![CDATA[
<p>“Total compensation” usually refers to base salary together with your yearly bonus and vested stock. Mortgage lenders will typically look at your W2 income which includes the bonus and stock.</p>
]]></description><pubDate>Sun, 14 Jan 2024 00:28:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=38986169</link><dc:creator>slavapestov</dc:creator><comments>https://news.ycombinator.com/item?id=38986169</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38986169</guid></item><item><title><![CDATA[New comment by slavapestov in "Apple hiring compiler developers for improving Swift / C++ interoperability"]]></title><description><![CDATA[
<p>> The rewrite of the Swift compiler from C++ to Swift is an example of where rewriting is occurring but where there’s a non trivial performance loss as a result.<p>Citation needed on the performance loss. So far only a handful of SIL optimizer passes have been rewritten in Swift.</p>
]]></description><pubDate>Sun, 14 Jan 2024 00:22:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=38986137</link><dc:creator>slavapestov</dc:creator><comments>https://news.ycombinator.com/item?id=38986137</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38986137</guid></item></channel></rss>