Re: Flow-Design: OOP component programming

2018-02-15 Thread t-t via Digitalmars-d
On Wednesday, 14 February 2018 at 22:43:21 UTC, Ola Fosheim Grøstad wrote: On Wednesday, 14 February 2018 at 18:43:34 UTC, Mark wrote: Luna [1], a new programming language that was recently mentioned on Reddit, also appears to take this "flow-oriented design" approach. It's purely functional, n

Re: Flow-Design: OOP component programming

2018-02-14 Thread Ola Fosheim Grøstad via Digitalmars-d
On Wednesday, 14 February 2018 at 18:43:34 UTC, Mark wrote: Luna [1], a new programming language that was recently mentioned on Reddit, also appears to take this "flow-oriented design" approach. It's purely functional, not OO, and I'm curious to see how it evolves. [1] http://www.luna-lang.or

Re: Flow-Design: OOP component programming

2018-02-14 Thread Mark via Digitalmars-d
On Wednesday, 14 February 2018 at 19:53:31 UTC, H. S. Teoh wrote: On Wed, Feb 14, 2018 at 06:43:34PM +, Mark via Digitalmars-d wrote: On Wednesday, 14 February 2018 at 09:39:20 UTC, Luís Marques wrote: > It seems that someone once again rediscovered the benefits > of component progr

Re: Flow-Design: OOP component programming

2018-02-14 Thread H. S. Teoh via Digitalmars-d
On Wed, Feb 14, 2018 at 06:43:34PM +, Mark via Digitalmars-d wrote: > On Wednesday, 14 February 2018 at 09:39:20 UTC, Luís Marques wrote: > > It seems that someone once again rediscovered the benefits of > > component programming, in the context of OOP, but (as usual) witho

Re: Flow-Design: OOP component programming

2018-02-14 Thread Mark via Digitalmars-d
On Wednesday, 14 February 2018 at 09:39:20 UTC, Luís Marques wrote: It seems that someone once again rediscovered the benefits of component programming, in the context of OOP, but (as usual) without the more mathematical and principled approach of something like ranges and algorithms

Re: Flow-Design: OOP component programming

2018-02-14 Thread psychoticRabbit via Digitalmars-d
On Wednesday, 14 February 2018 at 09:39:20 UTC, Luís Marques wrote: It seems that someone once again rediscovered the benefits of component programming, in the context of OOP, but (as usual) without the more mathematical and principled approach of something like ranges and algorithms: <h

Flow-Design: OOP component programming

2018-02-14 Thread Luís Marques via Digitalmars-d
It seems that someone once again rediscovered the benefits of component programming, in the context of OOP, but (as usual) without the more mathematical and principled approach of something like ranges and algorithms: <http://geekswithblogs.net/theArchitectsNapkin/archive/2011/03/19/f

Suggestion for Walter/Andrei: follow-up to Component Programming in D

2016-10-17 Thread Joakim via Digitalmars-d
I recently reread Walter's 2012 article, as it's _the_ piece I recommend to others who want to know about D from a technical perspective: http://www.drdobbs.com/architecture-and-design/component-programming-in-d/240008321 Given the great success of H.S Teoh's subsequent artic

Re: Non-pipeline component programming

2014-09-10 Thread H. S. Teoh via Digitalmars-d
Sorry for the very late reply; my internet connection was down for 2 weeks and only came back yesterday. On Thu, Sep 04, 2014 at 08:03:51AM +, David Ledez via Digitalmars-d wrote: > Dear T, > > I've read with a great attention your reply regarding ECS and OOP. You > mention that you work on

Re: Non-pipeline component programming

2014-09-04 Thread Paulo Pinto via Digitalmars-d
It was a learning process to understand what should become an object, and what should stay as usual procedural (functions/records/units) code. Regarding component programming in general, this used to be a good book on the subject. Only read the first edition (based in Component Pascal), the s

Re: Non-pipeline component programming

2014-09-04 Thread nikki via Digitalmars-d
http://t-machine.org/index.php/2014/03/08/data-structures-for-entity-systems-contiguous-memory/ has some very nice insights in the memory issue.

Re: Non-pipeline component programming

2014-09-04 Thread nikki via Digitalmars-d
I've written a coffeescript Entity Component System once(https://github.com/NikkiKoole/ces), I am planning on using https://github.com/elvisxzhou/artemisd for my D needs and I am hoping it's good (and hoping it does the components in some cache friendly manner). how does your nitro compare?

Re: Non-pipeline component programming

2014-09-04 Thread Chris via Digitalmars-d
On Wednesday, 12 February 2014 at 17:38:30 UTC, H. S. Teoh wrote: I would say that while it's insightful to apply different paradigms to solve the same problem, one shouldn't make the mistake of shoehorning *everything* into the same approach. This is what Java does with OO, for example, to

Re: Non-pipeline component programming

2014-09-04 Thread David Ledez via Digitalmars-d
busy with other matters. On Tue, Feb 04, 2014 at 04:12:48AM +, digitalmars-d-boun...@puremagic.com wrote: I loved reading Walter's component programming article in Dr. Dobb's [0] in late 2012. I had missed H. S. Teoh's mid 2013 article on calendar textual formatting using the c

Re: Non-pipeline component programming

2014-02-12 Thread H. S. Teoh
Sorry for this belated reply, I have been rather busy with other matters. On Tue, Feb 04, 2014 at 04:12:48AM +, digitalmars-d-boun...@puremagic.com wrote: > I loved reading Walter's component programming article in Dr. Dobb's > [0] in late 2012. I had missed H. S. Teoh'

Re: Non-pipeline component programming

2014-02-07 Thread Marco Leise
Am Fri, 07 Feb 2014 09:58:52 + schrieb "Francesco Cattoglio" : > On Friday, 7 February 2014 at 09:47:43 UTC, Zoadian wrote: > > On Friday, 7 February 2014 at 08:09:10 UTC, Mike Parker wrote: > > Nitro will store Translation like this, so it is even possible > > to iterate over parts of compon

Re: Non-pipeline component programming

2014-02-07 Thread Francesco Cattoglio
On Friday, 7 February 2014 at 09:47:43 UTC, Zoadian wrote: On Friday, 7 February 2014 at 08:09:10 UTC, Mike Parker wrote: Nitro will store Translation like this, so it is even possible to iterate over parts of components: Entity[] int[] for a int[] for b.x int[] for b.y int[] for b.

Re: Non-pipeline component programming

2014-02-07 Thread Zoadian
On Friday, 7 February 2014 at 08:09:10 UTC, Mike Parker wrote: On 2/7/2014 12:14 AM, Paul Freund wrote: You're example almost works. With the EntityComponentManager API it works like this: auto shipEntities = ecm.query!SpaceShip(); foreach (i, spaceship; taskPool.parallel(sh

Re: Non-pipeline component programming

2014-02-07 Thread Mike Parker
On 2/7/2014 12:14 AM, Paul Freund wrote: You're example almost works. With the EntityComponentManager API it works like this: auto shipEntities = ecm.query!SpaceShip(); foreach (i, spaceship; taskPool.parallel(shipEntities)) { auto shipData = spaceship.g

Re: Non-pipeline component programming

2014-02-06 Thread Paul Freund
On Thursday, 6 February 2014 at 13:47:22 UTC, Meta wrote: On Thursday, 6 February 2014 at 05:27:22 UTC, Mike Parker wrote: A cursory look at Nitro suggests they are using an ECS with DOP. Given that they're providing ranges for iterating the data, it will fit into D's range-based component pipe

Re: Non-pipeline component programming

2014-02-06 Thread Meta
On Thursday, 6 February 2014 at 05:27:22 UTC, Mike Parker wrote: A cursory look at Nitro suggests they are using an ECS with DOP. Given that they're providing ranges for iterating the data, it will fit into D's range-based component pipelines (std.algorithm and such). That seems cool. I can o

Re: Non-pipeline component programming

2014-02-05 Thread Mike Parker
On Wednesday, 5 February 2014 at 15:29:14 UTC, Luís Marques wrote: Still, I wonder how related to the (pipelined) component approach described by Walter and Teoh this ECS approach really is. Perhaps more specifically, I wonder if the ECS approach also allows using a lot of the std.algorithms

Re: Non-pipeline component programming

2014-02-05 Thread Luís.Marques
On Tuesday, 4 February 2014 at 09:49:39 UTC, Zoadian wrote: We're currently working on an Entity Component System for D ( https://github.com/Zoadian/nitro) Here some good explanations: http://t-machine.org/index.php/2007/09/03/entity-systems-are-the-future-of-mmog-development-part-1/ http://w

Re: Non-pipeline component programming

2014-02-04 Thread Francesco Cattoglio
On Tuesday, 4 February 2014 at 10:24:57 UTC, Paul Freund wrote: We are currently working on the first "stable" version (and API). The master branch is the last working state but our current development is in the finalize_basics (https://github.com/Zoadian/nitro/tree/finalize_basics) branch, in

Re: Non-pipeline component programming

2014-02-04 Thread Paul Freund
On Tuesday, 4 February 2014 at 10:06:18 UTC, Francesco Cattoglio wrote: On Tuesday, 4 February 2014 at 09:49:39 UTC, Zoadian wrote: We're currently working on an Entity Component System for D ( https://github.com/Zoadian/nitro) Here some good explanations: I've seen it too. I like it so far,

Re: Non-pipeline component programming

2014-02-04 Thread Francesco Cattoglio
On Tuesday, 4 February 2014 at 09:49:39 UTC, Zoadian wrote: We're currently working on an Entity Component System for D ( https://github.com/Zoadian/nitro) Here some good explanations: I've seen it too. I like it so far, because of the nice usage of templates, but right now I didn't gave it

Re: Non-pipeline component programming

2014-02-04 Thread Zoadian
On Tuesday, 4 February 2014 at 04:12:49 UTC, Luís Marques wrote: I loved reading Walter's component programming article in Dr. Dobb's [0] in late 2012. I had missed H. S. Teoh's mid 2013 article on calendar textual formatting using the component approach [1], but fortunately

Non-pipeline component programming

2014-02-03 Thread Luís.Marques
I loved reading Walter's component programming article in Dr. Dobb's [0] in late 2012. I had missed H. S. Teoh's mid 2013 article on calendar textual formatting using the component approach [1], but fortunately Ali brought it to my attention recently, and I also find it absolut

Re: Component programming

2013-08-21 Thread H. S. Teoh
On Mon, Aug 19, 2013 at 01:26:42PM +0200, Chris wrote: > On Monday, 12 August 2013 at 12:28:36 UTC, Jason den Dulk wrote: [...] > Btw, I got an error message compiling dcal.d with ldmd2 > > dcal.d(34): Error: no property 'recurrence' for type 'Date' > > It compiles with dmd and works. What versi

Re: Component programming

2013-08-19 Thread Chris
On Monday, 12 August 2013 at 12:28:36 UTC, Jason den Dulk wrote: On Wednesday, 31 July 2013 at 10:20:57 UTC, Chris wrote: This is only losely related to D, but I don't fully understand the separation of component programming and OOP What the wikipedia entry is saying, in a roundabout w

Re: Component programming

2013-08-12 Thread Jason den Dulk
On Wednesday, 31 July 2013 at 10:20:57 UTC, Chris wrote: This is only losely related to D, but I don't fully understand the separation of component programming and OOP What the wikipedia entry is saying, in a roundabout way is: All objects are components, but not all components are ob

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-12 Thread Jacob Carlborg
On 2013-08-04 06:53, Jonathan M Davis wrote: std.datetime has something like that internally for some of what it does (in particular, toSimpleString, which I wouldn't even put in there now if I could go back), but we explicitly didn't make anything like that public, because it's English-specific

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-06 Thread H. S. Teoh
On Tue, Aug 06, 2013 at 06:20:23PM +0200, bearophile wrote: > H. S. Teoh: > > >It looks like I may have to sort out some issues with compiler bugs > >before officially posting this article, though, since the code > >apparently fails to compile with many versions of DMD. :-( > > If not already pre

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-06 Thread bearophile
H. S. Teoh: It looks like I may have to sort out some issues with compiler bugs before officially posting this article, though, since the code apparently fails to compile with many versions of DMD. :-( If not already present, I suggest you to put a reduced version of the problems you have fo

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-05 Thread H. S. Teoh
On Mon, Aug 05, 2013 at 02:11:32PM +0200, Dejan Lekic wrote: [...] > Good work! I've read the article yesterday. Very educational! Thanks! I did actually make a major revision to the article last night based on some feedback I got; I rewrote much of the first part of it, so if you're interested y

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-05 Thread Dejan Lekic
. Yes, please! Alright, so I decided to prove my point about component programming by actually writing a fully-functional version of the calendar layout program, so that I have a solid piece of evidence that component programming lives up to its promise. :) In addition, I decided that for m

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-03 Thread H. S. Teoh
On Sun, Aug 04, 2013 at 05:02:05AM +0200, bearophile wrote: [...] > A bit improved chunkBy could go in Phobos. Yeah I'll look into that sometime. It'll definitely be a useful thing to have, I think. > --- > > >For our purposes, though, we can't just do this in a loop, because > >it

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-03 Thread Jonathan M Davis
On Sunday, August 04, 2013 06:20:57 Andre Artus wrote: > > Bearophile: > > If not already present this array should go in std.datetime or > > > > core.time: > > static immutable string[] monthNames = [ > > > > "January", "February", "March", "April", "May", "June", > > "Ju

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-03 Thread Andre Artus
Bearophile: If not already present this array should go in std.datetime or core.time: static immutable string[] monthNames = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ]; It should probab

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-03 Thread bearophile
H. S. Teoh: OK, here's a draft of the article: http://wiki.dlang.org/User:Quickfur/Component_programming_with_ranges Most of the code below is not tested. So my suggestions may contain bugs or mistakes. A bit improved chunkBy could go in Phobos. --- For our purposes

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-03 Thread H. S. Teoh
On Fri, Aug 02, 2013 at 03:02:24PM -0700, H. S. Teoh wrote: > On Thu, Aug 01, 2013 at 10:49:00PM -0700, Walter Bright wrote: [...] > > I think this is awesome, and this + your previous post are > > sufficient to create a great article! > > OK, here's a draft of the article: > > http://wiki.

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-03 Thread Jonathan M Davis
On Saturday, August 03, 2013 01:27:20 Timon Gehr wrote: > Also, you may want to replace some of the manually implemented ranges > where this makes sense. > > Eg, datesInYear can be expressed more to the point as: > > > auto datesInYear(int year){ > return Date(year,1,1).recurrence!((a,n)=>a

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-03 Thread H. S. Teoh
On Sat, Aug 03, 2013 at 04:12:58AM +0200, Timon Gehr wrote: > On 08/03/2013 01:05 AM, H. S. Teoh wrote: > > > >Actually, I just pulled git HEAD again, and it's still working fine. > >Maybe you just need to update your repo? > >... > > I think it pulled in the wrong version of druntime. OK, I've w

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-03 Thread Walter Bright
On 8/3/2013 6:46 AM, David Nadlinger wrote: In this example, no, as all involved ranges are evaluated lazily. (I see your general point, though.) The rules for ranges do not specify if they are done eagerly, lazily, or in parallel. Meaning, of course, that a library writer could provide all th

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-03 Thread H. S. Teoh
On Fri, Aug 02, 2013 at 06:07:02PM -0700, Andrei Alexandrescu wrote: > On 2013-08-02 23:27:20 +, Timon Gehr said: > >Also, you may want to replace some of the manually implemented > >ranges where this makes sense. > > > >Eg, datesInYear can be expressed more to the point as: > > > > > >auto dat

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-03 Thread Andre Artus
On Saturday, 3 August 2013 at 13:46:38 UTC, David Nadlinger wrote: On Saturday, 3 August 2013 at 13:35:56 UTC, Andre Artus wrote: import std.stdio; import std.algorithm; void main() { auto values = [ 1, 2, 3, 4, 5 ]; writeln(values .map!(a => a * 10) .map!(a => a / 3) .filter!(a => !(

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-03 Thread David Nadlinger
On Saturday, 3 August 2013 at 13:35:56 UTC, Andre Artus wrote: import std.stdio; import std.algorithm; void main() { auto values = [ 1, 2, 3, 4, 5 ]; writeln(values .map!(a => a * 10) .map!(a => a / 3) .filter!(a => !(a % 2))); } As stated this implies 3 separate traversals of th

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-03 Thread Andre Artus
On Thursday, 1 August 2013 at 22:45:10 UTC, bearophile wrote: Walter Bright: But consider that optimizers are built to optimize typical code patterns. Component programming is fairly non-existent in C and C++, and is new in D. Hence, optimizers are not set up to deal with those patterns (yet

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-02 Thread Timon Gehr
On 08/03/2013 01:05 AM, H. S. Teoh wrote: Actually, I just pulled git HEAD again, and it's still working fine. Maybe you just need to update your repo? ... I think it pulled in the wrong version of druntime.

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-02 Thread Andrei Alexandrescu
On 2013-08-02 23:27:20 +, Timon Gehr said: Also, you may want to replace some of the manually implemented ranges where this makes sense. Eg, datesInYear can be expressed more to the point as: auto datesInYear(int year){ return Date(year,1,1).recurrence!((a,n)=>a[n-1]+1.dur!"days")

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-02 Thread Timon Gehr
On 08/03/2013 12:02 AM, H. S. Teoh wrote: On Thu, Aug 01, 2013 at 10:49:00PM -0700, Walter Bright wrote: On 8/1/2013 10:24 PM, H. S. Teoh wrote: Once this last bit worked, though, everything fell into place quickly. After all unittests were passing, no more bugs were found!! The program can pri

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-02 Thread Walter Bright
On 8/2/2013 3:02 PM, H. S. Teoh wrote: OK, here's a draft of the article: http://wiki.dlang.org/User:Quickfur/Component_programming_with_ranges It looks like I may have to sort out some issues with compiler bugs before officially posting this article, though, since the code apparently f

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-02 Thread H. S. Teoh
On Fri, Aug 02, 2013 at 03:00:01PM -0700, H. S. Teoh wrote: > On Fri, Aug 02, 2013 at 08:49:30PM +0200, Timon Gehr wrote: [...] > > I get the dreaded forward reference errors with at least DMD 2.060, > > DMD 2.063 and DMD 2.063.2 and the 2.x build on dpaste. > > Can you send me the error messages?

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-02 Thread H. S. Teoh
On Thu, Aug 01, 2013 at 10:49:00PM -0700, Walter Bright wrote: > On 8/1/2013 10:24 PM, H. S. Teoh wrote: > >Once this last bit worked, though, everything fell into place quickly. > >After all unittests were passing, no more bugs were found!! The program > >can print beautifully laid out calendars w

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-02 Thread H. S. Teoh
On Fri, Aug 02, 2013 at 08:49:30PM +0200, Timon Gehr wrote: > On 08/02/2013 07:24 AM, H. S. Teoh wrote: > >... > >Anyway. Enough hand-waving in the air. Let the actual code speak for > >itself: > > > > https://github.com/quickfur/dcal/blob/master/dcal.d > >... > > Which version of the compiler

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-02 Thread Timon Gehr
On 08/02/2013 07:24 AM, H. S. Teoh wrote: ... Anyway. Enough hand-waving in the air. Let the actual code speak for itself: https://github.com/quickfur/dcal/blob/master/dcal.d ... Which version of the compiler are you using? I get the dreaded forward reference errors with at least DMD

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-02 Thread bearophile
H. S. Teoh: It would be nice to collect these custom ranges and see if there's some common functionality that can be added to Phobos. chunkBy seems OK for Phobos. Bye, bearophile

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-02 Thread H. S. Teoh
On Fri, Aug 02, 2013 at 04:06:46PM +, Justin Whear wrote: > On Thu, 01 Aug 2013 22:24:32 -0700, H. S. Teoh wrote: > > Now, w.r.t. the roadblocks I alluded to. > > > > When I first started working on the code, my goal was to maximize > > usage of existing Phobos facilities in order to show how

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-02 Thread Justin Whear
On Thu, 01 Aug 2013 22:24:32 -0700, H. S. Teoh wrote: > Now, w.r.t. the roadblocks I alluded to. > > When I first started working on the code, my goal was to maximize usage > of existing Phobos facilities in order to show how many batteries D > already comes with. As it turned out, I could only us

Re: Component programming

2013-08-02 Thread qznc
On Wednesday, 31 July 2013 at 10:20:57 UTC, Chris wrote: This is only losely related to D, but I don't fully understand the separation of component programming and OOP (cf. https://en.wikipedia.org/wiki/Component-based_software_engineering#Differences_from_object-oriented_programming).

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-01 Thread Walter Bright
On 8/1/2013 10:24 PM, H. S. Teoh wrote: Once this last bit worked, though, everything fell into place quickly. After all unittests were passing, no more bugs were found!! The program can print beautifully laid out calendars with no problems whatsoever. I'm so in love with D right now... If I'd do

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-01 Thread H. S. Teoh
ded to prove my point about component programming by actually writing a fully-functional version of the calendar layout program, so that I have a solid piece of evidence that component programming lives up to its promise. :) In addition, I decided that for maximum reusability, I want the output lines

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-01 Thread bearophile
Walter Bright: But consider that optimizers are built to optimize typical code patterns. Component programming is fairly non-existent in C and C++, and is new in D. Hence, optimizers are not set up to deal with those patterns (yet). I agree. GHC also works with a LLVM back-end, so those

Re: Component programming

2013-08-01 Thread John Colvin
g about the *other* >component programming, a method commonly used by game >developers >to avoid deep class hierarchies. > >http://gameprogrammingpatterns.com/component.html "Component programing" is kind of a crowded term in programming which means a lot of different t

Re: Component programming

2013-08-01 Thread John Colvin
n I read Walter's >article was that I thought he was talking about the *other* >component programming, a method commonly used by game >developers >to avoid deep class hierarchies. > >http://gameprogrammingpatterns.com/component.html "Component programing" is kind of

Re: Component programming

2013-08-01 Thread H. S. Teoh
On Thu, Aug 01, 2013 at 11:40:21PM +0200, Brad Anderson wrote: > On Thursday, 1 August 2013 at 07:23:42 UTC, Meta wrote: > >The one thing that confused me at first when I read Walter's > >article was that I thought he was talking about the *other* > >component programmi

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-01 Thread Walter Bright
mizing compiler. Is this a frontend issue or a backend issue? I don't know. But consider that optimizers are built to optimize typical code patterns. Component programming is fairly non-existent in C and C++, and is new in D. Hence, optimizers are not set up to deal with those patterns (yet).

Re: Component programming

2013-08-01 Thread Brad Anderson
On Thursday, 1 August 2013 at 07:23:42 UTC, Meta wrote: The one thing that confused me at first when I read Walter's article was that I thought he was talking about the *other* component programming, a method commonly used by game developers to avoid deep class hierarchies.

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-01 Thread Brad Anderson
On Wednesday, 31 July 2013 at 22:23:54 UTC, bearophile wrote: Currently this code inlines nothing (the allocations, the difference and the product): If you write it in component-style (using doubles here): Resident compiler guys, How difficult would it be to make sure stuff like this g

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-01 Thread bearophile
anonymous observer: ERROR 404 - PAGE NOT FOUND Andrei This one, perhaps? http://www.leafpetersen.com/leaf/publications/ifl2013/haskell-gap.pdf Yes, it's the same, thank you. Another comparison (I have not yet read this): http://www.leafpetersen.com/leaf/publications/hs2013/hrc-paper.pdf

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-01 Thread Walter Bright
On 8/1/2013 2:23 AM, John Colvin wrote: On Thursday, 1 August 2013 at 00:47:43 UTC, H. S. Teoh wrote: Add in some code examples and that could make a nice article. Yes, please!

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-01 Thread anonymous observer
On Thursday, 1 August 2013 at 16:13:55 UTC, Andrei Alexandrescu wrote: On 7/31/13 6:40 PM, bearophile wrote: According to this article it seems better, but I have no direct experience of it: http://www.leafpetersen.com/leaf/publications/hs2013/haskell-gap.pdf ERROR 404 - PAGE NOT FOUND Andre

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-01 Thread Dejan Lekic
On Thursday, 1 August 2013 at 00:47:43 UTC, H. S. Teoh wrote: On Wed, Jul 31, 2013 at 11:52:35PM +, Justin Whear wrote: On Thu, 01 Aug 2013 00:23:52 +0200, bearophile wrote: > > The situation should be improved for D/dmd/Phobos, otherwise > such D > component program

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-01 Thread Andrei Alexandrescu
On 7/31/13 6:40 PM, bearophile wrote: According to this article it seems better, but I have no direct experience of it: http://www.leafpetersen.com/leaf/publications/hs2013/haskell-gap.pdf ERROR 404 - PAGE NOT FOUND Andrei

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-01 Thread Joseph Rushton Wakeling
On 08/01/2013 03:40 AM, bearophile wrote: > Take a look at this thread in D.learn: > > http://forum.dlang.org/thread/mailman.304.1375190212.22075.digitalmars-d-le...@puremagic.com Yea, this was a frustration. :-( It was really nice to be able to write simple, clean, elegant code using D -- it wa

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-01 Thread John Colvin
On Thursday, 1 August 2013 at 00:47:43 UTC, H. S. Teoh wrote: On Wed, Jul 31, 2013 at 11:52:35PM +, Justin Whear wrote: On Thu, 01 Aug 2013 00:23:52 +0200, bearophile wrote: > > The situation should be improved for D/dmd/Phobos, otherwise > such D > component program

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-01 Thread Chris
ecause it is still a bit "loopy". And I guess this is what component programming is all about, disentangling code. The only difficulty I have is the opposition to OOP. I don't really see how the two concepts are mutually exclusive. OOP can benefit from component programming and

Re: D component programming is a joke (Was: Re: Component programming)

2013-08-01 Thread Dejan Lekic
On Wednesday, 31 July 2013 at 22:23:54 UTC, bearophile wrote: Justin Whear: If anything, component programming is just functional programming + templates and some nice syntactic sugar. And a healthy dose of pure awesome. What D calls "component programming" is very nice and good,

Re: Component programming

2013-08-01 Thread Meta
The one thing that confused me at first when I read Walter's article was that I thought he was talking about the *other* component programming, a method commonly used by game developers to avoid deep class hierarchies. http://gameprogrammingpatterns.com/component.html

Re: D component programming is a joke (Was: Re: Component programming)

2013-07-31 Thread bearophile
;good enough" efficiency. Justin Whear: I hadn't realized how bug-prone non-trivial loops tend to be until I started writing this way and avoided them entirely. I agree. Thus far, I don't think I've rewritten anything out of the component pr

Re: D component programming is a joke (Was: Re: Component programming)

2013-07-31 Thread Walter Bright
On 7/31/2013 5:46 PM, H. S. Teoh wrote: > [...] Thank you for an excellent and concise summary of what component programming is all about!

Re: D component programming is a joke (Was: Re: Component programming)

2013-07-31 Thread H. S. Teoh
On Wed, Jul 31, 2013 at 11:52:35PM +, Justin Whear wrote: > On Thu, 01 Aug 2013 00:23:52 +0200, bearophile wrote: > > > > The situation should be improved for D/dmd/Phobos, otherwise such D > > component programming remains partially a dream, or a toy. > > >

Re: D component programming is a joke (Was: Re: Component programming)

2013-07-31 Thread Andrei Alexandrescu
On 7/31/13 4:17 PM, bearophile wrote: Walter Bright: Ironically, the component program from the article I wrote: ... is 2x faster than the Haskell version: Benchmarking code written in two different languages is tricky, there are so many sources of mistakes, even if you know well both languag

Re: D component programming is a joke (Was: Re: Component programming)

2013-07-31 Thread Justin Whear
On Thu, 01 Aug 2013 00:23:52 +0200, bearophile wrote: > > The situation should be improved for D/dmd/Phobos, otherwise such D > component programming remains partially a dream, or a toy. > > Bye, > bearophile I disagree with your "toy" assessment. I've bee

Re: D component programming is a joke (Was: Re: Component programming)

2013-07-31 Thread Walter Bright
27;ll also agree with you that the component programming style is new in D, and probably could benefit a great deal from 20 years of concerted effort :-) I disagree with you that it is a toy, however. Speed is only one measure of utility.

Re: D component programming is a joke (Was: Re: Component programming)

2013-07-31 Thread bearophile
Walter Bright: Ironically, the component program from the article I wrote: ... is 2x faster than the Haskell version: Benchmarking code written in two different languages is tricky, there are so many sources of mistakes, even if you know well both languages. But I accept your timing. And I s

Re: D component programming is a joke (Was: Re: Component programming)

2013-07-31 Thread Ali Çehreli
On 07/31/2013 03:46 PM, Walter Bright wrote: > is 2x faster What do you mean exactly? :p Ali

Re: D component programming is a joke (Was: Re: Component programming)

2013-07-31 Thread Walter Bright
On 7/31/2013 3:23 PM, bearophile wrote: The situation should be improved for D/dmd/Phobos, otherwise such D component programming remains partially a dream, or a toy. Ironically, the component program from the article I wrote: void main() { stdin.byLine(KeepTerminator.yes)// 1

Re: Component programming

2013-07-31 Thread H. S. Teoh
On Wed, Jul 31, 2013 at 09:16:20PM +, Justin Whear wrote: > On Wed, 31 Jul 2013 12:20:56 +0200, Chris wrote: > > > This is only losely related to D, but I don't fully understand the > > separation of component programming and OOP [...] > A few things: > 1) T

D component programming is a joke (Was: Re: Component programming)

2013-07-31 Thread bearophile
Justin Whear: If anything, component programming is just functional programming + templates and some nice syntactic sugar. And a healthy dose of pure awesome. What D calls "component programming" is very nice and good, but in D it's almost a joke. Currently this code inlin

Re: Component programming

2013-07-31 Thread Justin Whear
On Wed, 31 Jul 2013 12:20:56 +0200, Chris wrote: > This is only losely related to D, but I don't fully understand the > separation of component programming and OOP (cf. > https://en.wikipedia.org/wiki/Component- based_software_engineering#Differences_from_object-oriented_programmin

Re: Component programming

2013-07-31 Thread H. S. Teoh
On Wed, Jul 31, 2013 at 12:20:56PM +0200, Chris wrote: > This is only losely related to D, but I don't fully understand the > separation of component programming and OOP (cf. > https://en.wikipedia.org/wiki/Component-based_software_engineering#Differences_from_object-oriented_prog

Component programming

2013-07-31 Thread Chris
This is only losely related to D, but I don't fully understand the separation of component programming and OOP (cf. https://en.wikipedia.org/wiki/Component-based_software_engineering#Differences_from_object-oriented_programming). In an OO framwork, the objects are basically components. See

Re: More on "Component Programming"

2013-05-28 Thread bearophile
Then maybe you have missed the last two times I have discussed such topics in D.learn. Sorry, I meant the main D newsgroup. Bye, bearophile

Re: More on "Component Programming"

2013-05-28 Thread Diggory
On Tuesday, 28 May 2013 at 17:24:13 UTC, H. S. Teoh wrote: On Tue, May 28, 2013 at 11:37:06AM +0200, bearophile wrote: Timothee Cour: >python uses itertools.product which is lexicographic_depth. >Like you >say, no-one can agrees what the order should be, so let's >leave it up >to user throug

Re: More on "Component Programming"

2013-05-28 Thread Walter Bright
On 5/28/2013 2:54 AM, bearophile wrote: The "rewrite rules" is a feature of the GHC compiler. It allows the library writers to define rules that in most (or many) cases are advantageous and lead to better optimization. As example one of such rules swap map and filter, putting the filter before th

Re: More on "Component Programming"

2013-05-28 Thread Jonathan M Davis
On Tuesday, May 28, 2013 19:55:43 Peter Alexander wrote: > Phobos does this a little bit in simple cases. For example, > retro(retro(r)) returns r if I remember correctly. Yes. Phobos tries to optimize useless templates like that, and definitely does it in this particular case, though I don't kno

Re: More on "Component Programming"

2013-05-28 Thread Peter Alexander
On Tuesday, 28 May 2013 at 09:54:35 UTC, bearophile wrote: The "rewrite rules" is a feature of the GHC compiler. It allows the library writers to define rules that in most (or many) cases are advantageous and lead to better optimization. As example one of such rules swap map and filter, putting

Re: More on "Component Programming"

2013-05-28 Thread H. S. Teoh
On Tue, May 28, 2013 at 11:37:06AM +0200, bearophile wrote: > Timothee Cour: > > >python uses itertools.product which is lexicographic_depth. Like you > >say, no-one can agrees what the order should be, so let's leave it up > >to user through a template. Sounds like a no-brainer to me. There > >

Re: More on "Component Programming"

2013-05-28 Thread bearophile
Jacob Carlborg: Why not use proper lambdas instead of strings? Mostly for personal reasons: quoted strings are sometimes a little shorter, and they require you to use arguments with default names (as "a" and "b"), this increased standardization makes me read them a little faster than lambda

  1   2   >