frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

The Most Difficult Program to Compute: Ackermann's Function [video]

https://www.youtube.com/watch?v=i7sm9dzFtEI
1•teleforce•8m ago•0 comments

How Often Do LLMs Snitch? Recreating Theo's SnitchBench with LLM

https://simonwillison.net/2025/May/31/snitchbench-with-llm/
1•Philpax•10m ago•0 comments

AI Is Your Rocket Ship to a Freer, More Creative Life

https://novice.media/p/ai-is-your-rocket-ship-to-a-freer
1•kirillzubovsky•12m ago•0 comments

The U.S. Deported This Chinese Scientist, a Decision That Changed World History

https://www.nytimes.com/2025/05/30/opinion/visas-china-rockets-scientist-technology.html
4•pseudolus•19m ago•1 comments

How to Build a Vibrant Technology Industry by Yann LeCun

https://docs.google.com/document/d/1LlNCY9_4MXhilnbu9MqKhSjHjMGqtDA8zZmSQynVjmY/edit
1•ericjang•22m ago•0 comments

First-ever production electric Honda motorcycle is here

https://electrek.co/2025/05/31/first-production-electric-honda-motorcycle-debuts-in-beijing-and-its-a-cafe-racer/
2•harambae•24m ago•0 comments

HWF on Telegram

https://github.com/NeonGamerBot-QK/telegram-hwf
7•leowilkin•25m ago•2 comments

Ten Minute Physics

https://www.youtube.com/channel/UCTG_vrRdKYfrpqCv_WV4eyA
1•weinzierl•26m ago•0 comments

Kees Cook Account Disabled

https://lore.kernel.org/all/20250531-resolute-glittering-cuckoo-b6cd91@lemur/
6•todsacerdoti•26m ago•2 comments

Tools Built on Tree Sitter

https://www.scannedinavian.com/tools-built-on-tree-sitters-concrete-syntax-trees.html
1•shae•27m ago•0 comments

Programming Loops vs. Recursion [video]

https://www.youtube.com/watch?v=HXNhEYqFo0o
2•teleforce•29m ago•0 comments

Starting a company working on hard problems

https://twitter.com/Suhail/status/1928934817069982084/photo/1
1•jger15•32m ago•0 comments

Before OBD-II, mechanics had to think

https://www.carsandhorsepower.com/featured/obd-ii-is-a-joke-real-mechanics-use-a-vacuum-gauge-and-a-screwdriver
2•Anumbia•34m ago•1 comments

Dutch government passes law to criminalize cyber-espionage

https://therecord.media/netherlands-law-criminalizes-cyber-espionage
1•PaulHoule•35m ago•0 comments

Show HN: push.rocks/smartdata: A TypeScript-First MongoDB ORM

https://typescript.guru/push-rocks-smartdata-a-typescript-first-mongodb-wrapper-for-modern-applications/
1•PhilKunz•35m ago•0 comments

Trees May Be Able to Warn Us When a Volcano Is About to Erupt

https://www.sciencealert.com/trees-may-be-able-to-warn-us-when-a-volcano-is-about-to-erupt
1•geox•37m ago•0 comments

Ask HN: Why hasnt generative AI made the internet a wasteland yet? When will it?

2•AbstractH24•37m ago•5 comments

The Uber of the Underworld

https://www.economist.com/international/2025/05/29/the-uber-of-the-underworld
1•DyslexicAtheist•39m ago•0 comments

Show HN: Ethereum/EVM Event Pipeline

https://github.com/lbkolev/eventify
1•voicesz_•46m ago•0 comments

Kernel Mailing List flagging of contributor as potentially malicious

https://lore.kernel.org/all/CAHk-=wj4a_CvL6-=8gobwScstu-gJpX4XbX__hvcE=e9zaQ_9A@mail.gmail.com/
5•cbondurant•46m ago•5 comments

Rsync's defaults are not always enough

https://rachelbythebay.com/w/2025/05/31/sync/
4•ingve•48m ago•0 comments

The 2.7% Rule for Retirement Spending [video]

https://www.youtube.com/watch?v=1FwgCRIS0Wg
1•simonebrunozzi•48m ago•1 comments

No build front end is so much more fun

https://simonwillison.net/2025/May/31/no-build/
3•xnx•52m ago•0 comments

Emergence of emotional response from sensory experience in humans and mice

https://www.science.org/stoken/author-tokens/ST-2646/full
3•erichamc•53m ago•2 comments

RAG is dead, long live agentic retrieval

https://www.llamaindex.ai/blog/rag-is-dead-long-live-agentic-retrieval
2•gemanor•54m ago•0 comments

Why would the US government ever refuse the US dollar?

https://thehill.com/opinion/finance/5325863-cash-refusal-national-parks-controversy/
3•anigbrowl•54m ago•0 comments

Rick Rubin: Vibe Coding Is the Punk Rock of Software [video]

https://www.youtube.com/watch?v=7s9C92Pkcc0
1•zzzeek•56m ago•2 comments

ML models don't need that much data to be better than you

https://www.mlpowered.com/posts/ml-models-dont-need-that-much-data/
1•jxmorris12•57m ago•0 comments

Ask HN: Which framework/book to get started into GameDev?

4•recvonline•59m ago•5 comments

The Great Attractor

https://en.wikipedia.org/wiki/Great_Attractor
1•ajdude•59m ago•0 comments
Open in hackernews

Show HN: W++ – A Python-style scripting language for .NET with NuGet support

https://github.com/sinisterMage/WPlusPlus
93•sinisterMage•1d ago
Hey HN

I’ve been building *W++*, a scripting language that looks like Python but runs on the .NET runtime. It started as a fun side project, but it evolved into something surprisingly powerful — and potentially useful:

Key Features:

- Python-style syntax with semicolon-based simplicity

- Compiles to .NET IL with experimental JIT support

- Can run interpreted or compiled

- Built-in CLI for managing projects, running, and building

- Supports importing NuGet packages and converts them to .ingot modules automatically - MIT licensed and fully open-source

You can even do things like:

    wpp
    import Newtonsoft.Json

    let person = new JObject()
    person["name"] = "Alice"
    print person["name"];

 Use Cases:
Game scripting (Unity, OpenTK support in progress)

Education (gentle intro to .NET without C# syntax)

Blazor scripting

Embeddable scripting engine for .NET apps

GitHub: https://github.com/sinisterMage/WPlusPlus

I’d love feedback, ideas, and thoughts. Thanks for reading — and if you’ve ever said “I wish Python ran on .NET,” this might be for you.

Comments

airstrike•1d ago
> if you’ve ever said “I wish Python ran on .NET”

Isn't that IronPython?

sinisterMage•1d ago
You're absolutely right — IronPython does run Python on .NET.

W++ takes a different approach: it's a custom scripting language that looks like Python but is designed for tight integration with .NET itself, including:

Native JIT compilation (via IL emission)

NuGet package import support (via .ingot wrapping)

Familiar syntax (like print, let, for, if) with static structure

IronPython is about bringing Python to .NET. W++ is about making .NET scripting feel more like Python.

Think of it as IronPython’s minimalist, compile-time-powered cousin.

giancarlostoro•1d ago
I lowkey want someone to make the Clojure of .NET which is a Lisp / Scheme like language but that takes full advantage of .NET I do like that yours does this with Python however. My two main languages for a while have always been Python and C#.

I do think theres some interesting value in something like IronPython becoming more compatible with regular Python code in that in theory you could take advantage of both .NET and Python libraries. I'm thinking maybe Django with access to any .NET library.

sinisterMage•1d ago
That’s a really cool idea — a “Clojure of .NET” would definitely fill a unique niche. W++ kind of stumbled into this space by aiming to make .NET feel more like Python for scripting — but yeah, I’d love to explore where it could go if more folks want something expressive but tightly integrated with .NET.

Also, totally agree — bridging Python and .NET ecosystems more deeply (like Django with NuGet access ) sounds wild and fun. Appreciate the thoughts!

grzm•1d ago
I’m not familiar enough with the CLR or .Net to know whether this fits your needs, but there is ClojureCLR:

https://clojure.org/about/clojureclr

Nelkins•1d ago
There's the original/current implementation: https://github.com/clojure/clojure-clr

And the newer reimplementation: https://github.com/dmiller/clojure-clr-next

actuallyalys•1d ago
I’m a little confused; it “looks like Python” but basically every snippet has elements that don’t look like Python. Ignoring the semicolons, which you do call out as a difference, I see let for introducing variables, new for creating objects, and a completely different lambda syntax.

Maybe the “looks like Python” means it uses significant whitespace? In that case I think the README should have an example demonstrating that.

To be clear, you can diverge from Python syntax all you want. I think you just need to be clearer about what you mean by “looks like Python,” maybe by providing an example that highlights the features that particularly resemble Python.

sinisterMage•1d ago
You're totally right to ask — W++ borrows Python’s general feel (like significant indentation and dynamic typing), but its core is rooted in a C-style heritage due to the .NET foundation. So while let and semicolons aren’t Pythonic, the language avoids boilerplate, supports clean control flow, and aims for the readability people love about Python.

I’ll make the README clearer with a side-by-side W++ vs Python snippet to highlight the similarities better. Thanks a lot for pointing it out!

umanwizard•1d ago
.NET by no means requires languages to be C-like, certainly not in trivial ways like having semicolons. F# for example (or for that matter, IronPython) is very unlike C. So whatever you’re trying to say here is still confusing.

Honestly I think you’re leaning too hard into the “Python” marketing. Python is not just a byword for “easy-to-learn dynamically typed language”. It is its own, specific thing, and your language is not the same. You could say something like “inspired by Python” (in certain ways), but claiming to target people who “wish they could write Python on .NET” strikes me as an exaggeration (especially since you can already do that).

sinisterMage•1d ago
Totally fair point — W++ isn’t meant to be a direct Python clone, just inspired by its simplicity and clean syntax (like indentation and dynamic typing). The goal was to make scripting on .NET feel lighter and more approachable.

I’ll tweak the README to make that clearer. Appreciate the honest feedback!

smt88•1d ago
I think this project is incredibly cool and lots of people will use this, but...

> significant indentation and dynamic typing

are absolutely the worst parts of Python. I can understand dynamic typing for scripting purposes, no real qualms there, but significant whitespace is on its face absolutely insane (significant characters that are literally invisible).

sinisterMage•1d ago
Thanks! Totally fair — I know significant indentation and dynamic typing aren’t for everyone.

W++ leans that way just to reduce boilerplate and keep the syntax clean for smaller scripts, but it’s not trying to be the “one true way” to write .NET code. Honestly, it’s all about exploring what a lightweight .NET scripting layer could feel like.

Appreciate you checking it out

dontlaugh•1d ago
I have the opposite opinion, having written Python for many years. Dynamic typing is almost never better or necessary, but significant whitespace makes for excellent syntax with no downsides.
pansa2•1d ago
There’s at least one downside: only having lambda expressions instead of full anonymous functions.

Python’s grammar works great for expressions-inside-statements (and expressions-inside-expressions), but it can’t do statements-inside-expressions. Every attempt to support the latter turns out really ugly, at least in corner cases.

sinisterMage•1d ago
Yep, W++ lambdas are statement-level on purpose My high school teacher once told me lambdas are “university-level,” so I made them the default function syntax in W++. It’s my way of saying: “nah, these aren’t scary — they belong in scripting too.”

That said, I totally agree that full anonymous functions would be useful (especially for more complex logic). Might explore adding those later, but I love the message the current model sends.

dontlaugh•1d ago
It works just fine for F#, for example. It’s doable, but it’s too late for Python.
const_cast•1d ago
> but significant whitespace makes for excellent syntax with no downsides.

Biggest downside: copying and pasting code breaks in a lot of apps.

Jira, Teams, and probably some others, eat whitespace for breakfast. So if a coworker gives me a code snippet they have to manually edit it (often not even possible) OR I have to, or it won't even run. And since the whitespace is significant, it can't be auto formatted.

Whereas with C# you can copy the most fucked up snippet, put it in your editor and boom - auto-formatted and compiles.

ab5tract•23h ago
Significant whitespace is a divisive enough choice that a non-zero percentage of programmers won't even consider the language unless forced to do so by economic circumstances.

It might not be a highly visible downside, but it's there nonetheless. It's better to be honest about that than pretend there is no cultural tradeoff that comes with making such a (IMO) terrible design decision in a language.

There are plenty of people that feel the same way about sigils (like `$foo` in Perl) and semi-colons. I've never understood it -- and likely never will, at this point -- but I don't pretend that there isn't a real demographic effect that these choices bring with them.

noworriesnate•1d ago
This is very cool! Do you have data flow analysis implemented anywhere? I’ve been thinking about building my own Python interpreter to help understand how info flows around inside a script generated by an LLM and data flow analysis would probably be a good place to start. I’m very familiar with the dotnet ecosystem so this could be something I’d be interested in contributing to.
sinisterMage•1d ago
Thanks! That means a lot

W++ doesn’t have full-blown data flow analysis (yet!) — the current interpreter walks the AST in a fairly straightforward way, and the JIT just compiles expression trees without SSA or optimization passes. But your idea of analyzing LLM-generated scripts is super interesting. I'd love to explore basic flow inference or a visualizer in the future.

Feel free to open an issue or discussion if you’re curious — would be awesome to collaborate!

frabert•1d ago
https://boo-language.github.io/ The Boo language comes to mind as something similar
sinisterMage•1d ago
Oh wow, I actually hadn’t heard of Boo until now — thanks for sharing it! Just took a quick look and yeah, I can definitely see some parallels. W++ wasn’t directly inspired by it, but I guess we both arrived at similar goals: a Python-style language that plays well with .NET.
debugnik•1d ago
This was by the same author as UnityScript, wasn't it? IIRC the latter was mostly just Boo in a JS trenchcoat, which is why both were supported along with C#.
bob1029•1d ago
I think this is fun stuff. I always enjoyed building things like this.

That said, in 2025 if I was already willing to utilize C#/.NET, I would probably prefer an "internal" DSL approach [0] - i.e., one that leverages the host language directly and builds the abstractions on top.

Examples of this would be fluent interfaces and methods like ConfigureDomainServices(Action<DomainServiceBuilder>). I know some developers frown on this approach, but I've embraced it as the least terrible way to go about handling things like AspNetCore web server configuration and setting up complicated data transformation pipelines. If these techniques are good enough for configuring a modern, production grade web server, they are probably good enough for configuring your domain too.

I spent a solid 3 years building & supporting an IronPython stack on the old 4.x .NET Framework and I learned a lot of lessons about how bad things can get when you begin coloring outside the lines. Memory leaks were probably the most difficult thing to reason about. Object lifecycles are already pretty tricky without the hosted language on top.

[0]: https://martinfowler.com/dsl.html

giancarlostoro•1d ago
> I spent a solid 3 years building & supporting an IronPython stack on the old 4.x .NET Framework and I learned a lot of lessons about how bad things can get when you begin coloring outside the lines. Memory leaks were probably the most difficult thing to reason about. Object lifecycles are already pretty tricky without the hosted language on top.

I'm a little jealous ;) As someone who codes in both Python and C# mainly, never had to touch IronPython for an employer yet.

waldrews•1d ago
It's sad that IronPython is effectively dead, but PythonNet is now very stable, complete, and friendly to recent Pythons.
e-master•1d ago
pythonnet works, we use it in a pretty large (Python) codebase, but I’m much more excited about https://github.com/tonybaloney/CSnakes, which allows using Python in a proper statically typed language - C#.
sinisterMage•1d ago
Thanks! I really appreciate you taking the time to write this up — super insightful.

I definitely get the appeal of internal DSLs, especially with how powerful C#’s fluent APIs have become. W++ takes a bit of a different path: more like “what if .NET had a native scripting layer that felt expressive and lightweight,” even if that means giving up some safety or flexibility of the host language.

And wow — 3 years with IronPython is no joke. Totally agree on how tricky it can get once you step outside the intended boundaries. I’m keeping W++ focused more on smaller, experimental scripting for now, but your point about memory and lifecycle management is a great reminder for anything that gets more ambitious.

Cheers for the link to Fowler’s DSL article too — gold.

90s_dev•1d ago
> Memory leaks were probably the most difficult thing to reason about. Object lifecycles are already pretty tricky without the hosted language on top.

I thought the whole point of these high level langs was that you don't have to worry about that?

sinisterMage•1d ago
Totally fair question — most high-level languages do take care of memory for you, especially with garbage collection.

But in hosted scenarios like IronPython or W++ (where the language is layered on top of .NET), things can get trickier:

You're managing your own object model inside a host runtime.

If you're not careful, it's easy to create long-lived references (like global caches or circular structures) that the GC won’t clean up.

In IronPython's case, hosting decisions (like how objects interop with .NET classes) can leak unintentionally if lifecycle logic isn't airtight.

So yeah — you usually don't think about memory... unless you're writing the language

make3•1d ago
Are you saying that IronPython in general has memory leak issues? or just because you were trying to add support for an old .NET framework
giancarlostoro•1d ago
The only immediate feedback I have is the name. I feel like languages and projects underestimate good naming, like Go has a nice name, but its awful to google for, hence everyone tacks on "lang" to it.

I don't think the name "W++" conveys what it is, it makes me think this is a systems language that competes with Rust, D, C++, C and even Zig. Maybe calling it based on a different snake species would convey that it might be related to Python? Calling it Cobra or something else might make sense.

Otherwise, I look forward to experimenting with this project!

sinisterMage•1d ago
Haha yeah, fair point on the name! I actually chose “W++” from a gaming mindset — in games, W = Win, so W++ was my way of saying "keep stacking wins." It’s not meant to compete with Rust or Zig — it’s more of a light, expressive scripting language that happens to be built on .NET.

But you’re totally right that naming is tricky. I might reconsider down the line if it ever gets serious traction — “Cobra” does sound kinda slick

Appreciate the feedback!

zerkten•1d ago
Does this start up quickly on the first execution? IronPython and other languages have problems with JIT resulting in minor delays to execution which are frustrating for quick scripts. There was a change in IronPython to interpret and not JIT on the first run to avoid this delay. Anything you use to remove JIT delays for quick scripts will increase the likelihood of adoption. Running JIT on repeat runs is a beneficial feature so you don't want to kill it entirely.

As others have stated, the use of semicolons while stating this is "like Python" is weird. Use language which avoids the direct Python comparison. It seems like your language is intended to be succinct. Just state that because it'll avoid negative reactions. I'm a C# and Python dev, so I'd rather you avoided this in-between state.

Killing semicolons and braces to embrace indentation would be my preference for a scripting language that is intended to appeal to my Python-side. If the intention is to appeal purely to C# devs, then don't mention Python at all because they often jump to "indentation, ugh" without considering your language.

sinisterMage•1d ago
Thanks for the thoughtful feedback — you raised a few great points I hadn’t fully considered.

You're absolutely right about JIT startup time. Currently, W++ doesn't do any caching or ahead-of-time work, so there’s a delay on the first run. I’ll explore ways to keep it snappy for quick scripts — maybe a pure interpreter fallback for single-run use cases would help.

Also appreciate the insight on the Python comparison. That “in-between state” you described is exactly where I’m at — trying to blend Python’s simplicity with .NET’s power. But you’re right, the messaging could be cleaner. I’ll adjust the README to better reflect that W++ is its own thing and not a direct clone or pitch to Python devs.

This kind of comment is gold, seriously. Thanks for taking the time.

pansa2•1d ago
Why does this post say “Python-style syntax”, but “SYNTAX.md” shows a “clean syntax inspired by JavaScript and C-like languages”?
sinisterMage•1d ago
You're totally right to catch that — I’ll update it for clarity!

The idea was: W++ aims for a syntax that feels lightweight like Python (minimal boilerplate, indentation structure), but it also borrows C-style flow and expression flexibility. So technically it’s a bit of a hybrid:

Block structure + minimalism = inspired by Python

let, const, switch, and lambdas = more JS/C-style

I’ll clean up SYNTAX.md and the description to better reflect that. Appreciate you pointing it out!

hoistbypetard•1d ago
> This repo contains the full source code of W++ after it reached over 33,000 downloads on the VSCode Marketplace — and was mysteriously flagged and removed.

Any insight into why that is?

sinisterMage•1d ago
Yeah, so here’s the full story: when I first uploaded the W++ VSCode extension to the Marketplace, it took off faster than I expected — over 33,000 downloads in under 2 hours. A few days later, it was suddenly removed.

Only later did I find out it had been labeled as malware by Microsoft — no details, no warning. I emailed their support to clarify what triggered the flag, but I never got a response.

Since then, I’ve made the entire source public here, including the VSCode extension, so folks can inspect and use it freely. If anyone has experience navigating these kinds of takedowns, I’d definitely appreciate insights.

hoistbypetard•1d ago
I hope it catches the attention of someone who might be able to find out.
jarrell_mark•1d ago
Semi colon is a non starter for me personally.

All the best and I’m sure many others will find this useful.

sinisterMage•1d ago
Totally fair! I know semicolons aren’t for everyone — W++ leans into a mix of familiar C-style syntax with some Python-style simplicity, but it’s definitely not a perfect fit for all tastes.

Appreciate the kind words regardless — and who knows, maybe I’ll experiment with optional semicolons in a future version.

eddythompson80•1d ago
For me, having semi colon be a non-configurable default is a non starter. Languages like Go or C take it too far. I prefer a typescript like language where semi colons are configurable through a config file or tool.

Typescript itself is a non starter because of non-configurable "brackets around if conditions" behavior. I pretty much write any language I wanna use these days depending on the task. Use the right tool for the right job. I do generally target perl 5.8 as a backend though. Seemed simpler and most widely supported backend across all systems I came across. Has been super stable since '02.

e-master•1d ago
A bit of off topic, but recently I started learning F# because my new team at work uses it heavily, and even though I love writing in C# and even though the latest C# features are really nice (especially love patter matching), I wish now C# didn’t have the curly braces and semicolons at all, and used instead indentation based grouping like F# and Python does. That is practically all I wish I had in C#… and discriminated unions, but let’s be honest, what are the chances of that happening? ;)
pjerem•16h ago
F# is an hidden gem, iteration 5 278.

I think it stays niche because it’s targeted at people knowing the dotnet ecosystem but most of those people reason a lot in OOP/imperative because well, they work with C#.

But it’s amazing to me that F# is still evolving and cutting edge after more than two decades of being extremely niche. You’d think Microsoft would abandon it or let it rot but no. Though I think F# is in fact the laboratory for new language features for C#.

gabrielsroka•22h ago
It looks more like JavaScript than Python. Why isn't this linked to from the readme?

https://github.com/sinisterMage/WPlusPlus/blob/master/SYNTAX...

sinisterMage•20h ago
Yeah, I totally get that! W++ isn’t meant to copy Python’s syntax exactly — instead, the inspiration from Python is in its simplicity and low barrier to entry.

I drew from multiple languages — Python, JavaScript, even a little C-style flavor — to make something that’s readable, expressive, and beginner-friendly, especially for quick scripting in .NET.

Appreciate the suggestion! I’ll make sure the SYNTAX.md is linked more clearly from the README.

osigurdson•20h ago
One random / recurring thought that I have had recently is: realistically, how far off are we from being able to jot down some ideas about how a given language should look (or use Yacc / Antlr), then have the LLM generate the compiler, LSP as well as an entire set of common libraries in the new language?
csto12•20h ago
All the comments from op are LLM generated and the project has some hallmarks of being LLM generated. This feels bizarre.
actuallyalys•20h ago
I’m not sure all of them are LLM generated, but many are. Bizarre indeed.