00:36:39 | FromDiscord | <mr_rowboto> In reply to @aintea "Is there any way": Throuc Cursor |
00:36:45 | FromDiscord | <mr_rowboto> (edit) "Throuc" => "Through" |
00:36:59 | FromDiscord | <mr_rowboto> But you'd have to pay. |
01:01:49 | * | end quit (Ping timeout: 252 seconds) |
01:02:10 | * | bcksl quit (Ping timeout: 260 seconds) |
01:26:11 | * | bcksl joined #nim |
01:35:21 | * | end joined #nim |
01:40:36 | * | GnuYawk1 quit (Quit: The Lounge - https://thelounge.chat) |
01:41:33 | * | GnuYawk1 joined #nim |
01:45:43 | * | xet7 joined #nim |
03:39:25 | FromDiscord | <dawidek.2137> Ai in general just can’t deal with nims awesomeness |
03:40:26 | FromDiscord | <dawidek.2137> But it can find obscure bugs and write a nontrivial program from scratch in other languages 🤠 |
03:51:49 | * | xet7 quit (Ping timeout: 248 seconds) |
04:40:52 | * | xet7 joined #nim |
04:48:18 | * | xet7 quit (Remote host closed the connection) |
04:57:28 | * | xet7 joined #nim |
06:06:45 | * | nils` quit (Ping timeout: 252 seconds) |
06:28:52 | * | skippy8 joined #nim |
07:11:02 | FromDiscord | <heysokam> claude does fine on nim |
07:11:16 | FromDiscord | <heysokam> try it on augment/cursor, and you'll see |
07:18:49 | * | nils` joined #nim |
07:45:24 | * | redj quit (Remote host closed the connection) |
07:46:46 | * | redj joined #nim |
07:56:07 | * | ntat joined #nim |
09:09:06 | * | jjido joined #nim |
09:31:45 | FromDiscord | <tauruuuuuus> In reply to @aintea "Is there any way": It didn't ask me one when using a Google account |
09:31:53 | FromDiscord | <tauruuuuuus> Just create a new one just for it lol |
09:35:08 | FromDiscord | <aintea> yeah I need a phone number for creating a google account |
09:51:26 | FromDiscord | <aintea> Claude is hallucinating stuff even I couldn't on 3 hours of sleep and hard drugs |
09:51:51 | FromDiscord | <aintea> I'm coming to the conclusion all Nim devs are safe from AI taking our non-existent jobs |
10:39:04 | * | jjido quit (Quit: My laptop has gone to sleep. ZZZzzz…) |
10:51:40 | FromDiscord | <janakali> In reply to @tauruuuuuus "It didn't ask me": It did ask me for phone number, even with google sign-in. Because it's not available in my country, I had to pay for a temporary sms service - about $0.2 |
10:51:55 | FromDiscord | <0xfab_10> nim devs are safe from nim jobs |
10:52:29 | FromDiscord | <tapeda> Anyone else do more vibe-learning than vibe-coding with the llms? Like instead of a textbook u can learn just enough to test your understanding with an implementation |
10:53:39 | FromDiscord | <janakali> And yeah, Claude is not capable of writing good code. It is one of few LLMs that write code that compiles, but quality is unusable. |
10:53:55 | FromDiscord | <janakali> Deepseek is slightly better. |
10:54:36 | FromDiscord | <lainlaylie> the LLM that god designed and gave to all of us for free remains superior |
11:23:39 | FromDiscord | <aintea> In reply to @janakali "It did ask me": Here's a tip: create a Google account from a phone |
11:23:48 | FromDiscord | <aintea> It won't ask you for a phone number nor register your actual number |
11:24:27 | FromDiscord | <aintea> In reply to @janakali "Deepseek is slightly better.": ChatGPT is miles above in terms of writing macros |
11:24:37 | FromDiscord | <aintea> At least it wrote a macro that somewhat worked |
12:00:17 | FromDiscord | <janakali> In reply to @aintea "Here's a tip: create": I know about this, but most companies won't let you use google account without verified phone number. And Claude specifically, asks you for phone number whether google account has it or not.↵Almost like they don't care about 'spam and abuse', but want need it to track you. |
12:00:24 | FromDiscord | <janakali> (edit) removed "want" |
12:00:37 | FromDiscord | <aintea> chatgpt doesn't, nor claude |
12:00:48 | FromDiscord | <aintea> (edit) "chatgpt doesn't, nor ... claude" added "does" |
12:04:42 | FromDiscord | <janakali> Maybe it didn't ask you, but it asked me and some other people. Random blogpost:↵https://expatinuk.medium.com/my-claude-sign-up-story-ddc6725e40ea↵> First, I decided to take the Google sign-in route — a simple enough choice, right? Wrong. After linking my account, I landed on a page asking for my phone number and birth date. Easy peasy, or so I thought. |
12:52:57 | * | jjido joined #nim |
13:20:10 | * | o-rwx joined #nim |
13:50:53 | * | beholders_eye joined #nim |
14:42:10 | * | jjido quit (Quit: My laptop has gone to sleep. ZZZzzz…) |
14:59:56 | * | xet7 quit (Remote host closed the connection) |
15:16:06 | * | ntat quit (Quit: leaving) |
15:16:55 | * | ntat joined #nim |
15:22:36 | * | beholders_eye quit (Ping timeout: 268 seconds) |
15:26:23 | * | jjido joined #nim |
16:10:24 | * | ftajhii joined #nim |
16:28:36 | FromDiscord | <nova3e> I have some questions about the Nim prog-lang |
16:30:07 | FromDiscord | <nova3e> (edit) "the Nim prog-lang" => "Nim↵(Btw I'm not even a beginner in programming as a whole, let alone Nim)↵Is it unique in compiling down to other languages first, then going from there to assembly?" |
16:35:45 | FromDiscord | <Phil> In reply to @nova3e "I have some questions": Strictly speaking not quiiiiite.↵Typescript compiles to javascript which gets interpreted into machine code |
16:36:24 | FromDiscord | <Phil> Off the cuff I can't recall another language that does a transpilation-step to C, but honestly that's not saying too much. It's neither too crazy an idea, nor all that much out there. |
16:36:34 | FromDiscord | <Phil> (edit) "all that much out there." => "super common" |
16:37:36 | FromDiscord | <Phil> From a compilation perspective, there's just a ton of intermediate representations.↵The nim compiler goes nim code => Nim's Internal intermediate representation => C , after which gcc/clang or the like take it and go C => Whatever IR the compiler builds up => machine code |
16:38:06 | FromDiscord | <Phil> Instead of C it could've just as well gone to some LLVM (from my limited understanding of compilers) and gone to binary from there |
16:38:20 | FromDiscord | <Phil> (edit) "there" => "there. Effectively it just uses C as one of many IR steps along the way to machine code" |
16:38:34 | FromDiscord | <Phil> (IR = Intermediate Representation) |
16:39:16 | FromDiscord | <Phil> (edit) "(from" => "IR(from" |
16:39:32 | FromDiscord | <nova3e> Wow thanks for the details |
16:39:47 | FromDiscord | <nova3e> I'd never heard of IR before |
16:40:06 | FromDiscord | <Phil> Sidenote, transpilation and compilation are very blurry distinctions so you might as well use them interchangeably to some degree. |
16:40:07 | FromDiscord | <nova3e> Is it like bytecode of Java |
16:40:41 | FromDiscord | <nova3e> (edit) "it" => "IR" |
16:43:29 | FromDiscord | <Phil> sent a long message, see https://pasty.ee/TuLcmZMe |
16:43:32 | FromDiscord | <Phil> (edit) "https://pasty.ee/iOKAiElB" => "https://pasty.ee/GSDkpWuT" |
16:45:00 | FromDiscord | <Phil> In the end, almost everything gets translated from one format into another format, the differences are just which specific formats and when (compile-time vs. run-time).↵The path from source code to machine code almost always leads through multiple IR formats. Some of those formats may be human readable (like how nim uses C as an IR), or not (java bytecode I think is not human readable). |
16:45:24 | FromDiscord | <Phil> (edit) "formats." => "formats and translation steps from one to the next." |
16:46:19 | FromDiscord | <Phil> An interesting difference between Java Bytecode and JS for example here is that JS actually is human readable. |
16:46:45 | FromDiscord | <Phil> (edit) "An interesting difference between Java Bytecode and JS for example here is that JS actually is human readable. ... " added "When it gets interpreted it likely also has a lot more translation steps under the hood until it reaches machine code than java does" |
16:46:56 | FromDiscord | <Phil> (edit) "An interesting difference between Java Bytecode and JS for example here is that JS actually is human readable. When it gets interpreted it likely also has a lot more translation steps under the hood until it reaches machine code ... than" added "at runtime" |
16:46:59 | FromDiscord | <Phil> (edit) "An interesting difference between Java Bytecode and JS for example here is that JS actually is human readable. When it gets interpreted it likely also has a lot more translation steps under the hood until it reaches machine code at runtime than java ... does" added "bytecode" |
16:47:18 | FromDiscord | <nova3e> In reply to @isofruit "From a high level": Thanks for this! I think I finally understand JIT and Aheadoftime |
16:47:39 | FromDiscord | <nova3e> Are you a teacher?? |
16:47:46 | FromDiscord | <Phil> Not really 😄 |
16:48:49 | FromDiscord | <Phil> Given how much I ramble judging by those close to me when I explain them more technical things I'd honestly be a terrible teacher 😄 |
16:48:56 | FromDiscord | <nova3e> In reply to @isofruit "An interesting difference between": Yes yes this! So interesting... |
16:49:08 | FromDiscord | <nova3e> Doesn't this mean a team of 2 programmers, each of whom knows only 1 language (JS xor TS) can collaborate on a single source code? |
16:49:46 | FromDiscord | <nova3e> Unless we never get the middle language..? |
16:51:31 | FromDiscord | <0xfab_10> they could but it would be messy tbh |
16:51:36 | przmk | You don't usually work on the transpiled output |
16:52:07 | FromDiscord | <Phil> sent a long message, see https://pasty.ee/soGpoZxj |
16:52:09 | FromDiscord | <Phil> (edit) "https://pasty.ee/qCsdOgTB" => "https://pasty.ee/NbYKjLxj" |
16:52:34 | FromDiscord | <Phil> (edit) "https://pasty.ee/vQNMHvDa" => "https://pasty.ee/nhuOcwTh" |
16:52:38 | FromDiscord | <nova3e> In reply to @fabric.input_output "they could but it": Ah right it's not going to have any comments wow |
16:53:23 | FromDiscord | <0xfab_10> if you put js in there intentionally you're forsaking all the benefits you'd get from typescript |
16:53:36 | FromDiscord | <Phil> It also comes into play that TS and JS are basically identical, TS just has the added benefit of an opt-in typesystem, so typically even if you only barely use TS, everbody in a codebase uses TS files |
16:55:08 | FromDiscord | <nova3e> In reply to @isofruit "*Theoretically* it's possible (assuming": Is the JavaScript code not inefficient due to being garbled then? Also unmaintainable |
16:55:09 | FromDiscord | <Phil> So it's both practically painful to work on the output from compiled TS files, as well as pointless to have one person work in TS files and another in JS files when syntactically there is very little reason for the JS person to stick with JS files |
16:55:49 | FromDiscord | <nova3e> Sorry for the stupid question there |
16:56:23 | FromDiscord | <Phil> sent a code paste, see https://play.nim-lang.org/#pasty=xZAHHJmb |
16:56:46 | FromDiscord | <nova3e> Wow yes that too |
16:57:16 | FromDiscord | <Phil> And as for maintenance - You wouldn't need to worry about maintaining the JS code as nobody works on it, you only work on the TS files "upstream" that produce the JS code |
16:57:25 | FromDiscord | <nova3e> In reply to @nova3e "Wow yes that too": But the computer doesn't care yeah? Cool |
16:57:28 | FromDiscord | <Phil> And those TS files can look as readable and be as maintainable as you manage to write the code |
16:58:27 | FromDiscord | <nova3e> Awesome, so you always work with the better language, and not have to get dirty with the lower language...hmm kind of like binary code |
16:58:56 | FromDiscord | <nova3e> better as in readable and easier to work with |
16:59:08 | FromDiscord | <Phil> In reply to @nova3e "But the computer doesn't": Pretty much. I think theoretically this could also happen (and maybe does happen) in IR steps inside a normal compiler, because there's no reason why a binary would need a human readable string to refer to another function when it can just have some way more quickly interpretable binary pattern or the like |
16:59:39 | FromDiscord | <Phil> I'm pretty sure some compilers just straight up inline functions, as in they copy paste the contents of a function inside another function to save you the overhead of a function call |
16:59:46 | FromDiscord | <Phil> (edit) "functions," => "functions when possible," |
17:00:44 | FromDiscord | <nova3e> Fascinating stuff |
17:01:25 | FromDiscord | <Phil> Compilers are a mind melter in terms of complexity |
17:01:30 | FromDiscord | <nova3e> Programming! But sadly I haven't written a single real program yet.↵Maybe it'll be in Nim? Hmm |
17:02:38 | FromDiscord | <nova3e> Have you listened to that talk Ben Thompson gave in which he talks about McIlroy? |
17:03:13 | FromDiscord | <nova3e> Man was hand compiling |
17:03:18 | FromDiscord | <nova3e> _Mentally_ |
17:04:26 | FromDiscord | <nova3e> (edit) "Ben" => "Ken" |
17:05:26 | FromDiscord | <Phil> Can't say I have, but there's such a wide field of knowledge out there it's pretty much impossible to know it all |
17:05:49 | FromDiscord | <Phil> Even in the space of webdev alone, which narrows it down significantly, it's impossible to know it all |
17:24:29 | * | jjido quit (Quit: My laptop has gone to sleep. ZZZzzz…) |
17:37:51 | * | jjido joined #nim |
18:04:50 | FromDiscord | <nova3e> Is there any introduction to programming that uses Nim? |
18:13:06 | FromDiscord | <rakgew> @nova3e \: when coming from python, I would say is very easy to transition into nim. of course there are real differences, but at least some basic concepts and the syntax will feel familiar. |
18:13:36 | FromDiscord | <nova3e> Sweet |
18:14:31 | FromDiscord | <nova3e> I think python is suitable for beginners |
18:14:47 | FromDiscord | <nova3e> Not many strange symbols |
18:15:40 | FromDiscord | <nova3e> I wonder why there isn't (as far as I know) some kind of syntax translater for every language |
18:16:03 | FromDiscord | <nova3e> (edit) "I wonder why there isn't (as far as I know) some kind of syntax translater for every language ... " added "that people complain about, given how much people do" |
18:28:43 | FromDiscord | <rakgew> right, very readable syntax, both of them. |
18:44:10 | * | beholders_eye joined #nim |
18:45:18 | FromDiscord | <aintea> In reply to @nova3e "Is there any introduction": I don't think that's a thing, the best language to transition to Nim is Nim itself |
18:45:38 | FromDiscord | <aintea> If you need an introduction to programming that uses Nim I'm making one in the form of rustlings |
18:47:01 | FromDiscord | <rakgew> indeed, starting directly with nim would save the extra effort of transitioning. |
18:54:54 | * | andy-turner joined #nim |
19:04:20 | * | beholders_eye quit (Ping timeout: 272 seconds) |
19:14:12 | FromDiscord | <tauruuuuuus> In reply to @nova3e "Is there any introduction": I think you really appreciate nim if coming from C imho |
19:19:21 | FromDiscord | <aintea> You appreciate any language if you come from C |
19:19:31 | FromDiscord | <rakgew> lol |
19:19:56 | FromDiscord | <rakgew> I would not want C as first language tbh |
19:21:53 | FromDiscord | <nova3e> In reply to @aintea "If you need an": Awesome! |
19:23:17 | FromDiscord | <nova3e> Wait a minute, is rustlings aimed toward absolute beginners? No need to know a language already? |
19:33:41 | FromDiscord | <explosiveend> In reply to @nova3e "Wait a minute, is": i dont think it's for absolute beginners... it's designed to be used in parallel to reading the rust book, so it'll probably make some assumptions that you understand how some basic aspects of programming work e.g. what a variable / function is |
19:34:14 | FromDiscord | <aintea> In reply to @nova3e "Wait a minute, is": nope |
19:34:30 | FromDiscord | <aintea> it's made to be for absolute beginners or people with previous knowledge |
19:34:50 | FromDiscord | <aintea> for people with previous knowledge, it'll be like 1h30 until they know 80% of the language, it's made for that |
19:35:05 | FromDiscord | <aintea> and for absolute beginners it depends how fast they understand concepts |
19:39:38 | * | andy-turner_ joined #nim |
19:40:28 | * | andy-turner_ quit (Client Quit) |
19:46:16 | * | xet7 joined #nim |
19:50:24 | FromDiscord | <nova3e> That's great |
19:51:01 | FromDiscord | <nova3e> I think then Nim should be a good mid-term goal then, after python |
19:51:49 | FromDiscord | <nova3e> I read that python people say that it's got batteries included |
19:52:05 | * | andy-turner quit (Read error: Connection reset by peer) |
19:53:03 | FromDiscord | <nova3e> Maybe Nim could be the a tool I should look into when I need to go into a lower language (which doesn't come with batteries) |
19:53:07 | * | andy-turner joined #nim |
20:01:56 | * | beholders_eye joined #nim |
20:03:10 | FromDiscord | <tauruuuuuus> In reply to @rakgew "I would not want": I think it's the best first language if you really want to understand how programming/computers work |
20:05:57 | FromDiscord | <aintea> In reply to @rakgew "I would not want": In theory it's the best, in practice some people need to be able to do stuff and enjoy programming, and in this case python is better |
20:07:16 | FromDiscord | <tauruuuuuus> I mean I think the having fun bit is so subjective, there is no discussion there since it's personal |
20:10:39 | FromDiscord | <aintea> people tend to learn faster and better when they have fun |
20:10:51 | FromDiscord | <aintea> that's a fact, some people don't care, some people |
20:10:53 | FromDiscord | <aintea> (edit) "that's a fact, some people don't care, some people ... " added "do" |
20:11:18 | * | PMunch joined #nim |
20:12:42 | FromDiscord | <tauruuuuuus> Yes but what are you learning is also important, I agree that programming is best learned when having fun, but I also think it's best to really understand what happens in your machine if you want to really learn this trade |
20:13:41 | FromDiscord | <tauruuuuuus> Once you have knowledge of that and you are aware of the basics, you can have even more fun by being aware of what happens when you type stuff into your editor and then execute it 😛 |
20:14:16 | * | andy-turner_ joined #nim |
20:15:10 | * | andy-turner quit (Read error: Connection reset by peer) |
20:45:35 | * | andy-turner__ joined #nim |
20:45:49 | * | andy-turner_ quit (Read error: Connection reset by peer) |
20:47:02 | * | beholders_eye quit (Ping timeout: 265 seconds) |
20:49:09 | FromDiscord | <tapeda> In reply to @isofruit "Off the cuff I": the worlds most unhinged meta-programming language does too ofc! Seed7, you even begin by importing the language itself, that way always specifying its version |
21:08:41 | * | andy-turner joined #nim |
21:09:28 | * | andy-turner quit (Remote host closed the connection) |
21:10:15 | * | andy-turner__ quit (Quit: Leaving) |
21:11:57 | * | andy-turner joined #nim |
21:12:25 | * | andy-turner quit (Client Quit) |
21:12:42 | * | andy-turner joined #nim |
21:13:57 | * | andy-turner quit (Client Quit) |
21:24:21 | * | ntat quit (Quit: leaving) |
21:36:42 | * | PMunch quit (Quit: Leaving) |
21:54:39 | FromDiscord | <nervecenter> In reply to @isofruit "Off the cuff I": chicken scheme |
21:56:38 | FromDiscord | <nervecenter> In reply to @tauruuuuuus "I think it's the": It's great for understanding how memory is laid out and used between programs and the OS, but to actually understand how things are working at a hardware level, we're getting into another half dozen levels of abstraction and cache wherein C ends up being a high level language. |
21:57:10 | FromDiscord | <nervecenter> (edit) "language." => "language full of high-level abstractions." |
21:57:40 | FromDiscord | <nervecenter> Embedded contexts reduce the number of layers there of course |
22:13:55 | * | jjido quit (Quit: My laptop has gone to sleep. ZZZzzz…) |
22:53:59 | * | o-rwx quit (Quit: WeeChat 4.6.3) |
23:00:54 | * | redj quit (Ping timeout: 260 seconds) |
23:26:26 | tokyovigilante | Hey team, is there a preferred approach to task-level parallellism in Nim? I've been using asyncdispatch with libs like curl that are using threads externally, but if I want to parallelise chunks of work in my own code, is something like enkits (https://github.com/dougbinks/enkiTS) the way to go, or are there better native libs? I got very spoiled by GCD/libdispatch when I was using Swift |
23:31:21 | tokyovigilante | Or maybe something more like FastStreams (https://github.com/status-im/nim-faststreams). I'm working on a scientific visualisation app that needs to stream in fairly large resources in chunks to render, and refine them either on CPU or GPU as the dataset is loaded and being manipulated in real time |