www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Polishing D - suggestions and comments

reply "Unknown W. Brackets" <unknown simplemachines.org> writes:
I thought I might write down some of the many suggestions I have for 
making D really come into the spotlight as a language.

They cover many areas, and I'm trying to address issues that I feel 
aren't being given - by what I've seen - enough attention.  I'm sure 
many of you here will pick me apart, and I look forward to it.

Hopefully some of the suggestions can improve D.

I write these with experience with an open source project I lead the 
development of, and years of watching the Mozilla development process. 
I have no doubt that the majority of these things would be of great 
improvement, if they are possible and done.

http://www.unknownbrackets.com/tutorials/polishing-d

-[Unknown]
Jan 20 2008
next sibling parent reply Walter Bright <newshound1 digitalmars.com> writes:
Unknown W. Brackets wrote:
 I thought I might write down some of the many suggestions I have for 
 making D really come into the spotlight as a language.
Thanks for taking the time to write this. I think your suggestions are very good.
Jan 20 2008
parent Jarrod <qwerty ytre.wq> writes:
On Sun, 20 Jan 2008 21:32:45 -0800, Walter Bright wrote:

 Thanks for taking the time to write this. I think your suggestions are
 very good.
I think I should ask you here since it's in context with the Phobos suggestions. What are you planning to do with Tango? Personally I prefer the Phobos API for it's naming, organisation and documentation, but I also like the extra features tango adds and of course I don't want to say no to a faster garbage collector and less bugs, which leaves me torn. Perhaps it might be time to replace Phobos, or (even better) officially merge the two libraries? Better now than later.
Jan 21 2008
prev sibling next sibling parent reply Bjoern <nanali nospam-wanadoo.fr> writes:
Unknown W. Brackets schrieb:
 I thought I might write down some of the many suggestions I have for 
 making D really come into the spotlight as a language.
 http://www.unknownbrackets.com/tutorials/polishing-d
Interoptability : This will make IDE developers work extremely comfortable and will result in world class tools. Having this kind of interoptability (let me say interactive compiler) is a win win. Outstanding IDEs, making D even more productive, attractive, -> greater user base -> ... As a side effect I can imagine that dll/so support will be improved. f.i. Multithreading support. I really hope to see this features become reallity! Ergo : vote++ But for the moment just 2 little things : 1- make compiler output more consistent, in other words, easier to parse. (same is valid for profiler output) 2- write errors to stderr Regarding source-code-management/QA etc. : IMO this should be essential part of an D IDE. Simply having support for current systems like CVS/SVN,Mercurial, .. is not good enough. Excellent article Unknown ! Bjoern
Jan 21 2008
parent reply Unknown W. Brackets <unknown simplemachines.org> writes:
Thanks.  It was just an idea I've had for a long time, I figured I'd throw into
the end of the document as an example.  I'm glad you think it's a good idea.

Your point about stderr is a good one, and something I missed.  This is
important mainly on Linux.  I mentioned the other somewhere.

For management, I'm really talking about D itself.  I'm mostly unconcerned
about how people use D, as much as how D itself is developed and presented to
them - I think that's what needs work, personally.

-[Unknown]


Bjoern Wrote:
 But for the moment just 2 little things :
 1- make compiler output more consistent, in other words, easier to 
 parse. (same is valid for profiler output)
 2- write errors to stderr
 
 Regarding source-code-management/QA etc. :
 IMO this should be essential part of an D IDE. Simply having support for 
 current systems like CVS/SVN,Mercurial, .. is not good enough.
 
 Excellent article Unknown !
 Bjoern
 
Jan 21 2008
parent reply Bjoern <nanali nospam-wanadoo.fr> writes:
Unknown W. Brackets schrieb:
 For management, I'm really talking about D itself.  I'm mostly unconcerned
about how people use D, as much as how D itself is developed and presented to
them - I think that's what needs work, personally.
 
 -[Unknown]
Yes I've recognized that :) I just had the idea that you talked about developer Collaboration too... a bit hidden, behind the words...and I simply could not resist to say that current SCMs sux. (not ashamed) Bjoern
Jan 22 2008
parent reply Unknown W. Brackets <unknown simplemachines.org> writes:
Sorry, didn't mean to be patronizing, thought you might've skimmed the rest.

Actually, you're right.  I've had experience managing developers (as that's my
current job in fact), and currently SCMs all seem to have their flaws.  At the
same time, all of them make things easier than nothing at all.

-[Unknown]


Bjoern Wrote:
 Yes I've recognized that :)
 I just had the idea that you talked about developer Collaboration too... 
 a bit hidden, behind the words...and I simply could not resist to say 
 that current SCMs sux.
 (not ashamed) Bjoern
Jan 22 2008
parent reply Bjoern <nanali nospam-wanadoo.fr> writes:
Unknown W. Brackets schrieb:
 Sorry, didn't mean to be patronizing, thought you might've skimmed the rest.
No problem, even if you mean it :)
 
 Actually, you're right.  I've had experience managing developers (as that's my
current job in fact), and currently SCMs all seem to have their flaws.  At the
same time, all of them make things easier than nothing at all.
 
 -[Unknown]
 
It is not my intention to waste your time but I'm curious (enough) about your opinion regarding using a RDBMS as SCM working-horse. Bjoern
Jan 22 2008
parent "Unknown W. Brackets" <unknown simplemachines.org> writes:
Honestly, I haven't followed recent developments - git for example - so 
I'm not going to go spout off unfounded opinions.

But, from experience writing a CVS/RCS web viewer I would say a 
relational storage system would make things a lot more logical...

-[Unknown]


Bjoern wrote:
 Unknown W. Brackets schrieb:
 Sorry, didn't mean to be patronizing, thought you might've skimmed the 
 rest.
No problem, even if you mean it :)
 Actually, you're right.  I've had experience managing developers (as 
 that's my current job in fact), and currently SCMs all seem to have 
 their flaws.  At the same time, all of them make things easier than 
 nothing at all.

 -[Unknown]
It is not my intention to waste your time but I'm curious (enough) about your opinion regarding using a RDBMS as SCM working-horse. Bjoern
Jan 22 2008
prev sibling next sibling parent reply Neal Alexander <wqeqweuqy hotmail.com> writes:
Unknown W. Brackets wrote:
 I thought I might write down some of the many suggestions I have for 
 making D really come into the spotlight as a language.
 
 They cover many areas, and I'm trying to address issues that I feel 
 aren't being given - by what I've seen - enough attention.  I'm sure 
 many of you here will pick me apart, and I look forward to it.
 
 Hopefully some of the suggestions can improve D.
 
 I write these with experience with an open source project I lead the 
 development of, and years of watching the Mozilla development process. I 
 have no doubt that the majority of these things would be of great 
 improvement, if they are possible and done.
 
 http://www.unknownbrackets.com/tutorials/polishing-d
 
 -[Unknown]
Having a highly optimized and pluggable GC would go a long way i think. It seems like sometimes a naive implementation in D can be slower than its Java counterpart -- kind of a kick in the teeth IMO. People tend to have a false sense of security that stuff will automatically be faster because its native compiled. It wouldn't hurt to have an article explaining the performance implications of some of the more exotic features of the language either. On an unrelated note: i've noticed a *lot* of code tends to use templated function parameters for stuff like read()/write() operations. This type of usage pattern should probably be supported in a different way IMO. Things to consider (off the top of my head): **** Avoid template code replication for different types by defining common attributes / operations -- some type of numerical interface that defines operations for built-in and user types. This doesnt have to mean that basic types become real classes but that the compiler knows how to generate stubs for each operation. t_interface ordinal { void inc(); void plus(ordinal); ... } t_interface copyable { void* ptr(); size_t size(); void copy(copyable); ... } Side note: Maybe the "copyable" interface could be overloaded to perform endian conversion or simple crypto etc. t_interface number : ordinal, copyable, ...; type double : number type int : number type char : ordinal, copyable; class user_t : number { uint64_t backing; size(){ return backing.sizeof; } inc(){ ++backing; } ... } void f(number x){ x.inc; printf("size=%d", x.size); } double d; int i; char c; user_t t; f(d); -> size=8 f(i); -> size=4 f(c); -> size=1 f(t); -> size=8 **** Function parameter assignment double d; file.read(d, offset=4); void read(copyable data, size_t offset = void, int flags = 1234){ ... } ("void" used to ignore options instead of hacks like size_t.max would be nice) I dunno, its kind of a half baked idea i guess, but something to consider.
Jan 21 2008
parent reply Unknown W. Brackets <unknown simplemachines.org> writes:
I tried to stay away from the language, syntax, style, etc. for the most part. 
There are things to talk about there, and plenty of opinions flying around.

Even if I were an expert on compiler design and theory, that's getting enough
attention.

I'm more concerned about process.  Whether or not D has a pluggable GC or
better interface design won't really prevent D from becoming a widely used
language.  They are good things to think about and discuss, nonetheless.

C/C++, Perl, PHP, Java, all languages have design flaws.  But almost all of
them have covered the issues I mentioned - or else they wouldn't have become
well known languages.  I think that's the biggest issue for D right now.

-[Unknown]


Neal Alexander Wrote:
 Having a highly optimized and pluggable GC would go a long way i think.
 
 
 It seems like sometimes a naive implementation in D can be slower than 
 its Java counterpart -- kind of a kick in the teeth IMO. People tend to 
 have a false sense of security that stuff will automatically be faster 
 because its native compiled.
 
 It wouldn't hurt to have an article explaining the performance 
 implications of some of the more exotic features of the language either.
 
 
 
 On an unrelated note: i've noticed a *lot* of code tends to use 
 templated function parameters for stuff like read()/write() operations. 
 This type of usage pattern should probably be supported in a different 
 way IMO.
 
 Things to consider (off the top of my head):
 
 **** Avoid template code replication for different types by defining 
 common attributes / operations -- some type of numerical interface that 
 defines operations for built-in and user types. This doesnt have to mean 
 that basic types become real classes but that the compiler knows how to 
 generate stubs for each operation.
 
 
 t_interface ordinal  { void inc(); void plus(ordinal); ... }
 t_interface copyable
 {
      void* ptr();
      size_t size();
      void copy(copyable);
      ...
 }
 
 Side note: Maybe the "copyable" interface could be overloaded to perform 
 endian conversion or simple crypto etc.
 
 
 t_interface number : ordinal, copyable, ...;
 
 type double : number
 type int    : number
 type char   : ordinal, copyable;
 
 class user_t : number
 {
      uint64_t backing;
      size(){ return backing.sizeof; }
      inc(){ ++backing; }
      ...
 }
 
 void f(number x){ x.inc; printf("size=%d", x.size); }
 
 double d;
 int i;
 char c;
 user_t t;
 
 f(d); -> size=8
 f(i); -> size=4
 f(c); -> size=1
 f(t); -> size=8
 
 
 **** Function parameter assignment
 double d;
 file.read(d, offset=4);
 
 void read(copyable data, size_t offset = void, int flags = 1234){ ... }
 
 ("void" used to ignore options instead of hacks like size_t.max would be 
 nice)
 
 
 
 I dunno, its kind of a half baked idea i guess, but something to consider.
Jan 21 2008
parent reply Daniel Lewis <murpsoft hotmail.com> writes:
Walter,

I'm volunteering to head up a web development project to revamp the 'site,
should you be interested.  I'm sure a shiny new website would certainly give D
a toe up in the external appeal department.

I'm not running a web design firm.  I'm really not interested in advertising
potential or the likes.  I'd just like to commit something I can be proud of
back to the community; and I should probably do the same for Walnut later
anyways.

I've been a web designer for the last 11 years, and I know most, if not all the
tricks with CSS and AJAX and the rest.  I fact, that's how I got into
programming.  I'm currently a Web Site Manager for one of the plethora of
internal websites within Citi, and the only one I know of that's W3C standards
conformant.  It's also WAI AA conformant, and implements some cutting edge
stuff that I haven't seen other people on the web do such as: 

- keyboard accessible multi-tier horizontal-or-vertical suckerfish menus with
the fix for the IE6 select box overlay bug.

- keyboard accessible toggle-able list-based suckerfish file tree generated
from the file system.

- automatic user authentication and authorization using Active Directory; which
is honestly limited to intranet applications.

- ajax SQL queries dumping into an embedded OWC excel spreadsheet.

I've attached screenshots from two previous iterations of my website for Citi
to ease worries.

Regards,
Daniel Lewis

Unknown W. Brackets Wrote:
 I tried to stay away from the language, syntax, style, etc. for the most part.
 There are things to talk about there, and plenty of opinions flying around.
 
 Even if I were an expert on compiler design and theory, that's getting enough
attention.
 
 I'm more concerned about process.  Whether or not D has a pluggable GC or
better interface design won't really prevent D from becoming a widely used
language.  They are good things to think about and discuss, nonetheless.
 
 C/C++, Perl, PHP, Java, all languages have design flaws.  But almost all of
them have covered the issues I mentioned - or else they wouldn't have become
well known languages.  I think that's the biggest issue for D right now.
 
 -[Unknown]
Jan 21 2008
next sibling parent reply Bill Baxter <dnewsgroup billbaxter.com> writes:
Daniel Lewis wrote:
 Walter,
 
 I'm volunteering to head up a web development project to revamp the 'site,
should you be interested.  I'm sure a shiny new website would certainly give D
a toe up in the external appeal department.
 
 I'm not running a web design firm.  I'm really not interested in advertising
potential or the likes.  I'd just like to commit something I can be proud of
back to the community; and I should probably do the same for Walnut later
anyways.
 
 I've been a web designer for the last 11 years, and I know most, if not all
the tricks with CSS and AJAX and the rest.  I fact, that's how I got into
programming.  I'm currently a Web Site Manager for one of the plethora of
internal websites within Citi, and the only one I know of that's W3C standards
conformant.  It's also WAI AA conformant, and implements some cutting edge
stuff that I haven't seen other people on the web do such as: 
 
 - keyboard accessible multi-tier horizontal-or-vertical suckerfish menus with
the fix for the IE6 select box overlay bug.
 
 - keyboard accessible toggle-able list-based suckerfish file tree generated
from the file system.
 
 - automatic user authentication and authorization using Active Directory;
which is honestly limited to intranet applications.
 
 - ajax SQL queries dumping into an embedded OWC excel spreadsheet.
 
 I've attached screenshots from two previous iterations of my website for Citi
to ease worries.
 
 Regards,
 Daniel Lewis
That would be fabulous. My vote would be for a design at around the Slashdot level of glitz. Not too much popup bling-bling or shiny faux glass junk. The Citi pages look a little too shiny to me. Good for Citi I think but not for a grass-roots programming language website. In terms of functionality, making the user-comments in-line would be a big help. Most people don't notice the "comments" button at the top of each doc page, and obviously the comments on those external pages don't show up when you do a Ctrl-F find-on-page search. --bb
Jan 21 2008
parent reply Unknown W. Brackets <unknown simplemachines.org> writes:
Aha, I thought that was somewhere... but couldn't find it.  I touched on this
briefly.  It also represents problems as far as SEO (something that could be
improved on D's pages.)

For example, the fact that these two, entirely separate in Google's eyes, URLs
work is bad:

http://www.digitalmars.com/d/changelog.html
http://digitalmars.com/d/changelog.html

In addition, really, all the pages within d/ should 301 redirect to 2.0/ so
that 1.0 and 2.0 are each present in their pages' URLs.  This would make
searching for documentation on a specific tree simpler and most likely improve
relevancy.

But, this is more specific than I really wanted to get with the website's
needs.  The important thing is making the decision to get the changes done, and
taking the time to review who to work with on it.  Maybe an internal team of
volunteers, maybe an outside agency.  This can't happen until responsibility is
better dispersed...

As a side note, I work for a web company, and we use PHP primarily - which
language I do like.  But it would be cool to see D eat its own dogfood here,
and host the website on its own, lightweight webserver with D-coded dynamic
pages.  This wouldn't be hard to write at all, and would really show the
versatility of D (as well as efficiency, assuming it handled load well.)  Maybe
not practically the best, though.

-[Unknown]


Bill Baxter Wrote:
 In terms of functionality, making the user-comments in-line would be a 
 big help.  Most people don't notice the "comments" button at the top of 
 each doc page, and obviously the comments on those external pages don't 
 show up when you do a Ctrl-F find-on-page search.
Jan 21 2008
parent reply "Unknown W. Brackets" <unknown simplemachines.org> writes:
Well, I noticed that this is being done, which is great.  However, it's 
been done using http-equiv Refresh redirects.  This is not going to 
improve Google PageRanks.  Really those redirects need to be 301 results 
coming from Apache.

Easiest way to do this is with an .htaccess file or in httpd.conf.  It 
can be done with Redirect or RewriteEngine/RewriteRule.  Here's an example:

RewriteRule ^d/(phobos/.*)$ d/2.0/$1 [NS,L,R=301]
RewriteRule ^d/([^/]+\.html$ d/2.0/$1 [NS,L,R=301]

Or something similar.  Just my suggestion to maintain as much ranking 
and relevance for current pages as possible.

-[Unknown]


Unknown W. Brackets wrote:
 Aha, I thought that was somewhere... but couldn't find it.  I touched on this
briefly.  It also represents problems as far as SEO (something that could be
improved on D's pages.)
 
 For example, the fact that these two, entirely separate in Google's eyes, URLs
work is bad:
 
 http://www.digitalmars.com/d/changelog.html
 http://digitalmars.com/d/changelog.html
 
 In addition, really, all the pages within d/ should 301 redirect to 2.0/ so
that 1.0 and 2.0 are each present in their pages' URLs.  This would make
searching for documentation on a specific tree simpler and most likely improve
relevancy.
 
 But, this is more specific than I really wanted to get with the website's
needs.  The important thing is making the decision to get the changes done, and
taking the time to review who to work with on it.  Maybe an internal team of
volunteers, maybe an outside agency.  This can't happen until responsibility is
better dispersed...
 
 As a side note, I work for a web company, and we use PHP primarily - which
language I do like.  But it would be cool to see D eat its own dogfood here,
and host the website on its own, lightweight webserver with D-coded dynamic
pages.  This wouldn't be hard to write at all, and would really show the
versatility of D (as well as efficiency, assuming it handled load well.)  Maybe
not practically the best, though.
 
 -[Unknown]
 
 
 Bill Baxter Wrote:
 In terms of functionality, making the user-comments in-line would be a 
 big help.  Most people don't notice the "comments" button at the top of 
 each doc page, and obviously the comments on those external pages don't 
 show up when you do a Ctrl-F find-on-page search.
Jan 22 2008
parent reply Daniel Lewis <murpsoft hotmail.com> writes:
Well, I haven't heard a word.  I guess he figures he'll keep doing it himself.

Last night I hacked on Walnut some more; removed the block allocator crap,
reorganized the parser file, made it handle for() and automatic semicolon
insertion, as well as escape characters in strings.  

Not much left to do before the parser is done; some tree shuffling and a few
statements.

A question; how does one differentiate between an object literal and a code
block in ECMAScript?

I find the following:

{ bob: "hello" }

Is this:
a) an object
b) a code block with a label, bob, referring to a statement only containing a
string?

I can create more elaborate examples which could be either, and to be honest
the best I can think to do is parse it as an Object literal unless we get an
invalid token?





Unknown W. Brackets Wrote:
 Well, I noticed that this is being done, which is great.  However, it's 
 been done using http-equiv Refresh redirects.  This is not going to 
 improve Google PageRanks.  Really those redirects need to be 301 results 
 coming from Apache.
 
 Easiest way to do this is with an .htaccess file or in httpd.conf.  It 
 can be done with Redirect or RewriteEngine/RewriteRule.  Here's an example:
 
 RewriteRule ^d/(phobos/.*)$ d/2.0/$1 [NS,L,R=301]
 RewriteRule ^d/([^/]+\.html$ d/2.0/$1 [NS,L,R=301]
 
 Or something similar.  Just my suggestion to maintain as much ranking 
 and relevance for current pages as possible.
 
 -[Unknown]
Jan 22 2008
next sibling parent reply Bill Baxter <dnewsgroup billbaxter.com> writes:
Daniel Lewis wrote:
 Well, I haven't heard a word.  I guess he figures he'll keep doing it himself.
Why don't you try emailing him directly. He does have an email address. And it's not that hard to find for someone as web savvy as you. ;-) --bb
Jan 22 2008
parent reply Bill Baxter <dnewsgroup billbaxter.com> writes:
Bill Baxter wrote:
 Daniel Lewis wrote:
 Well, I haven't heard a word.  I guess he figures he'll keep doing it 
 himself.
Why don't you try emailing him directly. He does have an email address. And it's not that hard to find for someone as web savvy as you. ;-)
But let me guess at his reservations -- from what I understand, he has a system that works now and is mostly automated, generating most of the html automatically using ddoc. So if I were Walter I'd be leery of the situation where someone spends a week making a great website, drops it and a hundred files of whiz-bang PHP/CSS/perl/javascript code in my lap, and then disappears. The good thing about the current system is that Walter understands it completely because he wrote it. That means that when something goes wrong, or he urgently needs to make the D2.0 pages purple, he knows how. So the question is: is there some way you can overhaul the website that won't force him to change his workflow? At least I'm guessing that's what he'd want to know. :-) --bb
Jan 22 2008
parent Unknown W. Brackets <unknown simplemachines.org> writes:
Well, that would be silly.  I work for one of many companies that creates sites
for people with the very specific intent that the client becomes able to manage
the site (sans major updates) completely on their own with no programming
knowledge.

This has been popular since like 2001 or something.  It's nothing new, a
covered problem.

In any case, it's holding onto everything and wanting to be able to pick things
up on any aspect that would limit D.  Sometimes you have to trust other people,
and do things in a standard enough way that you won't deep fry if your trust is
misplaced.

Sorry if I just keep repeating that....

-[Unknown]


Bill Baxter Wrote:
 But let me guess at his reservations -- from what I understand, he has a 
 system that works now and is mostly automated, generating most of the 
 html automatically using ddoc.
 
 So if I were Walter I'd be leery of the situation where someone spends a 
   week making a great website, drops it and a hundred files of whiz-bang 
 PHP/CSS/perl/javascript code in my lap, and then disappears.  The good 
 thing about the current system is that Walter understands it completely 
 because he wrote it.  That means that when something goes wrong, or he 
 urgently needs to make the D2.0 pages purple, he knows how.
 
 So the question is: is there some way you can overhaul the website that 
 won't force him to change his workflow?
 
 At least I'm guessing that's what he'd want to know.  :-)
 
 --bb
Jan 22 2008
prev sibling parent Unknown W. Brackets <unknown simplemachines.org> writes:
From memory, not looking at the spec, aren't code blocks always proceeded by
function () or similar?

Example:

var f = function ()
{
label:
   "hello"
}

var o = {
   label: "hello"
};

I may be wrong.  But that's what I remember...

-[Unknown]


Daniel Lewis Wrote:

 
 Well, I haven't heard a word.  I guess he figures he'll keep doing it himself.
 
 Last night I hacked on Walnut some more; removed the block allocator crap,
reorganized the parser file, made it handle for() and automatic semicolon
insertion, as well as escape characters in strings.  
 
 Not much left to do before the parser is done; some tree shuffling and a few
statements.
 
 A question; how does one differentiate between an object literal and a code
block in ECMAScript?
 
 I find the following:
 
 { bob: "hello" }
 
 Is this:
 a) an object
 b) a code block with a label, bob, referring to a statement only containing a
string?
 
 I can create more elaborate examples which could be either, and to be honest
the best I can think to do is parse it as an Object literal unless we get an
invalid token?
Jan 22 2008
prev sibling parent Walter Bright <newshound1 digitalmars.com> writes:
Daniel Lewis wrote:
 I'm volunteering to head up a web development project to revamp the
 'site, should you be interested.  I'm sure a shiny new website would
 certainly give D a toe up in the external appeal department.
That would be great! Would you like to start with a revamped style.css ?
Jan 23 2008
prev sibling next sibling parent reply Unknown W. Brackets <unknown simplemachines.org> writes:
I'm glad you felt my suggestions were good.

I don't know how practical they will be for you, or if there's more suggestions
I can make based on any impracticalities.  I understand they're big changes,
but these are problems I've seen for over two years - and been waiting for them
to be resolved that whole time.

It may seem otherwise, but I can tell you that none of these things will
complicate your life half as much as they ease it.

I hope your comments mean that you're interested in taking action on some of
the suggestions I made.

-[Unknown]


Walter Bright Wrote:
 Thanks for taking the time to write this. I think your suggestions are 
 very good.
Jan 21 2008
parent O_O <O_O mailinator.com> writes:
Great suggestions Unknown! I have also been feeling similarly about D. I could
barely put some of those thoughts into words on reddit today:
http://programming.reddit.com/info/662tz/comments/c02y81s .
 
 I wish to see wide adoption of D and I also believe for that to happen it
should the official D resources should be polished. 
 
 From my experience I've seen adoption of OpenGL (the 3D graphics API) diminish
away partly because it was not properly packaged. To get the advanced
functionality specific to a Graphics card one had to load OpenGL extensions
which was quite a bit of a pain for a newbie, so many libraries have cropped up
to load the extensions automatically. Still they have to be installed
separately, and there would be futher fragmentation because some tutorials
preferred one library over the other. Further because of some legacy API there
were many ways to achieve the same thing with varying levels of efficiency.
This also confuses new users 梕ach tutorial would use a different method! The
OpenGL ARB has finally acknowledged this and set up a working group to maintain
an OpenGL SDK. This should have been done a long time ago. 
 
 I fear that the same would happen with having two standard libraries for D.
Whatever might be the reason for having both of them currentlly, frankly to the
outsider it simply looks like there is not enough cooperation/ agreement
between the people making the two libraries.
 
 I hope something is done about this. 

Unknown W. Brackets Wrote:

 I'm glad you felt my suggestions were good.
 
 I don't know how practical they will be for you, or if there's more
suggestions I can make based on any impracticalities.  I understand they're big
changes, but these are problems I've seen for over two years - and been waiting
for them to be resolved that whole time.
 
 It may seem otherwise, but I can tell you that none of these things will
complicate your life half as much as they ease it.
 
 I hope your comments mean that you're interested in taking action on some of
the suggestions I made.
 
 -[Unknown]
 
 
 Walter Bright Wrote:
 Thanks for taking the time to write this. I think your suggestions are 
 very good.
Jan 21 2008
prev sibling next sibling parent reply Dan <murpsoft hotmail.com> writes:
Unknown W. Brackets Wrote:

 Aha, I thought that was somewhere... but couldn't find it.  I touched on this
briefly.  It also represents problems as far as SEO (something that could be
improved on D's pages.)
 
 For example, the fact that these two, entirely separate in Google's eyes, URLs
work is bad:
 
 http://www.digitalmars.com/d/changelog.html
 http://digitalmars.com/d/changelog.html
 
 In addition, really, all the pages within d/ should 301 redirect to 2.0/ so
that 1.0 and 2.0 are each present in their pages' URLs.  This would make
searching for documentation on a specific tree simpler and most likely improve
relevancy.
 
 But, this is more specific than I really wanted to get with the website's
needs.  The important thing is making the decision to get the changes done, and
taking the time to review who to work with on it.  Maybe an internal team of
volunteers, maybe an outside agency.  This can't happen until responsibility is
better dispersed...
 
 As a side note, I work for a web company, and we use PHP primarily - which
language I do like.  But it would be cool to see D eat its own dogfood here,
and host the website on its own, lightweight webserver with D-coded dynamic
pages.  This wouldn't be hard to write at all, and would really show the
versatility of D (as well as efficiency, assuming it handled load well.)  Maybe
not practically the best, though.
 
 -[Unknown]
Yeah, for server choices I'd argue for either Chilisoft, a DMDScript as JScript ASP 3.0, or a Linux/Lighttpd+D/Walnut 1.x I know PHP, and to be frank, I think the language is annoying. To avoid sounding off a page-long rant and debate I shall avoid describing why. I have a project now from the boss' boss, so I'll be busy for a couple hours. Regards, Dan
Jan 21 2008
parent reply Walter Bright <newshound1 digitalmars.com> writes:
Unknown W. Brackets Wrote:
 As a side note, I work for a web company, and we use PHP primarily
 - which language I do like.  But it would be cool to see D eat its
 own dogfood here, and host the website on its own, lightweight
 webserver with D-coded dynamic pages.  This wouldn't be hard to
 write at all, and would really show the versatility of D (as well
 as efficiency, assuming it handled load well.)  Maybe not
 practically the best, though.
The web pages are all static. Not that they have to be, but doing a dynamically generated site the size of digitalmars.com would probably be a full time job in itself.
Jan 22 2008
parent reply "Unknown W. Brackets" <unknown simplemachines.org> writes:
Speaking as a professional at what you're talking about, there's not a 
chance it would.

I will say that the company I work for would ask no less than $40k to do 
a site like digitalmars.com/d, but that's still only 400 hours of work 
(give or take.)  After that you're normally talking about it reading a 
database, files or protocols from other softwares, or even flat files 
for those who like that.... and that is something anyone can do.

Even if it did require a part time, or even full time, position in 
itself - if that's what D needs, why is that a problem?  I can guarantee 
you that you'll find enough volunteers if you're worried about cost.

If you're worried about efficiency, I've worked on stuff that've gone on 
ABC's website etc., and I can promise you this is a solved problem as 
well.  Sure, it has to be done right, but this is true of anything.

Just my opinion.

-[Unknown]


Walter Bright wrote:
 Unknown W. Brackets Wrote:
 As a side note, I work for a web company, and we use PHP primarily
 - which language I do like.  But it would be cool to see D eat its
 own dogfood here, and host the website on its own, lightweight
 webserver with D-coded dynamic pages.  This wouldn't be hard to
 write at all, and would really show the versatility of D (as well
 as efficiency, assuming it handled load well.)  Maybe not
 practically the best, though.
The web pages are all static. Not that they have to be, but doing a dynamically generated site the size of digitalmars.com would probably be a full time job in itself.
Jan 22 2008
parent reply Walter Bright <newshound1 digitalmars.com> writes:
I'm sure it is easy for someone who has done a lot of this stuff. But 
it's all new to me.

Right now, the pages are all generated from Ddoc source files according 
to macros. Redoing the macros and style sheets would transform the site 
without needing to rewrite any of the content.

Putting user content on there is another problem, though, because 
someone would have to regularly cull the spam and vandalism from it.

The "archives" pages are all generated by a custom D program that reads 
the newsgroup files and generates the corresponding html page.

Unknown W. Brackets wrote:
 Speaking as a professional at what you're talking about, there's not a 
 chance it would.
 
 I will say that the company I work for would ask no less than $40k to do 
 a site like digitalmars.com/d, but that's still only 400 hours of work 
 (give or take.)  After that you're normally talking about it reading a 
 database, files or protocols from other softwares, or even flat files 
 for those who like that.... and that is something anyone can do.
 
 Even if it did require a part time, or even full time, position in 
 itself - if that's what D needs, why is that a problem?  I can guarantee 
 you that you'll find enough volunteers if you're worried about cost.
 
 If you're worried about efficiency, I've worked on stuff that've gone on 
 ABC's website etc., and I can promise you this is a solved problem as 
 well.  Sure, it has to be done right, but this is true of anything.
 
 Just my opinion.
 
 -[Unknown]
 
 
 Walter Bright wrote:
 Unknown W. Brackets Wrote:
 As a side note, I work for a web company, and we use PHP primarily
 - which language I do like.  But it would be cool to see D eat its
 own dogfood here, and host the website on its own, lightweight
 webserver with D-coded dynamic pages.  This wouldn't be hard to
 write at all, and would really show the versatility of D (as well
 as efficiency, assuming it handled load well.)  Maybe not
 practically the best, though.
The web pages are all static. Not that they have to be, but doing a dynamically generated site the size of digitalmars.com would probably be a full time job in itself.
Jan 23 2008
parent reply "Unknown W. Brackets" <unknown simplemachines.org> writes:
Yes, of course.... but that's what specialization is all about!  I may 
know a thing or two about the web, but I could never begin to write a 
programming language.  Closest I can get is a low-end scripting 
language.  Growing a project is all about getting people with good 
skills together.

To add user comments to the site, the Ddoc-generated files could be 
output to template files (read: no differently), which might then be 
used by a system which would interpolate those with user-comments.

There's no reason you would need to change your process.  There's no 
reason the documentation has to be dynamic any differently than it 
already is (Ddoc is a part of D, after all, and a good one at that.)

Vandalism can be handled by moderators.  Likely, with a situation like 
this, comments would not become public until they were approved.  Also, 
with the right server- and client-side coding, spam can be minimized. 
It really would only take maybe three people checking each once a day 
and that would probably be well-sufficient for the time being.

I am by no means suggesting you need to throw everything out the window 
and start doing things some strange way.  After all, I wouldn't do that. 
  But a little interactivity can go a long way.

-[Unknown]


Walter Bright wrote:
 I'm sure it is easy for someone who has done a lot of this stuff. But 
 it's all new to me.
 
 Right now, the pages are all generated from Ddoc source files according 
 to macros. Redoing the macros and style sheets would transform the site 
 without needing to rewrite any of the content.
 
 Putting user content on there is another problem, though, because 
 someone would have to regularly cull the spam and vandalism from it.
 
 The "archives" pages are all generated by a custom D program that reads 
 the newsgroup files and generates the corresponding html page.
 
 Unknown W. Brackets wrote:
 Speaking as a professional at what you're talking about, there's not a 
 chance it would.

 I will say that the company I work for would ask no less than $40k to 
 do a site like digitalmars.com/d, but that's still only 400 hours of 
 work (give or take.)  After that you're normally talking about it 
 reading a database, files or protocols from other softwares, or even 
 flat files for those who like that.... and that is something anyone 
 can do.

 Even if it did require a part time, or even full time, position in 
 itself - if that's what D needs, why is that a problem?  I can 
 guarantee you that you'll find enough volunteers if you're worried 
 about cost.

 If you're worried about efficiency, I've worked on stuff that've gone 
 on ABC's website etc., and I can promise you this is a solved problem 
 as well.  Sure, it has to be done right, but this is true of anything.

 Just my opinion.

 -[Unknown]


 Walter Bright wrote:
 Unknown W. Brackets Wrote:
 As a side note, I work for a web company, and we use PHP primarily
 - which language I do like.  But it would be cool to see D eat its
 own dogfood here, and host the website on its own, lightweight
 webserver with D-coded dynamic pages.  This wouldn't be hard to
 write at all, and would really show the versatility of D (as well
 as efficiency, assuming it handled load well.)  Maybe not
 practically the best, though.
The web pages are all static. Not that they have to be, but doing a dynamically generated site the size of digitalmars.com would probably be a full time job in itself.
Jan 23 2008
parent reply Walter Bright <newshound1 digitalmars.com> writes:
Unknown W. Brackets wrote:
 Yes, of course.... but that's what specialization is all about!  I may 
 know a thing or two about the web, but I could never begin to write a 
 programming language.  Closest I can get is a low-end scripting 
 language.  Growing a project is all about getting people with good 
 skills together.
I agree.
 To add user comments to the site, the Ddoc-generated files could be 
 output to template files (read: no differently), which might then be 
 used by a system which would interpolate those with user-comments.
Ok. I've always been a bit unhappy with the [Comments] thing because the comments get put on a different page. If the comments could be appended to the page (after moderation), that would be a big improvement.
 There's no reason you would need to change your process.  There's no 
 reason the documentation has to be dynamic any differently than it 
 already is (Ddoc is a part of D, after all, and a good one at that.)
Converting the site to Ddoc was a huge productivity booster for me, and also made the site much more consistent. Ddoc for phobos probably produced well over an order of magnitude improvement in the quality of the phobos documentation.
 Vandalism can be handled by moderators.  Likely, with a situation like 
 this, comments would not become public until they were approved.  Also, 
 with the right server- and client-side coding, spam can be minimized. It 
 really would only take maybe three people checking each once a day and 
 that would probably be well-sufficient for the time being.
I like that idea better than logins, captcha's, and other impediments.
 I am by no means suggesting you need to throw everything out the window 
 and start doing things some strange way.  After all, I wouldn't do that. 
  But a little interactivity can go a long way.
I sent the source to the site to Daniel. Let's see what he can do with it! The look is controlled by just two files - style.css and doc.ddoc (which has all the macro text).
Jan 23 2008
next sibling parent reply Michel Fortin <michel.fortin michelf.com> writes:
On 2008-01-23 06:09:54 -0500, Walter Bright <newshound1 digitalmars.com> said:

 Converting the site to Ddoc was a huge productivity booster for me, and 
 also made the site much more consistent. Ddoc for phobos probably 
 produced well over an order of magnitude improvement in the quality of 
 the phobos documentation.
Have you thought about publishing all these pages in Ddoc format too? If one could replace the overview.html file in the URL with overview.d to get the Ddoc source, it'd be a great way to learn about Ddoc. Perhaps there could be a link to that source file beside "Page generated by Ddoc" in the footer of Ddoc-generated pages. -- Michel Fortin michel.fortin michelf.com http://michelf.com/
Jan 23 2008
parent Walter Bright <newshound1 digitalmars.com> writes:
Michel Fortin wrote:
 On 2008-01-23 06:09:54 -0500, Walter Bright <newshound1 digitalmars.com> 
 said:
 
 Converting the site to Ddoc was a huge productivity booster for me, 
 and also made the site much more consistent. Ddoc for phobos probably 
 produced well over an order of magnitude improvement in the quality of 
 the phobos documentation.
Have you thought about publishing all these pages in Ddoc format too?
Yes, I've just never gotten around to it.
Jan 23 2008
prev sibling parent reply Daniel <murpsoft hotmail.com> writes:
Walter Bright Wrote:
 I sent the source to the site to Daniel. Let's see what he can do with 
 it! The look is controlled by just two files - style.css and doc.ddoc 
 (which has all the macro text).
I'll certainly take a look when I get home. At the moment, it's 11:38 am and I'm at work. : p I'm currently in need of a breather to work out more theory behind my parser/interpreter; so this just might do it. After I've read the files, I shall focus on first things first; getting the comments inlined into the documentation page, collapsable and clearly indicated as just comments, and then writing a comment post form generator in javascript (which hides it from spam web trawler scripts) Ideally, comments should be visible both on the page and in a centralized place, and possibly with an RSS feed. Who disagrees? Preferences? Other features? Regards, Dan
Jan 23 2008
next sibling parent "Unknown W. Brackets" <unknown simplemachines.org> writes:
My suggestions would be (obviously just my opinion):

1. Before writing any backend, verify with Walter what the server supports.

2. Make sure it supports moderation (frontend should emphasize this.)

3. Moderation would probably be presented with the author, date, 
comment, and page commented for approval - one big list, I'm sure.

4. An rss feed with an optional filter for the page, would definitely be 
useful.  Most likely it would have a flag for approved/unapproved.

5. Some way of highlighting D code within comments would be nice 
(possibly marked up with <code>?)

6. If you're going to use JavaScript, assuming you provide some sort of 
fallback (like a link) to people who have no JavaScript, it might be 
nice to allow the comments per-section in the specification pages.  I'm 
not sure how this would work, though.

For reference, I suggest looking at the PHP pages which have similar 
functionality:
http://us.php.net/array_rand
http://us.php.net/manual/add-note.php?sect=function.array-rand&redirect=http://us.php.net/manual/en/function.array-rand.php

But again, these are just my suggestions.  Hopefully if Walter or anyone 
else have any specific ideas they will say something.

-[Unknown]


Daniel wrote:
 Walter Bright Wrote:
 I sent the source to the site to Daniel. Let's see what he can do with 
 it! The look is controlled by just two files - style.css and doc.ddoc 
 (which has all the macro text).
I'll certainly take a look when I get home. At the moment, it's 11:38 am and I'm at work. : p I'm currently in need of a breather to work out more theory behind my parser/interpreter; so this just might do it. After I've read the files, I shall focus on first things first; getting the comments inlined into the documentation page, collapsable and clearly indicated as just comments, and then writing a comment post form generator in javascript (which hides it from spam web trawler scripts) Ideally, comments should be visible both on the page and in a centralized place, and possibly with an RSS feed. Who disagrees? Preferences? Other features? Regards, Dan
Jan 23 2008
prev sibling parent reply Walter Bright <newshound1 digitalmars.com> writes:
Daniel wrote:
 Walter Bright Wrote:
 I sent the source to the site to Daniel. Let's see what he can do
 with it! The look is controlled by just two files - style.css and
 doc.ddoc (which has all the macro text).
I'll certainly take a look when I get home. At the moment, it's 11:38 am and I'm at work. : p I'm currently in need of a breather to work out more theory behind my parser/interpreter; so this just might do it. After I've read the files, I shall focus on first things first; getting the comments inlined into the documentation page, collapsable and clearly indicated as just comments, and then writing a comment post form generator in javascript (which hides it from spam web trawler scripts) Ideally, comments should be visible both on the page and in a centralized place, and possibly with an RSS feed. Who disagrees? Preferences? Other features?
The whole look of the site is controlled by two files, doc.ddoc and style.css. Can we start with something more modest and just update them to give the site a better look?
Jan 24 2008
parent reply Dan <murpsoft hotmail.com> writes:
Walter Bright Wrote:

 Daniel wrote:
 Walter Bright Wrote:
 I sent the source to the site to Daniel. Let's see what he can do
 with it! The look is controlled by just two files - style.css and
 doc.ddoc (which has all the macro text).
I'll certainly take a look when I get home. At the moment, it's 11:38 am and I'm at work. : p I'm currently in need of a breather to work out more theory behind my parser/interpreter; so this just might do it. After I've read the files, I shall focus on first things first; getting the comments inlined into the documentation page, collapsable and clearly indicated as just comments, and then writing a comment post form generator in javascript (which hides it from spam web trawler scripts) Ideally, comments should be visible both on the page and in a centralized place, and possibly with an RSS feed. Who disagrees? Preferences? Other features?
The whole look of the site is controlled by two files, doc.ddoc and style.css. Can we start with something more modest and just update them to give the site a better look?
Walter, I've read the code you have to generate the website. I'm usually quite blunt, so please excuse my saying that you've used an axe to pound in a nail. You're welcome to say the same about my interpreter as long as you offer to help. ; ) I shall endeavor to use your existing system and see what I can do about the look. I'll send that to you and we shall progress from there. Regards, Dan
Jan 24 2008
parent reply Walter Bright <newshound1 digitalmars.com> writes:
Dan wrote:
 Walter, I've read the code you have to generate the website.  I'm
 usually quite blunt, so please excuse my saying that you've used an
 axe to pound in a nail.  You're welcome to say the same about my
 interpreter as long as you offer to help.  ; )
No problem! I don't claim any particular expertise in html, CSS, or web site design. In fact, I have a lot of trouble with CSS, as you can tell by trying to click on the tabs in the upper right corner under Explorer (it works under Ubuntu). I spent a lot of time trying to figure that out, and finally gave up.
 I shall endeavor to use your existing system and see what I can do
 about the look.  I'll send that to you and we shall progress from
 there.
Thank-you. P.S. One of the reasons for the extensive use of macros is the dream of one day being able to generate pdf files directly from the doc source pages via LaTeX (and not have them look like crappy converted html).
Jan 24 2008
next sibling parent reply Dan <murpsoft hotmail.com> writes:
Walter Bright Wrote:
Dan Wrote:
 I shall endeavor to use your existing system and see what I can do
 about the look.  I'll send that to you and we shall progress from
 there.
Thank-you.
Just so nobody shoots me, I was *asked* to do the look first. : ) The first layout/imagery iteration has been sent to Walter and looks uncannily like forums.aw8.net because I was trying to. The imagery *is* all from-scratch. I want more feedback from Walter before investing more time in any direction. I'm thinking to: - possibly making it feel less glowy/fuzzy/round - get it from blue to carbon-pattern dark-grey, white, orange and red. - trimming the 18kb image size - adding white square tabs/drop downs at the top, each containing one of the left sidebar sections. - integrate it into Walter's macro system. : ) More importantly, what is Walter thinking? Off to bed, it's now 11pm.
Jan 24 2008
parent Dan <murpsoft hotmail.com> writes:
Dan Wrote:

 Walter Bright Wrote:
Dan Wrote:
 I shall endeavor to use your existing system and see what I can do
 about the look.  I'll send that to you and we shall progress from
 there.
Thank-you.
Just so nobody shoots me, I was *asked* to do the look first. : ) The first layout/imagery iteration has been sent to Walter and looks uncannily like forums.aw8.net because I was trying to. The imagery *is* all from-scratch. I want more feedback from Walter before investing more time in any direction. I'm thinking to: - possibly making it feel less glowy/fuzzy/round - get it from blue to carbon-pattern dark-grey, white, orange and red. - trimming the 18kb image size - adding white square tabs/drop downs at the top, each containing one of the left sidebar sections. - integrate it into Walter's macro system. : ) More importantly, what is Walter thinking? Off to bed, it's now 11pm.
I couldn't sleep. The thought crossed my mind that I had entirely the wrong idea - that I should just be making some small stylesheet changes to make the current site look a little prettier, not a complete freakin' redesign. That and my wife started snoring. So, I'll be back with a few more trivial changes to the existing site instead; and I'll stop posting to the forums every time I have anything at all to say. : p
Jan 24 2008
prev sibling next sibling parent "Unknown W. Brackets" <unknown simplemachines.org> writes:
This is because the containers are floating.  IE loves being funny.

Add height: 28px; to the div#headingNav rule, then add float: left; to 
the div#lastupdate rule.  Also, I suggest adding clear: both; to the 
div#navigation rule.

After that, reverse the order of "lastupdate" and "headingNav" by 
putting "lastupdate" first in the HTML.

This should fix it afaict.  It will make IE6 give the full block as a 
link, and IE7 will no longer limit the link inside the containing ul 
(which had a useless 4px padding rule on it btw since it had no 
effective height.)

-[Unknown]


Walter Bright wrote:
 No problem! I don't claim any particular expertise in html, CSS, or web 
 site design. In fact, I have a lot of trouble with CSS, as you can tell 
 by trying to click on the tabs in the upper right corner under Explorer 
 (it works under Ubuntu). I spent a lot of time trying to figure that 
 out, and finally gave up.
Jan 24 2008
prev sibling parent reply Leandro Lucarella <llucax gmail.com> writes:
Walter Bright, el 24 de enero a las 02:38 me escribiste:
 Dan wrote:
Walter, I've read the code you have to generate the website.  I'm
usually quite blunt, so please excuse my saying that you've used an
axe to pound in a nail.  You're welcome to say the same about my
interpreter as long as you offer to help.  ; )
No problem! I don't claim any particular expertise in html, CSS, or web site design. In fact, I have a lot of trouble with CSS, as you can tell by trying to click on the tabs in the upper right corner under Explorer (it works under Ubuntu). I spent a lot of time trying to figure that out, and finally gave up.
I shall endeavor to use your existing system and see what I can do
about the look.  I'll send that to you and we shall progress from
there.
Thank-you. P.S. One of the reasons for the extensive use of macros is the dream of one day being able to generate pdf files directly from the doc source pages via LaTeX (and not have them look like crappy converted html).
I don't know what are your specific needs, but maybe you should consider using RestructuredText[1]. Is easy to write, powerful and, if needed, extensible. [1] http://docutils.sourceforge.net/rst.html -- Leandro Lucarella (luca) | Blog colectivo: http://www.mazziblog.com.ar/blog/ ---------------------------------------------------------------------------- GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145 104C 949E BFB6 5F5A 8D05) ---------------------------------------------------------------------------- En ese preciso instante ella con un leve gemido nos dice: "Ponla, Tito! Ponla!". -- Sidharta Kiwi
Jan 24 2008
parent Dan <murpsoft hotmail.com> writes:
Leandro Lucarella Wrote:
 
 I don't know what are your specific needs, but maybe you should consider
 using RestructuredText[1]. Is easy to write, powerful and, if needed,
 extensible.
 
 [1] http://docutils.sourceforge.net/rst.html
I visited their website. It doesn't look like it helped them very much. : p I do tend to think that a template mechanism would server Walter Bright's objectives better than the macro scheme. Each page outside the template ought to only have the content section. Having only a minimal set of directives would be more maintainable, and easier to parse towards pdf or any other format. I would think <h1-5>,<p>,<code>,<q>,<img>, and <a href> ought to do it; but there might be a couple others. Walter Bright wanted me to touch up the look first, so I submitted several small changes to the css that ought to make the site look a little more refined without improving functionality much. I didn't notice that post about the IE7 bug before submitting the patch to Walter though; and the comments/rss mechanism hasn't been touched. Next go round? : p
Jan 24 2008
prev sibling next sibling parent Walter Bright <newshound1 digitalmars.com> writes:
Unknown W. Brackets wrote:
 http://www.unknownbrackets.com/tutorials/polishing-d
Now on Reddit: http://reddit.com/r/programming/info/669pe/comments/
Jan 22 2008
prev sibling next sibling parent reply Daniel <murpsoft hotmail.com> writes:
Jarrod Wrote:

 On Sun, 20 Jan 2008 21:32:45 -0800, Walter Bright wrote:
 
 Thanks for taking the time to write this. I think your suggestions are
 very good.
I think I should ask you here since it's in context with the Phobos suggestions. What are you planning to do with Tango? Personally I prefer the Phobos API for it's naming, organisation and documentation, but I also like the extra features tango adds and of course I don't want to say no to a faster garbage collector and less bugs, which leaves me torn. Perhaps it might be time to replace Phobos, or (even better) officially merge the two libraries? Better now than later.
Walter is, and ought to be, focusing his efforts on the language more than the libraries. Oddly, I would argue that all libraries are simply stop-gap fixes for missing or poorly implemented language features; indeed most programming code tends to be. However, D has phobos, there was mango, now tango, and work has been done on a tangobos. The fact that the library keeps changing shows that D's language features actually have an impact, as they frequently replace or integrate library features. Regards, Dan
Jan 23 2008
next sibling parent reply Jarrod <qwerty ytre.wq> writes:
On Wed, 23 Jan 2008 21:52:19 -0500, Daniel wrote:

 Walter is, and ought to be, focusing his efforts on the language more
 than the libraries.
 
 Oddly, I would argue that all libraries are simply stop-gap fixes for
 missing or poorly implemented language features; indeed most programming
 code tends to be.
 
 However, D has phobos, there was mango, now tango, and work has been
 done on a tangobos.  The fact that the library keeps changing shows that
 D's language features actually have an impact, as they frequently
 replace or integrate library features.
 
 Regards,
 Dan
To claim Phobos is not a part of D is to claim the C stdlib is not a part of C. Phobos is a part of D, and it's a very important part of D too (hell we can't even have classes without Object.d). Walter is the father of Phobos and although he allows others to contribute to it, he is the one who decides what to add to Phobos and how to add it. Yes, Walter should focus on developing the language of course, but he also has to decide what the *standard* library is going to be since he is after all the head project manager of both Phobos and D. I emphasize the word *standard* because right now, we don't have a standard. Unless you include a bunch of versioning/mixin hacks, we currently have code that won't even compile on different workstations because of two very different core libraries that are totally incompatible. So now we're stuck with an annoying rift. Tangobos is a step in the right direction to get compatibility back, but at the moment it's just a band-aid solution. All I want to see is a standard, be it Phobos with all the cool stuff Tango adds, or a Tango with all the nice things Phobos has. But this isn't going to happen unless one of the dev teams concedes already :|
Jan 24 2008
next sibling parent reply Lars Ivar Igesund <larsivar igesund.net> writes:
Jarrod wrote:

 On Wed, 23 Jan 2008 21:52:19 -0500, Daniel wrote:
 
 Walter is, and ought to be, focusing his efforts on the language more
 than the libraries.
 
 Oddly, I would argue that all libraries are simply stop-gap fixes for
 missing or poorly implemented language features; indeed most programming
 code tends to be.
 
 However, D has phobos, there was mango, now tango, and work has been
 done on a tangobos.  The fact that the library keeps changing shows that
 D's language features actually have an impact, as they frequently
 replace or integrate library features.
 
 Regards,
 Dan
To claim Phobos is not a part of D is to claim the C stdlib is not a part of C. Phobos is a part of D, and it's a very important part of D too (hell we can't even have classes without Object.d). Walter is the father of Phobos and although he allows others to contribute to it, he is the one who decides what to add to Phobos and how to add it. Yes, Walter should focus on developing the language of course, but he also has to decide what the *standard* library is going to be since he is after all the head project manager of both Phobos and D. I emphasize the word *standard* because right now, we don't have a standard. Unless you include a bunch of versioning/mixin hacks, we currently have code that won't even compile on different workstations because of two very different core libraries that are totally incompatible. So now we're stuck with an annoying rift. Tangobos is a step in the right direction to get compatibility back, but at the moment it's just a band-aid solution. All I want to see is a standard, be it Phobos with all the cool stuff Tango adds, or a Tango with all the nice things Phobos has. But this isn't going to happen unless one of the dev teams concedes already :|
More curiosity from me, what in Phobos do you consider cool, and at the same time miss in Tango? -- Lars Ivar Igesund blog at http://larsivi.net DSource, #d.tango & #D: larsivi Dancing the Tango
Jan 25 2008
parent reply Jarrod <qwerty ytre.wq> writes:
On Fri, 25 Jan 2008 19:01:26 +0100, Lars Ivar Igesund wrote:

 More curiosity from me, what in Phobos do you consider cool, and at the
 same time miss in Tango?
Cool phobos stuff: toString. 'Nuff said. toStringz is also much easier to find. I had to follow a bug report under trac that I found with the search feature, just to find the same thing in Tango. In Phobos the API layout and naming conventions 'feel' more right to me. If I need something solved with the library, I can generally find it quickly and easily because of its obvious naming, then just look up the documentation and within a few minutes I have a solution. On the other hand Tango made me fiddle around a bit. A lot of API felt unfamiliar to me for some reason (perhaps my heavy C background?), and the documentation doesn't seem as clean. For example, just to find out how to add a pointer to the garbage collector made me have to search the trac just to find it. In Phobos it was pretty much instantly apparent. 'std.gc'. I mean it's so apparent I can recall it off the top of my head, and it's not like I've used it more than the tango one which I can't at all recall the location of without looking it up (I remember it was an object called GC though if that's a consolation, but I only remember that because I aliased stc.gc to GC so as to have minimum versioning issues) Oh, and the Phobos libs don't have leading Capitol Letters and oh man I don't really like that in Tango. On the other foot, things I want from Tango: Better threading, the fixed bugs, the text modules, the faster GC, all the useful extras like signals and etc are all really handy and useful. So in short, "stuff". Tangobos is pretty much my answer for now I guess, but I'd prefer a proper merge rather than having the two libraries just slapped together (okay I'm not trying to be mean here, it's not like Tangobos was a 5 minute hack and I know that, but you get the point). Well, hope that sates some of your curiosity. But odds are you probably have questions for some of my answers now. :>
Jan 26 2008
parent Lars Ivar Igesund <larsivar igesund.net> writes:
Jarrod wrote:

 On Fri, 25 Jan 2008 19:01:26 +0100, Lars Ivar Igesund wrote:
 
 More curiosity from me, what in Phobos do you consider cool, and at the
 same time miss in Tango?
Cool phobos stuff: toString. 'Nuff said.
? Tango has toString too.
 toStringz is also much easier to find. I had to follow a bug report under
 trac that I found with the search feature, just to find the same thing in
 Tango.
It is indeed considered a C compatibility routine which may make it harder to find. This particular case is due to a wish to keep C out of the main portions of the Tango user API which we try to keep to D as much as possible. It is still avaialable through the stdc package though.
 
 In Phobos the API layout and naming conventions 'feel' more right to me.
 If I need something solved with the library, I can generally find it
 quickly and easily because of its obvious naming, then just look up the
 documentation and within a few minutes I have a solution.
 On the other hand Tango made me fiddle around a bit. A lot of API felt
 unfamiliar to me for some reason (perhaps my heavy C background?), and
 the documentation doesn't seem as clean. For example, just to find out
 how to add a pointer to the garbage collector made me have to search the
 trac just to find it. In Phobos it was pretty much instantly apparent.
 'std.gc'. I mean it's so apparent I can recall it off the top of my head,
 and it's not like I've used it more than the tango one which I can't at
 all recall the location of without looking it up (I remember it was an
 object called GC though if that's a consolation, but I only remember that
 because I aliased stc.gc to GC so as to have minimum versioning issues)
Yes, the Tango API docs could be much better organized, and we know this. This is made a much more important facet of your problems above due to Tango having rather much more functionality, thus needing more modules. In addition we find it important to keep interdependencies low where possible, leading to some additional modules.
 Oh, and the Phobos libs don't have leading Capitol Letters and oh man I
 don't really like that in Tango.
Ignoring this :)
 On the other foot, things I want from Tango:
 Better threading, the fixed bugs, the text modules, the faster GC, all
 the useful extras like signals and etc are all really handy and useful.
 So in short, "stuff".
 
 Tangobos is pretty much my answer for now I guess, but I'd prefer a
 proper merge rather than having the two libraries just slapped together
 (okay I'm not trying to be mean here, it's not like Tangobos was a 5
 minute hack and I know that, but you get the point).
I think I addressed this in my other post (the stuff about merging).
 
 Well, hope that sates some of your curiosity.
 But odds are you probably have questions for some of my answers now. :>
No, I don't think I have :) Thank you very much for your feedback. I'd wish I didn't have to pull it out of you though ;) -- Lars Ivar Igesund blog at http://larsivi.net DSource, #d.tango & #D: larsivi Dancing the Tango
Jan 26 2008
prev sibling parent reply Sean Kelly <sean f4.ca> writes:
Jarrod wrote:
 On Wed, 23 Jan 2008 21:52:19 -0500, Daniel wrote:
 
 Walter is, and ought to be, focusing his efforts on the language more
 than the libraries.

 Oddly, I would argue that all libraries are simply stop-gap fixes for
 missing or poorly implemented language features; indeed most programming
 code tends to be.

 However, D has phobos, there was mango, now tango, and work has been
 done on a tangobos.  The fact that the library keeps changing shows that
 D's language features actually have an impact, as they frequently
 replace or integrate library features.

 Regards,
 Dan
To claim Phobos is not a part of D is to claim the C stdlib is not a part of C.
Walter has said very explicitly on a number of occasions that he doesn't like that the C and C++ language spec includes the library spec. In fact, I'm pretty sure this is the reason the Phobos documentation is separated from the language documentation. That isn't to say that there is no value in a language having a specific standard library, but I think it's somewhat of a different issue from that of them being defined in the same spec.
 Phobos is a part of D, and it's a very important part of D too (hell we 
 can't even have classes without Object.d). Walter is the father of Phobos 
 and although he allows others to contribute to it, he is the one who 
 decides what to add to Phobos and how to add it. Yes, Walter should focus 
 on developing the language of course, but he also has to decide what the 
 *standard* library is going to be since he is after all the head project 
 manager of both Phobos and D.
I think one of the arguments for having the library spec exist separate from the language spec is to provide a division of labor. The C++ committee has a number of sub-committees dedicated to different areas, but each change still needs to be voted on by the whole group. I certainly can't claim to speak for Walter, but were I in his place I'd prefer to be in an advisory position for the library rather than the principal maintainer. It seems that things are moving a bit in that direction with Andrei and Brad working on Phobos as well, but Walter still has the appearance of being the go-to man for everything related to D, which is a huge responsibility in terms of the time commitment required.
 All I want to see is a standard, be it Phobos with all the cool stuff 
 Tango adds, or a Tango with all the nice things Phobos has.
Personally, I don't think a standard library must have every bell and whistle. Rather, I'd like it to provide enough of a programming framework that libraries which follow the framework are likely to work together very well, and for it to provide the most commonly used features so I don't have to go searching for a third-party library for every day stuff. The C++ standard library does a decent job of this with its iterators and algorithms, but it leaves too many holes in other areas. No one seems to be terribly fond of iostreams, for example, and the design is difficult to adapt to more complex needs. Sean
Jan 25 2008
parent reply Jarrod <qwerty ytre.wq> writes:
Well okay, valid points there and I never really said the opposite. But 
Walter does in the end decide what Phobos is, and he will be "The Guy" 
who decides to incorporate/replace/ignore the tango effort.
So it makes sense to appeal to him for this issue.


 Personally, I don't think a standard library must have every bell and
 whistle.
Indeed, but surely you can't ignore many of the numerous advancements of tango and shrug them off as 'extra bells and whistles.' What bugs me overall is not the rift between features on either side, but rather the incompatibility issues. Unless there is a merge, there will be two standards.. Which is clearly an oxymoron. A merge could get the Tango team to work with Phobos too, so everyone can help it advance. Hey, it worked real well for compiz and beryl.
Jan 26 2008
next sibling parent reply Lars Ivar Igesund <larsivar igesund.net> writes:
Jarrod wrote:

 A merge could get the Tango team to work with Phobos too, so everyone can
 help it advance. Hey, it worked real well for compiz and beryl.
There are two aspects about Tango, the runtime and the user level API. It would indeed be beneficial if the first could be compatible with the one in Phobos, and we still hope to achieve that in some sense. As for the user API, that is what most people see, and what garners the most opinions. I don't think it will be particularly useful to merge that with Phobos, although they can be shipped together (as is done with the Tangobos bundles). Even though Phobos and Tango then can be used at the same time, that doesn't really make much sense unless you are forced that way by your library dependencies. If you use one part of Tango, you are likely to find good complimentary functionality elsewhere in Tango rather than in Phobos, and probably vice versa. As for working together, that is a possibility with the runtime, but considering we have rather different opinions on how to shape the library, it is very unlikely for user library, at least across the board. There are some minor parts that are fairly close to each other, and where fixes or improvements may be applied to both. -- Lars Ivar Igesund blog at http://larsivi.net DSource, #d.tango & #D: larsivi Dancing the Tango
Jan 26 2008
parent reply Jarrod <qwerty ytre.wq> writes:
On Sat, 26 Jan 2008 19:24:13 +0100, Lars Ivar Igesund wrote:

 Jarrod wrote:
 
 A merge could get the Tango team to work with Phobos too, so everyone
 can help it advance. Hey, it worked real well for compiz and beryl.
There are two aspects about Tango, the runtime and the user level API. It would indeed be beneficial if the first could be compatible with the one in Phobos, and we still hope to achieve that in some sense. As for the user API, that is what most people see, and what garners the most opinions. I don't think it will be particularly useful to merge that with Phobos, although they can be shipped together (as is done with the Tangobos bundles). Even though Phobos and Tango then can be used at the same time, that doesn't really make much sense unless you are forced that way by your library dependencies. If you use one part of Tango, you are likely to find good complimentary functionality elsewhere in Tango rather than in Phobos, and probably vice versa. As for working together, that is a possibility with the runtime, but considering we have rather different opinions on how to shape the library, it is very unlikely for user library, at least across the board. There are some minor parts that are fairly close to each other, and where fixes or improvements may be applied to both.
Okay I get it, Tango seems to have been made because some people didn't like the Phobos API, not because it lacked features. But in the end a lot of people choose Tango because of its features and better runtime. Not trying to rub a lemon in your eye here or anything and hey I could be very wrong on this, but maybe different API wasn't what most people needed? Besides, if you merged couldn't you make a deal? Convince Walter to perhaps change or add a few API in Phobos to the 'better' Tango ones as you see them? Oh and because I'm too lazy to reply to your other post directly :P Regarding toString: Yes Tango has toString but iirc you have to import each library for the datatype that you want to convert from, don't you? Not so good in template functions. All you need from Phobos is str.toString.
Jan 26 2008
parent "Kris" <foo bar.com> writes:
"Jarrod" <qwerty ytre.wq> wrote in message 
news:fnge6e$1eto$1 digitalmars.com...
 On Sat, 26 Jan 2008 19:24:13 +0100, Lars Ivar Igesund wrote:

 Jarrod wrote:

 A merge could get the Tango team to work with Phobos too, so everyone
 can help it advance. Hey, it worked real well for compiz and beryl.
There are two aspects about Tango, the runtime and the user level API. It would indeed be beneficial if the first could be compatible with the one in Phobos, and we still hope to achieve that in some sense. As for the user API, that is what most people see, and what garners the most opinions. I don't think it will be particularly useful to merge that with Phobos, although they can be shipped together (as is done with the Tangobos bundles). Even though Phobos and Tango then can be used at the same time, that doesn't really make much sense unless you are forced that way by your library dependencies. If you use one part of Tango, you are likely to find good complimentary functionality elsewhere in Tango rather than in Phobos, and probably vice versa. As for working together, that is a possibility with the runtime, but considering we have rather different opinions on how to shape the library, it is very unlikely for user library, at least across the board. There are some minor parts that are fairly close to each other, and where fixes or improvements may be applied to both.
Okay I get it, Tango seems to have been made because some people didn't like the Phobos API, not because it lacked features. But in the end a lot of people choose Tango because of its features and better runtime. Not trying to rub a lemon in your eye here or anything and hey I could be very wrong on this, but maybe different API wasn't what most people needed?
There's a lot of history behind this, so it's understandable that many newer folks won't know the story. You might take a look at the Ares forum on dsource to get a broader picture, but it boils down to one fact: phobos was going nowhere - patches were being sent to walter and not being applied for over a year, etc. Not to mention that it was, at the time most would agree, a bit of a design mish-mash. A variety of folks felt that Walter should not be burdened with the library, when it was abundantly clear his focus and priority was the language instead. The upshot was something "owned", guided, driven and maintained by the community instead. To suggest that was borne of merely a dislike for an API is like saying D exists simply because Walter doesn't like Bjarne's haircut.
 Besides, if you merged couldn't you make a deal? Convince Walter to
 perhaps change or add a few API in Phobos to the 'better' Tango ones as
 you see them?


 Oh and because I'm too lazy to reply to your other post directly :P
 Regarding toString: Yes Tango has toString but iirc you have to import
 each library for the datatype that you want to convert from, don't you?
 Not so good in template functions. All you need from Phobos is
 str.toString.
Where phobos is monolithic, Tango is modular. There's a price to pay for that, in that modularity can sometimes require an extra import. While this is hardly an impediment, you could happily import tango.util.Convert instead, and exchange modularity for triviality. This is a general philosophy within Tango - keep things modular, and provide a wrapper on top for those who prefer that instead. It's more work to design and build a library that way (often much more), but it's worth it to many folks.
Jan 26 2008
prev sibling parent "Kris" <foo bar.com> writes:
"Jarrod" <qwerty ytre.wq> wrote in message 
news:fnfa1t$1o1g$2 digitalmars.com...

 What bugs me overall is not the rift between features on either side, but
 rather the incompatibility issues. Unless there is a merge, there will be
 two standards..
Jarrod: In what manner does Tangobos not provide the "merge" you describe? It permits you to import, compile and link both phobos and Tango modules without fuss (which is what people had asked for). If you have a different idea of what that "merge" should instead be, would you please clarify?
Jan 26 2008
prev sibling parent reply Lars Ivar Igesund <larsivar igesund.net> writes:
Daniel wrote:

 Jarrod Wrote:
 
 On Sun, 20 Jan 2008 21:32:45 -0800, Walter Bright wrote:
 
 Thanks for taking the time to write this. I think your suggestions are
 very good.
I think I should ask you here since it's in context with the Phobos suggestions. What are you planning to do with Tango? Personally I prefer the Phobos API for it's naming, organisation and documentation, but I also like the extra features tango adds and of course I don't want to say no to a faster garbage collector and less bugs, which leaves me torn. Perhaps it might be time to replace Phobos, or (even better) officially merge the two libraries? Better now than later.
Walter is, and ought to be, focusing his efforts on the language more than the libraries. Oddly, I would argue that all libraries are simply stop-gap fixes for missing or poorly implemented language features; indeed most programming code tends to be. However, D has phobos, there was mango, now tango, and work has been done on a tangobos. The fact that the library keeps changing shows that D's language features actually have an impact, as they frequently replace or integrate library features.
Mango doesn't fit into the equation as it never was meant to do what Tango is doing, it just happened to have functionality that fit better in Tango. As for Tangobos, it is just a version of Phobos that is made to work (as much as possible) with the runtime in Tango. -- Lars Ivar Igesund blog at http://larsivi.net DSource, #d.tango & #D: larsivi Dancing the Tango
Jan 25 2008
parent Sean Kelly <sean f4.ca> writes:
Lars Ivar Igesund wrote:
 Daniel wrote:
 
 Jarrod Wrote:

 On Sun, 20 Jan 2008 21:32:45 -0800, Walter Bright wrote:

 Thanks for taking the time to write this. I think your suggestions are
 very good.
I think I should ask you here since it's in context with the Phobos suggestions. What are you planning to do with Tango? Personally I prefer the Phobos API for it's naming, organisation and documentation, but I also like the extra features tango adds and of course I don't want to say no to a faster garbage collector and less bugs, which leaves me torn. Perhaps it might be time to replace Phobos, or (even better) officially merge the two libraries? Better now than later.
Walter is, and ought to be, focusing his efforts on the language more than the libraries. Oddly, I would argue that all libraries are simply stop-gap fixes for missing or poorly implemented language features; indeed most programming code tends to be. However, D has phobos, there was mango, now tango, and work has been done on a tangobos. The fact that the library keeps changing shows that D's language features actually have an impact, as they frequently replace or integrate library features.
Mango doesn't fit into the equation as it never was meant to do what Tango is doing, it just happened to have functionality that fit better in Tango. As for Tangobos, it is just a version of Phobos that is made to work (as much as possible) with the runtime in Tango.
It's perhaps worth noting that 99% of the code in Tangobos is identical to Phobos. std.thread is one of only a few modules with any changes whatsoever, and probably the only module with any user-visible changes. Sean
Jan 25 2008
prev sibling next sibling parent Jason House <jason.james.house gmail.com> writes:
Unknown W. Brackets Wrote:

 I thought I might write down some of the many suggestions I have for 
 making D really come into the spotlight as a language.
 
 They cover many areas, and I'm trying to address issues that I feel 
 aren't being given - by what I've seen - enough attention.  I'm sure 
 many of you here will pick me apart, and I look forward to it.
 
 Hopefully some of the suggestions can improve D.
 
 I write these with experience with an open source project I lead the 
 development of, and years of watching the Mozilla development process. 
 I have no doubt that the majority of these things would be of great 
 improvement, if they are possible and done.
 
 http://www.unknownbrackets.com/tutorials/polishing-d
 
 -[Unknown]
I'd love to see an official stance/roadmap by the D community/Walter on how to handle each and every item in your list. Either as tasks in the issue tracker, entries on the D webpage, or some official wiki page. So far, it looks like only the web page item is really being address in reaction to your post. It'd be a real shame if we don't do a better job of handling the items posted. They're well thought out and are accurate about the state of D.
Jan 24 2008
prev sibling next sibling parent reply Robert Fraser <fraserofthenight gmail.com> writes:
You mentioned IDEs a couple times, specifically in that they should be 
able to access DMD via some sort of API. While this would be great, 
Descent (in trunk, sadly the kinks are still being worked out...) takes 
a different approach. We have a full Java port of the DMD semantic 
front-end, which we are using to do things like display errors inline as 
the user types. From working with Descent, I can say that having 
programatic access to the AST would be nice, but since most advanced 
IDEs would want to extend it anyway, it's a lot of work for a small gain.
Jan 24 2008
next sibling parent Dan <murpsoft hotmail.com> writes:
Robert Fraser Wrote:

 You mentioned IDEs a couple times, specifically in that they should be 
 able to access DMD via some sort of API. While this would be great, 
 Descent (in trunk, sadly the kinks are still being worked out...) takes 
 a different approach. We have a full Java port of the DMD semantic 
 front-end, which we are using to do things like display errors inline as 
 the user types. From working with Descent, I can say that having 
 programatic access to the AST would be nice, but since most advanced 
 IDEs would want to extend it anyway, it's a lot of work for a small gain.
Yeah, D exposing the AST would be a *huge* benefit to modifying the compiler, and allowing things like third party profilers and optimizers. For profiling, I've always argued that I want this: ~~~ I can't rightly find out all the things that modify my variable 'x' without an AST; so how am I supposed to notice when I write if(x < 0) x = Math_bla(x); before the only three places calling a function, and then inside the function deep in another file it's already got int Math_bla(x) { if(x > 0) do something if(x == 0) do something else if(x == double.nan) ... } ~~~ This really should be noticed by a profiler/optimizer, so that the programmer can detect impossible branch cases. There's more. We really ought to have a "potential range filter" for numbers; so when we do this: x ^= 1; And later we go: switch(x) { case 1: case 2: case 3: case 4: } When we look at x in that switch, we see that it's inherently even. The problem is intractable without an AST; and even then, the optimizer/profiler will be a grand project.
Jan 24 2008
prev sibling parent "Unknown W. Brackets" <unknown simplemachines.org> writes:
Actually, I'm much more interested in basic things: proper highlighting 
that stays up to date with the language, basic syntax checking that 
really works, proper error file/line integration that doesn't suffer 
from pretty printing, etc.

This is from my experience trying to write a D highlighter/language 
service using the VSIP package for Visual Studio.

But really that's just a thought.  I would like to see D do something 
else "cool" other than just the language itself, but the other things I 
noted are (imho) much bigger issues.

-[Unknown]


Robert Fraser wrote:
 You mentioned IDEs a couple times, specifically in that they should be 
 able to access DMD via some sort of API. While this would be great, 
 Descent (in trunk, sadly the kinks are still being worked out...) takes 
 a different approach. We have a full Java port of the DMD semantic 
 front-end, which we are using to do things like display errors inline as 
 the user types. From working with Descent, I can say that having 
 programatic access to the AST would be nice, but since most advanced 
 IDEs would want to extend it anyway, it's a lot of work for a small gain.
Jan 24 2008
prev sibling next sibling parent reply Dan <murpsoft hotmail.com> writes:
Jarrod Wrote:

 On Wed, 23 Jan 2008 21:52:19 -0500, Daniel wrote:
 
 Walter is, and ought to be, focusing his efforts on the language more
 than the libraries.
 
 Oddly, I would argue that all libraries are simply stop-gap fixes for
 missing or poorly implemented language features; indeed most programming
 code tends to be.
 
 However, D has phobos, there was mango, now tango, and work has been
 done on a tangobos.  The fact that the library keeps changing shows that
 D's language features actually have an impact, as they frequently
 replace or integrate library features.
 
 Regards,
 Dan
To claim Phobos is not a part of D is to claim the C stdlib is not a part of C. Phobos is a part of D, and it's a very important part of D too (hell we can't even have classes without Object.d). Walter is the father of Phobos and although he allows others to contribute to it, he is the one who decides what to add to Phobos and how to add it. Yes, Walter should focus on developing the language of course, but he also has to decide what the *standard* library is going to be since he is after all the head project manager of both Phobos and D. I emphasize the word *standard* because right now, we don't have a standard. Unless you include a bunch of versioning/mixin hacks, we currently have code that won't even compile on different workstations because of two very different core libraries that are totally incompatible. So now we're stuck with an annoying rift. Tangobos is a step in the right direction to get compatibility back, but at the moment it's just a band-aid solution. All I want to see is a standard, be it Phobos with all the cool stuff Tango adds, or a Tango with all the nice things Phobos has. But this isn't going to happen unless one of the dev teams concedes already :|
Fair assessment. I think Tango is more open source and takes the load off Walter. It's just simply too heavyweight for me to dare use it; so library developers go to Tango and library users still go to Phobos. : p That guy who developed the cool Agner Fog optimized mixin algorithm should get access to an AST. I'm sure he could write a kick-ass lib. Regards, Dan
Jan 25 2008
next sibling parent reply Lars Ivar Igesund <larsivar igesund.net> writes:
Dan wrote:

 Jarrod Wrote:
 
 On Wed, 23 Jan 2008 21:52:19 -0500, Daniel wrote:
 
 Walter is, and ought to be, focusing his efforts on the language more
 than the libraries.
 
 Oddly, I would argue that all libraries are simply stop-gap fixes for
 missing or poorly implemented language features; indeed most
 programming code tends to be.
 
 However, D has phobos, there was mango, now tango, and work has been
 done on a tangobos.  The fact that the library keeps changing shows
 that D's language features actually have an impact, as they frequently
 replace or integrate library features.
 
 Regards,
 Dan
To claim Phobos is not a part of D is to claim the C stdlib is not a part of C. Phobos is a part of D, and it's a very important part of D too (hell we can't even have classes without Object.d). Walter is the father of Phobos and although he allows others to contribute to it, he is the one who decides what to add to Phobos and how to add it. Yes, Walter should focus on developing the language of course, but he also has to decide what the *standard* library is going to be since he is after all the head project manager of both Phobos and D. I emphasize the word *standard* because right now, we don't have a standard. Unless you include a bunch of versioning/mixin hacks, we currently have code that won't even compile on different workstations because of two very different core libraries that are totally incompatible. So now we're stuck with an annoying rift. Tangobos is a step in the right direction to get compatibility back, but at the moment it's just a band-aid solution. All I want to see is a standard, be it Phobos with all the cool stuff Tango adds, or a Tango with all the nice things Phobos has. But this isn't going to happen unless one of the dev teams concedes already :|
Fair assessment. I think Tango is more open source and takes the load off Walter. It's just simply too heavyweight for me to dare use it; so library developers go to Tango and library users still go to Phobos. : p
I am just curious, what do you consider to be too heavyweight about Tango? Or why do you think it is too heavyweight? -- Lars Ivar Igesund blog at http://larsivi.net DSource, #d.tango & #D: larsivi Dancing the Tango
Jan 25 2008
parent reply Jesse Phillips <jessekphillips gmail.com> writes:
On Fri, 25 Jan 2008 18:57:17 +0100, Lars Ivar Igesund wrote:

 Dan wrote:
 
 Jarrod Wrote:
 
 On Wed, 23 Jan 2008 21:52:19 -0500, Daniel wrote:
 
 Walter is, and ought to be, focusing his efforts on the language
 more than the libraries.
 
 Oddly, I would argue that all libraries are simply stop-gap fixes
 for missing or poorly implemented language features; indeed most
 programming code tends to be.
 
 However, D has phobos, there was mango, now tango, and work has been
 done on a tangobos.  The fact that the library keeps changing shows
 that D's language features actually have an impact, as they
 frequently replace or integrate library features.
 
 Regards,
 Dan
To claim Phobos is not a part of D is to claim the C stdlib is not a part of C. Phobos is a part of D, and it's a very important part of D too (hell we can't even have classes without Object.d). Walter is the father of Phobos and although he allows others to contribute to it, he is the one who decides what to add to Phobos and how to add it. Yes, Walter should focus on developing the language of course, but he also has to decide what the *standard* library is going to be since he is after all the head project manager of both Phobos and D. I emphasize the word *standard* because right now, we don't have a standard. Unless you include a bunch of versioning/mixin hacks, we currently have code that won't even compile on different workstations because of two very different core libraries that are totally incompatible. So now we're stuck with an annoying rift. Tangobos is a step in the right direction to get compatibility back, but at the moment it's just a band-aid solution. All I want to see is a standard, be it Phobos with all the cool stuff Tango adds, or a Tango with all the nice things Phobos has. But this isn't going to happen unless one of the dev teams concedes already :|
Fair assessment. I think Tango is more open source and takes the load off Walter. It's just simply too heavyweight for me to dare use it; so library developers go to Tango and library users still go to Phobos. : p
I am just curious, what do you consider to be too heavyweight about Tango? Or why do you think it is too heavyweight?
I still have yet to develop in Tango (My book should be here within the week), but I think I know what Dan is trying to say by heavyweight. It is not related to the size or speed of the code, as Sean was questioning, but in the use. The best comparison I can think of is that it is like going from C to Java. (I'm not saying Tango is like java) The phobos library is very procedural, you you import your module and call your functions. Tango is Object based, import, create object/call object to do something for you. There is a sense of simplicity when you don't use objects. That is frankly one of the reasons I have not moved to Tango yet.
Jan 25 2008
parent reply Lars Ivar Igesund <larsivar igesund.net> writes:
Jesse Phillips wrote:

 On Fri, 25 Jan 2008 18:57:17 +0100, Lars Ivar Igesund wrote:
 
 Dan wrote:
 
 Jarrod Wrote:
 
 On Wed, 23 Jan 2008 21:52:19 -0500, Daniel wrote:
 
 Walter is, and ought to be, focusing his efforts on the language
 more than the libraries.
 
 Oddly, I would argue that all libraries are simply stop-gap fixes
 for missing or poorly implemented language features; indeed most
 programming code tends to be.
 
 However, D has phobos, there was mango, now tango, and work has been
 done on a tangobos.  The fact that the library keeps changing shows
 that D's language features actually have an impact, as they
 frequently replace or integrate library features.
 
 Regards,
 Dan
To claim Phobos is not a part of D is to claim the C stdlib is not a part of C. Phobos is a part of D, and it's a very important part of D too (hell we can't even have classes without Object.d). Walter is the father of Phobos and although he allows others to contribute to it, he is the one who decides what to add to Phobos and how to add it. Yes, Walter should focus on developing the language of course, but he also has to decide what the *standard* library is going to be since he is after all the head project manager of both Phobos and D. I emphasize the word *standard* because right now, we don't have a standard. Unless you include a bunch of versioning/mixin hacks, we currently have code that won't even compile on different workstations because of two very different core libraries that are totally incompatible. So now we're stuck with an annoying rift. Tangobos is a step in the right direction to get compatibility back, but at the moment it's just a band-aid solution. All I want to see is a standard, be it Phobos with all the cool stuff Tango adds, or a Tango with all the nice things Phobos has. But this isn't going to happen unless one of the dev teams concedes already :|
Fair assessment. I think Tango is more open source and takes the load off Walter. It's just simply too heavyweight for me to dare use it; so library developers go to Tango and library users still go to Phobos. : p
I am just curious, what do you consider to be too heavyweight about Tango? Or why do you think it is too heavyweight?
I still have yet to develop in Tango (My book should be here within the week), but I think I know what Dan is trying to say by heavyweight. It is not related to the size or speed of the code, as Sean was questioning, but in the use. The best comparison I can think of is that it is like going from C to Java. (I'm not saying Tango is like java) The phobos library is very procedural, you you import your module and call your functions. Tango is Object based, import, create object/call object to do something for you. There is a sense of simplicity when you don't use objects. That is frankly one of the reasons I have not moved to Tango yet.
I know there are a few places in Tango where an additional line may be needed (and many where you'll need quite a few less), but without exact examples of what people think is a problem, it is hard to make qualified decisions on where to make improvements. -- Lars Ivar Igesund blog at http://larsivi.net DSource, #d.tango & #D: larsivi Dancing the Tango
Jan 25 2008
next sibling parent reply Robert Fraser <fraserofthenight gmail.com> writes:
Lars Ivar Igesund wrote:
 I know there are a few places in Tango where an additional line may be
 needed (and many where you'll need quite a few less), but without exact
 examples of what people think is a problem, it is hard to make qualified
 decisions on where to make improvements.
 
Not to be negative, but I think no matter how many tests/examples/whatever show that Tango is comparable or better in speed and efficiency to Phobos, the stigma of a feature-rich, strongly abstracted/modular standard library reminds of Java and .NET . I think the fear is less based on logic and more based on association between a modular standard library and VM-based languages.
Jan 25 2008
next sibling parent Robert Fraser <fraserofthenight gmail.com> writes:
Robert Fraser wrote:
 Lars Ivar Igesund wrote:
 I know there are a few places in Tango where an additional line may be
 needed (and many where you'll need quite a few less), but without exact
 examples of what people think is a problem, it is hard to make qualified
 decisions on where to make improvements.
Not to be negative, but I think no matter how many tests/examples/whatever show that Tango is comparable or better in speed and efficiency to Phobos, the stigma of a feature-rich, strongly abstracted/modular standard library reminds of Java and .NET . I think the fear is less based on logic and more based on association between a modular standard library and VM-based languages.
I shouldn't write long sentences; I tend to get lost halfway though.
Jan 25 2008
prev sibling next sibling parent Lars Ivar Igesund <larsivar igesund.net> writes:
Robert Fraser wrote:

 Lars Ivar Igesund wrote:
 I know there are a few places in Tango where an additional line may be
 needed (and many where you'll need quite a few less), but without exact
 examples of what people think is a problem, it is hard to make qualified
 decisions on where to make improvements.
 
Not to be negative, but I think no matter how many tests/examples/whatever show that Tango is comparable or better in speed and efficiency to Phobos, the stigma of a feature-rich, strongly abstracted/modular standard library reminds of Java and .NET . I think the fear is less based on logic and more based on association between a modular standard library and VM-based languages.
Yes, this is a comfort zone thing, and not something we can or intend to do much with. However, my feeling (since feeling seems to be an important keyword here) is that some may use their general discomfort as a critique towards Tango, without quantifying (or not even having anything to quantify beyond feeling) it. I have to take this to mean that beyond certain details that could be improved, there isn't an overall problem with Tango per se, it is just about face value alone. Assuming I'm correct at this aspect, I hope to avoid too much discussion on it in the future. Specific issues or opinions on specific features / decisions are quite the different beast though. -- Lars Ivar Igesund blog at http://larsivi.net DSource, #d.tango & #D: larsivi Dancing the Tango
Jan 26 2008
prev sibling parent reply Leandro Lucarella <llucax gmail.com> writes:
Robert Fraser, el 25 de enero a las 17:31 me escribiste:
 Lars Ivar Igesund wrote:
I know there are a few places in Tango where an additional line may be
needed (and many where you'll need quite a few less), but without exact
examples of what people think is a problem, it is hard to make qualified
decisions on where to make improvements.
Not to be negative, but I think no matter how many tests/examples/whatever show that Tango is comparable or better in speed and efficiency to Phobos, the stigma of a feature-rich, strongly abstracted/modular standard library reminds of Java and .NET . I think the fear is less based on logic and more based on association between a modular standard library and VM-based languages.
I second that. Phobos is closer to C/C++ stdlib, Tango to Java/.NET. I think it would be great to have 2 "compatible" standard libraries. One minimalist for embeded and such (phobos) and one for "big" (or not that big) desktop applications (tango). Of course both should be compatible and it had more sense if the "big" library were a super-set of the "small" one. -- Leandro Lucarella (luca) | Blog colectivo: http://www.mazziblog.com.ar/blog/ ---------------------------------------------------------------------------- GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145 104C 949E BFB6 5F5A 8D05) ---------------------------------------------------------------------------- 驴C贸mo estais? 驴C贸mo os senteis hoy 29 del membre de 1961 d铆a en que conmemoreramos la non茅sima setima nebulizaci贸n del martir Peperino P贸moro junto al Rolo Puente en la ciudad de Jadad? -- Peperino P贸moro
Jan 26 2008
next sibling parent reply Bill Baxter <dnewsgroup billbaxter.com> writes:
Leandro Lucarella wrote:
 Robert Fraser, el 25 de enero a las 17:31 me escribiste:
 Lars Ivar Igesund wrote:
 I know there are a few places in Tango where an additional line may be
 needed (and many where you'll need quite a few less), but without exact
 examples of what people think is a problem, it is hard to make qualified
 decisions on where to make improvements.
Not to be negative, but I think no matter how many tests/examples/whatever show that Tango is comparable or better in speed and efficiency to Phobos, the stigma of a feature-rich, strongly abstracted/modular standard library reminds of Java and .NET . I think the fear is less based on logic and more based on association between a modular standard library and VM-based languages.
I second that. Phobos is closer to C/C++ stdlib, Tango to Java/.NET. I think it would be great to have 2 "compatible" standard libraries. One minimalist for embeded and such (phobos) and one for "big" (or not that big) desktop applications (tango). Of course both should be compatible and it had more sense if the "big" library were a super-set of the "small" one.
However, when it comes to the low-level parts of the library (gc, threading, etc), I don't really see anyone arguing. Tango's seems to be better. It seems like those improvements should just be rolled back into Phobos. Then Tango could go back to being a regular library that doesn't require you to "get religion" first. --bb
Jan 26 2008
next sibling parent reply Lars Ivar Igesund <larsivar igesund.net> writes:
Bill Baxter wrote:

 Leandro Lucarella wrote:
 Robert Fraser, el 25 de enero a las 17:31 me escribiste:
 Lars Ivar Igesund wrote:
 I know there are a few places in Tango where an additional line may be
 needed (and many where you'll need quite a few less), but without exact
 examples of what people think is a problem, it is hard to make
 qualified decisions on where to make improvements.
Not to be negative, but I think no matter how many tests/examples/whatever show that Tango is comparable or better in speed and efficiency to Phobos, the stigma of a feature-rich, strongly abstracted/modular standard library reminds of Java and .NET . I think the fear is less based on logic and more based on association between a modular standard library and VM-based languages.
I second that. Phobos is closer to C/C++ stdlib, Tango to Java/.NET. I think it would be great to have 2 "compatible" standard libraries. One minimalist for embeded and such (phobos) and one for "big" (or not that big) desktop applications (tango). Of course both should be compatible and it had more sense if the "big" library were a super-set of the "small" one.
However, when it comes to the low-level parts of the library (gc, threading, etc), I don't really see anyone arguing. Tango's seems to be better. It seems like those improvements should just be rolled back into Phobos. Then Tango could go back to being a regular library that doesn't require you to "get religion" first.
Tango require you to "get religion" ? Also, Tango has never been a "regular" library, if that means a library without its own runtime. -- Lars Ivar Igesund blog at http://larsivi.net DSource, #d.tango & #D: larsivi Dancing the Tango
Jan 26 2008
parent Don Clugston <dac nospam.com.au> writes:
Lars Ivar Igesund wrote:
 Bill Baxter wrote:
 
 Leandro Lucarella wrote:
 Robert Fraser, el 25 de enero a las 17:31 me escribiste:
 Lars Ivar Igesund wrote:
 I know there are a few places in Tango where an additional line may be
 needed (and many where you'll need quite a few less), but without exact
 examples of what people think is a problem, it is hard to make
 qualified decisions on where to make improvements.
Not to be negative, but I think no matter how many tests/examples/whatever show that Tango is comparable or better in speed and efficiency to Phobos, the stigma of a feature-rich, strongly abstracted/modular standard library reminds of Java and .NET . I think the fear is less based on logic and more based on association between a modular standard library and VM-based languages.
I second that. Phobos is closer to C/C++ stdlib, Tango to Java/.NET. I think it would be great to have 2 "compatible" standard libraries. One minimalist for embeded and such (phobos) and one for "big" (or not that big) desktop applications (tango). Of course both should be compatible and it had more sense if the "big" library were a super-set of the "small" one.
However, when it comes to the low-level parts of the library (gc, threading, etc), I don't really see anyone arguing. Tango's seems to be better. It seems like those improvements should just be rolled back into Phobos. Then Tango could go back to being a regular library that doesn't require you to "get religion" first.
Tango require you to "get religion" ?
Also, Tango has never been a "regular"
 library, if that means a library without its own runtime.
It was in the Mango days. I don't see any reason why the low-level stuff couldn't replace the Phobos stuff.
Jan 28 2008
prev sibling parent reply "Kris" <foo bar.com> writes:
"Bill Baxter" <dnewsgroup billbaxter.com> wrote in message 
news:fng5c1$un8$1 digitalmars.com...
 I second that. Phobos is closer to C/C++ stdlib, Tango to Java/.NET.
 I think it would be great to have 2 "compatible" standard libraries. One
 minimalist for embeded and such (phobos) and one for "big" (or not that
 big) desktop applications (tango). Of course both should be compatible 
 and
 it had more sense if the "big" library were a super-set of the "small"
 one.
That is exactly what Tango is about. It is a modular library, written carefully and explicitly to reduce interdependencies within the library itself. You might think of Tango as being composed of several onion layers, each of which depends upon its interior only. Tango is built to address the "small" and "large" library notions mentioned (and a few in between as necessary).
 However, when it comes to the low-level parts of the library (gc, 
 threading, etc), I don't really see anyone arguing.  Tango's seems to be 
 better.  It seems like those improvements should just be rolled back into 
 Phobos.  Then Tango could go back to being a regular library
A "regular library"? Feels quite 'regular' to lots of people, so perhaps you could indicate what that means to you? Do you perhaps mean, it's not just a clone of phobos?
 doesn't require you to "get religion" first.
Tango can be somewhat different from phobos, yes. Does it require adoption of a "religion" to be different, Bill? Surely that's a bit of a stretch?
Jan 26 2008
next sibling parent reply Bill Baxter <dnewsgroup billbaxter.com> writes:
Kris wrote:
 "Bill Baxter" <dnewsgroup billbaxter.com> wrote in message 
 news:fng5c1$un8$1 digitalmars.com...
 I second that. Phobos is closer to C/C++ stdlib, Tango to Java/.NET.
 I think it would be great to have 2 "compatible" standard libraries. One
 minimalist for embeded and such (phobos) and one for "big" (or not that
 big) desktop applications (tango). Of course both should be compatible 
 and
 it had more sense if the "big" library were a super-set of the "small"
 one.
That is exactly what Tango is about. It is a modular library, written carefully and explicitly to reduce interdependencies within the library itself. You might think of Tango as being composed of several onion layers, each of which depends upon its interior only. Tango is built to address the "small" and "large" library notions mentioned (and a few in between as necessary).
 However, when it comes to the low-level parts of the library (gc, 
 threading, etc), I don't really see anyone arguing.  Tango's seems to be 
 better.  It seems like those improvements should just be rolled back into 
 Phobos.  Then Tango could go back to being a regular library
A "regular library"? Feels quite 'regular' to lots of people, so perhaps you could indicate what that means to you? Do you perhaps mean, it's not just a clone of phobos?
 doesn't require you to "get religion" first.
Tango can be somewhat different from phobos, yes. Does it require adoption of a "religion" to be different, Bill? Surely that's a bit of a stretch?
Heh heh. By "get religion" I just mean you have to make a significant non-default choice that will affect and influence your subsequent actions. And once you "believe in Tango" it's difficult to share your code with other "non-believers" without first getting them to convert first. --bb
Jan 26 2008
parent reply "Kris" <foo bar.com> writes:
"Bill Baxter" <dnewsgroup billbaxter.com> wrote in message 
news:fngcb5$1eee$1 digitalmars.com...
 doesn't require you to "get religion" first.
Tango can be somewhat different from phobos, yes. Does it require adoption of a "religion" to be different, Bill? Surely that's a bit of a stretch?
Heh heh. By "get religion" I just mean you have to make a significant non-default choice that will affect and influence your subsequent actions. And once you "believe in Tango" it's difficult to share your code with other "non-believers" without first getting them to convert first.
Ah, right :) I was concerned some folks might get the wrong idea there, so thanks for the clarification. But again, I suspect there's something a tad misguiding? For example: - Tangobos exposes the phobos API atop the Tango runtime. Thus, we already have exactly what you described earlier, but with the roles reversed. e.g. phobos is running within Tango, rather than the other way around. That makes a lot of sense to many folks. There was a notable call (in this NG) to combine the API from both, and that has been available for the last couple of releases. We did it this way because the first approach wound up going nowhere of note, and many people complained about a lack of progress. - some consider this aspect: http://dsource.org/projects/tango/wiki/TangoUsers - You note that Tango is a "significant non-default choice". For those who download bundles from DSource, that is not the case. Tango is the default choice there, with an option to embed the phobos API as an extension. - I know of several significant libraries in the works, which target Tango alone. There are a variety of reasons for that, but one often cited is the raw-efficiency of the I/O model (it runs rings around the C lib, for example). The point you appear to make is one that's been held aloft in the past. However, there are solid resolutions readily available, and the implication that targeting Tango is somehow going to afflict the longevity or compatibility of one's code really could not be further from the truth. In fact, your assertion over this aspect would likely make much more sense if it were inverted ;) Cheers
Jan 26 2008
parent reply Bill Baxter <dnewsgroup billbaxter.com> writes:
Kris wrote:
 "Bill Baxter" <dnewsgroup billbaxter.com> wrote in message 
 news:fngcb5$1eee$1 digitalmars.com...
 doesn't require you to "get religion" first.
Tango can be somewhat different from phobos, yes. Does it require adoption of a "religion" to be different, Bill? Surely that's a bit of a stretch?
Heh heh. By "get religion" I just mean you have to make a significant non-default choice that will affect and influence your subsequent actions. And once you "believe in Tango" it's difficult to share your code with other "non-believers" without first getting them to convert first.
Ah, right :) I was concerned some folks might get the wrong idea there, so thanks for the clarification. But again, I suspect there's something a tad misguiding? For example: - Tangobos exposes the phobos API atop the Tango runtime. Thus, we already have exactly what you described earlier, but with the roles reversed. e.g. phobos is running within Tango, rather than the other way around. That makes a lot of sense to many folks. There was a notable call (in this NG) to combine the API from both, and that has been available for the last couple of releases. We did it this way because the first approach wound up going nowhere of note, and many people complained about a lack of progress. - some consider this aspect: http://dsource.org/projects/tango/wiki/TangoUsers - You note that Tango is a "significant non-default choice". For those who download bundles from DSource, that is not the case. Tango is the default choice there, with an option to embed the phobos API as an extension. - I know of several significant libraries in the works, which target Tango alone. There are a variety of reasons for that, but one often cited is the raw-efficiency of the I/O model (it runs rings around the C lib, for example). The point you appear to make is one that's been held aloft in the past.
Yes, the gap is narrowing. Which is great.
 However, there are solid resolutions readily available, and the implication 
 that targeting Tango is somehow going to afflict the longevity or 
 compatibility of one's code really could not be further from the truth. 
 In
 fact, your assertion over this aspect would likely make much more 
sense if
 it were inverted ;)
I said nothing about longevity. I don't see that as a problem at all. Just compatibility. And the fact is Tango code remains incompatible with the default install of dmd digitalmars.com. Which is what the majority of casual users are likely to end up with. Why? Because if you google trying to find out about D you're going to end up at digitalmars.com. I think it would be great if links to the Tango distro were listed right alongside the Phobos packages on DigitalMars.com. Then my argument would go away because first-timers would all see it and think, "ah ok this is just as official ... and more featureful. I'll go for that." But right now they aren't and most people checking out D are just going to get the default and be happy enough with that. --bb
Jan 26 2008
parent "Kris" <foo bar.com> writes:
"Bill Baxter" <dnewsgroup billbaxter.com> wrote..
[snip]
 I think it would be great if links to the Tango distro were listed right 
 alongside the Phobos packages on DigitalMars.com.  Then my argument would 
 go away because first-timers would all see it and think, "ah ok this is 
 just as official ... and more featureful. I'll go for that."
Good idea, Bill. I'm sure that would be appreciated by many
Jan 26 2008
prev sibling parent reply John Reimer <terminal.node gmail.com> writes:
Kris wrote:

 
 doesn't require you to "get religion" first.
Tango can be somewhat different from phobos, yes. Does it require adoption of a "religion" to be different, Bill? Surely that's a bit of a stretch?
I think part of the "religious" aspect reflected from Tango is also related to the photo in the "rogues gallery": http://www.dsource.org/projects/tango/wiki/Contributors It promotes the burlesque image of a cult following. I've always disliked it. While perhaps intended to be amusing, I think it puts across too playful an image for a library that should begin to take itself seriously as a maturing product. I know it's meant as a sort self-deprecating humour... but perhaps Tango has grown out of that now? Ironically, the fundamental differences between the Phobos and Tango design philosophies seem to be demonstrated through the above: Phobos tends to exude an aura that is lean, austere, and self-serious; while Tango tends to exemplify free, swanky, and hip with the cult-following undertones demonstrated in the contrib photo. I like Tango, though, for many reasons unrelated to it's personality, which I kind of wish it would lose. -JJR
Jan 26 2008
parent reply "Kris" <foo bar.com> writes:
"John Reimer" <terminal.node gmail.com> wrote in message 
news:fngk4i$1tdu$1 digitalmars.com...
 Kris wrote:

 doesn't require you to "get religion" first.
Tango can be somewhat different from phobos, yes. Does it require adoption of a "religion" to be different, Bill? Surely that's a bit of a stretch?
I think part of the "religious" aspect reflected from Tango is also related to the photo in the "rogues gallery": http://www.dsource.org/projects/tango/wiki/Contributors It promotes the burlesque image of a cult following. I've always disliked it. While perhaps intended to be amusing, I think it puts across too playful an image for a library that should begin to take itself seriously as a maturing product. I know it's meant as a sort self-deprecating humour... but perhaps Tango has grown out of that now? Ironically, the fundamental differences between the Phobos and Tango design philosophies seem to be demonstrated through the above: Phobos tends to exude an aura that is lean, austere, and self-serious; while Tango tends to exemplify free, swanky, and hip with the cult-following undertones demonstrated in the contrib photo. I like Tango, though, for many reasons unrelated to it's personality, which I kind of wish it would lose. -JJR
It never fails to amaze just how much can be extracted from merely one element on a website :) You're right about the picture, though - it was intended purely as a bit of fun at the time (as I recall), and should probably go. Certainly it would be a misconception to paint Tango with a "flighty" brush ... you would have to look very hard indeed to find a more "serious" D language investment anywhere. On a more personal note (for me) - no significant effort should have to go all true-blue neo-conservative to be considered "serious" about anything in this world, and a bit of self-deprecating humour is hardly out of place in any walk of life (there perhaps ought to be more of that around here sometimes?). It is interesting though, that you picked up on the 'cult' aspect of that picture - IIRC it was chosen at random because it looked /truly/ dorky, not because of anything else. Perhaps people will inevitably see whatever they want to? Ah well, it was comic relief for a period. Please suggest a replacement? Perhaps we should run a little competition?
Jan 26 2008
parent reply John Reimer <terminal.node gmail.com> writes:
Kris wrote:

 
 
 It never fails to amaze just how much can be extracted from merely one 
 element on a website :)
 
Yep, that happens.
 You're right about the picture, though - it was intended purely as a bit of 
 fun at the time (as I recall), and should probably go. Certainly it would be 
 a misconception to paint Tango with a "flighty" brush ... you would have to 
 look very hard indeed to find a more "serious" D language investment 
 anywhere.
 
I agree. The effort that has gone into Tango is certainly not reflected by that picture.
 On a more personal note (for me) - no significant effort should have to go 
 all true-blue neo-conservative to be considered "serious" about anything in 
 this world, and a bit of self-deprecating humour is hardly out of place in 
 any walk of life (there perhaps ought to be more of that around here 
 sometimes?). It is interesting though, that you picked up on the 'cult' 
 aspect of that picture - IIRC it was chosen at random because it looked 
 /truly/ dorky, not because of anything else. Perhaps people will inevitably 
 see whatever they want to? Ah well, it was comic relief for a period.
 
Sure, my comparison wasn't meant to endorse a full swing opposite to conservatism (or neo-conservatism, as you put it). I was just pointing out the differences and how things might come across. It can go bad either way. :) I know you are relaxed and fun-loving and would prefer that to any form of false-dignity. That's good. The emphasis was merely on appearances that I felt detracted from the image of Tango. That opinion might or might not be shared by anybody else, but I felt I'd mention it (again). I'm not sure what you are implying by it being "interesting that I picked up on the cult following"... but yes, my senses are quite acute to picking up on cults regardless of what you perceive my worldview to be, if that's what you meant; I'll assume you didn't mean that as a remark concerning my Christian faith. But, no matter, half the time innuendos on this group are mistakes as a result of the reciever reading too much between the lines. I'll accept responsibility for this one. And I haven't anything against well-timed self-deprecating humour... sure that's useful. But, like many things, there's a time and place for it. My /personal/ feeling here is that it has outlived its purpose (as you seem to agree). Since it's just an opinion, you needn't pay any attention to it. :) And no, my critique was not meant to address anything about the motives behind why the picture was chosen. I'm sure it was innocent enough and was never meant to promote any sort of "cult" following of Tango. :)
 Please suggest a replacement? Perhaps we should run a little competition?
 
I have no suggestion at this time, other than to remove it, I suppose.
Jan 26 2008
next sibling parent "Kris" <foo bar.com> writes:
"John Reimer" <terminal.node gmail.com> wrote ...
[snip]

 I'm not sure what you are implying by it being "interesting that I picked 
 up on the cult following"... but yes, my senses are quite acute to picking 
 up on cults regardless of what you perceive my worldview to be, if that's 
 what you meant;
oh, not at all -- should probably have said "interesting that anyone would ..." instead (and instead of the dorkiness conveyed). My apologies for being careless [snip]
 And no, my critique was not meant to address anything about the motives 
 behind why the picture was chosen.  I'm sure it was innocent enough and 
 was never meant to promote any sort of "cult" following of Tango. :)
lol ... right, potential for a cult-like following, as you describe, would appear to be beyond the realm
Jan 26 2008
prev sibling next sibling parent reply Carlos Santander <csantander619 gmail.com> writes:
John Reimer escribi:
 Kris wrote:
 
 It never fails to amaze just how much can be extracted from merely one 
 element on a website :)
Yep, that happens.
 You're right about the picture, though - it was intended purely as a 
 bit of fun at the time (as I recall), and should probably go. 
 Certainly it would be a misconception to paint Tango with a "flighty" 
 brush ... you would have to look very hard indeed to find a more 
 "serious" D language investment anywhere.
I agree. The effort that has gone into Tango is certainly not reflected by that picture.
 On a more personal note (for me) - no significant effort should have 
 to go all true-blue neo-conservative to be considered "serious" about 
 anything in this world, and a bit of self-deprecating humour is hardly 
 out of place in any walk of life (there perhaps ought to be more of 
 that around here sometimes?). It is interesting though, that you 
 picked up on the 'cult' aspect of that picture - IIRC it was chosen at 
 random because it looked /truly/ dorky, not because of anything else. 
 Perhaps people will inevitably see whatever they want to? Ah well, it 
 was comic relief for a period.
Sure, my comparison wasn't meant to endorse a full swing opposite to conservatism (or neo-conservatism, as you put it). I was just pointing out the differences and how things might come across. It can go bad either way. :) I know you are relaxed and fun-loving and would prefer that to any form of false-dignity. That's good. The emphasis was merely on appearances that I felt detracted from the image of Tango. That opinion might or might not be shared by anybody else, but I felt I'd mention it (again). I'm not sure what you are implying by it being "interesting that I picked up on the cult following"... but yes, my senses are quite acute to picking up on cults regardless of what you perceive my worldview to be, if that's what you meant; I'll assume you didn't mean that as a remark concerning my Christian faith. But, no matter, half the time innuendos on this group are mistakes as a result of the reciever reading too much between the lines. I'll accept responsibility for this one. And I haven't anything against well-timed self-deprecating humour... sure that's useful. But, like many things, there's a time and place for it. My /personal/ feeling here is that it has outlived its purpose (as you seem to agree). Since it's just an opinion, you needn't pay any attention to it. :) And no, my critique was not meant to address anything about the motives behind why the picture was chosen. I'm sure it was innocent enough and was never meant to promote any sort of "cult" following of Tango. :)
I never related that image with any cult. Probably I just didn't remember that part of the movie too well, or some cultural differences weighed in, but I always saw it as a bunch of geeks, and as such, I found it funny.
 
 Please suggest a replacement? Perhaps we should run a little competition?
I have no suggestion at this time, other than to remove it, I suppose.
-- Carlos Santander Bernal
Jan 29 2008
parent reply John Reimer <terminal.node gmail.com> writes:
Carlos Santander wrote:
 
 I never related that image with any cult. Probably I just didn't 
 remember that part of the movie too well, or some cultural differences 
 weighed in, but I always saw it as a bunch of geeks, and as such, I 
 found it funny.
 
It may be a mix of things, including culture, I suppose. I accept that as a possibility. But it really didn't look like a group of geeks to me... from the looks of it, this frame from a movie seemed to be representing some sort of alien abductions club (or "cult" :) ) as a sort of satire. I'm clueless about the actual setting of this movie's representation. It was obvious that the shot was intended to convey humour, which apparently did not work on me, nor was I able to "adjust" to it over time as is sometimes the case... I can appreciate that some people found it funny for whatever reason. But given the impression it gave me, I found it more weird than funny, leaving me baffled as to what relationship it had with Tango or it's crew. And perhaps also, I've always disliked it when people mock other people (no, I'm not being sanctimonious; it actually annoys me). In this case, I suppose the idea is that the contributors are mocking themselves, so it's "ok"... even if some or most of the contributors did not ask to be mocked :). Sensitivity to that may or may not be relegated to "cultural" differences. In the long run, it's good to evaluate the effects of such things in and of themselves. Naturally, that's not always an easy thing to do. -JJR
Jan 30 2008
next sibling parent reply Dan <murpsoft hotmail.com> writes:
John Reimer Wrote:
 It was obvious that the shot was intended to convey humour, which 
 apparently did not work on me, nor was I able to "adjust" to it over 
 time as is sometimes the case...  I can appreciate that some people 
 found it funny for whatever reason. [snip]
 And perhaps also, I've always disliked it when people mock other people 
 (no, I'm not being sanctimonious; it actually annoys me).  In this case, 
 I suppose the idea is that the contributors are mocking themselves, so 
 it's "ok"... [snip]
.... wow mang. that is deep. or something. I even had to look up "sanctimonious". in my never-humble opinion, it's best not to care what other people think or do unless it's necessary for first or third party safety. let them have their fun, and just shrug and grin. regards, Dan
Jan 30 2008
parent John Reimer <terminal.node gmail.com> writes:
Dan wrote:
 John Reimer Wrote:
 It was obvious that the shot was intended to convey humour, which 
 apparently did not work on me, nor was I able to "adjust" to it over 
 time as is sometimes the case...  I can appreciate that some people 
 found it funny for whatever reason. [snip]
 And perhaps also, I've always disliked it when people mock other people 
 (no, I'm not being sanctimonious; it actually annoys me).  In this case, 
 I suppose the idea is that the contributors are mocking themselves, so 
 it's "ok"... [snip]
.... wow mang. that is deep. or something. I even had to look up "sanctimonious". in my never-humble opinion, it's best not to care what other people think or do unless it's necessary for first or third party safety. let them have their fun, and just shrug and grin. regards, Dan
Uh... okay. Thanks for sharing your insight. I suppose the reason I posted was because I do care about what people might think about Tango. But it truly was a "take it or leave it" offering. If everybody just shrugged and grinned about everything, perhaps D would not be what it is today? Even Tango would be no better if the team didn't take /some/ things seriously. :) -JJR
Jan 30 2008
prev sibling parent reply "Janice Caron" <caron800 googlemail.com> writes:
On Jan 31, 2008 5:12 AM, John Reimer <terminal.node gmail.com> wrote:
 I'm clueless
 about the actual setting of this movie's representation.
It's from the movie "Dude, Where's my Car?" If you've seen the movie, the picture becomes hilariously funny. If not ... well, I guess it probably wouldn't make much sense. It's not the picture you want to worry about - it's the wherabouts of the continuum transfunctioner! At least, if you want the universe to survive! :-)
Jan 31 2008
parent John Reimer <terminal.node gmail.com> writes:
Janice Caron wrote:
 On Jan 31, 2008 5:12 AM, John Reimer <terminal.node gmail.com> wrote:
 I'm clueless
 about the actual setting of this movie's representation.
It's from the movie "Dude, Where's my Car?" If you've seen the movie, the picture becomes hilariously funny. If not ... well, I guess it probably wouldn't make much sense. It's not the picture you want to worry about - it's the wherabouts of the continuum transfunctioner! At least, if you want the universe to survive! :-)
Hmm... that probably is part of the problem. Understanding the context likely helps carry the humor. :) -JJR
Jan 31 2008
prev sibling parent reply jcc7 <technocrat7 gmail.com> writes:
== Quote from John Reimer (terminal.node gmail.com)'s article
 Kris wrote:
...
 And no, my critique was not meant to address anything about the
 motives behind why the picture was chosen.  I'm sure it was innocent
 enough and was never meant to promote any sort of "cult" following
 of Tango. :)

 Please suggest a replacement? Perhaps we should run a little
 competition?
I have no suggestion at this time, other than to remove it, I suppose.
By the way, the picture that used to be on the Contributors page [1] is still in tango-tangobos-0.99.4-bin-win32-dmd.1.024.zip that I just downloaded today (and probably other .zips as well). I'm not saying that you need to remove it from the archive and change the file in SVN, but if there's an automated routine that builds the archive someone might want to take "TangoTeam.jpg" off of the list (if they haven't already). Just a suggestion for the Tango team from someone who's too lazy to write a ticket... ;) [1] http://www.dsource.org/projects/tango/wiki/Contributors
Feb 15 2008
parent reply jcc7 <technocrat7 gmail.com> writes:
== Quote from jcc7 (technocrat7 gmail.com)'s article
 == Quote from John Reimer (terminal.node gmail.com)'s article
 Kris wrote:
...
 And no, my critique was not meant to address anything about the
 motives behind why the picture was chosen.  I'm sure it was innocent
 enough and was never meant to promote any sort of "cult" following
 of Tango. :)

 Please suggest a replacement? Perhaps we should run a little
 competition?
I have no suggestion at this time, other than to remove it, I suppose.
By the way, the picture that used to be on the Contributors page [1] is still in tango-tangobos-0.99.4-bin-win32-dmd.1.024.zip that I just downloaded today (and probably other .zips as well). I'm not saying that you need to remove it from the archive and change the file in SVN, but if there's an automated routine that builds the archive someone might want to take "TangoTeam.jpg" off of the list (if they haven't already). Just a suggestion for the Tango team from someone who's too lazy to write a ticket... ;) [1] http://www.dsource.org/projects/tango/wiki/Contributors
(I wish I could cancel a post done through the web interface.) Oops. Nevermind, I don't know what I'm talking about. :( (I promise I'm not high -- I just got a little confused.)
Feb 15 2008
parent reply Lars Ivar Igesund <larsivar igesund.net> writes:
jcc7 wrote:

 == Quote from jcc7 (technocrat7 gmail.com)'s article
 == Quote from John Reimer (terminal.node gmail.com)'s article
 Kris wrote:
...
 And no, my critique was not meant to address anything about the
 motives behind why the picture was chosen.  I'm sure it was innocent
 enough and was never meant to promote any sort of "cult" following
 of Tango. :)

 Please suggest a replacement? Perhaps we should run a little
 competition?
I have no suggestion at this time, other than to remove it, I suppose.
By the way, the picture that used to be on the Contributors page [1] is still in tango-tangobos-0.99.4-bin-win32-dmd.1.024.zip that I just downloaded today (and probably other .zips as well). I'm not saying that you need to remove it from the archive and change the file in SVN, but if there's an automated routine that builds the archive someone might want to take "TangoTeam.jpg" off of the list (if they haven't already). Just a suggestion for the Tango team from someone who's too lazy to write a ticket... ;) [1] http://www.dsource.org/projects/tango/wiki/Contributors
(I wish I could cancel a post done through the web interface.) Oops. Nevermind, I don't know what I'm talking about. :( (I promise I'm not high -- I just got a little confused.)
So am I now ... -- Lars Ivar Igesund blog at http://larsivi.net DSource, #d.tango & #D: larsivi Dancing the Tango
Feb 15 2008
next sibling parent Robert Fraser <fraserofthenight gmail.com> writes:
Lars Ivar Igesund Wrote:

 jcc7 wrote:
 
 == Quote from jcc7 (technocrat7 gmail.com)'s article
 == Quote from John Reimer (terminal.node gmail.com)'s article
 Kris wrote:
...
 And no, my critique was not meant to address anything about the
 motives behind why the picture was chosen.  I'm sure it was innocent
 enough and was never meant to promote any sort of "cult" following
 of Tango. :)

 Please suggest a replacement? Perhaps we should run a little
 competition?
I have no suggestion at this time, other than to remove it, I suppose.
By the way, the picture that used to be on the Contributors page [1] is still in tango-tangobos-0.99.4-bin-win32-dmd.1.024.zip that I just downloaded today (and probably other .zips as well). I'm not saying that you need to remove it from the archive and change the file in SVN, but if there's an automated routine that builds the archive someone might want to take "TangoTeam.jpg" off of the list (if they haven't already). Just a suggestion for the Tango team from someone who's too lazy to write a ticket... ;) [1] http://www.dsource.org/projects/tango/wiki/Contributors
(I wish I could cancel a post done through the web interface.) Oops. Nevermind, I don't know what I'm talking about. :( (I promise I'm not high -- I just got a little confused.)
So am I now ...
... High or confused?
 -- 
 Lars Ivar Igesund
 blog at http://larsivi.net
 DSource, #d.tango & #D: larsivi
 Dancing the Tango
Feb 15 2008
prev sibling parent reply Robert Fraser <fraserofthenight gmail.com> writes:
Lars Ivar Igesund Wrote:

 jcc7 wrote:
 
 == Quote from jcc7 (technocrat7 gmail.com)'s article
 == Quote from John Reimer (terminal.node gmail.com)'s article
 Kris wrote:
...
 And no, my critique was not meant to address anything about the
 motives behind why the picture was chosen.  I'm sure it was innocent
 enough and was never meant to promote any sort of "cult" following
 of Tango. :)

 Please suggest a replacement? Perhaps we should run a little
 competition?
I have no suggestion at this time, other than to remove it, I suppose.
By the way, the picture that used to be on the Contributors page [1] is still in tango-tangobos-0.99.4-bin-win32-dmd.1.024.zip that I just downloaded today (and probably other .zips as well). I'm not saying that you need to remove it from the archive and change the file in SVN, but if there's an automated routine that builds the archive someone might want to take "TangoTeam.jpg" off of the list (if they haven't already). Just a suggestion for the Tango team from someone who's too lazy to write a ticket... ;) [1] http://www.dsource.org/projects/tango/wiki/Contributors
(I wish I could cancel a post done through the web interface.) Oops. Nevermind, I don't know what I'm talking about. :( (I promise I'm not high -- I just got a little confused.)
So am I now ...
... High or confused?
 -- 
 Lars Ivar Igesund
 blog at http://larsivi.net
 DSource, #d.tango & #D: larsivi
 Dancing the Tango
Feb 15 2008
parent reply Lars Ivar Igesund <larsivar igesund.net> writes:
Robert Fraser wrote:

 Lars Ivar Igesund Wrote:
 
 jcc7 wrote:
 
 == Quote from jcc7 (technocrat7 gmail.com)'s article
 == Quote from John Reimer (terminal.node gmail.com)'s article
 Kris wrote:
...
 And no, my critique was not meant to address anything about the
 motives behind why the picture was chosen.  I'm sure it was innocent
 enough and was never meant to promote any sort of "cult" following
 of Tango. :)

 Please suggest a replacement? Perhaps we should run a little
 competition?
I have no suggestion at this time, other than to remove it, I suppose.
By the way, the picture that used to be on the Contributors page [1] is still in tango-tangobos-0.99.4-bin-win32-dmd.1.024.zip that I just downloaded today (and probably other .zips as well). I'm not saying that you need to remove it from the archive and change the file in SVN, but if there's an automated routine that builds the archive someone might want to take "TangoTeam.jpg" off of the list (if they haven't already). Just a suggestion for the Tango team from someone who's too lazy to write a ticket... ;) [1] http://www.dsource.org/projects/tango/wiki/Contributors
(I wish I could cancel a post done through the web interface.) Oops. Nevermind, I don't know what I'm talking about. :( (I promise I'm not high -- I just got a little confused.)
So am I now ...
... High or confused?
Yes. -- Lars Ivar Igesund blog at http://larsivi.net DSource, #d.tango & #D: larsivi Dancing the Tango
Feb 16 2008
parent Robert Fraser <fraserofthenight gmail.com> writes:
Eww sorry about the double post 4 hours apart. BlackBerry (cell phpme) + web
interface + four different airports == sadness all around, especially with the
illustrious back button.

Lars Ivar Igesund Wrote:

 Robert Fraser wrote:
 
 Lars Ivar Igesund Wrote:
 
 jcc7 wrote:
 
 == Quote from jcc7 (technocrat7 gmail.com)'s article
 == Quote from John Reimer (terminal.node gmail.com)'s article
 Kris wrote:
...
 And no, my critique was not meant to address anything about the
 motives behind why the picture was chosen.  I'm sure it was innocent
 enough and was never meant to promote any sort of "cult" following
 of Tango. :)

 Please suggest a replacement? Perhaps we should run a little
 competition?
I have no suggestion at this time, other than to remove it, I suppose.
By the way, the picture that used to be on the Contributors page [1] is still in tango-tangobos-0.99.4-bin-win32-dmd.1.024.zip that I just downloaded today (and probably other .zips as well). I'm not saying that you need to remove it from the archive and change the file in SVN, but if there's an automated routine that builds the archive someone might want to take "TangoTeam.jpg" off of the list (if they haven't already). Just a suggestion for the Tango team from someone who's too lazy to write a ticket... ;) [1] http://www.dsource.org/projects/tango/wiki/Contributors
(I wish I could cancel a post done through the web interface.) Oops. Nevermind, I don't know what I'm talking about. :( (I promise I'm not high -- I just got a little confused.)
So am I now ...
... High or confused?
Yes. -- Lars Ivar Igesund blog at http://larsivi.net DSource, #d.tango & #D: larsivi Dancing the Tango
Feb 16 2008
prev sibling parent Robert Fraser <fraserofthenight gmail.com> writes:
Leandro Lucarella wrote:
 I second that. Phobos is closer to C/C++ stdlib, Tango to Java/.NET.
 I think it would be great to have 2 "compatible" standard libraries. One
 minimalist for embeded and such (phobos) and one for "big" (or not that
 big) desktop applications (tango). Of course both should be compatible and
 it had more sense if the "big" library were a super-set of the "small"
 one.
 
I'd rather use Tango for embedded systems development; it's more modular. It's very easy to rip out parts of Tango & still have it compiling, while Phobos is comparatively interdependent.
Jan 26 2008
prev sibling parent reply Jason House <jason.james.house gmail.com> writes:
Lars Ivar Igesund Wrote:

 Jesse Phillips wrote:
 It is not related to the size or speed of the code, as Sean was
 questioning, but in the use. The best comparison I can think of is that
 it is like going from C to Java. (I'm not saying Tango is like java) The
 phobos library is very procedural, you you import your module and call
 your functions. Tango is Object based, import, create object/call object
 to do something for you. There is a sense of simplicity when you don't
 use objects. That is frankly one of the reasons I have not moved to Tango
 yet.
I know there are a few places in Tango where an additional line may be needed (and many where you'll need quite a few less), but without exact examples of what people think is a problem, it is hard to make qualified decisions on where to make improvements.
Maybe I'm misusing the library, but I know I've had to create formatting objects (print!(char)?), even for common cases.
Jan 25 2008
parent Lars Ivar Igesund <larsivar igesund.net> writes:
Jason House wrote:

 Lars Ivar Igesund Wrote:
 
 Jesse Phillips wrote:
 It is not related to the size or speed of the code, as Sean was
 questioning, but in the use. The best comparison I can think of is that
 it is like going from C to Java. (I'm not saying Tango is like java)
 The phobos library is very procedural, you you import your module and
 call your functions. Tango is Object based, import, create object/call
 object to do something for you. There is a sense of simplicity when you
 don't use objects. That is frankly one of the reasons I have not moved
 to Tango yet.
I know there are a few places in Tango where an additional line may be needed (and many where you'll need quite a few less), but without exact examples of what people think is a problem, it is hard to make qualified decisions on where to make improvements.
Maybe I'm misusing the library, but I know I've had to create formatting objects (print!(char)?), even for common cases.
There is a global Layout instance in tango.text.convert.Format that defaults to char - Format.layout ("{0}", "first arg"); or if you already has imported Stdout Stdout.layout (...); -- Lars Ivar Igesund blog at http://larsivi.net DSource, #d.tango & #D: larsivi Dancing the Tango
Jan 26 2008
prev sibling parent Sean Kelly <sean f4.ca> writes:
Dan wrote:
 Jarrod Wrote:
 All I want to see is a standard, be it Phobos with all the cool stuff 
 Tango adds, or a Tango with all the nice things Phobos has. But this 
 isn't going to happen unless one of the dev teams concedes already :|
Fair assessment. I think Tango is more open source and takes the load off Walter. It's just simply too heavyweight for me to dare use it; so library developers go to Tango and library users still go to Phobos. : p
Could you explain? Tango was built from the ground up to be completely modular, so I'm not sure I understand the opinion that it's heavyweight. One of the original design parameters was that it be as suitable for kernel development as for application development, and I believe it's accomplished this goal quite well.
 That guy who developed the cool Agner Fog optimized mixin algorithm should get
access to an AST.  I'm sure he could write a kick-ass lib.
Once const is settled, I think we'll begin to see more of the 2.0 features Walter promised :-) Sean
Jan 25 2008
prev sibling parent reply Dan <murpsoft hotmail.com> writes:
Kris Wrote:

 
 "Jarrod" <qwerty ytre.wq> wrote in message 
 news:fnfa1t$1o1g$2 digitalmars.com...
 
 What bugs me overall is not the rift between features on either side, but
 rather the incompatibility issues. Unless there is a merge, there will be
 two standards..
Jarrod: In what manner does Tangobos not provide the "merge" you describe? It permits you to import, compile and link both phobos and Tango modules without fuss (which is what people had asked for). If you have a different idea of what that "merge" should instead be, would you please clarify?
The thing they're asking for is a single semantically coherent library. Essentially, take tangobos, make it "the" library, and then mix and match redundant parts to get the best of each. I'm a purist, so I dread the day that D's entire library infrastructure is based on classes. You can't tell me that the performance hit from classes is trivial. I see the best case being: 1) Establish a central repository of algorithms, such that anyone can submit algorithms to the repository. - Committed algorithms would need to solve some problem domain, and would not be trivially implemented with one-liners or other items in the library. - Each algorithm could be versioned separately, and require review and approval before being committed. - People ought to be able to sync their library to the standard repository. Perhaps by offering them read-only SVN access. This would let people revert to some old version of the standard library used to compile a program 5 years, 3 months and a day ago.
Jan 26 2008
next sibling parent reply "Kris" <foo bar.com> writes:
"Dan" <murpsoft hotmail.com> wrote in message 
news:fngu5g$2oi3$1 digitalmars.com...
 Kris Wrote:

 "Jarrod" <qwerty ytre.wq> wrote in message
 news:fnfa1t$1o1g$2 digitalmars.com...

 What bugs me overall is not the rift between features on either side, 
 but
 rather the incompatibility issues. Unless there is a merge, there will 
 be
 two standards..
Jarrod: In what manner does Tangobos not provide the "merge" you describe? It permits you to import, compile and link both phobos and Tango modules without fuss (which is what people had asked for). If you have a different idea of what that "merge" should instead be, would you please clarify?
The thing they're asking for is a single semantically coherent library.
Many would say that is exactly the role of Tango ;)
 Essentially, take tangobos, make it "the" library, and then mix and match 
 redundant parts to get the best of each.
That's a nice proposition, though probably very hard to satisfy more than one person in reality?
 I'm a purist, so I dread the day that D's entire library infrastructure is 
 based on classes.  You can't tell me that the performance hit from classes 
 is trivial.
I'm somewhat of a purist also, and a strong proponent of efficient code (you'd know that if the conference videos had ever been released). Others involved with Tango are of a similar mind so, given that, permit me to point out some things you (and/or others) may not be aware of: - You said "entire library infrastructure is based on classes", with perhaps a vague implication that's what Tango is about. This would be entirely false information, with the potential to mislead others. Phobos also has a number of classes, apparently in about the same ratio as Tango - When it comes to performance there are always tradeoffs. For the most part (with one or two exceptions) we feel that Tango gets it right, though some disagree on the finer points. For example: there is one specific Tango class that gets some flack, yet in usage it often saves a significant amount of heap activity. One problem is that many people often see "new" and immediately go "aha!", while not bothering to profile anything in real usage. - D has the scope keyword, which places classes on the stack (like a struct) - When D finally gets struct ctors, Tango /may/ change one or two things. I could go on, but the point is an old and boring one - don't judge a book by the cover. Tango is known to be significantly more efficient than phobos in all the ways we've tried in practice, and makes a concerted effort to design in a manner whereby heap-activity is minimized ... and to do so where it actually counts. Honestly, it really wouldn't be worth all the effort otherwise ;)
 I see the best case being:

 1) Establish a central repository of algorithms, such that anyone can 
 submit algorithms to the repository.

 - Committed algorithms would need to solve some problem domain, and would 
 not be trivially implemented with one-liners or other items in the 
 library.

 - Each algorithm could be versioned separately, and require review and 
 approval before being committed.

 - People ought to be able to sync their library to the standard 
 repository.  Perhaps by offering them read-only SVN access.  This would 
 let people revert to some old version of the standard library used to 
 compile a program 5 years, 3 months and a day ago.
What you describe is pretty much how Tango operates, and has done for the last year ;) Cheers;
Jan 26 2008
next sibling parent reply Jarrod <qwerty ytre.wq> writes:
On Sat, 26 Jan 2008 20:33:23 -0800, Kris wrote:

 "Dan" <murpsoft hotmail.com> wrote in message
 news:fngu5g$2oi3$1 digitalmars.com...
 Kris Wrote:


 "Jarrod" <qwerty ytre.wq> wrote in message
 news:fnfa1t$1o1g$2 digitalmars.com...

 What bugs me overall is not the rift between features on either
 side, but
 rather the incompatibility issues. Unless there is a merge, there
 will be
 two standards..
Jarrod: In what manner does Tangobos not provide the "merge" you describe? It permits you to import, compile and link both phobos and Tango modules without fuss (which is what people had asked for). If you have a different idea of what that "merge" should instead be, would you please clarify?
The thing they're asking for is a single semantically coherent library.
^That.
 Many would say that is exactly the role of Tango ;)
Then why is it not the standard library?
 Essentially, take tangobos, make it "the" library, and then mix and
 match redundant parts to get the best of each.
That's a nice proposition, though probably very hard to satisfy more than one person in reality?
And the current API does? As for the rest of your reply, I'm not really trying to debate core differences or implementation details and philosophies. I'm trying to find any possible compromise but from what I've seen you seem to be very strongly against any form of it. Oh, and I read your other reply regarding the creation of Tango, too. (Damn these branching threads.) If Tango was made because Phobos was in tatters in the past, then what is the motivation now? Phobos is once again moving along nicely. Why can't the Tango team help it advance?
Jan 26 2008
parent reply "Kris" <foo bar.com> writes:
"Jarrod" <qwerty ytre.wq> wrote in message 
news:fnh54c$2utd$1 digitalmars.com...
[snip]
 from what I've seen you seem to be very
 strongly against any form of it.
That's just not the case. Anyone at the D conference would probably verify that <g>
 If Tango was made because Phobos was in tatters in the past, then what is
 the motivation now?
Forgive me, but I have to ask if you know much about the Tango library? I mean, how long have you used it for? It's really not my goal to simply contradict your points (which are all good questions, btw), but there is rather a lot of supposition being expressed about Tango today <g>
 Phobos is once again moving along nicely. Why can't
 the Tango team help it advance?
Given that phobos is currently adopting code from Tango, how did you arrive at this supposition about the Tango team?
Jan 26 2008
parent reply Jarrod <qwerty ytre.wq> writes:
On Sat, 26 Jan 2008 22:34:43 -0800, Kris wrote:

 "Jarrod" <qwerty ytre.wq> wrote in message
 news:fnh54c$2utd$1 digitalmars.com... [snip]
 from what I've seen you seem to be very strongly against any form of
 it.
That's just not the case. Anyone at the D conference would probably verify that <g>
 If Tango was made because Phobos was in tatters in the past, then what
 is the motivation now?
Forgive me, but I have to ask if you know much about the Tango library? I mean, how long have you used it for? It's really not my goal to simply contradict your points (which are all good questions, btw), but there is rather a lot of supposition being expressed about Tango today <g>
I don't read up on the history of a library, I'm merely an end user. I find it odd you think using the library for longer would change my knowledge of Tango's design goals particularly in relation to Phobos. I just see the situation for how it currently is: Two completely different core libraries. Bad. Pretty simple issue. Apparently, not simple to solve though.
 Phobos is once again moving along nicely. Why can't the Tango team help
 it advance?
Given that phobos is currently adopting code from Tango, how did you arrive at this supposition about the Tango team?
Many people claim that windows originally stole its GUI ideas from mac. Are you saying mac helped develop windows? To answer your question more directly, I arrived at this supposition by simply noting Tango and Phobos are of course still separate, and both are in active development with different teams backing them. As a side note, and probably a closing note since this horse has been thoroughly beaten with no real resolve; I have to agree with others who have posted in this thread. At a glance, the IO routines of Tango give me horrible Java flashbacks. After rubbing my eyes and taking a closer look, I guess they liken a bit more to C++ streams. They don't really have easy to remember names (Conduits. Lolwut?) and I find it's hard to remember (or even understand) their relationship with one another. There also seems to be a lot of different stream types and this makes it more confusing to follow and remember. Overall, the IO Stream (uh I mean Conduit.. or do I?) usage isn't exactly difficult, but I can't say it's a pleasure either.
Jan 31 2008
parent Lars Ivar Igesund <larsivar igesund.net> writes:
Jarrod wrote:

 On Sat, 26 Jan 2008 22:34:43 -0800, Kris wrote:
 
 "Jarrod" <qwerty ytre.wq> wrote in message
 news:fnh54c$2utd$1 digitalmars.com... [snip]
 from what I've seen you seem to be very strongly against any form of
 it.
That's just not the case. Anyone at the D conference would probably verify that <g>
 If Tango was made because Phobos was in tatters in the past, then what
 is the motivation now?
Forgive me, but I have to ask if you know much about the Tango library? I mean, how long have you used it for? It's really not my goal to simply contradict your points (which are all good questions, btw), but there is rather a lot of supposition being expressed about Tango today <g>
I don't read up on the history of a library, I'm merely an end user. I find it odd you think using the library for longer would change my knowledge of Tango's design goals particularly in relation to Phobos. I just see the situation for how it currently is: Two completely different core libraries. Bad.
Not completely different, but Tango's runtime has fixes that necessiated breaking changes. AFAIK, the only compatibility issue still unresolved is the thread API and that really has to be handled in the Phobos end (that's were many of the fixes have been applied).
 Pretty simple issue. Apparently, not simple to solve though.
Phobos has its own obligations towards its users in terms of backwards compatibility, plus that even if we believe the Tango runtime is of good quality, Walter et al probably wish to confirm this by themselves. Maybe they won't use the runtime wholesale, but just make sure it is compatible. In any case isn't this an instant fix (we're talking a full library), although it seems pretty easy from a birds eye perspective. -- Lars Ivar Igesund blog at http://larsivi.net DSource, #d.tango & #D: larsivi Dancing the Tango
Jan 31 2008
prev sibling parent reply Jesse Phillips <jessekphillips gmail.com> writes:
On Sat, 26 Jan 2008 20:33:23 -0800, Kris wrote:

 - You said "entire library infrastructure is based on classes", with
 perhaps a vague implication that's what Tango is about. This would be
 entirely false information, with the potential to mislead others. Phobos
 also has a number of classes, apparently in about the same ratio as
 Tango
I would have to say that I have had the same perception as Dan here. From a general glance, Tango looks like it is solely class based. My choice not to use Tango was made back in its initial release dates. I have fallowed general discussion regarding Tango, but never felt the need/ desire to switch. This has been changing though, there have been times I wish I was coding in Tango because of something it provided. As such I will be happy to be switching over once my book arrives. I would like to also state my opinion on the Standard Library matter (coming from someone that hasn't used Tango). Tango should be standard. I don't think Phobos should die, but in general it looks like Tango has taken the lead. This is not to say that the one with the most features wins, but the one that is getting the most project support. Dsource is being filled with Tango based code; even ports from Phobos code bases. In my view the D language contributors have spoken, Tango is the library to use in development. Maybe, Phobos can be the dmd test bed library. You know for all the rapid changes that happen during alpha/beta.
Jan 27 2008
next sibling parent reply "Kris" <foo bar.com> writes:
"Jesse Phillips" <jessekphillips gmail.com> wrote in message 
news:fnhfnc$g0q$1 digitalmars.com...
 On Sat, 26 Jan 2008 20:33:23 -0800, Kris wrote:

 - You said "entire library infrastructure is based on classes", with
 perhaps a vague implication that's what Tango is about. This would be
 entirely false information, with the potential to mislead others. Phobos
 also has a number of classes, apparently in about the same ratio as
 Tango
I would have to say that I have had the same perception as Dan here. From a general glance, Tango looks like it is solely class based. My choice
Thanks, that's useful to know, and which Tango will take steps to remedy. Do you have any suggestions as to how the perception might be rectified or adjusted?
 not to use Tango was made back in its initial release dates. I have
 fallowed general discussion regarding Tango, but never felt the need/
 desire to switch. This has been changing though, there have been times I
 wish I was coding in Tango because of something it provided. As such I
 will be happy to be switching over once my book arrives.

 I would like to also state my opinion on the Standard Library matter
 (coming from someone that hasn't used Tango). Tango should be standard. I
 don't think Phobos should die, but in general it looks like Tango has
 taken the lead. This is not to say that the one with the most features
 wins, but the one that is getting the most project support. Dsource is
 being filled with Tango based code; even ports from Phobos code bases. In
 my view the D language contributors have spoken, Tango is the library to
 use in development.

 Maybe, Phobos can be the dmd test bed library. You know for all the rapid
 changes that happen during alpha/beta.
In the past, that was a fairly common view of the phobos role. If it were still to hold true, that would be just as important today as back then. Tango played a companion role in that respect, since it tended to push the compiler to the limits -- new releases would often break when presented with Tango code - Kris
Jan 27 2008
next sibling parent reply Dan <murpsoft hotmail.com> writes:
Kris Wrote:
 
 "Jesse Phillips" <jessekphillips gmail.com> wrote in message 
 news:fnhfnc$g0q$1 digitalmars.com...
 On Sat, 26 Jan 2008 20:33:23 -0800, Kris wrote:

 I would have to say that I have had the same perception as Dan here. From
 a general glance, Tango looks like it is solely class based. My choice
Thanks, that's useful to know, and which Tango will take steps to remedy. Do you have any suggestions as to how the perception might be rectified or adjusted?
Perhaps if a few of us (me) got of our collective asses and looked at the code again since the first release; we might have more appreciation for it and stop spreading FUD. : )
Jan 27 2008
parent "Kris" <foo bar.com> writes:
"Dan" <murpsoft hotmail.com> wrote in message 
news:fnhhae$pqf$1 digitalmars.com...
 Kris Wrote:
 "Jesse Phillips" <jessekphillips gmail.com> wrote in message
 news:fnhfnc$g0q$1 digitalmars.com...
 On Sat, 26 Jan 2008 20:33:23 -0800, Kris wrote:

 I would have to say that I have had the same perception as Dan here. 
 From
 a general glance, Tango looks like it is solely class based. My choice
Thanks, that's useful to know, and which Tango will take steps to remedy. Do you have any suggestions as to how the perception might be rectified or adjusted?
Perhaps if a few of us (me) got of our collective asses and looked at the code again since the first release; we might have more appreciation for it and stop spreading FUD. : )
lol :-D Seriously though, it sounds like we need to do a much better job here
Jan 27 2008
prev sibling parent reply Jesse Phillips <jessekphillips gmail.com> writes:
On Sun, 27 Jan 2008 00:51:20 -0800, Kris wrote:

 "Jesse Phillips" <jessekphillips gmail.com> wrote in message
 news:fnhfnc$g0q$1 digitalmars.com...

 I would have to say that I have had the same perception as Dan here.
 From a general glance, Tango looks like it is solely class based. My
 choice
Thanks, that's useful to know, and which Tango will take steps to remedy. Do you have any suggestions as to how the perception might be rectified or adjusted?
I supposed it is related to what Christopher observed. "The only thing I've really noticed, browsing through the source, is formatting and console IO being provided by classes." One of the first things people/ myself see is IO, and as such probably the formatting second. I see no reason to wrap them in functions. I suppose it would be best to acknowledge this concern somewhere and state its falsehood.
Jan 27 2008
parent "Kris" <foo bar.com> writes:
"Jesse Phillips" <jessekphillips gmail.com> wrote in message 
news:fnim87$2s2d$1 digitalmars.com...
 On Sun, 27 Jan 2008 00:51:20 -0800, Kris wrote:

 "Jesse Phillips" <jessekphillips gmail.com> wrote in message
 news:fnhfnc$g0q$1 digitalmars.com...

 I would have to say that I have had the same perception as Dan here.
 From a general glance, Tango looks like it is solely class based. My
 choice
Thanks, that's useful to know, and which Tango will take steps to remedy. Do you have any suggestions as to how the perception might be rectified or adjusted?
I supposed it is related to what Christopher observed. "The only thing I've really noticed, browsing through the source, is formatting and console IO being provided by classes." One of the first things people/ myself see is IO, and as such probably the formatting second. I see no reason to wrap them in functions. I suppose it would be best to acknowledge this concern somewhere and state its falsehood.
Thanks. Larsivi recently started a FAQ on the Wiki ... perhaps that could act as a home for this ? - Kris
Jan 27 2008
prev sibling next sibling parent reply Christopher Wright <dhasenan gmail.com> writes:
Jesse Phillips wrote:
 On Sat, 26 Jan 2008 20:33:23 -0800, Kris wrote:
 
 - You said "entire library infrastructure is based on classes", with
 perhaps a vague implication that's what Tango is about. This would be
 entirely false information, with the potential to mislead others. Phobos
 also has a number of classes, apparently in about the same ratio as
 Tango
I would have to say that I have had the same perception as Dan here. From a general glance, Tango looks like it is solely class based.
Tango has a lot more things that hold data than Phobos. Collections and datetimes, for instance. Some things it keeps as static struct methods, like WallClock.Now, for namespaces. The only thing I've really noticed, browsing through the source, is formatting and console IO being provided by classes. That's about three classes, total, that I've seen that could be done away with. But the result of replacing the formatting class with free-floating functions would be more verbose code, due to template arguments. Solving this perception is a matter of advertising, not of changing code. That is unfortunate; changing code is much easier and faster.
Jan 27 2008
parent reply Sean Kelly <sean f4.ca> writes:
Christopher Wright wrote:
 Jesse Phillips wrote:
 On Sat, 26 Jan 2008 20:33:23 -0800, Kris wrote:

 - You said "entire library infrastructure is based on classes", with
 perhaps a vague implication that's what Tango is about. This would be
 entirely false information, with the potential to mislead others. Phobos
 also has a number of classes, apparently in about the same ratio as
 Tango
I would have to say that I have had the same perception as Dan here. From a general glance, Tango looks like it is solely class based.
Tango has a lot more things that hold data than Phobos. Collections and datetimes, for instance. Some things it keeps as static struct methods, like WallClock.Now, for namespaces. The only thing I've really noticed, browsing through the source, is formatting and console IO being provided by classes. That's about three classes, total, that I've seen that could be done away with.
They could be wrapped in functions perhaps, but not done away with entirely. The formatting code lives in a class because it integrates with the i8n features in Tango. However, I think one could argue that there should be a pre-existing, global formatter instance.
 But the result of replacing the formatting class with
 free-floating functions would be more verbose code, due to template
 arguments.
Yup.
 Solving this perception is a matter of advertising, not of changing
 code. That is unfortunate; changing code is much easier and faster.
I agree. From what people have said, it seems like the greatest obstacle Tango has to overcome is the first-glance or second-hand perception of it. Which is fare more difficult an obstacle than code problems. Sean
Jan 27 2008
next sibling parent Bill Baxter <dnewsgroup billbaxter.com> writes:
Sean Kelly wrote:
 Christopher Wright wrote:
 Jesse Phillips wrote:
I agree. From what people have said, it seems like the greatest obstacle Tango has to overcome is the first-glance or second-hand perception of it. Which is fare more difficult an obstacle than code problems.
I think it would help if there were a global function-based interface for printing, so I didn't have to keep praying to St. Dout every time I want to get some output. Call me sloppy but I like being able to just use a simple function like "printf/writefln" when writing my crappy code. --bb
Jan 27 2008
prev sibling parent reply "Kris" <foo bar.com> writes:
"Sean Kelly" <sean f4.ca> wrote in message 
news:fnih3r$2vvp$2 digitalmars.com...
 Christopher Wright wrote:
 Tango has a lot more things that hold data than Phobos. Collections and
 datetimes, for instance. Some things it keeps as static struct methods,
 like WallClock.Now, for namespaces. The only thing I've really noticed,
 browsing through the source, is formatting and console IO being provided
 by classes. That's about three classes, total, that I've seen that could
 be done away with.
They could be wrapped in functions perhaps, but not done away with entirely. The formatting code lives in a class because it integrates with the i8n features in Tango. However, I think one could argue that there should be a pre-existing, global formatter instance.
(which there is, for utf8)
Jan 27 2008
parent reply Don Clugston <dac nospam.com.au> writes:
Kris wrote:
 "Sean Kelly" <sean f4.ca> wrote in message 
 news:fnih3r$2vvp$2 digitalmars.com...
 Christopher Wright wrote:
 Tango has a lot more things that hold data than Phobos. Collections and
 datetimes, for instance. Some things it keeps as static struct methods,
 like WallClock.Now, for namespaces. The only thing I've really noticed,
 browsing through the source, is formatting and console IO being provided
 by classes. That's about three classes, total, that I've seen that could
 be done away with.
They could be wrapped in functions perhaps, but not done away with entirely. The formatting code lives in a class because it integrates with the i8n features in Tango. However, I think one could argue that there should be a pre-existing, global formatter instance.
(which there is, for utf8)
If even Sean doesn't know that, then there's *really* an advertising problem <g>.
Jan 30 2008
parent Sean Kelly <sean f4.ca> writes:
Don Clugston wrote:
 Kris wrote:
 "Sean Kelly" <sean f4.ca> wrote in message
 news:fnih3r$2vvp$2 digitalmars.com...
 Christopher Wright wrote:
 Tango has a lot more things that hold data than Phobos. Collections and
 datetimes, for instance. Some things it keeps as static struct methods,
 like WallClock.Now, for namespaces. The only thing I've really noticed,
 browsing through the source, is formatting and console IO being
 provided
 by classes. That's about three classes, total, that I've seen that
 could
 be done away with.
They could be wrapped in functions perhaps, but not done away with entirely. The formatting code lives in a class because it integrates with the i8n features in Tango. However, I think one could argue that there should be a pre-existing, global formatter instance.
(which there is, for utf8)
If even Sean doesn't know that, then there's *really* an advertising problem <g>.
It was a mistake on my part. Some of the globals were removed a while back, and I thought that was one of them. Just goes to show how often I've needed to do any string formatting recently. I really should have checked before posting. :-) Sean
Jan 30 2008
prev sibling next sibling parent reply Jason House <jason.james.house gmail.com> writes:
Jesse Phillips wrote:
 I would like to also state my opinion on the Standard Library matter
 (coming from someone that hasn't used Tango). Tango should be standard. I
 don't think Phobos should die, but in general it looks like Tango has
 taken the lead. This is not to say that the one with the most features
 wins, but the one that is getting the most project support. Dsource is
 being filled with Tango based code; even ports from Phobos code bases. In
 my view the D language contributors have spoken, Tango is the library to
 use in development.
I agree that Tango should be considered standard, or at least put on equal footing with Phobos, such as releasing dmd with both Phobos and Tango. Of course, Tangobos really makes things simple... Releasing dmd with a combo of Tango and Tangobos is probably more consistent. The only problem I see with that is that tango has not been on the D 2.x train. Maybe just 1.x releases should do this? In my ideal world, as changes to the D compiler occur, some motivated Tango maintainer would get advance warning and ensure compatibility prior to official release. I don't know if this simply means branding some Phobos maintainers to have a dual role. Personally, I switched from Phobos to Tango when I stumbled upon GC issues in Phobos (that were well documented for a very long time) that had been fixed in Tango long before I discovered them. At the time, it looked like Tango had better developer support than Phobos. As an additional side-effect, items that I had banged my head against with Phobos were solved rather simply with Tango. These included platform-independent timing control and threading. My only problem with Tango was trying to get line-buffered console/file I/O to work. At the time, the docs in that area did not exist. It wasn't very easy to figure out from API docs.
Jan 27 2008
parent reply Sean Kelly <sean f4.ca> writes:
Jason House wrote:
 Jesse Phillips wrote:
 I would like to also state my opinion on the Standard Library matter
 (coming from someone that hasn't used Tango). Tango should be standard. I
 don't think Phobos should die, but in general it looks like Tango has
 taken the lead. This is not to say that the one with the most features
 wins, but the one that is getting the most project support. Dsource is
 being filled with Tango based code; even ports from Phobos code bases. In
 my view the D language contributors have spoken, Tango is the library to
 use in development.
I agree that Tango should be considered standard, or at least put on equal footing with Phobos, such as releasing dmd with both Phobos and Tango. Of course, Tangobos really makes things simple... Releasing dmd with a combo of Tango and Tangobos is probably more consistent. The only problem I see with that is that tango has not been on the D 2.x train. Maybe just 1.x releases should do this?
What's been holding us back thus far there has been the indeterminate state of 'const'. However, it seems that the design has been finalized at this point and the syntax appears unlikely to change as well, so it may be time to look into making Tango 2.0-compatible. I'll admit to be dreading dealing with 'const' changing to 'invariant' however. For now, we'll likely avoid the use of 'invariant' completely, simply for maintenance reasons.
 In my ideal world, as changes to the D compiler occur, some motivated Tango
 maintainer would get advance warning and ensure compatibility prior to
 official release.  I don't know if this simply means branding some Phobos
 maintainers to have a dual role.
For what it's worth, any necessary changes are typically made to the Tango trunk within 24 hours of a new DMD release. And now that Phobos is in SVN I think we are in even better shape, as we are aware of changes as soon as they are committed to the Phobos project. But I agree that having an idea about the timing of new compiler releases as well as any unannounced changes would improve our responsiveness.
 Personally, I switched from Phobos to Tango when I stumbled upon GC issues
 in Phobos (that were well documented for a very long time) that had been
 fixed in Tango long before I discovered them.  At the time, it looked like
 Tango had better developer support than Phobos.  As an additional
 side-effect, items that I had banged my head against with Phobos were
 solved rather simply with Tango.  These included platform-independent
 timing control and threading.  My only problem with Tango was trying to get
 line-buffered console/file I/O to work.  At the time, the docs in that area
 did not exist.  It wasn't very easy to figure out from API docs.
I agree with this. Fortunately, the documentation is improving, aided partially by work done on the book. However, if you or anyone else has suggestions on how it might be further improved or are interested in writing tutorials/examples/whatever, please let us know. This is one area where it's easy for people to contribute without worrying about coding standards, etc. Sean
Jan 27 2008
next sibling parent reply "Guillaume B." <guillaume.b.spam sympatico.ca> writes:
Sean Kelly wrote:

 
 I agree with this.  Fortunately, the documentation is improving, aided
 partially by work done on the book.  However, if you or anyone else has
 suggestions on how it might be further improved or are interested in
 writing tutorials/examples/whatever, please let us know.  This is one
 area where it's easy for people to contribute without worrying about
 coding standards, etc.
 
Hi, I've started using Tango recently and I like most of it. What's really confusing for me is all the IO stuff: I'm never really sure of the relationship between Conduit, Stream, ... I thought about one thing that could help: in the API documentation, it would help a lot if there where more links. For example, in tango.sys.Process, Process.stdout returns a PipeConduit. But there is no link on PipeConduit that would bring me to the page describing this class... So, I have to guess where it could be from the API index... Once I found that it's within tango.sys.Pipe, I see "class PipeConduit : tango.io.DeviceConduit.DeviceConduit"... Again, there is no link so I have to return to the API index to find where DeviceConduit is defined (it's easy in this case)... With all this back and forward, it's hard to find what your looking for. It would also help if the API could be searched... The search on the site searches the whole wiki... And it doesn't seem really good: I know there must be a "trim" function somewhere but searching the wiki doesn't show that it's within tango.text.Util... Searching "site:http://dsource.org/projects/tango/docs/current/ trim" with Google does a much bether job... But the best would be an API search a little bit like http://www.gotapi.com/ : you type function names or classes and it shows the result in real time... So those where my suggestions... Guillaume
Jan 27 2008
parent reply "Kris" <foo bar.com> writes:
"Guillaume B." <guillaume.b.spam sympatico.ca> wrote...
 Hi,

 I've started using Tango recently and I like most of it. What's really
 confusing for me is all the IO stuff: I'm never really sure of the
 relationship between Conduit, Stream, ... I thought about one thing that
 could help: in the API documentation, it would help a lot if there where
 more links. For example, in tango.sys.Process, Process.stdout returns a
 PipeConduit. But there is no link on PipeConduit that would bring me to 
 the
 page describing this class... So, I have to guess where it could be from
 the API index... Once I found that it's within tango.sys.Pipe, I see 
 "class
 PipeConduit : tango.io.DeviceConduit.DeviceConduit"... Again, there is no
 link so I have to return to the API index to find where DeviceConduit is
 defined (it's easy in this case)... With all this back and forward, it's
 hard to find what your looking for.
Yeah, this is frustrating, and a step backwards from when dOxygen was used in the past. Documentation production is currently based upon what the DMD compiler can produce, and unfortunately that does not generate cross-module references at this time. We'd quietly hoped that someone in the community would write a cross-linking utility, to operate with DMD doc output, but it hasn't yet happened (that I'm aware of). Obviously, such a utility would benefit D as a whole. But you're right ... something needs to be done about this. Perhaps Walter has some ideas about this also?
 It would also help if the API could be searched... The search on the site
 searches the whole wiki... And it doesn't seem really good: I know there
 must be a "trim" function somewhere but searching the wiki doesn't show
 that it's within tango.text.Util...
Try this page: http://dsource.org/projects/tango/docs/current/ If you have your browser set to search as soon as you start typing, then it is surprisiing efficient to locate a module of interest. With FireFox I type a few letters and hit return. That gives me the doc generated via DMD and CandyDoc (with function links on the left), and if I want to see the current source code I can click on the big blue title at the top of the page. Perhaps the links from that page should open another tab, so the index page remains visible?
 Searching "site:http://dsource.org/projects/tango/docs/current/ trim" with
 Google does a much bether job... But the best would be an API search a
 little bit like http://www.gotapi.com/ : you type function names or 
 classes
 and it shows the result in real time...
That would be great, and we really should at least have a traditional cross-reference generated.
 So those where my suggestions...

 Guillaume
Thank you!
Jan 27 2008
parent reply "Guillaume B." <guillaume.b.spam sympatico.ca> writes:
Kris wrote:

 
 Try this page:  http://dsource.org/projects/tango/docs/current/
 
 If you have your browser set to search as soon as you start typing, then
 it is surprisiing efficient to locate a module of interest. With FireFox I
 type a few letters and hit return. That gives me the doc generated via DMD
 and CandyDoc (with function links on the left), and if I want to see the
 current source code I can click on the big blue title at the top of the
 page. Perhaps the links from that page should open another tab, so the
 index page remains visible?
 
 
Hi, That's exactly what I do: type for a module name from that page and open it in a new tab. It gets more complicated when the class I'm looking for isn't obvious from the module name. For example, tango.io.Conduit returns "OutputStream"... without a search (with google), it's hard to tell that it's within tango.io.model.IConduit. Maybe the Tango API could be added to gotapi: it doesn't seem hard to add new API (see http://www.gotapi.com/contribute/ ... The trick is to generate the XML... no idea if it could be easily done with dmd doc... I'm not affiliated in any way with gotapi by the way) but I have no idea if they will accept it. If they do add it, it could help with D and Tango visibility (Phobos could also be added!). There might be other API search site like that too but I know only this one. Guillaume
Jan 27 2008
parent "Kris" <foo bar.com> writes:
"Guillaume B." <guillaume.b.spam sympatico.ca> wrote in message 
news:fninp6$fma$1 digitalmars.com...
 Kris wrote:

 Try this page:  http://dsource.org/projects/tango/docs/current/

 If you have your browser set to search as soon as you start typing, then
 it is surprisiing efficient to locate a module of interest. With FireFox 
 I
 type a few letters and hit return. That gives me the doc generated via 
 DMD
 and CandyDoc (with function links on the left), and if I want to see the
 current source code I can click on the big blue title at the top of the
 page. Perhaps the links from that page should open another tab, so the
 index page remains visible?
Hi, That's exactly what I do: type for a module name from that page and open it in a new tab. It gets more complicated when the class I'm looking for isn't obvious from the module name. For example, tango.io.Conduit returns "OutputStream"... without a search (with google), it's hard to tell that it's within tango.io.model.IConduit. Maybe the Tango API could be added to gotapi: it doesn't seem hard to add new API (see http://www.gotapi.com/contribute/ ... The trick is to generate the XML... no idea if it could be easily done with dmd doc... I'm not affiliated in any way with gotapi by the way) but I have no idea if they will accept it. If they do add it, it could help with D and Tango visibility (Phobos could also be added!). There might be other API search site like that too but I know only this one. Guillaume
I'm not familiar with gotoapi, but it sounds like a great tool! Now I need to ask Robert Fraser (and co) if Descent could perhaps generate the appropriate XML doc for this ... Thanks again ... this is a great suggestion.
Jan 27 2008
prev sibling parent Jason House <jason.james.house gmail.com> writes:
Sean Kelly Wrote:
 I agree with this.  Fortunately, the documentation is improving, aided
 partially by work done on the book.  However, if you or anyone else has
 suggestions on how it might be further improved or are interested in
 writing tutorials/examples/whatever, please let us know.  This is one
 area where it's easy for people to contribute without worrying about
 coding standards, etc.
It'd be helpful for both contributors and potential users of tango if there was comprehensive list of short-comings in the docs/examples, and some kind of help-wanted page that listed needed contributions and anticipated difficulty level. I'll also admit to not having read tango docs in detail for a long time. I mostly use the API reference to find stuff. Having links in the API docs to chapters in the howto would be nice
Jan 28 2008
prev sibling parent Sean Kelly <sean f4.ca> writes:
Jesse Phillips wrote:
 
 Maybe, Phobos can be the dmd test bed library. You know for all the rapid 
 changes that happen during alpha/beta.
This has always been the true purpose of Phobos, in my opinion. It certainly fits the development process. Sean
Jan 27 2008
prev sibling parent Christopher Wright <dhasenan gmail.com> writes:
Dan wrote:
 - Committed algorithms would need to solve some problem domain, and would not
be trivially implemented with one-liners or other items in the library.
There's some value in having a standard way of solving something, even trivial, if the problem appears often enough. Things like some array operations, indexof for instance. And partitioning an array: a foreach loop is the best you'll get, and efficient, but Tango still has a partition function. The criteria should be: Does it save people time? Does it make their code clearer? Does it reduce the number of bugs in client code? Maybe a few more things.
Jan 27 2008