Can someone give me some pointers to reading material on this. I'm aware of hot code reloading for interpreted languages, google just gives links to web page loading. I'm also aware of it at the OS level. I don't really understand why you'd want this in a compiled language.
If you understand why people have it in interpreted languages, why do those reasons not apply to compiled languages?
Nim – Natively compiled language with hot code-reloading at runtime [video]
41–50 of 118 posts
Re: Nim – Natively compiled language with hot code-reloading at runtime [video]
#42Nim is an amazing language. The syntax is cleaner (IMO) and easier-to-read than Go and approaches Python in its readability, which is impressive for a statically typed, compiled language[0]. The design is focused on performance above all else, but it still has metaprogramming[1] and functional features. However, Go and other languages have a huge ecosystem and many more libraries. Nim only has a few web servers/frame…
> For HNers, it's an opportunity to still make a huge difference by contributing to a relatively young language It would be better for someone to work on an alternate, Python-like input syntax (focusing on readability and good intuition, and perhaps more attractive to novice programmers) for some established language, like Rust. Working on a "young" language, you just miss the chance of contributing to an ecosystem t…
I think the only globally optimal option in hobby open source projects is doing whatever seems more fun for you, and for many people is using that language that no one uses (or making your own language that no one uses).
Re: Nim – Natively compiled language with hot code-reloading at runtime [video]
#43Looks like it's still a pre-release feature at this point. Hot code-reloading part of the talk: https://youtu.be/7WgCt0Wooeo?t=1519 RFC: https://github.com/nim-lang/Nim/issues/8927 Code: https://github.com/onqtam/Nim/tree/hcr-1
It has been merged to devel branch: https://github.com/nim-lang/Nim/pull/10729
Re: Nim – Natively compiled language with hot code-reloading at runtime [video]
#44I only skimmed the video, but I couldn't see him describing it doing type reloading. Perhaps that is what he is planning on implementing. It is very hard to implement (especially if you can't control the compiler) but very useful for general code reloading. Of course everything is relative, and even if I think it is "very hard" it might be a weekend project for someone else. Generally though, code reloading is one of…
If you put your mind to it just a bit (i.e., I wouldn't call this "automatic" exactly but it's not too hard to use the support the language, runtime, and libraries have), Erlang can even do a harder thing, which is update the code handling a given socket connection or something live, in a principled manner, while never dropping the connection. Since HTTP is transient, it's actually a bit easier than a raw socket sinc…
That's what I meant. :) Hot reloading when nothing is "in flight" isn't so hard. The Erlang the Movie example, hot-fixing a PBX without disturbing phone calls in progress (real time requirements!), is really hard.
Re: Nim – Natively compiled language with hot code-reloading at runtime [video]
#45Re: Nim – Natively compiled language with hot code-reloading at runtime [video]
#46Earlier quoted context omitted.
If you put your mind to it just a bit (i.e., I wouldn't call this "automatic" exactly but it's not too hard to use the support the language, runtime, and libraries have), Erlang can even do a harder thing, which is update the code handling a given socket connection or something live, in a principled manner, while never dropping the connection. Since HTTP is transient, it's actually a bit easier than a raw socket sinc…
> Erlang can even do a harder thing, which is update the code handling a given socket connection or something live, in a principled manner, while never dropping the connection. That's what I meant. :) Hot reloading when nothing is "in flight" isn't so hard. The Erlang the Movie example, hot-fixing a PBX without disturbing phone calls in progress (real time requirements!), is really hard.
BEAM's really got it all on this front.
Re: Nim – Natively compiled language with hot code-reloading at runtime [video]
#47+1 for Nim. I'm dreaming some day to see a RAD where Lazarus generates Nim code with full LCL support; that would be a truly killer dev system for desktop apps. Lazarus is already a wonderful RAD, one can build native apps on a *PI board and run them directly on that target; Nim support would make it even greater.
Re: Nim – Natively compiled language with hot code-reloading at runtime [video]
#48Nim is an amazing language. The syntax is cleaner (IMO) and easier-to-read than Go and approaches Python in its readability, which is impressive for a statically typed, compiled language[0]. The design is focused on performance above all else, but it still has metaprogramming[1] and functional features. However, Go and other languages have a huge ecosystem and many more libraries. Nim only has a few web servers/frame…
> Until then, if you are looking for a systems programming language, you owe it to yourself to investigate Nim[3], alongside Go, Crystal, Julia, D, Rust, Haskell, etc. Go, Crystal, Julia, Haskell and Nim all have a runtime that sort of precludes their use as a true systems lang. I agree with your other points, and I like Nim, I wish it was more popular, but I can't convince myself it's worth the time investment to le…
Re: Nim – Natively compiled language with hot code-reloading at runtime [video]
#49(Natively compiled) Erlang might want to have a word with you.
Educate me if I am wrong, but there are natively compiled Erlang modules, but no longer any natively compiled Erlang. It only runs on the BEAM, and ever since BEAM/C fell out of use in OTP R5 no native code is generated.