00:00:00 --- log: started forth/14.10.30 00:04:52 --- quit: samrat (Ping timeout: 255 seconds) 00:08:26 --- join: samrat (~samrat@49.244.85.48) joined #forth 00:13:41 --- join: impomatic_ (~digital_w@249.57.115.87.dyn.plus.net) joined #forth 00:22:37 --- quit: xyh (Remote host closed the connection) 00:22:59 --- join: true-grue (~grue@95-27-253-64.broadband.corbina.ru) joined #forth 00:59:51 --- quit: samrat (Ping timeout: 260 seconds) 01:12:31 --- quit: beretta (Ping timeout: 244 seconds) 01:16:11 --- join: samrat (~samrat@49.244.25.174) joined #forth 01:29:05 --- join: dys (~user@2a01:1e8:e100:8296:21a:4dff:fe4e:273a) joined #forth 01:29:34 --- quit: true-grue (Read error: Connection reset by peer) 01:30:55 --- quit: impomatic_ (Read error: Connection reset by peer) 02:11:01 --- quit: samrat (Ping timeout: 264 seconds) 02:27:19 --- join: samrat (~samrat@49.244.70.124) joined #forth 03:46:02 --- quit: dys (Ping timeout: 256 seconds) 03:56:56 --- quit: samrat (Quit: Computer has gone to sleep.) 04:45:10 --- quit: C-Keen (Quit: WeeChat 0.4.1) 05:53:31 --- join: Zarutian (~zarutian@46.22.110.168) joined #forth 05:59:25 --- join: protist (~javery@115.224.69.111.dynamic.snap.net.nz) joined #forth 06:00:22 --- quit: protist (Client Quit) 06:00:38 --- join: protist (~javery@115.224.69.111.dynamic.snap.net.nz) joined #forth 06:00:46 --- quit: protist (Client Quit) 06:00:59 --- join: protist (~javery@115.224.69.111.dynamic.snap.net.nz) joined #forth 06:17:03 --- join: C-Keen (cckeen@pestilenz.org) joined #forth 06:19:51 --- join: karswell` (~user@87.114.135.1) joined #forth 06:20:33 --- quit: karswell (Read error: Connection reset by peer) 06:22:13 --- join: true-grue (~grue@95-27-253-64.broadband.corbina.ru) joined #forth 06:27:07 --- join: samrat (~samrat@49.244.70.124) joined #forth 06:56:06 --- join: beretta (~beretta@cpe-65-185-42-203.columbus.res.rr.com) joined #forth 07:03:22 --- quit: samrat (Quit: Computer has gone to sleep.) 07:06:55 --- quit: DGASAU (Remote host closed the connection) 07:15:41 --- join: eschulte (~eschulte@98.159.213.242) joined #forth 07:20:16 --- join: DGASAU (~user@p50993595.dip0.t-ipconnect.de) joined #forth 07:24:21 --- join: vanila (~user@unaffiliated/vanila) joined #forth 07:35:03 --- quit: backer (Ping timeout: 240 seconds) 07:40:45 --- quit: ErhardtMundt (Quit: No Ping reply in 180 seconds.) 07:43:09 --- join: backer (~backer@user-1087i73.cable.mindspring.com) joined #forth 07:43:22 --- join: ErhardtMundt (~quassel@93-43-71-119.ip90.fastwebnet.it) joined #forth 07:43:43 --- quit: protist (Quit: Konversation terminated!) 07:48:34 --- quit: DGASAU (Remote host closed the connection) 07:51:52 --- quit: ErhardtMundt (Quit: No Ping reply in 180 seconds.) 07:52:32 --- join: ErhardtMundt (~quassel@93-43-71-119.ip90.fastwebnet.it) joined #forth 08:11:17 --- join: nighty^ (~nighty@hokuriku.rural-networks.com) joined #forth 08:12:36 --- join: samrat (~samrat@49.244.6.101) joined #forth 08:16:55 --- quit: samrat (Ping timeout: 244 seconds) 08:19:26 --- join: DGASAU (~user@p50993595.dip0.t-ipconnect.de) joined #forth 08:23:18 --- join: samrat (~samrat@49.244.75.50) joined #forth 08:49:47 --- quit: nisstyre (Quit: WeeChat 1.0.1) 08:52:10 --- join: nisstyre (~yourstrul@li611-52.members.linode.com) joined #forth 09:11:06 --- quit: nisstyre (Changing host) 09:11:06 --- join: nisstyre (~yourstrul@oftn/member/Nisstyre) joined #forth 10:23:06 --- quit: Zarutian (Quit: Zarutian) 10:45:18 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 11:15:48 --- quit: joneshf-laptop (Remote host closed the connection) 11:36:35 --- quit: samrat (Quit: Computer has gone to sleep.) 13:16:18 --- quit: nighty^ (Remote host closed the connection) 13:58:05 --- join: Mat3 (~Mat@ip5b414c9f.dynamic.kabel-deutschland.de) joined #forth 13:58:14 hello 14:46:07 h'lo Mat3 14:46:27 hi Zarutian 14:47:18 what can one do to get programmers to not bloat up their applications? 14:50:55 my personal view is at current that a language should enforce to make it very difficult if not impossible writing bloated code 14:52:38 that isnt likely to stop'em 14:55:15 --- quit: karswell` (Ping timeout: 244 seconds) 14:56:30 sure, but it make writing such code lesser pleaseant 14:57:17 you know Java the enterprise programming language? Why do you think it has so much boilerplating? 15:00:07 --- quit: FireFly (Ping timeout: 244 seconds) 15:03:51 my knowledge of Java is limited. I think it it mainly 'boilerplating' because of its object-oriented design 15:04:15 ^boilerplaited? 15:18:19 if you have seen SmallTalk80|Squeak then you wouldnt say that. 15:19:10 basically whoever started out making it was aping C++ which is based mainly on misunderstaning on what object-orientation is. 15:25:11 I remember Smalltalk as very ressource intensive and expressive complex programming environment 15:26:00 --- join: FireFly (~firefly@oftn/member/FireFly) joined #forth 15:27:12 whereas prototype based languages like IO archive the same abstraction level without such overhead 15:27:42 the main takeaway from Smalltalk is the sending of messages between encapsulated objects (basically method invocation) and not classes. 15:28:08 --- quit: true-grue (Read error: Connection reset by peer) 15:30:06 --- quit: FireFly (Ping timeout: 244 seconds) 15:31:10 it's mainly the idea of inheritance from which overhead grows exponentially to the complexibility of a given problem with every 'encapsulated' but overridden procedure 15:32:22 prototyped languages 'clone' objects, whereby each copy do not need to bypass there member functionality (it's instead dynamical changed) 15:32:46 * Mat3 hopes not to write to cryptical 15:33:42 Bullshit. 15:34:36 If you look at Smalltalk, you'll see that "inheritance" isn't much different from your prototypes. 15:35:18 In fact, it only helps organization, since you have more clear distinction between "class" objects and "instance" objects. 15:36:06 DGASAU: how an object implements an method is up to that object. It can have been composed from traits, used class inheritence or prototype copying. 15:37:22 DGASAU: depeding on an objects class in an guard for a variable, argument or return value is a violation of "Dont Ask, Tell" principle of good object oriented code. 15:37:32 My point is that prototyped languages essentially implement class-based or trait-based constructions. 15:37:38 Only without telling so. 15:38:20 This is not actually nice, since you have to remember which PO object is "trait", which is "class", and which one is the real one. 15:40:29 you arent getting it. The object might as well be implementing its methods as one switch, something that looks up in an hashtable or just a catch all that forwards the method invocations onto another object refered by the first. 15:40:55 That applies to hardcore MP architecture. 15:41:18 DGASAU: IO for example do not have classes at all (and no, it don't mimic them underneath) 15:41:28 MP standing for what in this context? 15:41:34 Message-passing. 15:41:44 indeed 15:42:49 if you are unsure, how 'cloning' is implemented, you are free to study the vm sources 15:44:03 Mat3: let me guess, Copy On Write for big object (such as arrays) and straight on shallow copying in other instances? 15:44:24 MP is about computation model, while inheritance, traits, prototypes are about generic programming. 15:46:13 Zarutian: Code is shared among objects and the object slots (which should be basical references) are copied as I understand it 15:46:16 Method implementation is largely irrelevant to higher-level program structuring. 15:46:28 when I want to be able to instanciate an object of some kind you wrote just give me an constructor function or closure. 15:47:45 DGASAU: how method invocation is dispatched isnt irrelevant as some assumptions made there can make or break how secure, performant and memory consumptive the system is. 15:48:04 the point is that chains of references are avoided (which Smalltalk can't grant) 15:49:26 Zarutian: because, e.g., all those more common concepts of inheritance, generic functions, and prototypes are implemented via MP. 15:49:47 --- join: FireFly (~firefly@oftn/member/FireFly) joined #forth 15:49:57 DGASAU: agreed. 15:50:02 They deal with the way you organize your objects into something reminiscent of semantic web. 15:50:50 But all three approaches produce different webs normally. 15:50:55 * Zarutian is often more used to bottom up construction of systems while coarse draft design is top-down. 15:51:42 It doesn't matter. 15:52:14 Nobody starts from "Object" class when designing big system. 15:52:38 Usually people create fragments of future architecture, 15:52:43 then join them. 15:53:23 Even when all they have is single-parent inheritance. 15:58:58 there have no inheritance at all, there are dynamical changed copies. Inheritance is only important if a so called message can't be found in the slot list 15:59:51 (bit that is a feature of IO and not typical for other languages of these class) 16:01:16 There is always inheritance, once you attempt to reuse operation on one sort of objects to perform on another sort of objects. 16:01:44 Some languages make it explicit and use the concept actively, 16:01:50 bullshit 16:01:51 other languages make it implicit. 16:03:11 Once you write "tcp_connection clone -> http_connection", you declare ancestor-descendant relation between two classes. 16:06:22 The only difference in CB and PB approaches is that 16:06:28 CB approach makes intention of "prototype" objects explicit 16:06:58 while PB approach declares all objects equal and shifts the burden of following some discipline to programmer. 16:08:47 The way how it is implemented (slot lists, messages, shallow copies, deep copies, whatever) is irrelevant here. 16:09:30 I write about implementation, you about specification 16:11:15 Sufficiently smart compiler tracks and compiles everything, ideally leaving no trace of prototypes, classes, slot lists, or messages. 16:12:34 my argument was about the inefficient ressource usage of Smalltalk 80 by handling the inheritation idea 16:13:16 Maybe. 16:14:20 because Smalltalk is a higly dynamic language and so the runime state isn't always determinable, JIT or AOT optimization in such environment is for sure at leas very inefficient in terms of ressource usage for example 16:14:45 That's bullshit. 16:15:06 Language implementation has no relation to the problem. 16:15:25 is this a bad joke of you ? 16:16:08 "Highly dynamic" has no relation to what you talked about. 16:16:43 You can implement your PB language with AST walker. 16:16:54 yor are not serious, please explain your statement a bit further ! 16:17:21 "Highly dynamic language" is nonsense. 16:17:31 You have programs. 16:17:54 If your program includes the whole Smalltalk environment, 16:18:21 then you should compare it to the same concept related to your "highly static languages." 16:19:34 In case of C it is the whole environment that includes preprocessor, compiler, linker, and file system. 16:20:33 (Essentially, a good part of minimal POSIX-compatible OS.) 16:21:21 --- join: joneshf-laptop (~joneshf@campus-057-126.ucdavis.edu) joined #forth 16:21:24 no, a C compiler can produce quite fantastic optimized code by simple static SSA transformations for example (whereby your Smalltalk environment can only be compiled beside runtime with all waste of dynamic allocated ressources) 16:21:48 That's the question of compiler quality. 16:22:15 Restrict your program to provide facilities that don't include compiler, 16:22:33 even if so, because the whole runtime state can be change at each time most sophisticated optimizations fell out 16:22:37 and even trivial Smalltalk compiler will compete against PCC or LCC. 16:24:33 anyhow, regardless you see it the ressource usage for compoilation of dynamic languages are a priori larger and because these compilation take time at runtime this is inefficient compared to static compilation 16:24:35 Extend your C program to provide facilities like WM, text editor, file system, and compiler, 16:24:55 and we'll see how it compares to Smalltalk. 16:25:37 Nothing prevents you from compiling subset of Smalltalk statically. 16:26:05 fine, why should I use it then ? 16:26:32 I think the dynamic nature of these language is its greathest strenght 16:26:57 anyhow, must get some sleep 16:28:02 Because you can treat it as generic Smalltalk while working on the code. 16:28:26 no, a subset is a subset 16:28:29 ciao 16:28:32 --- quit: Mat3 (Quit: Verlassend) 16:58:02 --- quit: joneshf-laptop (Quit: Leaving) 19:09:37 --- join: samrat (~samrat@49.244.28.182) joined #forth 19:13:48 --- join: saml_ (~saml@pool-71-190-3-251.nycmny.east.verizon.net) joined #forth 19:22:45 --- quit: samrat (Quit: Computer has gone to sleep.) 20:15:07 --- quit: Zarutian (Quit: Zarutian) 20:35:11 --- join: samrat (~samrat@49.244.28.182) joined #forth 20:45:48 --- quit: samrat (Ping timeout: 245 seconds) 20:48:27 --- join: samrat (~samrat@49.244.50.14) joined #forth 21:11:05 --- quit: cataska (Remote host closed the connection) 21:17:24 --- quit: MrMobius (Quit: HydraIRC -> http://www.hydrairc.com <- Would you like to know more?) 21:23:03 --- quit: saml_ (Quit: Leaving) 22:17:34 --- join: MrMobius (~Joey@c-98-223-189-47.hsd1.in.comcast.net) joined #forth 23:22:33 --- quit: vanila (Quit: Leaving) 23:59:59 --- log: ended forth/14.10.30