On 8/27/2014 10:25 PM, Ryan wrote:



DSSS, XfBuild, Bud, RDMD, or premake4.  Especially DSSS vs DUB. Is DUB a
replacement for DSSS?

You can look at it that way. It's both a package manager and build tool. DSSS was abandoned long ago. Why not other tools -- XfBuild is no longer maintained (AFAIK); Bud is long, long dead; RDMD is a build tool, but not a package manager. D support in existing C/C++ has been spotty in the past, though they may be up to date now -- but again, those are build tools and not package managers. The community has standardized around dub. You don't have to use it if you don't want to, but it will make your life easier if you do. In will eventually be bundled with DMD and will be the defacto build tool and package manager.


I also don't understand why there are multiple code repositories and
where to find what (http://code.dlang.org vs
http://www.dsource.org/projects/).  I understand that Open Source is
decentralized, but when you're talking about a relatively small user
group like D it seems very confusing.

code.dlang.org is not a code repository, but a package registry. The code for each project is hosted either at github or BitBucket. The registry is where dub looks to find the dependencies you list in your dub.json file. If the package is listed in the registry, it will then follow the registered link to pull the source from github or BitBucket. You don't need to look there yourself unless you want to see what has been registered and what has been recently updated. You can also create your own locations for dub to search for packages, including locally. code.dlang.org is the default.

dsource.org is dead, dead, dead. The guy with the keys no longer maintains it. Look through the newsgroup archives here and you can find a couple of recent discussions about it. Most (all?) of the projects that are still active have moved on github or BitBucket long ago. The rest are abandoned.


Last, I've been in the Java/C# world so long that I don't understand why
I need to provide the source code to statically link a *.lib file.  I
started exploring dynamic link libraries, and this too seems very
confusing to me.  Perhaps there is a better way to do this?  Perhaps I
just don't understand it well enough yet?

You don't need the source of a library to link with it, but to compile any modules that use it. During the compile step, the compiler needs to know which symbols are available and visible to the modules it is compiling, much like a C compiler needs the headers. This isn't necessary in a language like Java as all the information the compiler needs is available in the bytecode of the class files. The object file formats used by C/C++/D do not contain that information.

You can also use a stripped down version of the source, a .di file, which functions like a C header. These can be created manually or by passing the -H option to DMD (I'm unfamiliar with LDC or GDC options) during compilation.



Next on my list is to attempt to create a Glade hello world in D.

Can I host a tutorial here on dlang.org?  If so does it belong under
"How-tos" or "Articles"?






---
This email is free from viruses and malware because avast! Antivirus protection 
is active.
http://www.avast.com

Reply via email to