How do you use D?
Andre Pany
andre at s-e-a-p.de
Thu Jan 4 15:52:15 UTC 2018
On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:
> While the Orgs using D page is very nice ... I hoping to hear
> more personal stories ...
>
> So
>
> How do you use D?
> In work, (key projects or smaller side projects)
> in your side project, (github, links please)
> just to learn something new? (I would easily argue that
> learning D will make you a better C++ programmer, maybe not the
> most efficient way, but I a sure it i very effective)
>
> Did you introduce D to your work place? How? What challenges
> did you face?
>
> What is you D setup at work, which compiler, which IDE?
>
> And any other fun facts you may want to share :)
I am working for a german software company. There are various
programming languages used.
I created several non customer facing tools in D for the projects
I am involved.
Also I tried to make advertisements for the D Programming
Language by creating
internal wiki pages, recordings, video channel with screencams
and telling everyone
about that nice programming language called D.
To be able to write customer facing software in D I have to
integrate the D
programming language into the existing build landscape
(Jenkins/XMake). It was possible to
integrate D but there are rough edges.
Before I start I want to say a big thank you to Sönke and
everyone involved
in the Dub project. Without Dub, the usage of D would not be
possible at all!
1) There is a deprecated "version" attribute in dub.json. Dub now
forces you to
specify the application version using git tags. As the build
landscape itself creates git tags
which aren't Semver compatible, the deprecation of the "version"
attribute is a great pain for me.
I solved the problem by "inventing" an own way to specify a
version (version.txt file), which is a bad solution.
https://github.com/dlang/dub/issues/1301
2) During the official build no connection to the internet is
allowed (e.g. code.dlang.org).
For the moment I have no possibility to run an inhouse dub
repository.
This forces me to include source code of the dub packages I want
to use, in my applications.
The company is running a big Maven repository in which I could
store the dub packages
as zip files and which has http access to these artefacts. I
would like to specify in my dub.json the url address to the zip
file stored in the maven repository.
https://github.com/dlang/dub/issues/1134
3) It is not possible to run DMD with the microsoft linker and
libs without adapting the sc.ini.
That is a pain! In the build infrastructure I can only use the
dmd zip archive and not
the setup routine. Also the adapation of the sc.ini I need to
automate in a python script (XMake build plugin).
Python does not like the sc.ini... due to duplicate keys...
Just compare with LDC windows 64. You only have to extract the
zip archive, call vcvarsall batch
file which sets the environment variables and thats it!
https://issues.dlang.org/show_bug.cgi?id=17967
4) Every open source software I want to use, needs to go through
an open source process before I can use it in customer facing
software. Dub has a very annoying behavior. If I want to use a
package A and it has an optional dependency to be package B, Dub
fails if B is not available. That leads to the issue that even I
do not want to use B, I need to go through the open source
process for B due to the behavior of Dub.
I had this issue with the unit test frame work D-Unit.
Fortunatelly the developer of D-Unit was kind and removed the
optional dependency completely!
https://github.com/dlang/dub/issues/1272
I have also to say a big thank you to Adam D. Ruppe. He has
created a great library with very helpful functionality like
database access, http server, terminal, ...
and he is a very helpful and kind person.
My hobby project is to create a bridge between the Embarcadero
RAD Studion (Delphi) and D.
The idea is to use all functionality from Delphi and RAD Studio
(GUI designer, thousands of libraries) without writing one 1 line
Pascal but write everything in D. At the moment I have already a
windows demo application running, but I hope I can extend it to
MacOS/Android/IPhone...
https://github.com/andre2007/delta-core-10-2-1
The package you see on github is written by hand. At the moment I
am writing a Pascal Parser to
have everything generated by the Pascal Source files
(VCL/Firemonkey/Indy/...) automatically.
Kind regards
André
More information about the Digitalmars-d
mailing list