December 12, 2013
On 12/12/2013 8:08 PM, Regan Heath wrote:

>> MinGW distros. Even with VC, you still have to download the Windows
>> SDK separately.
>
> I don't believe this last statement is true.  I am fairly certain that
> upon installing VC you have everything you need to call/use Win32
> functions.  The only reason to download/install a separate SDK is if
> your VC version is older and you want a newer SDK/API.

Oh, I was sure I had to install the SDK when I installed the VC Express. But I see now that it is included.

>
>> Should DMD ship with X-Windows bindings, too? What about Cocoa on OS X?
>
> How big are they?  If we're just talking about D "header" files then I
> am all for it, the more the merrier.  It's not like internet bandwidth
> or hard disk space is currently an issue and it will only become less of
> an issue the more time rolls on.  If people are really anxious about
> this, why not have a separate download for windows and the various
> flavours of UNIX.. wait a minute, we already do. :)

It's not the bandwidth or disk size that bothers me. It's mostly a matter of maintenance. I appreciate the "batteries included" approach as far as Phobos is concerned, but given that DMD aims to be a cross-platform compiler, I don't think platform-specific API bindings should fall into that category. I mean, all these years and the Win32 bindings are still incomplete, while there are a couple of complete (or mostly complete) third-party bindings out there that do a good job of staying relevant.

Why is that? Because Win32 bindings are not a priority for the DMD team. If they aren't a priority, then why ship them? Maintenance is going to depend on community members anyway. Much more efficient, IMO, as a user to use the third-party bindings. It would be different if DMD were Windows-centric, or if it didn't have a platform abstraction in the form of Phobos.

Platform API bindings basically provide system functions and GUI functions. IMO, let Phobos abstract away the system and third-party libs abstract away the GUI. Beyond that, I can't imagine that those needing direct API access beyond a handful of functions will be more than a minority. So for them, let third-parties handle the API bindings too.

I haven't done any straight-up Win32 development in years and when I do need a Win32 function, it's usually one that isn't available in the ancient libs DMD ships so I have to prototype it and load it manually anyway. But if I do need more of the Win32 API, then I have no problem using an external lib for it. Especially if that lib supports dub.

>
>> I would be content if DMD did not ship Win32 bindings at all, except
>> for the minimal needed to implement cross-platform stuff in Phobos.
>
> This is more or less the current situation right?  Last time I tried to
> do any Win32 stuff in D there were enormous gaps.. this is one reason I
> don't have any current projects using D.

From what I can tell, there's more in there than what Phobos actually uses. But because it's incomplete, it's essentially useless.

>
>> As it stands, the static libs for the Win32 API that ship with DMD are
>> old and don't include a good number of modern functions anyway. IMO,
>> complete OS API bindings *should* be separate. I wouldn't expect them
>> with the compiler.
>
> Sure, if we're talking about DLL/LIB files then I agree, we don't want
> to be shipping these with the compiler.  They should be obtained from
> official channels i.e. downloading the windows SDK.

The static libs for DMC need to be shipped for 32-bit programs. There's just no way around that. But they desperately need updating. I believe they don't include anything beyond Windows XP. With the dependence on VC for 64-bit, that goes away for 64-bit apps. But you still have the problem of maintaining compatibility between 32- and 64-bit versions if that's a priority.

At any rate, it's not going to kill me if all of the platform API bindings are included. As long as they're complete and well-maintained, then no big deal.
December 12, 2013
On Thu, 12 Dec 2013 12:16:57 -0000, Mike Parker <aldacron@gmail.com> wrote:

> On 12/12/2013 8:08 PM, Regan Heath wrote:
>
>>> MinGW distros. Even with VC, you still have to download the Windows
>>> SDK separately.
>>
>> I don't believe this last statement is true.  I am fairly certain that
>> upon installing VC you have everything you need to call/use Win32
>> functions.  The only reason to download/install a separate SDK is if
>> your VC version is older and you want a newer SDK/API.
>
> Oh, I was sure I had to install the SDK when I installed the VC Express. But I see now that it is included.

Ah, and I hadn't thought of Express as I've only used Professional etc.  Good to know.

>>> Should DMD ship with X-Windows bindings, too? What about Cocoa on OS X?
>>
>> How big are they?  If we're just talking about D "header" files then I
>> am all for it, the more the merrier.  It's not like internet bandwidth
>> or hard disk space is currently an issue and it will only become less of
>> an issue the more time rolls on.  If people are really anxious about
>> this, why not have a separate download for windows and the various
>> flavours of UNIX.. wait a minute, we already do. :)
>
> It's not the bandwidth or disk size that bothers me. It's mostly a matter of maintenance. I appreciate the "batteries included" approach as far as Phobos is concerned, but given that DMD aims to be a cross-platform compiler, I don't think platform-specific API bindings should fall into that category. I mean, all these years and the Win32 bindings are still incomplete, while there are a couple of complete (or mostly complete) third-party bindings out there that do a good job of staying relevant.
>
> Why is that? Because Win32 bindings are not a priority for the DMD team. If they aren't a priority, then why ship them? Maintenance is going to depend on community members anyway. Much more efficient, IMO, as a user to use the third-party bindings. It would be different if DMD were Windows-centric, or if it didn't have a platform abstraction in the form of Phobos.
>
> Platform API bindings basically provide system functions and GUI functions. IMO, let Phobos abstract away the system and third-party libs abstract away the GUI. Beyond that, I can't imagine that those needing direct API access beyond a handful of functions will be more than a minority. So for them, let third-parties handle the API bindings too.
>
> I haven't done any straight-up Win32 development in years and when I do need a Win32 function, it's usually one that isn't available in the ancient libs DMD ships so I have to prototype it and load it manually anyway. But if I do need more of the Win32 API, then I have no problem using an external lib for it. Especially if that lib supports dub.

Fair enough, I hadn't thought of it from that perspective. I agree, maintenance would not, and should not be a high priority for the maintainers of D/MD.

The issue for me is then one of perception and hassle.  If I am a new windows based D user and I download the installation and immediately struggle to interface with Win32 I might make the effort to go looking for these third-party bindings, I might find one which has what I need, and I might manage to get it working but that is a lot more hassle than it could be, it is enough hassle that some people might simply give up at this point - especially existing C/C++ users who have it easy currently.

There is a totally different mentality in the windows world, we are far too used to everything "just working" out of the box.  I absolutely detest the (I suspect somewhat less common than last time I had to do this) UNIX-land practice of having to download and compile dependency after dependency just to get something simple working.  The same perception applies to programming languages and libraries, tho programmers are more likely to stick at it if for nothing other than the challenge it represents.

So.. I think "D" ought to give it's blessing to one third-party Win32 library and link it prominently on the download page at the very least (apologies if this is not already the case but I haven't looked in a while), even better would be a mechanism where the installation itself would automatically obtain the library (using dub perhaps) if selected by the user.

The same argument applies to other platforms and SDKs, in an ideal world they would all be downloaded/installed by the DMD installation if selected by the user.

The same applies to GUI libraries, I think a vanilla Win32 GUI library needs to exist and be prominently linked or "included" via the installation.  I think many new D users are turned off by the task of trying to piece all this together right off the bat.

I realise this is a fair bit of work, but I think lowering the bar for entry should be a very high priority as the more people we can get on board the better and the sooner the better.  More people means more exposure and more contributions, two things I think D needs most.

>>> I would be content if DMD did not ship Win32 bindings at all, except
>>> for the minimal needed to implement cross-platform stuff in Phobos.
>>
>> This is more or less the current situation right?  Last time I tried to
>> do any Win32 stuff in D there were enormous gaps.. this is one reason I
>> don't have any current projects using D.
>
>  From what I can tell, there's more in there than what Phobos actually uses. But because it's incomplete, it's essentially useless.

Well.. not useless, but certainly not all that useful and it reflects poorly IMO.

R

-- 
Using Opera's revolutionary email client: http://www.opera.com/mail/
1 2
Next ›   Last »