<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: nightcraft</title><link>https://news.ycombinator.com/user?id=nightcraft</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 12 Apr 2026 08:55:43 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=nightcraft" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by nightcraft in "Show HN: Scripton – Python IDE with built-in realtime visualizations"]]></title><description><![CDATA[
<p>Thanks!</p>
]]></description><pubDate>Wed, 19 Feb 2025 04:19:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=43098532</link><dc:creator>nightcraft</dc:creator><comments>https://news.ycombinator.com/item?id=43098532</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43098532</guid></item><item><title><![CDATA[New comment by nightcraft in "Show HN: Scripton – Python IDE with built-in realtime visualizations"]]></title><description><![CDATA[
<p>Thanks!<p>That's correct: 2, 3, and 5 are currently available. This initial set was intended as a minimal (albeit limited) set that demonstrates the UI capabilities. More widgets/controls (including the ones you've mentioned) are definitely coming.<p>7 is something I've considered (along the lines of a redistributable "Scripton runtime" that packages up the scripts and bundles a portable Python distribution). However, that's currently much further down on the todo list.</p>
]]></description><pubDate>Wed, 19 Feb 2025 04:19:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=43098520</link><dc:creator>nightcraft</dc:creator><comments>https://news.ycombinator.com/item?id=43098520</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43098520</guid></item><item><title><![CDATA[New comment by nightcraft in "Show HN: Scripton – Python IDE with built-in realtime visualizations"]]></title><description><![CDATA[
<p>It does show you the active variables (and bits of details like shapes and dtypes for numpy arrays, torch tensors, dataframes, etc): <a href="https://scripton.dev/assets/images/lib-symbols@2x.png" rel="nofollow">https://scripton.dev/assets/images/lib-symbols@2x.png</a><p>However, I'm assuming you want to drill down further into these (and have them displayed as a table for instance)? While the current version doesn't have that, it's definitely planned.</p>
]]></description><pubDate>Tue, 18 Feb 2025 19:52:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=43094208</link><dc:creator>nightcraft</dc:creator><comments>https://news.ycombinator.com/item?id=43094208</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43094208</guid></item><item><title><![CDATA[New comment by nightcraft in "Show HN: Scripton – Python IDE with built-in realtime visualizations"]]></title><description><![CDATA[
<p>Thanks! The C++ bit comes in for the IPC (inter-process communication) between the IDE and Python.<p>There are a few different ways for the Python process to communicate (send data over for visualization, receive/transmit commands,  etc) with the IDE. For instance, you could communicate over HTTP. Depending on the use case, that can have an appreciable performance overhead. Instead, Scripton uses a lower-level mechanism with a protocol optimized for sending binary payloads (eg: large numpy arrays, images, etc). This communication and processing is implemented in C++ as a native multithreaded node module. It effectively enables very low latency and high throughput visualizations.</p>
]]></description><pubDate>Tue, 18 Feb 2025 19:49:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=43094166</link><dc:creator>nightcraft</dc:creator><comments>https://news.ycombinator.com/item?id=43094166</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43094166</guid></item><item><title><![CDATA[New comment by nightcraft in "Show HN: Scripton – Python IDE with built-in realtime visualizations"]]></title><description><![CDATA[
<p>Some folks do like hold-to-quit to avoid accidentally quitting (similar to Chrome's default behavior). However, point taken - it'll be configurable in the next update.</p>
]]></description><pubDate>Tue, 18 Feb 2025 19:22:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=43093892</link><dc:creator>nightcraft</dc:creator><comments>https://news.ycombinator.com/item?id=43093892</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43093892</guid></item><item><title><![CDATA[New comment by nightcraft in "Show HN: Scripton – Python IDE with built-in realtime visualizations"]]></title><description><![CDATA[
<p>IMO, VSCode's codebase is excellent and quite well designed with most functionality abstracted out into injectable services. However, the interaction of these services and other bits of architecture do impose certain limitations that are tricky to workaround. One option is to fork vscode, write your own services, alter the architecture as necessary. You're then faced with keeping this in sync with the rapidly changing upstream code. Another alternative is to implement it as an extension, but that has a fair number of restrictions.<p>For certain projects, forking/extending may be the right call. However, for the degree of customization required for Scripton, writing from scratch turned out to be the more viable path (vs attempting to workaround/rewrite yet another component in vscode). The trade off here, of course, is that you lose out on the familiarity and ecosystem that VSCode has built over nearly a decade. The hope is that Scripton remains sufficiently familiar (eg: Search / CMD+P / etc work similar to vscode) while being compelling enough in its own right.</p>
]]></description><pubDate>Tue, 18 Feb 2025 19:19:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=43093871</link><dc:creator>nightcraft</dc:creator><comments>https://news.ycombinator.com/item?id=43093871</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43093871</guid></item><item><title><![CDATA[New comment by nightcraft in "Show HN: Scripton – Python IDE with built-in realtime visualizations"]]></title><description><![CDATA[
<p>Thanks, appreciate the feedback!<p>While the initial focus is on visualization capabilities, the missing IDE features are actively under development. Beyond cross-platform support, which PyCharm features would you consider essential and would like to see the most?</p>
]]></description><pubDate>Tue, 18 Feb 2025 18:16:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=43093151</link><dc:creator>nightcraft</dc:creator><comments>https://news.ycombinator.com/item?id=43093151</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43093151</guid></item><item><title><![CDATA[New comment by nightcraft in "Show HN: Scripton – Python IDE with built-in realtime visualizations"]]></title><description><![CDATA[
<p>The vscode extensions path, unfortunately, would have been too restrictive for many of Scripton's features/technical requirements (tightly coupled REPL, minimal IPC overhead, ...)</p>
]]></description><pubDate>Tue, 18 Feb 2025 16:02:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=43091071</link><dc:creator>nightcraft</dc:creator><comments>https://news.ycombinator.com/item?id=43091071</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43091071</guid></item><item><title><![CDATA[New comment by nightcraft in "Show HN: Scripton – Python IDE with built-in realtime visualizations"]]></title><description><![CDATA[
<p>Yup, it was written from scratch. Yeah, having a flexible virtualized table certainly makes it easier to build more complex things on top (a lesson I initially learned from NSTableView/UITableView).<p>Currently, it's not user extendable. While it does support some IPython features (eg: Python classes that implement IPython's rich outputs also work in Scripton), ipywidgets are currently not supported.</p>
]]></description><pubDate>Tue, 18 Feb 2025 15:55:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=43090971</link><dc:creator>nightcraft</dc:creator><comments>https://news.ycombinator.com/item?id=43090971</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43090971</guid></item><item><title><![CDATA[New comment by nightcraft in "Show HN: Scripton – Python IDE with built-in realtime visualizations"]]></title><description><![CDATA[
<p>Thanks! GitHub Copilot support is actively under development.</p>
]]></description><pubDate>Tue, 18 Feb 2025 15:39:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=43090767</link><dc:creator>nightcraft</dc:creator><comments>https://news.ycombinator.com/item?id=43090767</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43090767</guid></item><item><title><![CDATA[New comment by nightcraft in "Show HN: Scripton – Python IDE with built-in realtime visualizations"]]></title><description><![CDATA[
<p>The plan for now is just subscriptions.<p>However, I would like to eventually have something like Jetbrains' "perpetual fallback license" where you can keep using up to a particular version after, say, a year of subscription.</p>
]]></description><pubDate>Tue, 18 Feb 2025 15:37:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=43090728</link><dc:creator>nightcraft</dc:creator><comments>https://news.ycombinator.com/item?id=43090728</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43090728</guid></item><item><title><![CDATA[New comment by nightcraft in "Show HN: Scripton – Python IDE with built-in realtime visualizations"]]></title><description><![CDATA[
<p>Coincidentally, one of the first components I wrote for Scripton was a virtualized table for handling million+ row dataframes with Tufte-esque inline visualizations (in a much evolved form, it currently backs the REPL).<p>The data table got deferred to focus on the visualization bits for the initial release, but it's definitely planned!</p>
]]></description><pubDate>Tue, 18 Feb 2025 15:27:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=43090598</link><dc:creator>nightcraft</dc:creator><comments>https://news.ycombinator.com/item?id=43090598</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43090598</guid></item><item><title><![CDATA[New comment by nightcraft in "Show HN: Scripton – Python IDE with built-in realtime visualizations"]]></title><description><![CDATA[
<p>The scripton Python library internally transforms many common Python data formats (regular arrays and dicts, numpy arrays, data frames, ...) to an intermediate format. These are transferred to the IDE when you call the plotting functions, and then auto-translated into the JS equivalent.<p>Your Python plotting code ends up looking like this: <a href="https://docs.scripton.dev/api/plot/orion/overview" rel="nofollow">https://docs.scripton.dev/api/plot/orion/overview</a></p>
]]></description><pubDate>Tue, 18 Feb 2025 15:22:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=43090520</link><dc:creator>nightcraft</dc:creator><comments>https://news.ycombinator.com/item?id=43090520</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43090520</guid></item><item><title><![CDATA[New comment by nightcraft in "Show HN: Scripton – Python IDE with built-in realtime visualizations"]]></title><description><![CDATA[
<p>Not yet. Some internal prototypes did try using IOSurfaces on macOS to go with the zero copy route, but there were a fair number of limitations.<p>That said, the IPC minimizes copies and is actually fairly efficient at handling large numerical arrays.</p>
]]></description><pubDate>Tue, 18 Feb 2025 15:17:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=43090474</link><dc:creator>nightcraft</dc:creator><comments>https://news.ycombinator.com/item?id=43090474</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43090474</guid></item><item><title><![CDATA[New comment by nightcraft in "Show HN: Scripton – Python IDE with built-in realtime visualizations"]]></title><description><![CDATA[
<p>Thanks!<p>The initial prototype did use React, but the overhead in certain cases soon became an issue. It got replaced by a custom virtual dom implementation (coincidentally quite similar to Atom's Etch), but debugging complex updates remained an issue. Eventually, it ended up in a place quite similar to vscode: no frameworks and a handful of "core components" (eg: a virtualized list view)</p>
]]></description><pubDate>Tue, 18 Feb 2025 15:15:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=43090434</link><dc:creator>nightcraft</dc:creator><comments>https://news.ycombinator.com/item?id=43090434</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43090434</guid></item><item><title><![CDATA[Show HN: Scripton – Python IDE with built-in realtime visualizations]]></title><description><![CDATA[
<p>Hey HN, Scripton (<a href="https://scripton.dev" rel="nofollow">https://scripton.dev</a>) is a Python IDE built for fast, interactive visualizations and exploratory programming — without the constraints of notebooks.<p>Why another Python IDE? Scripton hopes to fill a gap in the Python development ecosystem by being an IDE that:<p>1.  Focuses on easy, fast, and interactive visualizations (and exposes rich JS plotting libraries like Observable Plot and Plotly directly to Python)
2.  Provides a tightly integrated REPL for rapid prototyping and exploration
3.  Is script-centric (as opposed to, say, notebook-style)<p>A historical detour for why these 3 features: Not so long ago (ok, well, maybe over a decade ago...), the go-to environment for many researchers in scientific fields would have been something like MATLAB. Generating multiple simultaneous visualizations (potentially dynamic) directly from your scripts, rapidly prototyping in the REPL, all without giving up on writing regular scripts. Over time, many switched over to Python but there wasn't an equivalent environment offering similar capabilities. IPython/Jupyter notebooks eventually became the de facto replacement. And while notebooks are great for many things (indeed, it wasn't uncommon for folks to switch between MATLAB and Mathematica Notebooks), they do make certain trade-offs that prevent them from being a full substitute.<p>Inner workings:<p>-   Implemented in C++ (IDE <-> Python IPC), Python, TypeScript (UI), WGSL (WebGPU-based visualizations)<p>-   While the editor component is based off Monaco, the IDE is not a vscode fork and was written from scratch. Happy to chat about the trade-offs if anyone's interested<p>-   Uses a custom Python debugger written from scratch (which enables features like visualizing intermediate outputs while paused in the debugger)<p>Scripton's under active development (currently only available for macOS but Linux and Windows support is planned). Would love for you to try it out and share your thoughts! Since this is HN, I’m also happy to chat about its internals.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=43090214">https://news.ycombinator.com/item?id=43090214</a></p>
<p>Points: 449</p>
<p># Comments: 139</p>
]]></description><pubDate>Tue, 18 Feb 2025 14:57:09 +0000</pubDate><link>https://scripton.dev</link><dc:creator>nightcraft</dc:creator><comments>https://news.ycombinator.com/item?id=43090214</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43090214</guid></item></channel></rss>