digitalmars.D - why a part of D community do not want go to D2 ?
- bioinfornatics (3/3) Nov 06 2010 hello,
- bearophile (4/6) Nov 06 2010 There aren't good D2 compilers yet beside DMD, so they use what they can...
- Jimmy Cao (4/8) Nov 06 2010 Large amount of bugs?
- Denis Koroskin (8/12) Nov 07 2010 Many of the D2-only features are half-baked:
- Jacob Carlborg (5/18) Nov 07 2010 Actually I think he wants to use D2 with Tango but wondering why nobody
- bioinfornatics (1/1) Nov 07 2010 So D community will be split in 2. And D1 continue to evolve without D2 ...
- Andrei Alexandrescu (77/80) Nov 08 2010 The current situation and the dynamics are quite interesting, and I am
- bearophile (6/9) Nov 08 2010 Uhm... For example the whole implementation of nonnullables in D2 is alr...
- Andrei Alexandrescu (13/23) Nov 08 2010 I think we have different definitions of what a design flaw is. C++
- oldtimer (7/34) Nov 08 2010 For some members of the community D has been a learning process; D has i...
- so (3/3) Nov 08 2010 Why are you even here? D is a waste of time if you believe the half of t...
- Andrei Alexandrescu (38/117) Nov 08 2010 All very good points. Walter is generally shy to put forth agenda that
- thank you oldtimer (5/6) Nov 09 2010 Is it a coincidence that all the complaints seem to come from a single p...
- Gour (7/7) Nov 09 2010 On Tue, 09 Nov 2010 05:27:22 -0500er wrote:
- Boris Wang (2/45) Nov 09 2010
- Boris Wang (11/62) Nov 09 2010 First, forgive my poor english.
- Daniel Gibson (12/20) Nov 09 2010 If he isn't good at language design (in other words: D sucks): why do
- Andrei Alexandrescu (5/23) Nov 09 2010 I think he meant "We should all either continue working on D or make a
- Daniel Gibson (9/41) Nov 09 2010 e:
- Andrei Alexandrescu (3/44) Nov 09 2010 My guess is "do it professionally and successfully".
- Boris Wang (4/60) Nov 09 2010 Thanks.
- Eric Poggel (8/9) Nov 09 2010 If h3r3tic, jarett billingsley, retard*, superdan, bearophile, and
- Bruno Medeiros (13/31) Nov 29 2010 Dude, you're wasting your breath with such a serious reply: "thank you
- troll (8/17) Nov 29 2010 Where did you get that from? If this is true, it just means that this pl...
- Led Zeppelin (8/8) Nov 09 2010 "than you oldtimer" wrote:
- Eric Poggel (3/5) Nov 09 2010 This is why the family unit is such a failure. Maybe trolls come from
- Jonathan M Davis (3/4) Nov 09 2010 That post was definitely trolling, but I have to laugh at that last line...
- Nick Sabalausky (9/25) Nov 11 2010 This bothers me. I don't think it's at all healthy for the D community t...
- bearophile (5/10) Nov 08 2010 OK.
- Daniel Gibson (34/62) Nov 08 2010 You gain a lot of power by using D1 instead of Java/C++: Usable Template...
- Trass3r (6/15) Nov 08 2010 Won't happen anyway.
- Daniel Gibson (4/23) Nov 08 2010 Shouldn't GDC work on windows with MinGW? Maybe someone could try that a...
- Trass3r (1/3) Nov 08 2010 Just try compiling it ;)
- Iain Buclaw (6/9) Nov 08 2010 MinGW is just one of those pedantic systems. Requires building and insta...
- Jacob Carlborg (17/79) Nov 09 2010 Here's the problem with that: since Sean basically forked the Tango
- Andrei Alexandrescu (18/45) Nov 09 2010 It's not difficult to offer e.g. an incompatible C runtime that is
- Jacob Carlborg (11/59) Nov 09 2010 There was a good "standard" library that you forked and never added back...
- Andrei Alexandrescu (24/70) Nov 09 2010 This must be some confusion. I didn't fork anything. Besides, it's not
- Tobias Pfaff (32/106) Nov 09 2010 Hi all,
- Walter Bright (10/31) Nov 09 2010 I don't know that it's bitter, "spirited" might be a better term. I like...
- Jacob Carlborg (7/38) Nov 10 2010 I don't want to increase any separation in the D community and would
- retard (31/44) Nov 10 2010 A dual licensing scheme for all code might help a bit (since both partie...
- Jacob Carlborg (4/48) Nov 10 2010 I basically agree with all this.
- Walter Bright (6/11) Nov 10 2010 Releasing under the Boost license will make it compatible with both. Suc...
- so (18/31) Nov 10 2010 There are so many people love C and "hate" C++. We know it is the same
- dsimcha (13/16) Nov 10 2010 Frankly, for a library, I hate it in most cases. Libraries need to make...
- Walter Bright (3/5) Nov 10 2010 Hear hear. For example, one of the goals with D strings was to make them...
- Jesse Phillips (2/8) Nov 10 2010 And yet we still get those that want a class, or even limit the capabili...
- Jonathan M Davis (9/22) Nov 10 2010 Well, of course his first reaction was negative. Arrays suck in other la...
- Daniel Gibson (17/39) Nov 11 2010 The only possible source of confusion may be that slicing is only safe w...
- Andrei Alexandrescu (9/54) Nov 11 2010 That's not implemented and I don't think it would be useful. Usually
- Daniel Gibson (7/73) Nov 11 2010 I'm glad to have accidentally revealed that inconsistency ;)
- Andrei Alexandrescu (4/74) Nov 11 2010 Yah, this is worth a bug report. Thanks.
- spir (36/42) Nov 11 2010 Yes, but a code unit does not represent a character, instead a unicode "...
- Daniel Gibson (9/29) Nov 11 2010 OMG, this is worse than I thought O_O
- spir (49/79) Nov 11 2010 -
- retard (7/11) Nov 11 2010 That might be true for many americans. But even then the single byte
- spir (33/46) Nov 12 2010 =E2=80=9D and =E2=80=9C are=20
- Walter Bright (2/3) Nov 12 2010 Oh gosh, another in the never ending menagerie of Unicode terms. :-(
- Walter Bright (2/5) Nov 11 2010 http://www.digitalmars.com/d/2.0/phobos/std_utf.html
- Daniel Gibson (10/29) Nov 11 2010 If I'm not mistaken, those functions don't handle these "graphemes", i.e...
- Walter Bright (10/11) Nov 11 2010 Probably not, since I don't know what the **** a grapheme is. I think th...
- spir (67/79) Nov 12 2010 person=20
- Daniel Gibson (2/8) Nov 12 2010 That'd be great :-)
- spir (16/25) Nov 12 2010 =20
-
Nick Sabalausky
(15/25)
Nov 11 2010
"spir"
wrote in message - Eric Poggel (5/7) Nov 10 2010 I agree with most of the others except for this one.
- Jacob Carlborg (5/12) Nov 10 2010 You can have renamed imports: import Math = std.math; and the you can
- so (4/8) Nov 10 2010 You can get the same thing with a namespace/module named math, after all...
- bearophile (5/10) Nov 10 2010 Object oriented programming is a way to think about code, so it may come...
- Andrew Wiley (10/25) Nov 10 2010 One thought here:
- Daniel Gibson (6/12) Nov 10 2010 Or just put it in one library and call it "Tango2" or something like tha...
- Andrew Wiley (6/20) Nov 10 2010 Well, with Phobos 2, it may be that the cost of porting Tango no longer
- Andrew Wiley (3/17) Nov 10 2010 It's also worthy of note that I wasn't addressing the porting of Tango
- Daniel Gibson (8/36) Nov 10 2010 I thought with "[...] the functionality and APIs provided by Tango is st...
- Andrew Wiley (11/47) Nov 10 2010 Well, my assumption was that Phobos 2 was pretty much complete. If more
- klickverbot (5/6) Nov 11 2010 Hell, no – there currently isn't even a reliable way to load shared
- Sean Kelly (2/9) Nov 11 2010 Runtime.loadLibrary() is meant to handle the basics. If there's somethi...
- Jonathan M Davis (17/20) Nov 10 2010 Goodness, no. Phobos is nowhere near complete. Whole modules such as std...
- Steven Schveighoffer (4/10) Nov 11 2010 red black tree is complete, and has been submitted to Andrei for inclusi...
- spir (10/13) Nov 11 2010 =20
- Simen kjaeraas (5/7) Nov 11 2010 We got kinda spooked by the incident with SHOO and std.time. It likely
- Justin Johansson (3/14) Nov 11 2010 You forgot Excommunication :-)
- Justin Johansson (5/7) Nov 11 2010 in larger programs.
- Walter Bright (2/6) Nov 10 2010 This is great news! Thank you!
- Jacob Carlborg (12/19) Nov 11 2010 No no no, thank YOU. You have been very generous in licensing your
- klickverbot (8/11) Nov 10 2010 I probably wouldn't get the problem anyway, and I have been using both
- klickverbot (2/3) Nov 10 2010 Whoops, s/and/as/ there…
- Jacob Carlborg (18/92) Nov 10 2010 Ok, "you" wasn't not a good word in this case and I apologize. What I
- Don (9/31) Nov 09 2010 Sorry, that is completely false. druntime was created specifically to
- so (6/9) Nov 09 2010 This is the single big thing on this tango vs phobos issue i never
- Jesse Phillips (2/13) Nov 09 2010 Well, I think some people could not be contacted. Otherwise it is just s...
- Don (3/11) Nov 10 2010 Nobody knows, apart from the people involved. They've made no statement
- lurker #5 (14/14) Nov 10 2010 As a long time lurker I witnessed the last, rather infamous event when t...
- Daniel Gibson (3/17) Nov 10 2010 Yeah right, that's gonna help. Walter acting like a douche will certainl...
- Jacob Carlborg (11/42) Nov 10 2010 Of course that would be the preferred way, there should have been some
- Gour (31/32) Nov 10 2010 Jacob> Of course that would be the preferred way, there should have
- piotrek (6/24) Nov 11 2010 These words I strongly agree with ;)
- Steven Schveighoffer (14/20) Nov 10 2010 I think this is the whole point of Jacob's that is being missed -- Tango...
- Moritz Warning (3/8) Nov 07 2010 - D2 trades complexity for more features
- Fawzi Mohamed (16/24) Nov 07 2010 Personally I am not "against" D2, in fact there are several features
- Stewart Gordon (5/8) Nov 07 2010 Sick of waiting for D1 to be finished.
- Bruno Medeiros (4/14) Nov 29 2010 Did you mean D2, in "Sick of waiting for D1 to be finished." ?
- Stewart Gordon (5/19) Nov 30 2010 I don't know what you mean....
- Bruno Medeiros (7/27) Nov 30 2010 I meant: did you mean "Sick of waiting for D2 to be finished." instead
-
Stewart Gordon
(12/21)
Nov 30 2010
- so (9/15) Dec 01 2010 I believe their reasons are political.
-
Stewart Gordon
(5/11)
Dec 01 2010
- Bruno Medeiros (18/39) Dec 02 2010 Given what you meant by finished (consistently defined language, etc.),
- retard (8/52) Dec 02 2010 Even if Walter refused to work on D1 anymore, some believe that the
- Eric Poggel (4/7) Nov 07 2010 D1+Tango is working well enough for my project (Yage), but I like the
- ponce (2/5) Nov 09 2010 Pretty much the same here, except I use D1 + Phobos.
- Bane (2/8) Nov 09 2010 Same thing here. It has all I need so far. Tried to switch to D2 couple ...
- FeepingCreature (4/10) Nov 10 2010 Wow.
- superman (13/23) Nov 11 2010 arnoldsschwartz, bjarne yesterday, blaise pascal, cal, chmod+x,
- Sean Kelly (3/47) Nov 10 2010 There was another simpler reason as well, which was that I didn't want t...
- Jacob Carlborg (8/55) Nov 11 2010 I can really understand that this can be very frustrating. I don't have
- Daniel Gibson (9/24) Nov 11 2010 That every compiler ships it's own version of druntime?
- Bernard Helyer (9/12) Nov 11 2010 I am attempting to write a compiler in D2 (github.com/bhelyer/SDC), and ...
- Sam Hu (35/52) Nov 10 2010 Is printing Chinese font in the console under windows now workable?If ye...
- Andrei Alexandrescu (6/58) Nov 11 2010 I am ashamed to reply that this is due to a major dmd bug that is not
- Sean Kelly (4/7) Nov 11 2010 They should be in their own SVN repository somewhere. I think one could...
- Vladimir Panteleev (10/13) Nov 11 2010 Nitpicking and off-topic, but probably not SVN - a DVCS would make
- Jacob Carlborg (4/11) Nov 12 2010 Ok, thanks for explaining.
- Sean Kelly (2/15) Nov 11 2010 I absolutely believe that druntime should be used by D2 compilers. The ...
- Russel Winder (14/20) Nov 11 2010 Using Git is certainly better than using Subversion, but Bazaar and
- bioinfornatics (1/1) Nov 11 2010 git is better for managing branch
- klickverbot (5/7) Nov 11 2010 Oh, so you really want to start that discussion/flamewar again? -.-
- Sam Hu (4/17) Nov 11 2010 Thank you so much for your time to reading my post!
- Andrei Alexandrescu (5/22) Nov 11 2010 Walter fixed this bug today:
hello, I have a question (i would like understand), they are many important people of D community who do not want go to D2, why ? thanks for answer
Nov 06 2010
bioinfornatics:hello, I have a question (i would like understand), they are many important people of D community who do not want go to D2, why ?There aren't good D2 compilers yet beside DMD, so they use what they can. And D1 and D2 aren't equal, D1 is simpler (and quite less fussy regarding immutability), so people that like D1 may not like D2 and people that like D2 may not like D1. Some features of D2 are not light (immutability) and some of the other features are seen by some people as not so essential ( property and other things). This is just speculation of mine, I don't know what they think. Bye, bearophile
Nov 06 2010
On Sat, Nov 6, 2010 at 6:11 PM, bioinfornatics < bioinfornatics fedoraproject.org> wrote:hello, I have a question (i would like understand), they are many important people of D community who do not want go to D2, why ? thanks for answerLarge amount of bugs? (That's one of the many reasons, I think).
Nov 06 2010
On Sun, 07 Nov 2010 02:11:59 +0300, bioinfornatics <bioinfornatics fedoraproject.org> wrote:hello, I have a question (i would like understand), they are many important people of D community who do not want go to D2, why ? thanks for answerMany of the D2-only features are half-baked: - pure, nothrow and inout are not implemented fully (barely usable as is) - immutable and shared still have many issues - property is a no-op D1 also has Tango which is still *a lot* better than D2 Phobos, but there is a work in this area, and it's being slowly improved.
Nov 07 2010
On 2010-11-07 10:50, Denis Koroskin wrote:On Sun, 07 Nov 2010 02:11:59 +0300, bioinfornatics <bioinfornatics fedoraproject.org> wrote:Actually I think he wants to use D2 with Tango but wondering why nobody is interested in porting it. -- /Jacob Carlborghello, I have a question (i would like understand), they are many important people of D community who do not want go to D2, why ? thanks for answerMany of the D2-only features are half-baked: - pure, nothrow and inout are not implemented fully (barely usable as is) - immutable and shared still have many issues - property is a no-op D1 also has Tango which is still *a lot* better than D2 Phobos, but there is a work in this area, and it's being slowly improved.
Nov 07 2010
So D community will be split in 2. And D1 continue to evolve without D2 community, D1 frontend is open source and he coulb be used for improve and fix D1
Nov 07 2010
On 11/7/10 6:33 AM, bioinfornatics wrote:So D community will be split in 2. And D1 continue to evolve without D2 community, D1 frontend is open source and he coulb be used for improve and fix D1The current situation and the dynamics are quite interesting, and I am looking forward to witnessing how things will unfold. There is a community for which D1's offering is just fine. They've used D1 long enough to use it idiomatically and to derive better enjoyment than from the likes of Java or C++. The gain in power, albeit marginal, is present. That base has been understandably annoyed by D2 being backwards incompatible with D1, and has a dim view of the advantages brought about by D2's additions (mainly concurrency and its paraphernalia - immutability and no default sharing). The fact that the implementation of the newest features is incomplete fuels arguments against D2. The immaturity of alternative back-ends (gdc, llvm for D2 are both quite young) contributes to the perception that D2 does not offer a net advantage when compared with D1. It is my perception (though I might be wrong) that the dichotomy has become to some extent political. D2 offers little political incentive to a Tango port. Tango is currently the de facto standard library for D1 as the vast majority of D1 users use D1 and Tango in conjunction, which precludes use of the underpowered Phobos1 (D1's de jure standard library). Due to Sean's work on making druntime independently available, porting to D2 would lower Tango's status from the standard library to one of the libraries that may be used in conjunction with Phobos2. So in the current equilibrium D1 and Tango form a bond: D1 is platform offering Tango exclusivity as the standard library and Tango is the library that makes D1 attractive. The risk assumed by that bond (assuming the assumption above is correct) is isolation in a position condemned to inevitable obsolescence. As far as language proper is concerned, D1 has the option of becoming an incompatible fork by choosing to evolve its own features independently of dmd. That process could be greatly helped if a strong language designer would decide to work on D1. I see that as a possible but unlikely scenario (unlikely because a language designer would have to be primarily politically motivated to make such a decision). From the D2 side, it all boils down to the question: are D2's additions worthwhile or not? D2 places bets on concurrency, correctness, and opt-out safety. Those bets looked much riskier two years ago than they look now, but still carry a risk. Also, as I mentioned above, currently the implementation of many new features is superficial. This is caused by the current development model of the reference compiler - features are implemented without a formal description. There is disproportionate reliance on the compiler test suite to effectively define the language by exercising all of its features and feature combinations. The test suite is undeniably useful, which makes it even more difficult to explain its problems. Some more complicated features are first implemented to simply make a narrow test pass, and then spend a long time in an "almost-well-defined" state in which bug reports are fixed and added to the test suite. I believe that the informal language development is curre ntly the single most important liability of D. (That is, somewhat ironically, a matter in which D2 is at an advantage to D1.) The insufficient implementation of new features propagates the perception that D2 is unstable, although the more conventional, D1-like subset of D2 is as solid in both languages. But then the perception is justified, because one would want to use D2 primarily for its new, unique offerings. A longer term perception problem is that some might think the _design_ of such features has unsolvable issues, which hurts the image of the language. I know of no major design flaws, but that is only an academic argument in wake of perennial implementation insufficiencies. TDPL's publication brought about a change of pace in D2 from design to implementation. Currently there is strong focus on the 64-bit port, which is a gating issue. Work on D2's standard library has increased in intensity and scope. I have good reasons to believe that such developments will continue growing at a robust pace for the foreseeable future. Probably participation to the standard library will increase faster than participation to the compiler implementation, mostly for the obvious reason that library work is easier to parallelize. Going forward, I see any adoption of D (be it D1 or D2) beneficial. I am confident that most people who will get first acquainted with D1 will be ultimately compelled to use D2. The community would be helped if factionalism would subside, but for the political reasons mentioned above I don't see that happening soon. Anyhow, I don't think that that would impede the success of D in the long term. The problems that D is currently facing are all solvable with quality implementation. To me it seems that the talented and growing contributor base that can rise to the challenge. Andrei
Nov 08 2010
Andrei:A longer term perception problem is that some might think the _design_ of such features has unsolvable issues,That's my fear (so it's problem, even if it's just a perceived imaginary problem). But I am not in a rush, so I am not going away.I know of no major design flaws,Uhm... For example the whole implementation of nonnullables in D2 is already becoming a big design flaw. Library-based nonullables will be awful, quite worse than the Rebindable hack. I think most people will not use them. We'll see. Are they able to reduce bug count in the average D2 program? Thank you for the long post of your current view of D world. Bye, bearophile
Nov 08 2010
On 11/8/10 12:48 PM, bearophile wrote:Andrei:I think we have different definitions of what a design flaw is. C++ export was a design flaw. PHP also has several design flaws. The fact that you can't implement non-nullable references in e.g. C++ or Java is not a design flaw in those respective languages. Generally I think the case of non-null references is overstated. It doesn't deserve that much agitation. It's being mentioned as a life or death matter in spite of the simple evidence that many mainstream languages are doing well without it, and without a landslide popular vote for adding it. (And it's not a flaw in their design that they don't make non-null references implementable.)A longer term perception problem is that some might think the _design_ of such features has unsolvable issues,That's my fear (so it's problem, even if it's just a perceived imaginary problem). But I am not in a rush, so I am not going away.I know of no major design flaws,Uhm... For example the whole implementation of nonnullables in D2 is already becoming a big design flaw.Library-based nonullables will be awful, quite worse than the Rebindable hack.How did you reach that conclusion? Andrei
Nov 08 2010
Mon, 08 Nov 2010 13:06:23 -0800, Andrei Alexandrescu wrote:On 11/8/10 12:48 PM, bearophile wrote:For some members of the community D has been a learning process; D has introduced the members to new features in language design. It has been an informal trial and error process. Even Walter has learned a lot, which is nice. This has caused at least two problems. The requirements have changed and developers expect now more advanced functionality. The amount of suggested design ideas has grown, but the development speed hasn't scaled as well. The development process doesn't scale up since almost no documentation gets written. The expectations may be unrealistically high. Sometimes the expectations are realistic, but the combination of legacy design choices in D1 and D2, TDPL pressure, D2 stabilization pressure, and D2 schedule has brought a suboptimal implementation. The second problem is, the developers now expect more knowledge from the language designer. It gets really frustating if we need to start teaching him to get better features. This is universal - if your kids go to a really bad public school, you might want to start teaching them at home or consider some private school (= other language). If your lawmakers don't understand the laws they pass, you might consider moving to another country (= other language/platform). I can say I'm not really convinced. I'm probably not the only one. It's bad for the publicity that digitalmars can't articulate any kind of official *written* roadmap for new features. You don't want to dedicate much (financial) effort on projects using the cowboy coding paradigm. The project has a trac page. Writing down: "1. 64-bit dmd (N months) 2. concurrency fixes (M months) etc." shouldn't take too long. If my guess is right, you can even copy'n'paste it straight away. But you also need to update it! This is basic project management these days. One reason why Python/Ruby are so popular is their terse syntax. The library based solutions in D2 aren't that cute. Some developers value the beauty of code. If the solutions are too ugly, people will switch to other languages. Compare Pascal with C, the languages are quite similar modulo syntactic changes. The other one won. For commercial users of D the feature set matters a lot. If D2 can't deliver the power of D1 & Tango, there's nothing you can do. A sane corporation would not donate code to Phobos just because its quality is worse and it's an empathetic thing to do. Corporations don't work this way. Those who are fixing Phobos are individual zealots swimming against the stream. They have a very long term technical agenda (D2 will beat comtemporary technologies in 10+ years), a religious agenda, nothing better to do, or some kind of mental illness. Corporations aren't interested in very long term technical issues, they care about short term solutions (1 to 36 months). Some of us hoped D2 would solve the ugly corner cases of the language and unify a lot of features. Unfortunately not any kind of macro system was implemented, templates got even uglier, the alias this hack, snake oil template!X syntax shortcut and all kinds of unnecessary features were added. Of course also good features were added, but overall this just isn't good enough.Andrei:I think we have different definitions of what a design flaw is. C++ export was a design flaw. PHP also has several design flaws. The fact that you can't implement non-nullable references in e.g. C++ or Java is not a design flaw in those respective languages. Generally I think the case of non-null references is overstated. It doesn't deserve that much agitation. It's being mentioned as a life or death matter in spite of the simple evidence that many mainstream languages are doing well without it, and without a landslide popular vote for adding it. (And it's not a flaw in their design that they don't make non-null references implementable.)A longer term perception problem is that some might think the _design_ of such features has unsolvable issues,That's my fear (so it's problem, even if it's just a perceived imaginary problem). But I am not in a rush, so I am not going away.I know of no major design flaws,Uhm... For example the whole implementation of nonnullables in D2 is already becoming a big design flaw.
Nov 08 2010
Why are you even here? D is a waste of time if you believe the half of the nonsense you have written. It is much better for you to be part of that "stream", much safer.
Nov 08 2010
On 11/8/10 2:07 PM, oldtimer wrote:Mon, 08 Nov 2010 13:06:23 -0800, Andrei Alexandrescu wrote:All very good points. Walter is generally shy to put forth agenda that are difficult to estimate and meet. There have been, for example, unexpected (and unexpectedly long) setbacks of the 64-bit release due to seemingly minor hitches (e.g. C-style variadics). At any rate, I, too, think a sort of general agenda would be useful to keep updated. One simple thing that I've recently done (my free time has been relatively scarce lately) was to work on bug reports starting from the oldest first. (I solved a bunch, too - it took me a couple of days to go through like 70.) The oldest non-enhancement non-lowpri unsolved bug is a metric that people will look at, and limiting the age of the oldest bug gives people a sense that all reports will be looked at in a fair manner.On 11/8/10 12:48 PM, bearophile wrote:For some members of the community D has been a learning process; D has introduced the members to new features in language design. It has been an informal trial and error process. Even Walter has learned a lot, which is nice. This has caused at least two problems. The requirements have changed and developers expect now more advanced functionality. The amount of suggested design ideas has grown, but the development speed hasn't scaled as well. The development process doesn't scale up since almost no documentation gets written. The expectations may be unrealistically high. Sometimes the expectations are realistic, but the combination of legacy design choices in D1 and D2, TDPL pressure, D2 stabilization pressure, and D2 schedule has brought a suboptimal implementation. The second problem is, the developers now expect more knowledge from the language designer. It gets really frustating if we need to start teaching him to get better features. This is universal - if your kids go to a really bad public school, you might want to start teaching them at home or consider some private school (= other language). If your lawmakers don't understand the laws they pass, you might consider moving to another country (= other language/platform). I can say I'm not really convinced. I'm probably not the only one. It's bad for the publicity that digitalmars can't articulate any kind of official *written* roadmap for new features. You don't want to dedicate much (financial) effort on projects using the cowboy coding paradigm. The project has a trac page. Writing down: "1. 64-bit dmd (N months) 2. concurrency fixes (M months) etc." shouldn't take too long. If my guess is right, you can even copy'n'paste it straight away. But you also need to update it! This is basic project management these days.Andrei:I think we have different definitions of what a design flaw is. C++ export was a design flaw. PHP also has several design flaws. The fact that you can't implement non-nullable references in e.g. C++ or Java is not a design flaw in those respective languages. Generally I think the case of non-null references is overstated. It doesn't deserve that much agitation. It's being mentioned as a life or death matter in spite of the simple evidence that many mainstream languages are doing well without it, and without a landslide popular vote for adding it. (And it's not a flaw in their design that they don't make non-null references implementable.)A longer term perception problem is that some might think the _design_ of such features has unsolvable issues,That's my fear (so it's problem, even if it's just a perceived imaginary problem). But I am not in a rush, so I am not going away.I know of no major design flaws,Uhm... For example the whole implementation of nonnullables in D2 is already becoming a big design flaw.One reason why Python/Ruby are so popular is their terse syntax. The library based solutions in D2 aren't that cute. Some developers value the beauty of code. If the solutions are too ugly, people will switch to other languages. Compare Pascal with C, the languages are quite similar modulo syntactic changes. The other one won.I agree in spirit, but beyond some point this all becomes a manner of taste. And library solutions scale in many ways much better than solutions built into the language - I mean look at Python's "print". I'd actually prefer NonNull!T over T or nonnull T etc. What I prefer even more about NonNull!T is that it uses general language facilities that can be used for NonZero!T or Bounded!T etc. as discussed.For commercial users of D the feature set matters a lot. If D2 can't deliver the power of D1& Tango, there's nothing you can do.What I can do is work on D and encourage others to do the same.A sane corporation would not donate code to Phobos just because its quality is worse and it's an empathetic thing to do. Corporations don't work this way. Those who are fixing Phobos are individual zealots swimming against the stream. They have a very long term technical agenda (D2 will beat comtemporary technologies in 10+ years), a religious agenda, nothing better to do, or some kind of mental illness. Corporations aren't interested in very long term technical issues, they care about short term solutions (1 to 36 months). Some of us hoped D2 would solve the ugly corner cases of the language and unify a lot of features. Unfortunately not any kind of macro system was implemented, templates got even uglier, the alias this hack, snake oil template!X syntax shortcut and all kinds of unnecessary features were added. Of course also good features were added, but overall this just isn't good enough.I was expecting a number of responses from under the cloak of anonymity (i.e. from people whose identity would immediately reveal their agenda), and as far as those go this post was surprisingly good up until the last paragraphs. Here is unfortunately where the tone of the discourse degrades. Let's not forget that a lot of good work - including Tango itself - has been done by "zealots". It also seems that disingenuously attempting to frame D2 contributors as weirdos with a religious agenda, nothing better to do, or mentally ill is a display of an emotional position in the matter that instantly reduces the quality of any point made and that of the dialog in general. This all being told from under anonymity doesn't help either. I understand you would have liked macros, dislike the paren-less shortcut notation A!B instead of A!(B), and dislike some untold features that you find as unnecessary. It would be great if you substantiated these points while leaving the subjective outside. For example, I am confused by the shortcut A!B being snake oil or alias this being a hack. The former is a mere convenience and the latter is a well-motivated feature. Andrei
Nov 08 2010
oldtimer Wrote:Some of us hoped D2 would solve the ugly corner cases of the language and unify a lot of features. Unfortunately not any kind of macro system was implemented, templates got even uglier, the alias this hack, snake oil template!X syntax shortcut and all kinds of unnecessary features were added. Of course also good features were added, but overall this just isn't good enough.Is it a coincidence that all the complaints seem to come from a single person? Let's take a look at my killfile: ankh, anonymous troll, another lurker, anton smith, arnoldsschwartz, bjarne yesterday, blaise pascal, cal, chmod+x, crap, darth tango, domino, ellis peters, foobar, gareth charnock, gcc-lurker, girlprogrammer, godworshipper, gryphon, her3tic, jameskan, jane doe, jarett billingsley, jer, languagefan, larry coder, lars ivar douchesund, levenshtein, lurker, nobody, oldtimer, pipe dream, pointing hand, retard, retard++, retarded.clear(), scott, steveh, superdan, user, wah, william t. fnk, yoda, type<erasure>, uriel (reddit), eternium (reddit), iliekcaeks (reddit), feepingcreature (reddit), parametricpoly (reddit), nfxjfg (bugzilla), and many more! Sometimes feels like this guy dresses up as bearophile just to waste our time with stupid nonsense. In reality there's a single sick person opposing D2 and it's probably the lead developer of Tango who wasn't invited (it's just one freaking license change!). No wonder Tango for D2 gets ever done, the guy is wasting time here posting this crap. Sad times. :-( Do us a favor, go and use that F#/Spec#/ATS/Clojure/Go/Scala/Haskell/C++/C#/Java/{whatever it is this time}. Never come back. It's time to cut off this bullshit now. We're adults. It's too late to change D in any radical way now. You either like it or hate it. Trust me, those favorite languages of yours suit *you* much better, we don't deserve that enlightenment TYVM. Go to movies, find a girlfriend, get a job, buy a house, start living a normal life. Don't be an emo kid. So much time is wasted on these stupid threads about totally irrelevant new features. To not sound like a pathetic troll, something positive now: With that knowledge of yours all kinds of *good* things could be done. Write applications, write libraries, write languages, do language research, earn money! I challenge you to write your own "clone" of D. Maybe fork D1 and make a D 1.5 as you "all" wanted. Fix all the "relevant" issues and leave out template "bloat". Might even attract small user base. Since you get your money elsewhere, you're not tied to the old dmc/optlink backend. Use LLVM! Use modern project management tools (Trac, Redmine, ...), use a modern SCM system (Git), invite all friends in. The stage is yours! If you come up with something better than D, I might be one of the first developers making the switch.
Nov 09 2010
On Tue, 09 Nov 2010 05:27:22 -0500er wrote: thank> If you come up with something better than D, I might be one of thank> the first developers making the switch. +1 --=20 Gour | Hlapicina, Croatia | GPG key: CDBF17CA ----------------------------------------------------------------
Nov 09 2010
++1 2010/11/9 thank you oldtimer <nospam _._>oldtimer Wrote:Some of us hoped D2 would solve the ugly corner cases of the language andunify a lot of features. Unfortunately not any kind of macro system was implemented, templates got even uglier, the alias this hack, snake oil template!X syntax shortcut and all kinds of unnecessary features were added. Of course also good features were added, but overall this just isn't good enough. Is it a coincidence that all the complaints seem to come from a single person? Let's take a look at my killfile: ankh, anonymous troll, another lurker, anton smith, arnoldsschwartz, bjarne yesterday, blaise pascal, cal, chmod+x, crap, darth tango, domino, ellis peters, foobar, gareth charnock, gcc-lurker, girlprogrammer, godworshipper, gryphon, her3tic, jameskan, jane doe, jarett billingsley, jer, languagefan, larry coder, lars ivar douchesund, levenshtein, lurker, nobody, oldtimer, pipe dream, pointing hand, retard, retard++, retarded.clear(), scott, steveh, superdan, user, wah, william t. fnk, yoda, type<erasure>, uriel (reddit), eternium (reddit), iliekcaeks (reddit), feepingcreature (reddit), parametricpoly (reddit), nfxjfg (bugzilla), and many more! Sometimes feels like this guy dresses up as bearophile just to waste our time with stupid nonsense. In reality there's a single sick person opposing D2 and it's probably the lead developer of Tango who wasn't invited (it's just one freaking license change!). No wonder Tango for D2 gets ever done, the guy is wasting time here posting this crap. Sad times. :-( Do us a favor, go and use that F#/Spec#/ATS/Clojure/Go/Scala/Haskell/C++/C#/Java/{whatever it is this time}. Never come back. It's time to cut off this bullshit now. We're adults. It's too late to change D in any radical way now. You either like it or hate it. Trust me, those favorite languages of yours suit *you* much better, we don't deserve that enlightenment TYVM. Go to movies, find a girlfriend, get a job, buy a house, start living a normal life. Don't be an emo kid. So much time is wasted on these stupid threads about totally irrelevant new features. To not sound like a pathetic troll, something positive now: With that knowledge of yours all kinds of *good* things could be done. Write applications, write libraries, write languages, do language research, earn money! I challenge you to write your own "clone" of D. Maybe fork D1 and make a D 1.5 as you "all" wanted. Fix all the "relevant" issues and leave out template "bloat". Might even attract small user base. Since you get your money elsewhere, you're not tied to the old dmc/optlink backend. Use LLVM! Use modern project management tools (Trac, Redmine, ...), use a modern SCM system (Git), invite all friends in. The stage is yours! If you come up with something better than D, I might be one of the first developers making the switch.
Nov 09 2010
First, forgive my poor english. we all known , Walter good at compiler writing, but not good at language design and development management , if can't change this, just be silent. I think, on language desgin, wisdom and leadership are more more important than technology. Ether continue working on D, or make D like clone, if we can't do it like APPLE, just give up ASAP, because we can only save us by our selves. . . 2010/11/10 Boris Wang <kona.ming gmail.com>++1 2010/11/9 thank you oldtimer <nospam _._> oldtimer Wrote:Some of us hoped D2 would solve the ugly corner cases of the languageand unify a lot of features. Unfortunately not any kind of macro system was implemented, templates got even uglier, the alias this hack, snake oil template!X syntax shortcut and all kinds of unnecessary features were added. Of course also good features were added, but overall this just isn't good enough. Is it a coincidence that all the complaints seem to come from a single person? Let's take a look at my killfile: ankh, anonymous troll, another lurker, anton smith, arnoldsschwartz, bjarne yesterday, blaise pascal, cal, chmod+x, crap, darth tango, domino, ellis peters, foobar, gareth charnock, gcc-lurker, girlprogrammer, godworshipper, gryphon, her3tic, jameskan, jane doe, jarett billingsley, jer, languagefan, larry coder, lars ivar douchesund, levenshtein, lurker, nobody, oldtimer, pipe dream, pointing hand, retard, retard++, retarded.clear(), scott, steveh, superdan, user, wah, william t. fnk, yoda, type<erasure>, uriel (reddit), eternium (reddit), iliekcaeks (reddit), feepingcreature (reddit), parametricpoly (reddit), nfxjfg (bugzilla), and many more! Sometimes feels like this guy dresses up as bearophile just to waste our time with stupid nonsense. In reality there's a single sick person opposing D2 and it's probably the lead developer of Tango who wasn't invited (it's just one freaking license change!). No wonder Tango for D2 gets ever done, the guy is wasting time here posting this crap. Sad times. :-( Do us a favor, go and use that F#/Spec#/ATS/Clojure/Go/Scala/Haskell/C++/C#/Java/{whatever it is this time}. Never come back. It's time to cut off this bullshit now. We're adults. It's too late to change D in any radical way now. You either like it or hate it. Trust me, those favorite languages of yours suit *you* much better, we don't deserve that enlightenment TYVM. Go to movies, find a girlfriend, get a job, buy a house, start living a normal life. Don't be an emo kid. So much time is wasted on these stupid threads about totally irrelevant new features. To not sound like a pathetic troll, something positive now: With that knowledge of yours all kinds of *good* things could be done. Write applications, write libraries, write languages, do language research, earn money! I challenge you to write your own "clone" of D. Maybe fork D1 and make a D 1.5 as you "all" wanted. Fix all the "relevant" issues and leave out template "bloat". Might even attract small user base. Since you get your money elsewhere, you're not tied to the old dmc/optlink backend. Use LLVM! Use modern project management tools (Trac, Redmine, ...), use a modern SCM system (Git), invite all friends in. The stage is yours! If you come up with something better than D, I might be one of the first developers making the switch.
Nov 09 2010
On Wed, Nov 10, 2010 at 2:19 AM, Boris Wang <kona.ming gmail.com> wrote:First, forgive my poor english. we all known , Walter good at compiler writing, but not good at language design and development management , if can't change this, just be silent.If he isn't good at language design (in other words: D sucks): why do you care about D? Why are you here?I think, on language desgin, wisdom and leadership are more more importan=tthan=A0technology.Well, the development process of D could be better organized (having a schedule and roadmap and such).. But "wisdom and leadership" doesn't help much if nobody's there to implement stuff. I think we're better of this way than having someone who's "wiser" (what is that supposed to mean in this context anyway?) and a better leader, but can't code.Ether continue working on D, or make D like clone, =A0if we can't do it l=ikeAPPLE, just give up ASAP, because we can only save us by our selves.Sorry, I can't make any sense of that sentence.
Nov 09 2010
On 11/9/10 5:38 PM, Daniel Gibson wrote:On Wed, Nov 10, 2010 at 2:19 AM, Boris Wang<kona.ming gmail.com> wrote:I think he meant "We should all either continue working on D or make a D-like clone. If we can't do it like Apple, we should just give up ASAP. Only the community can save the situation." AndreiFirst, forgive my poor english. we all known , Walter good at compiler writing, but not good at language design and development management , if can't change this, just be silent.If he isn't good at language design (in other words: D sucks): why do you care about D? Why are you here?I think, on language desgin, wisdom and leadership are more more important than technology.Well, the development process of D could be better organized (having a schedule and roadmap and such).. But "wisdom and leadership" doesn't help much if nobody's there to implement stuff. I think we're better of this way than having someone who's "wiser" (what is that supposed to mean in this context anyway?) and a better leader, but can't code.Ether continue working on D, or make D like clone, if we can't do it like APPLE, just give up ASAP, because we can only save us by our selves.Sorry, I can't make any sense of that sentence.
Nov 09 2010
On Wed, Nov 10, 2010 at 2:49 AM, Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> wrote:On 11/9/10 5:38 PM, Daniel Gibson wrote:e:On Wed, Nov 10, 2010 at 2:19 AM, Boris Wang<kona.ming gmail.com> =A0wrot=eFirst, forgive my poor english. we all known , Walter good at compiler writing, but not good at languag=t.design and development management , if can't change this, just be silen=What's meant with "do it like Apple"? Is that some kind of idiom I'm not familiar with? He certainly couldn't have meant that literally, because making D overpriced and proprietary would certainly not help.If he isn't good at language design (in other words: D sucks): why do you care about D? Why are you here?I think he meant "We should all either continue working on D or make a D-like clone. If we can't do it like Apple, we should just give up ASAP. Only the community can save the situation." AndreiI think, on language desgin, wisdom and leadership are more more important than technology.Well, the development process of D could be better organized (having a schedule and roadmap and such).. But "wisdom and leadership" doesn't help much if nobody's there to implement stuff. I think we're better of this way than having someone who's "wiser" (what is that supposed to mean in this context anyway?) and a better leader, but can't code.Ether continue working on D, or make D like clone, =A0if we can't do it like APPLE, just give up ASAP, because we can only save us by our selves.Sorry, I can't make any sense of that sentence.
Nov 09 2010
On 11/9/10 6:10 PM, Daniel Gibson wrote:On Wed, Nov 10, 2010 at 2:49 AM, Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> wrote:My guess is "do it professionally and successfully". AndreiOn 11/9/10 5:38 PM, Daniel Gibson wrote:What's meant with "do it like Apple"? Is that some kind of idiom I'm not familiar with? He certainly couldn't have meant that literally, because making D overpriced and proprietary would certainly not help.On Wed, Nov 10, 2010 at 2:19 AM, Boris Wang<kona.ming gmail.com> wrote:I think he meant "We should all either continue working on D or make a D-like clone. If we can't do it like Apple, we should just give up ASAP. Only the community can save the situation." AndreiFirst, forgive my poor english. we all known , Walter good at compiler writing, but not good at language design and development management , if can't change this, just be silent.If he isn't good at language design (in other words: D sucks): why do you care about D? Why are you here?I think, on language desgin, wisdom and leadership are more more important than technology.Well, the development process of D could be better organized (having a schedule and roadmap and such).. But "wisdom and leadership" doesn't help much if nobody's there to implement stuff. I think we're better of this way than having someone who's "wiser" (what is that supposed to mean in this context anyway?) and a better leader, but can't code.Ether continue working on D, or make D like clone, if we can't do it like APPLE, just give up ASAP, because we can only save us by our selves.Sorry, I can't make any sense of that sentence.
Nov 09 2010
Thanks. Apple no sorry for it's fault, but the fans still aroud it and support it. why ? 2010/11/10 Andrei Alexandrescu <SeeWebsiteForEmail erdani.org>On 11/9/10 6:10 PM, Daniel Gibson wrote:On Wed, Nov 10, 2010 at 2:49 AM, Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> wrote:My guess is "do it professionally and successfully". AndreiOn 11/9/10 5:38 PM, Daniel Gibson wrote:What's meant with "do it like Apple"? Is that some kind of idiom I'm not familiar with? He certainly couldn't have meant that literally, because making D overpriced and proprietary would certainly not help.On Wed, Nov 10, 2010 at 2:19 AM, Boris Wang<kona.ming gmail.com> wrote:I think he meant "We should all either continue working on D or make a D-like clone. If we can't do it like Apple, we should just give up ASAP. Only the community can save the situation." AndreiFirst, forgive my poor english. we all known , Walter good at compiler writing, but not good at language design and development management , if can't change this, just be silent.If he isn't good at language design (in other words: D sucks): why do you care about D? Why are you here? I think, on language desgin, wisdom and leadership are more moreimportant than technology.Well, the development process of D could be better organized (having a schedule and roadmap and such).. But "wisdom and leadership" doesn't help much if nobody's there to implement stuff. I think we're better of this way than having someone who's "wiser" (what is that supposed to mean in this context anyway?) and a better leader, but can't code. Ether continue working on D, or make D like clone, if we can't do itlike APPLE, just give up ASAP, because we can only save us by our selves.Sorry, I can't make any sense of that sentence.
Nov 09 2010
On 11/9/2010 5:27 AM, thank you oldtimer wrote:ankh, anonymous troll, another lurker, anton smith, arnoldsschwartz, bjarne yesterday, blaise pascal, cal, chmod+x, crap, darth tango, domino, ellis peters, foobar, gareth charnock, gcc-lurker, girlprogrammer, godworshipper, gryphon, her3tic, jameskan, jane doe, jarett billingsley, jer, languagefan, larry coder, lars ivar douchesund, levenshtein, lurker, nobody, oldtimer, pipe dream, pointing hand, retard, retard++, retarded.clear(), scott, steveh, superdan, user, wah, william t. fnk, yoda, type<erasure>, uriel (reddit), eternium (reddit), iliekcaeks (reddit), feepingcreature (reddit), parametricpoly (reddit), nfxjfg (bugzilla), and many more!If h3r3tic, jarett billingsley, retard*, superdan, bearophile, and feepingcreature are the same person, then that's quite an act. h3r3tic has made some valuable contributions to phobos, Jarett made miniD (before leaving the D community), and while I don't agree with all of bearophile's suggestions, some of them are great. I also appreciate that he takes the time to benchmark and create bug reports. I hope he continues with all of these.
Nov 09 2010
On 10/11/2010 02:53, Eric Poggel wrote:On 11/9/2010 5:27 AM, thank you oldtimer wrote:Dude, you're wasting your breath with such a serious reply: "thank you oldtimer" is effectively a troll, just like "oldtimer" himself. People should pay little to no attention to these posts made under random anonymous nicknames, especially if its the first posts made under such a name. There seems to be a pattern where occasionally some troll identity will reply and argue against some other troll identity. It's a curious thing at best, I'm not sure what the intentions are (trying to make one troll post seem more respectable? Just messing with the heads of other D users?), but it's best to just not waste time on that. -- Bruno Medeiros - Software Engineerankh, anonymous troll, another lurker, anton smith, arnoldsschwartz, bjarne yesterday, blaise pascal, cal, chmod+x, crap, darth tango, domino, ellis peters, foobar, gareth charnock, gcc-lurker, girlprogrammer, godworshipper, gryphon, her3tic, jameskan, jane doe, jarett billingsley, jer, languagefan, larry coder, lars ivar douchesund, levenshtein, lurker, nobody, oldtimer, pipe dream, pointing hand, retard, retard++, retarded.clear(), scott, steveh, superdan, user, wah, william t. fnk, yoda, type<erasure>, uriel (reddit), eternium (reddit), iliekcaeks (reddit), feepingcreature (reddit), parametricpoly (reddit), nfxjfg (bugzilla), and many more!If h3r3tic, jarett billingsley, retard*, superdan, bearophile, and feepingcreature are the same person, then that's quite an act. h3r3tic has made some valuable contributions to phobos, Jarett made miniD (before leaving the D community), and while I don't agree with all of bearophile's suggestions, some of them are great. I also appreciate that he takes the time to benchmark and create bug reports. I hope he continues with all of these.
Nov 29 2010
Bruno Medeiros Wrote:Dude, you're wasting your breath with such a serious reply: "thank you oldtimer" is effectively a troll, just like "oldtimer" himself. People should pay little to no attention to these posts made under random anonymous nicknames, especially if its the first posts made under such a name.As one of these trolls, here's my short story: I only came here because the religious zealotly of this community cannot be kept a secret anymore no matter what you do. I found two other forums rather boring. They only discussed language semantics and syntax and toolchain issues and language specifications and all kinds of dead boring stuff, can you believe that? This is a great place for me, unproductive environment full of bad software engineering practices. Something to mock. You should know, as a new software engineer, how badly organized this all is.There seems to be a pattern where occasionally some troll identity will reply and argue against some other troll identity. It's a curious thing at best, I'm not sure what the intentions are (trying to make one troll post seem more respectable?Where did you get that from? If this is true, it just means that this place is infested with idiots not capable of even lacing their shoes if they didn't see this earlier. Do we need a reminder on how that kind of lack of intelligence affects language development quality or our marketing efforts? * http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D&article_id=123193 "Just messing with the heads of other D users?), but it's best to just not waste time on that." * http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D&article_id=123245 "Fortunately the implementation effort is also very low, so let's just check there is no unintended consequences, and move on." You're in a hurry, Son? Were waisting time whole the time.
Nov 29 2010
"than you oldtimer" wrote: [about his fantasies with trolls and forking D? (You are one sick pup! Forking D!)] D is a fantasy and the largest example of group think that I know of. You know what happens when lot's of people start living real close together: disease sets in and they whither and Die! BTW, what does the "D" in D stand for? Let me see... could it be... SATAN?!!! D will not pass Go will not collect $200.
Nov 09 2010
On 11/9/2010 11:39 PM, Led Zeppelin wrote:You know what happens when lot's of people start living real close together: disease sets in and they whither and Die!This is why the family unit is such a failure. Maybe trolls come from broken families?
Nov 09 2010
On Tuesday 09 November 2010 20:39:48 Led Zeppelin wrote:D will not pass Go will not collect $200.That post was definitely trolling, but I have to laugh at that last line. - Jonathan M Davis
Nov 09 2010
"thank you oldtimer" <nospam _._> wrote in message news:ibb7ma$2fs3$1 digitalmars.com...oldtimer Wrote:This bothers me. I don't think it's at all healthy for the D community to be antaginizing Tango, especially with such speculative accusations.Some of us hoped D2 would solve the ugly corner cases of the language and unify a lot of features. Unfortunately not any kind of macro system was implemented, templates got even uglier, the alias this hack, snake oil template!X syntax shortcut and all kinds of unnecessary features were added. Of course also good features were added, but overall this just isn't good enough.Sometimes feels like this guy dresses up as bearophile just to waste our time with stupid nonsense. In reality there's a single sick person opposing D2 and it's probably the lead developer of Tango who wasn't invited (it's just one freaking license change!). No wonder Tango for D2 gets ever done, the guy is wasting time here posting this crap. Sad times. :-( Do us a favor, go and use that F#/Spec#/ATS/Clojure/Go/Scala/Haskell/C++/C#/Java/{whatever it is this time}. Never come back. It's time to cut off this bullshit now.We're adults.Then can we please act like it, even in response to posts that happen to be critical of some aspects of D? It's not as if oldtimer's post was tossing personal insults or anything, or criticizing anything that hasn't already been criticized by upstanding members of the NG who just happened to disagree with a particular design.
Nov 11 2010
Andrei:I think we have different definitions of what a design flaw is. C++ export was a design flaw. PHP also has several design flaws. The fact that you can't implement non-nullable references in e.g. C++ or Java is not a design flaw in those respective languages.You are right. I am sorry.Generally I think the case of non-null references is overstated.OK. Bye, bearophile
Nov 08 2010
Andrei Alexandrescu schrieb:On 11/7/10 6:33 AM, bioinfornatics wrote:You gain a lot of power by using D1 instead of Java/C++: Usable Templates with static if, slices, a GC, unsigned types, ..So D community will be split in 2. And D1 continue to evolve without D2 community, D1 frontend is open source and he coulb be used for improve and fix D1The current situation and the dynamics are quite interesting, and I am looking forward to witnessing how things will unfold. There is a community for which D1's offering is just fine. They've used D1 long enough to use it idiomatically and to derive better enjoyment than from the likes of Java or C++. The gain in power, albeit marginal, is present.The fact that the implementation of the newest features is incomplete fuels arguments against D2. The immaturity of alternative back-ends (gdc, llvm for D2 are both quite young) contributes to the perception that D2 does not offer a net advantage when compared with D1.It's also the (at least felt) immaturity of DMD for D2, I guess. You read about problems in the NG all the time. And the lack of 64bit support, of course (this will soon change, of course).It is my perception (though I might be wrong) that the dichotomy has become to some extent political. D2 offers little political incentive to a Tango port. Tango is currently the de facto standard library for D1 as the vast majority of D1 users use D1 and Tango in conjunction, which precludes use of the underpowered Phobos1 (D1's de jure standard library).Many parts of Phobos2 are the same as Phobos1 and thus are still underpowered (e.g. networking and streams).Due to Sean's work on making druntime independently available, porting to D2 would lower Tango's status from the standard library to one of the libraries that may be used in conjunction with Phobos2.A port of Tango for D2 would be really helpful, because Phobos2, like Phobos1, is no fun to use.. A few months ago I started a D1 project and used Phobos, so porting my project to D2 in the future would be easier. If a Tango2 would have been in the works I might have used Tango. Then I wouldn't have needed to clone phobos classes (Socket, Address (from socket), SocketStream and I also wrote a BufferedSocket because I didn't trust BufferedStream) in my own code to fix them.. (see bugreports: [1]) So I think it's not just political reasons (Tango fanboys) why people use D1, but also that D2's standard library isn't finished yet so, if you want to start a halfway serious project, you either use Tango or prepare to copy and fix Phobos :-/ Furthermore library-support for D1 is better (all that stuff at dsource for example). Also compilers are an issue, of course, because the D2 support of alternative (free, 64bit capable, ...) compilers is not up to date.. Or rather *was* not up to date: Iain just brought GDC to version 2.047, so I guess that GDC will really soon be on par with DMD, version-wise. Then some more testing and fixing and there will be a free (as in freedom), usable (as in relatively bugfree) up-to-date D2 compiler that supports a plethora of platforms \o/ Also people seem to work on LDC2 again. Cheers, - Daniel [1] http://d.puremagic.com/issues/show_bug.cgi?id=4234 (std.socket issues) http://d.puremagic.com/issues/show_bug.cgi?id=5177 (std.socketstream issues)
Nov 08 2010
You gain a lot of power by using D1 instead of Java/C++: Usable Templates with static if, slices, a GC, unsigned types, ..Yep, working with C++ again feels like being thrown back to the stone age.It's also the (at least felt) immaturity of DMD for D2, I guess. You read about problems in the NG all the time.Yet it's the only real option to go on Windoze :(A port of Tango for D2 would be really helpful, because Phobos2, like Phobos1, is no fun to use..Won't happen anyway.freedom), usable (as in relatively bugfree) up-to-date D2 compiler that supports a plethora of platforms \o/Well compiling it for Windoze is still a PITA.Also people seem to work on LDC2 again.Yeah, they are at 2.050 but I don't know if it works yet. http://bitbucket.org/prokhin_alexey/ldc2
Nov 08 2010
Trass3r schrieb:Shouldn't GDC work on windows with MinGW? Maybe someone could try that and build an installer or something.You gain a lot of power by using D1 instead of Java/C++: Usable Templates with static if, slices, a GC, unsigned types, ..Yep, working with C++ again feels like being thrown back to the stone age.It's also the (at least felt) immaturity of DMD for D2, I guess. You read about problems in the NG all the time.Yet it's the only real option to go on Windoze :(A port of Tango for D2 would be really helpful, because Phobos2, like Phobos1, is no fun to use..Won't happen anyway.freedom), usable (as in relatively bugfree) up-to-date D2 compiler that supports a plethora of platforms \o/Well compiling it for Windoze is still a PITA.Already at 2.050? That was quick :-)Also people seem to work on LDC2 again.Yeah, they are at 2.050 but I don't know if it works yet. http://bitbucket.org/prokhin_alexey/ldc2
Nov 08 2010
Shouldn't GDC work on windows with MinGW? Maybe someone could try that and build an installer or something.Just try compiling it ;)
Nov 08 2010
== Quote from Trass3r (un known.com)'s articleMinGW is just one of those pedantic systems. Requires building and installing GMP; MPFR before you can even think about unpacking the GCC source tree. As far as testimonials go for D1, it's really been hit or miss. There have been reported success, however I've never managed to do it myself (though I *know* the reason is because of a bad build environment, and not compiler).Shouldn't GDC work on windows with MinGW? Maybe someone could try that and build an installer or something.Just try compiling it ;)
Nov 08 2010
On 2010-11-08 20:55, Andrei Alexandrescu wrote:On 11/7/10 6:33 AM, bioinfornatics wrote:Here's the problem with that: since Sean basically forked the Tango runtime, removed any non DMD specific code and any code for a platform that DMD doesn't support. And stopped contributing to Tango while others improved the Tango runtime we're back at square one with two incompatiable runtimes and the Tango runtime still seems to be better. For this to work the Tango team and the druntime contributors/maintainers have collaborate and work together on a runtime.So D community will be split in 2. And D1 continue to evolve without D2 community, D1 frontend is open source and he coulb be used for improve and fix D1The current situation and the dynamics are quite interesting, and I am looking forward to witnessing how things will unfold. There is a community for which D1's offering is just fine. They've used D1 long enough to use it idiomatically and to derive better enjoyment than from the likes of Java or C++. The gain in power, albeit marginal, is present. That base has been understandably annoyed by D2 being backwards incompatible with D1, and has a dim view of the advantages brought about by D2's additions (mainly concurrency and its paraphernalia - immutability and no default sharing). The fact that the implementation of the newest features is incomplete fuels arguments against D2. The immaturity of alternative back-ends (gdc, llvm for D2 are both quite young) contributes to the perception that D2 does not offer a net advantage when compared with D1. It is my perception (though I might be wrong) that the dichotomy has become to some extent political. D2 offers little political incentive to a Tango port. Tango is currently the de facto standard library for D1 as the vast majority of D1 users use D1 and Tango in conjunction, which precludes use of the underpowered Phobos1 (D1's de jure standard library). Due to Sean's work on making druntime independently available, porting to D2 would lower Tango's status from the standard library to one of the libraries that may be used in conjunction with Phobos2.So in the current equilibrium D1 and Tango form a bond: D1 is platform offering Tango exclusivity as the standard library and Tango is the library that makes D1 attractive. The risk assumed by that bond (assuming the assumption above is correct) is isolation in a position condemned to inevitable obsolescence. As far as language proper is concerned, D1 has the option of becoming an incompatible fork by choosing to evolve its own features independently of dmd. That process could be greatly helped if a strong language designer would decide to work on D1. I see that as a possible but unlikely scenario (unlikely because a language designer would have to be primarily politically motivated to make such a decision). From the D2 side, it all boils down to the question: are D2's additions worthwhile or not? D2 places bets on concurrency, correctness, and opt-out safety. Those bets looked much riskier two years ago than they look now, but still carry a risk. Also, as I mentioned above, currently the implementation of many new features is superficial. This is caused by the current development model of the reference compiler - features are implemented without a formal description.Exactly, they need a formal description. This is also a problem with no proper language specification. If you encounter a problem/bug you never no what to except: is it a design bug? An implementation bug? And then it's hard to figure that out because you never no what can to trust, the language specification? The reference compiler? TDPL?There is disproportionate reliance on the compiler test suite to effectively define the language by exercising all of its features and feature combinations. The test suite is undeniably useful, which makes it even more difficult to explain its problems. Some more complicated features are first implemented to simply make a narrow test pass, and then spend a long time in an "almost-well-defined" state in which bug reports are fixed and added to the test suite. I believe that the informal language development is curre ntly the single most important liability of D. (That is, somewhat ironically, a matter in which D2 is at an advantage to D1.) The insufficient implementation of new features propagates the perception that D2 is unstable, although the more conventional, D1-like subset of D2 is as solid in both languages. But then the perception is justified, because one would want to use D2 primarily for its new, unique offerings. A longer term perception problem is that some might think the _design_ of such features has unsolvable issues, which hurts the image of the language. I know of no major design flaws, but that is only an academic argument in wake of perennial implementation insufficiencies.There are still things in D1 that are not solid, just look at the bugs and newsgroups posts by bearophile. The module/import system, for example. -- /Jacob Carlborg
Nov 09 2010
On 11/9/10 1:42 AM, Jacob Carlborg wrote:On 2010-11-08 20:55, Andrei Alexandrescu wrote:It's not difficult to offer e.g. an incompatible C runtime that is slightly better than the standard one. People generally don't do that but instead add libraries on top of that because they understand the advantages of compatibility. I wouldn't be surprised if Tango chose to turn away from compatibility for the second time (be it theoretical compatibility for now since there is no Tango for D2). The technical reasons are dwindling and became tenuous to argue for, but however weak they are, they could be used to promote a political motivation: a Tango/D2 offering would come again as an either-or proposition for a standard library that precludes usage of Tango2 and Phobos2 together. In my opinion that would be an extremely dangerous gambit.It is my perception (though I might be wrong) that the dichotomy has become to some extent political. D2 offers little political incentive to a Tango port. Tango is currently the de facto standard library for D1 as the vast majority of D1 users use D1 and Tango in conjunction, which precludes use of the underpowered Phobos1 (D1's de jure standard library). Due to Sean's work on making druntime independently available, porting to D2 would lower Tango's status from the standard library to one of the libraries that may be used in conjunction with Phobos2.Here's the problem with that: since Sean basically forked the Tango runtime, removed any non DMD specific code and any code for a platform that DMD doesn't support. And stopped contributing to Tango while others improved the Tango runtime we're back at square one with two incompatiable runtimes and the Tango runtime still seems to be better.For this to work the Tango team and the druntime contributors/maintainers have collaborate and work together on a runtime.That runtime is druntime. If there is no understanding of that at Tango, that is suicide. [snip]Which ones? There are more than a few :o). AndreiThe insufficient implementation of new features propagates the perception that D2 is unstable, although the more conventional, D1-like subset of D2 is as solid in both languages. But then the perception is justified, because one would want to use D2 primarily for its new, unique offerings. A longer term perception problem is that some might think the _design_ of such features has unsolvable issues, which hurts the image of the language. I know of no major design flaws, but that is only an academic argument in wake of perennial implementation insufficiencies.There are still things in D1 that are not solid, just look at the bugs and newsgroups posts by bearophile. The module/import system, for example.
Nov 09 2010
On 2010-11-09 17:43, Andrei Alexandrescu wrote:On 11/9/10 1:42 AM, Jacob Carlborg wrote:There was a good "standard" library that you forked and never added back any changes to it.On 2010-11-08 20:55, Andrei Alexandrescu wrote:It's not difficult to offer e.g. an incompatible C runtime that is slightly better than the standard one. People generally don't do that but instead add libraries on top of that because they understand the advantages of compatibility.It is my perception (though I might be wrong) that the dichotomy has become to some extent political. D2 offers little political incentive to a Tango port. Tango is currently the de facto standard library for D1 as the vast majority of D1 users use D1 and Tango in conjunction, which precludes use of the underpowered Phobos1 (D1's de jure standard library). Due to Sean's work on making druntime independently available, porting to D2 would lower Tango's status from the standard library to one of the libraries that may be used in conjunction with Phobos2.Here's the problem with that: since Sean basically forked the Tango runtime, removed any non DMD specific code and any code for a platform that DMD doesn't support. And stopped contributing to Tango while others improved the Tango runtime we're back at square one with two incompatiable runtimes and the Tango runtime still seems to be better.I wouldn't be surprised if Tango chose to turn away from compatibility for the second time (be it theoretical compatibility for now since there is no Tango for D2). The technical reasons are dwindling and became tenuous to argue for, but however weak they are, they could be used to promote a political motivation: a Tango/D2 offering would come again as an either-or proposition for a standard library that precludes usage of Tango2 and Phobos2 together. In my opinion that would be an extremely dangerous gambit.Clearly we don't see this in the same way. I see it like this, because Tango was first it's druntime that chose to turn away from compatibility.Apparently not, since Sean ripped out all that wasn't necessary for Phobos but is necessary for Tango. Why are you blaming everything on Tango all the time?For this to work the Tango team and the druntime contributors/maintainers have collaborate and work together on a runtime.That runtime is druntime. If there is no understanding of that at Tango, that is suicide.[snip]You just helped to prove my point :) -- /Jacob CarlborgWhich ones? There are more than a few :o). AndreiThe insufficient implementation of new features propagates the perception that D2 is unstable, although the more conventional, D1-like subset of D2 is as solid in both languages. But then the perception is justified, because one would want to use D2 primarily for its new, unique offerings. A longer term perception problem is that some might think the _design_ of such features has unsolvable issues, which hurts the image of the language. I know of no major design flaws, but that is only an academic argument in wake of perennial implementation insufficiencies.There are still things in D1 that are not solid, just look at the bugs and newsgroups posts by bearophile. The module/import system, for example.
Nov 09 2010
On 11/9/10 12:33 PM, Jacob Carlborg wrote:On 2010-11-09 17:43, Andrei Alexandrescu wrote:This must be some confusion. I didn't fork anything. Besides, it's not useful to fall into the pattern of finger pointing.On 11/9/10 1:42 AM, Jacob Carlborg wrote:There was a good "standard" library that you forked and never added back any changes to it.On 2010-11-08 20:55, Andrei Alexandrescu wrote:It's not difficult to offer e.g. an incompatible C runtime that is slightly better than the standard one. People generally don't do that but instead add libraries on top of that because they understand the advantages of compatibility.It is my perception (though I might be wrong) that the dichotomy has become to some extent political. D2 offers little political incentive to a Tango port. Tango is currently the de facto standard library for D1 as the vast majority of D1 users use D1 and Tango in conjunction, which precludes use of the underpowered Phobos1 (D1's de jure standard library). Due to Sean's work on making druntime independently available, porting to D2 would lower Tango's status from the standard library to one of the libraries that may be used in conjunction with Phobos2.Here's the problem with that: since Sean basically forked the Tango runtime, removed any non DMD specific code and any code for a platform that DMD doesn't support. And stopped contributing to Tango while others improved the Tango runtime we're back at square one with two incompatiable runtimes and the Tango runtime still seems to be better.That would be a tenuous point to make in more than one way. Druntime was a major effort to foster runtime standardization made by its author himself and with intentions that I consider most transparent. I'd find it very difficult to concoct a hypothesis in which Sean comes across as not acting in the best interest of the D community. That very concern - the best interest of the D community - has unequivocally been the reason for which Sean and other chose to leave petty fights to others and join Phobos, which has no political agenda. That's supposed to tell someone something. You are gladly invited to attempt to convince me otherwise, but the sheer facts at hand would make it difficult for you to build a case. I mean it's possible - for any number of good reasons - to ignore mounting evidence for some time, but at some point the waking up and smelling of the coffee is inevitable.I wouldn't be surprised if Tango chose to turn away from compatibility for the second time (be it theoretical compatibility for now since there is no Tango for D2). The technical reasons are dwindling and became tenuous to argue for, but however weak they are, they could be used to promote a political motivation: a Tango/D2 offering would come again as an either-or proposition for a standard library that precludes usage of Tango2 and Phobos2 together. In my opinion that would be an extremely dangerous gambit.Clearly we don't see this in the same way. I see it like this, because Tango was first it's druntime that chose to turn away from compatibility.There's no reason to get up in arms. I didn't blame anything on anyone, just stated my view of the state of affairs. I'm hardly vested emotionally in the matter so I'm not interested in dramatic posturing, assigning blame, or drawing sweeping conclusions. One thing I would be interested in is improving things going forward. I think that will be possible once we all let bygones be bygones and see what we can do to push D forward. AndreiApparently not, since Sean ripped out all that wasn't necessary for Phobos but is necessary for Tango. Why are you blaming everything on Tango all the time?For this to work the Tango team and the druntime contributors/maintainers have collaborate and work together on a runtime.That runtime is druntime. If there is no understanding of that at Tango, that is suicide.
Nov 09 2010
Hi all, before I start, let me introduce myself: I'm Tobias, currently PhD student (Computer Graphics). I did some toy project in D back in the D1/Tango days. Recently I decided on trying out whether D2 will work for a new research project once a 64bit compiler is out (still hoping someone will make ldc2 work... was my favorite compiler for my last project). So far, so good. Now let me summarize my impressions when I started to peek in the newsgroup again a few days ago. Major threads: 1. Bitter fighting about a possible non-nullable type for D3(!). Discussion style: "Noone will take away my right to write unsafe code !" vs. "Down with the reckless cowboy coders". Are we discussing guns or coding here? That, and purposedly overhearing the other's real point. 2. Tango vs. Phobos. Wow. I really really wished we were over that by now. It's been like two years since I last looked in here, and still the same thing. So, while I like the language and will probably stick around here anyway, it might me a good thing to avoid this experience for other people interested in D peeking into the newsgroup. Also, with (2), I don't really get the point here. Whatever exactly happend between the tango/phobos fraction -- the best thing to do to get everyone on board again is probably to just to make phobos2 a library everyone enjoys to use. And avoid starting discussions on who did what wrong over and over. And while still lacking a few of the high-level features of Tango (higher level network, streaming, etc.) it feels like the direction is right. With all that been said, I'm looking forward to using D for a while, after fighting the C++ template code monster for the last years. Cheers, Tobias On 11/09/2010 10:45 PM, Andrei Alexandrescu wrote:On 11/9/10 12:33 PM, Jacob Carlborg wrote:On 2010-11-09 17:43, Andrei Alexandrescu wrote:This must be some confusion. I didn't fork anything. Besides, it's not useful to fall into the pattern of finger pointing.On 11/9/10 1:42 AM, Jacob Carlborg wrote:There was a good "standard" library that you forked and never added back any changes to it.On 2010-11-08 20:55, Andrei Alexandrescu wrote:It's not difficult to offer e.g. an incompatible C runtime that is slightly better than the standard one. People generally don't do that but instead add libraries on top of that because they understand the advantages of compatibility.It is my perception (though I might be wrong) that the dichotomy has become to some extent political. D2 offers little political incentive to a Tango port. Tango is currently the de facto standard library for D1 as the vast majority of D1 users use D1 and Tango in conjunction, which precludes use of the underpowered Phobos1 (D1's de jure standard library). Due to Sean's work on making druntime independently available, porting to D2 would lower Tango's status from the standard library to one of the libraries that may be used in conjunction with Phobos2.Here's the problem with that: since Sean basically forked the Tango runtime, removed any non DMD specific code and any code for a platform that DMD doesn't support. And stopped contributing to Tango while others improved the Tango runtime we're back at square one with two incompatiable runtimes and the Tango runtime still seems to be better.That would be a tenuous point to make in more than one way. Druntime was a major effort to foster runtime standardization made by its author himself and with intentions that I consider most transparent. I'd find it very difficult to concoct a hypothesis in which Sean comes across as not acting in the best interest of the D community. That very concern - the best interest of the D community - has unequivocally been the reason for which Sean and other chose to leave petty fights to others and join Phobos, which has no political agenda. That's supposed to tell someone something. You are gladly invited to attempt to convince me otherwise, but the sheer facts at hand would make it difficult for you to build a case. I mean it's possible - for any number of good reasons - to ignore mounting evidence for some time, but at some point the waking up and smelling of the coffee is inevitable.I wouldn't be surprised if Tango chose to turn away from compatibility for the second time (be it theoretical compatibility for now since there is no Tango for D2). The technical reasons are dwindling and became tenuous to argue for, but however weak they are, they could be used to promote a political motivation: a Tango/D2 offering would come again as an either-or proposition for a standard library that precludes usage of Tango2 and Phobos2 together. In my opinion that would be an extremely dangerous gambit.Clearly we don't see this in the same way. I see it like this, because Tango was first it's druntime that chose to turn away from compatibility.There's no reason to get up in arms. I didn't blame anything on anyone, just stated my view of the state of affairs. I'm hardly vested emotionally in the matter so I'm not interested in dramatic posturing, assigning blame, or drawing sweeping conclusions. One thing I would be interested in is improving things going forward. I think that will be possible once we all let bygones be bygones and see what we can do to push D forward. AndreiApparently not, since Sean ripped out all that wasn't necessary for Phobos but is necessary for Tango. Why are you blaming everything on Tango all the time?For this to work the Tango team and the druntime contributors/maintainers have collaborate and work together on a runtime.That runtime is druntime. If there is no understanding of that at Tango, that is suicide.
Nov 09 2010
Tobias Pfaff wrote:1. Bitter fighting about a possible non-nullable type for D3(!). Discussion style: "Noone will take away my right to write unsafe code !" vs. "Down with the reckless cowboy coders". Are we discussing guns or coding here? That, and purposedly overhearing the other's real point.I don't know that it's bitter, "spirited" might be a better term. I like spirited discussions.2. Tango vs. Phobos. Wow. I really really wished we were over that by now. It's been like two years since I last looked in here, and still the same thing. So, while I like the language and will probably stick around here anyway, it might me a good thing to avoid this experience for other people interested in D peeking into the newsgroup. Also, with (2), I don't really get the point here. Whatever exactly happend between the tango/phobos fraction -- the best thing to do to get everyone on board again is probably to just to make phobos2 a library everyone enjoys to use. And avoid starting discussions on who did what wrong over and over. And while still lacking a few of the high-level features of Tango (higher level network, streaming, etc.) it feels like the direction is right.I agree. The reasons for the Tango split long ago, whatever the merit of those reasons was, have long since passed. Producing another incompatible split with D2 will not be of an advantage to anyone, and will just give people reasons not to use D at all. Jacob has recently decided to help out with improvements to druntime; I take that as a very welcome sign towards ending the differences.With all that been said, I'm looking forward to using D for a while, after fighting the C++ template code monster for the last years.Great!
Nov 09 2010
On 2010-11-10 00:00, Walter Bright wrote:Tobias Pfaff wrote:I don't want to increase any separation in the D community and would hope peoeple could agree more. I have no problems what so ever contributing both to Tango and Phobos/druntime. And I'm happy to license any of my code to whatever license would be need for a give D project.1. Bitter fighting about a possible non-nullable type for D3(!). Discussion style: "Noone will take away my right to write unsafe code !" vs. "Down with the reckless cowboy coders". Are we discussing guns or coding here? That, and purposedly overhearing the other's real point.I don't know that it's bitter, "spirited" might be a better term. I like spirited discussions.2. Tango vs. Phobos. Wow. I really really wished we were over that by now. It's been like two years since I last looked in here, and still the same thing. So, while I like the language and will probably stick around here anyway, it might me a good thing to avoid this experience for other people interested in D peeking into the newsgroup. Also, with (2), I don't really get the point here. Whatever exactly happend between the tango/phobos fraction -- the best thing to do to get everyone on board again is probably to just to make phobos2 a library everyone enjoys to use. And avoid starting discussions on who did what wrong over and over. And while still lacking a few of the high-level features of Tango (higher level network, streaming, etc.) it feels like the direction is right.I agree. The reasons for the Tango split long ago, whatever the merit of those reasons was, have long since passed. Producing another incompatible split with D2 will not be of an advantage to anyone, and will just give people reasons not to use D at all. Jacob has recently decided to help out with improvements to druntime; I take that as a very welcome sign towards ending the differences.-- /Jacob CarlborgWith all that been said, I'm looking forward to using D for a while, after fighting the C++ template code monster for the last years.Great!
Nov 10 2010
Wed, 10 Nov 2010 11:56:18 +0100, Jacob Carlborg wrote:On 2010-11-10 00:00, Walter Bright wrote:A dual licensing scheme for all code might help a bit (since both parties refuse to switch licensing). There are also - stylistic issues (OOP style structured Tango vs quick'n'dirty Phobos API) -> this causes annoying technical incompatibilities - psychological issues (Tango's charismatic leaders vs dull politically correct office persons and almost anynomous lone coders porting Boost code written in other languages). I believe strong personalities like Jon Harrop and Paul Graham actually have an overall positive effect. It's not a big secret that Andrei has boosted D's adoption quite a bit - this has more to do with the strong personality than technical issues. - project management issues (Tango uses trac heavily and the leaders have modern project management skills, Phobos developers have developed a new inefficient ad-hoc software process model without the big picture 'planning' phase and without any communication between the team and the product owner) - platform issues (not everyone agrees D2 is a perfect upgrade route - how is this even surprising? Look at the number of people *not* using D, it shouldn't be a surprise that there are people who dislike D2, but like D1) - an axe fight between some key persons. I believe this can be solved if there weren't those other annoying problems. These are all my subjective opinions. Feel free to throw the first rock, after all I'm just a stupid troll. For me the technical issues have the greatest priority. If I want a full flexible Java style stream I/O interface and these kind of things, there's no way in hell I'll let you shove the Phobos style ideology down my throat. I'd have to create a "PhoTango" wrapper to actually use these. The political issues aren't that interesting. If I'm coding in Java or C#, I don't even know the names of the stdlib developers. Maybe Doug Lea. But he left Oracle for political reasons..I agree. The reasons for the Tango split long ago, whatever the merit of those reasons was, have long since passed. Producing another incompatible split with D2 will not be of an advantage to anyone, and will just give people reasons not to use D at all. Jacob has recently decided to help out with improvements to druntime; I take that as a very welcome sign towards ending the differences.I don't want to increase any separation in the D community and would hope peoeple could agree more. I have no problems what so ever contributing both to Tango and Phobos/druntime. And I'm happy to license any of my code to whatever license would be need for a give D project.
Nov 10 2010
On 2010-11-10 12:43, retard wrote:Wed, 10 Nov 2010 11:56:18 +0100, Jacob Carlborg wrote:I basically agree with all this. -- /Jacob CarlborgOn 2010-11-10 00:00, Walter Bright wrote:A dual licensing scheme for all code might help a bit (since both parties refuse to switch licensing). There are also - stylistic issues (OOP style structured Tango vs quick'n'dirty Phobos API) -> this causes annoying technical incompatibilities - psychological issues (Tango's charismatic leaders vs dull politically correct office persons and almost anynomous lone coders porting Boost code written in other languages). I believe strong personalities like Jon Harrop and Paul Graham actually have an overall positive effect. It's not a big secret that Andrei has boosted D's adoption quite a bit - this has more to do with the strong personality than technical issues. - project management issues (Tango uses trac heavily and the leaders have modern project management skills, Phobos developers have developed a new inefficient ad-hoc software process model without the big picture 'planning' phase and without any communication between the team and the product owner) - platform issues (not everyone agrees D2 is a perfect upgrade route - how is this even surprising? Look at the number of people *not* using D, it shouldn't be a surprise that there are people who dislike D2, but like D1) - an axe fight between some key persons. I believe this can be solved if there weren't those other annoying problems. These are all my subjective opinions. Feel free to throw the first rock, after all I'm just a stupid troll. For me the technical issues have the greatest priority. If I want a full flexible Java style stream I/O interface and these kind of things, there's no way in hell I'll let you shove the Phobos style ideology down my throat. I'd have to create a "PhoTango" wrapper to actually use these. The political issues aren't that interesting. If I'm coding in Java or C#, I don't even know the names of the stdlib developers. Maybe Doug Lea. But he left Oracle for political reasons..I agree. The reasons for the Tango split long ago, whatever the merit of those reasons was, have long since passed. Producing another incompatible split with D2 will not be of an advantage to anyone, and will just give people reasons not to use D at all. Jacob has recently decided to help out with improvements to druntime; I take that as a very welcome sign towards ending the differences.I don't want to increase any separation in the D community and would hope peoeple could agree more. I have no problems what so ever contributing both to Tango and Phobos/druntime. And I'm happy to license any of my code to whatever license would be need for a give D project.
Nov 10 2010
retard wrote:A dual licensing scheme for all code might help a bit (since both parties refuse to switch licensing). There are alsoReleasing under the Boost license will make it compatible with both. Such is kinda the point with the Boost license, and why we chose it.It's not a big secret that Andrei has boosted D's adoption quite a bit - this has more to do with the strong personality than technical issues.Maybe, but Andrei's technical contribution has been very large. So has his book. Andrei's reputation in the programming community has been well earned through his technical contributions.
Nov 10 2010
- platform issues (not everyone agrees D2 is a perfect upgrade route - how is this even surprising? Look at the number of people *not* using D, it shouldn't be a surprise that there are people who dislike D2, but like D1)There are so many people love C and "hate" C++. We know it is the same language with one of them has some nifty extra tools. Generic programming, namespaces, easier OOP, operator/function overloading and many more. Now why would they hate C++? . politics . politics related to certain features like OOP, operator overloading, you name it. . complexity Could you tell me anything other than this, that make sense?These are all my subjective opinions. Feel free to throw the first rock, after all I'm just a stupid troll.Not always but can't say that i never see you trolling :P- stylistic issues (OOP style structured Tango vs quick'n'dirty Phobos API) -> this causes annoying technical incompatibilities For me the technical issues have the greatest priority. If I want a full flexible Java style stream I/O interface and these kind of things, there's no way in hell I'll let you shove the Phobos style ideology down my throat. I'd have to create a "PhoTango" wrapper to actually use these.I am not comparing libraries and also not in a position to do that since didn't even see Tango. But a question comes to mind. For library development (or just everything if that matters) is the top down OOP approach ideal/right way? It is just an idiom that might have elegant solutions for certain tasks. -- Using Opera's revolutionary email client: http://www.opera.com/mail/
Nov 10 2010
== Quote from so (so so.do)'s articleBut a question comes to mind. For library development (or just everything if that matters) is the top down OOP approach ideal/right way? It is just an idiom that might have elegant solutions for certain tasks.Frankly, for a library, I hate it in most cases. Libraries need to make the simple use cases sufficiently simple that people aren't tempted to roll their own. This means minimum boilerplate. Don't make it a class if it can be a free function. Don't make me import/search through zillions of tiny modules when I'm probably going to want to use most of them at the same time. Don't make me instantiate 15 layers of decorators just to read in a file line by line (*cough* Java *cough). When it comes to the more complicated use cases, trying to anticipate these is rather difficult. It's often not too hard to make complicated things possible by writing an OO wrapper on top of a designed-for-simplicity API. OTOH, if you need to write a bunch of wrappers to avoid needing lots of boilerplate code in the common cases, you've by definition failed at making simple things simple.
Nov 10 2010
dsimcha wrote:Libraries need to make the simple use cases sufficiently simple that people aren't tempted to roll their own.Hear hear. For example, one of the goals with D strings was to make them so good that people wouldn't invent their own string classes.
Nov 10 2010
Walter Bright Wrote:dsimcha wrote:And yet we still get those that want a class, or even limit the capability of arrays so that a class is more appealing. (Had a friend that hated the idea that D went back to array of characters, then he saw that arrays could actually do stuff)Libraries need to make the simple use cases sufficiently simple that people aren't tempted to roll their own.Hear hear. For example, one of the goals with D strings was to make them so good that people wouldn't invent their own string classes.
Nov 10 2010
On Wednesday, November 10, 2010 14:52:10 Jesse Phillips wrote:Walter Bright Wrote:Well, of course his first reaction was negative. Arrays suck in other languages in comparison to D. Having strings be arrays in C is horrible. I'd be annoyed to have strings be arrays if you were using Java arrays, and they're a definite improvement over C - if nothing else because they know their length. Strings as arrays work in D precisely because D arrays are so awesome. I've never used another language which had arrays which were even close to as awesome as the ones in D. - Jonathan M Davisdsimcha wrote:And yet we still get those that want a class, or even limit the capability of arrays so that a class is more appealing. (Had a friend that hated the idea that D went back to array of characters, then he saw that arrays could actually do stuff)Libraries need to make the simple use cases sufficiently simple that people aren't tempted to roll their own.Hear hear. For example, one of the goals with D strings was to make them so good that people wouldn't invent their own string classes.
Nov 10 2010
Jonathan M Davis schrieb:On Wednesday, November 10, 2010 14:52:10 Jesse Phillips wrote:The only possible source of confusion may be that slicing is only safe with dchar[]. (But still may work with char[] as long as you're only using ASCII characters, so the error may not be obvious) Of course I don't want to propose to change that because it makes perfect sense the way it is, because in many situations you want to know, how long the string physically is (how many bytes), so any hack to splice by logical characters instead of physical characters would result in a terrible mess. But this is something a string-class with .substring(beg, end), .logLength, .physLength and stuff like that could fix, because these differences were more obvious. But then again, having the following functions in std.string may suffice: size_t logLength(string s) // logical length in code points string substring(string s, size_t beg, size_t end) // "logical slice" - from code point number beg to code point number end On the other hand those wouldn't play nice with the existing functions like indexOf etc :/Walter Bright Wrote:Well, of course his first reaction was negative. Arrays suck in other languages in comparison to D. Having strings be arrays in C is horrible. I'd be annoyed to have strings be arrays if you were using Java arrays, and they're a definite improvement over C - if nothing else because they know their length. Strings as arrays work in D precisely because D arrays are so awesome. I've never used another language which had arrays which were even close to as awesome as the ones in D. - Jonathan M Davisdsimcha wrote:And yet we still get those that want a class, or even limit the capability of arrays so that a class is more appealing. (Had a friend that hated the idea that D went back to array of characters, then he saw that arrays could actually do stuff)Libraries need to make the simple use cases sufficiently simple that people aren't tempted to roll their own.Hear hear. For example, one of the goals with D strings was to make them so good that people wouldn't invent their own string classes.
Nov 11 2010
On 11/11/10 9:25 AM, Daniel Gibson wrote:Jonathan M Davis schrieb:That would be walkLength.On Wednesday, November 10, 2010 14:52:10 Jesse Phillips wrote:The only possible source of confusion may be that slicing is only safe with dchar[]. (But still may work with char[] as long as you're only using ASCII characters, so the error may not be obvious) Of course I don't want to propose to change that because it makes perfect sense the way it is, because in many situations you want to know, how long the string physically is (how many bytes), so any hack to splice by logical characters instead of physical characters would result in a terrible mess. But this is something a string-class with .substring(beg, end), .logLength, .physLength and stuff like that could fix, because these differences were more obvious. But then again, having the following functions in std.string may suffice: size_t logLength(string s) // logical length in code pointsWalter Bright Wrote:Well, of course his first reaction was negative. Arrays suck in other languages in comparison to D. Having strings be arrays in C is horrible. I'd be annoyed to have strings be arrays if you were using Java arrays, and they're a definite improvement over C - if nothing else because they know their length. Strings as arrays work in D precisely because D arrays are so awesome. I've never used another language which had arrays which were even close to as awesome as the ones in D. - Jonathan M Davisdsimcha wrote:And yet we still get those that want a class, or even limit the capability of arrays so that a class is more appealing. (Had a friend that hated the idea that D went back to array of characters, then he saw that arrays could actually do stuff)Libraries need to make the simple use cases sufficiently simple that people aren't tempted to roll their own.Hear hear. For example, one of the goals with D strings was to make them so good that people wouldn't invent their own string classes.string substring(string s, size_t beg, size_t end) // "logical slice" - from code point number beg to code point number endThat's not implemented and I don't think it would be useful. Usually when I want a substring, the calculations up to that point indicate the code _unit_ I'm at.On the other hand those wouldn't play nice with the existing functions like indexOf etc :/Hm, I just noticed a problem. std.algorithm.indexOf returns logical position because it uses the forward range interface, and std.string.indexOf returns the physical position :o(. Andrei
Nov 11 2010
Andrei Alexandrescu schrieb:On 11/11/10 9:25 AM, Daniel Gibson wrote:Ok. I really should get familiar with std.algorithm and D2 in general :-)Jonathan M Davis schrieb:That would be walkLength.On Wednesday, November 10, 2010 14:52:10 Jesse Phillips wrote:The only possible source of confusion may be that slicing is only safe with dchar[]. (But still may work with char[] as long as you're only using ASCII characters, so the error may not be obvious) Of course I don't want to propose to change that because it makes perfect sense the way it is, because in many situations you want to know, how long the string physically is (how many bytes), so any hack to splice by logical characters instead of physical characters would result in a terrible mess. But this is something a string-class with .substring(beg, end), .logLength, .physLength and stuff like that could fix, because these differences were more obvious. But then again, having the following functions in std.string may suffice: size_t logLength(string s) // logical length in code pointsWalter Bright Wrote:Well, of course his first reaction was negative. Arrays suck in other languages in comparison to D. Having strings be arrays in C is horrible. I'd be annoyed to have strings be arrays if you were using Java arrays, and they're a definite improvement over C - if nothing else because they know their length. Strings as arrays work in D precisely because D arrays are so awesome. I've never used another language which had arrays which were even close to as awesome as the ones in D. - Jonathan M Davisdsimcha wrote:And yet we still get those that want a class, or even limit the capability of arrays so that a class is more appealing. (Had a friend that hated the idea that D went back to array of characters, then he saw that arrays could actually do stuff)Libraries need to make the simple use cases sufficiently simple that people aren't tempted to roll their own.Hear hear. For example, one of the goals with D strings was to make them so good that people wouldn't invent their own string classes.I'm glad to have accidentally revealed that inconsistency ;) Probably something should be done about this, maybe by renaming one of the functions or something like that?string substring(string s, size_t beg, size_t end) // "logical slice" - from code point number beg to code point number endThat's not implemented and I don't think it would be useful. Usually when I want a substring, the calculations up to that point indicate the code _unit_ I'm at.On the other hand those wouldn't play nice with the existing functions like indexOf etc :/Hm, I just noticed a problem. std.algorithm.indexOf returns logical position because it uses the forward range interface, and std.string.indexOf returns the physical position :o(.AndreiCheers, - Daniel
Nov 11 2010
On 11/11/10 9:52 AM, Daniel Gibson wrote:Andrei Alexandrescu schrieb:Yah, this is worth a bug report. Thanks. http://d.puremagic.com/issues/show_bug.cgi?id=5201 AndreiOn 11/11/10 9:25 AM, Daniel Gibson wrote:Ok. I really should get familiar with std.algorithm and D2 in general :-)Jonathan M Davis schrieb:That would be walkLength.On Wednesday, November 10, 2010 14:52:10 Jesse Phillips wrote:The only possible source of confusion may be that slicing is only safe with dchar[]. (But still may work with char[] as long as you're only using ASCII characters, so the error may not be obvious) Of course I don't want to propose to change that because it makes perfect sense the way it is, because in many situations you want to know, how long the string physically is (how many bytes), so any hack to splice by logical characters instead of physical characters would result in a terrible mess. But this is something a string-class with .substring(beg, end), .logLength, .physLength and stuff like that could fix, because these differences were more obvious. But then again, having the following functions in std.string may suffice: size_t logLength(string s) // logical length in code pointsWalter Bright Wrote:Well, of course his first reaction was negative. Arrays suck in other languages in comparison to D. Having strings be arrays in C is horrible. I'd be annoyed to have strings be arrays if you were using Java arrays, and they're a definite improvement over C - if nothing else because they know their length. Strings as arrays work in D precisely because D arrays are so awesome. I've never used another language which had arrays which were even close to as awesome as the ones in D. - Jonathan M Davisdsimcha wrote:And yet we still get those that want a class, or even limit the capability of arrays so that a class is more appealing. (Had a friend that hated the idea that D went back to array of characters, then he saw that arrays could actually do stuff)Libraries need to make the simple use cases sufficiently simple that people aren't tempted to roll their own.Hear hear. For example, one of the goals with D strings was to make them so good that people wouldn't invent their own string classes.I'm glad to have accidentally revealed that inconsistency ;) Probably something should be done about this, maybe by renaming one of the functions or something like that?string substring(string s, size_t beg, size_t end) // "logical slice" - from code point number beg to code point number endThat's not implemented and I don't think it would be useful. Usually when I want a substring, the calculations up to that point indicate the code _unit_ I'm at.On the other hand those wouldn't play nice with the existing functions like indexOf etc :/Hm, I just noticed a problem. std.algorithm.indexOf returns logical position because it uses the forward range interface, and std.string.indexOf returns the physical position :o(.
Nov 11 2010
On Thu, 11 Nov 2010 09:40:05 -0800 Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> wrote:Yes, but a code unit does not represent a character, instead a unicode "abs= tract character". void main() { dstring s =3D "\u0061\u0302\u006d\u0065"d; writeln(s); // "=C3=A2me" assert(s[0..1] =3D=3D "a"); assert(s.indexOf("=C3=A2") =3D=3D -1); } A "user-perceived character" (also strangely called "grapheme" in unicode d= ocs) can be represented by an arbitrary number of code _units_ (up to 8 in = their test data, but there is no actual limit). What a code unit represents= is, say, a "scripting mark". In "=C3=A2", there are 2 of them. For legacy = reasons, UCS also includes "precombined characters", so that "=C3=A2" can a= lso be represented by a single code, indeed. But the above form is valid, i= t's even arguably the base form for "=C3=A2" (and most composite chars cann= ot be represented by a single code). In my views, there is a missing level of abstraction in common UString proc= essing libs and types. How to count the "=C3=A2"s in a text? How to find on= e? Above, indexOf fails because my editor uses a precombined code, while th= e source (here literal) uses another form. To be able to produce meaningful results, and to use simple routines like i= ndex, find, count..., the way we used to with single-length character sets,= there should be a grouping phase on top of decoding; we would then process= arrays of "stacks" representing characters, not of codes. ITo search, it's= also necessary to have all characters normalised form, so that both "=C3= =A2" would match: another phase. Unicode provides algorithms for those phases in constructing string represe= ntations -- but everyone seems to ignore the issues... s[0..1] would then r= eturn the first character, not the first code of the "stack" representing t= he first character. Denis -- -- -- -- -- -- -- vit esse estrany =E2=98=A3 spir.wikidot.comstring substring(string s, size_t beg, size_t end) // "logical slice" - from code point number beg to code point number end =20=20 That's not implemented and I don't think it would be useful. Usually=20 when I want a substring, the calculations up to that point indicate the=20 code _unit_ I'm at.
Nov 11 2010
spir schrieb:On Thu, 11 Nov 2010 09:40:05 -0800 Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> wrote:OMG, this is worse than I thought O_O I thought "ok, for UTF-8 one code unit is one byte and one 'real', visible character is called a code point and consists of 1-4 code units" - but having "user-perceived characters" that consist of multiple code units is sick. Unicode has a way to tell if a sequence of code units (bytes) belongs together or not, so identifying code points isn't too hard. But is there a way to identify "graphemes"? Other then a list of rules like "a sequence of the two code points <foo> and <bar> make up one "grapheme" <foobar>?Yes, but a code unit does not represent a character, instead a unicode "abstract character". void main() { dstring s = "\u0061\u0302\u006d\u0065"d; writeln(s); // "âme" assert(s[0..1] == "a"); assert(s.indexOf("â") == -1); } A "user-perceived character" (also strangely called "grapheme" in unicode docs) can be represented by an arbitrary number of code _units_ (up to 8 in their test data, but there is no actual limit). What a code unit represents is, say, a "scripting mark". In "â", there are 2 of them. For legacy reasons, UCS also includes "precombined characters", so that "â" can also be represented by a single code, indeed. But the above form is valid, it's even arguably the base form for "â" (and most composite chars cannot be represented by a single code).string substring(string s, size_t beg, size_t end) // "logical slice" - from code point number beg to code point number endThat's not implemented and I don't think it would be useful. Usually when I want a substring, the calculations up to that point indicate the code _unit_ I'm at.
Nov 11 2010
On Thu, 11 Nov 2010 22:40:47 +0100 Daniel Gibson <metalcaedes gmail.com> wrote:spir schrieb:-On Thu, 11 Nov 2010 09:40:05 -0800 Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> wrote: =20string substring(string s, size_t beg, size_t end) // "logical slice"=e=20from code point number beg to code point number end =20That's not implemented and I don't think it would be useful. Usually=20 when I want a substring, the calculations up to that point indicate th="abstract character".code _unit_ I'm at.=20 Yes, but a code unit does not represent a character, instead a unicode =de docs) can be represented by an arbitrary number of code _units_ (up to 8= in their test data, but there is no actual limit). What a code unit repres= ents is, say, a "scripting mark". In "=C3=A2", there are 2 of them. For leg= acy reasons, UCS also includes "precombined characters", so that "=C3=A2" c= an also be represented by a single code, indeed. But the above form is vali= d, it's even arguably the base form for "=C3=A2" (and most composite chars = cannot be represented by a single code).=20 void main() { dstring s =3D "\u0061\u0302\u006d\u0065"d; writeln(s); // "=C3=A2me" assert(s[0..1] =3D=3D "a"); assert(s.indexOf("=C3=A2") =3D=3D -1); } =20 A "user-perceived character" (also strangely called "grapheme" in unico=e=20=20=20 OMG, this is worse than I thought O_O I thought "ok, for UTF-8 one code unit is one byte and one 'real', visibl=character is called a code point and consists of 1-4 code units" - but ha=ving=20"user-perceived characters" that consist of multiple code units is sick.Most people, even programmers that deal with unicode everyday, think the sa= me. This is due to several factors: (1) unicode's misleading use of "abstra= ct character" (wonder whether it was done in purpose?) (2) string processin= g tools simply ignore all of that (3) most texts we deal with today only ho= ld common characters that have a single-code representation. So that everybody plays with strings as if (1 code <--> 1 char).Unicode has a way to tell if a sequence of code units (bytes) belongs tog=ether=20or not, so identifying code points isn't too hard. But is there a way to identify "graphemes"? Other then a list of rules li=ke "a=20sequence of the two code points <foo> and <bar> make up one "grapheme" <f=oobar>? =20 There is an algorithm, indeed, and not too complicated. But you won't find = any information in the string of codes itself that tells you about it (mean= ing, you cannot synchronise at start/end of "grapheme" without knowledge of= the whole algorithm). Accordingly, when picking _some_ code points (eg the one 'a' above), there = is no way to tell whether it's a standalone code that happens to represent = a whole character ("a"), or the just the start of it. These are the base "m= arks": they have the same code when meaning a whole char and as start of "s= tack" (substring representing a whole char). But combining marks have 2 cod= es: one when combined, one when used alone like in "in portuguese, '~' is u= sed to denote a nasal vowel". (Hope I'm clear.) The whole set of UCS (the charset) issues, over Unicode ones, is imo: 1. Actual characters are represented by an arbitrary number of codes. 2. The same character can be represented by different strings of codes... 3. including strings of the same length, but in different order ;-) The first issue is actually good: it would be stupid to try and give a code= to every possible combination, and even impossible. also, the present sche= me allows _creating_ character for our use, that will be rndered correctly = (yes!). (But I would kill any designer collegue that would allow for points= 2. and 3. ;-) Denis -- -- -- -- -- -- -- vit esse estrany =E2=98=A3 spir.wikidot.com
Nov 11 2010
Thu, 11 Nov 2010 23:59:36 +0100, spir wrote:(3) most texts we deal with today only hold common characters that have a single-code representation. So that everybody plays with strings as if (1 code <--> 1 char).That might be true for many americans. But even then the single byte can't express all characters you need in everyday communication. There are countless people with é or ë or ü in their last name. ” and “ are probably not among the first 128-256 codes. Using e instead of ë or é might work to some extent, but ü and u are pronounced differently. Some use ue instead.
Nov 11 2010
On Thu, 11 Nov 2010 23:17:05 +0000 (UTC) retard <re tard.com.invalid> wrote:Thu, 11 Nov 2010 23:59:36 +0100, spir wrote: =20=E2=80=9D and =E2=80=9C are=20(3) most texts we deal with today only hold common characters that have a single-code representation. So that everybody plays with strings as if (1 code <--> 1 char).=20 That might be true for many americans. But even then the single byte=20 can't express all characters you need in everyday communication. There=20 are countless people with =C3=A9 or =C3=AB or =C3=BC in their last name. =probably not among the first 128-256 codes. Using e instead of =C3=AB or ==C3=A9=20might work to some extent, but =C3=BC and u are pronounced differently. S=ome=20use ue instead.I meant _codes_ (code points). Not code _unit_ and even less bytes. The character <I with dot above and dot below> (if ever you want to use it = ;-) needs 2 or 3 code _points_ for representation in memory or storage. Try: writeln (""); // --> I=CC=87=CC=A3 If your output system is sufficiently capable, then you get an I with dot a= bove and dot below! (I recommand the DejaVu font series). And, as you see, = the type dstring is used, meaning each element is a dchar holding a whole c= ode point. Right? But it's a single character requiring 3 codes. Ebven more troubling: if I choose a lowercase 'i' instead, then since <i wi= th dot below> exists as a precombined code, I have the choice between 2 or = 3 codes. An "abstract character", as introduced by UCS and represented by a code, is= *not* what we think as "character". It is an abstract "mark", such as the = 'I', the combining dot above, the combining dot below, all inside "I=CC=87= =CC=A3". Also, it's important to realise that there is no formal definition of "char= acter", and even less a universal one. A character is what people using a s= cripting system consider as such. I know, UCS / Unicode terminology is misleading. It does not help, instead = it increases confusion. What you are evoking is a lower-level issue, namely the encoding of code po= ints themselves (here, 3) into code units, and then bytes, in a concrete fo= rm (say, in file). Depending on the encoding (here I consider only utf8/16/= 32 ones), there may be 1, 1 or 2, 1 to 4, code units per code point. Denis -- -- -- -- -- -- -- vit esse estrany =E2=98=A3 spir.wikidot.com
Nov 12 2010
spir wrote:An "abstract character", as introduced by UCSOh gosh, another in the never ending menagerie of Unicode terms. :-(
Nov 12 2010
== Quote from Walter Bright (newshound2 digitalmars.com)'s articlespir wrote:If Unicode is not complicated, what is an abstract basic multilingual plane multibyte code unit and when's the last time you needed one?An "abstract character", as introduced by UCSOh gosh, another in the never ending menagerie of Unicode terms. :-(
Nov 12 2010
On Sat, 13 Nov 2010 00:59:05 +0200, dsimcha <dsimcha yahoo.com> wrote:== Quote from Walter Bright (newshound2 digitalmars.com)'s articleHow can they not know it? Don't we call it shortly ABMPMCU? :) -- Using Opera's revolutionary email client: http://www.opera.com/mail/spir wrote:If Unicode is not complicated, what is an abstract basic multilingual plane multibyte code unit and when's the last time you needed one?An "abstract character", as introduced by UCSOh gosh, another in the never ending menagerie of Unicode terms. :-(
Nov 12 2010
spir wrote:In my views, there is a missing level of abstraction in common UString processing libs and types. How to count the "â"s in a text? How to find one? Above, indexOf fails because my editor uses a precombined code, while the source (here literal) uses another form. To be able to produce meaningful results, and to use simple routines like index, find, count..., the way we used to with single-length character sets, there should be a grouping phase on top of decoding; we would then process arrays of "stacks" representing characters, not of codes. ITo search, it's also necessary to have all characters normalised form, so that both "â" would match: another phase. Unicode provides algorithms for those phases in constructing string representations -- but everyone seems to ignore the issues... s[0..1] would then return the first character, not the first code of the "stack" representing the first character.http://www.digitalmars.com/d/2.0/phobos/std_utf.html
Nov 11 2010
Walter Bright schrieb:spir wrote:If I'm not mistaken, those functions don't handle these "graphemes", i.e. something that appears like one character on the screen, but consists of multiple code *points*. Like spir's "â" that, in UTF-8, is encoded with the following bytes: 0x61 (=='a'), 0xCC, 0x82. (Or \u0061\u0302 in UTF-32). Also, a function returning the physical position (i.e. pos in arrray of chars or wchars) of logical char #logPos may be useful, e.g. for fixed width printing stuff: size_t getPhysPos(char[] str, size_t logPos) Cheers, - DanielIn my views, there is a missing level of abstraction in common UString processing libs and types. How to count the "â"s in a text? How to find one? Above, indexOf fails because my editor uses a precombined code, while the source (here literal) uses another form. To be able to produce meaningful results, and to use simple routines like index, find, count..., the way we used to with single-length character sets, there should be a grouping phase on top of decoding; we would then process arrays of "stacks" representing characters, not of codes. ITo search, it's also necessary to have all characters normalised form, so that both "â" would match: another phase. Unicode provides algorithms for those phases in constructing string representations -- but everyone seems to ignore the issues... s[0..1] would then return the first character, not the first code of the "stack" representing the first character.http://www.digitalmars.com/d/2.0/phobos/std_utf.html
Nov 11 2010
Daniel Gibson wrote:If I'm not mistaken, those functions don't handle these "graphemes",Probably not, since I don't know what the **** a grapheme is. I think the person who thought unicode should be divided up into characters, bytes, code points, code units, glyphs, combining characters, composite characters, and graphemes (and whatever new complexity they dream up this week) should be taken out and screened by the TSA. Unicode is a simple idea, made absurdly complex. Furthermore, I think that Phobos handles Unicode in a straightforward manner. All this other crazy stuff should be handled by some 3rd party 100Mb add-on, so none of the rest of us have to suffer under it.
Nov 11 2010
On Thu, 11 Nov 2010 18:09:44 -0800 Walter Bright <newshound2 digitalmars.com> wrote:Daniel Gibson wrote:person=20If I'm not mistaken, those functions don't handle these "graphemes",=20=20 Probably not, since I don't know what the **** a grapheme is. I think the=who thought unicode should be divided up into characters, bytes, code poi=nts,=20code units, glyphs, combining characters, composite characters, and graph=emes=20(and whatever new complexity they dream up this week) should be taken out=and=20screened by the TSA.I think about the same.Unicode is a simple idea, made absurdly complex.Yes, for sure. The added, non-functional, complexity was introduced (people= say) to keep some kind of superficial compatibility with legacy charset, i= n the (hopeless) hope that this would boost initial adoption of UCS. Thus, = we have characters like an (a with circumflex) which is represented in UCS = (I'm talking of the higher-level not of encoding, what Unicode addresses): * basically, with 2 code _points_, which is good, because this scheme allow= s economically representing all possible combinations, * but also with a single "precombined" code point, to cope with legacy char= sets of the latin-N series, which id bad. In addition to that, characters represented by more than 2 code points suff= er another issue, namely that the additional "combining" codes cna be put i= n any order ;-) There is a normal one (and an algorithm to restore it), but= it is not imposed. These supposed trade-offs helped nothing concretely, because legacy texts r= equire decoding anyway; mapping to two unicode code points instead of one i= s nothing for software, and needs to be done once only. For this initial "a= dvantage", we suffer undue complication for the rest of the standard's life= time. The consequence in terms of computing is a huge loss: *** the mapping 1 character <--> 1 representation does not hold anymore *** And it's even broken in several ways. Instead, we have 1 character <--> n representations -- where n is unpredictable I guess you can imagine the logical suites...Furthermore, I think that Phobos handles Unicode in a straightforward man=ner.=20All this other crazy stuff should be handled by some 3rd party 100Mb add-=on, so=20none of the rest of us have to suffer under it.All right. Maybe I'll write one day a library or type that deals with "UTex= t" at the high level (the user level) I try to explain here. Then, one can = index, slice, search, count, replace, match... like with plain ASCII. I've = done it once in Lua (unfinished, but worked). The key point to understand is that an array of code points (read, a dstrin= g) is still not a logical string. Reason why I introduce the notion of stac= k (ripped the word from a unicode doc). Below each c is a code: c c c c physical sequence of codes a ^ m e <--> sequence of "marks" c c c c logical sequence of "stacks" =C3=A2 m e <--> sequence of characters One "stack" holds one place in the (horizontal) logical sequence, thus the = name. This requires, for any source text or text slice (eg a substring to be sear= ched): * decoding, properly speaking --> array of code in source charset (eg latin= -3) * code mapping --> array of unicode code ~=3D dstring (unecessary if source encoding is utfN, ascci, or latin-1, since code map= s are identical) * grouping code units representing single chars --> array of "stacks" (mini= -dstring) * normalising to decomposed form, called NFD (eg "=C3=A2" is 2 codes) * sorting codes inside stack Actually, the 3 last step can be done in one go (but it's not a big gain, i= f any). Then, we have restored the sensible bi-univoque mapping 1 character <--> 1 = representation. (Like in ASCII, latin-1, and all charsets that represent ch= aracters with single-length forms). Thus, we can safely perform any kind of= process. Denis -- -- -- -- -- -- -- vit esse estrany =E2=98=A3 spir.wikidot.com
Nov 12 2010
spir schrieb:That'd be great :-)Furthermore, I think that Phobos handles Unicode in a straightforward manner. All this other crazy stuff should be handled by some 3rd party 100Mb add-on, so none of the rest of us have to suffer under it.All right. Maybe I'll write one day a library or type that deals with "UText" at the high level (the user level) I try to explain here. Then, one can index, slice, search, count, replace, match... like with plain ASCII. I've done it once in Lua (unfinished, but worked).
Nov 12 2010
On Fri, 12 Nov 2010 01:00:18 +0100 Daniel Gibson <metalcaedes gmail.com> wrote:=20http://www.digitalmars.com/d/2.0/phobos/std_utf.html =20=20 If I'm not mistaken, those functions don't handle these "graphemes", i.e.=something that appears like one character on the screen, but consists of==20multiple code *points*. Like spir's "=C3=A2" that, in UTF-8, is encoded w=ith the=20following bytes: 0x61 (=3D=3D'a'), 0xCC, 0x82. (Or \u0061\u0302 in UTF-32=). You are right, Daniel. As far as I understand it superficially (haven't use= d it yet), the current utf library deals with the lower-level issues of enc= oding code point into code units, and bytes.Also, a function returning the physical position (i.e. pos in arrray of c=hars or=20wchars) of logical char #logPos may be useful, e.g. for fixed width print=ing stuff:size_t getPhysPos(char[] str, size_t logPos)See my reply to Walter's next post. Denis -- -- -- -- -- -- -- vit esse estrany =E2=98=A3 spir.wikidot.com
Nov 12 2010
"spir" <denis.spir gmail.com> wrote in message news:mailman.283.1289507692.21107.digitalmars-d puremagic.com... On Thu, 11 Nov 2010 09:40:05 -0800A "user-perceived character" (also strangely called "grapheme" in unicode docs) can be represented by an arbitrary number of code _units_ (up to 8 in their test data, but there is no actual limit). What a code unit represents is, say, a "scripting mark". In "", there are 2 of them. For legacy reasons, UCS also includes "precombined characters", so that "" can also be represented by a single code, indeed. But the above form is valid, it's even arguably the base form for "" (and most composite chars cannot be represented by a single code).Minor rant: Sometimes I'm nostalgic for for utter simplicity of ASCII and look at all the complexity of all the international symbols out there and think "Well, ok, so Unicode's not as simple, but it is necessary. It can't be as simple as ASCII and still work. And code-units/code-points, and UTF8 vs UTF16 vs UTF32 really aren't all *that* bad, all things considered." Then something comes along and reminds me that Unicode decided to toss in multiple ways to represent the same damn character in a *single* encoding scheme, and then I just want to slap them. Like the precombined vs non-precombined characters. And how they responded to the \n vs \r\n mess by adding *another* newline character (Really? That's supposed to help? REALLY?!?).
Nov 11 2010
On 11/10/2010 3:16 PM, dsimcha wrote:Don't make it a class if it can be a free function.I agree with most of the others except for this one. I can type "Math." and instantly see my choices. It also helps namespace conflicts without having to do selective imports or use the slightly longer std.math.log
Nov 10 2010
On 2010-11-10 21:42, Eric Poggel wrote:On 11/10/2010 3:16 PM, dsimcha wrote:You can have renamed imports: import Math = std.math; and the you can use Math. as you want. -- /Jacob CarlborgDon't make it a class if it can be a free function.I agree with most of the others except for this one. I can type "Math." and instantly see my choices. It also helps namespace conflicts without having to do selective imports or use the slightly longer std.math.log
Nov 10 2010
I agree with most of the others except for this one. I can type "Math." and instantly see my choices. It also helps namespace conflicts without having to do selective imports or use the slightly longer std.math.logYou can get the same thing with a namespace/module named math, after all it is an IDE feature. -- Using Opera's revolutionary email client: http://www.opera.com/mail/
Nov 10 2010
Eric Poggel:On 11/10/2010 3:16 PM, dsimcha wrote:Object oriented programming is a way to think about code, so it may come more natural to you, or less natural, according to the way you think (often your first language matters a lot. If your first language was OOP then probably objects are more natural for you). But in the end OOP was invented to face problems present in larger programs. OO is infrastructure that adds some complexity to reduce complexity in larger programs. It's not wise to add complexity unless it's necessary. So using a class where a free functions is enough may be over-engineering. Bye, bearophileDon't make it a class if it can be a free function.I agree with most of the others except for this one.
Nov 10 2010
On Wed, Nov 10, 2010 at 4:00 PM, bearophile <bearophileHUGS lycos.com>wrote:Eric Poggel:One thought here: If Tango is still useful in the D world but there isn't too much enthusiasm about porting it to D2, why not break its functionality (that isn't already in Phobos 2) down into a set of supplemental libraries that can be included as needed? This would seem to give the best of both worlds because there is no longer a runtime split, the functionality and APIs provided by Tango is still available as needed, and porting becomes something that can easily be done incrementally. Thoughts? Criticisms? Denunciations?On 11/10/2010 3:16 PM, dsimcha wrote:Object oriented programming is a way to think about code, so it may come more natural to you, or less natural, according to the way you think (often your first language matters a lot. If your first language was OOP then probably objects are more natural for you). But in the end OOP was invented to face problems present in larger programs. OO is infrastructure that adds some complexity to reduce complexity in larger programs. It's not wise to add complexity unless it's necessary. So using a class where a free functions is enough may be over-engineering.Don't make it a class if it can be a free function.I agree with most of the others except for this one.
Nov 10 2010
Andrew Wiley schrieb:One thought here: If Tango is still useful in the D world but there isn't too much enthusiasm about porting it to D2, why not break its functionality (that isn't already in Phobos 2) down into a set of supplemental libraries that can be included as needed?Or just put it in one library and call it "Tango2" or something like that ;) (To allow porting of all kinds of Tango programs, about every Tango class would have to be ported to D2 anyway, so one could just as well do a proper port. Because of druntime it could coexist with Phobos2 - which was really the point of druntime for D2. Unfortunately nobody wanted to do this hitherto).
Nov 10 2010
On Wed, Nov 10, 2010 at 5:27 PM, Daniel Gibson <metalcaedes gmail.com>wrote:Andrew Wiley schrieb:Well, with Phobos 2, it may be that the cost of porting Tango no longer outweighs the benefits of the extra functionality. My point was that it doesn't have to be one large library that replaces Phobos, it could just be a set of libraries ported as needed that provide the APIs that were most useful in Tango.One thought here: If Tango is still useful in the D world but there isn't too much enthusiasm about porting it to D2, why not break its functionality (that isn't already in Phobos 2) down into a set of supplemental libraries that can be included as needed?Or just put it in one library and call it "Tango2" or something like that ;) (To allow porting of all kinds of Tango programs, about every Tango class would have to be ported to D2 anyway, so one could just as well do a proper port. Because of druntime it could coexist with Phobos2 - which was really the point of druntime for D2. Unfortunately nobody wanted to do this hitherto).
Nov 10 2010
On Wed, Nov 10, 2010 at 5:27 PM, Daniel Gibson <metalcaedes gmail.com>wrote:Andrew Wiley schrieb:It's also worthy of note that I wasn't addressing the porting of Tango programs specifically. The modular approach does lose there.One thought here: If Tango is still useful in the D world but there isn't too much enthusiasm about porting it to D2, why not break its functionality (that isn't already in Phobos 2) down into a set of supplemental libraries that can be included as needed?Or just put it in one library and call it "Tango2" or something like that ;) (To allow porting of all kinds of Tango programs, about every Tango class would have to be ported to D2 anyway, so one could just as well do a proper port. Because of druntime it could coexist with Phobos2 - which was really the point of druntime for D2. Unfortunately nobody wanted to do this hitherto).
Nov 10 2010
Andrew Wiley schrieb:On Wed, Nov 10, 2010 at 5:27 PM, Daniel Gibson <metalcaedes gmail.com <mailto:metalcaedes gmail.com>> wrote: Andrew Wiley schrieb: One thought here: If Tango is still useful in the D world but there isn't too much enthusiasm about porting it to D2, why not break its functionality (that isn't already in Phobos 2) down into a set of supplemental libraries that can be included as needed? Or just put it in one library and call it "Tango2" or something like that ;) (To allow porting of all kinds of Tango programs, about every Tango class would have to be ported to D2 anyway, so one could just as well do a proper port. Because of druntime it could coexist with Phobos2 - which was really the point of druntime for D2. Unfortunately nobody wanted to do this hitherto). It's also worthy of note that I wasn't addressing the porting of Tango programs specifically. The modular approach does lose there.I thought with "[...] the functionality and APIs provided by Tango is still available as needed, and porting becomes something that can easily be done incrementally." you meant porting Tango programs to D2, I'm sorry if I misunderstood. I guess having some Tango modules (e.g. for Streams or XML) for D2 may be useful, until there are an adequate alternatives in Phobos.. but it would most probably harm the acceptance of these alternatives, once they're ready.
Nov 10 2010
On Wed, Nov 10, 2010 at 5:43 PM, Daniel Gibson <metalcaedes gmail.com>wrote:Andrew Wiley schrieb:Well, my assumption was that Phobos 2 was pretty much complete. If more functionality is planned, then that's definitely a higher priority because long term, that's a much better solution than any supplemental library. And yes, D arrays are awesome. The best (solid) evidence I've seen of that was the performance comparison on XML parsing where Tango utterly destroyed every other major library. I can also recall once when I was working on a Java project with the guy that first introduced me to D, and he had a mysterious class called DArray in his Java code with strange methods like "slice." A month or so later, I wound up making a similar class in another project.On Wed, Nov 10, 2010 at 5:27 PM, Daniel Gibson <metalcaedes gmail.com<mailto: metalcaedes gmail.com>> wrote: Andrew Wiley schrieb: One thought here: If Tango is still useful in the D world but there isn't too much enthusiasm about porting it to D2, why not break its functionality (that isn't already in Phobos 2) down into a set of supplemental libraries that can be included as needed? Or just put it in one library and call it "Tango2" or something like that ;) (To allow porting of all kinds of Tango programs, about every Tango class would have to be ported to D2 anyway, so one could just as well do a proper port. Because of druntime it could coexist with Phobos2 - which was really the point of druntime for D2. Unfortunately nobody wanted to do this hitherto). It's also worthy of note that I wasn't addressing the porting of Tango programs specifically. The modular approach does lose there.I thought with "[...] the functionality and APIs provided by Tango is still available as needed, and porting becomes something that can easily be done incrementally." you meant porting Tango programs to D2, I'm sorry if I misunderstood. I guess having some Tango modules (e.g. for Streams or XML) for D2 may be useful, until there are an adequate alternatives in Phobos.. but it would most probably harm the acceptance of these alternatives, once they're ready.
Nov 10 2010
On 11/11/10 2:53 AM, Andrew Wiley wrote:Well, my assumption was that Phobos 2 was pretty much complete. […]Hell, no – there currently isn't even a reliable way to load shared libraries in Phobos 2. std.loader doesn't count, it's almost unusable in practice (ExeModule being a scope class – what the …?!) and nowhere solid, idiomatic D.
Nov 11 2010
klickverbot Wrote:On 11/11/10 2:53 AM, Andrew Wiley wrote:Runtime.loadLibrary() is meant to handle the basics. If there's something it should do that it currently does not, please file a bug report. There should still be a easy to use API in Phobos though. Having never used std.loader, I couldn't say whether it fits the bill or not.Well, my assumption was that Phobos 2 was pretty much complete. […]Hell, no – there currently isn't even a reliable way to load shared libraries in Phobos 2. std.loader doesn't count, it's almost unusable in practice (ExeModule being a scope class – what the …?!) and nowhere solid, idiomatic D.
Nov 11 2010
On Wednesday, November 10, 2010 17:53:08 Andrew Wiley wrote:Well, my assumption was that Phobos 2 was pretty much complete. If more functionality is planned, then that's definitely a higher priority because long term, that's a much better solution than any supplemental library.Goodness, no. Phobos is nowhere near complete. Whole modules such as std.json, std.xml, and std.stream are planned for deprecation in favor of newer implementations (which haven't been done yet). New modules are on the way - such as std.datetime and std.parallelism. std.container has almost nothing in it - SList and Array. It's supposed to get pretty much every container which would be considered fairly standard, but those implementations haven't been completed yet. std.algorithm continues to get tweaked all the time. Phobos is changing all the time. Phobos is way better than it was, but it's far from done. There's plenty of work left to do on it. Eventually, what's there will likely stabilize to the point that even its ABI won't generally change (except presumably for major releases when necessary or when outright new functionality is added), but it's still in quite a bit of flux. The general API isn't even yet stable (though a lot of it doesn't change often). I fully expect that once Phobos is fully mature, it will rival Tango in every respect. But there's still a lot of work to be done on it. - Jonathan M Davis
Nov 10 2010
On Wed, 10 Nov 2010 21:04:08 -0500, Jonathan M Davis <jmdavisProg gmx.com> wrote:std.container has almost nothing in it - SList and Array. It's supposed to get pretty much every container which would be considered fairly standard, but those implementations haven't been completed yet.red black tree is complete, and has been submitted to Andrei for inclusion. -Steve
Nov 11 2010
On Thu, 11 Nov 2010 00:43:33 +0100 Daniel Gibson <metalcaedes gmail.com> wrote:I guess having some Tango modules (e.g. for Streams or XML) for D2 may be==20useful, until there are an adequate alternatives in Phobos.. but it would=most=20probably harm the acceptance of these alternatives, once they're ready.But why not design from the start new Phobos libs with inspiration from kno= wn-to-be-good Tango ones? Denis -- -- -- -- -- -- -- vit esse estrany =E2=98=A3 spir.wikidot.com
Nov 11 2010
spir <denis.spir gmail.com> wrote:But why not design from the start new Phobos libs with inspiration from known-to-be-good Tango ones?We got kinda spooked by the incident with SHOO and std.time. It likely was not as bad as it seemed, but it brought some bad blood. -- Simen
Nov 11 2010
On 11/11/10 09:10, Andrew Wiley wrote:On Wed, Nov 10, 2010 at 4:00 PM, bearophile <bearophileHUGS lycos.com <mailto:bearophileHUGS lycos.com>> wrote: One thought here: If Tango is still useful in the D world but there isn't too much enthusiasm about porting it to D2, why not break its functionality (that isn't already in Phobos 2) down into a set of supplemental libraries that can be included as needed? This would seem to give the best of both worlds because there is no longer a runtime split, the functionality and APIs provided by Tango is still available as needed, and porting becomes something that can easily be done incrementally.Thoughts? Criticisms? Denunciations?You forgot Excommunication :-) btw. interesting results on google for: define: excommunication
Nov 11 2010
On 11/11/10 09:00, bearophile wrote:But in the end OOP was invented to face problems present in larger programs. OO is infrastructure that adds some complexity to reduce complexityin larger programs. It's not wise to add complexity unless it's necessary. So using a class where a free functions is enough may be over-engineering. Well said. Maintain the rage against OOP for *everything*.
Nov 11 2010
Jacob Carlborg wrote:I don't want to increase any separation in the D community and would hope peoeple could agree more. I have no problems what so ever contributing both to Tango and Phobos/druntime. And I'm happy to license any of my code to whatever license would be need for a give D project.This is great news! Thank you!
Nov 10 2010
On 2010-11-10 18:16, Walter Bright wrote:Jacob Carlborg wrote:No no no, thank YOU. You have been very generous in licensing your software. Many of the files in druntime are Public Domain and the rest, including all of Phobos, have the Boost license. You often grant permission to distribute DMD when people ask. Lately gave the permission to put online a repository of DMD including the backend for experimental work with Objective-C. And the last thing you took the initiative and continued the process of integrating GDC as an official part of GCC, giving the copyright of (a fork of) the DMD frontend to FSF. Thank You. -- /Jacob CarlborgI don't want to increase any separation in the D community and would hope peoeple could agree more. I have no problems what so ever contributing both to Tango and Phobos/druntime. And I'm happy to license any of my code to whatever license would be need for a give D project.This is great news! Thank you!
Nov 11 2010
On 11/10/10 12:00 AM, Walter Bright wrote:[…] Producing another incompatible split with D2 will not be of an advantage to anyone, and will just give people reasons not to use D at all.I probably wouldn't get the problem anyway, and I have been using both D1/Tango and, recently, D2/Phobos, and I never understood the reasons for the recent clash in the first place (besides, to me, slightly … childish … behavior on both sides), but: Has anyone actually proposed that? If not, I fear that comments like this just help spreading FUD around the current situation of D, not unlike the (in my eyes) exaggeration of licensing issues…
Nov 10 2010
On 11/10/10 1:38 PM, klickverbot wrote:I probably wouldn't get the problem anyway, and[…]Whoops, s/and/as/ there…
Nov 10 2010
On 2010-11-09 22:45, Andrei Alexandrescu wrote:On 11/9/10 12:33 PM, Jacob Carlborg wrote:Ok, "you" wasn't not a good word in this case and I apologize. What I meant with "you" was "you" as a group consisting of the people working on Phobos and druntime and/or the people that agreed (I'm assuming it was more than one person) we should build a new runtime for D2 based on the Tango runtime. I guess I just should have written "Sean".On 2010-11-09 17:43, Andrei Alexandrescu wrote:This must be some confusion. I didn't fork anything. Besides, it's not useful to fall into the pattern of finger pointing.On 11/9/10 1:42 AM, Jacob Carlborg wrote:There was a good "standard" library that you forked and never added back any changes to it.On 2010-11-08 20:55, Andrei Alexandrescu wrote:It's not difficult to offer e.g. an incompatible C runtime that is slightly better than the standard one. People generally don't do that but instead add libraries on top of that because they understand the advantages of compatibility.It is my perception (though I might be wrong) that the dichotomy has become to some extent political. D2 offers little political incentive to a Tango port. Tango is currently the de facto standard library for D1 as the vast majority of D1 users use D1 and Tango in conjunction, which precludes use of the underpowered Phobos1 (D1's de jure standard library). Due to Sean's work on making druntime independently available, porting to D2 would lower Tango's status from the standard library to one of the libraries that may be used in conjunction with Phobos2.Here's the problem with that: since Sean basically forked the Tango runtime, removed any non DMD specific code and any code for a platform that DMD doesn't support. And stopped contributing to Tango while others improved the Tango runtime we're back at square one with two incompatiable runtimes and the Tango runtime still seems to be better.Yes, I also think that Sean acted in the best interest of the D community.That would be a tenuous point to make in more than one way. Druntime was a major effort to foster runtime standardization made by its author himself and with intentions that I consider most transparent. I'd find it very difficult to concoct a hypothesis in which Sean comes across as not acting in the best interest of the D community.I wouldn't be surprised if Tango chose to turn away from compatibility for the second time (be it theoretical compatibility for now since there is no Tango for D2). The technical reasons are dwindling and became tenuous to argue for, but however weak they are, they could be used to promote a political motivation: a Tango/D2 offering would come again as an either-or proposition for a standard library that precludes usage of Tango2 and Phobos2 together. In my opinion that would be an extremely dangerous gambit.Clearly we don't see this in the same way. I see it like this, because Tango was first it's druntime that chose to turn away from compatibility.That very concern - the best interest of the D community - has unequivocally been the reason for which Sean and other chose to leave petty fights to others and join Phobos, which has no political agenda. That's supposed to tell someone something. You are gladly invited to attempt to convince me otherwise, but the sheer facts at hand would make it difficult for you to build a case. I mean it's possible - for any number of good reasons - to ignore mounting evidence for some time, but at some point the waking up and smelling of the coffee is inevitable.I can agree with most of this and I think it's ridiculous that some Tango contributors don't want to contribute their code to Phobos/druntime. But I don't agree that it's the best interest of the D community that Sean stopped conributing to Tango. That's basically why we have this problem he never folded back any changes to Tango (as far as I know).That's good, I also want to push D forward. It's just that sometimes I'm having a hard time to believe what you're writing above (last section/paragraph) when reading other posts by you. -- /Jacob CarlborgThere's no reason to get up in arms. I didn't blame anything on anyone, just stated my view of the state of affairs. I'm hardly vested emotionally in the matter so I'm not interested in dramatic posturing, assigning blame, or drawing sweeping conclusions. One thing I would be interested in is improving things going forward. I think that will be possible once we all let bygones be bygones and see what we can do to push D forward. AndreiApparently not, since Sean ripped out all that wasn't necessary for Phobos but is necessary for Tango. Why are you blaming everything on Tango all the time?For this to work the Tango team and the druntime contributors/maintainers have collaborate and work together on a runtime.That runtime is druntime. If there is no understanding of that at Tango, that is suicide.
Nov 10 2010
Jacob Carlborg wrote:On 2010-11-09 17:43, Andrei Alexandrescu wrote:Sorry, that is completely false. druntime was created specifically to allow Phobos and Tango to co-exist. At the time, almost all of the code in druntime was written by Sean, and he was leading the Tango runtime development. The expectation was that Tango would continue to use Sean's runtime, it was just in a separate project.I wouldn't be surprised if Tango chose to turn away from compatibility for the second time (be it theoretical compatibility for now since there is no Tango for D2). The technical reasons are dwindling and became tenuous to argue for, but however weak they are, they could be used to promote a political motivation: a Tango/D2 offering would come again as an either-or proposition for a standard library that precludes usage of Tango2 and Phobos2 together. In my opinion that would be an extremely dangerous gambit.Clearly we don't see this in the same way. I see it like this, because Tango was first it's druntime that chose to turn away from compatibility.Sean took all the code he had written. The other minor contributors did not yet give permission for their code to be used, so of course it could not be included.Apparently not, since Sean ripped out all that wasn't necessary for Phobos but is necessary for Tango. Why are you blaming everything on Tango all the time?For this to work the Tango team and the druntime contributors/maintainers have collaborate and work together on a runtime.That runtime is druntime. If there is no understanding of that at Tango, that is suicide.
Nov 09 2010
Sean took all the code he had written. The other minor contributors did not yet give permission for their code to be used, so of course it could not be included.This is the single big thing on this tango vs phobos issue i never understand. What are the reasons/motives behind this other than stupid politics? Why wouldn't they give permission? -- Using Opera's revolutionary email client: http://www.opera.com/mail/
Nov 09 2010
so Wrote:Well, I think some people could not be contacted. Otherwise it is just stupid politics, and it is their code.Sean took all the code he had written. The other minor contributors did not yet give permission for their code to be used, so of course it could not be included.This is the single big thing on this tango vs phobos issue i never understand. What are the reasons/motives behind this other than stupid politics? Why wouldn't they give permission? -- Using Opera's revolutionary email client: http://www.opera.com/mail/
Nov 09 2010
so wrote:Nobody knows, apart from the people involved. They've made no statement (not even privately).Sean took all the code he had written. The other minor contributors did not yet give permission for their code to be used, so of course it could not be included.This is the single big thing on this tango vs phobos issue i never understand. What are the reasons/motives behind this other than stupid politics? Why wouldn't they give permission?
Nov 10 2010
As a long time lurker I witnessed the last, rather infamous event when this topic was brought up. The way I see it the situation has only deteriorated further since then. There are still resources spent on managing the "political" situation, to avoid license infringement, supporting two libraries, duplicating code because of license issues, not to mention the time spent on just discussing the situation. Since the developers of the "alternative" standard library obviously have ulterior motives, the only solution is to cut them out of the D ecosystem. This can be easily achieved if Walter stopped showing this compassionate attitude toward them, and started to officially "not recommend" the use of that library, in any public forum where the issue is brought up. After a year of this their high attitude would probably sink to the level where is belongs. This would not undo the damage they had already done, but at least it would neutralize any threat they represent to D2.
Nov 10 2010
lurker #5 schrieb:As a long time lurker I witnessed the last, rather infamous event when this topic was brought up. The way I see it the situation has only deteriorated further since then. There are still resources spent on managing the "political" situation, to avoid license infringement, supporting two libraries, duplicating code because of license issues, not to mention the time spent on just discussing the situation. Since the developers of the "alternative" standard library obviously have ulterior motives, the only solution is to cut them out of the D ecosystem. This can be easily achieved if Walter stopped showing this compassionate attitude toward them, and started to officially "not recommend" the use of that library, in any public forum where the issue is brought up. After a year of this their high attitude would probably sink to the level where is belongs. This would not undo the damage they had already done, but at least it would neutralize any threat they represent to D2.Yeah right, that's gonna help. Walter acting like a douche will certainly attract people to use D2.
Nov 10 2010
On 2010-11-09 23:04, Don wrote:Jacob Carlborg wrote:Of course that would be the preferred way, there should have been some kind of agreement for this (maybe there was but never fulfilled?) But you also have to look at it from Tangos point of view. Why would Tango drop support for anything that isn't DMD 32bit? Or should Tango keep half of it's runtime in it's own repository and for the other half use druntime.On 2010-11-09 17:43, Andrei Alexandrescu wrote:Sorry, that is completely false. druntime was created specifically to allow Phobos and Tango to co-exist. At the time, almost all of the code in druntime was written by Sean, and he was leading the Tango runtime development. The expectation was that Tango would continue to use Sean's runtime, it was just in a separate project.I wouldn't be surprised if Tango chose to turn away from compatibility for the second time (be it theoretical compatibility for now since there is no Tango for D2). The technical reasons are dwindling and became tenuous to argue for, but however weak they are, they could be used to promote a political motivation: a Tango/D2 offering would come again as an either-or proposition for a standard library that precludes usage of Tango2 and Phobos2 together. In my opinion that would be an extremely dangerous gambit.Clearly we don't see this in the same way. I see it like this, because Tango was first it's druntime that chose to turn away from compatibility.I really think it's a shame they couldn't/wanted to give permission for their code to be used. -- /Jacob CarlborgSean took all the code he had written. The other minor contributors did not yet give permission for their code to be used, so of course it could not be included.Apparently not, since Sean ripped out all that wasn't necessary for Phobos but is necessary for Tango. Why are you blaming everything on Tango all the time?For this to work the Tango team and the druntime contributors/maintainers have collaborate and work together on a runtime.That runtime is druntime. If there is no understanding of that at Tango, that is suicide.
Nov 10 2010
On Wed, 10 Nov 2010 11:51:19 +0100Jacob> Of course that would be the preferred way, there should have Jacob> been some kind of agreement for this (maybe there was but never Jacob> fulfilled?) But you also have to look at it from Tangos point of Jacob> view. Why would Tango drop support for anything that isn't DMD Jacob> 32bit? Or should Tango keep half of it's runtime in it's own Jacob> repository and for the other half use druntime. It is very disappointing to see how many people in D community are (still) behaving like a little children pointing fingers at each other saying "You did that to me!!" I am probably more happy just arriving here recently and I can understand that some mistakes were done and (some) people may feel hurt... However, I'm sure that D community is not the only place in the universe where people might get hurt, but if you cannot go over it, it's shame... Forgive, stay and contribute to push D(2) forward. Otherwise, if the above is not possible, stop whining and find a better language/community to contribute to. (Recently I did not agree with some steps done in one CMS community, complained, became banned from the forums..andn ow I am enjoying a new CMS community without burning too much brain cycles over the past experienc= e.) This constant crying over the spilled milk does not make sense for adult people. The time won't be brought back. Let's learn the lesson and move forward. Take it or leave it... Sincerely, Gour --=20 Gour | Hlapicina, Croatia | GPG key: CDBF17CA ----------------------------------------------------------------"Jacob" =3D=3D Jacob Carlborg wrote:
Nov 10 2010
On Wed, 10 Nov 2010 12:55:01 +0100, Gour wrote:On Wed, 10 Nov 2010 11:51:19 +0100These words I strongly agree with ;) If only deeds don't require imprisonment there's always a place for agreement or peaceful farewell. Cheers Piotrek[...] However, I'm sure that D community is not the only place in the universe where people might get hurt, but if you cannot go over it, it's shame... Forgive, stay and contribute to push D(2) forward. Otherwise, if the above is not possible, stop whining and find a better language/community to contribute to. [...] Sincerely, Gour -- Gour | Hlapicina, Croatia | GPG key: CDBF17CA ----------------------------------------------------------------"Jacob" == Jacob Carlborg wrote:
Nov 11 2010
On Wed, 10 Nov 2010 05:51:19 -0500, Jacob Carlborg <doob me.com> wrote:Of course that would be the preferred way, there should have been some kind of agreement for this (maybe there was but never fulfilled?) But you also have to look at it from Tangos point of view. Why would Tango drop support for anything that isn't DMD 32bit? Or should Tango keep half of it's runtime in it's own repository and for the other half use druntime.I think this is the whole point of Jacob's that is being missed -- Tango supports LDC, GDC, and DMD, and druntime supports only DMD. When druntime first was developed, it was a clone of Tango's runtime, but only with dmd support. I can't remember why support for the other compilers was removed, but I don't think it was malicious in nature, I think it was a point of maintenance or lack of ownership. I would expect that if someone wanted to support druntime for Tango (BTW, the D1 branch is still in druntime, just 2 years old) with LDC and GDC support, I don't think Sean would object. But I can't speak for Sean... But this aside, there was never any point for Tango to adopt druntime -- phobos 1 was not going to adopt it, and Tango is not going to be ported to D2. Compatibility is an academic pipe dream that will never occur. -Steve
Nov 10 2010
On Sat, 06 Nov 2010 23:11:59 +0000, bioinfornatics wrote:hello, I have a question (i would like understand), they are many important people of D community who do not want go to D2, why ? thanks for answer- D2 trades complexity for more features - D2 has a lot of compiler bugs
Nov 07 2010
On 7-nov-10, at 13:05, Moritz Warning wrote:On Sat, 06 Nov 2010 23:11:59 +0000, bioinfornatics wrote:Personally I am not "against" D2, in fact there are several features that I would like to use (like real closures and template constraints), some that could be useful, but are not critical (const/ pure), but for me D1 works better. It is just about wanting to do a project *now*, D1 offers more guarantees, like several working compilers, good support for 64 bit, relatively stable libraries (tango). I know that when looking for a new language one wants to go for the latest and greatest, but I think that a largish project has more chances of having success in D1 at the moment. It does not mean that it is not possible to use D2 successfully, others here are doing that, and with the recent focus of W & co on stabilizing the toolchain and general interest in D2 the situation might change, but it is not there yet. Fawzihello, I have a question (i would like understand), they are many important people of D community who do not want go to D2, why ? thanks for answer- D2 trades complexity for more features - D2 has a lot of compiler bugs
Nov 07 2010
On 06/11/2010 23:11, bioinfornatics wrote:hello, I have a question (i would like understand), they are many important people of D community who do not want go to D2, why ? thanks for answerSick of waiting for D1 to be finished. So many differences between D1 and D2 now that it's a nightmare making libraries compatible with both. Stewart.
Nov 07 2010
On 07/11/2010 20:48, Stewart Gordon wrote:On 06/11/2010 23:11, bioinfornatics wrote:Did you mean D2, in "Sick of waiting for D1 to be finished." ? -- Bruno Medeiros - Software Engineerhello, I have a question (i would like understand), they are many important people of D community who do not want go to D2, why ? thanks for answerSick of waiting for D1 to be finished. So many differences between D1 and D2 now that it's a nightmare making libraries compatible with both. Stewart.
Nov 29 2010
On 29/11/2010 18:30, Bruno Medeiros wrote:On 07/11/2010 20:48, Stewart Gordon wrote:I don't know what you mean.... Another possible contributing factor: a feeling that D is losing its elegance. Stewart.On 06/11/2010 23:11, bioinfornatics wrote:Did you mean D2, in "Sick of waiting for D1 to be finished." ?hello, I have a question (i would like understand), they are many important people of D community who do not want go to D2, why ? thanks for answerSick of waiting for D1 to be finished. So many differences between D1 and D2 now that it's a nightmare making libraries compatible with both. Stewart.
Nov 30 2010
On 30/11/2010 14:08, Stewart Gordon wrote:On 29/11/2010 18:30, Bruno Medeiros wrote:I meant: did you mean "Sick of waiting for D2 to be finished." instead of "Sick of waiting for D1 to be finished." ? Otherwise I don't quite get it, D1 is quite stable (as a language), it's D2 that is getting a lot of changes. -- Bruno Medeiros - Software EngineerOn 07/11/2010 20:48, Stewart Gordon wrote:I don't know what you mean.... Another possible contributing factor: a feeling that D is losing its elegance. Stewart.On 06/11/2010 23:11, bioinfornatics wrote:Did you mean D2, in "Sick of waiting for D1 to be finished." ?hello, I have a question (i would like understand), they are many important people of D community who do not want go to D2, why ? thanks for answerSick of waiting for D1 to be finished. So many differences between D1 and D2 now that it's a nightmare making libraries compatible with both. Stewart.
Nov 30 2010
On 30/11/2010 14:13, Bruno Medeiros wrote:On 30/11/2010 14:08, Stewart Gordon wrote:<snip>On 29/11/2010 18:30, Bruno Medeiros wrote:<snip>Did you mean D2, in "Sick of waiting for D1 to be finished." ?I don't know what you mean....I meant: did you mean "Sick of waiting for D2 to be finished." instead of "Sick of waiting for D1 to be finished." ? Otherwise I don't quite get it, D1 is quite stable (as a language), it's D2 that is getting a lot of changes.I guess it was really a question of why you meant it rather than what you meant. D1 may be "quite stable", but that's very different from "finished". http://www.digitalmars.com/d/archives/digitalmars/D/When_will_D1_be_finished_89749.html http://d.puremagic.com/issues/show_bug.cgi?id=677 The point is that D1 should have been finished ages ago. Development of D2 has detracted from this, and so people are fighting against this by not supporting the D2 project. Stewart.
Nov 30 2010
D1 may be "quite stable", but that's very different from "finished". http://www.digitalmars.com/d/archives/digitalmars/D/When_will_D1_be_finished_89749.html http://d.puremagic.com/issues/show_bug.cgi?id=677What is a "finished" language, is it something like "that is it guys, we can't advance any further in ###"?The point is that D1 should have been finished ages ago. Development of D2 has detracted from this, and so people are fighting against this by not supporting the D2 project.I believe their reasons are political. If their reason is really D1 being not finished then we are better off with them. "Quite stable" and "stable" is the state we should be after, am i wrong? Thank you. -- Using Opera's revolutionary email client: http://www.opera.com/mail/
Dec 01 2010
On 01/12/2010 12:17, so wrote:<snip> In this context, I mean it being a completely and consistently defined language that third parties can implement. Stewart.D1 may be "quite stable", but that's very different from "finished". http://www.digitalmars.com/d/archives/digitalmars/D/When_will_D1_be_finished_89749.html http://d.puremagic.com/issues/show_bug.cgi?id=677What is a "finished" language, is it something like "that is it guys, we can't advance any further in ###"?
Dec 01 2010
On 30/11/2010 19:02, Stewart Gordon wrote:On 30/11/2010 14:13, Bruno Medeiros wrote:Given what you meant by finished (consistently defined language, etc.), then yeah, D1 isn't really finished. But what do you mean "D1 should have been finished ages ago"? As far as I know, Walter never expressed the intention of making D1 "finished", that is, to flesh out and formalize the language spec. Rather, the creation of D2 was to make D1 "stable" (to not introduce backwards incompatible changes to the language, and to reduce bugs in the D1 compiler). If you mean "should" as in, that should have been the intention, well, that's arguable. If one wanted at that point for D to stop evolving (in a non backwards-compatible way), then yes, you'd want the main focus of attention to be D1, and in finishing it. But that wasn't the desire with many (probably most) in the community, including Walter himself, so D2 became the main focus of development. And with this decision, fleshing out the D1 spec was never going to be important (as in, important enough to dedicate time to it in a significant way). -- Bruno Medeiros - Software EngineerOn 30/11/2010 14:08, Stewart Gordon wrote:<snip>On 29/11/2010 18:30, Bruno Medeiros wrote:<snip>Did you mean D2, in "Sick of waiting for D1 to be finished." ?I don't know what you mean....I meant: did you mean "Sick of waiting for D2 to be finished." instead of "Sick of waiting for D1 to be finished." ? Otherwise I don't quite get it, D1 is quite stable (as a language), it's D2 that is getting a lot of changes.I guess it was really a question of why you meant it rather than what you meant. D1 may be "quite stable", but that's very different from "finished". http://www.digitalmars.com/d/archives/digitalmars/D/When_will_D1_be_finished_89749.html http://d.puremagic.com/issues/show_bug.cgi?id=677 The point is that D1 should have been finished ages ago. Development of D2 has detracted from this, and so people are fighting against this by not supporting the D2 project. Stewart.
Dec 02 2010
Thu, 02 Dec 2010 13:21:57 +0000, Bruno Medeiros wrote:On 30/11/2010 19:02, Stewart Gordon wrote:When_will_D1_be_finished_89749.htmlOn 30/11/2010 14:13, Bruno Medeiros wrote:On 30/11/2010 14:08, Stewart Gordon wrote:<snip>On 29/11/2010 18:30, Bruno Medeiros wrote:<snip>Did you mean D2, in "Sick of waiting for D1 to be finished." ?I don't know what you mean....I meant: did you mean "Sick of waiting for D2 to be finished." instead of "Sick of waiting for D1 to be finished." ? Otherwise I don't quite get it, D1 is quite stable (as a language), it's D2 that is getting a lot of changes.I guess it was really a question of why you meant it rather than what you meant. D1 may be "quite stable", but that's very different from "finished". http://www.digitalmars.com/d/archives/digitalmars/D/Even if Walter refused to work on D1 anymore, some believe that the language should be finished in any case. This means that the community continues the work (writing specs, developing build tools etc.) Why is this surprising? This has happened with almost all languages. It's open source, you're free to work on it. That's the price you pay. You can't force people to work on D2 instead.http://d.puremagic.com/issues/show_bug.cgi?id=677 The point is that D1 should have been finished ages ago. Development of D2 has detracted from this, and so people are fighting against this by not supporting the D2 project. Stewart.Given what you meant by finished (consistently defined language, etc.), then yeah, D1 isn't really finished. But what do you mean "D1 should have been finished ages ago"? As far as I know, Walter never expressed the intention of making D1 "finished", that is, to flesh out and formalize the language spec. Rather, the creation of D2 was to make D1 "stable" (to not introduce backwards incompatible changes to the language, and to reduce bugs in the D1 compiler). If you mean "should" as in, that should have been the intention, well, that's arguable. If one wanted at that point for D to stop evolving (in a non backwards-compatible way), then yes, you'd want the main focus of attention to be D1, and in finishing it. But that wasn't the desire with many (probably most) in the community, including Walter himself, so D2 became the main focus of development. And with this decision, fleshing out the D1 spec was never going to be important (as in, important enough to dedicate time to it in a significant way).
Dec 02 2010
On 11/6/2010 7:11 PM, bioinfornatics wrote:hello, I have a question (i would like understand), they are many important people of D community who do not want go to D2, why ? thanks for answerD1+Tango is working well enough for my project (Yage), but I like the direction of D2. I figure the longer I wait, the more stable it will become and the easier my job will be.
Nov 07 2010
D1+Tango is working well enough for my project (Yage), but I like the direction of D2. I figure the longer I wait, the more stable it will become and the easier my job will be.Pretty much the same here, except I use D1 + Phobos. To me there is little doubt that D2 is better.
Nov 09 2010
ponce Wrote:Same thing here. It has all I need so far. Tried to switch to D2 couple months ago as a test, but it was painfull and unsucessfull attempt, mostly because of bugs.D1+Tango is working well enough for my project (Yage), but I like the direction of D2. I figure the longer I wait, the more stable it will become and the easier my job will be.Pretty much the same here, except I use D1 + Phobos. To me there is little doubt that D2 is better.
Nov 09 2010
thank you oldtimer Wrote:oldtimer Wrote: Is it a coincidence that all the complaints seem to come from a single person? Let's take a look at my killfile: ankh, anonymous troll, another lurker, anton smith, arnoldsschwartz, bjarne yesterday, blaise pascal, cal, chmod+x, crap, darth tango, domino, ellis peters, foobar, gareth charnock, gcc-lurker, girlprogrammer, godworshipper, gryphon, her3tic, jameskan, jane doe, jarett billingsley, jer, languagefan, larry coder, lars ivar douchesund, levenshtein, lurker, nobody, oldtimer, pipe dream, pointing hand, retard, retard++, retarded.clear(), scott, steveh, superdan, user, wah, william t. fnk, yoda, type<erasure>, uriel (reddit), eternium (reddit), iliekcaeks (reddit), feepingcreature (reddit), parametricpoly (reddit), nfxjfg (bugzilla), and many more!Wow. I must be INSANELY productive. Maybe you should listen to me.
Nov 10 2010
== Quote from FeepingCreature (default_357-line yahoo.de)'s articlethank you oldtimer Wrote:single person? Let's take a look at my killfile:oldtimer Wrote: Is it a coincidence that all the complaints seem to come from aarnoldsschwartz, bjarne yesterday, blaise pascal, cal, chmod+x, crap, darth tango, domino, ellis peters, foobar, gareth charnock, gcc-lurker, girlprogrammer, godworshipper, gryphon, her3tic, jameskan, jane doe, jarett billingsley, jer, languagefan, larry coder, lars ivar douchesund, levenshtein, lurker, nobody, oldtimer, pipe dream, pointing hand, retard, retard++, retarded.clear(), scott, steveh, superdan, user, wah, william t. fnk, yoda, type<erasure>, uriel (reddit), eternium (reddit), iliekcaeks (reddit), feepingcreature (reddit), parametricpoly (reddit), nfxjfg (bugzilla), and many more!ankh, anonymous troll, another lurker, anton smith,Or ME!Wow. I must be INSANELY productive. Maybe you should listen to me.
Nov 11 2010
Jacob Carlborg Wrote:On 2010-11-09 23:04, Don wrote:I maintained a D1 branch of druntime for ages thinking that it might be a good transition point for Tango, but no one ever used it. I was also very careful to avoid creating any incompatibilities with the Tango runtime for quite a while, but finally had to choose between letting the library stagnate in anticipation of an event that would likely never happen and moving forward. I do still try to avoid changing existing user-facing code though. Also, if you compare the two now, I think you'll find that the Tango runtime has diverged from the original design far more than druntime, so there's little apparent interest there in facilitating a merge. Either way, as there's been little apparent effort in porting Tango to D2, this whole discussion is moot.Jacob Carlborg wrote:Of course that would be the preferred way, there should have been some kind of agreement for this (maybe there was but never fulfilled?) But you also have to look at it from Tangos point of view. Why would Tango drop support for anything that isn't DMD 32bit? Or should Tango keep half of it's runtime in it's own repository and for the other half use druntime.On 2010-11-09 17:43, Andrei Alexandrescu wrote:Sorry, that is completely false. druntime was created specifically to allow Phobos and Tango to co-exist. At the time, almost all of the code in druntime was written by Sean, and he was leading the Tango runtime development. The expectation was that Tango would continue to use Sean's runtime, it was just in a separate project.I wouldn't be surprised if Tango chose to turn away from compatibility for the second time (be it theoretical compatibility for now since there is no Tango for D2). The technical reasons are dwindling and became tenuous to argue for, but however weak they are, they could be used to promote a political motivation: a Tango/D2 offering would come again as an either-or proposition for a standard library that precludes usage of Tango2 and Phobos2 together. In my opinion that would be an extremely dangerous gambit.Clearly we don't see this in the same way. I see it like this, because Tango was first it's druntime that chose to turn away from compatibility.There was another simpler reason as well, which was that I didn't want to speculatively maintain code for various compilers or whatever just in case they decided to use druntime one day. It's far less effort to simply add whatever's needed when that day comes. Also, I do still feel that the druntime SVN shouldn't have to be the repository used for every compiler runtime or garbage collector implementation. That was necessary in Tango because Tango was an alternative library, so for any hope of Tango being used we had to do all the work ourselves. It's far from being an optimal workflow however.I really think it's a shame they couldn't/wanted to give permission for their code to be used.Sean took all the code he had written. The other minor contributors did not yet give permission for their code to be used, so of course it could not be included.Apparently not, since Sean ripped out all that wasn't necessary for Phobos but is necessary for Tango. Why are you blaming everything on Tango all the time?For this to work the Tango team and the druntime contributors/maintainers have collaborate and work together on a runtime.That runtime is druntime. If there is no understanding of that at Tango, that is suicide.
Nov 10 2010
On 2010-11-10 22:26, Sean Kelly wrote:Jacob Carlborg Wrote:I can really understand that this can be very frustrating. I don't have any answers on why Tango didn't adopt druntime. Although as I said earlier I can think some reasons like no support for other compilers.On 2010-11-09 23:04, Don wrote:I maintained a D1 branch of druntime for ages thinking that it might be a good transition point for Tango, but no one ever used it. I was also very careful to avoid creating any incompatibilities with the Tango runtime for quite a while, but finally had to choose between letting the library stagnate in anticipation of an event that would likely never happen and moving forward. I do still try to avoid changing existing user-facing code though. Also, if you compare the two now, I think you'll find that the Tango runtime has diverged from the original design far more than druntime, so there's little apparent interest there in facilitating a merge. Either way, as there's been little apparent effort in porting Tango to D2, this whole discussion is moot.Jacob Carlborg wrote:Of course that would be the preferred way, there should have been some kind of agreement for this (maybe there was but never fulfilled?) But you also have to look at it from Tangos point of view. Why would Tango drop support for anything that isn't DMD 32bit? Or should Tango keep half of it's runtime in it's own repository and for the other half use druntime.On 2010-11-09 17:43, Andrei Alexandrescu wrote:Sorry, that is completely false. druntime was created specifically to allow Phobos and Tango to co-exist. At the time, almost all of the code in druntime was written by Sean, and he was leading the Tango runtime development. The expectation was that Tango would continue to use Sean's runtime, it was just in a separate project.I wouldn't be surprised if Tango chose to turn away from compatibility for the second time (be it theoretical compatibility for now since there is no Tango for D2). The technical reasons are dwindling and became tenuous to argue for, but however weak they are, they could be used to promote a political motivation: a Tango/D2 offering would come again as an either-or proposition for a standard library that precludes usage of Tango2 and Phobos2 together. In my opinion that would be an extremely dangerous gambit.Clearly we don't see this in the same way. I see it like this, because Tango was first it's druntime that chose to turn away from compatibility.I you don't think that support for other compilers should be in druntime what do you suggest? -- /Jacob CarlborgThere was another simpler reason as well, which was that I didn't want to speculatively maintain code for various compilers or whatever just in case they decided to use druntime one day. It's far less effort to simply add whatever's needed when that day comes. Also, I do still feel that the druntime SVN shouldn't have to be the repository used for every compiler runtime or garbage collector implementation. That was necessary in Tango because Tango was an alternative library, so for any hope of Tango being used we had to do all the work ourselves. It's far from being an optimal workflow however.I really think it's a shame they couldn't/wanted to give permission for their code to be used.Sean took all the code he had written. The other minor contributors did not yet give permission for their code to be used, so of course it could not be included.Apparently not, since Sean ripped out all that wasn't necessary for Phobos but is necessary for Tango. Why are you blaming everything on Tango all the time?For this to work the Tango team and the druntime contributors/maintainers have collaborate and work together on a runtime.That runtime is druntime. If there is no understanding of that at Tango, that is suicide.
Nov 11 2010
Jacob Carlborg schrieb:On 2010-11-10 22:26, Sean Kelly wrote:That every compiler ships it's own version of druntime? If druntime needs to be adjusted for any compiler anyway, the compiler-devs can do that themselves (probably they know better how to do that, anyway). This has the merit the compiler devs can make changes on the compiler without being afraid of breaking druntime - because they can adjust their version of druntime accordingly. Cheers, - DanielThere was another simpler reason as well, which was that I didn't want to speculatively maintain code for various compilers or whatever just in case they decided to use druntime one day. It's far less effort to simply add whatever's needed when that day comes. Also, I do still feel that the druntime SVN shouldn't have to be the repository used for every compiler runtime or garbage collector implementation. That was necessary in Tango because Tango was an alternative library, so for any hope of Tango being used we had to do all the work ourselves. It's far from being an optimal workflow however.I you don't think that support for other compilers should be in druntime what do you suggest?
Nov 11 2010
On Wed, 10 Nov 2010 16:26:52 -0500, Sean Kelly wrote:Also, I do still feel that the druntime SVN shouldn't have to be the repository used for every compiler runtime or garbage collector implementation.I am attempting to write a compiler in D2 (github.com/bhelyer/SDC), and I can't help but feel that rewriting druntime, or picking out the relatively benign parts would be a difficult, bug filled task. I don't see a realistic alternative to druntime compatibility. I also feel that having all implementations share the GC implementation means that improvements there will improve everywhere else. If I weren't to use druntime's GC, then I would use the Boehm collector, but I feel using druntime is more beneficial than not.
Nov 11 2010
Boris Wang Wrote:First, forgive my poor english. we all known , Walter good at compiler writing, but not good at language design and development management , if can't change this, just be silent. I think, on language desgin, wisdom and leadership are more more important than technology. Ether continue working on D, or make D like clone, if we can't do it like APPLE, just give up ASAP, because we can only save us by our selves. . . 2010/11/10 Boris Wang <kona.ming gmail.com>Is printing Chinese font in the console under windows now workable?If yes,which function under which module should I use?If not,when is it supposed to be? Is it workable writing a DLL under windows in D2 now? I read from previous thread that std.xml is supposed to be replace by another better one,when? In TDPL,chap 01, 1.import std.stdio, std.string; 2.void main() 3.{ 4. uint[string] dictionary; 5. foreach (line; stdin.byLine()) 6. { 7. // Break sentence into words 8. // Add each word in the sentence to the vocabulary 9. foreach (word; splitter(strip(line))) 10. { 11. if (word in dictionary) continue; // Nothing to do 12. auto newlD = dictionary.length; 13. dictionary[word] = newlD; 14. writeln(newlD, word); 15. } 16. } 17.} The above code is supposed to print each word one time,but after testing by myself and my friends on different machine both under windows,it does not.It prints some of the words several times,but some are ok.One of my friend suggested to modify the code as below: 1.foreach(line;stdin.byLine()) 2.{ 3. line = line.dup; // <-------------------------- here 4. foreach(word;splitter(strip(line))) 5. { 6. if(word in dictionary) continue; 7. auto newID=dictionary.length; 8. dictionary[word]=newID; 9. writeln(newID,'\t',word); 10. } 11.} Still it behaves different on different machine under windows.
Nov 10 2010
On 11/10/10 10:12 PM, Sam Hu wrote:Boris Wang Wrote:I am ashamed to reply that this is due to a major dmd bug that is not yet fixed: http://d.puremagic.com/issues/show_bug.cgi?id=2954 Apologies. I will do what I can to have this fixed asap. AndreiFirst, forgive my poor english. we all known , Walter good at compiler writing, but not good at language design and development management , if can't change this, just be silent. I think, on language desgin, wisdom and leadership are more more important than technology. Ether continue working on D, or make D like clone, if we can't do it like APPLE, just give up ASAP, because we can only save us by our selves. . . 2010/11/10 Boris Wang<kona.ming gmail.com>Is printing Chinese font in the console under windows now workable?If yes,which function under which module should I use?If not,when is it supposed to be? Is it workable writing a DLL under windows in D2 now? I read from previous thread that std.xml is supposed to be replace by another better one,when? In TDPL,chap 01, 1.import std.stdio, std.string; 2.void main() 3.{ 4. uint[string] dictionary; 5. foreach (line; stdin.byLine()) 6. { 7. // Break sentence into words 8. // Add each word in the sentence to the vocabulary 9. foreach (word; splitter(strip(line))) 10. { 11. if (word in dictionary) continue; // Nothing to do 12. auto newlD = dictionary.length; 13. dictionary[word] = newlD; 14. writeln(newlD, word); 15. } 16. } 17.} The above code is supposed to print each word one time,but after testing by myself and my friends on different machine both under windows,it does not.It prints some of the words several times,but some are ok.One of my friend suggested to modify the code as below: 1.foreach(line;stdin.byLine()) 2.{ 3. line = line.dup; //<-------------------------- here 4. foreach(word;splitter(strip(line))) 5. { 6. if(word in dictionary) continue; 7. auto newID=dictionary.length; 8. dictionary[word]=newID; 9. writeln(newID,'\t',word); 10. } 11.} Still it behaves different on different machine under windows.
Nov 11 2010
Jacob Carlborg Wrote:I you don't think that support for other compilers should be in druntime what do you suggest?They should be in their own SVN repository somewhere. I think one could even argue that the DMD compiler runtime (src/rt in druntime) should be maintained separately. It's quite convenient to have the druntime repository produce a fully functional runtime however, and what better compiler to support than the reference compiler? To be clear, I'm not vehemently opposed to other compiler runtimes living in the druntime repository. It's simply proven to be a bad model. In Tango, when a new DMD version was released I merged changes into the Tango runtime (a task which wouldn't admittedly exist with druntime), and then I speculatively made the same changes to the other runtimes as well. In places where compiler support was needed, I left the new code versioned out with a comment to deal with it when that compiler was updated. All in all, it meant a lot of work for me, and it was difficult to maintain a fully functional source tree. I know the alternative is that each compiler team may have to sync with changes to druntime (at least core/* and gc/*), but this is a rather small and stable set of modules compared to the D1 Phobos arrangement. From a functional perspective, the other issue is that the compiler doesn't like something having a module name of "rt.blah" but living in ldcrt/blah.d. This is a problem with maintaining multiple GCs as well. Symlinks are an option on Posix, but as far as I know that isn't possible on Windows, so files would have to be copied around during the build process depending on which compiler or GC was selected.
Nov 11 2010
On Thu, 11 Nov 2010 21:28:47 +0200, Sean Kelly <sean invisibleduck.org> wrote:They should be in their own SVN repository somewhere.Nitpicking and off-topic, but probably not SVN - a DVCS would make maintaining a fork much easier.Symlinks are an option on Posix, but as far as I know that isn't possible on Windows,NTFS has had junction points for quite a while now, which behave almost exactly like directory symlinks. The last OS to not support them was Windows XP, if it was installed to a FAT32 partition. -- Best regards, Vladimir mailto:vladimir thecybershadow.net
Nov 11 2010
On 2010-11-11 20:28, Sean Kelly wrote:Jacob Carlborg Wrote:Ok, thanks for explaining. -- /Jacob CarlborgI you don't think that support for other compilers should be in druntime what do you suggest?They should be in their own SVN repository somewhere. I think one could even argue that the DMD compiler runtime (src/rt in druntime) should be maintained separately. It's quite convenient to have the druntime repository produce a fully functional runtime however, and what better compiler to support than the reference compiler? To be clear, I'm not vehemently opposed to other compiler runtimes living in the druntime repository. It's simply proven to be a bad model. In Tango, when a new DMD version was released I merged changes into the Tango runtime (a task which wouldn't admittedly exist with druntime), and then I speculatively made the same changes to the other runtimes as well. In places where compiler support was needed, I left the new code versioned out with a comment to deal with it when that compiler was updated. All in all, it meant a lot of work for me, and it was difficult to maintain a fully functional source tree. I know the alternative is that each compiler team may have to sync with changes to druntime (at least core/* and gc/*), but this is a rather small and stable set of modules compared to the D1 Phobos arrangement. From a functional perspective, the other issue is that the compiler doesn't like something having a module name of "rt.blah" but living in ldcrt/blah.d. This is a problem with maintaining multiple GCs as well. Symlinks are an option on Posix, but as far as I know that isn't possible on Windows, so files would have to be copied around during the build process depending on which compiler or GC was selected.
Nov 12 2010
Bernard Helyer Wrote:On Wed, 10 Nov 2010 16:26:52 -0500, Sean Kelly wrote:I absolutely believe that druntime should be used by D2 compilers. The only issue is staying in sync with the main druntime repository. Perhaps a different VCS would make this easier though. Maybe git? Functionally, all you'd need to do is replace src/object_.d and src/rt/* with your own code, assuming that you didn't want to use the DMD stuff as-is.Also, I do still feel that the druntime SVN shouldn't have to be the repository used for every compiler runtime or garbage collector implementation.I am attempting to write a compiler in D2 (github.com/bhelyer/SDC), and I can't help but feel that rewriting druntime, or picking out the relatively benign parts would be a difficult, bug filled task. I don't see a realistic alternative to druntime compatibility. I also feel that having all implementations share the GC implementation means that improvements there will improve everywhere else. If I weren't to use druntime's GC, then I would use the Boehm collector, but I feel using druntime is more beneficial than not.
Nov 11 2010
On Thu, 2010-11-11 at 14:34 -0500, Sean Kelly wrote: [ . . ]I absolutely believe that druntime should be used by D2 compilers. The only issue is staying in sync with the main druntime repository. Perhaps a different VCS would make this easier though. Maybe git? Functionally, all you'd need to do is replace src/object_.d and src/rt/* with your own code, assuming that you didn't want to use the DMD stuff as-is.Using Git is certainly better than using Subversion, but Bazaar and Mercurial are the tools of choice for the discerning developer. --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel russel.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Nov 11 2010
git is better for managing branch
Nov 11 2010
On 11/11/10 8:52 PM, Russel Winder wrote:Using Git is certainly better than using Subversion, but Bazaar and Mercurial are the tools of choice for the discerning developer.Oh, so you really want to start that discussion/flamewar again? -.- As you noted yourself in the thread over at d.D.announce, »[…] no-one to date has objective data so all statements on this are opinion«, so could we please leave it at that, at least for the time being?
Nov 11 2010
Andrei Alexandrescu Wrote:Thank you so much for your time to reading my post! So many times I felt D is so great,so beautiful and decided to focus on it,so many times I encountered problems,some weird,like this sample;some are known issue but it seems never ever got attention,like Chinese font print to console,and some others ,which make me feel bad,and can not go on the learning. Hope apprent issues get fixed asap,a workable workspace is available very soon.The above code is supposed to print each word one time,but after testing by myself and my friends on different machine both under windows,it does not.It prints some of the words several times,but some are ok.One of my friend suggested to modify the code as below:I am ashamed to reply that this is due to a major dmd bug that is not yet fixed: http://d.puremagic.com/issues/show_bug.cgi?id=2954 Apologies. I will do what I can to have this fixed asap. AndreiStill it behaves different on different machine under windows.
Nov 11 2010
On 11/11/10 5:17 PM, Sam Hu wrote:Andrei Alexandrescu Wrote:Walter fixed this bug today: http://www.dsource.org/projects/dmd/changeset/749 If it's not urgent, you may want to wait for the next release. AndreiThank you so much for your time to reading my post! So many times I felt D is so great,so beautiful and decided to focus on it,so many times I encountered problems,some weird,like this sample;some are known issue but it seems never ever got attention,like Chinese font print to console,and some others ,which make me feel bad,and can not go on the learning. Hope apprent issues get fixed asap,a workable workspace is available very soon.The above code is supposed to print each word one time,but after testing by myself and my friends on different machine both under windows,it does not.It prints some of the words several times,but some are ok.One of my friend suggested to modify the code as below:I am ashamed to reply that this is due to a major dmd bug that is not yet fixed: http://d.puremagic.com/issues/show_bug.cgi?id=2954 Apologies. I will do what I can to have this fixed asap. AndreiStill it behaves different on different machine under windows.
Nov 11 2010