Live data from Hacker News

Nim – Natively compiled language with hot code-reloading at runtime [video]

youtube.com

101–110 of 118 posts

Re: Nim – Natively compiled language with hot code-reloading at runtime [video]

#101
post #86

Nim 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…

Minor nit. Every language you mentioned with a GC is not a systems language.

Having a GC is not an impediment for systems language, for example:

- Algol 68

- Mesa/Cedar

- Sing#

- System C#

- Modula-2+

- Modula-3

- Oberon

- Oberon-2

- Active Oberon

- Oberon-07

- Component Pascal

- Lisp (regarding Lisp Machines and its derivatives)

- Java (when deployed bare metal on embedded devices, e.g. Aicas, PTC)

- Swift

- D

- C# (when used alongside .NET Native, IL2CPP, CoreRT, Netduino, meadow)

Re: Nim – Natively compiled language with hot code-reloading at runtime [video]

#102
post #54

To add another existing implementation of this, Naughty Dog's Lisp-based assembler could do hot code reloading, and that workflow was extensively used for developing Jak & Daxter. Plus, obviously any JIT'd language can do this but it's fair not to count that. Still, that's just splitting hairs and it's really exciting to see this in Nim. It's a great language and it's a shame that it doesn't seem to have found a real…

There are many game engines do some form of hot code reloading of the game scripting code (as opposed to engine code). Unity supports it for C#, for instance (though it's finicky, you have to program with hot reloading in mind).

And Unreal does it for C++ as well now.

Re: Nim – Natively compiled language with hot code-reloading at runtime [video]

#103
post #81

Earlier quoted context omitted.

Don't know about Smalltalk but there are numerous CL compilers...

Smalltalk is compiled to bytecode.

Which were originally the CPU instructions of Dorado, given its microcoded CPU.

And gave birth to all modern JITs.

Re: Nim – Natively compiled language with hot code-reloading at runtime [video]

#104

Nim is an interesting language. Main features: - Type system: Strong and static typings. - Support Generics (Unlike Go) - Support Modules (Unlink C++) - Multiple and optional GC. - Metaprogramming support. - Executed binary. What excites me most is the efficiency as C. I hope it'll get mature more this year. At least for the Javascript backend, so that i could write Nim for frontend (with bindings for popular JS fram…

C++20 does support modules.

Re: Nim – Natively compiled language with hot code-reloading at runtime [video]

#105
post #85

Earlier quoted context omitted.

Don't know about Smalltalk but there are numerous CL compilers...

I'm pretty sure that's exactly their point. People assume that interactive means interpreted, but that doesn't need to be the case.

Ah, my bad, I didn't caught the sarcasm in that post. Yeah, it makes sense now... ^__^;

Re: Nim – Natively compiled language with hot code-reloading at runtime [video]

#106
post #97

Earlier quoted context omitted.

This is swapping out the JVM. It's not even the same language at that point.

Maybe it would be easier for both of us if you wrote the definition for real-time or systems programming, rather than just saying something isn't one or the other.

Look, a good systems language should have predictable assembly instructions that the code compiles into. You should be able to literally with your eye map from code to asm and jump back and forth in a systems level language. GC enabled languages don't have this property as the assembly would be littered with GC code to clean up things. You won't be able to map back and forth.

You will note that rust advertises themselves as a systems level language and it is deliberately designed with the term zero cost abstraction. All this means is predictable asm from code. No black magic. Rust is advertised as systems level and this is the property that enables it. I hope that allows you to understand what it means to be systems level.

I truly believe that you are completely wrong and only few languages nowadays are system languages without a GC. C++, C, D (when used without the GC) and rust are examples. All the other languages you listed aren't.

Re: Nim – Natively compiled language with hot code-reloading at runtime [video]

#107

Earlier quoted context omitted.

> for some established language, like Rust. Working on a "young" language, you just miss the chance of contributing to an ecosystem that's already been in development for quite some time Would you still make this point if you were comparing... for example, Rust and C++? ... where Rust is the "young" language? Working on such a young language (and, FWIW, Rust is younger than Nim), you might miss the chance of contribu…

Given that C++ is widely regarded as having unfixable problems (and even the ISO-C++ community is now basically admitting this, with the C++ Core Guidelines being nothing more than a somewhat pointless band-aid), yes I would. If C++ was fixable, Rust would not exist in the first place. (Same goes for e.g. Ada btw - if you could simply fix both the clear lack of openness in the available Ada toolchains, and its lackin…

> is widely regarded

Yeah, citation needed, d00d.

> with a more Pythonic input syntax

A 'more Pythonic syntax' is literally the least important requirement anybody needs in a programming language.

Re: Nim – Natively compiled language with hot code-reloading at runtime [video]

#108

Earlier quoted context omitted.

Maybe it would be easier for both of us if you wrote the definition for real-time or systems programming, rather than just saying something isn't one or the other.

Look, a good systems language should have predictable assembly instructions that the code compiles into. You should be able to literally with your eye map from code to asm and jump back and forth in a systems level language. GC enabled languages don't have this property as the assembly would be littered with GC code to clean up things. You won't be able to map back and forth. You will note that rust advertises themse…

This is what I was looking for, and I truly believe you are completely wrong as well.

I follow the line of thinking that includes utility software and backend services/platforms as described here:

https://en.wikipedia.org/wiki/System_programming_language

Hence, the word has different meaning from person to person. So there is no wrong, or at least it exists on a spectrum, and everyone complaining about the original comment's word choice is just jerking their ego off.

Re: Nim – Natively compiled language with hot code-reloading at runtime [video]

#109
post #86

Nim 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…

Minor nit. Every language you mentioned with a GC is not a systems language.

Your argument that a systems language must be memory unsafe relates only to current practices but not to science. science would rather prefer memory safety in systems.

Re: Nim – Natively compiled language with hot code-reloading at runtime [video]

#110
post #48
post #27

Earlier quoted context omitted.

> 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…

Luckly not everyone thinks like that. http://www.astrobe.com/default.htm https://www.wildernesslabs.co https://www.ptc.com/en/products/developer-tools/perc

It's great that there are a few projects that enable writing software for embedded devices in some languages you don't usually see in the space, but projects like this do not suddenly make the lang a 'systems language'. You wouldn't want to write an OS in Java or C# or any language with a GC & runtime really.

Nerves is also a wonderful project, enabling the use of elixir for IoT devices, but nobody would claim elixir is a systems lang.

Post reply on HN