December 15, 2011
I am C programmer, but I had already did a little OO programming in Python and Delphi. So after look for a growth in my studies and enter definetly in OO programming, I found a  video on youtube from Andrei Alexandrescu. And I got hooked since then.

But that was just the beginning, until I discover that there are D1 and D2, tango and phobos Et cetera. Many options to get lost.

I've had a great help from the d-guys at #d channel on IRC. But anyway... I think choosing one language is the right choice for everyone, mainly for the new users. And you need simplify the entry of the new users.

In some cases you need sacrifice something. For example, I love work on Visual Studio 7.0 (The old one without framework or .net), but they (irc guys) told me that I need move on to the free version of VS 2010 to use VisualD. Yes for me as new member this is a small sacrifice, but for you, the D1 guys, you should think for the benefits of D2 for all community, and not for what you will lost but what you will get from now on.

PS: Sorry my bad english.

Matt.
December 15, 2011
On 15/12/2011 00:32, Jakob Bornecrantz wrote:
> On Wednesday, 14 December 2011 at 18:55:23 UTC, Walter Bright wrote:
>> On 12/14/2011 10:28 AM, Jakob Bornecrantz wrote:
>>>> I don't know where the D1 community is, or even if it exists anymore.
>>>
>>> I'm here!
>>
>> Thanks for speaking up.
>
> np.
>
>>> Anyways couldn't you just do releases less often or only when there
>>> is something to release? Like every other D2 release to
>>> lessen the burden?
>>
>> Can I turn that around and ask what issues there are with migrating
>> your code base to D2?
>
> In short it can be answered with the questions "Can you
> guarantee it work?" and "Can I justify the amount of work I have
> to put in for the gain?", the thing is I have a had a lot of
> problems with D1 toolchain, I have fixed or worked around these
> issues and I'm wondering if I have to work around those or other
> again. I am currently supporting 3 platforms (Mac, Linux &
> Windows), so that factors in as well (me having fixed some
> issues on Mac for D1).
>
> My current code base is 40Kloc's where about 8Kloc of those
> are library bindings, on top of that it also includes a couple
> of C projects sources (expat, lua and some other misc
> libraries). So I would have to convert all that code to D2 and
> also fix any issues that might arise from that conversion.
> That said I think that it would mostly running the code
> through dmd2 and just fix any cases where it complains. But it
> probably wouldn't be a trivial amount of work.

Having migrated a far smaller codebase from D1/Tango to D2/Phobos, here are some tips/things I encountered:

* Most of the effort in porting was dealing with the lack of features in phobos, this sounds like it wouldn't be an issue for you though since you're using D1/Phobos.
* Make sure all your code is thoroughly unittested - my code had a reasonable amount of unittests, but I was still discovering subtle bugs months later that were caused by the transition
* Do it all in one go, and DO NOT GET DISTRACTED. The moment you start trying to clean up code as well as finish porting it you introduce lots of issues
* Some things will inevitably have to change to get them working... Don't make the changes while you're porting, just drop in a /* TODO: <This needs to work like X, not Y> */ comment and come back to it later. Get it compiling first, then go through and sort things out later.

Hope this helps, should you decide to transition :)

-- 
Robert
http://octarineparrot.com/
December 15, 2011
Also, port from the smallest module to the largest, OR the ones that have the least dependencies towards those that have more.

Basically, you want to be able to unittest your modules as soon as you port them, so the modules that import these newly tested modules will call into functions that you know will work.
December 15, 2011
On 12/15/2011 6:33 AM, bearophile wrote:
>> I should add that the XMM register support is for 64 bit targets, and also
>> the register allocator will enregister float and double variables in XMM
>> registers.<
> Will DMD use 8 XMM registers in 32 bit code too?

We'll see, but it's a harder problem.

>> Putting the compiler in D would make it difficult to integrate the D front
>> end into the C/C++ back ends of gcc and llvm.<
>
> Writing the reference front-end in D has some advantages: - Other people have
> lot of C/C++ code; if they want to use D they will probably want to interface
> C/C++ with D code. So writing the compiler front-end in D is a way to eat
> some of the D dog food, and see/test how much good such interfacing is, and
> eventually it's a push to improve it.

D is designed to use C libraries. It is not designed to be a library accessible from C - D wants to be in charge of the startup.

> If some parts of the D2 language are badly designed or they
> lead to low performance (like fixed sized array assignment) this is a good
> way to spot such problems and a way to push to fix them.

That isn't the issue.
December 15, 2011
On 12/15/2011 9:49 AM, Robert Clipsham wrote:
> * Do it all in one go, and DO NOT GET DISTRACTED. The moment you start trying to
> clean up code as well as finish porting it you introduce lots of issues

I've done many projects that translated code from one language to another, some were pretty large. The One Big Most Important Rule is:


!!!! DO NOT REFACTOR/ENHANCE/IMPROVE/FIX/CLEANUP THE CODE WHILE TRANSLATING !!!!


I know how tempting it is. It's incredibly tempting. It's a huge mistake.

The method that works is to turn your brain off, and simply translate. Strive for a 1:1 correspondence between the original code and the translated code. Do not divert from this until after your translation is done, and it behaves identically to the original.

The reason is that the translated version inevitably will not behave like the original. A lot of things will be broken. If you did a 1:1 translation, you can instrument both, find where the translation diverges, and fix it in a fairly quick and straightforward manner. If you changed the way it is organized or works, then you have no idea if it is a translation error or your changes broke it, and you have a much, much harder time fixing it.
December 15, 2011
On 2011-12-15 20:41, Walter Bright wrote:
> On 12/15/2011 9:49 AM, Robert Clipsham wrote:
>> * Do it all in one go, and DO NOT GET DISTRACTED. The moment you start
>> trying to
>> clean up code as well as finish porting it you introduce lots of issues
>
> I've done many projects that translated code from one language to
> another, some were pretty large. The One Big Most Important Rule is:
>
>
> !!!! DO NOT REFACTOR/ENHANCE/IMPROVE/FIX/CLEANUP THE CODE WHILE
> TRANSLATING !!!!
>
>
> I know how tempting it is. It's incredibly tempting. It's a huge mistake.
>
> The method that works is to turn your brain off, and simply translate.
> Strive for a 1:1 correspondence between the original code and the
> translated code. Do not divert from this until after your translation is
> done, and it behaves identically to the original.
>
> The reason is that the translated version inevitably will not behave
> like the original. A lot of things will be broken. If you did a 1:1
> translation, you can instrument both, find where the translation
> diverges, and fix it in a fairly quick and straightforward manner. If
> you changed the way it is organized or works, then you have no idea if
> it is a translation error or your changes broke it, and you have a much,
> much harder time fixing it.

Having ported the Mac OS X version of SWT from Java to D (and a couple of other code bases) I completely agree with everything above. You just have to turn your mind off and work like a machine when porting. It's extremely tempting do some small fixes here and there but restrain yourself, you'll thank yourself in the end.

-- 
/Jacob Carlborg
December 15, 2011
On 12/13/2011 1:59 PM, Bane wrote:
> Walter Bright Wrote:
>
>> On 12/13/2011 12:52 PM, Jacob Carlborg wrote:
>>> On 2011-12-13 19:55, Walter Bright wrote:
>>>> On 12/13/2011 9:47 AM, Jacob Carlborg wrote:
>>>>> If I recall correctly Walter has said he will continue to support D1
>>>>> as long as
>>>>> there are users.
>>>>
>>>> Yes, I did say that. For some time now, I've been releasing D1 betas and
>>>> have not received any response to them. I haven't noticed new bug
>>>> reports for D1. I haven't seen posts here about D1. I announced the D1
>>>> 1.072 release a few days ago, and there wasn't a single comment on it.
>>>
>>> Yeah, I noticed that. I'm still using D1. I usually don't have time to try all
>>> beta versions or releases for that matter. Your making solid improvements in
>>> every release and I'm grateful for that. I apologize if I haven't shown any
>>> gratitude.
>>
>>
>> It's not really about gratitude, but just letting me know that there's a point
>> to doing those releases.
>
> <broken_record>
> <suggestion>
>   Forum, registered users, pool/email pool = feedback :)
> </suggestion>
> </broken_record>

Forum/Registered Users, Unless you are regularly cleaning out inactives this number means nothing about a current userbase.

pool/email pool? Are people emailing that I havent heard of. I am on a quite a few mailing lists I cant remove myself from due to lost passwords, or just a lack of caring. Alot of times I just feed them to my spam filter and they stop showing up anymore. I am still a registered user though. This number means nothing.
December 15, 2011
> Forum/Registered Users, Unless you are regularly cleaning out inactives this number means nothing about a current userbase.

Purpose is not evaluating size of community but to be able to keep in touch with it.

> 
> pool/email pool? Are people emailing that I havent heard of. I am on a quite a few mailing lists I cant remove myself from due to lost passwords, or just a lack of caring.

Any decent forum has unsubscribe link in each email it sends. Password is not required.

> Alot of times I just feed them to my spam filter and they stop showing up anymore. I am still a registered user though. This number means nothing.

Interesting. Answering on email pool would be too much effort. Writing comment on newsgroup isn't.

Anyways, D "community" can't really speak its mind here. Here it is 5-10 regular users that are persistent enough to dig trough loads of mixed information, some important, most of it not, on this NG. Most users have no time to check this place every other day so they can say 'please, don't discontinue D1, I am using it' or anything like that when important matter arises.

Sending question to users is more correct way to obtain opinions than to wait people to stumble on this thread here. It won't happen for most D users. Ever.



December 15, 2011
On 12/15/11 3:50 PM, Bane wrote:
> Anyways, D "community" can't really speak its mind here. Here it is
> 5-10 regular users that are persistent enough to dig trough loads of
> mixed information, some important, most of it not, on this NG. Most
> users have no time to check this place every other day so they can
> say 'please, don't discontinue D1, I am using it' or anything like
> that when important matter arises.
>
> Sending question to users is more correct way to obtain opinions than
> to wait people to stumble on this thread here. It won't happen for
> most D users. Ever.

This is the case with all language communities I've interacted with (C++, Perl, TeX). For all its hoards of users, C++ has a small but extremely influential community hanging out on two Usenet newsgroups: comp.lang.c++.moderated and comp.std.c++. Needless to say, both are free and open for anyone to join. But these groups are the closest it gets to pure meritocracy - people could earn huge amounts of clout simply by making good quality posts. In fact my first ever invited conference talk was solely on account of my newsgroup contributions.

The traffic on either of these groups is comparable to that on the D newsgroups. There are few official "well, let's ask the community" polls but by and large the trends reflected by these groups are fairly influential. I'm not saying that's good or bad, I'm just saying it is, and also that D's community dynamics is no different in that regard from at least a few others.

Regarding this particular announcement, there's no need to dig for it. I sent it not only to this group, but also to D_programming's 805 Twitter followers, my 1215 Twitter followers, my 3661 Facebook subscribers, reddit, and by extension to D's homepage and my own homepage. It is reasonable to expect that people with an interest in D have had all chances to see it and sufficient channels to chime in.

True, the announcement was a done deal and not a question. I very strongly think it didn't need to be a question, for reasons I expanded upon in other posts in this thread.


Thanks,

Andrei
December 16, 2011
On 12/14/2011 1:16 AM, Jacob Carlborg wrote:
> On 2011-12-14 10:08, Long Chang wrote:
>> I use dwt and tango for some project recent.
>
> Cool to here that's someone is using DWT.
>
>> Before dwt2 and minid and other cool project is ready for d2, I will
>> still need D1.
>
> Exactly and see, the D1 users start to pop up.

There have been 3.

>
>> On 13 December 2011 21:52, Don<nospam@nospam.com> wrote:
>>> On 10.12.2011 22:19, Andrei Alexandrescu wrote:
>>>>
>>>> In order to increase focus and unity in the language, we are
>>>> discontinuing support for D1 on December 31, 2012. That's more than one
>>>> year away, which gives enough time to D1 users to migrate libraries and
>>>> applications to D2.
>>>
>>>
>>> I thought we had moved away from these kinds of unilateral decisions.
>>> I strongly oppose this decision. In particlar, I find the lack of
>>> community
>>> consulatation deplorable.
>
>