| 00:16:03 | * | beholders_eye quit (Quit: WeeChat 4.6.3) |
| 00:51:34 | FromDiscord | <nelson554> I’ll help the first 10 people on how to earn $100k or more within 72hours from the Crypto Market, but you’ll pay me a 10% of your profit when you receive it. Ask me how!! |
| 00:51:37 | FromDiscord | <nelson554> If interested, send me a direct message. For more information…contact via.. TG ↵@Nelsonowen001↵https://t.me/Nelsonowen001 |
| 01:01:32 | FromDiscord | <mjsdev> sent a code paste, see https://play.nim-lang.org/#pasty=HhSgdGhl |
| 01:32:03 | FromDiscord | <Robyn [She/Her]> In reply to @mjsdev "You know what's not": doed `:=` do something like `var x: Dynamic = dynamicVal(1)`? |
| 01:32:24 | FromDiscord | <mjsdev> yes |
| 01:32:35 | FromDiscord | <Robyn [She/Her]> and then you have a converter for `=` too? |
| 01:32:49 | FromDiscord | <mjsdev> Yes, although there's some limitations there |
| 01:32:57 | FromDiscord | <mjsdev> namely `[]` |
| 01:32:57 | FromDiscord | <Robyn [She/Her]> mhm fair |
| 01:33:05 | FromDiscord | <mjsdev> which is <empty> and apparently there's no way to figure that out |
| 01:33:14 | FromDiscord | <Robyn [She/Her]> ...empty? |
| 01:33:30 | FromDiscord | <mjsdev> Yeah, like I can't convert an empty array to anything |
| 01:33:33 | FromDiscord | <mjsdev> so far as I can tell |
| 01:33:41 | FromDiscord | <Robyn [She/Her]> ohhh yeah that makes sense |
| 01:33:45 | FromDiscord | <mjsdev> There's no way to even check if it is an empty array |
| 01:34:06 | FromDiscord | <Robyn [She/Her]> empty arrays (`[]`) just don't have a type so Nim can't do anything |
| 01:34:14 | FromDiscord | <Robyn [She/Her]> it's relying on type inference |
| 01:35:14 | FromDiscord | <mjsdev> Yeah, but you'd figure there'd be some way to detect that it's actually empty |
| 01:35:52 | FromDiscord | <mjsdev> Like, it can call the array converter if a add T: auto |
| 01:36:19 | FromDiscord | <Robyn [She/Her]> sent a code paste, see https://play.nim-lang.org/#pasty=bnDNnZTH |
| 01:36:47 | FromDiscord | <mjsdev> sent a code paste, see https://play.nim-lang.org/#pasty=IwQebZam |
| 01:36:49 | FromDiscord | <Robyn [She/Her]> then `array[]` would return an empty dynamic array |
| 01:37:13 | FromDiscord | <Robyn [She/Her]> (it would be so hacky idk if it'd work, and it's probably just bad) |
| 01:37:50 | FromDiscord | <Robyn [She/Her]> sent a code paste, see https://play.nim-lang.org/#pasty=RoGJTkpE |
| 01:38:01 | FromDiscord | <Robyn [She/Her]> but yeah looks good |
| 01:38:24 | FromDiscord | <mjsdev> `var test = ~[]` works using a ~ macro which is a shorthand when not using the := syntax |
| 01:38:42 | FromDiscord | <Robyn [She/Her]> that makes sense yeah |
| 01:38:53 | FromDiscord | <Robyn [She/Her]> i assume untyped AST, that's why |
| 01:41:01 | FromDiscord | <mjsdev> You can use empty tuples for an array too with the type:↵↵`var test: dyn = ()` |
| 01:58:50 | * | nyeaa49284230101 joined #nim |
| 02:21:03 | FromDiscord | <Robyn [She/Her]> neat then |
| 03:13:24 | * | rockcavera quit (Remote host closed the connection) |
| 03:24:57 | FromDiscord | <mjsdev> sent a code paste, see https://play.nim-lang.org/#pasty=njsNKmxR |
| 03:25:23 | FromDiscord | <mjsdev> (edit) "https://play.nim-lang.org/#pasty=JfhnDKNR" => "https://play.nim-lang.org/#pasty=onCUEjao" |
| 03:27:38 | FromDiscord | <mjsdev> sent a code paste, see https://play.nim-lang.org/#pasty=TgfVwVbL |
| 05:08:07 | FromDiscord | <mjsdev> sent a code paste, see https://play.nim-lang.org/#pasty=XickKWZb |
| 05:32:43 | * | xet7 joined #nim |
| 06:16:13 | * | nyeaa49284230101 quit (Quit: Ping timeout (120 seconds)) |
| 06:16:30 | * | nyeaa49284230101 joined #nim |
| 06:16:35 | * | xet7 quit (Remote host closed the connection) |
| 06:26:04 | * | xet7 joined #nim |
| 08:01:29 | * | Mister_Magister_ joined #nim |
| 08:01:44 | * | Mister_Magister quit (Ping timeout: 240 seconds) |
| 08:04:29 | * | Mister_Magister_ is now known as Mister_Magister |
| 08:04:31 | FromDiscord | <pmunch> In reply to @gokr "<@392962235737047041> So in general": Hmm, have to give it another go then! What's this CLAUDE.md by the way? |
| 08:06:20 | FromDiscord | <gokr> When you use Claude Code (CLI tool you download and run in terminal) it reads that markdown file to get specific instructions and rules you want it to follow specifically for Nim and your repo |
| 08:07:44 | FromDiscord | <gokr> I use the 20usd/month subscription from Anthropic. It gives X requests/5h period. Great for non professional use |
| 08:08:42 | FromDiscord | <gokr> You can however point Claude Code to other LLMs than Claude, if you want to go a bit outside of the box. |
| 08:12:46 | FromDiscord | <nnsee> maybe i should try claude code out. everyone seems to be praising it |
| 08:13:50 | * | Mister_Magister_ joined #nim |
| 08:14:01 | * | Mister_Magister quit (Ping timeout: 255 seconds) |
| 08:16:48 | * | Mister_Magister_ is now known as Mister_Magister |
| 08:33:45 | FromDiscord | <gokr> It is very good. I am working on a Claude Code "clone" in Nim, and it has a lot of functionality working but not yet usable 🙂 But yeah, try Claude Code, I think you will be surprised. |
| 09:40:53 | * | beholders_eye joined #nim |
| 10:16:09 | * | beholders_eye quit (Ping timeout: 252 seconds) |
| 10:50:56 | * | beholders_eye joined #nim |
| 11:39:41 | * | xet7 quit (Quit: Leaving) |
| 11:45:43 | * | beholders_eye quit (Ping timeout: 256 seconds) |
| 12:09:25 | * | beholders_eye joined #nim |
| 12:23:07 | * | beholders_eye quit (Ping timeout: 264 seconds) |
| 12:39:01 | FromDiscord | <nasuray> In reply to @nnsee "maybe i should try": I wasted time watching it burn through tokens only to have to implement a feature myself anyways 🤷♀️ |
| 12:47:14 | * | beholders_eye joined #nim |
| 13:02:01 | FromDiscord | <mjsdev> In reply to @nasuray "I wasted time watching": This is basically all AI in my experience. They're much better as glorified search engines, and even there, I spend about 25% of time validating if their "results" are even real. |
| 13:09:43 | FromDiscord | <janakali> Worst part about non-local AI is that you have zero control of it. |
| 13:09:52 | FromDiscord | <janakali> One day it works great, the next day it starts to compliment your every message. |
| 13:10:03 | FromDiscord | <janakali> On the third day - it gets lobotomized and start doing the silliest mistakes that it never did before. |
| 13:10:19 | FromDiscord | <mostypc123> true |
| 13:10:38 | FromDiscord | <mjsdev> I'm still not seeing the "one day it works great" part -- one day it works mediocre. |
| 13:10:55 | FromDiscord | <mostypc123> the worst thing abt vibecoding is like, its sayingomg i finished your omg feature wowoand it doesnt even compile |
| 13:10:59 | FromDiscord | <mjsdev> Especially on nim, which is far more obscure relative to other things. |
| 13:11:51 | FromDiscord | <mostypc123> and when vibecoding get ready the ai is gonna remove every second feature when adding a new one |
| 13:12:00 | FromDiscord | <mostypc123> lol |
| 14:16:47 | FromDiscord | <nasuray> In reply to @janakali "On the third day": and on the fourth day it says "ya maybe you should kill yourself" |
| 16:14:51 | FromDiscord | <dromedariodechapeu> sent a code paste, see https://play.nim-lang.org/#pasty=xBGInZYT |
| 16:19:49 | FromDiscord | <nasuray> that's not the error on the playground https://play.nim-lang.org/#pasty=aLhbnBAz though? did you mean to use `rand(100..1000)` |
| 16:21:52 | FromDiscord | <dromedariodechapeu> yes, this was the problem |
| 16:22:29 | FromDiscord | <nasuray> sent a code paste, see https://play.nim-lang.org/#pasty=WxVAJfAq |
| 17:04:41 | FromDiscord | <rakgew> tbh I like the explicit return quite a bit more - and the more complex a proc get the more I like it when the returns are clear and explicit. (-\: |
| 17:30:06 | FromDiscord | <arnetheduck> sent a code paste, see https://play.nim-lang.org/#pasty=CcJdcJpY |
| 17:31:38 | FromDiscord | <arnetheduck> (edit) "https://play.nim-lang.org/#pasty=aLBfnfLQ" => "https://play.nim-lang.org/#pasty=aILlFSUr" |
| 17:56:26 | FromDiscord | <rakgew> ok, when it is basically a one-liner I could live without an explicit return.. (-; |
| 17:56:26 | FromDiscord | <mjsdev> sent a code paste, see https://play.nim-lang.org/#pasty=ElpiDGOU |
| 18:03:52 | FromDiscord | <kiloneie> About AI: There is also the point of, i want to make something on my own, my own thing. Asking someone else to do it, defeats the purpose, and they will never make it like you would. The larger the project gets, the more lost in it you will get, when it's not yours. And so on... |
| 18:04:21 | FromDiscord | <kiloneie> Last thing: You also skip learning anything. |
| 18:04:43 | FromDiscord | <kiloneie> Those who don't learn from their mistakes, are doomed to repeat them. |
| 18:12:09 | FromDiscord | <rakgew> Kiloneie (Kiloneie) very much agree on the llm topic from both angles\:↵● as one who has the "pleasure" to sometimes review llm'd code, that authors submit, who then do not know what their code does.↵● from own attempts to get something written and realizing the amount of time wasted and finally writing it by myself. |
| 18:24:37 | FromDiscord | <mjsdev> sent a code paste, see https://play.nim-lang.org/#pasty=GbydVQee |
| 18:24:57 | FromDiscord | <mjsdev> so `x` becomes null when you shift the last item off it. |
| 18:28:04 | FromDiscord | <mjsdev> I guess for consistency the original `a` would need to be null... |
| 18:30:06 | FromDiscord | <mjsdev> So when I shift onto a, it becomes an array (just as if a were a scalar, shifting onto it would make it an array with the the first item being the scalar, and the second being the value shifted). |
| 19:11:42 | * | beholders_eye quit (Ping timeout: 256 seconds) |
| 19:44:13 | * | xtr00 quit (Ping timeout: 250 seconds) |
| 19:47:21 | * | xtr00 joined #nim |
| 19:56:17 | FromDiscord | <System64 ~ Flandre Scarlet> Hi, is it more efficient to use inheritance with methods, objects variants with function pointers embedded into object or object variants but using big switch statements? |
| 19:57:47 | * | beholders_eye joined #nim |
| 19:59:41 | FromDiscord | <Elegantbeef> Methods without an experimental flags are just a big switch statement |
| 20:01:40 | FromDiscord | <System64 ~ Flandre Scarlet> In reply to @Elegantbeef "Methods without an experimental": I thought they used vtable |
| 20:05:36 | FromDiscord | <System64 ~ Flandre Scarlet> Ref objects are still annoying for cache locality |
| 20:18:57 | FromDiscord | <0xfab_10> patch the runtime to use a moving generational garbage collector |
| 20:25:54 | FromDiscord | <gokr> sent a long message, see https://pasty.ee/MnZPjUTt |
| 20:26:13 | FromDiscord | <gokr> (edit) "https://pasty.ee/NRcSXtXe" => "https://pasty.ee/JtjrQPmt" |
| 20:51:47 | FromDiscord | <Elegantbeef> I'm also a silly guy that prefers using hand tools when doing wood working, so I'm just generally mentally wired aginst it |
| 20:51:47 | FromDiscord | <Elegantbeef> I do not see the fun in that |
| 20:51:48 | FromDiscord | <Elegantbeef> My answer is I like the process and do not like skipping it |
| 20:51:48 | FromDiscord | <rakgew> I do see the fun in trying out something completely out of ones comfort zone, but then I am even more at a loss and frankly also annoyed to spend my time on uncovering llm-halluzinations.. |
| 20:51:48 | FromDiscord | <Elegantbeef> AI skip the fun I find |
| 20:51:50 | FromDiscord | <rakgew> I have seen it on a stream writing countless annoying tests, but even then the dev had to correct quite a few of them.. |
| 20:51:50 | FromDiscord | <Elegantbeef> Hence it's garbage and I dislike it |
| 20:51:50 | FromDiscord | <rakgew> well I went into it somewhat open minded, but the experience was not great at all. but I am also fascinated to hear from a few respectable programmers, that they get good results from it. |
| 20:51:52 | FromDiscord | <Elegantbeef> Stumbling and learning is fun |
| 20:52:15 | FromDiscord | <Elegantbeef> Skipping to something that works that you might not grok is not fun |
| 20:52:38 | FromDiscord | <rakgew> yes - there I completely agree\: for learning I uch prefer doing the mistakes myself |
| 21:12:36 | FromDiscord | <mjsdev> I think the basic problem is the range of what "using AI" can cover... I treat AI like I would have treated "the internet" more broadly (before). I treat its output with the same skepticism I treat lesser rated Stack Overflow answers. In that regard, it works great far better than searching google. |
| 21:12:48 | FromDiscord | <mjsdev> (edit) "great far" => "great--far" |
| 21:13:32 | FromDiscord | <mjsdev> From that, I too have learned a lot, probably solved problems faster (although also definitely took more time sometimes as well). |
| 21:14:14 | FromDiscord | <mjsdev> That seems a very differnet thing from "vibe coding." |
| 21:16:44 | FromDiscord | <mjsdev> Which arguably is a case where the better the AI is, the less you actually learn, and the more time it saves you, the less, you are a concern (let alone whether or not you can be amplified). |
| 21:21:32 | FromDiscord | <gokr> I mentioned it before, but sorry for doing it again since I find it such a neat example. Claude Code made https://github.com/gokr/natswrapper for me. It took 30-40 minutes in TOTAL. I only prompted it, I might have tweaked a few sentences in the README but that is it. You can look at the code, I do not see it being ... bad or anything. I find it slightly mindboggling that we can do this in November (in Nim of all things!) and it was not even |
| 21:24:12 | FromDiscord | <mjsdev> Sure, so the question is, how confident are you writing wrappers for C libs? |
| 21:24:56 | FromDiscord | <gokr> I also had Claude Code fix a bug in Futhark the other day (handling of "static const") and I do not think I would even have tried otherwise. I know it sounds ... shilling - but... I think if you are not (as a developer) learning these tools - you are in for a rough ride the next 2-3 years unless you have a very certain job position. |
| 21:25:19 | FromDiscord | <gokr> I have made some wrappers before, both with c2nim and Futhark. What do you mean? |
| 21:26:04 | FromDiscord | <mjsdev> I mean, a wrapper/bindings lib is effectively boilerplate. If you're comfortable writing them, sure it may be saving you time, may be capable at doing so, and there's few downsides. |
| 21:27:01 | FromDiscord | <mjsdev> If you've never done that, having it write that for you is probably not a great idea from a "learning" standpoint. |
| 21:27:08 | FromDiscord | <Elegantbeef> > "\>you are in for a rough ride the next 2-3 years unless you have a very certain job position. ↵> ↵↵See this is exactly what I love to see |
| 21:27:09 | FromDiscord | <gokr> I know, but did you even look at it? I asked it to also add a high level Nim idiomatic layer on top etc. Make some examples and so on. The presence example is what triggered me into making this because the existing NATS wrapper did not support the kv store etc needed for presence tracking. |
| 21:27:20 | FromDiscord | <Elegantbeef> You are forced to use this tooling else you're not a true developer |
| 21:27:21 | FromDiscord | <Elegantbeef> Nice |
| 21:27:22 | FromDiscord | <mjsdev> I did look at it. |
| 21:27:46 | FromDiscord | <mjsdev> It's a C lib API wrapper, is it not? |
| 21:28:14 | FromDiscord | <gokr> @ElegantBeef Nope, my point is - you will get run over by other developers that know how to wield the tools to their advantage. That is my strong belief. |
| 21:28:32 | FromDiscord | <mjsdev> In reply to @gokr "<@145405730571288577> Nope, my point": That's still completely illogical to me. |
| 21:28:41 | FromDiscord | <gokr> In reply to @mjsdev "It's a C lib": It is both a Futhark based C wrapper and a higher level abstraction on top of it. Not big, no. |
| 21:29:27 | FromDiscord | <mjsdev> If AI is going to fulfill its promise, you're not going to get run over by anyone, and you're just wasting your time learning it. Because it will be so good in another 2 years, it won't matter how much you know. |
| 21:29:31 | FromDiscord | <mjsdev> Everyone will be a developer. |
| 21:30:02 | FromDiscord | <mjsdev> If AI doesn't fulfill its promise, being "good at using AI" isn't going to get you anywhere, because all the dev jobs that do exist will be just doing "what AI can't do" |
| 21:31:30 | FromDiscord | <mjsdev> The more simpl reality is that the entire economy is going to crash super hard, and we're all gonna be out of work, regardless of how well we can or can't use AI. |
| 21:31:34 | FromDiscord | <mjsdev> (edit) "simpl" => "simple" |
| 21:32:48 | FromDiscord | <Elegantbeef> Oh noes I'll be ran over |
| 21:32:53 | FromDiscord | <Elegantbeef> For shame |
| 21:33:00 | FromDiscord | <Elegantbeef> At least I'll have fun |
| 21:34:01 | FromDiscord | <mjsdev> The only way you get run over is basically if AI somehow gets really good at coding, but really difficult to instruct it how to code. |
| 21:34:30 | FromDiscord | <mjsdev> Then you need to "learn how to code with AI" |
| 21:35:01 | * | rockcavera joined #nim |
| 21:35:17 | FromDiscord | <mjsdev> But at that point, it's just like a new language becoming hot... or in the web-dev world... the next major React release. |
| 21:35:33 | FromDiscord | <mjsdev> Remember when every startup was using Ruby? |
| 21:35:35 | FromDiscord | <mjsdev> lol |
| 21:35:43 | FromDiscord | <mjsdev> I was told I was gonna get run over if I didn't learn Ruby |
| 21:36:37 | FromDiscord | <mjsdev> Every few months there's something new I'm supposed to learn (or else get run over) |
| 21:36:37 | FromDiscord | <gokr> @mjsdev Well, let's agree we may disagree 🙂 I think developers/architects/whatever still have a place/role for quite a few years. But I can already say this is affecting how we hire developers now. I would in all honesty not advise hiring developers that are not learning this. And I have friends in consultant firms clearly pointing out that their customers are already demanding knowledge in this area. |
| 21:36:47 | FromDiscord | <mjsdev> Then 6 months later... no one cares about it anymore. |
| 21:37:08 | FromDiscord | <mjsdev> What does "learning this" entail for you? |
| 21:37:16 | FromDiscord | <mjsdev> How about you start there. |
| 21:37:26 | FromDiscord | <mjsdev> Like, you want me to learn what exactly, a specific tool? |
| 21:37:45 | FromDiscord | <gokr> It is a long discussion - but it sure is not " I refuse to touch or look at it, it is just crap" |
| 21:37:45 | FromDiscord | <mjsdev> Getting good at prompting a specific LLM? |
| 21:37:55 | FromDiscord | <gokr> No, of course not. |
| 21:37:57 | FromDiscord | <mjsdev> I don't know anyone who refuses to touch or look at it. |
| 21:38:05 | FromDiscord | <gokr> Hehe, I do. |
| 21:38:20 | FromDiscord | <mjsdev> I'm pretty sure they're lying or just being falsely modest. |
| 21:38:20 | FromDiscord | <gokr> I work at a company with perhaps... 150 devs. |
| 21:38:31 | FromDiscord | <mjsdev> They may refuse to use it in certain ways. |
| 21:38:52 | FromDiscord | <gokr> We have many, really sharp ones, that simply are very very skeptic. Skeptic is good of course, but not if it prevents you from even learning. |
| 21:39:25 | FromDiscord | <mjsdev> Again though... learning _what_? |
| 21:39:28 | FromDiscord | <gokr> But hey, I only have so many hours in my evening - time to hack! Sorry for the offtopic, just find it interesting. |
| 21:40:05 | FromDiscord | <gokr> Learning how to work with the agentic tools that are out there. We use several of them, and we find different use cases, different guidelines etc etc. It is a vast area. |
| 21:40:24 | FromDiscord | <gokr> We also of course learn how to integrate it into our products, but that is something else. |
| 21:41:21 | FromDiscord | <ieltan> My opinion is that the promise that AI was supposed inevitability was clearly false, but it's still a nice tool to have. Just used it to generate some docs, read it to insure consistency, tweaked some things and done. Probably saved like 30 minutes or so, it's not going to replace jobs but it's still nice to have |
| 21:41:36 | FromDiscord | <ieltan> (edit) "My opinion is that the promise that AI was supposed ... inevitability" added "to be an" |
| 21:42:10 | FromDiscord | <mjsdev> I'm just confused how telling someone to say... learn claude code would be any different from telling someone to learn a different editor/IDE. |
| 21:42:26 | FromDiscord | <gokr> Trivial example - so we have a team scratching their head over a half complicated SQL query that over time went bananas and overloaded a cluster. And then noone makes the obvious thing - ask the damn AI about the query and the changes made and how it could affect performance etc. We got a boat load of good insights in a few seconds. |
| 21:43:13 | FromDiscord | <mjsdev> I mean, did anyone even bother to analyze the query? |
| 21:43:29 | FromDiscord | <ieltan> AI is not infaillible, and complex query must be verified. The more complex the task to verify it the more questionable it becomes whether AI actually save times, just food for thoughts... |
| 21:43:32 | FromDiscord | <gokr> @mjsdev I argue it is a much more profound different ways of working etc, than a different editor. |
| 21:44:20 | FromDiscord | <mjsdev> I'm not sure it is profoundly different unless, again, you're doing the vibe coding thing. |
| 21:44:57 | FromDiscord | <gokr> But hey, agree to disagree obviously 🙂 It is profoundly different in several ways. For example, the roles in the company and the way we organize is also affected. |
| 21:46:31 | FromDiscord | <mjsdev> Yeah, I mean, we're going to have to agree to disagree, because this is so vague at this point I'm not even sure what is actually being discussed. In my experience, no one actually cares how the cake gets made unless you're another baker. |
| 21:46:51 | FromDiscord | <gokr> Yeah, well, sorry to bring it up. |
| 21:47:10 | FromDiscord | <gokr> I knew it was going ... in this direction so not sure why ... I did it 😉 |
| 21:47:23 | FromDiscord | <mjsdev> If AI actually makes devs faster for the same quality of code, then that competition will come about without needing to force anyone to use AI |
| 21:47:39 | FromDiscord | <gokr> Aaaaanyway, Nim rocks and hope you all have fun this evening! |
| 21:48:21 | FromDiscord | <gokr> (evening here at least) |
| 21:48:32 | FromDiscord | <mjsdev> Nim is OK |
| 21:48:42 | FromDiscord | <mjsdev> it definitely could rock |
| 22:09:59 | * | rockcavera quit (Remote host closed the connection) |
| 22:12:32 | * | rockcavera joined #nim |
| 23:29:19 | * | jkl quit (Ping timeout: 260 seconds) |
| 23:52:38 | * | jkl joined #nim |