00:15:40 | * | Matthias247 quit (Read error: Connection reset by peer) |
00:19:39 | * | nsf quit (Quit: WeeChat 1.7) |
00:47:21 | * | onionhammer quit (Quit: WeeChat 1.0.1) |
00:50:48 | * | onionhammer joined #nim |
01:07:09 | * | gokr quit (Quit: Leaving.) |
01:26:19 | * | strikr joined #nim |
01:29:11 | strikr | is it correct to interpret that nim-lang is case IN-sensitive ? |
01:39:19 | strikr | why does then the case of 'RootObj' matter ? |
01:51:11 | strikr | . |
01:55:00 | * | yglukhov joined #nim |
01:59:30 | * | yglukhov quit (Ping timeout: 256 seconds) |
02:24:13 | * | Snircle joined #nim |
02:39:28 | * | chemist69 quit (Ping timeout: 258 seconds) |
02:42:10 | ftsf_ | strikr, it's not case insensitive |
02:42:27 | ftsf_ | "it's complicated" ;) |
02:43:20 | strikr | okay |
02:44:01 | ftsf_ | the case of the first character is important |
02:44:04 | ftsf_ | the others are not |
02:44:31 | ftsf_ | foo is different to Foo, but FOO is the same as Foo, and fOO is the same as foo, underscores are ignored |
02:44:37 | ftsf_ | foo_bar is the same as fooBar |
02:57:38 | * | chemist69 joined #nim |
03:06:52 | * | kulelu88 quit (Quit: Leaving) |
03:30:10 | * | libman quit (Ping timeout: 256 seconds) |
03:33:42 | * | libman joined #nim |
03:57:52 | * | yglukhov joined #nim |
03:59:52 | * | libman quit (Ping timeout: 245 seconds) |
04:02:33 | * | yglukhov quit (Ping timeout: 252 seconds) |
04:28:57 | * | kier joined #nim |
04:40:01 | * | Snircle quit (Quit: Textual IRC Client: www.textualapp.com) |
05:07:22 | * | gangstaguy joined #nim |
05:20:43 | * | def-pri-pub quit (Quit: Lost terminal) |
05:24:17 | * | strikr quit (Ping timeout: 258 seconds) |
05:24:54 | * | dyson joined #nim |
05:25:18 | * | dyson is now known as Guest66674 |
05:27:23 | * | Trioxin quit (Ping timeout: 264 seconds) |
05:46:54 | * | eizua joined #nim |
05:56:25 | * | Varriount|Mobile joined #nim |
05:59:45 | * | yglukhov joined #nim |
06:03:12 | * | Guest66674 quit (Ping timeout: 245 seconds) |
06:03:32 | * | Guest66674 joined #nim |
06:04:09 | * | yglukhov quit (Ping timeout: 258 seconds) |
06:09:48 | * | sz0 quit (Quit: Connection closed for inactivity) |
06:13:44 | * | chemist69 quit (Ping timeout: 255 seconds) |
06:16:31 | * | chemist69 joined #nim |
06:29:54 | * | Varriount|Phone joined #nim |
06:34:09 | * | Varriount|Mobile quit (Ping timeout: 276 seconds) |
06:52:07 | * | libman joined #nim |
06:58:50 | * | rokups joined #nim |
07:06:35 | * | nsf joined #nim |
07:12:21 | * | yglukhov joined #nim |
07:12:36 | * | ftsf_ quit (Remote host closed the connection) |
07:15:54 | * | gangstaguy quit (Quit: Connection closed for inactivity) |
07:16:41 | * | yglukhov quit (Ping timeout: 240 seconds) |
07:22:26 | * | Kingsquee joined #nim |
07:31:48 | * | filcuc joined #nim |
07:33:11 | * | jivank_ quit (Ping timeout: 240 seconds) |
07:36:06 | * | libman quit (Ping timeout: 240 seconds) |
07:38:31 | * | sz0 joined #nim |
07:41:54 | * | libman joined #nim |
07:43:43 | * | Varriount|Phone quit (Ping timeout: 240 seconds) |
08:07:05 | * | Vladar joined #nim |
08:08:41 | * | gokr joined #nim |
08:13:10 | * | yglukhov joined #nim |
08:24:56 | * | yglukhov quit (Remote host closed the connection) |
08:29:45 | * | adeohluwa joined #nim |
08:41:24 | * | yglukhov joined #nim |
08:42:38 | * | djellemah joined #nim |
08:44:58 | * | bjz joined #nim |
08:51:12 | * | yglukhov quit (Remote host closed the connection) |
08:55:39 | * | yglukhov joined #nim |
08:56:54 | * | Guest89004 joined #nim |
08:58:26 | * | libman quit (Ping timeout: 255 seconds) |
09:10:00 | * | couven92 joined #nim |
09:11:24 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
09:16:41 | * | bjz joined #nim |
09:19:27 | * | Kingsqueee joined #nim |
09:20:36 | * | Kingsquee quit (Read error: Connection reset by peer) |
09:24:51 | * | adeohluwa quit (Ping timeout: 248 seconds) |
09:28:33 | * | yglukhov quit (Remote host closed the connection) |
09:41:52 | * | adeohluwa joined #nim |
09:50:49 | * | yglukhov joined #nim |
09:53:33 | * | eizua quit (Quit: Leaving) |
10:08:41 | * | yglukhov quit (Remote host closed the connection) |
10:10:30 | * | yglukhov joined #nim |
10:13:09 | * | PMunch joined #nim |
10:20:52 | * | PMunch quit (Quit: leaving) |
10:31:57 | * | Guest89004 quit (Ping timeout: 252 seconds) |
10:36:59 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
10:37:11 | * | adeohluwa quit (Ping timeout: 240 seconds) |
10:38:41 | * | PMunch joined #nim |
10:39:34 | * | bjz joined #nim |
10:48:50 | * | yeeve quit (Remote host closed the connection) |
10:49:48 | * | sz0 quit (Quit: Connection closed for inactivity) |
10:51:51 | * | yeeve joined #nim |
10:51:55 | * | yglukhov quit (Remote host closed the connection) |
10:55:16 | * | Kingsqueee quit (Quit: https://i.imgur.com/qicT3GK.gif) |
11:07:51 | * | Arrrr joined #nim |
11:08:47 | * | yglukhov joined #nim |
11:14:49 | * | Guest89004 joined #nim |
11:16:00 | * | fredrik92 joined #nim |
11:18:19 | * | couven92 quit (Disconnected by services) |
11:18:24 | * | fredrik92 is now known as couven92 |
11:19:57 | * | fredrik92 joined #nim |
11:39:10 | * | yglukhov quit (Remote host closed the connection) |
11:40:00 | * | yglukhov joined #nim |
11:49:48 | * | bjz_ joined #nim |
11:52:39 | * | bjz quit (Ping timeout: 276 seconds) |
11:56:24 | * | couven92 quit (Quit: Disconnecting) |
12:02:24 | * | Snircle joined #nim |
12:02:54 | * | arnetheduck joined #nim |
12:20:44 | * | Andris_zbx joined #nim |
12:36:23 | * | bjz_ quit (Ping timeout: 264 seconds) |
12:38:10 | * | bjz joined #nim |
12:49:03 | * | yglukhov quit (Remote host closed the connection) |
12:51:10 | cheatfate | endragor: what is the problem of https://github.com/nim-lang/Nim/blob/devel/lib/pure/ioselects/ioselectors_kqueue.nim#L103? |
12:56:19 | cheatfate | endragor: because i have made discard for a reason not to hide error from particular line of code |
12:56:31 | * | PMunch_ joined #nim |
12:59:16 | * | PMunch_ quit (Client Quit) |
13:02:06 | * | djellemah quit (Ping timeout: 252 seconds) |
13:02:59 | * | yglukhov joined #nim |
13:03:28 | * | fredrik92 is now known as couven92 |
13:04:08 | * | yglukhov quit (Remote host closed the connection) |
13:08:47 | * | Jesin quit (Ping timeout: 264 seconds) |
13:09:54 | * | Snircle quit (Quit: Textual IRC Client: www.textualapp.com) |
13:14:15 | FromGitter | <endragor> @cheatfate @dom96 suggests that the error code should still be checked |
13:15:36 | * | yglukhov joined #nim |
13:23:03 | * | plrin joined #nim |
13:23:07 | * | plrin left #nim ("Leaving") |
13:23:12 | * | Jesin joined #nim |
13:27:03 | * | Arrrr quit (Read error: Connection reset by peer) |
13:30:28 | * | rupil joined #nim |
13:31:46 | * | djellemah joined #nim |
13:39:25 | * | Snircle joined #nim |
14:06:26 | * | yglukhov quit (Remote host closed the connection) |
14:09:02 | * | nsf quit (Quit: WeeChat 1.7) |
14:14:08 | chemist69 | style question: a const that I only use in one proc, should I define it in that proc or globally? |
14:18:50 | Araq | chemist69: more often than not, it ends up being used in multiple procs |
14:19:03 | Araq | so IMO it's fine to define it globally |
14:19:31 | chemist69 | yes, I have to say, it also *looks* better that way. |
14:19:36 | chemist69 | thanks. |
14:24:16 | * | PMunch quit (Quit: leaving) |
14:24:40 | * | yglukhov joined #nim |
14:29:07 | * | Salewski joined #nim |
14:32:51 | Salewski | From new libui: Widget* = ref object of RootRef # is this the same as "Widget* = ref object of RootObj" ? |
14:35:16 | Araq | yes |
14:35:33 | Araq | you have asked this before :P |
14:35:48 | Araq | you cannot inherit from a pointer, so Nim takes the underlying object type instead |
14:36:07 | Araq | which is useful because the object in 'Foo = ref object' has no name |
14:36:46 | * | vlad1777d joined #nim |
14:38:12 | Salewski | OK, thanks. |
14:39:27 | * | Guest89004 quit (Ping timeout: 245 seconds) |
14:41:43 | * | literal quit (Ping timeout: 240 seconds) |
14:42:55 | * | yglukhov quit (Remote host closed the connection) |
14:43:08 | * | literal joined #nim |
14:46:23 | * | yglukhov joined #nim |
14:51:06 | * | APT69 joined #nim |
14:51:24 | * | yglukhov quit (Ping timeout: 276 seconds) |
14:55:28 | * | yglukhov joined #nim |
14:57:21 | * | Salewski left #nim (#nim) |
15:05:49 | * | xet7 joined #nim |
15:19:17 | * | devted joined #nim |
15:31:44 | * | xet7 quit (Quit: Leaving) |
15:37:01 | * | nsf joined #nim |
15:51:31 | * | yglukhov quit (Remote host closed the connection) |
15:53:01 | * | yglukhov joined #nim |
15:54:49 | * | yglukhov quit (Remote host closed the connection) |
16:02:15 | * | chemist69 quit (Ping timeout: 276 seconds) |
16:06:21 | * | chemist69 joined #nim |
16:10:26 | * | hendi_ joined #nim |
16:13:39 | * | PMunch joined #nim |
16:14:28 | * | pregressive joined #nim |
16:15:15 | * | hendi_ quit (Ping timeout: 276 seconds) |
16:22:04 | * | pregressive quit (Read error: Connection reset by peer) |
16:22:31 | * | pregressive joined #nim |
16:24:41 | * | hendi_ joined #nim |
16:26:38 | * | Trustable joined #nim |
16:28:06 | FromGitter | <Varriount> What's neat is that in Nim you can inherit from a reference type, but make the child type an object |
16:32:09 | FromGitter | <andreaferretti> @Varriount how would that work? |
16:32:22 | FromGitter | <andreaferretti> the reference is just ignored? |
16:32:33 | FromGitter | <andreaferretti> I mean, in memory what would be the layout? |
16:32:41 | Araq | the fields are embedded |
16:32:44 | * | couven92 quit (Quit: Client disconnecting) |
16:32:52 | Araq | like it's always done for inheritance |
16:33:43 | FromGitter | <Varriount> Oh hey, the irc bridge is fully functional again! |
16:33:44 | FromGitter | <andreaferretti> so, the derived type will have no reference, right? |
16:34:05 | FromGitter | <andreaferretti> I mean, I could inherit from a ref type but get an object on the stack |
16:34:29 | FromGitter | <krux02> @zacharycarter, yes that is a bad thing, I don't own glm, even though I basically overtook the maintenance of the project. As far as I know you can just delete that import statement |
16:34:40 | * | hendi_ quit (Ping timeout: 260 seconds) |
16:34:52 | FromGitter | <Varriount> @andreaferretti Yes |
16:35:51 | FromGitter | <andreaferretti> thank you |
16:47:23 | FromGitter | <barcharcraz> Oh that is neat. And safe. Slicing to s avoided because anyone taking the parent type is always by ref |
16:48:12 | FromGitter | <barcharcraz> Can you inherent from a regular non refundable type. I remember him used to slice, although it was arguably a bug (this was in like 0.9.x |
16:48:24 | FromGitter | <barcharcraz> *non ref |
16:58:03 | * | Xe quit (Ping timeout: 252 seconds) |
17:00:38 | * | filcuc quit (Read error: Connection reset by peer) |
17:03:55 | * | yglukhov joined #nim |
17:03:58 | * | yglukhov quit (Remote host closed the connection) |
17:04:10 | * | yglukhov joined #nim |
17:04:27 | * | yglukhov quit (Remote host closed the connection) |
17:05:05 | * | yglukhov joined #nim |
17:06:08 | * | yglukhov quit (Remote host closed the connection) |
17:08:10 | * | Xe joined #nim |
17:08:23 | * | APT69_ joined #nim |
17:11:48 | * | APT69 quit (Ping timeout: 276 seconds) |
17:20:55 | * | couven92 joined #nim |
17:24:19 | * | yglukhov joined #nim |
17:25:55 | * | yglukhov_ joined #nim |
17:25:55 | * | yglukhov quit (Read error: Connection reset by peer) |
17:37:40 | * | yglukhov_ quit (Remote host closed the connection) |
17:40:49 | * | yglukhov joined #nim |
17:45:14 | * | yglukhov quit (Ping timeout: 258 seconds) |
17:45:21 | * | BluntObject joined #nim |
17:47:27 | dom96 | What's happening Nimians? |
17:47:50 | Araq | dom96: I fixed a memory manager bug that has been in Nim for at least 5 years |
17:47:55 | FromGitter | <Varriount> @barcharcraz You can inherit from object types - odd that what you mean? |
17:48:07 | Araq | worth a blog post... |
17:48:17 | dom96 | Araq: awesome. Definitely |
17:48:23 | dom96 | TL;DR? |
17:48:23 | Araq | thread local heaps produced a race condition |
17:48:43 | dom96 | wow |
17:48:45 | Araq | TL;DR: even if you think it's save, double freeing is not. |
17:49:00 | dom96 | Race conditions + memory manager sounds like a nightmare |
17:49:11 | FromGitter | <Varriount> Araq: Did I miss something? |
17:49:13 | Araq | well it took the whole day to find... |
17:49:18 | Xe | double free -> segfault, right? |
17:49:38 | Araq | Xe: not if you think you're smart ... :-) |
17:50:50 | FromGitter | <timeyyy> Do you use nim in your day job? |
17:50:57 | Araq | yes |
17:53:13 | FromGitter | <Varriount> Araq: so how was the double free being caused? |
17:53:25 | * | Arrrr joined #nim |
17:54:52 | subsetpark | timeyyy: I do |
17:55:30 | Araq | varriount: it was a conscious design decision because the OS's APIs suck |
17:55:43 | * | gokr quit (Ping timeout: 240 seconds) |
17:55:49 | Araq | the claim to free the number of pages you give them, but actually they don't |
17:56:04 | Araq | instead they might free the original block size |
17:56:16 | BluntObject | hi all. I just spent the last five minutes learning about nim. I literaly just discovered this language less than 5 minutes ago |
17:56:48 | dom96 | BluntObject: hello and welcome! |
17:56:49 | Araq | varriount: I wasn't aware this can produce race conditions :-) |
17:57:05 | Araq | but it's actually quite easy to see |
17:57:14 | FromGitter | <krux02> BluntObject: Welcome to the worlds best programming laguage that wille ever come into existence ;) |
17:57:24 | Araq | thread A: x= alloc(); dealloc(x); dealloc(x) |
17:57:41 | Araq | thread B: y = alloc(); # oops. could be freed by thread A |
17:58:14 | BluntObject | thanks krux02. I am trying to get an understanding of how things work |
17:58:37 | FromGitter | <krux02> BluntObject: How much experience do you have in other programming languages? |
17:58:39 | BluntObject | linux install, windows install, compile commands arch linux install |
17:58:43 | BluntObject | that sort of thing |
17:58:45 | * | gokr joined #nim |
17:59:46 | BluntObject | as far as experience, I have some C C++ VB, python but I struggle with programmin languages |
17:59:58 | BluntObject | its a wall that I have always wanted to climb |
18:00:43 | FromGitter | <krux02> When you struggle with programming language, I don't want to discourage you, this is a very good language, but it is rough here and there, and not everything is beginners friendly documented |
18:01:33 | FromGitter | <Varriount> Here be pointers. :D |
18:01:40 | FromGitter | <krux02> When you understand programming and think C++ and VB do not offer you enough freedom and you generally want more control over everything, here you go, Nim is that language for you |
18:03:10 | FromGitter | <krux02> yes somewhat, but pointers only have a bad reputation, because C mixed pointers and arrays up and really made dealing with pointers messy |
18:03:19 | FromGitter | <Varriount> @krux02 I think you mean "Python and VB" - C++ gives you enough freedom. |
18:03:27 | * | huonw quit (Quit: bye) |
18:03:27 | FromGitter | <krux02> when pointers are just pointers, they are no danger at all |
18:04:23 | * | brson joined #nim |
18:04:41 | FromGitter | <krux02> Varriount, actually I mean what I wrote. Nim offers a lot more freedom and control over everything than all other languages that I used so far |
18:05:02 | FromGitter | <krux02> so when you hit the boundaries of Python and VB, come to Nim |
18:05:44 | FromGitter | <Varriount> BluntObject: Of course, that's not to say that Nim always requires advanced knowledge either. |
18:05:48 | * | jjido joined #nim |
18:05:48 | FromGitter | <krux02> I don't have personal experience in Python and VB, but I hit the boundaries of C++ and decided to look for something better |
18:05:58 | FromGitter | <krux02> sure |
18:06:17 | FromGitter | <krux02> Nim is actually easy to understand for the most part |
18:07:01 | BluntObject | krux02 yes, from what I have seen so far, it looks easy to understand |
18:07:12 | FromGitter | <krux02> that's good |
18:07:29 | FromGitter | <krux02> when you don't understand something, there are very friendly people here |
18:07:39 | BluntObject | is it based on C? nim ? |
18:08:14 | FromGitter | <barcharcraz> it uses C as an intermediary language |
18:08:18 | FromGitter | <krux02> Not based on C, but everything you can express in C has an equivalent representation in Nim |
18:08:33 | BluntObject | ok understood |
18:08:39 | FromGitter | <krux02> When you come from C, you will not feel like anybody took the control away from you |
18:08:40 | FromGitter | <Varriount> I'd say it takes elements from Python, Pascal, and Lisp |
18:09:32 | FromGitter | <krux02> For me it only has Python syntax, but feels much more like c++ |
18:10:07 | FromGitter | <krux02> c++ with modules and no headers and real metaprogramming |
18:10:13 | FromGitter | <krux02> everything I ever dreamed of |
18:10:19 | BluntObject | hmmm |
18:10:35 | BluntObject | i'm looking for ways that nim interfaces with the network |
18:10:42 | BluntObject | looking at documentation now |
18:11:35 | FromGitter | <Varriount> BluntObject: Are you looking for high level or low level? |
18:13:11 | BluntObject | hmm thats a very good question. one that I should have had the answer too before asking my question |
18:13:18 | FromGitter | <Varriount> BluntObject: At the high level, we have the async framework, at the low level, we have the bare socket interface. |
18:16:28 | * | nsf quit (Quit: WeeChat 1.7) |
18:17:00 | * | Arrrr1 joined #nim |
18:17:39 | * | Arrrr1 quit (Client Quit) |
18:18:41 | * | Arrrr quit (Ping timeout: 255 seconds) |
18:19:44 | BluntObject | oh i see, so there are network options? thats about what i needed to know |
18:20:03 | BluntObject | high level or low level will depend on the project |
18:24:55 | * | APT69_ quit (Read error: Connection reset by peer) |
18:25:53 | * | smt joined #nim |
18:27:58 | FromGitter | <barcharcraz> I'm seeing a dependency on jobapi2.h in streams |
18:28:05 | FromGitter | <barcharcraz> is this intentional? |
18:28:40 | FromGitter | <barcharcraz> wait sorry, it's microsoft's fault not nim's |
18:32:49 | dom96 | BluntObject: what brought you to Nim? |
18:35:13 | * | Arrrr joined #nim |
18:36:08 | * | Arrrr quit (Client Quit) |
18:44:27 | * | Andris_zbx quit (Remote host closed the connection) |
18:48:01 | Araq | yay, tests fail with my patch |
18:52:20 | ehmry | if I want to process a stream of message of unknown length, would chaining future like ``Future[(data: X, Future[...])]`` be wise or is there a better way? |
18:55:38 | dom96 | we have no proper support for async streams yet I'm afraid |
18:55:58 | dom96 | That would be a pretty clever solution actually :) |
18:56:24 | dom96 | Will probably turn out very slow though |
18:58:12 | FromGitter | <krux02> I mean it also depends on what you want to do what you want to do besides processing that stream of message of unknown length |
18:58:22 | FromGitter | <krux02> when that really is the only thing you want, blocking is ok |
18:59:34 | FromGitter | <krux02> when you want to keep a window open, you can do polling (is there new data? if yes then process it. Is there a new window event? if yes process it. Is there new data? ...) |
19:01:29 | ehmry | the message is not of unlimited length, its the stream |
19:01:46 | ehmry | of messages |
19:02:14 | ehmry | but I don't think its possible or practical to make a recursive type |
19:03:41 | euantor | dom96: Another of those odd threads with no first post: https://forum.nim-lang.org/t/2771 |
19:03:46 | ehmry | as cool as it would be I should probably just register a stream handler and call it on each message |
19:04:11 | dom96 | euantor: fixed |
19:05:31 | euantor | Nice, thanks |
19:09:58 | * | krux02 joined #nim |
19:10:25 | ehmry | I'm rewritting some Javascript code into Nim and I'm learning both languages at the same time |
19:10:38 | ehmry | guess which one I like bette ;-) |
19:20:32 | * | yglukhov joined #nim |
19:22:47 | krux02 | I dosn't take much to design a language better than javascript |
19:27:58 | krux02 | ehmry: Bet introduction to javascript: https://www.destroyallsoftware.com/talks/wat |
19:30:16 | krux02 | (I mean best) |
19:32:45 | ehmry | I find myself instrumenting code with stack traces because most of the functions have no names and in return I get these insane callback loops |
19:33:46 | * | Arrrr joined #nim |
19:33:48 | * | yglukhov quit (Remote host closed the connection) |
19:36:14 | FromGitter | <martinium> javascript seems like spaghetti to me |
19:36:27 | FromGitter | <martinium> so inelegant to my eyes |
19:36:40 | FromGitter | <martinium> @ehmry |
19:36:41 | krux02 | na it's not that bad |
19:36:56 | FromGitter | <martinium> in the ES6 - ES7 era |
19:36:59 | krux02 | I think when I read javascript it all depends on the writer |
19:37:06 | FromGitter | <martinium> yep |
19:37:12 | FromGitter | <martinium> its very dynamic in a bad way |
19:37:14 | ehmry | yea |
19:37:19 | krux02 | when the writer uses good names, javascript is nice to read |
19:37:19 | FromGitter | <martinium> people do some crazy stuff |
19:37:32 | krux02 | I miss types, but yea have to live with it |
19:37:47 | FromGitter | <martinium> js scares me for anything computation related |
19:38:05 | krux02 | good writers also avoid the ugly parts of javascript |
19:38:15 | * | yglukhov joined #nim |
19:38:18 | krux02 | but I don't write it because I don't want to write it |
19:38:20 | FromGitter | <martinium> the ugly parts are still good to know though |
19:38:33 | krux02 | other people who care that something is javascript can do that |
19:38:38 | krux02 | there are enough of them |
19:38:43 | FromGitter | <martinium> too many |
19:38:50 | FromGitter | <martinium> then js won’t scale |
19:38:52 | FromGitter | <martinium> lol |
19:39:05 | FromGitter | <martinium> keep hearing that problem about extremely large codebases |
19:39:18 | krux02 | yes of course |
19:39:35 | krux02 | when you do not have a proper type system, you have big problems refactoring the thing |
19:39:36 | FromGitter | <martinium> Nim and Crystal offer speed and high-level beautiful code. I really want these languages to become more mainstream |
19:39:48 | FromGitter | <martinium> I also prefer AOT compilation |
19:39:53 | FromGitter | <martinium> it helps avoid so many errors |
19:40:05 | * | Arrrr quit (Quit: Leaving.) |
19:40:09 | krux02 | that really is a solved problem, but javascript programmers are resistent to learn about static typing |
19:40:11 | FromGitter | <martinium> runtime errors in certain circumstances can cost a person their job. |
19:40:34 | FromGitter | <martinium> then again I hope no one is using a dynamic non-statically typed language in such a situation |
19:40:38 | krux02 | static typing doesn't prevent runtime errors |
19:40:46 | FromGitter | <martinium> it doesn't |
19:41:06 | FromGitter | <martinium> but it helps a person think about and structure their code a bit better |
19:41:07 | FromGitter | <martinium> as opposed to not having one |
19:41:17 | * | Arrrr joined #nim |
19:42:30 | Araq | of course it prevents runtime errors. a whole class of errors is transformed from runtime to compiletime. |
19:42:59 | krux02 | I really like the concept of rust, that it even goes a lot deeper in static analysis, I just think it is ugly with all that &* etc in the code |
19:43:14 | Araq | ever got an "illegal instruction" exception in C? assembler has it. |
19:43:35 | Araq | so there, even C improves the situation. |
19:44:24 | krux02 | not nil as default also prevents the class of nil ptr exception |
19:44:32 | krux02 | and there are lots |
19:44:41 | Araq | yes. |
19:45:00 | krux02 | but I heared rust has very slow compilation time, so there is always a tradeof |
19:45:49 | Araq | there is nothing inherent in Rust that leads to slow compile times, so it will improve tremendously. my prediction. |
19:46:15 | FromGitter | <martinium> rust is working on their compile times |
19:46:19 | FromGitter | <martinium> it will get faster with time |
19:46:42 | FromGitter | <martinium> Rust code isn’t the most elegant but language looks rock solid but still pretty low level |
19:46:59 | FromGitter | <martinium> it’s performant code that guarantees zero data races |
19:47:08 | FromGitter | <martinium> only language I know of with that assertion |
19:47:18 | krux02 | I think what makes rust slow is this functional programming |
19:47:22 | FromGitter | <barcharcraz> yeah the compile time issues are just them generating messy IL |
19:47:30 | * | aedigix quit (Remote host closed the connection) |
19:47:32 | * | yglukhov quit (Remote host closed the connection) |
19:47:33 | FromGitter | <barcharcraz> but it's very ugly |
19:47:41 | FromGitter | <barcharcraz> and like there's random limitations everywhere |
19:47:48 | FromGitter | <martinium> Rust is still slower to code in than say something like Nim |
19:47:49 | * | yglukhov joined #nim |
19:47:52 | * | aedigix joined #nim |
19:47:58 | FromGitter | <barcharcraz> like not being able to implement a trait if you don't own the type or the trait |
19:48:05 | FromGitter | <barcharcraz> which makes some libraries very nasty |
19:48:07 | krux02 | Rust has all the functional things that can be optimized to loops, and the compiler does it as far as I know, but it takes time to do so, but that is very half knowledge here so be caustios |
19:48:09 | FromGitter | <martinium> yeah it’s very restrictive |
19:48:19 | FromGitter | <barcharcraz> that's not why rust compiles slowly |
19:48:33 | FromGitter | <barcharcraz> it's a combination of messy IL and the compilation unit being the whole crate |
19:48:46 | FromGitter | <martinium> FP code is very fast so the FP features aren’t what make it slow |
19:48:50 | FromGitter | <martinium> IMO |
19:49:07 | FromGitter | <barcharcraz> yeah none of the fp features should make it slow |
19:49:12 | FromGitter | <barcharcraz> and it has loops and such |
19:49:24 | FromGitter | <barcharcraz> it's not like it's pure functional with linked lists and trees everywhere |
19:49:37 | FromGitter | <martinium> a jab at haskell there |
19:49:37 | FromGitter | <martinium> lol |
19:49:39 | FromGitter | <martinium> :) |
19:49:51 | FromGitter | <martinium> j/k but yeah I get what you mean |
19:49:53 | cheatfate | Guy why you are discussing rust in nim channel? |
19:49:58 | FromGitter | <barcharcraz> good point |
19:50:00 | FromGitter | <barcharcraz> nim is better |
19:50:02 | FromGitter | <barcharcraz> lets use nim |
19:50:06 | krux02 | I am not talking about linked lists, I am talking about the things that are fast, but only at runtime, for the cost that they need to be optimized a lot during compilation |
19:50:09 | cheatfate | IF you need to discuss rust you can go to rust channel |
19:50:33 | * | yglukhov quit (Remote host closed the connection) |
19:50:35 | * | Arrrr quit (Quit: Leaving.) |
19:50:48 | krux02 | wheatfate: why not? |
19:51:02 | * | yglukhov joined #nim |
19:51:02 | krux02 | cheatfate, we are comparing here |
19:51:06 | * | Arrrr joined #nim |
19:52:22 | cheatfate | krux02, because you comparing c to rust and rust to everything |
19:52:26 | * | Arrrr quit (Client Quit) |
19:53:16 | cheatfate | krux02, do you really think, that this talk is needed in official #nim channel? |
19:53:58 | krux02 | it has ended now anyway |
19:54:14 | krux02 | and it wasn't like it was going on for ever or preventing other discussions |
19:54:15 | FromGitter | <martinium> anyways |
19:54:32 | * | Arrrr joined #nim |
19:54:44 | FromGitter | <martinium> Nim is more productive to code in is the finding of many people |
19:55:04 | * | yglukhov quit (Remote host closed the connection) |
19:55:20 | krux02 | Another conclusion wouldn't be allowed in the Nim channel ;) |
19:55:30 | FromGitter | <martinium> there was a HN thread of a company that switched a far along project written in Rust to Nim and caught up to the point they were at with rust in a few short weeks taking advantage of all the goodies Nim has to offer |
19:55:40 | Araq | cheatfate: well it wasn't really offtopic and comparing Nim with other languages is fine here as long as it's not about Go... ;-) |
19:55:58 | FromGitter | <martinium> hahaha Go |
19:56:08 | * | Arrrr quit (Client Quit) |
19:56:26 | krux02 | I am sorry, but I like Go, but I am ok to be the only one here. |
19:56:32 | * | Arrrr joined #nim |
19:56:38 | FromGitter | <martinium> @Araq when choosing to compile to C for backend was it a hard choice between C and compiling to native machine code directly? |
19:57:15 | * | yglukhov joined #nim |
19:57:22 | FromGitter | <martinium> any language can be good as long as it gets stuff done without letting you shoot yourself i the foot too badly. Looking at you C++ ;-) |
19:57:28 | ehmry | krux02: I like Go too, or atleast I would teach someone Go before Python |
19:57:36 | krux02 | a lot of programming languages compile to C or start their live with compiling to C |
19:57:47 | ehmry | I shudder to think of kids learning JS |
19:58:18 | cheatfate | Araq, if you reread whole talk, you will see 1 or 2 comparisons with nim, everything started with javascript, and crux02 entered to talk with phrase `i like rust`... |
19:58:47 | ehmry | Nim might be a fun first programing language if you gave someone a DSL implemented in it |
19:58:49 | dom96 | I think that for kids it's more about avoiding as many obstacles as possible. JS would be pretty good for that. |
19:58:56 | Araq | cheatfate: ok fine, but now it's over. let's leave it at that. |
19:59:05 | * | Arrrr quit (Client Quit) |
19:59:08 | * | cheatfate left #nim ("Leaving") |
19:59:27 | * | Arrrr joined #nim |
19:59:27 | * | Arrrr quit (Changing host) |
19:59:27 | * | Arrrr joined #nim |
19:59:43 | FromGitter | <martinium> I am a noob programmer and am simultaneously learning Nim and Crystal |
19:59:47 | krux02 | dom96: JS for avoiding obstacles? Never heared that argument |
19:59:49 | FromGitter | <martinium> I have liked Nim a lot more than Python |
20:00:05 | krux02 | I do like Nim a lot more than python |
20:00:22 | Araq | martinium: no, it wasn't a hard decision, I knew a native backend would have been more work, at least if you want rudimentary optimizations |
20:00:25 | FromGitter | <martinium> on top of the performance which I care about a lot, the syntax is similar and very expressive. |
20:00:30 | krux02 | currently it is my favorite programming language, despite the fact that there are things I don't like |
20:00:41 | FromGitter | <martinium> yeah no language is perfect |
20:00:43 | dom96 | krux02: Any kid can play with it as long as they have a web browser |
20:00:51 | FromGitter | <martinium> but it allows you to be so productive |
20:01:02 | FromGitter | <martinium> certain things after you learn them feel so natural |
20:01:02 | dom96 | The barrier to entry is super low |
20:01:05 | krux02 | but the macros give me power to fix most of them somehow just for myself without requiring to change the language. It is just very flexible |
20:01:09 | FromGitter | <martinium> like the $ operator |
20:01:49 | krux02 | dom96: I think it should be higher. |
20:01:54 | ehmry | python was my first language but I had a lot of 'but why' questions that I hard to answer |
20:01:58 | dom96 | krux02: why? |
20:02:31 | FromGitter | <martinium> @ehmry yes when I started to dabble in it as it is the most recommended first language I hate how they tell you to do and not to understand |
20:02:45 | dom96 | I still remember the first time I found out about Python, it was via Frets on Fire (amazing game). |
20:02:48 | FromGitter | <martinium> I am the type that wants to know how things actually work to truly understand what I am doing |
20:03:47 | FromGitter | <martinium> will lead me to learn C eventually. But my dayjob prevents the time committment and Nim and Crystal are both a great compromise since they are so darn performant and the syntax beautiful |
20:03:53 | krux02 | A lot of people get stuck on the first programming language they learn, therefore you should be very cautious about what you start to teach people about. They might end up using it for everything they do later on in their live. Giving everybody access to javascript is what got us in the world of Javascipt dominating the programming language world in the first place |
20:03:59 | FromGitter | <martinium> The one thing I think Nim really needs is a REPL |
20:04:06 | FromGitter | <martinium> REPL’s make a big difference |
20:04:39 | FromGitter | <martinium> Apple’s Swift has a REPL and it is also a AOT compiled language |
20:04:58 | dom96 | interesting, any ideas how Swift's REPL is implemented? |
20:05:09 | dom96 | I've wanted a REPL for Nim since I started using it |
20:05:17 | ehmry | the other language that a lot of smart people sadly are taught first is R |
20:05:33 | dom96 | krux02: I've learned how to program using VB.NET, am I still using it? no. |
20:06:00 | Amun_Ra | there's nrpl |
20:06:02 | FromGitter | <zacharycarter> @krux02 I'm struggling to get sprite rendering working with opengl and I spied your sandbox which looks really nice - any chance you have tips to get it working on osx? |
20:06:02 | krux02 | you are not most people |
20:06:03 | dom96 | krux02: The reason JS is popular isn't because it's easy to learn, it's because web browsers are incredibly popular and only support JS. |
20:06:19 | Arrrr | We must build a wall to avoid any access to JS |
20:06:49 | ehmry | I've seen someone struggle for hours in R to later proclaim that they figured out the for loop, which is sad because R was designed to be functional |
20:06:56 | euantor | I also learned in VB.NET< but I am still using it |
20:07:18 | euantor | Regarding a REPL, it would be nice to have for Nim, but I wouldn't say it's critical |
20:07:22 | ehmry | arrrr: make software great again |
20:07:45 | krux02 | We can't build a physical wallt but we can build a psychological wall in their heads by punching little kids wearing costumes with a big "JavaScript" written on them. Then they will be scared of by life :P |
20:07:54 | krux02 | for live |
20:07:56 | euantor | Hitting 1.0 is the thing I'm most excited for or anticipating |
20:07:59 | Arrrr | Excuse me sir, seems to me that you used before Java. May i ask you some questions? |
20:08:43 | krux02 | btw isn't there a hidden repl built into the compiler? |
20:10:18 | dom96 | there is but it sucks |
20:10:18 | krux02 | dom96: do you know why the language pascal became popular in the first place? |
20:11:22 | dom96 | meh, alright, teaching people a certain language does make it more popular. |
20:11:29 | krux02 | it was introduced as a language to teach concepts about programming at universities. The result was a lot of people who know how to write in pascal therefore they did. It was not inteded to be used that way. |
20:12:24 | krux02 | So when Nim can make it to the Universities, it will also become more popular. |
20:12:24 | dom96 | I personally think it's more important to encourage kids to program than it is to worry about a poor language becoming popular. |
20:13:04 | euantor | I learned Ada at university, but I would hardly call it popular |
20:13:27 | dom96 | I'm sure there were other reasons which made Pascal popular |
20:13:29 | krux02 | yes give all kids a linux machine where all programming languages are as accessable as JavaScript on Windows |
20:13:30 | dom96 | Adoption by Apple perhaps? |
20:13:45 | Araq | Turbo Pascal was a superior product. |
20:13:55 | Araq | made it popular on early PCs |
20:13:55 | * | Jesin quit (Quit: Leaving) |
20:13:55 | ehmry | there is some cool stuff going on in SPARK the formal Ada |
20:13:58 | euantor | Tooling, packaging and documentation are all important to gain traction, and having packages readily available for most operating systems |
20:14:28 | Araq | TP came with an IDE and had insanely good compiletimes. |
20:14:39 | euantor | I quite liked the ideas behind Ada, but the documentation was difficult to find or outdated |
20:15:47 | krux02 | I never learned ADA, is there anything that Ada has that is not in C++, Scala, Go or Nim that is worth metioning |
20:16:13 | Araq | krux02: precise struct layout control down to the bits |
20:16:24 | Araq | and I don't mean C's bitfields. |
20:16:54 | FromGitter | <barcharcraz> ada has sane strings too |
20:16:59 | krux02 | That's a good thing |
20:17:01 | Araq | modular artihmetic types, fixed point math types |
20:17:03 | ehmry | its easier to formally verify from what I understand |
20:17:09 | FromGitter | <martinium> here is the thing |
20:17:17 | FromGitter | <martinium> with a REPL it allows experimentation |
20:17:31 | * | Jesin joined #nim |
20:17:41 | dom96 | To be fair, experimenting with Aporia has largely replaced REPLs for me. |
20:17:42 | FromGitter | <martinium> especially for areas like big data and data science where the performance offered by nim and it’s high level syntax are a big plus |
20:17:50 | dom96 | Which is why I find VS code so frustrating right now |
20:17:56 | * | hendi_ joined #nim |
20:18:05 | * | yglukhov quit (Remote host closed the connection) |
20:18:11 | * | zachcarter joined #nim |
20:18:18 | FromGitter | <martinium> the modern recent languages that Nim is a part of, most have a repl |
20:18:22 | euantor | Ada also has ref types similar to Nim, rather than just pointers |
20:18:23 | krux02 | I use emacs and I have quickrun configured |
20:18:32 | * | zachcarter left #nim (#nim) |
20:18:38 | euantor | Though they're called access types |
20:18:40 | * | zachcarter joined #nim |
20:18:41 | krux02 | I just open a new file in /tmp/scratch.nim |
20:18:44 | FromGitter | <martinium> Kotlin on the JVM, Swift from Apple, Java 9 will have a repl |
20:19:01 | FromGitter | <martinium> Python and Ruby have big mindshare in part due to their easy access via repl |
20:19:15 | FromGitter | <martinium> so it aids in teaching |
20:19:18 | dom96 | martinium: citation needed |
20:19:29 | dom96 | :P |
20:19:33 | FromGitter | <martinium> :P |
20:19:40 | * | yglukhov joined #nim |
20:19:47 | krux02 | Scala also has a repl. A lot that went ito java 8 and java 9 were first in scala |
20:21:03 | * | rupil quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
20:21:13 | krux02 | I used the reple quite a lot in scala, but aporia is also great |
20:21:47 | krux02 | just the ability, to not create a new file, but type and run some code |
20:22:09 | zachcarter | @krux02 I’m struggling to get opengl sandbox examples to run on osx - do you have any pointers? I’ve been trying to uncomment the platform specific gl functions but I’m stuck on glNamedBufferDataEXT |
20:22:11 | FromGitter | <martinium> I have yet to use aporia |
20:22:22 | FromGitter | <martinium> works pretty good |
20:22:23 | FromGitter | <martinium> I use Nimlime in ST3 |
20:22:29 | FromGitter | <martinium> I’ll have to try Aporia |
20:22:41 | Araq | I want to try Nimline :-) |
20:23:06 | * | rupil joined #nim |
20:23:11 | Araq | but cannot get to it. and I don't need a repl, I already know Nim :-) |
20:23:59 | dom96 | I tried using a scratch.nim file in VS code |
20:24:08 | dom96 | but finding it amongst the tabs is a pain |
20:24:24 | dom96 | doesn't help that VS code keeps a different workspace for each project |
20:24:38 | dom96 | I think I need to stop using it... |
20:24:46 | dom96 | irritates me more than it should |
20:25:08 | FromGitter | <martinium> vscode seems nice |
20:25:13 | FromGitter | <martinium> until it isn't |
20:25:19 | FromGitter | <martinium> ST3 is faster anyways |
20:25:24 | FromGitter | <martinium> like much much faster |
20:25:45 | dom96 | I'd have to buy that though :P |
20:25:51 | FromGitter | <martinium> Nimlime package does compilation checks or something to that effect |
20:26:00 | FromGitter | <martinium> uses nimsuggest |
20:26:21 | FromGitter | <martinium> etc @Araq @dom96 you should both try it today if you haven’t already |
20:26:43 | dom96 | I'm pretty sure I have at some point |
20:26:53 | FromGitter | <martinium> I will say this |
20:26:57 | dom96 | I've tried every editor at some point. |
20:27:09 | Araq | VS's workspace per directory is so annoying... |
20:27:15 | FromGitter | <martinium> we def should get a repl and use the Swift repl as the benchmark |
20:27:33 | FromGitter | <martinium> it would increase the audience |
20:27:37 | dom96 | Araq: I guess me and you are similar after all :) |
20:27:38 | FromGitter | <martinium> on the way to 1.0 |
20:28:07 | dom96 | martinium: yeah! Let's do it, go on, create a REPL for us ;) |
20:28:23 | ehmry | acme is the best editor ever, but sadly it makes you use tabs rather than spaces, so no Nim |
20:28:44 | Araq | ah one of these "you only need to copy from <insert project that has insanely more manpower behind it>" ideas |
20:28:56 | Araq | :P |
20:29:09 | Araq | we got https. that has to do for v1. :p |
20:29:20 | * | ehmry puts "rewrite acme in nim" on his todo list |
20:29:29 | FromGitter | <martinium> @dom96 k gimme like 4 years to create it while I become a good programmer |
20:29:31 | FromGitter | <martinium> lol |
20:29:47 | * | chemist69 quit (Ping timeout: 264 seconds) |
20:29:51 | dom96 | ehmry: what's special about it? |
20:29:51 | FromGitter | <martinium> repl must be hard to create I can imagine |
20:30:34 | FromGitter | <martinium> @Araq do you want more manpower for Nim development? |
20:30:40 | Araq | always. |
20:31:01 | FromGitter | <martinium> you should make a post on HN reddit and twitter |
20:31:10 | ehmry | it best leverages the mouse for productivity of any editor I've used, and it has barely any features |
20:31:22 | FromGitter | <martinium> asking for any interested devs to contribute to this stable language headed to 1.0 |
20:31:31 | FromGitter | <martinium> you’ll have lots of takers I bet |
20:31:36 | FromGitter | <martinium> especially once they use the language |
20:31:45 | FromGitter | <martinium> you know what I think I will start doing it for you |
20:31:50 | FromGitter | <martinium> and direct them here |
20:32:16 | FromGitter | <martinium> there are so many talented devs just looking for something worthwhile to do and this is one of those things |
20:32:22 | * | chemist69 joined #nim |
20:32:38 | ehmry | features cause problems, thats why I wont use vim or emacs |
20:32:54 | FromGitter | <martinium> I use vim with syntax highlighting |
20:33:04 | FromGitter | <martinium> I am still noob with it though |
20:33:11 | FromGitter | <martinium> use st3 for almost everything else |
20:33:22 | dom96 | I tried Vim for a month |
20:33:38 | dom96 | You can guess what happened after that |
20:33:42 | FromGitter | <martinium> lol |
20:33:51 | FromGitter | <martinium> Gui editors are comfy |
20:34:23 | FromGitter | <martinium> @Araq do you develop using windows or linux mostly? |
20:34:30 | FromGitter | <martinium> I’m curious |
20:34:40 | ehmry | vim is a very special beast because it was designed by someone on a very high latency dial-in terminal |
20:35:13 | FromGitter | <martinium> doesn’t vim not ever lag with large files? |
20:35:23 | Araq | windows and OSX. |
20:35:24 | Arrrr | He uses Redox OS |
20:35:31 | FromGitter | <martinium> hahaha redox |
20:35:37 | krux02 | vim is an evolution of a lot of tools used in the unix world |
20:35:40 | Araq | oh no, right, I use Baiku. |
20:35:49 | Araq | it's like Haiku but with a B. |
20:36:04 | krux02 | vim does lag when you overload it with crappy plugins |
20:36:09 | dom96 | I bet you misspelled it and are trying to save face :P |
20:36:19 | krux02 | and less is still better at handling large files |
20:36:29 | FromGitter | <martinium> ST3 doesn’t lag |
20:36:34 | FromGitter | <martinium> ever |
20:36:51 | dom96 | if I had a penny for the amount of times I had to open large files with my text editor I would have probably around 0 pennies |
20:36:52 | FromGitter | <martinium> but some people I’ve noticed are religious with regards to their Editors |
20:37:04 | Araq | dom96: and I would be rich :P |
20:37:15 | Araq | log files, people are obsessed with them. |
20:37:24 | euantor | Yep, log files do it for me |
20:37:27 | dom96 | Araq: When do you deal with log files? |
20:37:33 | dom96 | I'm your sys admin remember? |
20:37:40 | Araq | why use a database when you can instead have unstructured data that cannot be queried? |
20:37:50 | dom96 | and even then, grep and tail is your friend |
20:37:58 | Araq | so much more fun... |
20:37:59 | dom96 | oh, I see what you're doing |
20:38:17 | euantor | Well, the windows event viewer provides a GUI for windows event logs, but it's slower than anything I've ever used |
20:38:31 | Araq | dom96: I don't deal with logfiles *anymore* :P |
20:39:41 | * | Arrrr quit (Quit: Leaving.) |
20:40:24 | * | rupil quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
20:40:31 | * | nsf joined #nim |
20:41:06 | FromGitter | <barcharcraz> I mean journalctl is like event viewer for linux |
20:41:12 | FromGitter | <barcharcraz> systemd ftw |
20:41:51 | * | rupil joined #nim |
20:41:57 | * | yglukhov quit (Remote host closed the connection) |
20:42:41 | * | rupil quit (Client Quit) |
20:42:53 | krux02 | just testet journalctl was surprised to see this chat there |
20:42:56 | FromGitter | <barcharcraz> Araq: because people seem to really go out of their way to never learn anything about sql or databases |
20:43:05 | FromGitter | <barcharcraz> lol |
20:44:04 | krux02 | there is a process that wants to send all messages to xfce4-notifyd but fails |
20:46:25 | dom96 | Aporia's awesome scratch files feature is especially useful when developing macros |
20:46:44 | FromGitter | <barcharcraz> is it like a nim secret thing |
20:46:49 | FromGitter | <barcharcraz> or does it just compile and run the code |
20:46:56 | dom96 | New Tab->dumpTree: someFunc(42)-> F5 -> Bam, I got the AST |
20:47:05 | FromGitter | <barcharcraz> dom96: have you tried out julia's Juno atom addon |
20:47:09 | dom96 | nope |
20:47:26 | FromGitter | <barcharcraz> give it a try, it has some cool ideas w.r.t live editing |
20:47:55 | FromGitter | <barcharcraz> while editing a line you can press ctrl-enter and it will run up to that line and then overlay the current values on variables in the editor |
20:48:00 | FromGitter | <barcharcraz> including images and stuff |
20:48:01 | * | yglukhov joined #nim |
20:48:01 | dom96 | maybe someday when I get the time to try out Julia |
20:48:20 | FromGitter | <barcharcraz> julia would be so great if not for the aweful module system |
20:48:34 | FromGitter | <barcharcraz> reminds me of nim actually |
20:48:41 | FromGitter | <barcharcraz> (the great parts not the module system) |
20:49:22 | krux02 | julia would be all great, if it would not have it's own weird logic of layouting memory |
20:49:47 | FromGitter | <barcharcraz> you can tell it to respect C layout afaik |
20:49:51 | FromGitter | <martinium> Julia is cool but not fast enough |
20:50:03 | FromGitter | <barcharcraz> julia can be fast. the jit was hella slow on windows for a while tho |
20:50:07 | FromGitter | <martinium> although intel created a really impressive lib for parallelization in julia |
20:50:09 | FromGitter | <barcharcraz> I like the optional typing |
20:50:11 | FromGitter | <martinium> insane benchmarks |
20:50:17 | * | yglukhov quit (Remote host closed the connection) |
20:50:29 | FromGitter | <barcharcraz> but again, the module system causes me physical pain |
20:50:34 | FromGitter | <martinium> I thought only .net devs stil used windows |
20:50:37 | dom96 | odd that their module system doesn't seem to be deterring so many people from using it already |
20:50:41 | krux02 | maybe julia will replace matlab |
20:50:51 | dom96 | then again, matlab is a nightmare |
20:50:51 | * | yglukhov joined #nim |
20:50:52 | FromGitter | <barcharcraz> I mean compared to matlab the module system is great |
20:51:06 | FromGitter | <martinium> julia is trying to replace matlab, R and python in the science data science fields |
20:51:08 | dom96 | but why not use Python? |
20:51:18 | FromGitter | <martinium> python is SLOW |
20:51:19 | FromGitter | <barcharcraz> yeah |
20:51:23 | FromGitter | <martinium> SLOOOWWWWWW |
20:51:34 | FromGitter | <martinium> Julia attempts to solve the two language problem |
20:51:39 | FromGitter | <martinium> which ironically Nim solves as well |
20:51:46 | FromGitter | <barcharcraz> I found julia to be too much maintnence burdan for not enough gain |
20:51:46 | FromGitter | <martinium> Nim is also faster than julia |
20:51:54 | FromGitter | <barcharcraz> idk, really like the optional typing for math work |
20:52:04 | dom96 | Sadly not enough data scientists are using Nim |
20:52:05 | FromGitter | <barcharcraz> and nim does not have quite the array manipulation tools that julia has |
20:52:12 | Araq | I remember replacing matplotlib with a program that used putPixel to draw the diagrams. |
20:52:13 | FromGitter | <barcharcraz> also a real repl |
20:52:13 | FromGitter | <martinium> that’s why I was mentioning earlier how Nim has HUGE opportunities to break into some of these areas |
20:52:17 | FromGitter | <barcharcraz> we need a real repl |
20:52:29 | dom96 | But, I did submit a talk to the CERN developers meetup recently. Maybe i'll convince somebody at CERN to use it ;) |
20:52:39 | FromGitter | <martinium> if I was a more seasoned programmer I’d def contribute to creating one |
20:52:43 | Xe | nim-lang.org is on ssl now? |
20:52:46 | Xe | \o/ |
20:52:56 | Araq | Xe: yup and it broke our installer |
20:53:03 | FromGitter | <martinium> there is nrpl in nimble but no idea how fast, slow it is |
20:53:15 | FromGitter | <barcharcraz> that could be good |
20:53:17 | dom96 | martinium: I bet it just compiles the code. |
20:53:19 | FromGitter | <barcharcraz> can you do FFI? |
20:53:27 | Araq | oh yeah, thinking about it |
20:53:28 | FromGitter | <barcharcraz> because there /is/ nim secret |
20:53:32 | FromGitter | <martinium> @dom96 it does compile in bg |
20:53:41 | dom96 | I still want ffi support for the Nim VM |
20:53:46 | Araq | we have an LLVM backend now |
20:53:48 | FromGitter | <barcharcraz> I do too |
20:53:48 | dom96 | then a REPL will be easy |
20:53:54 | Araq | we can use that for the REPL. |
20:54:03 | Araq | could help us. |
20:54:05 | FromGitter | <martinium> thats what swift uses |
20:54:10 | FromGitter | <martinium> llvm backend |
20:54:23 | Araq | yeah, so there, should be based on LLVM |
20:54:25 | dom96 | or that |
20:54:33 | FromGitter | <martinium> @Araq try out the swift repl and you will see |
20:54:35 | Araq | Nim VM + libffi is a deadend, trust me. |
20:54:38 | FromGitter | <barcharcraz> I mean I want to be able to call curl in my macros |
20:54:41 | FromGitter | <martinium> type swift in your osx terminal |
20:54:42 | FromGitter | <barcharcraz> but I'm a crazy person |
20:54:55 | FromGitter | <martinium> speaking of repl's |
20:54:59 | Xe | martinium: Araq uses windows |
20:55:03 | FromGitter | <martinium> have you guys ever used uTop? |
20:55:07 | FromGitter | <barcharcraz> I use windows too |
20:55:10 | FromGitter | <martinium> it’s an ocaml repl |
20:55:19 | * | yglukhov quit (Remote host closed the connection) |
20:55:20 | FromGitter | <martinium> Xe: they can always use VM's |
20:55:22 | FromGitter | <barcharcraz> I like winodws. things actually work |
20:55:26 | FromGitter | <barcharcraz> also for graphics things |
20:55:31 | FromGitter | <martinium> ubuntu works rocksolid |
20:55:40 | FromGitter | <martinium> unless you need commercial software like adobe |
20:55:40 | FromGitter | <martinium> lol |
20:55:44 | * | yglukhov joined #nim |
20:55:48 | FromGitter | <martinium> everything else it is covered except games |
20:55:49 | Calinou | <FromGitter> <martinium> python is SLOW |
20:55:51 | FromGitter | <barcharcraz> lol, I've had issues with graphics drivers, package bugs |
20:55:52 | Calinou | PyPy doesn't help in your case? |
20:55:54 | FromGitter | <barcharcraz> and more |
20:56:04 | FromGitter | <martinium> PyPy breaks sometimes |
20:56:06 | FromGitter | <barcharcraz> it works ... OK |
20:56:06 | dom96 | martinium: cool, `swift` works |
20:56:28 | FromGitter | <martinium> @dom96 yeah its cool. I think nim should adopt that approach for a repl |
20:56:50 | Xe | i personally don't like using a long-lived repl session because it's hard to keep a historical log |
20:56:54 | FromGitter | <martinium> default backend for Nim is C but it supports clang and gcc |
20:57:14 | FromGitter | <martinium> maybe the Nim repl can have an option to save all to .nim text file? |
20:57:19 | Calinou | there should be more extensive benchmarks of backends btw :) |
20:57:24 | Calinou | (C vs C++) |
20:57:30 | FromGitter | <martinium> also syntax suggestions and highlighting like Utop for ocaml |
20:57:50 | FromGitter | <martinium> C++ is a nightmare unless you know the language very well |
20:57:53 | FromGitter | <barcharcraz> yeah nimsuggest needs a bit of work in the suggestion department |
20:58:19 | FromGitter | <martinium> stupid question nim suggest is written in Nim right? |
20:58:24 | FromGitter | <barcharcraz> yeah |
20:58:31 | FromGitter | <martinium> I will take a look and see how badly I get lost |
20:58:35 | FromGitter | <martinium> I hate being a novice |
20:58:38 | FromGitter | <barcharcraz> it actually uses the compiler as nim modules |
20:58:40 | FromGitter | <martinium> but have to start somewhere |
20:58:41 | Xe | martinium: just saving the output to a text file isn't enough, there starts to build up context and variables and values that way that just dumping everything to a text file can't do |
20:59:15 | FromGitter | <martinium> Xe: repl is really for experimentation though I wouldn’t want to do an entire project in it |
20:59:21 | FromGitter | <martinium> that would be kind of nuts |
21:00:11 | FromGitter | <martinium> as long as people use it to test ideas |
21:00:19 | FromGitter | <martinium> for immediate feedback |
21:00:33 | Xe | the compiler is pretty immediate |
21:00:42 | FromGitter | <martinium> yeah it is fast |
21:00:53 | FromGitter | <martinium> but we have a new gen of people used to repl's |
21:01:05 | FromGitter | <martinium> repl is needed |
21:01:07 | FromGitter | <martinium> isn’t* |
21:01:11 | FromGitter | <martinium> but it is a nice to have |
21:01:30 | FromGitter | <barcharcraz> I think repl is needed for scientific stuff |
21:01:39 | FromGitter | <martinium> that’s main group I want Nim to attract |
21:01:43 | Xe | we do have one though, it's just incomplete and you probably don't actually want a repl, you just think you do |
21:01:53 | FromGitter | <martinium> they’ll blow a load at Nim’s expressiveness and speed |
21:02:02 | FromGitter | <barcharcraz> I do want a repl, just not one confined to nimvm with no ffi |
21:02:07 | * | rokups quit (Quit: Connection closed for inactivity) |
21:02:10 | FromGitter | <martinium> most already use similar syntax via python and matlab etc |
21:02:54 | FromGitter | <martinium> pardon my ignorance but the FFI does what? allow use of C libs etc or you want additional language support for repl? |
21:03:44 | FromGitter | <martinium> foreign function interface C support built into language already. So would it be monumentally diff to add to a repl? |
21:04:05 | Xe | FFI into C is builtin if you're not running on nimvm |
21:04:21 | FromGitter | <martinium> what is Nim vm |
21:04:22 | * | yglukhov quit (Remote host closed the connection) |
21:04:27 | FromGitter | <martinium> didn’t know of that |
21:04:42 | FromGitter | <martinium> thought we only had C and js backends |
21:04:50 | Xe | the virtual machine that macros, templates and interpreted nim code runs on top of |
21:05:11 | FromGitter | <martinium> which nim code is interpreted? |
21:05:19 | Xe | nimscript |
21:05:23 | FromGitter | <martinium> right |
21:05:31 | FromGitter | <martinium> forgot about nimscript |
21:06:22 | FromGitter | <martinium> @dom96 what proc can I use to access environment variables? getEnv? |
21:07:11 | dom96 | check `os` module docs |
21:08:09 | FromGitter | <martinium> k looking |
21:09:14 | * | yglukhov joined #nim |
21:11:24 | FromGitter | <martinium> it can’t find the key but my other program in Crystal does |
21:11:35 | FromGitter | <martinium> os docs say getEnv is the one |
21:12:11 | FromGitter | <martinium> there is not other syntax needed other than passing name of variable as a string? |
21:12:29 | Xe | what other syntax would there be? |
21:12:46 | FromGitter | <martinium> just checking of there was something I am not thinking of |
21:12:48 | FromGitter | <martinium> :) |
21:12:55 | FromGitter | <martinium> some sugar etc |
21:13:00 | FromGitter | <Varriount> Well, you also have to turn around 3 times and flip a coin over your shoulder. |
21:13:00 | * | yglukhov quit (Remote host closed the connection) |
21:13:14 | FromGitter | <martinium> ok lets try that |
21:13:16 | FromGitter | <martinium> ;-) |
21:13:55 | * | yglukhov joined #nim |
21:16:21 | FromGitter | <martinium> got it to work |
21:16:37 | FromGitter | <martinium> had to reexport environment variable in my other terminal window |
21:16:43 | FromGitter | <martinium> getEnv ftw |
21:23:43 | * | yglukhov quit (Remote host closed the connection) |
21:24:56 | * | yglukhov joined #nim |
21:30:42 | * | hendi_ quit (Quit: hendi_) |
21:32:43 | * | yglukhov quit (Remote host closed the connection) |
21:35:56 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
21:36:37 | * | yglukhov joined #nim |
21:46:52 | * | yglukhov quit (Remote host closed the connection) |
21:47:31 | FromGitter | <martinium> it would be cool if I had a programming mentor |
21:48:17 | * | yglukhov joined #nim |
21:50:12 | FromGitter | <martinium> did all of you here self-teach? |
21:51:08 | krux02 | I did self teach, but from time to time I asked a question here. |
21:52:01 | * | yglukhov quit (Remote host closed the connection) |
21:55:35 | * | yglukhov joined #nim |
21:56:14 | demi- | self-taught, i know quite a few other languages so this wasn't hard to pick up |
21:56:29 | zachcarter | self-taught |
21:56:30 | * | bjz joined #nim |
21:56:49 | FromGitter | <martinium> you guys go to college for cs or no? |
21:56:54 | zachcarter | history major |
21:57:12 | zachcarter | not that I’m a computer science / nim expert |
21:57:49 | * | chemist69 quit (Ping timeout: 255 seconds) |
21:57:51 | * | pafmaf quit (Quit: Free ZNC from FreeZNC.ru - Account expired) |
21:58:48 | dom96 | self taught, currently studying for a BSc in CS |
21:59:12 | FromGitter | <barcharcraz> self taught then got a BSe in CS |
21:59:39 | FromGitter | <martinium> nice |
21:59:58 | FromGitter | <martinium> Finance major and everything I know about computing I’ve self-taught |
22:00:18 | FromGitter | <martinium> thinking of getting a BS in CS potentially |
22:00:24 | FromGitter | <martinium> but hate that it is so math heavy |
22:00:42 | FromGitter | <martinium> if there was a software dev major that would be more to the point |
22:00:54 | dom96 | In my experience there is actually very little math |
22:01:03 | dom96 | But I suppose it depends on the uni |
22:01:16 | FromGitter | <martinium> Uni usually makes you take calculus IV |
22:01:20 | FromGitter | <martinium> like really?? |
22:01:22 | FromGitter | <martinium> lol |
22:01:45 | FromGitter | <martinium> not everyone is cut out for that level of math when you could be building actual computing skills |
22:01:55 | FromGitter | <martinium> best programmers are supposedly really good at math and theory |
22:02:08 | FromGitter | <martinium> then again some of the best programmers never went to college at all |
22:03:03 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
22:03:19 | * | yglukhov quit (Remote host closed the connection) |
22:04:07 | * | yglukhov joined #nim |
22:05:55 | Araq | really? like whom? |
22:06:32 | Araq | who are these best programmers who never went to college? |
22:06:52 | * | yglukhov quit (Remote host closed the connection) |
22:07:09 | zachcarter | finally got a sprite rendered - http://imgur.com/a/bDkhS |
22:07:20 | zachcarter | using modern opengl |
22:08:12 | * | jjido quit (Ping timeout: 240 seconds) |
22:08:26 | * | Matthias247 joined #nim |
22:09:29 | dom96 | zachcarter: awesome :D |
22:09:37 | * | yglukhov joined #nim |
22:09:40 | FromGitter | <martinium> @Araq they went to college I retract that statement |
22:10:02 | FromGitter | <martinium> early CS guys studied math and physics since CS wasn’t a major yet |
22:10:03 | FromGitter | <martinium> lol |
22:10:23 | zachcarter | dom96: thanks :D Need to figure out why the matrices I’m passing to my shader are screwing things up, but it’s progress for sure |
22:10:30 | FromGitter | <martinium> I still think the real deep level knowledge you get with CS major |
22:10:39 | FromGitter | <martinium> too bad school here in US is an arm and leg |
22:10:50 | dom96 | zachcarter: further than I've ever gotten with opengl :) |
22:11:41 | zachcarter | dom96: I was making my game with libgdx but it was too easy, I needed to struggle more haha |
22:11:56 | dom96 | lol |
22:12:00 | zachcarter | nim sdl and opengl is a struggle for sure |
22:12:09 | zachcarter | just because of my inexperience |
22:12:33 | FromGitter | <martinium> @zacharycarter I bet when you get stuff working it feels so good |
22:12:38 | FromGitter | <martinium> very rewarding |
22:13:10 | * | chemist69 joined #nim |
22:13:15 | zachcarter | martinium: it does |
22:13:51 | FromGitter | <martinium> right now I am just making command line apps as I learn more and more |
22:14:18 | FromGitter | <martinium> but command lines apps can do a lot… |
22:14:26 | FromGitter | <martinium> its fun when they work correctly |
22:14:34 | FromGitter | <martinium> gets you hooked |
22:15:48 | FromGitter | <Varriount> zachcarter: I've used libgdx |
22:16:16 | FromGitter | <Varriount> Just about the only module that makes working in Java tolerable |
22:16:24 | FromGitter | <martinium> lol |
22:16:27 | zachcarter | Varriount: It’s a good library, it’s just I use the JVM all day at work, and I don’t necessarily want to write my game in Java |
22:16:41 | FromGitter | <martinium> I’ve looked at java and get put off by it’s verbosity |
22:16:44 | zachcarter | libgdx is a little too high level for me, and I see very little point in rolling my own engine with something like lwjgl when libgdx exists |
22:16:54 | FromGitter | <martinium> like retarded amounts of syntax just to do the simplest things |
22:16:57 | zachcarter | martinium: there are other JVM languages |
22:17:12 | FromGitter | <martinium> yeah Kotlin looks good |
22:17:13 | zachcarter | not to push you towards the JVM or anything |
22:17:27 | FromGitter | <martinium> but Nim will allow you to work with embedded systems |
22:17:40 | FromGitter | <martinium> not too mention more productive. |
22:17:51 | FromGitter | <martinium> as the language catches on many more contributions await |
22:17:57 | FromGitter | <Varriount> And not require 1GB of memory for GUI apps |
22:18:12 | zachcarter | :D |
22:18:12 | FromGitter | <martinium> yeah thats insane |
22:18:22 | zachcarter | intellij is a swell IDE come on now |
22:18:30 | FromGitter | <martinium> jvm is written in C though |
22:18:41 | FromGitter | <martinium> jvm is impressive piece of tech |
22:18:47 | FromGitter | <martinium> intellij is bad ass |
22:18:54 | FromGitter | <martinium> someone should make a nim plugin |
22:18:59 | FromGitter | <martinium> i would if I knew how |
22:19:00 | FromGitter | <martinium> lol |
22:19:10 | Xe | zachcarter: that doesn't mean i want to use it for a text editor |
22:19:26 | zachcarter | Xe: I dont’ like using any IDE as a text editor |
22:19:55 | zachcarter | vim or vs code or something like that is a nice go between |
22:19:57 | * | yglukhov quit (Remote host closed the connection) |
22:20:01 | zachcarter | I’m finding VS code to be pretty decent |
22:20:21 | FromGitter | <martinium> its good |
22:20:26 | FromGitter | <barcharcraz> I'm liking VS code |
22:20:40 | FromGitter | <barcharcraz> once nimsuggest matures a little it'll be awesome |
22:20:41 | FromGitter | <martinium> vscode is slower than ST3 but better than atom |
22:20:42 | * | yglukhov joined #nim |
22:20:57 | FromGitter | <martinium> but it beats ST3 cuz it’s free |
22:24:36 | * | vlad1777d quit (Quit: Leaving) |
22:24:58 | Calinou | I don't get people who hate on Java for the syntax but like Rust... |
22:25:58 | Araq | because they mean "stdlib design" when they say "syntax" |
22:25:58 | * | yglukhov quit (Remote host closed the connection) |
22:26:34 | Araq | though the lack of 'auto' in Java is horrible |
22:26:47 | FromGitter | <barcharcraz> I thought they added it |
22:26:50 | Araq | maybe they fixed it in Java 9? |
22:27:40 | Calinou | I don't think they added that to Java 9 |
22:27:50 | Calinou | also, people complain about "auto" being used everywhere in C++ already ;) |
22:27:54 | Calinou | it's known to make some codes unreadable |
22:28:10 | Calinou | using it is ok, but you don't want to use it everywhere |
22:28:26 | FromGitter | <barcharcraz> idk I use it almost everywhere it does not fuck up code completion |
22:29:00 | * | yglukhov joined #nim |
22:29:10 | FromGitter | <barcharcraz> tbh only issue is when you don't realize the constness you are using |
22:31:46 | * | yglukhov quit (Remote host closed the connection) |
22:33:25 | * | yglukhov joined #nim |
22:33:49 | * | nsf quit (Quit: WeeChat 1.7) |
22:44:24 | zachcarter | hmm |
22:44:42 | zachcarter | anyone know how to create a dump from a process running on osx? I have a freeze with opengl and nim |
22:45:04 | zachcarter | not sure if it’s my code or if it’s something actually wrong |
22:45:15 | * | yglukhov quit (Remote host closed the connection) |
22:46:52 | Araq | use lldb |
22:47:03 | Araq | you need to sign a contract first so that it is allowed to debug |
22:47:18 | * | yglukhov joined #nim |
22:47:23 | zachcarter | alright let me figure that out |
22:47:27 | Araq | then you need to google every single command because lldb uses different commands from gdb |
22:47:33 | zachcarter | this sounds fun |
22:47:45 | zachcarter | I think I’ve used lldb before |
22:47:50 | * | peted quit (Quit: WeeChat 1.4) |
22:50:57 | * | pregressive quit (Remote host closed the connection) |
22:51:01 | Matthias247 | Araq: afaik type inference is now planned for Java. But for Java 10 or later |
22:51:30 | * | pregressive joined #nim |
22:51:40 | Matthias247 | http://openjdk.java.net/jeps/286 |
22:51:50 | * | yglukhov quit (Ping timeout: 255 seconds) |
22:52:03 | zachcarter | lots of Java 10 features were planned for Java 8 |
22:52:13 | zachcarter | like value types |
22:52:31 | zachcarter | extended generics |
22:56:11 | * | pregressive quit (Ping timeout: 264 seconds) |
22:56:56 | Matthias247 | if all that comes with Java10 then they are up to C#4 ;) |
22:57:29 | * | Trustable quit (Remote host closed the connection) |
23:02:36 | * | couven92 quit (Read error: Connection reset by peer) |
23:08:08 | * | krux02 quit (Remote host closed the connection) |
23:12:51 | * | ftsf_ joined #nim |
23:13:39 | * | gangstacat quit (Quit: Ĝis) |
23:16:54 | * | gangstacat joined #nim |
23:22:31 | * | Guest66674 quit (Quit: Konversation terminated!) |
23:35:15 | zachcarter | alright I figured out how to debug my program with lldb |
23:36:59 | zachcarter | not sure how to debug this exception, getting an EXC_BAD_ACCESS |
23:39:04 | * | pregressive joined #nim |
23:42:40 | Araq | zachcarter: sorry I need to sleep now |
23:42:52 | zachcarter | np Araq have a good night |
23:46:56 | * | Vladar quit (Quit: Leaving) |
23:49:09 | * | dom96 quit (Excess Flood) |
23:52:21 | * | dom96 joined #nim |
23:53:39 | * | gokr still amazed that people find a REPL to be the coolest thing on earth. Think bigger. Think a full live coding environment. Think full reflection. |
23:58:28 | * | Matthias247 quit (Read error: Connection reset by peer) |
23:58:44 | zachcarter | https://gist.github.com/zacharycarter/d2b38e3846ac39e0ab52dd80e470b143 - example one I see nothing but it runs without issue, example 2 causes the app to hang and the window to turn totally white :/ also throws an EXC_BAD_ACCESS exception |
23:58:53 | zachcarter | not sure what I’m doing wrong with nim glm... |