www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Marketing for D: Making D an official Cloud Foundry built-in language

reply Andre <andre s-e-a-p.de> writes:
I want to share my experiences with making marketing for D.
At the company I am working for, Cloud and Cloud Foundry is a big 
thing.
At the office github there are several coding examples how to
develop applications for the languages Cloud Foundry supports
out of box: Java, Node.js, Ruby, Go, PHP and Python.
I decided to also develop a coding example in the D Language to 
make some marketing for D.
Unfortunately it was not added directly to the coding examples,
because it is not an official Cloud Foundry language.

Using a third party buildpack it is possible to also support D 
but the marketing
effect for D would be huge if it would be listed as official 
supported language.

Short explanation for buildpack: Cloud Foundry gives your 
application an environment
which is prepared by using 3 shell scripts called the buildpack. 
You only upload the D
source code to Cloud Foundry. In Cloud Foundry dmd / dub ... are 
downloaded and executed
to compile your application.

There are some prerequisites which would maximize the chance for 
D to become an official CF language:

1. Easy installation: Bundle dmd with dub
The buildpack coding should be small and easy. At the moment dmd 
and dub must
be downloaded from different places to different cache folders, 
extracted with different tools...

2. Stable link to last released dmd
Is there an archive link, always pointing to the last released 
dmd archive?
Instead of always adapting the buildpack, a stable link to the 
recent dmd archive
would be a great benefit

3. Fast installation: Currently the dmd zip is about 60 Mb. The 
download size doesn't
matter that much, because it is downloaded once and then cached. 
But it must be unzipped on every push of the
application. This makes the push slow. Could be a minimized 
archive provided, with only these
files absolutely necessary to compile a D application?

4. Dub support for git repositories
I wrote a http/OData library in the office and uploaded it to the 
company internal github.
The buildpack shell script loads in addition to the dmd and dub 
archive also this git repository
and added it to DUB with command "add-local". This is a bad hack, 
but I cannot publish it on code.dlang.org
due it is an company internal library.
I wish dub would support to specifiy a git repository.
With this feature, you could push d applications to Cloud Foundry 
which either uses a http engine
from code.dlang.org (vibe-d with libasync) or in a company 
scenario, from an internal git repository.

5. Dub support for package registries other than code.dlang.org
Either by manipulation a DNS or by taking over code.dlang.org or 
an github repository,
an attacker could insert malicious code into your application. To 
reduce the attack vector,
companies have their own package registries with proven packages. 
I would like to specify in
dub.json which package registries, DUB will load the packages 
from.

Kind regards
André
Oct 09 2015
next sibling parent reply Jacob Carlborg <doob me.com> writes:
On 2015-10-09 20:26, Andre wrote:

 2. Stable link to last released dmd
 Is there an archive link, always pointing to the last released dmd archive?
 Instead of always adapting the buildpack, a stable link to the recent
 dmd archive
 would be a great benefit
Yes, for DMD: http://ftp.digitalmars.com/LATEST For GDC: http://ftp.digitalmars.com/LATEST_GDC
 3. Fast installation: Currently the dmd zip is about 60 Mb.
That sounds like the shared zip with for all platforms. The latest beta (2.069.0-b1) is 16.7 MB for OS X. -- /Jacob Carlborg
Oct 09 2015
parent Johannes Pfau <nospam example.com> writes:
Am Fri, 9 Oct 2015 20:56:28 +0200
schrieb Jacob Carlborg <doob me.com>:

 For GDC: http://ftp.digitalmars.com/LATEST_GDC
The new location is here: ftp://ftp.gdcproject.org/LATEST
Oct 09 2015
prev sibling parent reply Rikki Cattermole <alphaglosined gmail.com> writes:
On 10/10/15 7:26 AM, Andre wrote:
 I want to share my experiences with making marketing for D.
 At the company I am working for, Cloud and Cloud Foundry is a big thing.
 At the office github there are several coding examples how to
 develop applications for the languages Cloud Foundry supports
 out of box: Java, Node.js, Ruby, Go, PHP and Python.
 I decided to also develop a coding example in the D Language to make
 some marketing for D.
 Unfortunately it was not added directly to the coding examples,
 because it is not an official Cloud Foundry language.

 Using a third party buildpack it is possible to also support D but the
 marketing
 effect for D would be huge if it would be listed as official supported
 language.

 Short explanation for buildpack: Cloud Foundry gives your application an
 environment
 which is prepared by using 3 shell scripts called the buildpack. You
 only upload the D
 source code to Cloud Foundry. In Cloud Foundry dmd / dub ... are
 downloaded and executed
 to compile your application.

 There are some prerequisites which would maximize the chance for D to
 become an official CF language:

 1. Easy installation: Bundle dmd with dub
 The buildpack coding should be small and easy. At the moment dmd and dub
 must
 be downloaded from different places to different cache folders,
 extracted with different tools...
Wrong way round. Bundle dub with dmd is already planned.
 2. Stable link to last released dmd
 Is there an archive link, always pointing to the last released dmd archive?
 Instead of always adapting the buildpack, a stable link to the recent
 dmd archive
 would be a great benefit

 3. Fast installation: Currently the dmd zip is about 60 Mb. The download
 size doesn't
 matter that much, because it is downloaded once and then cached. But it
 must be unzipped on every push of the
 application. This makes the push slow. Could be a minimized archive
 provided, with only these
 files absolutely necessary to compile a D application?
I am sure Walter will have no problem with you creating a custom archive, perhaps with tar? If that suits you better. Check with him however.
 4. Dub support for git repositories
 I wrote a http/OData library in the office and uploaded it to the
 company internal github.
 The buildpack shell script loads in addition to the dmd and dub archive
 also this git repository
 and added it to DUB with command "add-local". This is a bad hack, but I
 cannot publish it on code.dlang.org
 due it is an company internal library.
 I wish dub would support to specifiy a git repository.
 With this feature, you could push d applications to Cloud Foundry which
 either uses a http engine
 from code.dlang.org (vibe-d with libasync) or in a company scenario,
 from an internal git repository.
That may not be possible. Unless you want to make dub dependent upon git. Which it currently isn't. Right now it uses e.g. Github to create an archive of the repository and download that. Although some trade off will be possible. Also it all goes through code.dlang.org the last I remember.
 5. Dub support for package registries other than code.dlang.org
 Either by manipulation a DNS or by taking over code.dlang.org or an
 github repository,
 an attacker could insert malicious code into your application. To reduce
 the attack vector,
 companies have their own package registries with proven packages. I
 would like to specify in
 dub.json which package registries, DUB will load the packages from.
It exists, the support is there. Just not in the dub configuration file. It is something that would be nice to have.
Oct 09 2015
parent Andre <andre s-e-a-p.de> writes:
On Saturday, 10 October 2015 at 02:49:23 UTC, Rikki Cattermole 
wrote:

 [...]
Wrong way round. Bundle dub with dmd is already planned.
I hoped 2.069 already contains dub, maybe with 2.070
 [...]
I am sure Walter will have no problem with you creating a custom archive, perhaps with tar? If that suits you better. Check with him however.
 [...]
That may not be possible. Unless you want to make dub dependent upon git. Which it currently isn't. Right now it uses e.g. Github to create an archive of the repository and download that. Although some trade off will be possible. Also it all goes through code.dlang.org the last I remember.
yes it would depend on git. I suggest a new dub attribute. The value starts with a protocol. Like file:// if it is a zip on the local pc or a file on a file server. git:// if it is a git repository.
 [...]
It exists, the support is there. Just not in the dub configuration file. It is something that would be nice to have.
This feature would also be a "work around" for 4). I will file feature requests
Oct 10 2015