00:43:39 | * | Trixar_za is now known as Trix[a]r_za |
04:05:42 | * | XAMPP joined #nimrod |
05:09:34 | zahary | I used distinct to control one specific property of the type classes - whether they will bind once to a type within a proc call |
05:09:35 | zahary | e.g. |
05:09:35 | zahary | proc foo(a, b: expr) # a and b can be different types |
05:09:35 | zahary | T1 = distinct expr |
05:09:35 | zahary | proc foo(a,b: T1) # a and b must be the same type |
05:20:08 | zahary | I haven't quite made my mind yet what should be the default. with concrete types like the current examples "bind once" makes more sense, but I think with feature-based constraints (checks wether the type support certain operations), "dont bind" is more likely what the user want |
05:21:13 | zahary | about the destructors: if we specify that the move function should leave the object in a state where a destructor is equivalent to noop, we can statically determine that "x" was moved into the result and requires no further action |
05:27:06 | * | XAMPP[0] joined #nimrod |
05:28:02 | * | XAMPP quit (Ping timeout: 272 seconds) |
05:31:45 | * | XAMPP[0] quit (Client Quit) |
05:39:39 | zahary | … but I must point out that this doesn't buy us much in terms of codegen complexity - you still have to compile a try/catch block to call the destructor if the scope is left before the move(x, result) line |
07:44:24 | * | Araq_ joined #nimrod |
07:46:00 | * | Araq_ quit (Client Quit) |
11:14:00 | * | Trix[a]r_za is now known as Trixar_za |
13:02:25 | * | Araq_ joined #nimrod |
13:02:41 | Araq_ | so zahary |
13:02:47 | Araq_ | any idea what causes the bug? |
13:03:04 | Araq_ | it's not like we have lots of objects with flags in them ... |
13:03:10 | Araq_ | o.O |
13:03:59 | zahary | you have left some comments just below the error |
13:03:59 | zahary | # XXX: this BUG is hard to fix -> we need to introduce helper structs, |
13:03:59 | zahary | # but determining when this needs to be done is hard. We should split |
13:03:59 | zahary | # C type generation into an analysis and a code generation phase somehow. |
13:04:34 | zahary | I was working on something else and didn't bother to chase this further as there is easy work around |
13:05:18 | Araq_ | but that refers to: |
13:05:30 | Araq_ | type T = array[0..4, T] |
13:05:45 | zahary | yes, I figured this must be the intent |
13:06:06 | Araq_ | well 'T' is obviously invalid, but there are similar examples |
13:06:16 | Araq_ | where nimrod's type system allows things that C's does not |
13:07:16 | Araq_ | I don't get why your example doesn't work |
13:07:28 | Araq_ | it idiomatic nimrod code ... |
13:07:31 | Araq_ | *it is |
13:07:32 | zahary | Thinking about it, the error is quite logical - probably it's trying to validate the function type |
13:07:53 | Araq_ | but there is no dependency between the function type and the object |
13:07:55 | zahary | so it goes over all params - registers TFlags, then reaches the return type and bang |
13:08:13 | Araq_ | it's absurd |
13:08:32 | Araq_ | a function type does not introduce a strong dependency |
13:08:54 | Araq_ | should be easy to fix though |
13:09:43 | Araq_ | I mean there is a dep from proc -> object, but not from object -> proc |
13:09:48 | Araq_ | so there is no cycle |
13:10:20 | Araq_ | and the internal error should only trigger when it encounters a cycle it can't resolve |
13:15:38 | * | Araq__ joined #nimrod |
13:17:44 | * | Araq_ quit (Ping timeout: 250 seconds) |
13:21:59 | * | Trixar_za is now known as Trix[a]r_za |
13:32:04 | * | Araq__ quit (Quit: ChatZilla 0.9.88.2 [Firefox 13.0.1/20120614114901]) |
17:39:57 | * | Trix[a]r_za is now known as Trixar_za |
17:42:04 | Trixar_za | [NimBot] Araq/Nimrod dedbeef Araq [+0 �3 -0]: moar fixes <-- wonder when we'll get one like that, as in the hash number |
17:42:43 | Araq | Trixar_za: what? |
17:42:56 | Araq | the fix had no github number ... |
17:43:23 | Araq | I always use #no if there is any |
17:43:37 | Trixar_za | It uses hexadecimal hashes to mark the commits |
17:43:53 | dom96 | Trixar_za: The chances of that happening are quite slim I think. |
17:44:07 | Trixar_za | Probably. |
17:44:12 | Trixar_za | Would be awesome to see though |
17:44:52 | Araq | can't follow |
17:45:21 | Trixar_za | http://en.wikipedia.org/wiki/Hexspeak |
17:46:09 | dom96 | Araq: He's wondering when this will happen: [NimBot] Araq/Nimrod **dedbeef** Araq [+0 �3 -0] |
17:46:22 | dom96 | Note the 'dedbeef' |
17:46:35 | Araq | what's the advantage? |
17:46:56 | Trixar_za | It's just an intellectual novelty |
17:47:03 | Trixar_za | No real advantage |
17:56:53 | dom96 | Trixar_za: How's the asyncio-ing going? :P |
18:00:53 | Trixar_za | Haven't tried yet :P |
18:00:59 | Trixar_za | *hides* |
18:01:45 | * | dom96 shakes head in disappointment |
18:07:06 | Trixar_za | Speaking of which, I'm busy considering if I should become a debugger. I seem to have a unnatural talent for it. Mostly because programming is logical and follow set patterns ('style') and anything that deviates from this pattern is most likely a mistake or just bad form. I can also fix problems using the same patterns. Why I can read code in all languages even though I never learned it. |
18:07:45 | Araq | yes debug nimrod :-) |
18:09:24 | Trixar_za | Only good thing that ever came from my crappy first few years in school studying in a language I barely understood :P - I have a good memory, I'm a good mimic and I see patterns near instantly :P |
18:09:47 | Trixar_za | Also means I suck at writing code on my own though :/ |
18:11:37 | Trixar_za | And yeah, that's how I figured the echo/print thing out on my own. Not by any real skill at Nimrod >.> |
18:44:34 | * | Trixar_za is now known as Trix[a]r_za |
18:46:55 | * | Bosc0p joined #nimrod |
18:47:11 | * | Boscop quit (Disconnected by services) |
18:47:13 | * | Bosc0p is now known as Boscop |
18:47:15 | * | Boscop quit (Changing host) |
18:47:15 | * | Boscop joined #nimrod |
19:02:37 | * | Bosc0p joined #nimrod |
19:02:53 | * | Boscop quit (Disconnected by services) |
19:02:55 | * | Bosc0p is now known as Boscop |
19:02:57 | * | Boscop quit (Changing host) |
19:02:57 | * | Boscop joined #nimrod |
20:17:14 | * | dom96 is declaring today to be a big Nimrod task implementation day on Rosetta code :P |
20:57:29 | Araq | what about improving the forum instead, dom96? :P |
20:57:42 | Araq | people wanna 'reset password' feature |
20:57:50 | dom96 | But but but :( |
20:57:56 | dom96 | This is fun :P |
20:58:33 | Araq | alright ... add it to the testsuite :P |
20:58:45 | Araq | I'm trying hard to make it smaller though |
20:59:10 | Araq | and add new stuff to already existing tests :-) |
21:00:05 | dom96 | Will do. |
21:02:52 | dom96 | My goal mostly is to find good tests for the new closures :P |
21:04:55 | Araq | well you already found a bug :-/ |
21:05:49 | dom96 | Better to test them thoroughly :P |
21:05:59 | Araq | indeed |
21:39:24 | Araq | good night guys |
21:54:58 | * | filwit joined #nimrod |
21:55:55 | dom96 | hey filwit! |
21:56:03 | filwit | hi |
21:56:27 | filwit | is there a way to read the pragmas of a proc? |
21:56:59 | dom96 | You mean check what pragmas are set on a proc? |
21:59:10 | filwit | yes |
22:01:24 | dom96 | I'm not sure. Why do you want to do that? |
22:01:49 | filwit | basically I'm trying to make a "new Type" syntax with a macro, which will call a any finalizer marked with {.new.}. Or something along those lines |
22:02:32 | filwit | the only issue I have with non-pure OOP design is when I'm creating object, I like to know exactly what type I'm guess from the factory function at a glance |
22:03:45 | filwit | my mind basically says "I need a new File... so I type 'new' and tell it 'File' and that's all I have to remember... not createFile(), or newFile(), etc" |
22:05:26 | dom96 | filwit: right, this might help: https://gist.github.com/2de51a3146470998502c |
22:05:44 | dom96 | See the way the pragma is stored in the AST? |
22:06:17 | filwit | okay great, I was thinking I'd need to write a macro to do it |
22:06:45 | filwit | I forgot about the dumpTree: thing |
22:06:49 | filwit | very useful |
22:06:52 | dom96 | indeed |
22:07:46 | dom96 | Wait. So if you have `new Type`, then you want this to be transformed into: |
22:08:08 | filwit | well, 'new' is already taken, so probably 'create Type' |
22:08:23 | dom96 | newType() - where `newType()` is defined like: proc newType(): Type {.new.} ? |
22:08:35 | filwit | yes |
22:09:14 | filwit | so you mark each "constructor" with {.new.} pragma to allow it to work with the 'new' keyword (create) |
22:09:15 | dom96 | I'm not sure that is possible with a macro, how will you search for the function marked with {.new.}? |
22:09:34 | filwit | well that's what I'm trying to figure out |
22:10:15 | filwit | can I get a list of functions that match a parameter filter? In a macro that is |
22:10:33 | filwit | meaning... proc foo(Type, ...), proc bar(Type, ...) |
22:10:37 | filwit | then |
22:10:43 | filwit | macro create: |
22:11:16 | filwit | for func in getAllProcWithTypeAsFirstParam(): |
22:11:19 | filwit | ... |
22:11:24 | dom96 | As far as I know there is no way to get a list of functions that have been defined in a macro. |
22:11:42 | filwit | well..... damn |
22:11:52 | filwit | guess this doesn't work then |
22:12:02 | filwit | I can do it through naming conventions |
22:12:39 | dom96 | I wonder how hard it would be to implement a function which gives you this kind of information. |
22:12:46 | filwit | template create(T:expr, params:expr) = `create T`(params) |
22:13:04 | filwit | and then you define: proc createMyType(...) = ... |
22:13:17 | filwit | and you can say: var foo = create MyType(...) |
22:14:02 | filwit | but I'd prefer not to rely on naming conventions.... at that point there's not difference really between just calling the factory function |
22:14:20 | dom96 | hrm, wait. |
22:15:14 | dom96 | Nah, what I'm thinking of is runtime type information. |
22:15:32 | filwit | what would fix everything, is if 'new' simply had an 'expression' version... meaning you could use 'new' like this: var foo = new Foo() |
22:15:42 | filwit | and like: |
22:15:47 | filwit | var foo: Foo |
22:15:49 | filwit | new foo |
22:16:34 | filwit | but my test show that you can't have two procs that return different things |
22:16:59 | dom96 | Yeah, overloading based on return type is not implemented yet. |
22:17:07 | filwit | so it's planned? |
22:17:13 | dom96 | Yeah, as far as I know. |
22:17:21 | dom96 | And that type of syntax will be used then |
22:17:26 | filwit | well then great, I will not worry about this now |
22:18:00 | filwit | because once we can do that, then I'm sure I can convince Araq to make a version of 'new' that works like the above |
22:18:24 | filwit | I looked at the definition of 'new' and it's just a {.magic.} pragma |
22:18:37 | filwit | which I have no Idea where to find out what that does |
22:18:48 | dom96 | It's implemented in the compiler. |
22:18:59 | filwit | yes but where? |
22:19:01 | dom96 | new only works on references I believe, and pointers. |
22:19:25 | dom96 | So I bet it only allocates storage for the data and sets the reference/pointer to point to that data. |
22:20:40 | dom96 | let me try to nimgrep for it |
22:22:11 | filwit | anyways, I just had that idea last night, and spent a moment trying to get it to work. I really don't have to much time to spend on this stuff... all my free-time I spend getting the last of the graphics done for my project |
22:22:42 | filwit | which sux ATM, since we missed the competition dead-line :-( |
22:23:57 | filwit | It wasn't really a possibility though, we entered to late and have problems with the graphics half-way through (ending up having to change our initial design entirely) to make them work without GPU shaders (which Windows Phone 7 doesn't support) |
22:24:38 | filwit | but now that we missed the dead-line, we're changing them back to our initial design (mostly), LOL |
22:24:54 | dom96 | nice lol |
22:25:20 | filwit | so it's been a bit of a head-ache, but things should be ready for release in the new few days now |
22:25:43 | filwit | and I'm excited to be able to get back to work on Aporia |
22:25:54 | filwit | Nimrod really does have some great things about the language |
22:26:39 | dom96 | Well my exams are finally ended, however I am leaving for holidays soon, and then straight after I come back I will start working :( |
22:26:51 | dom96 | I should have time on the weekends hopefully though. |
22:27:07 | dom96 | filwit: ccgexprs.nim line 907 |
22:27:52 | * | dom96 really needs to start hacking on the Nimrod compiler again |
22:28:10 | filwit | it's fine, we can just both work on stuff when we can. I just don't like making a bunch of feature requests and then not helping get them done |
22:28:16 | filwit | :-V |
22:28:29 | filwit | thanks for the source info |
22:29:29 | dom96 | I'm glad you're helping. You should help Araq with the compiler also :D |
22:29:45 | filwit | I've starting taking a look at the compiler source a bit |
22:30:21 | filwit | it's a bit complex for me to just start adding features, but I'll keep learning it until I can |
22:31:43 | dom96 | I understand, It's still complex for me too :P |
22:33:25 | filwit | I think in the more immediate future I could 'help' more with the publicity of Nimrod, which is to say I could make a simple game with it |
22:34:00 | dom96 | That would be awesome. |
22:34:04 | filwit | I would like to make a simple shooter or something, and start porting over our Reign engine (at least pieces of it) |
22:34:35 | filwit | one things people are always saying about D is... "it sounds cool, but can you show me anything that's been made with it?" |
22:35:08 | filwit | people arn't really willing to learn a whole language with out some sort of evidence that it can do things |
22:35:23 | filwit | even if the language in question is completely awesome |
22:35:31 | dom96 | of course. |
22:36:03 | filwit | it's usually about what's more practical to use... that's why C#/Java are so popular cause all the external libraries and support basically mean you can focus solely on your own project and just make it work |
22:36:47 | filwit | some I was impressed with Nimrod is that many libraries (X11, OpenGL, etc) are already wrapped and distributed with the compiler, so I can just use them |
22:36:48 | dom96 | Well I actually find the fact that I can help out with the core of the language quite fun :) |
22:37:07 | filwit | ya, and I would like to eventually be able to do that as well |
22:38:01 | filwit | realistically though, that's not a world I know much about (at least not to that degree), and so it'll be awhile before I start contributing much |
22:39:38 | dom96 | It actually gives you very good experience. For example I never knew as much about sockets as I do now before I started using Nimrod and improving Nimrod's sockets module :P |
22:40:17 | filwit | yep, I know what you mean. I learned a ton about language design by learning about D |
22:40:20 | dom96 | It really helped me realise how annoying some of POSIX and the Win API is. |
22:40:49 | filwit | I don't think I would even be able to appreciate the beauty of Nimrod if I hadn't first learned about D |
22:41:00 | filwit | lol |
22:41:09 | filwit | are you a Window, Linux, or Mac fan? |
22:41:59 | filwit | I'm a Linux guy (as of a year ago), but that's more about supporting community (open source) software than the actually differences between the OSs |
22:42:00 | dom96 | Linux, well... sometimes I still have a hard time deciding between Windows and Linux. But Linux is definitely better for programming. |
22:43:30 | filwit | ya, they're both good systems |
22:43:46 | dom96 | I'm not sure about Macs, I haven't really given Mac OS a fair try. |
22:44:00 | filwit | it sux dude |
22:44:00 | dom96 | But Macs are too expensive, so no thanks :P |
22:44:12 | filwit | I have a Mac with the newest OS |
22:44:33 | filwit | it's not fun, not for programmers at least |
22:44:50 | dom96 | Why do so many programmers use them then? 0_o |
22:44:52 | filwit | for instance... it's practically impossible to open two instances of a single app... |
22:45:32 | dom96 | oh yeah because of that dock thingy lol |
22:45:34 | filwit | IDK... cause they're crazy? Why do so many programmers write in C? You can't explain that. (meme reference ;P) |
22:45:54 | filwit | ya you have to start a new instance through the terminal |
22:46:24 | filwit | because the system is built for grandmas and stuff |
22:46:29 | filwit | which isn't a bad thing |
22:46:37 | filwit | but the way GnomeShell works is much better |
22:47:01 | filwit | (click on program: go to instance)(right-click, "new window": new instance) |
22:47:06 | filwit | best for both |
22:47:24 | dom96 | btw what distro do you use? |
22:47:37 | filwit | Arch, but I'm on Ubuntu ATM |
22:47:48 | dom96 | Ahh. I use Arch too. |
22:47:59 | dom96 | Do you use Gnome Shell then? |
22:48:04 | dom96 | (On Arch) |
22:48:09 | filwit | yes |
22:48:30 | filwit | I've tried Xfce and KDE recently, but Shell is best |
22:48:41 | filwit | btw, you should get this new extension if you're on Shell |
22:48:46 | dom96 | hrm, I should give it a try. Currently using Xfce. |
22:49:29 | filwit | oh, the one thing I like much better about Shell over Xfce is the activity management (it's dynamic) and the overview mode |
22:49:44 | dom96 | No idea what those things are heh |
22:50:05 | filwit | Activity=workspace (desktop, screen, etc) |
22:50:30 | filwit | in Xfce you have to create a set amount (how it a Ctrl-Insert to create a new one) |
22:50:44 | dom96 | I see. |
22:51:24 | filwit | in Shell, the "overview" makes managing windows much easier... for me at least because I think spatially |
22:52:25 | filwit | It's easier to me to keep windows almost entirely visible on each workspace, and have multiple workspaces, than it is to constantly click through a list on a task bar |
22:52:34 | filwit | but that may just be me |
22:52:52 | filwit | and there's a new extention for Shell which adds a good dock |
22:53:55 | filwit | btw, I know Araq's German. What's your native language? |
22:54:01 | dom96 | hrm, I definitely have to check it out. |
22:54:37 | filwit | do you speak English natively? |
22:54:43 | dom96 | Polish. But i've been living in the UK for so long now that English is pretty much native to me nowadays. |
22:54:57 | filwit | cool |
22:55:35 | filwit | It would be interesting to live in a place where many people know multiple languages I think |
22:55:50 | filwit | though English is quickly becoming "standard" |
22:55:57 | filwit | (because of the web) |
22:56:33 | dom96 | Yeah. I want to learn a third language, knowing two languages isn't cool anymore :P |
22:56:41 | filwit | lol |
22:56:49 | filwit | come to the states, it's cool in the states |
22:57:11 | filwit | or not cool, depending on if your second is Spanish ;P |
22:57:38 | dom96 | I might someday move to the states. |
22:57:50 | dom96 | But I hear that it's not that easy. |
22:58:16 | filwit | really? why? it's not awesome over hear or anything. And our economy is going down the drain |
22:58:38 | filwit | here** I mean, we have a lot of cool things over here |
22:58:43 | dom96 | Dunno. The states always felt "cool" to me. |
22:59:00 | filwit | but there's also a lot of stupid people (looks at Wesboro baptist church) |
22:59:08 | dom96 | I should probably visit England first though. |
22:59:26 | dom96 | Ireland is just rain, rain, wind, farms and cows. |
22:59:39 | filwit | ya, lol I feel ya there |
22:59:47 | filwit | that's why I love Florida so much :) |
22:59:52 | filwit | lots of sun and beaches |
23:00:11 | filwit | but I've lived up north, where it's basically that... rain, snow, and farm land |
23:00:12 | dom96 | Well at least it's never /too/ warm here :P |
23:00:30 | filwit | ya, I kinda like the crazy heat though ;P |
23:00:52 | filwit | it's nice being able to jump into an 80 degree pool at 3am ;D |
23:01:20 | dom96 | Yeah, I kinda miss it too now... but then again when it's too warm my brain functions worse than a monkey's. |
23:01:35 | filwit | you've been to Florida? or... |
23:01:43 | dom96 | Poland :) |
23:01:52 | dom96 | It's very warm there in the summer. |
23:01:54 | filwit | Poland gets really hot like that? |
23:02:03 | filwit | didn't know that |
23:02:24 | dom96 | lol, does everyone think that Poland is some kind of ice country? |
23:02:59 | filwit | idk... never thought about it much. I just thought it was mostly full of country side and farms |
23:03:13 | dom96 | Yeah, it is. |
23:03:15 | filwit | which isn't exactly what you think when you think "warm weather" |
23:03:46 | filwit | I used to live in Iowa, and it gets very warm in the summer, and about -20 sometimes in the winter |
23:03:48 | dom96 | I guess your idea of "warm weather" is: beaches, sunshine, beaches... |
23:03:57 | filwit | yes |
23:04:00 | dom96 | Basically Florida I guess? or Miami :P |
23:04:21 | dom96 | Yeah, it's the same in Poland. Very warm in summer, very cold in winter. |
23:04:29 | dom96 | In Ireland it's just mild, always. |
23:04:44 | filwit | ya, sounds like Oregon (where i was mostly raised) |
23:04:46 | dom96 | Barely any snow in winter, and some sun in summer. |
23:04:57 | filwit | yep... that's about it |
23:05:01 | filwit | I feel for you |
23:05:13 | filwit | that's why I moved away from there when I was able |
23:05:26 | filwit | cause we had around 280 days of overcast |
23:05:35 | dom96 | Well like I said, I don't really mind the weather here. |
23:06:13 | filwit | more power to you then. I met some people in Oregon that where die-hard rain fans |
23:06:25 | filwit | it it's what you like, then that's great |
23:07:52 | dom96 | I'm definitely not a die-hard rain fan. I do enjoy some sunshine, as long as it's not so much that I feel like I am passing out even with a fan on, blowing cool air at me. |
23:08:21 | dom96 | It's definitely sunshine > rain for me :) |
23:08:34 | filwit | ya, everyone where keeps their AC's on high, so usually it's a big contrast stepping outside then in |
23:08:55 | filwit | btw... what's the economy like over there? |
23:09:08 | filwit | I hear Greece is in a bit of a melt-down ATM |
23:09:20 | dom96 | Yeah, Greece is in serious trouble. |
23:09:32 | filwit | hear it's getting pretty bad too, but not like Greece |
23:09:40 | dom96 | I think Ireland is alright. |
23:09:57 | dom96 | But I can't say i'm up to date on the state of the economy here. |
23:10:04 | filwit | ya |
23:10:23 | dom96 | I hear the Greece owes Europe a shit load of money. |
23:10:26 | dom96 | *that |
23:10:37 | filwit | lol |
23:10:51 | filwit | USA owes China way more I'm sure |
23:11:03 | dom96 | And that they're having a bad time rebuilding the government as they can't decide who to pick to lead their country. |
23:11:04 | filwit | cause we keep spending on stupid wars |
23:11:42 | filwit | god, I seriously think there's a better way to run governments and economies |
23:12:04 | filwit | than to "elect" people into positions of authority where they can fuck things up |
23:12:43 | filwit | have you ever heard of the Venus Project? |
23:12:51 | filwit | I think there's real value in their ideas |
23:12:55 | dom96 | no, what is it? |
23:14:09 | filwit | well it's a group that's purposing an economic structure built without money |
23:14:25 | filwit | the first thing you're probably going to say is "you mean communism?" |
23:14:55 | filwit | and no, there's a major difference in both the concept, and the state of technology that might allow for it to be possible now |
23:15:46 | filwit | basically the idea is: since robots are stealing all of our jobs, soon we will have the ability to automatic virtually everything in our lives.... so what happens to all the uneducated work force then? |
23:17:13 | filwit | cause that's the real issue actually, if you look at graphs (I can look them up) you see that most of things that used to be made by human hands are now made by machines |
23:18:08 | dom96 | hrm, right. I'm not sure I completely understand. |
23:18:09 | filwit | there's this guy, that's invented a machine, that can print a house in 24hours with 40% less material |
23:18:11 | filwit | I shit you not |
23:18:48 | filwit | it's still in prototype form, but soon, even the construction of houses may be completely done by machine |
23:19:02 | dom96 | How will this economic structure work without money? |
23:19:39 | filwit | ya that's the first question I asked when I first heard about it |
23:20:34 | filwit | there's a video that does a much better of describing it than I can, but basically it would go like this |
23:20:43 | filwit | true "wealth" is resources |
23:21:43 | filwit | if labor can be automated, then the only things left for us to do is make technical designs of machines that can convert those resources into houses, cloths, food, etc |
23:22:43 | filwit | basically, today, we have private corporations that compete for "ownership" of resources, and distribution "rights" |
23:23:28 | filwit | they usually have their interests above their consumers, but there's a balance there, because of competing corporations which are gunning for the same consumers |
23:23:46 | filwit | but still, it's easy to see how that system can be corrupted |
23:24:36 | dom96 | So basically instead of money, you exchange goods for other goods. So say, I want sugar, ok give me potatoes. |
23:24:45 | filwit | what would work better, is if there was simple a repository of technical designs, and a distributing "service" which allocated resources to the projects of "provably best worth" |
23:24:51 | dom96 | But then, how much sugar for one potato? |
23:25:01 | filwit | no it's not a barter system |
23:25:14 | filwit | cause that's basically the same as money, like you're saying |
23:25:51 | dom96 | I'm sorry. I don't think I see it. |
23:25:55 | filwit | basically it's the idea that we can provide for our needs by creating machines to do it for us |
23:26:12 | filwit | that's fine, and I don't expect you to just agree with me here or anything |
23:26:14 | dom96 | Right. But machines will need maintenance. |
23:26:42 | filwit | sure, and today it's not fully possible IMO |
23:26:44 | dom96 | What will the people that spend time maintaining these machines receive as a reward? |
23:27:05 | filwit | why do you work on Nimrod? |
23:27:17 | filwit | what "reward" do you receive? |
23:27:25 | filwit | or how about practicing art, or music? |
23:28:02 | filwit | If you could spend all of your time doing virtually anything you wanted, you would probably work on Nimrod even more, not less |
23:28:26 | dom96 | I receive the reward of believing that the work I contribute towards Nimrod will help me in the future. |
23:28:41 | filwit | true, and that's they key |
23:28:46 | dom96 | And of course it's fun :P |
23:29:06 | filwit | that reward doesn't go away if you remove money from the equation |
23:29:22 | filwit | because you learn things, and you move up a social latter by contributing to Nimrod |
23:29:31 | filwit | you can say "look what i've done in my life" |
23:29:36 | filwit | and others will look up to you |
23:30:08 | filwit | we don't really work for monetary reward, we work for the sense of accomplishment and social standing |
23:30:33 | filwit | would you date a person that just sat around the house all day and went to parties and that was their entire life? |
23:30:40 | filwit | I'm sure many would |
23:30:43 | dom96 | That's true. |
23:31:03 | filwit | but that wouldn't offset the amount of people willing and wanting to contribute to society's projects |
23:31:28 | filwit | we may not be able to automate everything today, but soon we will |
23:32:06 | dom96 | What might happen is that some people contribute more than others. And they start finding that to be unfair. |
23:33:05 | dom96 | Now I know that with money this isn't exactly always fair either, not all jobs pay the same. But usually the correlation is that the more work you put into your education, and then your job the more money you will get. |
23:33:44 | filwit | see and that's where the big problem comes in. What about the people who can't afford education? |
23:33:48 | filwit | it's really expensive |
23:35:06 | filwit | the problem is, many would be educated and contribute, but they're raised in slums and ghettos |
23:35:30 | filwit | their entire life, they're taught, through experience, that they'll never amount to anything in their lives |
23:35:44 | filwit | and that's because everyone around them is poor |
23:35:58 | filwit | it's a self defeating loop |
23:36:46 | dom96 | So essentially the venus project will make everyone the same? |
23:37:01 | filwit | no, no one is truely equal |
23:37:26 | filwit | midgets can't play basket ball, no matter how hard they try |
23:38:19 | filwit | the goal is to give everyone the most fair opportunity because we can |
23:38:22 | dom96 | Well it's too late for me to understand the way that the venus project will fix all these issues I think :P |
23:38:31 | filwit | haha, no worries |
23:38:36 | filwit | sorry about all my ranting |
23:38:58 | filwit | we kinda got off on a topic I'm passionate about |
23:39:15 | dom96 | No problem, yeah, was just going to say that you are very passionate about this. |
23:39:27 | dom96 | I can't say i'm the same unfortunately :P |
23:39:38 | filwit | no worries ;-) |
23:39:49 | filwit | I'm probably not doing the best at describing it either |
23:40:49 | filwit | I actually had a very similar reaction as you when I first heard about it. Not that I'm projecting my experience onto your and expecting you to later agree with this |
23:42:11 | filwit | I'm just saying, I wasn't some crazy hippy that thinks we can all live in utopia |
23:43:02 | dom96 | hehe |
23:43:23 | dom96 | I just don't really worry about these types of issues. |
23:43:35 | filwit | actually, I was telling my X girlfriend about this (she and I where dating before I learned about the movement) and she was like "damn you've changed" cause I used to be pretty conservative with my stance on economic things |
23:45:11 | filwit | anyways... I'll stop talking about it now.... |
23:45:27 | filwit | I'm sure you're fully sick of reading all this, lol |
23:46:25 | dom96 | nah, sorry. I'm just watching Casino Royale at the same time, that's why i'm slightly less talkative :P |
23:46:55 | filwit | nice, 007's the shit |
23:47:34 | dom96 | yep :D |
23:47:57 | Araq | I should really sleep now |
23:48:07 | filwit | heh Araq |
23:48:14 | filwit | thought you where sleeping.... |
23:48:25 | Araq | but filwit ever noticed how "new Object" sucks because you can't abstract over the create operation anymore? |
23:48:44 | Araq | factories become a PITA with a special 'new' syntax ... |
23:48:50 | Araq | so I left them out |
23:48:59 | Araq | and you desperately want them back |
23:49:05 | Araq | I wonder why :-) |
23:49:17 | filwit | I'm not sure I follow |
23:49:28 | filwit | but I'm fully willing to be convinced |
23:49:54 | filwit | what can't you abstract over "new Object"? |
23:50:10 | Araq | alright, so we have a library and ObjectA |
23:50:22 | Araq | and we don't really plan ahead ;-) |
23:50:37 | Araq | so in Java people create our object with 'new ObjectA' |
23:51:10 | Araq | but now we need some slightly different ObjectB in our library |
23:51:35 | Araq | but clients shouldn't know about it |
23:51:45 | Araq | you do: |
23:51:56 | Araq | class ObjectB extends ObjectA { ... } |
23:52:02 | Araq | but then you're stuck |
23:52:25 | Araq | if you have newObjectA in the first place |
23:52:31 | Araq | it's only a convention |
23:52:34 | Araq | so you can do: |
23:52:44 | Araq | proc newObjectA(): ObjectA = |
23:52:57 | Araq | if someCrazyDispatchingCriteria: |
23:53:07 | Araq | var a: ObjectB |
23:53:12 | Araq | new a |
23:53:16 | Araq | result = a |
23:53:20 | Araq | else: |
23:53:32 | Araq | var a: ObjectA |
23:53:35 | Araq | new a |
23:53:37 | Araq | result = a |
23:53:41 | Araq | see? |
23:53:54 | Araq | special syntax for constructors hurts |
23:54:31 | Araq | I in fact gained flexibility by using the very same proc call syntax that's used for everything |
23:54:54 | filwit | this is confusing functionality, why would I ever want an ObjectB from a "newObjectA" factory? |
23:55:21 | filwit | my entire argument was that I want to know (for sure, and at a glance) what type the var is |
23:55:34 | dom96 | So overloading by return type is still planned right? And we will get a basic `new` function or similar for which this problem is not applicable? |
23:55:38 | filwit | so I'm not looking up definitions |
23:55:47 | Araq | well |
23:55:53 | Araq | you want an IDE :P |
23:56:11 | Araq | that has nothing to do with special construction syntax |
23:56:17 | filwit | even with and IDE, you still have to roll your cursor over the syntax to see what the type is |
23:56:29 | Araq | ooooh big deal ... |
23:56:33 | Araq | or you write: |
23:56:44 | Araq | var x: X = initX() |
23:57:03 | filwit | sure, it might be trivial, but is that best situation? |
23:58:07 | filwit | another reason I don't like factories, is that I'm not sure exactly what function to call |
23:58:14 | Araq | *shrug* |
23:58:21 | dom96 | If we have overloading by return type, then writing the type explicitly will be required anyway. |
23:58:21 | filwit | there could be "initX", "newX", "createX", etc... |
23:58:27 | dom96 | var x: X = new() |
23:58:41 | Araq | it's like saying "I don't like abstractions because they hide stuff" |
23:58:45 | Araq | well yes |
23:58:58 | dom96 | Araq: Are we getting them or not? |
23:58:59 | Araq | in fact I often don't like them either |
23:59:15 | filwit | even with IDE and code suggest, with "new Type" I only have to remember "new" and then I get a list of all possible parameters I can pass to the constructors |
23:59:57 | filwit | honestly, what dom96 is asking right now is what I think would work besst |
23:59:59 | filwit | best** |