D - OT: C# critique
- Mark T (1/1) Feb 01 2004 http://www.heron-language.com/c-sharp-critique.html
- Walter (4/5) Feb 01 2004 It's an interesting read. I'd like to know what language the author *doe...
-
Andy Friesen
(3/13)
Feb 01 2004
Looks like he made his own:
- Walter (4/12) Feb 01 2004 *does*
- Vathix (7/30) Feb 01 2004 This seems interesting from heron:
- Sean L. Palmer (21/21) Feb 01 2004 While I can see the motivation for an operator like that, I truly fail t...
- Walter (5/6) Feb 01 2004 I have a strong negative view of the value of overloading assignment. By...
- Matthias Becker (13/17) Feb 03 2004 Right, you can never no in D.
- Walter (7/26) Feb 03 2004 not
- Matthias Becker (3/5) Feb 04 2004 OK, seems like we have different experiences on that. In my hirachies I ...
- J Anderson (8/52) Feb 04 2004 I think a problem here, is that it's not standardised. Every time you
- Ben Hinkle (17/17) Feb 04 2004 [snip]
- christopher diggins (12/23) Feb 01 2004 x := y; // maps to x.Assign(y);
- Sean L. Palmer (8/8) Feb 01 2004 Apparently Heron. :)
- christopher diggins (21/26) Feb 01 2004 Thanks for the compliment on the article. As a couple of other have poin...
- Walter (5/22) Feb 01 2004 *does*
- The Lone Haranguer (2/7) Feb 02 2004 I'm surprised he uses English... rather than Esperanto (sp).
- Sean L. Palmer (3/3) Feb 02 2004 The Lone Haranguer wrote:
- Luke D (4/7) Feb 02 2004 Oh you're evil... Because of you, I just spent the last several hours le...
- Antti =?iso-8859-1?Q?Syk=E4ri?= (9/18) Feb 23 2004 For some reason, perhaps because of having studied several European
- Matthew (3/4) Feb 01 2004 Some good points in there, some of which also apply to D. :(
http://www.heron-language.com/c-sharp-critique.html
Feb 01 2004
"Mark T" <Mark_member pathlink.com> wrote in message news:bvj7r4$30rl$1 digitaldaemon.com...http://www.heron-language.com/c-sharp-critique.htmlIt's an interesting read. I'd like to know what language the author *does* use, and why.
Feb 01 2004
Walter wrote:"Mark T" <Mark_member pathlink.com> wrote in message news:bvj7r4$30rl$1 digitaldaemon.com...Looks like he made his own: <http://www.heron-language.com/spec.html> -- andyhttp://www.heron-language.com/c-sharp-critique.htmlIt's an interesting read. I'd like to know what language the author *does* use, and why.
Feb 01 2004
"Andy Friesen" <andy ikagames.com> wrote in message news:bvjkpt$kmp$1 digitaldaemon.com...Walter wrote:*does*"Mark T" <Mark_member pathlink.com> wrote in message news:bvj7r4$30rl$1 digitaldaemon.com...http://www.heron-language.com/c-sharp-critique.htmlIt's an interesting read. I'd like to know what language the authorI can understand his motivation to do that <g>.use, and why.Looks like he made his own: <http://www.heron-language.com/spec.html>
Feb 01 2004
Walter wrote:"Andy Friesen" <andy ikagames.com> wrote in message news:bvjkpt$kmp$1 digitaldaemon.com...This seems interesting from heron: |> Operator The "|>" or pipe operator works as both an input and an output operator allowing data to be recieved from any source that implements the IWritePipe interface and to any source that implements the IReadPipe interface.Walter wrote:*does*"Mark T" <Mark_member pathlink.com> wrote in message news:bvj7r4$30rl$1 digitaldaemon.com...http://www.heron-language.com/c-sharp-critique.htmlIt's an interesting read. I'd like to know what language the authorI can understand his motivation to do that <g>.use, and why.Looks like he made his own: <http://www.heron-language.com/spec.html>
Feb 01 2004
While I can see the motivation for an operator like that, I truly fail to see what's so different about it from the ordinary assignment operator. They both implement "data <verb>s from point A to point B" where <verb> can be replaced by any number of words, such as move, flow, transfer. I suppose if the language has weak (i.e. programmer-supported) notions of reference vs. value vs. abstracted contents, as evidenced by D's plethora of comparison operators, such a language may want to separate assignment of reference from assignment of value from assignment of contents, as well, but personally I'd rather unify, basically shield the programmer from having to worry about implementation details of the class types. Unfortunately D doesn't allow you to overload assignment. Sean Vathix wrote: | This seems interesting from heron: | | ||| Operator | The "|>" or pipe operator works as both an input and an output | operator allowing data to be recieved from any source that implements | the IWritePipe interface and to any source that implements the | IReadPipe interface.
Feb 01 2004
"Sean L. Palmer" <palmer.sean verizon.net> wrote in message news:bvjrpf$10ne$1 digitaldaemon.com...Unfortunately D doesn't allow you to overload assignment.I have a strong negative view of the value of overloading assignment. By not overloading it, the semantics of it are reliable and repeatable. (For example, does it do a deep, shallow, or reference copy?)
Feb 01 2004
Right, you can never no in D. class Foo (T) { T data; void method (T value) { data = value; // what happens? } } If T is a class-Type you have a reference copy, if it's not you have a shallow copy. In C++ you allways "know" that the class will do the right (deep copy if needed for the type or shallow copy otherwise). Perhpas something like Eiffels way of doing it would be the best?Unfortunately D doesn't allow you to overload assignment.I have a strong negative view of the value of overloading assignment. By not overloading it, the semantics of it are reliable and repeatable. (For example, does it do a deep, shallow, or reference copy?)
Feb 03 2004
"Matthias Becker" <Matthias_member pathlink.com> wrote in message news:bvnqbm$24kv$1 digitaldaemon.com...notUnfortunately D doesn't allow you to overload assignment.I have a strong negative view of the value of overloading assignment. Byshallowoverloading it, the semantics of it are reliable and repeatable. (For example, does it do a deep, shallow, or reference copy?)Right, you can never no in D. class Foo (T) { T data; void method (T value) { data = value; // what happens? } } If T is a class-Type you have a reference copy, if it's not you have acopy. In C++ you allways "know" that the class will do the right (deepcopy ifneeded for the type or shallow copy otherwise). Perhpas something like Eiffels way of doing it would be the best?<g> It is rarely clear in C++ whether one needs to do a deep or a shallow copy. Hence, I just avoid it and use functions to do deep or shallow copies.
Feb 03 2004
<g> It is rarely clear in C++ whether one needs to do a deep or a shallow copy. Hence, I just avoid it and use functions to do deep or shallow copies.OK, seems like we have different experiences on that. In my hirachies I know whether a object has to perform a deep copy or not by defualt. And depending on that I write the copy-c'tor and the assignment operator.
Feb 04 2004
Walter wrote:"Matthias Becker" <Matthias_member pathlink.com> wrote in message news:bvnqbm$24kv$1 digitaldaemon.com...I think a problem here, is that it's not standardised. Every time you want to do a copy you need to look up the method in the class. In one it might be dup(), in another it might by deepcopy(). I think there needs to be something in the language that standardises copying, particularly for templates. -- -Anderson: http://badmama.com.au/~anderson/notUnfortunately D doesn't allow you to overload assignment.I have a strong negative view of the value of overloading assignment. Byshallowoverloading it, the semantics of it are reliable and repeatable. (For example, does it do a deep, shallow, or reference copy?)Right, you can never no in D. class Foo (T) { T data; void method (T value) { data = value; // what happens? } } If T is a class-Type you have a reference copy, if it's not you have acopy. In C++ you allways "know" that the class will do the right (deepcopy ifneeded for the type or shallow copy otherwise). Perhpas something like Eiffels way of doing it would be the best?<g> It is rarely clear in C++ whether one needs to do a deep or a shallow copy. Hence, I just avoid it and use functions to do deep or shallow copies.
Feb 04 2004
[snip] | ><g> It is rarely clear in C++ whether one needs to do a deep or a shallow | >copy. Hence, I just avoid it and use functions to do deep or shallow copies. | > | I think a problem here, is that it's not standardised. Every time you | want to do a copy you need to look up the method in the class. In one | it might be dup(), in another it might by deepcopy(). I think there | needs to be something in the language that standardises copying, | particularly for templates. A consistent naming scheme should be good enough. Since arrays use a "dup" property for a shallow copy I'd just continue using that and have something like "deepdup" for a deep copy. Possibly define a couple of interfaces (Dupable and DeepDupable?) with these properties in them and its all done. Phobos should set the standard. | -- | -Anderson: http://badmama.com.au/~anderson/
Feb 04 2004
"Sean L. Palmer" <palmer.sean verizon.net> wrote in message news:bvjrpf$10ne$1 digitaldaemon.com...Vathix wrote: | This seems interesting from heron: | | ||| Operator | The "|>" or pipe operator works as both an input and an output | operator allowing data to be recieved from any source that implements | the IWritePipe interface and to any source that implements the | IReadPipe interface. While I can see the motivation for an operator like that, I truly fail to see what's so different about it from the ordinary assignment operator.x := y; // maps to x.Assign(y); y |> x; // maps to an untyped buffered transfer of bytes. The semantics are very different. For instance : matrix |> text_file; // This makes sense text_file := matrix; // this doesn't make sense So it would be pointless to just lump these together as both assignment. -- Christopher Diggins yet another language designer http://www.heron-language.com
Feb 01 2004
Apparently Heron. :) Sean Walter wrote: | "Mark T" <Mark_member pathlink.com> wrote in message || http://www.heron-language.com/c-sharp-critique.html | | It's an interesting read. I'd like to know what language the author | *does* use, and why.
Feb 01 2004
"Walter" <walter digitalmars.com> wrote in message news:bvjjso$j6h$1 digitaldaemon.com..."Mark T" <Mark_member pathlink.com> wrote in message news:bvj7r4$30rl$1 digitaldaemon.com...Thanks for the compliment on the article. As a couple of other have pointed out, I am working on my own language Heron. Here is what particularly motivates me about Heron : - no class inheritance, polymorphism based entirely on interfaces and delegation of implementation - memory protection without garbage collection - clear delineation between referencing variables and assigning values - inexpensive templates (no code bloat) - modular organization of code - objects are value types that can be referenced if desired - operator overloading - no special array type, array is just a class defined in the standard library as is every other primitive - restricted run time type information through variants I hope this helps answer your question Walter. -- Christopher Diggins yet another language designer http://www.heron-language.comhttp://www.heron-language.com/c-sharp-critique.htmlIt's an interesting read. I'd like to know what language the author *does* use, and why.
Feb 01 2004
"christopher diggins" <cdiggins users.sourceforge.net> wrote in message news:bvk72b$1kv9$1 digitaldaemon.com...*does*It's an interesting read. I'd like to know what language the authorpointeduse, and why.Thanks for the compliment on the article. As a couple of other haveout, I am working on my own language Heron. Here is what particularly motivates me about Heron : - no class inheritance, polymorphism based entirely on interfaces and delegation of implementation - memory protection without garbage collection - clear delineation between referencing variables and assigning values - inexpensive templates (no code bloat) - modular organization of code - objects are value types that can be referenced if desired - operator overloading - no special array type, array is just a class defined in the standard library as is every other primitive - restricted run time type information through variants I hope this helps answer your question Walter.Yes, it does. Thanks! And good luck with your efforts.
Feb 01 2004
In article <bvjjso$j6h$1 digitaldaemon.com>, Walter says..."Mark T" <Mark_member pathlink.com> wrote in message news:bvj7r4$30rl$1 digitaldaemon.com...I'm surprised he uses English... rather than Esperanto (sp).http://www.heron-language.com/c-sharp-critique.htmlIt's an interesting read. I'd like to know what language the author *does* use, and why.
Feb 02 2004
The Lone Haranguer wrote: | I'm surprised he uses English... rather than Esperanto (sp). If you like Esperanto, you'll really like Ido: http://www.idolinguo.com/
Feb 02 2004
In article <bvmje8$2iob$1 digitaldaemon.com>, Sean L. Palmer says...The Lone Haranguer wrote: | I'm surprised he uses English... rather than Esperanto (sp). If you like Esperanto, you'll really like Ido: http://www.idolinguo.com/Oh you're evil... Because of you, I just spent the last several hours learning Ido... and I have a lot of work to do... *ploras* Me juas ta linguo...
Feb 02 2004
In article <bvn5hs$eis$1 digitaldaemon.com>, Luke D wrote:In article <bvmje8$2iob$1 digitaldaemon.com>, Sean L. Palmer says...For some reason, perhaps because of having studied several European languages in school, Ido seems quite familiar to me already... :) Just like programming languages - learn a few and then you know them all! -Antti -- I will not be using Plan 9 in the creation of weapons of mass destruction to be used by nations other than the US.The Lone Haranguer wrote: | I'm surprised he uses English... rather than Esperanto (sp). If you like Esperanto, you'll really like Ido: http://www.idolinguo.com/Oh you're evil... Because of you, I just spent the last several hours learning Ido... and I have a lot of work to do...
Feb 23 2004
Some good points in there, some of which also apply to D. :( "Mark T" <Mark_member pathlink.com> wrote in message news:bvj7r4$30rl$1 digitaldaemon.com...http://www.heron-language.com/c-sharp-critique.html
Feb 01 2004