<< 10-10-2016 >>

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:19ftsfhmm 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:52FromGitter<dom96> ftsf: try running it through c2nim, should tell you how to do it.
06:46:59ftsfdom96, nope
06:47:06ftsfi'm trying to edit the output from c2nim
06:47:14FromGitter<dom96> oh
06:47:26ftsfit's struggling on the jack headers
06:48:53FromGitter<dom96> in that case I'm not sure
06:49:02FromGitter<dom96> I bet Araq will tell you soon enough how to do it
06:49:26FromGitter<dom96> Although I'm curious, how is this enum declared in C?
06:49:28ftsfbest i've got is define it as an int then make the values consts
06:50:02ftsfhttps://gist.github.com/ftsf/61b633c24c2a68178fe107936e6ac5f6
06:51:18*jh32 quit (Remote host closed the connection)
06:51:23FromGitter<dom96> Does assigning those values to the enum's fields not work in Nim?
06:52:56ftsfthe assignment is fine, but then it tries to or them together
06:53:12ftsfconst JackOpenOptions* = (JackSessionID or JackServerName or JackNoStartServer or JackUseExactName)
06:53:36ftsfand there's no or operator defined for that type
06:54:52FromGitter<dom96> so define one
06:55:13FromGitter<dom96> or add a converter to an int
06:55:26FromGitter<dom96> although defining it is better IMO
06:55:41ftsfhmm I see
06:55:50ftsfdidn'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:01flyxI 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:34Araqftsf: 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:59flyxAraq: 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:19Araqflyx: .size pragma
09:02:43*taotetek is now known as Guest35272
09:03:05flyxAraq: 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:43FromGitter<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:57FromGitter<endragor> @x86128 https://github.com/yglukhov/jsbind for example
09:50:26enthus1astPMunch `continue`
09:50:57enthus1astoh,was old :)
09:51:00PMunchUhm, enthus1ast I think freenode is having some trouble today :P
09:51:08PMunchThat was list night
09:51:19FromGitter<x86128> @endragor thanks, I'll take a look
09:55:10FromGitter<dom96> @x86128 in case you're interested, here is my wrapper https://gist.github.com/dom96/18413eb7e06b58727cc4d457c6b76fc9
10:01:59FromGitter<x86128> @dom96 thnx
10:08:36*bjz joined #nim
10:11:45PMunchHmm, 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:45Arrrrcontains?
10:16:23PMunchHmm, contains?
10:17:47ArrrrIf 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:02FromGitter<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:34enthus1astx86128, {.exportc.} ?
10:30:14FromGitter<x86128> like manual says http://nim-lang.org/docs/backends.html#the-javascript-target
10:35:39hohlerdeso, 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:40enthus1astif 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:59enthus1asthohlerde, want to start a nim blog?
10:47:05*bjz joined #nim
10:48:36Calinouhohlerde: preferably a free Creative Commons license, such as CC0, CC BY, CC BY-SA
10:48:42hohlerdeyes, 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:54CalinouMIT isn't made for non-software, but is technically acceptable
10:49:07hohlerdeah, ic
10:50:23hohlerdeso CC-BY then
10:52:08hohlerdeah, CC0 also looks good
10:52:13CalinouCC0 is good because it's very simple
10:52:15Calinouno attribution required
10:52:21Calinouit's a good license for code snippets
10:52:56hohlerdesounds good
11:01:36PMunchhohlerde, 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:11hohlerdethanks 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:02euantorI use Hugo for my site with the Hyde theme, it works very well for me
11:04:46PMunchCouch 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:31hohlerdeso, PMunch, you haven't set a license for your blog posts? :)
11:05:36*bjz quit (Ping timeout: 260 seconds)
11:06:31PMunchNot really, as I mention on the site I write mostly for documentation/for my own retention, sharing is just a by-product.
11:07:53PMunchSo 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:48hohlerde:-)
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:52hohlerdePMunch: nice blog you have. nice content and good layout for reading.
11:29:13*brechtm quit (Ping timeout: 260 seconds)
11:29:28hohlerdeeuantor: do you mind sharing your blog?
11:31:01euantor@hohlerde: https://www.euantorano.co.uk/
11:31:29euantorI don't write much on it, keep saying to myself that I'll write more, and never do
11:33:14hohlerdeI guess we fall in the same category then :) but still, quality matters more than quantity, imho.
11:33:44flyxheh. I also have a frequency lesser than 1 o
11:33:47flyxpost / year
11:37:17FromGitter<dom96> lol, have you guys seen my blog?
11:37:35FromGitter<dom96> Last time I wrote there I was still in high school http://picheta.me/
11:38:11euantorYep, that beats me
11:39:41hohlerdedom96: you have a good excuse, you worked on Nim in Action :D
11:41:39FromGitter<dom96> True. I plan to write a lot more on my blog once that's done.
11:41:47FromGitter<dom96> And it almost is!
11:48:13gokrhohlerde: I use Octopress for my blog: http://goran.krampe.se
11:48:50gokrThere are tons of new neat site generators though - so Octopress is not something I ... particularly recommend (although it works fine for me).
11:51:18flyxI am still using Jekyll, but once I finished my super-secret project, I will have something better
11:57:07hohlerdegokr: 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:13enthus1asteuantor, your layout is broken in chrome ;)
11:59:56euantorenthus1ast: Ah, thanks for warning me. I don't use Chrome, but will have to install it to check
12:00:39enthus1astjust a little
12:00:40euantorIt seems to work when Chrome is fullscreen, but not when it's smaller. Strange...
12:01:43euantorIt looks like the media queries aren't working, probably happened when I combined all the CSS into one file
12:02:32PMunchhohlerde, 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:27PMunchIt 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:03ftsfdoes 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:48Araqftsf: use indexes and a while loop and delete() in the loop
12:53:01Araqit's not a nice pattern, but at least it works
12:53:06ftsfhmm okay, cool
12:57:43ftsfthanks
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:38gokrhohlerde: 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:43UNIcodeXhello 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:07UNIcodeXthe same could not be said of Cython --embed, rust, or nuitka
15:50:43GaveUpgetting rust to run on old libc is an exercise in frustration ... similar boat led me to nim
15:52:48UNIcodeXthe 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:36UNIcodeX granted... it's a very simple binary... but still
15:53:40GaveUpdepends on what it was doing I imagine
15:53:44dom96nice
15:54:03UNIcodeXGaveUp, roger
15:54:12dom96Now write a blog post about it and make everyone envy us Nim programmers :)
15:54:38UNIcodeXlol. I may do that. Perhaps after some testing on how far I can go with it.
15:54:43UNIcodeXhow complex it can get.
15:55:02GaveUpwhat 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:31UNIcodeXGaveUp, that is a good "feature"
15:56:10GaveUpafter months of cursing and rebuilding the rust I agree
15:56:16UNIcodeXhahaha!
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:54libmanSome of those attributes would be scored based on arbitrary standards, like figure skating, but it's still helpful to have a score.
16:11:02libmanI'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:07libmanAnd so, looking at UNIcodeX's remarks, I am wondering how this virtue in a language can be defined, quantified, scored, and benchmarked.
16:12:46libmanInter-Unix Compile Once Run Anywhere On Same Architecture?
16:13:20*kulelu88 joined #nim
16:13:47libmanHow would we benchmark this quality of Nim compared to its closest competitors (Go, Swift, Rust, Haskell, C++, etc).
16:24:43cheatfatelatest 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:27euantorIs Swift supported on any Linux release that isn't Ubuntu yet?
16:52:58euantorAnd they still have no Windows support, which immediately takes it off the table for my usage
16:55:26euantorI 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:00euantorhttps://github.com/apple/swift-corelibs-foundation/commit/12df0aa59f25e49d6fd08a7f1e812aca041d1459
16:56:27euantorThey 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:48dom96yeah... 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:50UNIcodeXlibman, 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:42libmanThe 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:26UNIcodeXlibman, that's pretty much how I was thinking it would work
18:05:44UNIcodeXso 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:03UNIcodeXstill pretty simple example, but working upward til i can find a failure
18:06:12*pregressive joined #nim
18:06:21libmanI guess the Go devs would say "it's easier to `go get` than to download a binary"...
18:06:55UNIcodeXi 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:15UNIcodeXstill. it's a pretty cool feather to have in the cap so to speak.
18:07:20libmanDistributing the code is a good idea anyway, and binary transfer can miss out on some performance and security advantages of #UseTheSourceLuke
18:07:29UNIcodeXtrue
18:07:56libmanI'm a Nim fan, I'm just brainstorming for ways to promote it.
18:08:09libman(In an objective rationalist philosophical way.)
18:08:43UNIcodeXsure. waste the least amount of time on that which will not be fruitful by thinking in depth about the possible outcomes.
18:09:53UNIcodeXthe 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:43GaveUpsimplicity is a pretty vague statement ... simple in what?
18:44:34UNIcodeXwell. 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:15UNIcodeXit'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:16UNIcodeXthe 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:27GaveUpplaying 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:36GaveUpalso, 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:42UNIcodeXI'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:08UNIcodeXWhy do you like it? You're in the channel, so that must mean something.
19:00:00GaveUpbecause it works for what I need (targeting mips) and is less painful than writing C
19:00:27UNIcodeX"less painful than writing c" was the crux of "simplicity" above.
19:00:44dom96GaveUp: please create issues about things you didn't find straightforward, only way we can improve :)
19:01:19GaveUpdom96: I may ... what I need is to spend more time reasoning out why things are how they are
19:01:33GaveUpI rather not shoot my mouth off about things I don't know
19:01:46dom96GaveUp: yes, but once you do that you won't think that these initial issues were such a big deal
19:01:46hohlerde"less painful than writing c" could also point to the expressiveness and elegance (metaprogramming) of nim
19:02:03dom96If it caused you trouble then it's worth an issue
19:02:24dom96And if somebody tells you otherwise then CC me and I will set them straight ;)
19:02:29UNIcodeXas 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:53UNIcodeX"just now getting started" **in relation to other languages that is.
19:03:30GaveUpdom96: 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:55dom96everybody has that gut reaction, in some ways I attribute it to human nature.
19:05:08dom96I haven't had any issues because of it yet
19:05:16UNIcodeXthat'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:21UNIcodeXIMHO
19:05:34GaveUpI still run in to it because I forget about it and the compiler messages can be a bit unclear
19:05:58UNIcodeXi agree that compiler messages can always be improved in any language.
19:06:08dom96in what ways are you running into it?
19:06:15dom96bbl
19:06:43GaveUpI'll have two variables overlap each other because of camel casing vs underscore notation
19:07:46GaveUpwhich is really a side effect of my tendency to use underscore when writing c-esque code and camel casing for OO
19:08:53GaveUpUNIcodeX: 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:01GaveUpespecially compared to haskell (ugh!)
19:09:33UNIcodeX:nods:
19:09:45GaveUphaskell and c++ are tied on my list of annoying compiler messages
19:09:56*GustavoLapasta quit (Quit: Leaving)
19:10:06UNIcodeX"something went wrong in 219032jdio9arj9j0jd"... gee thanks...
19:10:07UNIcodeXlol
19:10:31UNIcodeXto paraphrase...
19:10:33GaveUpand the haskell exquivilant involves a few more symbols
19:12:16UNIcodeXwell... we must not forget COBOL's periods
19:12:36GaveUp<obligatory fsck cobol/>
19:12:43UNIcodeXright
19:12:49*chemist69 joined #nim
19:13:02GaveUpI have to deal with that crap way more than I'd like to
19:13:16*GustavoLapasta joined #nim
19:13:17UNIcodeX:feels for GaveUp:
19:14:43UNIcodeXugh. i need to take a walk. bbl
19:14:54GaveUpdon'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:01libmanThis "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:11GaveUpwas 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:20libmanRegarding 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:25GaveUpI 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:39libmanAn 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:43libmanGo deliberately limits features and forces everyone into a narrow mediocre way of doing things. Nim is pretty much the opposite.
19:31:05GaveUphalf a dozen years ago I'd have agreed C# would rank high ... now I'm not so sure
19:31:12flyxlibman: I have maintained enough Java code from a lot of different people to disagree.
19:31:15GaveUpand that's coming from a .net dev
19:31:26GaveUpalso that re java
19:32:26flyxMockito is an excellent example of how different you can make your code look like compared to „standard“ Java code
19:32:27GaveUpc# 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:59euantorMost C# code tends to be fairly similar though
19:33:17euantorVB is the worst offender within the .NET family
19:33:38euantorSome old developers hanging onto concepts from VB6, everybody else following modern practices
19:33:50GaveUpeuantor: common design patterns yeah ... but reliance on linq is a big one that really bites some people ... particularly newer devs
19:34:13euantorEg: The old `Mid`, `Mid$` (The `$` version is faster... go figure), `Left`, `Left$` from VB6 vs `.Substring()`
19:34:15GaveUpthat is not realizing the side-effects of using it (lazy evaluation, multiple enumerations, etc)
19:34:23euantorTrue
19:34:36euantorAnd people with a weak understanding of Async/Await
19:34:40libmanOne 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:02GaveUpheh there's one thing in Nim that I liken to VB: lambda syntax
19:35:39GaveUpeuantor: async/await isn't too bad ... the ConfigureAwait() is what seems to get everyone
19:36:29GaveUplibman: 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:39euantorYeah, but a lot of people can't seem to wrap their heads around it somehow
19:36:40GaveUpalso see FizzBuzz Enterprise
19:37:10GaveUpprobably because async code is a fairly foreign concept for a lot of business app devs
19:37:25euantorI 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:36libmanThe easiest concurrency I've ever implemented was in shell script. /noob
19:38:05euantorBut 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:26GaveUpdevs coming out of states schools are scary
19:38:37euantorYep
19:39:05euantorAnyway, this should probably shift to #nim-offtopic ;)
19:39:18GaveUphaha
19:41:12libmanOnce 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:11GaveUpheh 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:10UNIcodeXI'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:36UNIcodeXCython is great, but you still have to have libpython... really???
20:04:57GaveUpI'm in the minority that do not like python
20:05:00UNIcodeXsame 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:22dom96GaveUp: 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:43dom96Whew. 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:12dom96Now I have a month to make last changes D:
20:10:17dom96and there is a lot to do :(
20:10:37dom96But I'm excited
20:10:39GaveUpdom96: 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:53UNIcodeXlibman, you mean as in building Nim to be able to handle compiling Go, or Python, or whatever into C, javascript, etc...?
20:11:19libmanSo 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:02libmanBut that's just an idea, completely detached from reality. :P
20:12:31Araqlibman: no, that idea was behind Nim's initial design
20:12:48Araqbut nobody ever implemented the alternative syntax "skins"
20:13:23GaveUpthere's the metaprogramming article that starts down that path with the more traditional OO syntax
20:13:31libmancooool! :D
20:14:11dom96I still think that macros can give us something that is very much like Python
20:14:21*Kingsquee joined #nim
20:14:23dom96or better yet, the new type annotation-enhanced Python
20:14:24libmanHaving a "skin" that using C-like curly braces without one-off rule would like double Nim's appeal overnight.
20:14:28dom96It's on my to do list to create this
20:14:38dom96Maybe 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:31GaveUplibman: 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:45UNIcodeXdom96, even the type annotated python doesn't really help with speed. perhaps it will in the future...
20:16:03libmanSadly most people I tried to convince on Nim were mostly sour on the off-side-rule (which I personally think is awesome).
20:16:14dom96UNIcodeX: yes, but a macro that emulates this syntax in Nim would.
20:16:56UNIcodeXdom96, 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:56dom96libman: I wish I could live in the 90s. Back when the internet wasn't mainstream, it seems like such a simpler time.
20:17:03GaveUpif 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:35GaveUpyeah I miss the bbs days
20:17:47GaveUpand tw2002 ... argh that was an addicting door
20:17:50dom96GaveUp: that would basically be like writing a "transpiler" (sorry Araq, I know you hate this word)
20:18:04GaveUpdom96: yeah
20:18:51GaveUpI could see it drawing the interest of people, assuming you could get the performance gains of compiling.
20:18:57libmanThe average IQ of the Internet has been falling steadily for 40 years.
20:19:25Araqdom96: it's not that I hate this word, I think it has no meaning.
20:19:31GaveUpit's just more acurately reflecting the IQ of society as a whole
20:19:34Araqso 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:11UNIcodeXhow do you get the type of a variable? in python it's type(x)
21:05:34Araqyou can use import typetraits; echo x.type.name
21:05:42UNIcodeXoh. k
21:06:07*BratwurstMitSenf left #nim (#nim)
21:06:11Araqbut 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:09UNIcodeXthanks
21:10:50UNIcodeXI 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:12UNIcodeXone 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:25AraqUNIcodeX: for i in 0..<10: echo i # doesn't print the 10 :-)
21:24:26*planhths quit (Client Quit)
21:24:33AraqNim got the best of both worlds
21:32:51*ofelas quit (Quit: shutdown -h now)
21:33:44UNIcodeXAraq, :)
21:34:23*ofelas joined #nim
21:34:33UNIcodeXPython assumes that you want to stop at 10 iterations and not continue into the range.
21:34:47UNIcodeXwell... i'm off for the day.
21:34:50UNIcodeXTTYL
21:34:59Araqyou're welcome
21:35:28UNIcodeX;)
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:50Araqoh hey guys, would be nice if the windows users could run the new upcoming 'koch finish' in devel and report any problems
21:54:23dom96Anybody 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:35PMunchdom96, what kind of visualization were you thinking?
22:10:52dom96I wasn't thinking of any
22:10:57PMunch:P
22:10:58dom96Just 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:16enthus1astAraq, Could not patch 'config/nim.cfg' [Error]
22:54:29enthus1astReason: patch substring not found:
22:54:29enthus1ast#gcc.path = r"$nim\dist\mingw\bin"
22:59:27enthus1astthe line in the config is: gcc.path = r"C:\Nim\dist\mingw\bin"
23:00:32enthus1astadding 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