dlang.org redesign -- general thoughts and issues [part 1]

Laeeth Isharc via Digitalmars-d digitalmars-d at puremagic.com
Fri Jan 23 15:50:26 PST 2015


> Hi all, I've started redesigning dlang.org AGAIN (yea, I 
> know...).

Appreciate the work you and others are doing on this.  Web pages 
are so fiddly but so important for controlling the image one 
presents to the world.

I don't have so much to say about the general case, as it is not 
my field.  But a couple of thoughts in relation to the content 
generally.

About/History.  A link on the front page to a few paragraphs 
setting the context for how D came about might be good.  It's a 
very powerful story of how Walter came to write D, and Andrei's 
subsequent involvement.  You could replace the Acknowledgements 
section by this, and place this underneath the story with also a 
bit more colour on who the other major contributors are - some 
short bios.

Why D?.  It's the first question people will want answered when 
coming to the site, and they have to dig around quite a lot to 
get the complete picture.

FAQ - since the FUD crowd keep bringing it up (see Slashdot 
discussion of D lang), perhaps the tango vs phobos and D1 vs D2 
questions should be answered within the FAQ.  Also the "DMD is 
not open source" canard.

"> Top-level link: SITEMAP ... should be removed, it's not 1999 
anymore. Plus, a
> well-structured website never needs a sitemap".

Honestly, I am not so sure that is right.  In the age of the iPad 
and Kindle, books still have indexes, and they are very useful on 
occasion, and I think this does apply to websites too, whatever 
the fashion to day may be.  If you know what you are looking for 
then good structure helps, but one doesn't always know what one 
is looking for.

> Top-level-link: VISUAL D
> ... should move under Downloads & Tools; having this at 
> top-level has a Windows smell and may scare people away.

Perhaps that is right.  However if so, under Downloads and Tools 
there needs to be a little bit of introduction and context rather 
than bam DMD2.066.1.  If I have just arrived knowing nothing 
about D and want to get started, what is DMD???  And GDC, LDC.  
Which one do I pick?

Dashing something off quickly:

"There are three mature compilers for the D programming language.

1. DMD is the reference implementation originated and maintained 
by Walter Bright, and available for Linux, Free BSD, and OS X.  
Android/x86 support is mature but not yet fully complete, whilst 
Android/ARM is currently at a pre-alpha stage.[Link 
http://wiki.dlang.org/Build_DMD_for_Android]

DMD is known for its exceptionally fast compilation times - for 
example, the standard library, Phobos, takes only XX minutes to 
compile on a standard Amazon m1.medium image.  This brings the 
benefits of scripting languages such as Python for enabling rapid 
iterative development; it allows D to be used as a scripting 
language [link to RDMD] and permits the creation of dynamically 
compiled extensions to running programs - see DREPL [link] for an 
example.

The compiler is free to use, the full source code is supplied 
with the compiler, and the front end is fully open source under 
the Boost(?) license.  Although the back end is licensed from 
Symantec and this is not compatible with GPL-style licenses, all 
development takes place publicly on github.  [Say briefly what 
can and can't be done under the license and link to the FAQ for 
fuller explanation of the licensing].

2. GDC is a fully open-source compiler that uses the Gnu GCC 
back-end to generate native code and for some applications may 
generate faster, more optimized code than DMD.  It is available 
for Intel architecture Linux, ARM architecture Linux, and 
Windows.  Android support is under development and not yet fully 
mature [http://wiki.dlang.org/GDC/Installation/Android]

3. LDC is a fully open-source compiler that uses the LLVM 
back-end to generate native code and for some applications may 
generate faster, more optimized code than DMD.  It is available 
for ...

The DMD section should have a link to installation instructions 
as well as how to resolve commonly experienced problems.

The download page should also have a section for IDEs and 
debuggers.  Not just Visual D.  I suggest it should also have a 
link to dstep github page and direct link to download binaries 
for each platform (they are tucked away in a subdirectory).

Library interoperability is a key barrier to adoption of D, and 
when you arrive at the website, it is not obvious immediately how 
to do this.  Maybe on front page there should be a top-level 
section "Interoperability" or some more mellifluous title linking 
to a piece saying the following

"D fully supports the C application binary interface (ABI), which 
means that D programs can link to C object files and libraries 
and achieve full interoperability.  The only step required is to 
translate C .h header files to D format, and this can be done 
automatically using the dstep tool (available here[link]) or on 
Windows using the htod tool (available here[link]).

Substantial C++ interoperability exists, but this is an area 
under development and is a priority for the D language for 2015.  
Documentation on linking to C++ is here[link], and Calypos is an 
alpha project to achieve full interoperability with the LDC 
compiler.  [link].



> Top-level links: STANDARD LIBRARY, D REFERENCE
>
> ... I suggest they are moved back into Documentation section 
> (as it is on the forum.dlang.org) which will contain these 
> (Language Reference / Standard Library) plus other subsections 
> e.g. D Style Guide.

Shouldn't the most frequently accessed links be available from 
one click from the main page?  If it's just under a dynamic 
sub-menu, thats fine though.




More information about the Digitalmars-d mailing list