00:18:36 -!- nazgjunk has quit ("sleep, gah").
00:20:20 -!- sebbu2 has quit ("@+").
00:55:51 <SevenInchBread> well... I think it's silly to say "only some people are capable of programming"...
00:57:07 <SevenInchBread> it could be a. the teacher, b. the language, c. the alignment of the planets
00:58:14 <SevenInchBread> and if there are certain aptitudes that make it possible to learn how to program - I certaintly have none of the stereotypical programming qualities.
00:59:26 <SevenInchBread> neat, detail-oriented, good concentration, organized. ....I'm the polar opposite of that.
01:10:33 <SevenInchBread> bsmntbombdood, your explainations fall too much into the trap of describing the implementation.
01:10:43 <GregorR> Those are so utterly not the qualities of a programmer.
01:11:17 <GregorR> The one quality you need to be a good programmer is the ability to grasp abstraction without losing perspective of the concrete.
01:11:30 <GregorR> Well, that's the one quality you need to be capable of programming at all.
01:11:46 <GregorR> I won't say that's all that's necessary to be a "good" programmer :P
01:19:27 <SevenInchBread> so you need to be able to fly while looking at the pavement?
01:26:01 <GregorR> It's just too bad that you have not an effing clue what "abstraction" means.
01:28:01 <SevenInchBread> abstraction - the process of putting buttons on machines?
01:32:51 <bsmntbombdood> SevenInchBread: i have no other way of describing it...
01:34:27 <SevenInchBread> It works... your explainations are just confusing for someone trying to understand how it works.
01:35:25 <bsmntbombdood> there's an object where the builtin methods are stored
01:40:32 <SevenInchBread> a distinction between classes and objects might not be a good idea for something like this.
01:41:01 <SevenInchBread> you could just have "objects that you can make copies of and add shit too"
01:43:00 <SevenInchBread> well... there are classes and objects... even if thoses classes are objects, there's still a distinction - unless I'm misunderstanding how this works.
01:44:05 <SevenInchBread> In Smalltalk, all classes are objects - but not all objects are classes.
01:44:30 <bsmntbombdood> a "class" is just an object that has a method that creates another object
01:45:37 <GregorR> This is called "prototype-based object orientation"
01:47:29 <SevenInchBread> ...using a slightly different way to creating new objects than most prototype languages... but the basic idea is still the same.
01:50:19 <bsmntbombdood> the quoter object responds by putting the symbol foo on the stack
01:51:34 <bsmntbombdood> object is sent to it, builtins object responds by pushing the base object
01:52:13 <bsmntbombdood> responds by pushing an object that accepts and stores message handlers (methods)
01:52:50 <bsmntbombdood> add-method is sent to that object, adding a message for the symbol "foo" handled by the code [foo code]
01:53:03 <bsmntbombdood> done is sent the the object, turning it into a class
01:53:58 <SevenInchBread> |foo| := (object conceived |foo| := (code)) -- in Sophia
01:54:47 <bsmntbombdood> @'foo [foo code] @object %inherit add-method done init foo
01:55:04 <bsmntbombdood> would be a long winded way of executing [foo code]
01:56:48 <SevenInchBread> ...there are semantic differences though... the () represent functions...
02:45:36 -!- ShadowHntr has joined.
03:29:48 -!- Mica69 has joined.
03:30:09 -!- Mica69 has left (?).
03:45:14 <SevenInchBread> hmmm... I'm making a weird Orkish concurrent language.
03:53:04 -!- wooby has joined.
05:58:08 -!- LeaLeaLea has joined.
05:59:00 -!- LeaLeaLea has quit (Client Quit).
06:20:38 -!- RodgerTheGreat has quit.
07:56:23 -!- maverickbna has joined.
07:56:44 -!- maverickbna has quit (Read error: 104 (Connection reset by peer)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:13:13 -!- ShadowHntr has quit (Read error: 110 (Connection timed out)).
08:25:32 -!- sekhmet has quit (Read error: 104 (Connection reset by peer)).
08:30:33 -!- sekhmet has joined.
08:36:44 -!- oerjan has joined.
10:15:38 -!- sebbu has joined.
11:35:06 -!- jix has joined.
11:44:14 -!- Sgeo has quit (Remote closed the connection).
12:32:51 -!- oerjan has quit ("leaving").
13:08:29 -!- sekhmet has quit (zelazny.freenode.net irc.freenode.net).
13:08:29 -!- oklopol has quit (zelazny.freenode.net irc.freenode.net).
13:08:29 -!- SimonRC has quit (zelazny.freenode.net irc.freenode.net).
13:08:38 -!- sekhmet has joined.
13:08:38 -!- oklopol has joined.
13:08:38 -!- SimonRC has joined.
14:44:06 -!- ivan` has joined.
14:46:39 -!- ivan` has changed nick to ludios.
15:00:25 -!- ludios has quit ("Coyote finally caught me").
16:22:04 -!- RodgerTheGreat has joined.
16:23:28 -!- jix__ has joined.
16:32:54 -!- jix has quit (Read error: 110 (Connection timed out)).
16:54:14 -!- SevenInchBread has quit ("haaaaaaaaaa").
16:58:21 -!- jix__ has changed nick to jix.
17:08:25 <oklopol> plng btz www.bts2.nt... addktv fr sch a trvl gm
17:39:43 -!- SevenInchBread has joined.
17:55:05 -!- sebbu2 has joined.
18:13:31 -!- sebbu has quit (Connection timed out).
19:41:27 -!- UnrelatedToQaz has joined.
19:42:25 -!- UnrelatedToQaz has left (?).
19:58:11 <SevenInchBread> I need to compile a list of all Unicode characters... and sort out the ones that are "symbolic" and those are "alphabetic".
19:58:31 <SevenInchBread> ...basically, the ones that work like !@#$%^&*() and the ones that work like letters.
20:04:08 <RodgerTheGreat> a list of 256X256 characters, some of which don't exits...
20:27:28 -!- nazgjunk has joined.
20:28:05 -!- nazgjunk has quit (Client Quit).
20:28:23 -!- nazgjunk has joined.
20:37:44 <SevenInchBread> ...believe it or not... I've not included ideas that I like from PERL into Sophia. Yes... the apocalypse is nigh.
20:38:12 <SimonRC> SevenInchBread: actually, the unicode people have already decided for you and any library that supports unicode properly should have a function to find out.
20:39:51 -!- wooby has quit.
20:40:32 <SevenInchBread> later I'll need a way to distinguish punctuation-type glyphs from letter-like glyphs...
20:46:28 <RodgerTheGreat> hey, feesh: http://www.nonlogic.org/dump/images/1174851872-chainbrain.png
20:51:43 <RodgerTheGreat> it's an idea for a CD cover for a band a friend of mine is in called "Chainsaw Brainsaw", if anyone's wondering
20:52:33 <SevenInchBread> ...typical keyboards need more unicode symbols on them...
20:52:58 <SevenInchBread> we could use a lot of them in programming... there's only so many funny-looking characters you can use in ASCII before you run out.
20:54:12 <RodgerTheGreat> I don't really want any more unicode symbols unless I get more *keys*. It's time consuming enough coding in languages with excessive punctuation like perl
20:57:15 <SevenInchBread> you could even digitize the whole labelling of symbols... using lights to label each key. So then you could set up your own keyboard layout.
20:57:39 <RodgerTheGreat> SevenInchBread: sounds like the fabled "optimus" keyboard
20:57:49 <SevenInchBread> ...plus, I want a huge organ-sized keyboard... so I look more technical.
20:58:23 <RodgerTheGreat> I like the idea of two "tiers" of keyboards, like they show operators using in "The Matrix"
20:58:54 <SevenInchBread> or... if you just had like... switched. You could switch out certain layouts.
20:59:34 <SevenInchBread> ...I wonder where you could some of these weird keyboards.
21:00:26 <RodgerTheGreat> I have a German keyboard a friend of mine got for me when he was on vacation, but it's PS2, and I have a mac.
21:00:45 <SimonRC> more types of brackets would be good
21:00:58 <SimonRC> RodgerTheGreat: monitor? :-P
21:01:44 <SevenInchBread> There are the << and >> unicode symbols... although those kinds of brackets can be done with just double angle brackets
21:02:38 <SevenInchBread> well... inverted question marks and exclaimation points could be used for brackets.
21:02:47 <RodgerTheGreat> I've zip-tied together the six cables that I have to plug into my laptop to "dock" it at my desk into a huge umbilical
21:03:12 <SimonRC> The proper symbols for and, or, not, xor, union, intersection, exponent, etc would be good too.
21:03:21 <SimonRC> alas, it is time for me to go again.
21:03:24 <RodgerTheGreat> and then USB and firewire go directly to various hubs and such
21:05:09 * SevenInchBread demands a huge multi-tiered, digitally-labeled keyboard.
21:06:03 -!- nazgjunk has quit ("switching to kde").
21:06:27 <SevenInchBread> yeah, there's a whole slew of Unicode math operators that could be put on keyboards... it would take forever before you exhaussted your repetoir of single-character operators.
21:06:42 <SevenInchBread> well... I'm sitting on my bed... so my feet aren't in a position for pedal-mashing.
21:11:07 -!- nazgjunk has joined.
21:13:56 <oklopol> wtf... php's serialize("osososo") returns s:7:"osososo";
21:17:57 <oklopol> what i'd like even more than more keys in a keyboard would be to lose the "ergonomic" fact that keys are not directly on top of each other
21:18:08 <oklopol> yes not diagonally positioned either
21:18:16 <oklopol> the are pretty randomly dispersed there...
21:18:28 <oklopol> but then again, if you ask me, everything sucks
21:23:45 <RodgerTheGreat> the pattern for a keyboard actually does make a fair amount of sense considering where the joints are in your hands
21:24:48 <oklopol> i have different joints in my left and right hand?
21:25:41 <oklopol> now why isn't the keyboard symmetric then?
21:26:45 <RodgerTheGreat> because not having any keys vertically aligned makes it easier to create mechanical linkages that swing a type-block into position on an ink-impregnated tape, and re-learning typing sucks
21:27:15 <oklopol> you can type on this keyboard, though it doesn't feel natural... but when playing the beepiano... oh the pain
21:27:58 <oklopol> i don't agree to either of those but i understand many would
21:29:34 * oklopol is getting pretty good at it
21:30:16 <RodgerTheGreat> I never learned to play a normal piano, so it doesn't seem that unnatural when I use something like "Musical Typing"
21:31:06 <RodgerTheGreat> it's what they call it when you map the keyboard to musical notes in software like Garageband or FLStudio
21:31:57 <oklopol> i've only seen that done in 2 ways, one is note name -> tone, the other is the piano keyboard emulated on the keyboard
21:32:11 <oklopol> and make it impossible to enjoy playing
21:32:11 <RodgerTheGreat> I really want to learn how to use a proper tracker application
21:33:02 <oklopol> beepiano uses the layout of the accordion... quite natural since it is the exact same layout
21:33:26 <oklopol> except of course the layout of the keyboard is, as i said, pretty random
21:33:39 <oklopol> the accordion of course has a more natural alignment of keys
21:34:28 <oklopol> plus, rather than having more keys i'd like to have a better key layout... qwerty makes no sence
21:35:41 <oklopol> i asked whether there are any better layouts than qwerty for sale in the shop where i bought my laptop... the salesman had no idea what i meant
21:35:58 <RodgerTheGreat> I fail to see how "making sense" matters in a keyboard layout. Any layout is ultimately arbitrary, and using the keyboard is simply a factor of memorizing the finger movements for each character and groups of characters
21:36:01 <oklopol> when i explained he said he'd never heard there could be anything else
21:37:23 <RodgerTheGreat> Qwerty is superior to any alternative purely because it is an accepted standard and by learning it you can type on over 99% of keyboards in existence. Using an alternative renders your typing skills useless when faced with an unknown layout or somebody else's keyboard.
21:37:38 <RodgerTheGreat> not to mention that alternatives are usually harder to find...
21:38:17 <oklopol> well, once again that's something i don't care about, i'd just like to have a better keyboard :\
21:39:07 <RodgerTheGreat> I'm a great deal more interested in the feel of the keyboard- firmness, key travel, etc, than the letters on the keys
21:39:22 <oklopol> plus the human brain can adapt more than one keyboard layout easily
21:40:10 <RodgerTheGreat> typing on a keyboard from the 70's is awesome, because the keys are big, have cupped surfaces, and they move like half an inch
21:41:25 <oklopol> that's another thing i must disagree :P everybody always says "this keyboard sucks... my keyboard is soooo much better" or something... i can feel the difference of course... but you get used to a new feel in 5 secs :\
21:42:54 <RodgerTheGreat> a good feel is determined by something you want to be using for 8 hours at a time, not five seconds
21:43:26 <RodgerTheGreat> do you feel a two-by-four is as comfortable to sit on for that period as an overstuffed couch?
21:44:27 <oklopol> well... i sleep on 2 mattresses... but i feel just as good sleeping on the floor... maybe it's just me
21:44:45 -!- ShadowHntr has joined.
21:45:20 <oklopol> okay, i'll rephrase my initial opinion: i hate qwerty because i'm different.
21:47:02 <oklopol> i used to sleep on the floor actually, since it's easier to get up that way, but my mother told me repeatedly i should sleep on a bed, so it's become a habit
21:47:09 <oklopol> but i've never seen any use for beds
21:48:26 <oklopol> i'll continue programming now, though php sucks real bad :<
21:48:41 <RodgerTheGreat> I dislike sleeping on the floor less because it's hard and more because it provides inadequate lumbar support. My back always hurts afterwards
21:49:00 <oklopol> yeah, it does if you're not used to it
21:49:04 <RodgerTheGreat> perhaps if it was curved properly, it'd be comfortable
21:49:25 <oklopol> but people who've started sleeping on the floor say they feel much better
21:50:00 <oklopol> and i've got to agree, since after a few nights it does feel a lot more natural
21:50:44 <oklopol> RodgerTheGreat was it you who said php is useful of smth?
21:50:49 <oklopol> i have a lot of problems :)
21:51:37 <RodgerTheGreat> my main languages are Java, PHP, and BASIC, actually (which doesn't make me too popular here sometimes. ;))
21:52:10 <oklopol> those are the 3 most hated languages probably :P
21:52:21 <SevenInchBread> so.... here's an idea for parallel computations... like...
21:52:30 <oklopol> among people who haven't used them at least
21:52:51 <RodgerTheGreat> but I hate C/C++ with a unique passion, so it all fits in
21:53:23 <RodgerTheGreat> my three least favorite languages are, in order, ruby, C, and C++
21:53:43 <oklopol> javascript also... i once tried something with javascript... this guy saw me open a javascript page and literally started screaming javascript is evil
21:53:52 <SevenInchBread> couldn't you split off a few quick threads and chomp away at this function in non-linear bits?
21:54:24 <oklopol> which is weird, since i hear it's a pretty decent language, java with classes made optional (right?)
21:54:48 <SevenInchBread> even if parts at the beginning of the function are required before later parts can be computed... you can use the concept of message queues and futures to represent data dependences.
21:54:49 <RodgerTheGreat> oklopol: the interesting thing is, most people that honestly try those languages either don't mind them or at least find some aspects they like
21:55:09 <oklopol> SevenInchBread i think oerjan or someone told you that a few days ago
21:55:43 <oklopol> that things in parens can be split into different threads with thread per paren basically
21:55:51 <SevenInchBread> ....I'm just... now sure how the interpreter would logically split the threads...
21:56:37 <oklopol> though of course not literally parens, but pieces that parens and precedence separate from the whole
21:57:11 <RodgerTheGreat> anyway, what was this PHP thing you were having difficulty with?
21:57:31 <oklopol> RodgerTheGreat i'm trying to use serialize
21:57:39 <oklopol> it sucks, for one, but that's not the problem
21:57:47 <SevenInchBread> so... each expression could pre-emptively evaluate to liek a future thing to the surrounding threads... which will collect computations for when its thread finishes... sounds fun.
21:57:49 <oklopol> since i can convert to my own good function later
21:58:19 <oklopol> now when you make that explicit somehow
21:58:34 <oklopol> and... somehow allow the programmer to do... something with it
21:58:36 <SevenInchBread> ...should incorporate it into Sophia somehow... along with the Actor model.
21:59:06 <oklopol> RodgerTheGreat the problem is it does not work yet... i can show you the non working part
21:59:17 <SevenInchBread> message-passing makes it somewhat simple... you just use futures that collect message names.
22:00:29 <RodgerTheGreat> oh, since we're on the topic of language semantics, this is a partially finished language specification for a creation of mine. I call it "bullet" for now, and it's intended to be an alternative for C. http://www.nonlogic.org/dump/text/1174856252.html
22:00:41 <oklopol> http://www.vjn.fi/pb/p626232154.txt <<<
22:00:51 <RodgerTheGreat> It's more of a "serious" language than an esolang, but this channel seems like a good place to talk about it
22:00:54 <oklopol> $compiled_program is an array
22:01:10 * oklopol reads RodgerTheGreats link
22:01:45 <RodgerTheGreat> I literally spent 6 hours debugging a 30 line program yesterday
22:02:38 <oklopol> yeah... the fact files are flat makes it suck in a lot of places
22:03:05 -!- sebbu has joined.
22:03:37 <oklopol> but, serialize seems to create an alphanumeric string with " and : in it (which sucks), and that should be easy to output in a flie
22:04:23 <oklopol> that is quite a beautiful language i must admit
22:05:08 <RodgerTheGreat> there are still a lot of things to be done, like control structures and the like
22:05:13 <oklopol> somehow seems a consistent language layout on the first glance
22:05:44 <oklopol> do subdiv[val1:a val2:b] to [subresult:sub divresult:div]
22:06:06 <RodgerTheGreat> the design philosophy is creating a language that can be compiled pretty easily and that is designed so that programming errors are either hard to make or easy for the compiler to catch
22:06:31 <RodgerTheGreat> yeah, the to [] block specifies what variables to "unload" a function's returned values to
22:07:13 <RodgerTheGreat> you mean function calls on a function's return values?
22:08:19 <oklopol> i mean, def a[][def b[]returns[double:c][c=0.0];print:stdio[b[]]]
22:08:41 <oklopol> in case ';' can be used like that and nl's are optional
22:09:57 <RodgerTheGreat> I'm not sure what that's useful for aside from adding some form of function scoping. newlines or : act as an expression terminator like ; does in a normal curly-bracket language
22:10:33 <oklopol> _list_=[1 2 3 4 5]; _doubled_=map[def[double:a]returns[double:ret][ret=a*2] _list_]
22:10:35 <RodgerTheGreat> however, I don't see any reason that would otherwise be invalid
22:11:06 <oklopol> functions sans names, lambdas, exist?
22:11:27 <oklopol> (that's probable not a good explanation of a lambda though :))
22:11:41 <RodgerTheGreat> this isn't an object-oriented language, however, so a function can't be manipulated as a list element
22:12:34 <oklopol> _list_=[1 2 3 4 5]; def dbl[double:a]returns[double:ret][ret=a*2]; _doubled_=map[&dbl _list_];
22:12:53 <oklopol> that is very easy to compile
22:12:58 <RodgerTheGreat> pointers will probably exist, but I don't want to make their use a main feature of the language- they have a tendency to create unreadable code
22:13:23 <oklopol> well, i love list operations with lambdas :)
22:13:34 <oklopol> but, indeed i don't know whether it's that readable
22:13:45 <RodgerTheGreat> what do you think about the structure of strings and arrays?
22:13:57 <oklopol> i just like to do everything creatively... so... maybe i use that as an obfuscation feature more like :P
22:14:13 <RodgerTheGreat> I think 1-indexed arrays make algorithms a lot clearer and might help avoid off-by-one errors
22:15:08 <oklopol> do you have def dbl[double:x]returns[double:ret][ret=2*x] main[][print:stdio dbl 5.0] ? because [] kinda seems like a list everywhere
22:15:17 <oklopol> ah but yeah, a value is not [value]
22:16:01 <oklopol> hmm... well, indexing is often errorprone anyway
22:16:07 <oklopol> but i don't like 1-indexing
22:16:34 <RodgerTheGreat> in most cases, a [] set indicates a series of elements or expressions of unknown length, but since this is a compiled language the "lists" cannot be manipulated at runtime
22:16:51 <oklopol> actually, can't think of any
22:17:28 <oklopol> but for god's sake don't make dim smth(-3 to 50) as integer :P
22:17:42 <oklopol> (if that's the basic array syntax)
22:18:16 <oklopol> strings and arrays, hmm, i gotta read a bit
22:18:35 <RodgerTheGreat> my main project at the moment is the creation of something that can do what structs do, and fleshing out a vague idea I had for "algorithm prefabs" that you can plug code into like parameters to save coding time
22:18:59 <oklopol> i'm a bit dense, can you elaborate?
22:19:22 <oklopol> you have structs in the lang?
22:19:58 <oklopol> arrays are 1-indexed. for example, an array of size 10 has cells 1 through 10.
22:19:58 <oklopol> cell 0 always contains the size of the array, not counting cell 0.
22:20:06 <oklopol> i was actually going to suggest you do that
22:20:17 <RodgerTheGreat> but I need something *like* them to discourage rampant use of pointers and to make manipulating data easier
22:21:14 <oklopol> you might do pass by pointer like most "clean" langs
22:21:46 <RodgerTheGreat> java's "references" are a lot safer than pointers, because you can't do math on them
22:21:49 <oklopol> or then... you could make it default to copy... but not really copy, just ensure no mutation is done
22:22:19 <oklopol> somehow make pass by pointer, but make the programmer tell if he really wants to use the same object
22:22:23 -!- sebbu2 has quit (Connection timed out).
22:22:50 <RodgerTheGreat> pointers are very powerful and very destructive. I need to fit them carefully into the language
22:23:14 <oklopol> well, you want them to be verrry explicit when used if aiming for usability
22:24:04 <oklopol> "\"algorithm prefabs\" that you can plug code into like parameters to save coding time" something like a macro?
22:24:12 <oklopol> or something completely different?
22:24:54 <oklopol> btw did you see my problem in the code? unserializing doesn't work, since i don't think i mentioned what the problem is :D
22:25:28 <oklopol> http://www.vjn.fi/pb/p626232154.txt
22:25:33 <oklopol> the first echo prints Array
22:26:23 <oklopol> the last one should try to echo a data structure... i don't think that code makes sence : )
22:26:29 <RodgerTheGreat> I'll take another look at it in a bit- I need to grab some food
22:29:50 <oklopol> okay... as i well know, fgets() does not read the whole file but until the first nl
22:30:35 <oklopol> that's my problem, unserialize fails because it is given a broken string to unserialize
22:31:07 <oklopol> but... now how do i read a whole file?
22:31:29 <oklopol> i'm using file_get_contents on the line above... i think my problem's solved :P
22:34:39 <SevenInchBread> you could use a higher level version of a pointerisms.
22:34:58 <oklopol> www.bots2.net is a nice game, but something i really dislike about it is that it discourages using scripts, so i'm making my own game in which you MUST use a script
22:35:48 <oklopol> it's an online game where you can create a bot by submitting a piece of code that determines how your bot fights and what kind of stuff it like to use
22:36:18 <SevenInchBread> well... if everything is a pointer to its data... the only other reason I could think of using pointers is to alter out-of-scope variables.
22:36:38 <oklopol> the bots automatically fight according to the tactics you code for them, tactics including both the actual fighting situation tactics and off-fight equipment buying etc
22:38:00 <oklopol> the only thing you can do in the game is check how well your bot is doing and read details about it's fights... and if you find something you can improve, you either code a new bot or change the code for the old one
22:38:30 <oklopol> so pretty much a java-style pointer only made explicit
22:38:51 <SevenInchBread> so... if you wanted a swap function that swaps the values of two variables... you could pass it symbols. swap(<x>, <y>) --assuming <> is the syntax for denoting a symbol.
22:40:37 <SevenInchBread> but... Java/C-like semantics are a little weird to me... so my ideas might not match up with the model of computation there. I mostly familiar with "scripting" languages and how they work.
22:41:18 <oklopol> yeah, and you might have template[<a>];def swap[symbol[<a>]:a symbol[<a>]:b][<a> temp=a;a=b;b=temp]
22:42:21 <oklopol> "yeah, and you might have" might be a bit out of place, i wrote that code for too long :)
22:43:18 <oklopol> except, i use <> for use of templates and the symbol thingie quite mixedly :P
22:45:31 <SevenInchBread> so... basically my concept of a variable is something like an entry in a hash table...
22:45:49 <SevenInchBread> exept... in this case... you have a way to conceptually refer to "that name in the hash table"... so you can pass it around as data and alter it.
22:46:06 <oklopol> you find it obvious you can access the name of a variable, probable
22:46:25 <oklopol> i've just recently adapted to that
22:47:25 <oklopol> and duck typing... was very hard to understand the logic first
22:47:31 <SevenInchBread> in most languages I've delt with... it's hard to directly pass an out-of-scope variable to a function for it to alter... mainly because it's not terribly useful.
22:47:46 <SevenInchBread> -snicker- static typing still confounds me to this day.
22:47:56 <oklopol> since i did not understand why two variables with the same name should have anything in common in separate scopes
22:48:10 <oklopol> but, when you thing in hash tables, it does make sence
22:48:51 <SevenInchBread> and a lot of restrictions brought about by static typing make no sense to me...
22:48:54 <oklopol> well, assign a number for each variable
22:49:08 <oklopol> the name of a variable is not an essential part of it
22:49:16 <oklopol> well, it is in scripting langs
22:49:36 <oklopol> but it's certainly not in a theoretical sence
22:49:53 <SevenInchBread> hmmm... does the number contain information about its type?
22:50:30 <oklopol> to enable dynamic typing you have to
22:51:24 <oklopol> but, the name is just a mnemonic for the programmer, which is why there is no similarity between two 'a' variables if in different contexts
22:51:25 <SevenInchBread> makes sense... the only purpose compilation serves is to make things quicker... and a common trend is that using the properties of binary to do calculations gives you tremendous speed ups.
22:52:38 <oklopol> well, not just compilation in it's normal meaning
22:53:12 <SevenInchBread> with duck typing, the name is pretty much everything...
22:53:15 <oklopol> i'd not save the name of a var anywhere even if just making a parse tree
22:53:43 <SevenInchBread> computations are blind to any concept of type... unless they specifically go about plundering the data structure to find its type.
22:55:10 <oklopol> well, duck typing can be done without names in the parsed form, you just have to ensure vars with the same name get the same index number if you represent an object as a list of it's fields
22:55:43 <SevenInchBread> most of the safety static typing gives you seems.... unessecary.
22:55:57 <oklopol> but you're getting closer :)
22:56:21 <oklopol> i've seen you say nessicary many times :D
22:56:35 <nazgjunk> "unessecary" is one beautiful piece of typo
22:57:09 <oklopol> i have caught you 2 times with nessicary, so i don't have that much proof :)
22:58:49 -!- GregorR has changed nick to _D6Gregor1RFeZi.
22:58:59 <SevenInchBread> ...I have a hard time seeing myself using a static typed language soon... maybe Haskell - I like its type system.
22:59:02 <oklopol> ...but to reply to what you actually said, static typing is not the exact opposite of duck typing :P
22:59:30 <oklopol> my terminology might be wrong
22:59:40 <SevenInchBread> duck typing basically means dynamic typing and strong typing.
23:00:33 <oklopol> i'd say it's a bit different from any of those concepts
23:01:07 <oklopol> hmm... i'm actually not exactly sure what's what
23:02:31 <SevenInchBread> duck typing determines what can happen solely what something can do.
23:04:06 <oklopol> well, i liked your analogy of a hash table better
23:04:34 <oklopol> but, i know what duck typing is, but i confused weak/strong and static/dynamic typing
23:05:02 <oklopol> duck typing however i think is something different
23:05:45 <oklopol> you can have weak typing with duck typing, and you can have strong typing with duck typing
23:05:47 <SevenInchBread> I think weak typing means the type is based mostly on how its stored in the computer. So, in weak typing, an ASCII character and a short integer are effectively the same thing.
23:06:47 <oklopol> in weak typing you store the type, since the same var can carry any value
23:06:57 <oklopol> at different parts of the program
23:09:12 <oklopol> hmmm, you might describe it like that
23:10:24 <oklopol> strong typing usually just means you type 'MY VARIABLE is an integer and it's value is 5' instead of 'MY VARIABLE has the integer value 5'
23:11:27 <SevenInchBread> the difference between static and dynamic typing is generally more straightforeward.
23:13:15 <oklopol> yes, it's whether you resolve types at runtime or not
23:14:13 <oklopol> static typing disables function a {return 0 if (param==0) else return "non zero :<<"}
23:14:26 <SevenInchBread> ...my biases exposure to scripting languages makes it seem weird that anything should trip an error before being ran - aside from syntax errors. :P
23:15:33 <oklopol> well... you might wanna redefine 'syntax error' in the dict in your head then :)
23:17:05 <SevenInchBread> hmmm... would incompatable types constitute as a syntax error in static typing?
23:17:29 <oklopol> you mean can there be implicit conversions?
23:17:51 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
23:18:25 <oklopol> but... no they wouldn't, i said wrong there :)
23:19:03 <oklopol> syntax error of course can't be anything that depends on something defined 500 lines above in the code
23:20:27 <oklopol> string s = get_string(); int i = get_int(); print s + i; even would be perfectly legal
23:21:02 <oklopol> BUT, it's known at compile-time whether an integer can be added to a string
23:24:40 <SevenInchBread> but that's a result of very little operator overloading - most operators do a very specific thing.
23:26:14 <oklopol> all i know about perl is that it's pretty awesome :)
23:31:30 <oklopol> from what i've heard it's a language where you can expect someone who knows it not to know the whole language, but only a subset of it
23:31:44 <oklopol> which is nice, because you can... suprise people :)
23:33:46 <SevenInchBread> I can't think of any uniform idea that Perl has about itself... Scheme is EVERYTHING IS DATA AND ALL SHALL BE THE LIST AND ALL SHALL BE CONSISTENT, Smalltalk is EVERYTHING IS AN OBJECT AND ALL THE LANGUAGE FEATURES SHALL BE EXPRESSED ENTIRELY IN THIS WAY WITH NO EXCEPTIONS, Python is THERE IS ONLY ONE WAY TO DO THINGS AND THAT WAY SHOULD MAKE SENSE AND EVERYHING SHALL BE EASY TO READ.
23:35:03 <SevenInchBread> I guess Perl's unifying creed is that nothing is unified.
23:35:08 <oklopol> some dislike them, i don't see any need to have two different caps
23:36:08 <oklopol> python actually isn't exactly "one way to do things"
23:36:24 <oklopol> but "there is always the one obvious way to do things"
23:36:47 <oklopol> i make about 10 redundant lambdas per function
23:37:19 <oklopol> they make the code less readable, but whaddyagonnado when they feel so good :\
23:37:35 <oklopol> mmmmmh i gotta make a few lambdas right now
23:38:08 <SevenInchBread> although Python is my most heavily used language... I rarely agree with any of the scripture.
23:38:42 <SevenInchBread> There's rarely one obvious way to do things, otherwise we'd all use the same language, and there would be no such thing as "new ideas".
23:39:03 <oklopol> pretty sexy, lambda a,b,c:lambda i:a(b(c(i)))
23:40:31 <oklopol> it's one of the few languages i can just have fun with... create random functions full of lambdas and... see them do what i meant them to do :D
23:40:50 <oklopol> with type safety you have to know what you're doing.... so you can decide that on the fly
23:41:19 <SevenInchBread> yeah... duck typing has tons of uses in my experience. I use it all the time to play around with the basics.
23:41:58 <SevenInchBread> like... overriding the basic semantics - file-like objects, iterators and the like.
23:42:33 <oklopol> my python version does not allow a lot of the fun stuff... i couldn't get 2.4 or 2.5 to work
23:42:50 <oklopol> but... maybe someone installs me linux some sunny day :)
23:43:07 <SevenInchBread> hmmm... right now I need a language that's faster than Python, fun to play with, and easy to set up on Windows.
23:43:16 <SevenInchBread> as I want to make some serious language implementations...
23:43:38 <SevenInchBread> usually the answer is C for language implementations... but I don't really want to deal with C.
23:43:53 <oklopol> well, if you compile, you can use anything
23:44:33 <oklopol> so... a script language running a script language... quite ridiculous
23:44:49 <oklopol> compilation does not mean static typing
23:44:56 <oklopol> i don't know what you meant
23:44:59 <SevenInchBread> yeah... that's why I don't want a "serious" language that I plan on using to be in something like Python.
23:45:29 <SevenInchBread> ah... bleh - I sort of associate compilation with static typing... heh, habits.
23:45:53 <oklopol> well, they have a sort of a connection
23:46:29 <SevenInchBread> heh... I'm nowhere near familiar enough with C to attempt transforming a language into it.
23:46:31 <oklopol> well, you know the connection.
23:47:10 -!- Figs has joined.
23:47:11 <SevenInchBread> ...or I could go with a C-read VM or something... but it just seems pointlessly convuluted.
23:47:28 <Figs> Wow, this exists :P
23:47:51 <oklopol> do it in python, without inner functions or lambdas, and give it to me for python -> c conversion
23:48:01 <oklopol> i've done a lot of vb -> c at least :)
23:49:07 <SevenInchBread> I could use a decently fast compiled language that suits my likings and write an interpreter in it...
23:49:29 <SevenInchBread> maybe... Common Lisp? I plan on making use of concurrency so maybe Erlang.
23:49:47 <Figs> what's going on?
23:50:23 <Figs> what type of language ;)
23:51:36 <Figs> I'm working on a language that will be very easy to extend by adding, for example, new qualifiers to object types, etc. using meta programming
23:52:10 <Figs> input code will be output in C++
23:52:23 <Figs> I'm working on parsers right now
23:52:34 <Figs> (got bored and hit StumbleUpon and found this ;p)
23:52:39 <Figs> http://esoteric.voxelperfect.net/wiki/IRP
23:56:35 <oklopol> we had #irp for that for a while but it died quite quickly :D
23:57:10 <Figs> "With his beard in the mailbox" O_o
23:57:21 <Figs> stumbleupon gives me some weird shit sometimes