8 ms·
NimConf 2022 – Nim Online Conference
- cb321 4y agoHN people may be especially interested in the very first talk which is Andreas' vision for Nim 2.0.
- cb321 4y agoAlso, if you are too impatient to wait until tomorrow, you can just click through on the program you see links for the 2020 and 2021 Nim Conferences. (One 2021 link I saw is broken, but https://conf.nim-lang.org/ https://conf.nim-lang.org/ works for that - for now. I presume the plan is to swap that to 2022 and make the 2021 link work.)
- pietroppeter 4y agoa bit more info for those who do not follow too much: - first talk by Andreas will update us on Nim 2.0 which is planned within the year and where the most important part will be the switch to orc memory management (deterministic memory management with garbage collection only limited to collect cycles). - Suhei will talk about moe, vim inspired command line editor, see https://github.com/fox0430/moe https://github.com/fox0430/moe (last year he talked about nicoru, docker in nim!) - Tanguy from status, main sponsor of nim (they are building a lightweight ethereum node in nim) will talk about libp2p (in nim AND other langs), which is relevant for crypto web 3 world - Antonis recently release a very nice library for fuzzing (an automated bug finding technique), see https://github.com/status-im/nim-drchaos https://github.com/status-im/nim-drchaos - I will be presenting with Hugo on nimib, a "framework"/DSL way to turn nim code in html (sort of replaces jupyter for nim, can do more than that); in particular we made very easy with nimib to take advantage the capability of nim to compile to js. - next Hugo will present on how he created a nimib slides theme (based on reveal.js, at least 4 of the presentation seem to be based on nimislides) - Can has created a very interesting an experimental deep learning framework for Nim based on a differentiable array programming language (and he has been doing great work on other stuff too, like owlkettle): https://github.com/can-lehmann/exprgrad https://github.com/can-lehmann/exprgrad - Ryan will talk more about his incredible and frugal Entity Component System https://github.com/rlipsc/polymorph https://github.com/rlipsc/polymorph He did present on this topic in February but it seems it has progressed much and we might be seeing some very cool demonstration (that's speculation from thumbnail...) - Juan has been working of having Nim work with Unreal Engine "the world's most open and advanced real-time 3D creation tool for photoreal visuals and immersive experiences". he has been working with Andreas to have Incremental Compilation (next big thing coming in the core language) so it looks pretty exciting - I know very little about the work of Chris on Nim-SOS and Nim-htpx (see https://github.com/ct-clmsn/nim-sos https://github.com/ct-clmsn/nim-sos ) but it looks to be impressing work in the area of scientific computing - finally Andre/treeform is consistently producing great libraries and talks on Nim and I would not miss that talk for the world. all videos are pre recorder but authors will be around in the chat to interact. further discussion might appear here: https://forum.nim-lang.org/t/9539 https://forum.nim-lang.org/t/9539
- girvo 4y agoExciting to see ORC being the focus for 2.0! We’re using ARC (pure reference counting, minus the cycle collector) for our embedded firmware, and it’s been pretty excellent. Sink and Lent are great, as is the adoption of destructors/RAII-like approaches. Combined with Nims awesome compile time and meta programming features (for truely zero cost abstractions — nothing better than have the compiler help us write correct firmware code and have all those fancy types and checks disappear in the C output!), it’s been awesome. There’s some rough edges here and there, mostly due to the interplay of ESP-IDF having a pretty buggy malloc implementation, but being able to ask Nim to expandArc and tell me where the destructors are being put to track down accidental cycles or leaks has been handy — and it’ll only get better and easier as Nim adopts even more powerful tools :) It’s a remarkably pragmatic language in a lot of ways, at least in my opinion. Can’t wait for the rest of the talks!
- deleted 4y ago[deleted]
- pietroppeter 4y agoso nice to hear :). nim looks really great for embedded. this nim conf it seems we missed the embedded talk (was elcritch working on one?). are there pointers on stuff you are doing or you can share the name of your company?
- girvo 4y agoYeah elcritch was I thought but I also think he was super busy sadly :( https://www.venturi.io/ https://www.venturi.io/ That’s us! I’m hoping that now we have some devices out in the field in customers hands I can take some time to write some things up on it all — that’s if adding CANBUS support doesn’t kill me first anyway
- pietroppeter 4y agoyeah that happens, no worries. he will catch up on next occasion (next one might be Fosdem in February but it will be in person and so a bit out of reach for him, likely also for you?). Nice site! Looking forward for a write up (especially since that would have meant you survived support)
- jadbox 4y agoDoes anyone have experience with Nim and Zig that can talk about which use-cases each works better for?
- Symmetry 4y agoI've only used Nim but generally if you can use a garbage collected language you should in most cases but there are many cases where you can't, reasonably, and so we have languages like Zig, Rust, C, etc. Unless you're going to be doing something very sensitive to performance to the extent that you were going to be thinking carefully about memory lifetimes anyways.
- k__ 4y agoIsn't the GC of Nim optional?
- spijdar 4y agoOptional, though the language and standard library are kind of designed around it. So I'd say Nim can be used without the GC, but is optimized with the idea that you'll use the GC by default, with escape hatches for manual allocation when you need the power for performance or efficiency, e.g. manually managing big blocks of memory for tight loops. Contrast to a language like Zig, which has a standard library and syntax built around the idea of manual allocators and what not, but is missing the "ease of use" of GC. Personally, I agree with GP, and like Nim's compromise of GC with a "I know better, let me do it manually" syntax, but there are domains where you want a language like Zig.
- auxym 4y agoCorrect. I'd add that with ARC (or ORC even), there's little reason to do manual memory management (alloc/free), even for embedded systems. ARC is an automatic memory management system based on reference counting, but there's no "runtime". It actually injects alloc and free calls at compile-time based on static analysis. ORC adds runtime GC only for cycles, and will be the default in Nim 2.0.
- Cwizard 4y agoAnyone here used Nim for a bigger project? What was your experience like?
- girvo 4y agohttps://news.ycombinator.com/item?id=33287817 https://news.ycombinator.com/item?id=33287817 You bet I have! What would you like to know beyond that comment?
- generichuman 4y agoWhat's your debugging experience like? i.e. The tools you use, do you have to debug the C output, etc.
- girvo 4y agoBecause I live in embedded land, I use the compileOnly C output. What’s really nice about that though is with debugger:native enabled, it embeds source-map comments in the C back to the Nim lines they tie to! All in VSCode with gdb (and OpenOCD). This gives me full interactive debugging, breakpoints etc of the Nim source directly — including via a JTAG from the ESP32 itself :) it’s super nice, considering none of the tools internally were built for Nim haha. The #Line macro is surprisingly powerful in C debugging land it turns out If you’re doing desktop/non embedded stuff it’s even easier, and you can also enable useMalloc and run Nim programs through the Valgrind suite easily
- pietroppeter 4y agosee also this talk by Mamy (taken from last year nim conf) to see the experience of using it in production in status (main sponsor of nim): https://www.youtube.com/watch?v=5wljNaPkU7M&list=PLxLdEZg8DRwRXNrY7yyGU0-g_GRSyRGKo&index=8 https://www.youtube.com/watch?v=5wljNaPkU7M&list=PLxLdEZg8DR...
- ThomasTJdev 4y agoWe use it at www.cxplanner.com for a mix of micro/mono-services. Statically typed and good compile time combined with really fast code makes Nim perfect for us.