Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I understand that frustration. Fortunately, Clojure (and jank) gets around this entirely. Functions can be redefined at any time, even with different signatures, globals as well. References to the will stay intact and will use the latest value; this is also thread-safe.

Ultimately, this isn't something Cling needs to worry about. You can have your cake and eat it, too. If that sounds too good to be true, know that it's how Clojure devs write all programs. We spin up the process and then send code to it from our editors, without needing to tear it down.

jank gives you this, in C++ land, including support for inline C++ within your Clojure code. I'll have a lot more demos coming out this year, but you can also check out the jank blog or my talks at ROOT's compiler research group and Clojure Conj 2023.



I think this would have been great 15 years ago. Today I really can't see the need for something like it anymore.


Game industry is one example of such need, hence why Unreal has this kind of tooling integration, or why Visual C++ keeps improving it.


And it's unbelievably bad in Unreal as well. They do so much shady hooks and memory management / GC under the hood that Unreal C++ is effectively more like Java or C# at this point. They would save devs a ton of headache if they just went all the way like Unity. C++ has its uses - but those are definitely not it.


C++ was already Java and C# before they came to be, as experienced in tooling like Energize C++, Visual Age for C++, and C++ Builder.

The problem is that too many people insist in using it like C.

Is as if one changes the JavaScript file extension to Typescript, and then keeps writing JavaScript ES3 on it.


That's true and it's why C++ development has become a nightmare over the past decades. I don't see why people need to cram every idea into a single language, especially one that was designed to be so close to hardware. If I want the comfort of high level stuff, I use a high level language.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: