Re: why a part of D community do not want go to D2 ?
Thu, 02 Dec 2010 13:21:57 +, Bruno Medeiros wrote: On 30/11/2010 19:02, Stewart Gordon wrote: On 30/11/2010 14:13, Bruno Medeiros wrote: On 30/11/2010 14:08, Stewart Gordon wrote: 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 snip 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. 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). 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.
Re: why a part of D community do not want go to D2 ?
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 What 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/
Re: why a part of D community do not want go to D2 ?
On 01/12/2010 12:17, so wrote: 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 What is a finished language, is it something like that is it guys, we can't advance any further in ###? snip In this context, I mean it being a completely and consistently defined language that third parties can implement. Stewart.
Re: why a part of D community do not want go to D2 ?
On 29/11/2010 18:30, Bruno Medeiros wrote: On 07/11/2010 20:48, Stewart Gordon wrote: 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 answer Sick 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. Did you mean D2, in Sick of waiting for D1 to be finished. ? I don't know what you mean Another possible contributing factor: a feeling that D is losing its elegance. Stewart.
Re: why a part of D community do not want go to D2 ?
On 30/11/2010 14:08, Stewart Gordon wrote: On 29/11/2010 18:30, Bruno Medeiros wrote: On 07/11/2010 20:48, Stewart Gordon wrote: 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 answer Sick 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. Did you mean D2, in Sick of waiting for D1 to be finished. ? I don't know what you mean Another possible contributing factor: a feeling that D is losing its elegance. Stewart. 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 Engineer
Re: why a part of D community do not want go to D2 ?
On 30/11/2010 14:13, Bruno Medeiros wrote: On 30/11/2010 14:08, Stewart Gordon wrote: 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 snip 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.
Re: why a part of D community do not want go to D2 ?
On 10/11/2010 02:53, Eric Poggel wrote: 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, typeerasure, 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. 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 Engineer
Re: why a part of D community do not want go to D2 ?
On 07/11/2010 20:48, Stewart Gordon wrote: 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 answer Sick 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. Did you mean D2, in Sick of waiting for D1 to be finished. ? -- Bruno Medeiros - Software Engineer
Re: why a part of D community do not want go to D2 ?
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.Darticle_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.Darticle_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.
Re: why a part of D community do not want go to D2 ?
On Thu, 11 Nov 2010 23:17:05 + (UTC) retard r...@tard.com.invalid wrote: 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. 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 (); // -- Ị̇ If your output system is sufficiently capable, then you get an I with dot above 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 code point. Right? But it's a single character requiring 3 codes. Ebven more troubling: if I choose a lowercase 'i' instead, then since i with 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 Ị̇. Also, it's important to realise that there is no formal definition of character, and even less a universal one. A character is what people using a scripting 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 points themselves (here, 3) into code units, and then bytes, in a concrete form (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 ☣ spir.wikidot.com
Re: why a part of D community do not want go to D2 ?
On Thu, 11 Nov 2010 18:09:44 -0800 Walter Bright newshou...@digitalmars.com wrote: 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. 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, in 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 allows economically representing all possible combinations, * but also with a single precombined code point, to cope with legacy charsets of the latin-N series, which id bad. In addition to that, characters represented by more than 2 code points suffer another issue, namely that the additional combining codes cna be put in 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 require decoding anyway; mapping to two unicode code points instead of one is nothing for software, and needs to be done once only. For this initial advantage, we suffer undue complication for the rest of the standard's lifetime. 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 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). The key point to understand is that an array of code points (read, a dstring) is still not a logical string. Reason why I introduce the notion of stack (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 â 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 searched): * decoding, properly speaking -- array of code in source charset (eg latin-3) * code mapping -- array of unicode code ~= dstring (unecessary if source encoding is utfN, ascci, or latin-1, since code maps are identical) * grouping code units representing single chars -- array of stacks (mini-dstring) * normalising to decomposed form, called NFD (eg â 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, if any). Then, we have restored the sensible bi-univoque mapping 1 character -- 1 representation. (Like in ASCII, latin-1, and all charsets that represent characters with single-length forms). Thus, we can safely perform any kind of process. Denis -- -- -- -- -- -- -- vit esse estrany ☣ spir.wikidot.com
Re: why a part of D community do not want go to D2 ?
On Fri, 12 Nov 2010 01:00:18 +0100 Daniel Gibson metalcae...@gmail.com wrote: http://www.digitalmars.com/d/2.0/phobos/std_utf.html 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). You are right, Daniel. As far as I understand it superficially (haven't used it yet), the current utf library deals with the lower-level issues of encoding code point into code units, and bytes. 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) See my reply to Walter's next post. Denis -- -- -- -- -- -- -- vit esse estrany ☣ spir.wikidot.com
Re: why a part of D community do not want go to D2 ?
On 2010-11-11 20:28, Sean Kelly wrote: 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. Ok, thanks for explaining. -- /Jacob Carlborg
Re: why a part of D community do not want go to D2 ?
spir schrieb: 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). That'd be great :-)
Re: why a part of D community do not want go to D2 ?
spir wrote: An abstract character, as introduced by UCS Oh gosh, another in the never ending menagerie of Unicode terms. :-(
Re: why a part of D community do not want go to D2 ?
== Quote from Walter Bright (newshou...@digitalmars.com)'s article spir wrote: An abstract character, as introduced by UCS Oh gosh, another in the never ending menagerie of Unicode terms. :-( If Unicode is not complicated, what is an abstract basic multilingual plane multibyte code unit and when's the last time you needed one?
Re: why a part of D community do not want go to D2 ?
On Sat, 13 Nov 2010 00:59:05 +0200, dsimcha dsim...@yahoo.com wrote: == Quote from Walter Bright (newshou...@digitalmars.com)'s article spir wrote: An abstract character, as introduced by UCS Oh gosh, another in the never ending menagerie of Unicode terms. :-( If Unicode is not complicated, what is an abstract basic multilingual plane multibyte code unit and when's the last time you needed one? How can they not know it? Don't we call it shortly ABMPMCU? :) -- Using Opera's revolutionary email client: http://www.opera.com/mail/
Re: why a part of D community do not want go to D2 ?
On Thu, 11 Nov 2010 00:43:33 +0100 Daniel Gibson metalcae...@gmail.com wrote: 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. But why not design from the start new Phobos libs with inspiration from known-to-be-good Tango ones? Denis -- -- -- -- -- -- -- vit esse estrany ☣ spir.wikidot.com
Re: why a part of D community do not want go to D2 ?
On 2010-11-10 22:26, Sean Kelly wrote: Jacob Carlborg Wrote: On 2010-11-09 23:04, Don wrote: Jacob Carlborg wrote: On 2010-11-09 17:43, Andrei Alexandrescu wrote: 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. 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. 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 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. 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. 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. 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? 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. I really think it's a shame they couldn't/wanted to give permission for their code to be used. 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 you don't think that support for other compilers should be in druntime what do you suggest? -- /Jacob Carlborg
Re: why a part of D community do not want go to D2 ?
On 2010-11-10 18:16, Walter Bright wrote: 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! 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 Carlborg
Re: why a part of D community do not want go to D2 ?
spir denis.s...@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
Re: why a part of D community do not want go to D2 ?
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 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. Well said. Maintain the rage against OOP for *everything*.
Re: why a part of D community do not want go to D2 ?
On 11/11/10 09:10, Andrew Wiley wrote: On Wed, Nov 10, 2010 at 4:00 PM, bearophile bearophileh...@lycos.com mailto:bearophileh...@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
Re: why a part of D community do not want go to D2 ?
On Wed, 10 Nov 2010 21:04:08 -0500, Jonathan M Davis jmdavisp...@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
Re: why a part of D community do not want go to D2 ?
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.
Re: Pls. bury this damned hatchet very deep (was Re: why a part of D community do not want go to D2 ?)
On Wed, 10 Nov 2010 12:55:01 +0100, Gour wrote: On Wed, 10 Nov 2010 11:51:19 +0100 Jacob == Jacob Carlborg wrote: [...] 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 These words I strongly agree with ;) If only deeds don't require imprisonment there's always a place for agreement or peaceful farewell. Cheers Piotrek
Re: why a part of D community do not want go to D2 ?
== Quote from FeepingCreature (default_357-l...@yahoo.de)'s article 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, typeerasure, 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. Or ME!
Re: why a part of D community do not want go to D2 ?
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.
Re: why a part of D community do not want go to D2 ?
Jonathan M Davis schrieb: On Wednesday, November 10, 2010 14:52:10 Jesse Phillips wrote: Walter Bright Wrote: 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. 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) 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 Davis 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 :/
Re: why a part of D community do not want go to D2 ?
Jacob Carlborg schrieb: On 2010-11-10 22:26, Sean Kelly wrote: 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 you don't think that support for other compilers should be in druntime what do you suggest? 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, - Daniel
Re: why a part of D community do not want go to D2 ?
On 11/11/10 9:25 AM, Daniel Gibson wrote: Jonathan M Davis schrieb: On Wednesday, November 10, 2010 14:52:10 Jesse Phillips wrote: Walter Bright Wrote: 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. 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) 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 Davis 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 That would be walkLength. string substring(string s, size_t beg, size_t end) // logical slice - from code point number beg to code point number end That'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
Re: why a part of D community do not want go to D2 ?
Andrei Alexandrescu schrieb: On 11/11/10 9:25 AM, Daniel Gibson wrote: Jonathan M Davis schrieb: On Wednesday, November 10, 2010 14:52:10 Jesse Phillips wrote: Walter Bright Wrote: 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. 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) 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 Davis 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 That would be walkLength. Ok. I really should get familiar with std.algorithm and D2 in general :-) string substring(string s, size_t beg, size_t end) // logical slice - from code point number beg to code point number end That'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(. 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? Andrei Cheers, - Daniel
Re: why a part of D community do not want go to D2 ?
On 11/10/10 10:12 PM, Sam Hu wrote: 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 Wangkona.m...@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. 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. Andrei
Re: why a part of D community do not want go to D2 ?
On 11/11/10 9:52 AM, Daniel Gibson wrote: Andrei Alexandrescu schrieb: On 11/11/10 9:25 AM, Daniel Gibson wrote: Jonathan M Davis schrieb: On Wednesday, November 10, 2010 14:52:10 Jesse Phillips wrote: Walter Bright Wrote: 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. 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) 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 Davis 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 That would be walkLength. Ok. I really should get familiar with std.algorithm and D2 in general :-) string substring(string s, size_t beg, size_t end) // logical slice - from code point number beg to code point number end That'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(. 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? Yah, this is worth a bug report. Thanks. http://d.puremagic.com/issues/show_bug.cgi?id=5201 Andrei
Re: why a part of D community do not want go to D2 ?
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.
Re: why a part of D community do not want go to D2 ?
Bernard Helyer Wrote: 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. 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.
Re: why a part of D community do not want go to D2 ?
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. -- Russel. = Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.win...@ekiga.net 41 Buckmaster Roadm: +44 7770 465 077 xmpp: rus...@russel.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder signature.asc Description: This is a digitally signed message part
Re: why a part of D community do not want go to D2 ?
git is better for managing branch
Re: why a part of D community do not want go to D2 ?
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?
Re: why a part of D community do not want go to D2 ?
On Thu, 11 Nov 2010 21:28:47 +0200, Sean Kelly s...@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, Vladimirmailto:vladi...@thecybershadow.net
Re: why a part of D community do not want go to D2 ?
On Thu, 11 Nov 2010 09:40:05 -0800 Andrei Alexandrescu seewebsiteforem...@erdani.org wrote: string substring(string s, size_t beg, size_t end) // logical slice - from code point number beg to code point number end That'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. Yes, but a code unit does not represent a character, instead a unicode abstract character. void main() { dstring s = \u0061\u0302\u006d\u0065d; 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). 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. Denis -- -- -- -- -- -- -- vit esse estrany ☣ spir.wikidot.com
Re: why a part of D community do not want go to D2 ?
spir schrieb: On Thu, 11 Nov 2010 09:40:05 -0800 Andrei Alexandrescu seewebsiteforem...@erdani.org wrote: string substring(string s, size_t beg, size_t end) // logical slice - from code point number beg to code point number end That'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. Yes, but a code unit does not represent a character, instead a unicode abstract character. void main() { dstring s = \u0061\u0302\u006d\u0065d; 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). 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?
Re: why a part of D community do not want go to D2 ?
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
Re: why a part of D community do not want go to D2 ?
On Thu, 11 Nov 2010 22:40:47 +0100 Daniel Gibson metalcae...@gmail.com wrote: spir schrieb: On Thu, 11 Nov 2010 09:40:05 -0800 Andrei Alexandrescu seewebsiteforem...@erdani.org wrote: string substring(string s, size_t beg, size_t end) // logical slice - from code point number beg to code point number end That'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. Yes, but a code unit does not represent a character, instead a unicode abstract character. void main() { dstring s = \u0061\u0302\u006d\u0065d; 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). 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. Most people, even programmers that deal with unicode everyday, think the same. This is due to several factors: (1) unicode's misleading use of abstract character (wonder whether it was done in purpose?) (2) string processing tools simply ignore all of that (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). 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? 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 (meaning, 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 marks: they have the same code when meaning a whole char and as start of stack (substring representing a whole char). But combining marks have 2 codes: one when combined, one when used alone like in in portuguese, '~' is used 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 scheme 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 ☣ spir.wikidot.com
Re: why a part of D community do not want go to D2 ?
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.
Re: why a part of D community do not want go to D2 ?
Walter Bright schrieb: 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 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, - Daniel
Re: why a part of D community do not want go to D2 ?
Andrei Alexandrescu Wrote: 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: Still it behaves different on different machine under windows. 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. Andrei 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.
Re: why a part of D community do not want go to D2 ?
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.
Re: why a part of D community do not want go to D2 ?
On 11/11/10 5:17 PM, Sam Hu wrote: Andrei Alexandrescu Wrote: 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: Still it behaves different on different machine under windows. 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. Andrei 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. 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. Andrei
Re: why a part of D community do not want go to D2 ?
thank you oldtimer nos...@_._ wrote in message news:ibb7ma$2fs...@digitalmars.com... 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. 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. 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. 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.
Re: why a part of D community do not want go to D2 ?
spir denis.s...@gmail.com wrote in message news:mailman.283.1289507692.21107.digitalmar...@puremagic.com... On Thu, 11 Nov 2010 09:40:05 -0800 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). 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?!?).
Re: why a part of D community do not want go to D2 ?
so wrote: 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? Nobody knows, apart from the people involved. They've made no statement (not even privately).
Re: why a part of D community do not want go to D2 ?
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…
Re: why a part of D community do not want go to D2 ?
On 2010-11-09 23:04, Don wrote: Jacob Carlborg wrote: On 2010-11-09 17:43, Andrei Alexandrescu wrote: 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. 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. 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. 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. 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? 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. I really think it's a shame they couldn't/wanted to give permission for their code to be used. -- /Jacob Carlborg
Re: why a part of D community do not want go to D2 ?
On 2010-11-09 22:45, Andrei Alexandrescu wrote: On 11/9/10 12:33 PM, Jacob Carlborg wrote: On 2010-11-09 17:43, Andrei Alexandrescu wrote: On 11/9/10 1:42 AM, Jacob Carlborg wrote: On 2010-11-08 20:55, Andrei Alexandrescu wrote: 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. 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. There was a good standard library that you forked and never added back any changes to it. This must be some confusion. I didn't fork anything. Besides, it's not useful to fall into the pattern of finger pointing. 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. 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 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. Yes, I also think that Sean acted 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 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). 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. 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? 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. Andrei 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 Carlborg
Re: why a part of D community do not want go to D2 ?
On 2010-11-10 00:00, Walter Bright wrote: 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. 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. 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! -- /Jacob Carlborg
Pls. bury this damned hatchet very deep (was Re: why a part of D community do not want go to D2 ?)
On Wed, 10 Nov 2010 11:51:19 +0100 Jacob == Jacob Carlborg wrote: Jacob 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 experience.) 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 -- Gour | Hlapicina, Croatia | GPG key: CDBF17CA signature.asc Description: PGP signature
Re: why a part of D community do not want go to D2 ?
Wed, 10 Nov 2010 11:56:18 +0100, Jacob Carlborg wrote: On 2010-11-10 00:00, Walter Bright wrote: 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. 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..
Re: why a part of D community do not want go to D2 ?
On 11/10/10 1:38 PM, klickverbot wrote: I probably wouldn't get the problem anyway, and[…] Whoops, s/and/as/ there…
Re: why a part of D community do not want go to D2 ?
On Wed, 10 Nov 2010 05:51:19 -0500, Jacob Carlborg d...@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
Re: why a part of D community do not want go to D2 ?
On 2010-11-10 12:43, retard wrote: Wed, 10 Nov 2010 11:56:18 +0100, Jacob Carlborg wrote: On 2010-11-10 00:00, Walter Bright wrote: 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. 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 basically agree with all this. -- /Jacob Carlborg
Re: why a part of D community do not want go to D2 ?
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!
Re: why a part of D community do not want go to D2 ?
retard wrote: A dual licensing scheme for all code might help a bit (since both parties refuse to switch licensing). There are also Releasing 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.
Re: why a part of D community do not want go to D2 ?
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.
Re: why a part of D community do not want go to D2 ?
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.
Re: why a part of D community do not want go to D2 ?
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, typeerasure, 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.
Re: why a part of D community do not want go to D2 ?
== Quote from so (s...@so.do)'s article 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. 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.
Re: why a part of D community do not want go to D2 ?
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.
Re: why a part of D community do not want go to D2 ?
On 2010-11-10 21:42, Eric Poggel wrote: 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 You can have renamed imports: import Math = std.math; and the you can use Math. as you want. -- /Jacob Carlborg
Re: why a part of D community do not want go to D2 ?
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
Re: why a part of D community do not want go to D2 ?
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 You 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/
Re: why a part of D community do not want go to D2 ?
Jacob Carlborg Wrote: On 2010-11-09 23:04, Don wrote: Jacob Carlborg wrote: On 2010-11-09 17:43, Andrei Alexandrescu wrote: 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. 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. 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 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. 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. 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? 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. I really think it's a shame they couldn't/wanted to give permission for their code to be used. 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.
Re: why a part of D community do not want go to D2 ?
Eric Poggel: 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. 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, bearophile
Re: why a part of D community do not want go to D2 ?
On Wed, Nov 10, 2010 at 4:00 PM, bearophile bearophileh...@lycos.comwrote: Eric Poggel: 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. 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. 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?
Re: why a part of D community do not want go to D2 ?
Walter Bright Wrote: 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. 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)
Re: why a part of D community do not want go to D2 ?
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).
Re: why a part of D community do not want go to D2 ?
On Wed, Nov 10, 2010 at 5:27 PM, Daniel Gibson metalcae...@gmail.comwrote: 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). 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.
Re: why a part of D community do not want go to D2 ?
On Wed, Nov 10, 2010 at 5:27 PM, Daniel Gibson metalcae...@gmail.comwrote: 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.
Re: why a part of D community do not want go to D2 ?
Andrew Wiley schrieb: On Wed, Nov 10, 2010 at 5:27 PM, Daniel Gibson metalcae...@gmail.com mailto:metalcae...@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.
Re: why a part of D community do not want go to D2 ?
On Wednesday, November 10, 2010 14:52:10 Jesse Phillips wrote: Walter Bright Wrote: 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. 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) 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 Davis
Re: why a part of D community do not want go to D2 ?
On Wed, Nov 10, 2010 at 5:43 PM, Daniel Gibson metalcae...@gmail.comwrote: Andrew Wiley schrieb: On Wed, Nov 10, 2010 at 5:27 PM, Daniel Gibson metalcae...@gmail.commailto: metalcae...@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. 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.
Re: why a part of D community do not want go to D2 ?
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
Re: why a part of D community do not want go to D2 ?
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.m...@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.
Re: why a part of D community do not want go to D2 ?
On 2010-11-08 20:55, Andrei Alexandrescu wrote: 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 D1 The 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. 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 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
Re: why a part of D community do not want go to D2 ?
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.
Re: why a part of D community do not want go to D2 ?
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, typeerasure, 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.
Re: why a part of D community do not want go to D2 ?
On 11/9/10 1:42 AM, Jacob Carlborg wrote: On 2010-11-08 20:55, Andrei Alexandrescu wrote: 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. 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. 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] 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. Which ones? There are more than a few :o). Andrei
Re: why a part of D community do not want go to D2 ?
On 11/9/10 1:42 AM, Jacob Carlborg wrote: On 2010-11-08 20:55, Andrei Alexandrescu wrote: 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. 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. 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] 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. Which ones? There are more than a few :o). Andrei
Re: why a part of D community do not want go to D2 ?
ponce Wrote: 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. 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.
Re: why a part of D community do not want go to D2 ?
On 2010-11-09 17:43, Andrei Alexandrescu wrote: On 11/9/10 1:42 AM, Jacob Carlborg wrote: On 2010-11-08 20:55, Andrei Alexandrescu wrote: 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. 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. There was a good standard library that you forked and never added back any changes to it. 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. 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. 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? [snip] 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. Which ones? There are more than a few :o). Andrei You just helped to prove my point :) -- /Jacob Carlborg
Re: why a part of D community do not want go to D2 ?
On 11/9/10 12:33 PM, Jacob Carlborg wrote: On 2010-11-09 17:43, Andrei Alexandrescu wrote: On 11/9/10 1:42 AM, Jacob Carlborg wrote: On 2010-11-08 20:55, Andrei Alexandrescu wrote: 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. 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. There was a good standard library that you forked and never added back any changes to it. This must be some confusion. I didn't fork anything. Besides, it's not useful to fall into the pattern of finger pointing. 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 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. 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. 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? 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. Andrei
Re: why a part of D community do not want go to D2 ?
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: On 11/9/10 1:42 AM, Jacob Carlborg wrote: On 2010-11-08 20:55, Andrei Alexandrescu wrote: 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. 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. There was a good standard library that you forked and never added back any changes to it. This must be some confusion. I didn't fork anything. Besides, it's not useful to fall into the pattern of finger pointing. 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 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. For this to work the Tango team and the druntime contributors/maintainers have collaborate and work together
Re: why a part of D community do not want go to D2 ?
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!
Re: why a part of D community do not want go to D2 ?
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/
Re: why a part of D community do not want go to D2 ?
++1 2010/11/9 thank you oldtimer nos...@_._ 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, typeerasure, 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.
Re: why a part of D community do not want go to D2 ?
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.m...@gmail.com ++1 2010/11/9 thank you oldtimer nos...@_._ 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, typeerasure, 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.
Re: why a part of D community do not want go to D2 ?
On Wed, Nov 10, 2010 at 2:19 AM, Boris Wang kona.m...@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 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.
Re: why a part of D community do not want go to D2 ?
On 11/9/10 5:38 PM, Daniel Gibson wrote: On Wed, Nov 10, 2010 at 2:19 AM, Boris Wangkona.m...@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 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. 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. Andrei
Re: why a part of D community do not want go to D2 ?
On Wed, Nov 10, 2010 at 2:49 AM, Andrei Alexandrescu seewebsiteforem...@erdani.org wrote: On 11/9/10 5:38 PM, Daniel Gibson wrote: On Wed, Nov 10, 2010 at 2:19 AM, Boris Wangkona.m...@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 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. 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. Andrei 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.
Re: why a part of D community do not want go to D2 ?
so Wrote: 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/ Well, I think some people could not be contacted. Otherwise it is just stupid politics, and it is their code.