00:02:52 | * | nsf quit (Quit: WeeChat 1.5) |
00:35:57 | * | chemist69 quit (Ping timeout: 240 seconds) |
00:42:30 | * | chemist69 joined #nim |
01:07:31 | * | vonh joined #nim |
01:21:20 | * | shodan45 quit (Quit: Konversation terminated!) |
01:27:51 | * | MonsterAbyss quit (Ping timeout: 244 seconds) |
01:33:37 | * | chemist69 quit (Ping timeout: 240 seconds) |
01:39:02 | * | MonsterAbyss joined #nim |
01:47:13 | * | chemist69 joined #nim |
01:53:02 | * | yglukhov joined #nim |
01:58:39 | * | yglukhov quit (Ping timeout: 260 seconds) |
03:15:36 | * | Snircle quit (Quit: Textual IRC Client: www.textualapp.com) |
03:25:58 | * | kulelu88 quit (Quit: Leaving) |
03:38:55 | * | brson quit (Read error: Connection reset by peer) |
03:44:22 | * | brson joined #nim |
03:56:07 | * | yglukhov joined #nim |
04:00:30 | * | yglukhov quit (Ping timeout: 250 seconds) |
04:04:57 | * | gangstacat quit (Ping timeout: 260 seconds) |
04:05:49 | * | gangstacat joined #nim |
05:17:44 | * | yglukhov joined #nim |
05:21:04 | * | gokr joined #nim |
05:21:54 | * | yglukhov quit (Ping timeout: 244 seconds) |
05:34:18 | * | vegai_ is now known as vegai |
06:02:43 | * | gokr quit (Ping timeout: 244 seconds) |
06:15:55 | * | nsf joined #nim |
06:24:19 | ftsf | hmm trying to wrap a C library that uses enum types with values as bit fields. is there a nice way to represent that in nim? |
06:28:41 | * | brson quit (Ping timeout: 260 seconds) |
06:40:07 | * | FuntDobra quit (Read error: Connection reset by peer) |
06:41:30 | * | FuntDobra joined #nim |
06:46:52 | FromGitter | <dom96> ftsf: try running it through c2nim, should tell you how to do it. |
06:46:59 | ftsf | dom96, nope |
06:47:06 | ftsf | i'm trying to edit the output from c2nim |
06:47:14 | FromGitter | <dom96> oh |
06:47:26 | ftsf | it's struggling on the jack headers |
06:48:53 | FromGitter | <dom96> in that case I'm not sure |
06:49:02 | FromGitter | <dom96> I bet Araq will tell you soon enough how to do it |
06:49:26 | FromGitter | <dom96> Although I'm curious, how is this enum declared in C? |
06:49:28 | ftsf | best i've got is define it as an int then make the values consts |
06:50:02 | ftsf | https://gist.github.com/ftsf/61b633c24c2a68178fe107936e6ac5f6 |
06:51:18 | * | jh32 quit (Remote host closed the connection) |
06:51:23 | FromGitter | <dom96> Does assigning those values to the enum's fields not work in Nim? |
06:52:56 | ftsf | the assignment is fine, but then it tries to or them together |
06:53:12 | ftsf | const JackOpenOptions* = (JackSessionID or JackServerName or JackNoStartServer or JackUseExactName) |
06:53:36 | ftsf | and there's no or operator defined for that type |
06:54:52 | FromGitter | <dom96> so define one |
06:55:13 | FromGitter | <dom96> or add a converter to an int |
06:55:26 | FromGitter | <dom96> although defining it is better IMO |
06:55:41 | ftsf | hmm I see |
06:55:50 | ftsf | didn't think of doing that in an include file, but yeah makes sense |
07:05:05 | * | Trustable joined #nim |
07:13:03 | * | gokr joined #nim |
07:14:40 | * | brechtm joined #nim |
07:18:01 | flyx | I think it should be possible to represent C bitfields with a set type |
07:18:27 | * | desophos quit (Read error: Connection reset by peer) |
07:19:16 | * | yglukhov joined #nim |
07:24:17 | * | yglukhov quit (Ping timeout: 240 seconds) |
07:26:41 | * | Andris_zbx joined #nim |
07:32:48 | * | Arrrr joined #nim |
08:14:16 | * | fredrik92 joined #nim |
08:17:30 | * | PMunch joined #nim |
08:25:34 | Araq | ftsf: for the enum use the log2 values and then create a set[] from it |
08:25:37 | * | LeNsTR|away is now known as lenstr |
08:25:37 | * | lenstr quit (Changing host) |
08:25:37 | * | lenstr joined #nim |
08:47:09 | * | zielmicha_ joined #nim |
08:49:59 | flyx | Araq: how can one ensure that the set has the correct size? |
08:53:01 | * | ^GaveUp^ joined #nim |
08:53:11 | * | dom96_ joined #nim |
08:53:30 | * | ldleworker joined #nim |
08:53:37 | * | gsingh93- joined #nim |
08:54:00 | * | zxtx_ joined #nim |
08:54:42 | * | stisa quit (*.net *.split) |
08:54:43 | * | baabelfish quit (*.net *.split) |
08:54:43 | * | Gonzih quit (*.net *.split) |
08:54:43 | * | dom96 quit (*.net *.split) |
08:54:43 | * | GaveUp quit (*.net *.split) |
08:54:43 | * | zielmicha quit (*.net *.split) |
08:54:43 | * | reactormonk quit (*.net *.split) |
08:54:43 | * | taotetek quit (*.net *.split) |
08:54:44 | * | zxtx quit (*.net *.split) |
08:54:44 | * | gsingh93 quit (*.net *.split) |
08:54:44 | * | ldlework quit (*.net *.split) |
08:54:44 | * | astocko quit (*.net *.split) |
08:54:44 | * | dom96_ is now known as dom96 |
08:54:46 | * | ^GaveUp^ is now known as GaveUp |
08:54:48 | * | gsingh93- is now known as gsingh93 |
08:55:12 | * | zielmicha_ is now known as zielmicha |
08:56:57 | * | zidane_g quit (Ping timeout: 240 seconds) |
08:58:34 | * | zidane_g joined #nim |
08:58:37 | * | pie_ quit (Ping timeout: 240 seconds) |
09:01:29 | * | pie_ joined #nim |
09:01:33 | * | reactormonk joined #nim |
09:01:56 | * | Gonzih joined #nim |
09:01:59 | * | baabelfish joined #nim |
09:02:19 | * | taotetek joined #nim |
09:02:19 | Araq | flyx: .size pragma |
09:02:43 | * | taotetek is now known as Guest35272 |
09:03:05 | flyx | Araq: seems to be missing in the manual |
09:11:24 | * | astocko joined #nim |
09:14:16 | * | yglukhov joined #nim |
09:14:50 | * | Demon_Fox joined #nim |
09:46:43 | FromGitter | <x86128> Is there any wiki or manual page that describes Nimrod-way to bind js web api's to nim when transpiling nim to js to run in browser? I mean API's like Canvas 2D that not yet implemented in standard lib. Post on forum http://forum.nim-lang.org/t/2138 looks like some hack. Realization of jsconsole.nim looks to complicated for me. |
09:47:57 | FromGitter | <endragor> @x86128 https://github.com/yglukhov/jsbind for example |
09:50:26 | enthus1ast | PMunch `continue` |
09:50:57 | enthus1ast | oh,was old :) |
09:51:00 | PMunch | Uhm, enthus1ast I think freenode is having some trouble today :P |
09:51:08 | PMunch | That was list night |
09:51:19 | FromGitter | <x86128> @endragor thanks, I'll take a look |
09:55:10 | FromGitter | <dom96> @x86128 in case you're interested, here is my wrapper https://gist.github.com/dom96/18413eb7e06b58727cc4d457c6b76fc9 |
10:01:59 | FromGitter | <x86128> @dom96 thnx |
10:08:36 | * | bjz joined #nim |
10:11:45 | PMunch | Hmm, I have a sequence of objects which have a string type and a "next" reference. Is there a way to do a "in" operation with a string? |
10:13:45 | Arrrr | contains? |
10:16:23 | PMunch | Hmm, contains? |
10:17:47 | Arrrr | If what you are asking is "how can i define the operator in for a certain type" then yes. |
10:22:24 | * | pafmaf_ joined #nim |
10:27:46 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
10:28:02 | FromGitter | <x86128> @dom96 do like that https://gist.github.com/x86128/5a8da267bdab7269867e2f95ef4b8c5c but resulting js file builds without main() definition, so cannot call from web page |
10:29:34 | enthus1ast | x86128, {.exportc.} ? |
10:30:14 | FromGitter | <x86128> like manual says http://nim-lang.org/docs/backends.html#the-javascript-target |
10:35:39 | hohlerde | so, what license should one choose for a development blog? or doesn't it really matter, as most ppl don't care about it? |
10:41:40 | enthus1ast | if you like anarchy leave it but then its technically not "gnu/free" i guess, also depends on the country you and the other side leaves in i guess. |
10:43:04 | * | elrood joined #nim |
10:44:59 | enthus1ast | hohlerde, want to start a nim blog? |
10:47:05 | * | bjz joined #nim |
10:48:36 | Calinou | hohlerde: preferably a free Creative Commons license, such as CC0, CC BY, CC BY-SA |
10:48:42 | hohlerde | yes, dom96 asked me to write a post about my experiences with nim for creating an ATM driver, so I thought it might be useful to have a blog :) not only for this particular post but in general to document all my mistakes while working with nim and go. so, I guess MIT or a CC license type would fit. |
10:48:54 | Calinou | MIT isn't made for non-software, but is technically acceptable |
10:49:07 | hohlerde | ah, ic |
10:50:23 | hohlerde | so CC-BY then |
10:52:08 | hohlerde | ah, CC0 also looks good |
10:52:13 | Calinou | CC0 is good because it's very simple |
10:52:15 | Calinou | no attribution required |
10:52:21 | Calinou | it's a good license for code snippets |
10:52:56 | hohlerde | sounds good |
11:01:36 | PMunch | hohlerde, if you haven't decided how to set it up yet I can recommend Couch which I used to set up my development log. You can find my posts on using it and Git to manage my site here: serv.peterme.net/devlog/tags/web.html |
11:01:57 | * | Snircle joined #nim |
11:03:11 | hohlerde | thanks PMunch, will take a look. I played around with hugo and the Lanyon theme port a bit but more options are always good. |
11:04:02 | * | vonh quit (Ping timeout: 268 seconds) |
11:04:02 | euantor | I use Hugo for my site with the Hyde theme, it works very well for me |
11:04:46 | PMunch | Couch is nice since you can take any HTML/CSS/JS template and simple define which regions should be managed and it will auto-generate the editor interface for you. |
11:05:06 | * | bjz_ joined #nim |
11:05:31 | hohlerde | so, PMunch, you haven't set a license for your blog posts? :) |
11:05:36 | * | bjz quit (Ping timeout: 260 seconds) |
11:06:31 | PMunch | Not really, as I mention on the site I write mostly for documentation/for my own retention, sharing is just a by-product. |
11:07:53 | PMunch | So it doesn't really matter where it ends up, although a kickback is always nice if someone do want to do something with it (although my server would probably melt if any of my posts ended up being shared too much :P) |
11:08:09 | * | jh32 joined #nim |
11:10:48 | hohlerde | :-) |
11:10:58 | * | vonh joined #nim |
11:21:52 | * | Arrrr quit (Quit: WeeChat 1.5) |
11:26:02 | * | brechtm_ joined #nim |
11:26:40 | * | Kingsquee quit (Quit: https://i.imgur.com/qicT3GK.gif) |
11:28:52 | hohlerde | PMunch: nice blog you have. nice content and good layout for reading. |
11:29:13 | * | brechtm quit (Ping timeout: 260 seconds) |
11:29:28 | hohlerde | euantor: do you mind sharing your blog? |
11:31:01 | euantor | @hohlerde: https://www.euantorano.co.uk/ |
11:31:29 | euantor | I don't write much on it, keep saying to myself that I'll write more, and never do |
11:33:14 | hohlerde | I guess we fall in the same category then :) but still, quality matters more than quantity, imho. |
11:33:44 | flyx | heh. I also have a frequency lesser than 1 o |
11:33:47 | flyx | post / year |
11:37:17 | FromGitter | <dom96> lol, have you guys seen my blog? |
11:37:35 | FromGitter | <dom96> Last time I wrote there I was still in high school http://picheta.me/ |
11:38:11 | euantor | Yep, that beats me |
11:39:41 | hohlerde | dom96: you have a good excuse, you worked on Nim in Action :D |
11:41:39 | FromGitter | <dom96> True. I plan to write a lot more on my blog once that's done. |
11:41:47 | FromGitter | <dom96> And it almost is! |
11:48:13 | gokr | hohlerde: I use Octopress for my blog: http://goran.krampe.se |
11:48:50 | gokr | There are tons of new neat site generators though - so Octopress is not something I ... particularly recommend (although it works fine for me). |
11:51:18 | flyx | I am still using Jekyll, but once I finished my super-secret project, I will have something better |
11:57:07 | hohlerde | gokr: didn't know it's using octopress. your articles about oop in nim helped me a lot! |
11:57:53 | * | brechtm_ quit (Remote host closed the connection) |
11:58:31 | * | brechtm joined #nim |
11:59:13 | enthus1ast | euantor, your layout is broken in chrome ;) |
11:59:56 | euantor | enthus1ast: Ah, thanks for warning me. I don't use Chrome, but will have to install it to check |
12:00:39 | enthus1ast | just a little |
12:00:40 | euantor | It seems to work when Chrome is fullscreen, but not when it's smaller. Strange... |
12:01:43 | euantor | It looks like the media queries aren't working, probably happened when I combined all the CSS into one file |
12:02:32 | PMunch | hohlerde, thanks :) The page width and font is based on LaTeX defaults and the rest is mostly designed to get out of the way. I figured that as someone had already done the work in how to lay out pages then why not just borrow it. |
12:03:27 | PMunch | It doesn't work too well on mobile though, which is something I have on my list of things to fix with it.. |
12:19:55 | * | PMunch quit (Quit: leaving) |
12:39:03 | ftsf | does nim have a nice pattern for deleting an item of a sequence during iteration? |
12:42:45 | * | gokr quit (Ping timeout: 248 seconds) |
12:49:57 | * | Demon_Fox quit (Ping timeout: 260 seconds) |
12:52:19 | * | Demon_Fox joined #nim |
12:52:48 | Araq | ftsf: use indexes and a while loop and delete() in the loop |
12:53:01 | Araq | it's not a nice pattern, but at least it works |
12:53:06 | ftsf | hmm okay, cool |
12:57:43 | ftsf | thanks |
13:17:17 | * | bjz_ quit (Ping timeout: 240 seconds) |
13:18:05 | * | bjz joined #nim |
13:27:08 | * | pafmaf_ quit (Read error: Connection reset by peer) |
13:28:21 | * | fredrik92 quit (Quit: Client disconnecting) |
13:44:07 | * | pregressive joined #nim |
13:48:53 | * | gokr joined #nim |
13:51:50 | * | Snircle quit (Quit: Textual IRC Client: www.textualapp.com) |
14:01:29 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
14:20:38 | gokr | hohlerde: Glad to hear ;) |
14:36:12 | * | so quit (*.net *.split) |
14:36:22 | * | so joined #nim |
14:37:53 | * | so quit (*.net *.split) |
14:40:15 | * | nsf quit (Quit: WeeChat 1.5) |
14:50:17 | * | enthus1ast quit (Ping timeout: 240 seconds) |
14:51:04 | * | enthus1ast joined #nim |
15:00:44 | * | enthus1ast quit (Ping timeout: 260 seconds) |
15:01:32 | * | enthus1ast joined #nim |
15:03:14 | * | desophos joined #nim |
15:38:41 | * | libman joined #nim |
15:38:52 | * | yglukhov_ joined #nim |
15:42:17 | * | yglukhov quit (Ping timeout: 240 seconds) |
15:42:57 | * | yglukhov_ quit (Ping timeout: 240 seconds) |
15:46:42 | * | UNIcodeX joined #nim |
15:47:43 | UNIcodeX | hello all. just thought i'd share something. A Nim binary that I made on an Arch linux box ran without any trouble on an old CentOS box |
15:48:07 | UNIcodeX | the same could not be said of Cython --embed, rust, or nuitka |
15:50:43 | GaveUp | getting rust to run on old libc is an exercise in frustration ... similar boat led me to nim |
15:52:48 | UNIcodeX | the cool thing is that even the normal "nim --opt:size -d:release c {prog}.nim" would run. Didn't even need the --os:standalone option for it to work. |
15:53:36 | UNIcodeX | granted... it's a very simple binary... but still |
15:53:40 | GaveUp | depends on what it was doing I imagine |
15:53:44 | dom96 | nice |
15:54:03 | UNIcodeX | GaveUp, roger |
15:54:12 | dom96 | Now write a blog post about it and make everyone envy us Nim programmers :) |
15:54:38 | UNIcodeX | lol. I may do that. Perhaps after some testing on how far I can go with it. |
15:54:43 | UNIcodeX | how complex it can get. |
15:55:02 | GaveUp | what I like is that you generally don't have to rebuild nim to target a new platform (right now anyway) ... just have you stock toolchain setup and go |
15:55:31 | UNIcodeX | GaveUp, that is a good "feature" |
15:56:10 | GaveUp | after months of cursing and rebuilding the rust I agree |
15:56:16 | UNIcodeX | hahaha! |
16:02:36 | * | Andris_zbx quit (Remote host closed the connection) |
16:03:29 | * | fredrik92 joined #nim |
16:06:39 | * | libman is thinking in terms of making a table of empirically-measurable attributes of various programming languages (or specific implementations / configurations for those languages). We all know existing language popularity and benchmarking estimates, but there's a lot more to measure. |
16:09:54 | libman | Some of those attributes would be scored based on arbitrary standards, like figure skating, but it's still helpful to have a score. |
16:11:02 | libman | I'm sure y'all are already sick of my focus on the "Copyfreedom" ("Do Whatever You Want, No Threats, No Legalese") attribute, for which Nim does particularly well. That one scores a the license of the language implementations, essential tooling, stdlib, package ecosystem (ex. nimble) based on license restrictiveness of the packages and their dependencies, etc. |
16:12:07 | libman | And so, looking at UNIcodeX's remarks, I am wondering how this virtue in a language can be defined, quantified, scored, and benchmarked. |
16:12:46 | libman | Inter-Unix Compile Once Run Anywhere On Same Architecture? |
16:13:20 | * | kulelu88 joined #nim |
16:13:47 | libman | How would we benchmark this quality of Nim compared to its closest competitors (Go, Swift, Rust, Haskell, C++, etc). |
16:24:43 | cheatfate | latest gdb supports debugging rust apps, its a little bit unfair |
16:32:40 | * | pafmaf joined #nim |
16:41:37 | * | yglukhov joined #nim |
16:46:17 | * | yglukhov quit (Ping timeout: 268 seconds) |
16:46:37 | * | brechtm_ joined #nim |
16:49:49 | * | brechtm quit (Ping timeout: 260 seconds) |
16:52:27 | euantor | Is Swift supported on any Linux release that isn't Ubuntu yet? |
16:52:58 | euantor | And they still have no Windows support, which immediately takes it off the table for my usage |
16:55:26 | euantor | I did implement two functions that they were missing in their core library, and it was very painful compared to the Nim implementation: https://github.com/apple/swift-corelibs-foundation/blob/master/Foundation/NSFileManager.swift#L227 |
16:56:00 | euantor | https://github.com/apple/swift-corelibs-foundation/commit/12df0aa59f25e49d6fd08a7f1e812aca041d1459 |
16:56:27 | euantor | They have improved it since my original commit (with a better way of creating a Swift string from a C string), but it's still quite messy |
17:00:48 | dom96 | yeah... amazing how much power Mozilla, Google and Apple have. |
17:07:12 | * | yglukhov joined #nim |
17:13:55 | * | PMunch joined #nim |
17:25:02 | * | yglukhov quit (Remote host closed the connection) |
17:29:46 | * | Matthias247 joined #nim |
17:29:50 | UNIcodeX | libman, I was out for lunch. Yea. That would be useful to have I'd think. An ease of portability indicator of some sort. |
17:30:37 | * | yglukhov joined #nim |
17:34:24 | * | shodan45 joined #nim |
17:40:57 | * | brson joined #nim |
17:44:27 | * | nsf joined #nim |
17:56:16 | * | yglukhov quit (Remote host closed the connection) |
17:58:42 | libman | The equivalent of `nimble install`, `go get`, etc should work on any platform (any language where it doesn't would get points deducted). But how do you measure the degree of portability beyond that? Whether binary compiled under one Unix (which one?) will work for a list of others? |
18:02:15 | * | regtools joined #nim |
18:02:22 | * | ARCADIVS joined #nim |
18:04:26 | UNIcodeX | libman, that's pretty much how I was thinking it would work |
18:05:44 | UNIcodeX | so far i've tested up to the crc example at https://hookrace.net/blog/what-is-special-about-nim/ |
18:05:53 | * | pregressive quit (Remote host closed the connection) |
18:06:03 | UNIcodeX | still pretty simple example, but working upward til i can find a failure |
18:06:12 | * | pregressive joined #nim |
18:06:21 | libman | I guess the Go devs would say "it's easier to `go get` than to download a binary"... |
18:06:55 | UNIcodeX | i suppose. build times are pretty low for both. and then you have package maintainers who do all the work for a user usually. |
18:07:15 | UNIcodeX | still. it's a pretty cool feather to have in the cap so to speak. |
18:07:20 | libman | Distributing the code is a good idea anyway, and binary transfer can miss out on some performance and security advantages of #UseTheSourceLuke |
18:07:29 | UNIcodeX | true |
18:07:56 | libman | I'm a Nim fan, I'm just brainstorming for ways to promote it. |
18:08:09 | libman | (In an objective rationalist philosophical way.) |
18:08:43 | UNIcodeX | sure. waste the least amount of time on that which will not be fruitful by thinking in depth about the possible outcomes. |
18:09:53 | UNIcodeX | the obvious features that are eye catching are the ones already touched on. those of speed, portability (of code due to compilation to C), simplicity, |
18:21:53 | * | yglukhov joined #nim |
18:22:17 | * | vonh quit (Ping timeout: 240 seconds) |
18:29:20 | * | vonh joined #nim |
18:33:37 | * | vonh quit (Ping timeout: 240 seconds) |
18:37:31 | * | GustavoLapasta joined #nim |
18:40:24 | * | vonh joined #nim |
18:42:43 | GaveUp | simplicity is a pretty vague statement ... simple in what? |
18:44:34 | UNIcodeX | well. that's true i guess. it's too relative of a term. what one finds simple, someone else may not. |
18:45:48 | * | chemist69 quit (Ping timeout: 250 seconds) |
18:48:15 | UNIcodeX | it's fairly easy to compile to a binary. as well as to comprehend the basic concepts of how the language works. I guess that's what i meant. |
18:49:16 | UNIcodeX | the internals are most likely complex. as anything which makes its usage easier, usually has a good bit of stuff going on under the surface. |
18:56:27 | GaveUp | playing devils advocate... easy to compile sure, but some things are less straight forward ... say building release mode with nimble without installing. On the language side you could argue complex because of how many ways there are to express something ... blah.someFunc() == someFunc(blah) == blah.some_func() |
18:57:36 | GaveUp | also, the first time I looked at it I grabbed X library and it failed to build because of breaking changes in the compiler ... last thing you want as a newb is to have to start debugging something like that |
18:58:42 | UNIcodeX | I'm new to this language, so I guess I'm just speaking based off my initial experiences. I haven't had any weird use cases yet. |
18:59:08 | UNIcodeX | Why do you like it? You're in the channel, so that must mean something. |
19:00:00 | GaveUp | because it works for what I need (targeting mips) and is less painful than writing C |
19:00:27 | UNIcodeX | "less painful than writing c" was the crux of "simplicity" above. |
19:00:44 | dom96 | GaveUp: please create issues about things you didn't find straightforward, only way we can improve :) |
19:01:19 | GaveUp | dom96: I may ... what I need is to spend more time reasoning out why things are how they are |
19:01:33 | GaveUp | I rather not shoot my mouth off about things I don't know |
19:01:46 | dom96 | GaveUp: yes, but once you do that you won't think that these initial issues were such a big deal |
19:01:46 | hohlerde | "less painful than writing c" could also point to the expressiveness and elegance (metaprogramming) of nim |
19:02:03 | dom96 | If it caused you trouble then it's worth an issue |
19:02:24 | dom96 | And if somebody tells you otherwise then CC me and I will set them straight ;) |
19:02:29 | UNIcodeX | as far as libraries failing to build, the language is just now getting started. things will change in the early stages to make way for better ways of doing things. While this can be annoying, it's actually a good thing, due to the fact that compatibility with the previous solution, could make things slower, or more convoluded. |
19:02:53 | UNIcodeX | "just now getting started" **in relation to other languages that is. |
19:03:30 | GaveUp | dom96: from the newb standpoint there were only two big things that were annoying ... the broken libraries which should become less of an issue as things stabilize and the multiple ways of writing something ... gut reaction to the latter is it could lead to hard to read code |
19:04:55 | dom96 | everybody has that gut reaction, in some ways I attribute it to human nature. |
19:05:08 | dom96 | I haven't had any issues because of it yet |
19:05:16 | UNIcodeX | that's a valid concern. I rather like the fact that something can be written multiple ways. The examples listed above are not all that different from each other, so as to be interpreted as anything other than their intended purposes. |
19:05:21 | UNIcodeX | IMHO |
19:05:34 | GaveUp | I still run in to it because I forget about it and the compiler messages can be a bit unclear |
19:05:58 | UNIcodeX | i agree that compiler messages can always be improved in any language. |
19:06:08 | dom96 | in what ways are you running into it? |
19:06:15 | dom96 | bbl |
19:06:43 | GaveUp | I'll have two variables overlap each other because of camel casing vs underscore notation |
19:07:46 | GaveUp | which is really a side effect of my tendency to use underscore when writing c-esque code and camel casing for OO |
19:08:53 | GaveUp | UNIcodeX: that's one spot I think rust really excelled in ... given its compiler reminds me of functional languages (ie: just getting something to compile is a win) the errors it produces were helpful |
19:09:01 | GaveUp | especially compared to haskell (ugh!) |
19:09:33 | UNIcodeX | :nods: |
19:09:45 | GaveUp | haskell and c++ are tied on my list of annoying compiler messages |
19:09:56 | * | GustavoLapasta quit (Quit: Leaving) |
19:10:06 | UNIcodeX | "something went wrong in 219032jdio9arj9j0jd"... gee thanks... |
19:10:07 | UNIcodeX | lol |
19:10:31 | UNIcodeX | to paraphrase... |
19:10:33 | GaveUp | and the haskell exquivilant involves a few more symbols |
19:12:16 | UNIcodeX | well... we must not forget COBOL's periods |
19:12:36 | GaveUp | <obligatory fsck cobol/> |
19:12:43 | UNIcodeX | right |
19:12:49 | * | chemist69 joined #nim |
19:13:02 | GaveUp | I have to deal with that crap way more than I'd like to |
19:13:16 | * | GustavoLapasta joined #nim |
19:13:17 | UNIcodeX | :feels for GaveUp: |
19:14:43 | UNIcodeX | ugh. i need to take a walk. bbl |
19:14:54 | GaveUp | don't know what's worse... dealing with that language or dealing with the people that write it |
19:15:17 | * | GustavoLapasta quit (Client Quit) |
19:18:51 | * | irrequietus joined #nim |
19:22:48 | * | btbytes joined #nim |
19:23:01 | libman | This "Language Choice Matrix" project is just brainstorming at this stage, but slowly inching forward, conceptualizing the various comparison methods. I don't know if it will save anyone time - philosophy is more often a waste of time, LOL... |
19:26:11 | GaveUp | was skimming through the arch patterns pdf oreilly is giving away ... the way they organized that would be more useful than a matrix I think. Basically a brief description, common use cases, and then a ranking under a few categories with brief reasoning |
19:26:20 | libman | Regarding comparing "simplicity", or rather "Code Aesthetics": I think the best way would be to make a Web App that mines out code examples from Rosetta Code of just the languages being compared, lets people log in with their GitHub account, and then rank various implementations on a 1-10 scale. |
19:27:25 | GaveUp | I don't find rosetta code to be that great for looking at a new language ... too many shortcuts taken that you wouldn't do in a real app |
19:29:39 | libman | An LCM (Language Choice Matrix) attribute Nim wouldn't score best at is "Programmer Interchangeability", which is what Java/C# and especially Go would rank good at. ;) |
19:30:43 | libman | Go deliberately limits features and forces everyone into a narrow mediocre way of doing things. Nim is pretty much the opposite. |
19:31:05 | GaveUp | half a dozen years ago I'd have agreed C# would rank high ... now I'm not so sure |
19:31:12 | flyx | libman: I have maintained enough Java code from a lot of different people to disagree. |
19:31:15 | GaveUp | and that's coming from a .net dev |
19:31:26 | GaveUp | also that re java |
19:32:26 | flyx | Mockito is an excellent example of how different you can make your code look like compared to „standard“ Java code |
19:32:27 | GaveUp | c# has picked up a lot of nice features from functional style ... side effect being there are almost completely different styles things are written in |
19:32:59 | euantor | Most C# code tends to be fairly similar though |
19:33:17 | euantor | VB is the worst offender within the .NET family |
19:33:38 | euantor | Some old developers hanging onto concepts from VB6, everybody else following modern practices |
19:33:50 | GaveUp | euantor: common design patterns yeah ... but reliance on linq is a big one that really bites some people ... particularly newer devs |
19:34:13 | euantor | Eg: The old `Mid`, `Mid$` (The `$` version is faster... go figure), `Left`, `Left$` from VB6 vs `.Substring()` |
19:34:15 | GaveUp | that is not realizing the side-effects of using it (lazy evaluation, multiple enumerations, etc) |
19:34:23 | euantor | True |
19:34:36 | euantor | And people with a weak understanding of Async/Await |
19:34:40 | libman | One answer to "why the heck is Java so popular in business" I often hear is that Java programmers are easy to replace. JavaCoderFactory schools and certifications are the biggest part of the reason why, but boilerplate is a contributing factor. I think Go is aiming at programmer interchangeability even more, with a lot more limitations. |
19:35:02 | GaveUp | heh there's one thing in Nim that I liken to VB: lambda syntax |
19:35:39 | GaveUp | euantor: async/await isn't too bad ... the ConfigureAwait() is what seems to get everyone |
19:36:29 | GaveUp | libman: I think of it like the cobol of "modern" languages ... it's so entrenched in so many places that getting rid of it is near impossible |
19:36:33 | * | libman didn't code MS since VS6, and avoided Java like a plague except one book in like 1996 and one mandatory CS class in 2002. |
19:36:39 | euantor | Yeah, but a lot of people can't seem to wrap their heads around it somehow |
19:36:40 | GaveUp | also see FizzBuzz Enterprise |
19:37:10 | GaveUp | probably because async code is a fairly foreign concept for a lot of business app devs |
19:37:25 | euantor | I work with a team of people with very little formal programming teaching (electrical engineers) who are used to the older ways of doing things |
19:37:36 | libman | The easiest concurrency I've ever implemented was in shell script. /noob |
19:38:05 | euantor | But the same also applies to some university students doing internships. We had two last year who were shockingly bad, and were on Computer Science courses |
19:38:26 | GaveUp | devs coming out of states schools are scary |
19:38:37 | euantor | Yep |
19:39:05 | euantor | Anyway, this should probably shift to #nim-offtopic ;) |
19:39:18 | GaveUp | haha |
19:41:12 | libman | Once I'm done philosophizing and finally start coding, I'd like to do a bitcoin freelancing site for my Stack Of Choice (hopefully focused on Nim). Contenders will be judged by their GitHub portfolios. This would be the grass roots alternative to Java schools and RH/Ora certs. |
19:42:11 | GaveUp | heh my github portfolio bites |
19:46:31 | * | GustavoLapasta joined #nim |
19:58:40 | * | allan0 quit (Quit: no) |
20:01:28 | * | allan0 joined #nim |
20:01:57 | * | enthus1ast quit (Ping timeout: 240 seconds) |
20:04:10 | UNIcodeX | I'm self taught on Python, Bash, and a little Pascal (not much). What would make Python absolutely soar above all the rest, for me at least, would be to have _BUILT_IN_ compilation to C and fix the GIL. I love just about everything else about it. The speed just isn't there for things that would benefit from said speed. |
20:04:36 | UNIcodeX | Cython is great, but you still have to have libpython... really??? |
20:04:57 | GaveUp | I'm in the minority that do not like python |
20:05:00 | UNIcodeX | same with nuitka, but at least it packages it all up in a directory with supporting libraries |
20:06:21 | * | btbytes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
20:07:28 | * | enthus1ast joined #nim |
20:08:59 | * | btbytes joined #nim |
20:09:22 | dom96 | GaveUp: I would say that having two different variables with names that only differ by style is a bad habit. Nim is improving your habits ;) |
20:09:43 | dom96 | Whew. Meeting about book finished. |
20:09:52 | * | libman would like to see Nim as a multi-frontend multi-backend compiler project. Different people have different code aesthetics. |
20:10:12 | dom96 | Now I have a month to make last changes D: |
20:10:17 | dom96 | and there is a lot to do :( |
20:10:37 | dom96 | But I'm excited |
20:10:39 | GaveUp | dom96: I can't say it's not a bad habit ... all I can say is it's due to the combination of OO and non-OO styles nim has |
20:10:53 | UNIcodeX | libman, you mean as in building Nim to be able to handle compiling Go, or Python, or whatever into C, javascript, etc...? |
20:11:19 | libman | So like there could then be an almost-Python variant of Nim (like Crystal is "almost Ruby"), or a curly-brace variant, etc - which would get compiled to the same AST as normal Nim, and be 100% inter-operable with everything else in Nim-land. |
20:12:02 | libman | But that's just an idea, completely detached from reality. :P |
20:12:31 | Araq | libman: no, that idea was behind Nim's initial design |
20:12:48 | Araq | but nobody ever implemented the alternative syntax "skins" |
20:13:23 | GaveUp | there's the metaprogramming article that starts down that path with the more traditional OO syntax |
20:13:31 | libman | cooool! :D |
20:14:11 | dom96 | I still think that macros can give us something that is very much like Python |
20:14:21 | * | Kingsquee joined #nim |
20:14:23 | dom96 | or better yet, the new type annotation-enhanced Python |
20:14:24 | libman | Having a "skin" that using C-like curly braces without one-off rule would like double Nim's appeal overnight. |
20:14:28 | dom96 | It's on my to do list to create this |
20:14:38 | dom96 | Maybe somebody else would be interested? |
20:15:28 | * | libman is reminded of Synchronet BBS, which was so awesome that it could emulate all of its competitors. /90sFlashback |
20:15:31 | GaveUp | libman: I don't know about that ... whoever is coming in to the language is going to need to know the "base" syntax since that's what the majority of code/examples are written in |
20:15:45 | UNIcodeX | dom96, even the type annotated python doesn't really help with speed. perhaps it will in the future... |
20:16:03 | libman | Sadly most people I tried to convince on Nim were mostly sour on the off-side-rule (which I personally think is awesome). |
20:16:14 | dom96 | UNIcodeX: yes, but a macro that emulates this syntax in Nim would. |
20:16:56 | UNIcodeX | dom96, oh yea. i fully understand the implications for Nim. Just dissappointing that it doesnt help much with Python. I have really no incentive to use it there is all i meant. |
20:16:56 | dom96 | libman: I wish I could live in the 90s. Back when the internet wasn't mainstream, it seems like such a simpler time. |
20:17:03 | GaveUp | if you could get a macro to the point of being able to parse X language code and compile it that'd be interesting |
20:17:35 | GaveUp | yeah I miss the bbs days |
20:17:47 | GaveUp | and tw2002 ... argh that was an addicting door |
20:17:50 | dom96 | GaveUp: that would basically be like writing a "transpiler" (sorry Araq, I know you hate this word) |
20:18:04 | GaveUp | dom96: yeah |
20:18:51 | GaveUp | I could see it drawing the interest of people, assuming you could get the performance gains of compiling. |
20:18:57 | libman | The average IQ of the Internet has been falling steadily for 40 years. |
20:19:25 | Araq | dom96: it's not that I hate this word, I think it has no meaning. |
20:19:31 | GaveUp | it's just more acurately reflecting the IQ of society as a whole |
20:19:34 | Araq | so what do you mean? |
20:28:04 | * | pafmaf quit (Ping timeout: 250 seconds) |
20:36:22 | * | Snircle joined #nim |
20:39:03 | * | bjz joined #nim |
20:45:00 | * | BratwurstMitSenf joined #nim |
21:01:11 | UNIcodeX | how do you get the type of a variable? in python it's type(x) |
21:05:34 | Araq | you can use import typetraits; echo x.type.name |
21:05:42 | UNIcodeX | oh. k |
21:06:07 | * | BratwurstMitSenf left #nim (#nim) |
21:06:11 | Araq | but usually it's the wrong question. Nim is statically typed, you know the type or can ask nimsuggest about it |
21:06:37 | * | Kingsquee quit (Ping timeout: 240 seconds) |
21:07:09 | UNIcodeX | thanks |
21:10:50 | UNIcodeX | I only asked because in the tutorial, there is a section where var x is assigned as "abc". Obviously we know that is a string, but it was instantiated without using var x: string = "abc", so Nim type infers this, but I thought it may be possible, when assigning from the output of another function or object, etc.. that the type may not be known. This could be just because i'm so used to using dynamically typed Python. |
21:17:57 | * | chemist69 quit (Ping timeout: 240 seconds) |
21:18:16 | * | btbytes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
21:20:27 | * | chemist69 joined #nim |
21:21:12 | UNIcodeX | one thing that makes more sense to me is Nim's "for i in 0..10: echo i" actually prints 0 through 10 on separate lines, while Python's "for i in range(0, 10): print(i)" only prints 0 through 9 on separate lines..... |
21:22:31 | * | gangstacat quit (Quit: Ĝis) |
21:22:52 | * | gangstacat joined #nim |
21:23:15 | * | planhths joined #nim |
21:24:25 | Araq | UNIcodeX: for i in 0..<10: echo i # doesn't print the 10 :-) |
21:24:26 | * | planhths quit (Client Quit) |
21:24:33 | Araq | Nim got the best of both worlds |
21:32:51 | * | ofelas quit (Quit: shutdown -h now) |
21:33:44 | UNIcodeX | Araq, :) |
21:34:23 | * | ofelas joined #nim |
21:34:33 | UNIcodeX | Python assumes that you want to stop at 10 iterations and not continue into the range. |
21:34:47 | UNIcodeX | well... i'm off for the day. |
21:34:50 | UNIcodeX | TTYL |
21:34:59 | Araq | you're welcome |
21:35:28 | UNIcodeX | ;) |
21:35:58 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
21:41:19 | * | GustavoLapasta quit (Quit: Leaving) |
21:43:12 | * | Kingsquee joined #nim |
21:46:55 | * | yglukhov quit (Remote host closed the connection) |
21:52:50 | Araq | oh hey guys, would be nice if the windows users could run the new upcoming 'koch finish' in devel and report any problems |
21:54:23 | dom96 | Anybody interested in writing something that visualises the 2016 US election data? FiveThirtyEight has some nice data feeds https://github.com/fivethirtyeight/data/issues/72#issuecomment-252676908 |
21:55:56 | * | nsf quit (Quit: WeeChat 1.5) |
21:58:56 | * | btbytes joined #nim |
22:04:07 | * | Demon_Fox quit (Remote host closed the connection) |
22:10:35 | PMunch | dom96, what kind of visualization were you thinking? |
22:10:52 | dom96 | I wasn't thinking of any |
22:10:57 | PMunch | :P |
22:10:58 | dom96 | Just thought someone might find the data useful |
22:11:25 | * | Trustable quit (Remote host closed the connection) |
22:12:01 | * | elrood quit (Quit: Leaving) |
22:18:10 | * | btbytes quit (Quit: Textual IRC Client: www.textualapp.com) |
22:18:28 | * | enthus1ast quit (Ping timeout: 260 seconds) |
22:18:46 | * | enthus1ast joined #nim |
22:19:49 | * | Sentreen quit (Read error: Connection reset by peer) |
22:20:24 | * | Sentreen joined #nim |
22:28:48 | * | pregressive quit (Ping timeout: 260 seconds) |
22:35:17 | * | bjz joined #nim |
22:38:14 | * | bjz quit (Client Quit) |
22:39:36 | * | bjz joined #nim |
22:43:46 | * | PMunch quit (Quit: leaving) |
22:46:56 | * | Kingsquee quit (Ping timeout: 260 seconds) |
22:47:25 | * | yglukhov joined #nim |
22:51:57 | * | yglukhov quit (Ping timeout: 260 seconds) |
22:54:16 | enthus1ast | Araq, Could not patch 'config/nim.cfg' [Error] |
22:54:29 | enthus1ast | Reason: patch substring not found: |
22:54:29 | enthus1ast | #gcc.path = r"$nim\dist\mingw\bin" |
22:59:27 | enthus1ast | the line in the config is: gcc.path = r"C:\Nim\dist\mingw\bin" |
23:00:32 | enthus1ast | adding to path seems to work fine |
23:01:13 | * | pie_ quit (Ping timeout: 268 seconds) |
23:02:20 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
23:13:30 | * | irrequietus quit () |
23:17:35 | * | Matthias247 quit (Read error: Connection reset by peer) |
23:27:54 | * | fredrik92 quit (Read error: Connection reset by peer) |
23:29:45 | * | gokr quit (Ping timeout: 260 seconds) |
23:31:07 | * | ftsf_ joined #nim |
23:49:29 | * | bjz joined #nim |