August 01, 2017
On 2017-07-28 16:58, 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)

I mostly use D at my spare time to write tools and libraries for D, [1][2][3][4] to mention a few.

I've managed to sneak in some D code at work for a tool [5] that helps building slides using Markdown and a build job in GitLab. This is now used for our weekly meeting to build a combined slideshow. Although nothing in production yet.

> Did you introduce D to your work place? How? What challenges did you face?

Yes. The first question that comes up is: "who is using D?" and "are there any developers that know D?". The lack of libraries in some areas is not helping.

> What is you D setup at work, which compiler, which IDE?

TextMate with the default D bundle [6], can be downloaded directly from within TextMate. DMD, RDMD, DUB and DCD.

[1] https://github.com/jacob-carlborg/dstep
[2] https://github.com/d-widget-toolkit/dwt
[3] https://github.com/jacob-carlborg/dvm
[4] https://github.com/jacob-carlborg/orange
[5] https://github.com/jacob-carlborg/remarkify
[6] https://github.com/textmate/d.bundle

-- 
/Jacob Carlborg
August 01, 2017
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?
I'm a full stack developer using D on my personal backend project development and APis.

> In work, (key projects or smaller side projects)
> in your side project, (github, links please)
I'm working on my own platform using vibe.d and other D dub packages.

> 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)
Even after php and JavaScript, D has made me a matured and productive developer. Its expressiveness is unmatched.

>
> Did you introduce D to your work place? How? What challenges did you face?
Most people are hooked by popular stuff. Too destructed to focus.

>
> What is you D setup at work, which compiler, which IDE?
>
Sublime Text Editor + dub + DMD


> And any other fun facts you may want to share :)
D is productive, fast, easy, clean and capable more than any languagein existence. It a fact. GC is very useful for my use case. Dub registry is great way to use libs, community is awesome and full of technical/experienced people.

D is a language that takes you to every party.


August 02, 2017
On Saturday, 29 July 2017 at 21:07:24 UTC, H. S. Teoh wrote:
> Unfortunately, they are not receptive to new languages right now.  C is king here, sad to say, and even C++ is only barely tolerated (they basically outlawed C++ exceptions in the name of optimization, and use their own C-based hack instead, among other such restrictions). The mere mention of the word "GC" will make the answer an automatic "no".

I use D without exceptions and GC too, previously I used C for this, but of course any D is miles ahead of it.
August 02, 2017
On Fri, Jul 28, 2017 at 4:58 PM, Ali via Digitalmars-d < digitalmars-d@puremagic.com> wrote:

> While the Orgs using D page is very nice ... I hoping to hear more personal stories ...
>
> So
>
> How do you use D?
>

Mainly at work, for lot of things.

    autoloader - tool for parsing all php files at our main project and
generate file for autoloading php files
    esatd - deamon for controling and communicating with our servers
(reading logs, do releases of our products, controlling of availability...)
    cronchecker - tool for managing and watchdoging our crons
    dbsync - db tool for syncing and moving our databases around different
servers
    testdbsync - dbtool sync our production databases to our test databases
    phpdispatcher - deamon for managing php workers processes
    camera-media-server - reverse engineering server for communicating with
some chinese DVR units
    esat-map-engine - tool for (reverse) geocoding, and generating map tiles
    mapfactorbridge - REST API over MapFactor OCX(windows only, we used it
under wine), so it is possible to use it on many machines through network
and on any platform
    MapfactorWrapper - demon for calculating shortest path from one city(or
any place) to another using mapfactor ocx api (mapfactorbridge)



>
> Did you introduce D to your work place? How? What challenges did you face?
>

Yes in 2012, only problem was with the ecosystem. There has been no good
IDE and too few libraries, but because of posibility to use C libraries it
was not a problem.
But good IDE is still a problem for some of us.


>
> What is you D setup at work, which compiler, which IDE?
>

DMD for development, LDC or GDC for release binaries, VSCode with webfreak
dlang plugin (2017-now), monodevelop (2013-2016)


>
> And any other fun facts you may want to share :)
>

In 2012 at work we have been looking for a way how to improve performance
of our data processing machines. These machines process lots of files
(binary,xml,text...).
These files comes from GPS units and has been (still are) process by PHP
scripts (called parsers).

So we decided to rewrite those PHP scripts to something faster (PHP has
been quite slow theses days, now with PHP7 and HHVM it is little better).
So I was responsible for finding another language (the right one) in which
we wil rewrite those scripts. OK easy task, so I selected few languages I
know to select from.
Java, C/C++, Go, Python. But quite fast I realized none of these languages
fulfil our requirements.
Our requirements was:
OOP (Go is out)
GC (C++ is out, ok there is a way to use gc in c++, but i have never done
that before)
Fast startup (Java is out because of VM)
Syntax similar to PHP as much as posible (python is out)
Fast compilation (C++ is out again)

Our best choice has been Java, but it would mean change architecture (instead of executing own process for every file, we will need to process them in one process with multiple threads or something similar), which has been no go these days.

So I have been looking for some another language. And for some reason I have remembered that there has been some language, which I have try at my high school days (2004-2008).  Unfortunately I did not remembred the name. So I start typing into google things I have remembred about this language. And after some time I have found  it (D language). So I looked at D closer and was very satisfied. My first  thoughts was something like "This is it".

So I introduce D to my coworkers. At first there has been two camps. One camp has the same feeling about D as me, the other ones was OK with D as a language, but has been afraid of ecosystem. So I have started to showing them how easily I can use C ecosystem so they do not have to be worried. So after some time D has been chosen and we started to rewrite our parsers into D.

First results (just data processing) has been promising (new parsers has been 10 to 100 times faster than the old(PHP) ones with smaller system requirments), but after integrating other parts (database, filesystem...) we have realized there is an almost no gain in the end. Data processing was only small part of parsers, so database and filesystem interaction has been the problem. So we start to improve this part of parsers. In the end we was 5 times faster than the old parsers, but we could just do all these changes to old parsers too. So we end up with rewriting our D parsers back to PHP, because D parsers has been to far from being complete.

But it was not complete failure. Because of this we have improved our parsers and D has established in our ecosystem. After few years parsers performance became problem again (even with PHP 7). So we need to improve them again. We have already known that rewriting it to something faster would not help. So I have try another approach.

The result of that approach is phpdispatcher. So instead of starting new process for every file request there is a D deamon (phpdispatcher) which put file request into queue and assign them to php processes (workers). Phpdispatcher and workers communicating through TCP, because of not starting new php process every time, we can utilize caches (opcache...) or JIT when HHVM is used. And we do not need to reestablish db connections every time.

So after phpdispatche has been moved to production, we was able to go from five machines to only one (ok we have to because of failover)


August 02, 2017
s/ok we have to because of failover/ok we have two because of failover/

On Wed, Aug 2, 2017 at 11:29 AM, Daniel Kozak <kozzi11@gmail.com> wrote:

> On Fri, Jul 28, 2017 at 4:58 PM, Ali via Digitalmars-d < digitalmars-d@puremagic.com> wrote:
>
>> While the Orgs using D page is very nice ... I hoping to hear more personal stories ...
>>
>> So
>>
>> How do you use D?
>>
>
> Mainly at work, for lot of things.
>
>     autoloader - tool for parsing all php files at our main project and
> generate file for autoloading php files
>     esatd - deamon for controling and communicating with our servers
> (reading logs, do releases of our products, controlling of availability...)
>     cronchecker - tool for managing and watchdoging our crons
>     dbsync - db tool for syncing and moving our databases around different
> servers
>     testdbsync - dbtool sync our production databases to our test databases
>     phpdispatcher - deamon for managing php workers processes
>     camera-media-server - reverse engineering server for communicating
> with some chinese DVR units
>     esat-map-engine - tool for (reverse) geocoding, and generating map
> tiles
>     mapfactorbridge - REST API over MapFactor OCX(windows only, we used it
> under wine), so it is possible to use it on many machines through network
> and on any platform
>     MapfactorWrapper - demon for calculating shortest path from one
> city(or any place) to another using mapfactor ocx api (mapfactorbridge)
>
>
>
>>
>> Did you introduce D to your work place? How? What challenges did you face?
>>
>
> Yes in 2012, only problem was with the ecosystem. There has been no good
> IDE and too few libraries, but because of posibility to use C libraries it
> was not a problem.
> But good IDE is still a problem for some of us.
>
>
>>
>> What is you D setup at work, which compiler, which IDE?
>>
>
> DMD for development, LDC or GDC for release binaries, VSCode with webfreak
> dlang plugin (2017-now), monodevelop (2013-2016)
>
>
>>
>> And any other fun facts you may want to share :)
>>
>
> In 2012 at work we have been looking for a way how to improve performance
> of our data processing machines. These machines process lots of files
> (binary,xml,text...).
> These files comes from GPS units and has been (still are) process by PHP
> scripts (called parsers).
>
> So we decided to rewrite those PHP scripts to something faster (PHP has
> been quite slow theses days, now with PHP7 and HHVM it is little better).
> So I was responsible for finding another language (the right one) in which
> we wil rewrite those scripts. OK easy task, so I selected few languages I
> know to select from.
> Java, C/C++, Go, Python. But quite fast I realized none of these languages
> fulfil our requirements.
> Our requirements was:
> OOP (Go is out)
> GC (C++ is out, ok there is a way to use gc in c++, but i have never done
> that before)
> Fast startup (Java is out because of VM)
> Syntax similar to PHP as much as posible (python is out)
> Fast compilation (C++ is out again)
>
> Our best choice has been Java, but it would mean change architecture (instead of executing own process for every file, we will need to process them in one process with multiple threads or something similar), which has been no go these days.
>
> So I have been looking for some another language. And for some reason I have remembered that there has been some language, which I have try at my high school days (2004-2008).  Unfortunately I did not remembred the name. So I start typing into google things I have remembred about this language. And after some time I have found  it (D language). So I looked at D closer and was very satisfied. My first  thoughts was something like "This is it".
>
> So I introduce D to my coworkers. At first there has been two camps. One camp has the same feeling about D as me, the other ones was OK with D as a language, but has been afraid of ecosystem. So I have started to showing them how easily I can use C ecosystem so they do not have to be worried. So after some time D has been chosen and we started to rewrite our parsers into D.
>
> First results (just data processing) has been promising (new parsers has been 10 to 100 times faster than the old(PHP) ones with smaller system requirments), but after integrating other parts (database, filesystem...) we have realized there is an almost no gain in the end. Data processing was only small part of parsers, so database and filesystem interaction has been the problem. So we start to improve this part of parsers. In the end we was 5 times faster than the old parsers, but we could just do all these changes to old parsers too. So we end up with rewriting our D parsers back to PHP, because D parsers has been to far from being complete.
>
> But it was not complete failure. Because of this we have improved our parsers and D has established in our ecosystem. After few years parsers performance became problem again (even with PHP 7). So we need to improve them again. We have already known that rewriting it to something faster would not help. So I have try another approach.
>
> The result of that approach is phpdispatcher. So instead of starting new process for every file request there is a D deamon (phpdispatcher) which put file request into queue and assign them to php processes (workers). Phpdispatcher and workers communicating through TCP, because of not starting new php process every time, we can utilize caches (opcache...) or JIT when HHVM is used. And we do not need to reestablish db connections every time.
>
> So after phpdispatche has been moved to production, we was able to go from five machines to only one (ok we have to because of failover)
>
>


August 02, 2017
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?

I've been using D for most of my personal projects since 2011.

> In work, (key projects or smaller side projects)

Unfortunately it's pretty much impossible to introduce a new language in my position at work, but I use D regularly for small text processing tools. I need to rip apart and/or reformat text files regularly; I used to use Perl but I find D to be as good or better for this job than Perl, and faster as well.

> in your side project, (github, links please)

Recently I've been working on a Discord bot and a small game (not on github), both using D libraries of course.

> 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)

I've learned about everything from programming language design to type theory to algorithm design to low-level programming just from participating in the D community over the past 6 years. There's no question that learning D has made me a better programmer and introduced me to concepts that I would not have been aware of otherwise.

> Did you introduce D to your work place? How? What challenges did you face?

I would love to introduce D to my work place but it's not really possible.

> What is you D setup at work, which compiler, which IDE?

Plain old Sublime Text with DCD/dscanner/dfmt. I used to heavily use Visual Studio with the visual-d plugin but I wanted something more light weight.
August 02, 2017
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 ...

I use D2 since 2014. I had wide experience of C programming earlier. Now I use only DMD in all projects, except special. At the initial stage there were difficulties with a choice of good GUI and I decided to make the binding for Qt-5. QtE5 turned out and I use it for creation of cross-platform applications. I mix pfobos and API Qt-5 in the applications.

https://github.com/MGWL/QtE5
https://www.youtube.com/channel/UCNlwbCCcpYVAI0EL2VFOutQ

Short list of development:
- Learnability monitoring (reception of examinations) - dmd + qte5

- Scanner of file system, indexing and search.

- the forth language interpreter - dmd + asm_dmd

- IDE5 - mini ide (example QtE5) - dmd + QtE5

- External DLL for extension functionality of VBA for MSOffice - dmd

- Smart Scripts for start of external applications

I use notepad++ and only dmd (win/linux/OSX for 32/64) or ide5 for small app.

dmd is an excellent programming language )))
August 02, 2017
guys don't do your own IDE, i see everyone working on his own IDE, please just make plugin for famous crossplatform IDE.. this will be better for comunity

VSCode/Atom/Xamarin Studio/IntelliJ

my team don't want use D cause IDEs are all shit
August 02, 2017
On Wednesday, 2 August 2017 at 21:30:11 UTC, SCev wrote:
> guys don't do your own IDE, i see everyone working on his own IDE, please just make plugin for famous crossplatform IDE.. this will be better for comunity

But I'm NIH interested in having my own plugin for Sublime which does exactly what I want how I want it.

>
> VSCode/Atom

Used both of these for a considerable time, got sick of them (graphic glitches, slow&laggy, heavily interferes with power saving on battery power, etc.).

> Xamarin Studio/IntelliJ

I'm frankly not interested in having either mono or a JVM on my machine.

>
> my team don't want use D cause IDEs are all shit

I can understand that, but I'd have to say that D is then (currently) not for your team.
August 03, 2017
On Monday, 31 July 2017 at 12:32:52 UTC, Nicholas Wilson wrote:
> On Sunday, 30 July 2017 at 01:53:15 UTC, Zwargh wrote:
>> I am using D to develop a system for rational drug design. The main application for D is for protein 3D structure prediction and statistical analysis using Differential Geometry and Knot Theory.
>
> Cool! Are you considered using dcompute for this once it has matured a bit?

It is a possibility and MIR as well. In my experience, D could be the perfect replacement for C++ and Java for bioinformatics.