www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - How do you use D?

reply Ali <fakeemail example.com> writes:
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 :)
Jul 28
next sibling parent Moritz Maxeiner <moritz ucworks.org> writes:
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?
Privately whenever I need a program for something and D is the right tool for the job.
 in your side project, (github, links please)
Most of my stuff is in a private gitlab instance, but there's tunneled [1], which is essentially a tool for Linux to route an arbitrary application's IPv4 traffic through an OpenVPN tunnel without interfering with the rest of the system's network traffic (i.e. other applications continue as is) using control groups.
 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 originally started using D1 to learn something new (way back when), but I (on and off) stuck with it till today because it's still the least horrible option out there (that I know of) with the properties I need (designed for native programming, easy C interop, high productivity, maintainability, few UB / wtf moments).
 What is you D setup at work, which compiler, which IDE?
For single file things neovim+dutyl, for projects Sublime Text 3 + custom plugin [2]. No IDEs for me.
 And any other fun facts you may want to share :)
There's a (harmless) memory leak in druntime I want gone [3]. [1] https://github.com/Calrama/tunneled [2] https://github.com/Calrama/sublide [3] https://github.com/dlang/druntime/pull/1857
Jul 28
prev sibling next sibling parent ketmar <ketmar ketmar.no-ip.org> writes:
Ali wrote:

 So

 How do you use D?
mostly by invoking dmd or rdmd.
Jul 28
prev sibling next sibling parent reply Anton Fediushin <fediushin.anton yandex.ru> writes:
On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:
 How do you use D?
For personal projects, from low-level system hacking (like implementing own reference counted struct) to high-level web apps.
 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)
Yup, with D I learned a lot of new programming techniques, like meta-programming, CTFE, Range-based algorithms etc. I really enjoy how quickly I can switch between low- and high-level code without changing the language. I think this is the main reason why I stayed with D, not with Go/Rust. They're good programming languages, but they force you to code in the way they call "idiomatic", not in the way you want to. D is a great language, because with all flexibility it has, D community haven't been splitted like in C++.
 What is you D setup at work, which compiler, which IDE?
Latest DMD, Emacs and DUB. I also have LDC and GDC installed for testing. DMD compiles stuff faster than other compilers and has all latest things I need.
 And any other fun facts you may want to share :)
It's a feature (c) Walter Bright, everytime somebody asks about bugs in D
Jul 28
parent reply =?UTF-8?Q?Ali_=c3=87ehreli?= <acehreli yahoo.com> writes:
On 07/28/2017 11:02 AM, Anton Fediushin wrote:

 not with Go/Rust.  They're good programming languages
I really don't want to be in a position to diss other languages but with some experience, I can tell you that I agree with blog posts about Go being a disservice to programmers.[1] It is a good language in the sense that you have to dial your intellectual self down, accept limitations, and be deaf to limitations sold as merits. I can understand "Go is limited because it lacks this and that" but I can't agree with "Go is great because it lacks this and that." Maybe with a little more time I will forget powerful features of other languages and be a content Go programmer. :) A friend of mine who had left Weka a few months ago has joined a startup in the microservices domain. The company uses Go (and some Python). My friend looked at Go and then spent some time to learn Rust and decided to push D instead for "competitive edge." (Not my words! :) ) His argument was, why should we be wasting time with other languages. So he is using D to write the most critical piece of the product.
 splitted like in C++.
I must have missed that one. Please tell me more about it or give some links to read about it. All I know is there is always disagreement on how some new C++ features should be designed. Ali [1] http://nomad.so/2015/03/why-gos-design-is-a-disservice-to-intelligent-programmers/
Jul 28
parent reply Anton Fediushin <fediushin.anton yandex.ru> writes:
On Friday, 28 July 2017 at 18:48:25 UTC, Ali Γ‡ehreli wrote:
 On 07/28/2017 11:02 AM, Anton Fediushin wrote:

 not with Go/Rust.  They're good programming languages
I really don't want to be in a position to diss other languages but with some experience, I can tell you that I agree with blog posts about Go being a disservice to programmers.[1] It is a good language in the sense that you have to dial your intellectual self down, accept limitations, and be deaf to limitations sold as merits. I can understand "Go is limited because it lacks this and that" but I can't agree with "Go is great because it lacks this and that." Maybe with a little more time I will forget powerful features of other languages and be a content Go programmer. :)
"Go is great because it lacks things" is true when somebody comes from language, which allows too much (Like JavaScript or PHP). It is more about marketing. Maybe Go is not a perfect language, maybe not even a good one, but it's sold so good because of a good marketing So, calling D a "better C++" is a bad advertisement. But if you rename it to '<anything>Script', for example "DatScript" and sell it as "better, statically typed JavaScript dialect which compiles into fast native executables" it will became #1 language on GitHub in no time.
 A friend of mine who had left Weka a few months ago has joined 
 a startup in the microservices domain. The company uses Go (and 
 some Python). My friend looked at Go and then spent some time 
 to learn Rust and decided to push D instead for "competitive 
 edge." (Not my words! :) ) His argument was, why should we be 
 wasting time with other languages. So he is using D to write 
 the most critical piece of the product.
Nice!
 splitted like in C++.
I must have missed that one. Please tell me more about it or give some links to read about it. All I know is there is always disagreement on how some new C++ features should be designed.
I am talking about community, not language. C++ community is so huge that they cannot work together on the language, which leads to different compilers supporting different features and different frameworks for same purposes not compatible with each other. So, instead of making something useful, C++ community rewrites same code over and over again in the way they think it should be done. It happens to new C++ specifications, when some feature got rejected and one compiler implements it, but others doesn't.
Jul 28
next sibling parent reply Russel Winder via Digitalmars-d <digitalmars-d puremagic.com> writes:
On Fri, 2017-07-28 at 19:50 +0000, Anton Fediushin via Digitalmars-d
wrote:
=20
[=E2=80=A6]
 It is more about marketing. Maybe Go is not a perfect language,=20
 maybe not even a good one, but it's sold so good because of a=20
 good marketing
In the end Go is about interns at Google not making errors in Google code. It is also about some people liking it and being able to produce libraries and systems. And of course having lots of hype. I have to admit using Gogland as an IDE I quite like developing code with Go.
 So, calling D a "better C++" is a bad advertisement. But if you=20
 rename it to '<anything>Script', for example "DatScript" and sell=20
 it as "better, statically typed JavaScript dialect which compiles=20
 into fast native executables" it will became #1 language on=20
 GitHub in no time.
In 2004 maybe "D as better C++" was a good line. In 2017 "D is a general purpose programming language that allow faster development time than C++, Go, and Rust" is a far better line? [=E2=80=A6]
=20
 I am talking about community, not language. C++ community is so=20
 huge that they cannot work together on the language, which leads=20
 to different compilers supporting different features and=20
 different frameworks for same purposes not compatible with each=20
 other. So, instead of making something useful, C++ community=20
 rewrites same code over and over again in the way they think it=20
 should be done.
=20
 It happens to new C++ specifications, when some feature got=20
 rejected and one compiler implements it, but others doesn't.
There is only one C++ standard, anyone using extras other than TR ones is not using C++, they have created their own language based on C++. --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Jul 29
parent David Gileadi <gileadisNOSPM gmail.com> writes:
On 7/29/17 3:05 AM, Russel Winder via Digitalmars-d wrote:
 In 2004 maybe "D as better C++" was a good line. In 2017 "D is a
 general purpose programming language that allow faster development time
 than C++, Go, and Rust" is a far better line?
This is what attracts me to D--it's easy to write, clean to read, and super powerful. However the "faster development time" is a bit marred by D's current ecosystem: it's faster/easier than other languages in certain domains, but lack of libraries/integration make it a tough choice in other domains (like mobile). And we have fairly regular complaints on the forum about the new-to-D experience (and good on them for taking the time to post about it here!). If I had free time for D I'd be trying to work on improving those things.
Jul 29
prev sibling parent reply Ecstatic Coder <ecstatic.coder gmail.com> writes:
 It is more about marketing. Maybe Go is not a perfect language, 
 maybe not even a good one, but it's sold so good because of a 
 good marketing

 So, calling D a "better C++" is a bad advertisement. But if you 
 rename it to '<anything>Script', for example "DatScript" and 
 sell it as "better, statically typed JavaScript dialect which 
 compiles into fast native executables" it will became #1 
 language on GitHub in no time.
+1 I've suggested exactly the same "easy-to-learn super-powered stronly-typed javascript" and "efficient web server development" advertising approachs to the D leadership, using a more "Python.org"-like website. Maybe it's because this change would be much too radical, but I've been told that the "Better C++" slogan won't change, despite D could easily be "tweaked" to eat a significant part of Go/Dart's market shares. And I'm not especially convinced that many C++ developers are currently rushing towards D because of the current website. For instance, I've personally chosen D *only* it was much better than JavaScript/Node.js, not because it was better than C++, that I still have to use for game and mobile development. Still waiting that somebody explains me how to _easily_ use D with Unreal Engine, Cocos2D-X, etc... ;) I know I'm not the general case, but this still proves that "some" C++ developers won't switch to D for long because they are too tied to their ecosystem.
Aug 05
parent reply Laeeth Isharc <laeeth nospamlaeeth.com> writes:
On Saturday, 5 August 2017 at 21:31:49 UTC, Ecstatic Coder wrote:
 It is more about marketing. Maybe Go is not a perfect 
 language, maybe not even a good one, but it's sold so good 
 because of a good marketing

 So, calling D a "better C++" is a bad advertisement. But if 
 you rename it to '<anything>Script', for example "DatScript" 
 and sell it as "better, statically typed JavaScript dialect 
 which compiles into fast native executables" it will became #1 
 language on GitHub in no time.
+1 I've suggested exactly the same "easy-to-learn super-powered stronly-typed javascript" and "efficient web server development" advertising approachs to the D leadership, using a more "Python.org"-like website. Maybe it's because this change would be much too radical, but I've been told that the "Better C++" slogan won't change, despite D could easily be "tweaked" to eat a significant part of Go/Dart's market shares. And I'm not especially convinced that many C++ developers are currently rushing towards D because of the current website. For instance, I've personally chosen D *only* it was much better than JavaScript/Node.js, not because it was better than C++, that I still have to use for game and mobile development. Still waiting that somebody explains me how to _easily_ use D with Unreal Engine, Cocos2D-X, etc... ;) I know I'm not the general case, but this still proves that "some" C++ developers won't switch to D for long because they are too tied to their ecosystem.
In open source, and indeed in entrepreneurial corporations, the way to persuade people is to create the shift you advocate, at least in a small way, so people can see what your early start could become. Code wins arguments, as they say at Facebook, and not just code but documentation, business plans etc too. Its work to write it, but on the other hand my experience has been that work is rarely truly wasted. It might seem so at the time, but for example work I did to persuade somebody that didn't want to listen, and where it seemed like I was pointlessly banging my head against the wall, has ended up being very valuable, even in dollar terms a few years later. It's not always rational to be excessively calculating about risk reward in the face of genuine, radical uncertainty when the risk is not that bad. I agree with you that the benefits of D are not perfectly well communicated to people who aren't C++ programmers looking for salvation. I had a discussion just last week about that, explaining that D isn't just something they mostly fits only large data sets where performance is key. And in particular it's a cultural challenge because people have become resigned to the idea of different languages for different purposes, and to a large extent D doesn't fit the mental schema people have. Nothing much changes in life day to day, and changes that seem to be big often unfold slowly for a long time before being noticed. The financial crisis unfolding began in Feb 2007 at the latest, but it didn't feel like that to most people at the time. Similarly, compare D documentation today to that of early 2014 (when I first look at D). Plenty of it was all perfectly clear if you had a more academic training in computing, but if not then it wasn't the friendliest. I tried to persuade one chap who was helping me between jobs to learn D, and he was absolutely terrified of it, to a good extent because of the docs! And it's also because people are used to complexity being hidden from them and things being made very easy. Since D often involves paying a price upfront to make future things easier, perhaps it's worth bearing in mind that there's a coupling between the degree of development of the tooling and how polished the docs should be. If you make it so easy to learn D that you draw people who are utterly stuck when they hit dependency problems with dub, that may not be ideal either. Ie an implicit question of truth in advertising. And the situation with docs changed over time. One recent change is thanks to Seb Wilzbach who introduced runnable examples generated automatically from unit tests. If you look at his pull request it wasn't welcomed entirely with open arms in the beginning because the benefits weren't clear (and some other reasons I forgot). So if you think we should have friendlier docs appealing to non systems programmers, why not write a mock up so others can see. It needn't be either or, because you can have an easy or advanced channel from front page. And it's worth not alienating those who want to go straight to the meat of things - there's nothing more frustrating than a system that talks down to you or breaks things down into little pieces when you're quite used to slaughtering and butchering dinner for yourself, thank you very much... I really think there's a limit in how much sense it makes to think about D marketshare against other programming languages. If you have 30% market share it's very difficult just to hold onto it, let alone grow. At this stage in the development of D it really doesn't need to defeat any other language, but it just needs to become a little more appealing to those who are already receptive to it, maybe already use it, and to the stakeholders that they need to convince to give it a try. Most programmers in enterprises are not in charge of technical choices of this nature - we need to have a very high appeal to the ones who do and who would want to use D if only they knew because then social factors become less important. If you look at who has adopted D and how, that seems to me how this has unfolded. I think C++ programmers in finance are likely to be receptive to using D over time. There's a lot of FUD put forth on this topic, but in the end if something leads you to better results then people will adopt it over time, slowly in the beginning, and then faster. You haven't got much choice because if your competitors are more nimble than you think have a problem. Similarly it seems than Ethan at Remedy Games has a similar perspective on his industry. The better Go and Rust do the better it is for us because it opens up thinking about choices and in general they are quite different languages serving different needs (of course there is overlap). It's a much easier case to make to say we should use a modern language, review them all, and sometimes the best answer will be D than to say we should move from whatever it is we are used to to this "new" language nobody has heard of. Remember that social media representation of reality isn't identical with the world itself. The web guys talk, but enterprise code is a big market and people there often don't talk in public, maybe are forbidden from doing so. Biggest D commercial users I have talked to at dconf don't say much in public because they have a business to run. On the other hand I have my doubts about whether some of the biggest and most academic in a certain sense naysayers of D on this forum use the language much at all. Personally I have some skin in the game - I might be wrong in my judgements about some things, but if I am, I'll bear the consequences (but also the upside if I am right). Downloads of dmd have gone bananas, and I think that started before Netflix announcement. When will D take off? It's happening right now. Compound growth doesn't look like much in the beginning, but give it time. (years, but that's how long it takes). Who is going to be the big sponsor of D? It's my belief probably there won't be a single big sponsor, and that this is probably a good thing. It's a very ambitious language covering an immense breadth of domains. How is it possible for one firm to be a sponsor of that nature without distorting the unfolding of the language? What's better than one enormous sponsor? Lots of sponsors, of varying sizes, and covering various different domains. That's much less brittle and more balanced, and you'll get much better reach and adoption that way. And I also think that the generalist nature and breadth of the community is one of the most appealing aspects in an age where everything became hyper fragmented, siloed and specialised. Success on a grand scale brings its own challenges. Some day we may be reminiscing about the good old days before the invasion of the careerists. That's a way away, but it's worth recognising also the benefits of where we are today. It's no longer true that there are no jobs in D, but for the time being people learn D because they care about technical excellence, not yet because it's a clever route to get a great job..
Aug 05
next sibling parent jmh530 <john.michael.hall gmail.com> writes:
On Sunday, 6 August 2017 at 03:30:00 UTC, Laeeth Isharc wrote:
 I've suggested exactly the same "easy-to-learn super-powered 
 stronly-typed javascript" and "efficient web server 
 development" advertising approachs to the D leadership, using 
 a more "Python.org"-like website.
[snip] Good long read.
Aug 05
prev sibling next sibling parent reply Ecstatic Coder <ecstatic.coder gmail.com> writes:
Very interesting post.

My bachelor's thesis was a expert system for stock trading 
implemented with Borland C++ 1.0, and D would have been a good 
fit as well if had been an option in 1989, so I understand why 
you think that financial development will make D popular.

But that's the exact opposite of what trending languages do at 
the moment (Go, Kotlin, etc).

They care to solve the basic problems of the casual developer : 
implementing desktop, mobile or web applications.

Not the most interesting jobs maybe, but that's what pays the 
bill of many of us, the "less skilled" developers who are not 
engineers.
Aug 05
parent Laeeth Isharc <laeeth nospamlaeeth.com> writes:
On Sunday, 6 August 2017 at 06:04:57 UTC, Ecstatic Coder wrote:
 Very interesting post.

 My bachelor's thesis was a expert system for stock trading 
 implemented with Borland C++ 1.0, and D would have been a good 
 fit as well if had been an option in 1989, so I understand why 
 you think that financial development will make D popular.
I don't know that I would say finance will make D popular but it's one domain that I know well where I think it can be useful. Popularity isn't only a good thing either. I think the focus on Go, Rust etc as a competitive threat is misplaced. If they do something well and it fits us we should without shame copy it, but better. But just because they are the focus of attention amongst some communities doesn't mean we should otherwise worry about what they are doing.
 But that's the exact opposite of what trending languages do at 
 the moment (Go, Kotlin, etc).

 They care to solve the basic problems of the casual developer : 
 implementing desktop, mobile or web applications.
Why try to beat them at their own game, or even spend energy wondering about it. The DNA of the community mostly isn't interested in solving the problems of the casual developer in the same way. So unless it changes then it's a tough game to expect to beat them on criteria they set. Looks at the compounded rate of growth of dmd daily downloads. If it were a stock, I wouldn't be short it, because it's in an uptrend and far from overbought. Many other contexts you would even call that explosive growth.
 Not the most interesting jobs maybe, but that's what pays the 
 bill of many of us, the "less skilled" developers who are not 
 engineers.
I guess you only need one job. And there is share of market and share of mind. It's much easier for talented people to be recognised as such in a smaller community than a vast one.
Aug 05
prev sibling parent reply Ecstatic Coder <ecstatic.coder gmail.com> writes:
For instance, D is my favorite language, and I try to promote it 
as much as I can (reddit, stackoverflow, even on the go-nuts 
google groups).

But professionally I still use C++ (#3 TIOBE), PHP (#7), Go (#16) 
and now Dart (#20).

Not D.

Despite Go and Dart are very recent "post-D" languages, people 
are already starting to use them a lot these days. Whether you 
trust or not these "pseudo" rankings, they are probably already 
more popular than D, despite they are still in their 1.x version.

That's sad, because the same developers who now use Go (including 
me) could have started to use D instead. But they didn't.

Obviously Google's great support and marketing help a lot, but 
most developers are not as dumb as you may think.

They just use what solve their daily problems. In the end it's 
often as simple as that.

That's why now I always use D to develop my command-line tools. 
It gets the job done quickly and easily.

Same for Go and Dart. Despite I don't really like them actually.
Aug 05
parent Mike Parker <aldacron gmail.com> writes:
On Sunday, 6 August 2017 at 06:49:45 UTC, Ecstatic Coder wrote:
 For instance, D is my favorite language, and I try to promote 
 it as much as I can (reddit, stackoverflow, even on the go-nuts 
 google groups).

 But professionally I still use C++ (#3 TIOBE), PHP (#7), Go 
 (#16) and now Dart (#20).

 Not D.

 Despite Go and Dart are very recent "post-D" languages, people 
 are already starting to use them a lot these days. Whether you 
 trust or not these "pseudo" rankings, they are probably already 
 more popular than D, despite they are still in their 1.x 
 version.

 That's sad, because the same developers who now use Go 
 (including me) could have started to use D instead. But they 
 didn't.

 Obviously Google's great support and marketing help a lot, but 
 most developers are not as dumb as you may think.
You have to look at the big picture. Let's ignore for a moment what might improve D's adoption and perception. Let's also ignore this particular moment in time. Let's go back to the beginning and look at the big picture from then until now. From that perspective, it's quite a rosy picture. We've got a wealth of libraries available compared to just a few years ago. Conversations on reddit don't immediately descend into D-bashing like they used to. I see more new people more frequently in the forums than I used to. Multiple companies are using D and talking about their usage, sharing their code, where there used to be none. It's just a vastly different community than it was when I first stumbled into it. Much for the better. Yes, there are holes to fill, improvements to be made, but there always have been and there always will be. It's an ongoing process that, by the way, has many more people contributing to it than it did a decade ago. It's natural for people to come in along the way, look at the current state of affairs (without the benefit of that longer perspective -- or even those who do have perspective but have lost heart because their major peeves haven't been addressed), and start despairing that if only D did this or did that, or targeted that domain, or had a plugin for that IDE, or whatever, then it would be a better choice than Rust or Go or Javascript and more developers would pick it up. That might even be true. But the thing to remember is that neither the language nor the community has stagnated. Progress is going steadily forward despite all the predictions of doom and gloom (which I've been seeing in these forums since 2003). And if everyone in the community would pick a pet peeve to fix, whether it be making edits to the web site or contributing to an IDE plugin, it all moves that much further forward. As long as we keep our heads down and keep chipping away, things will only continue to improve.
Aug 06
prev sibling next sibling parent Adam D. Ruppe <destructionator gmail.com> writes:
On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:
 How do you use D?
I use it for everything I can. In the past, I have used it for work as my main job on web apps, though right now my work usage of D is limited to helper apps (it has a legacy ruby on rails codebase I am forced to work with as the main thing). I still do smaller work and all personal stuff in D to write web apps, little games, data processing, and gui programs. Most the programs I used day to day are written myself in D like my terminal emulator <https://github.com/adamdruppe/terminal-emulator>, irc program, code searcher, etc.
 Did you introduce D to your work place? How? What challenges 
 did you face?
The old job's main app was a PHP monstrosity that was impossible to maintain so we had to rewrite it... so I rewrote it in D. In about 1/10 the code and dev time, we matched the PHP's basic necessary functionality and were able to go forward with it.
 What is you D setup at work, which compiler, which IDE?
dmd, no ide
 And any other fun facts you may want to share :)
I've been using D for over half my programming years now. Started coding in 1999, started D in 2006... I also actually saw D in 2001 but disregarded it cuz my young self thought it looked like Java and Java sucks. lol
Jul 28
prev sibling next sibling parent ketmar <ketmar ketmar.no-ip.org> writes:
Ali wrote:

 How do you use D?
ZX Spectrum emulator. Q2-like gfx engine. alot of 2d platformers, based on dynamic AABB trees tech. Secret Project of porting FPC platformer engine to D. highload TCP server. coding *all* my projects exclusively in D for at least 2.5 years now. converted some C coders to D ("look! D is a better C!").
Jul 28
prev sibling next sibling parent bachmeier <no spam.net> writes:
On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:

 How do you use D?
I'm an economics professor. A lot of my work requires simulations and other tasks for which a slow language just won't work. I need good integration with C and the ability to call my programs from other languages. D is a perfect fit. I write a lot of functions that coauthors can call from R. I also use D for a lot of small (few dozen line) scripting tasks, for things like automating distribution of graded assignments to students and that sort of thing.
 in your side project, (github, links please)
I don't program for fun.
 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 came to D from Lisp and C, so I honestly don't do much I hadn't already been doing, and that's a good thing.
 Did you introduce D to your work place? How? What challenges 
 did you face?
Yes. There are no challenges when you are a researcher because you can do what you want. If I'm working with a grad student, they don't have much choice other than using what I use. Once you convince a researcher to use D, your work is done, because no external approval is needed. I also use some D functions inside R packages for my teaching. The same functionality is available in R, but it is many times slower, and the students will have to use D if they want the speed.
 What is you D setup at work, which compiler, which IDE?
I use Geany, DMD, and LDC.
Jul 28
prev sibling next sibling parent Gerald <gerald.b.nunn gmail.com> writes:
 How do you use D?
I use D for building GTK applications, my current project is an open source Linux terminal emulator called Tilix (https://github.com/gnunn1/tilix)
 In work, (key projects or smaller side projects)
Side projects only.
 Did you introduce D to your work place? How? What challenges
No, my day job is all middleware and cloud projects primarily revolving around Java.
 What is you D setup at work, which compiler, which IDE?
Visual Studio Code with the code-d plugin on Linux. I use DMD for development and LDC for releases.
Jul 28
prev sibling next sibling parent NotSpooky <ovejacuantica gmail.com> writes:
On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:
 How do you use D?
I mostly use it for personal projects and used it several times for homework.
 In work, (key projects or smaller side projects)
Still don't have a job :)
 in your side project, (github, links please)
I'm creating a parasitic language (started like 2 days ago so still in very early stages) https://github.com/NotSpooky/Espuki Did several homeworks, one was creating a "MIPS" (instructions aren't really the same) simulator of a computer with two cores and two cache levels. https://github.com/NotSpooky/Simulador-MIPS The reason I became interested in D was the ability to mix usage of the GC with manual allocation for games. I spent several months making a 3D game but got bored (no GH link).
 just to learn something new? (I would easily argue that
It has been very useful for this. For learning metaprogramming and ranges mostly.
 Did you introduce D to your work place? How? What challenges 
 did you face?
I have mentioned it to classmates. Most are somewhat interested but don't find it worth to learn a new language in which they won't probably work.
 What is you D setup at work, which compiler, which IDE?
Vim.
 And any other fun facts you may want to share :)
I like D more than any other current language, but I think backwards compatibility is already a significant burden. That's why I'm making a language that compiles to D. To have most of D without worrying too much about that.
Jul 28
prev sibling next sibling parent reply Shannon <refaQtor gmail.com> writes:
On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:
 How do you use D?
One work project a few years ago, and many side projects. rdmd makes D my "scripting" language of choice.
 In work, (key projects or smaller side projects)
The need for single executable with the speed of C prompted me to finally dig into D, which I had been watching since 2007, or so. Most of my work is C++(Qt) - but the dependencies or need for installers made that undesireable for this project. I used D to build a model processing core component for an online service. All were happy with the experience.
 in your side project, (github, links please)
I'm cooking up some bigger projects, beyond random scripts, but they are on private Fossil servers. I aim to make them public, when they get further along.... I meant to be coding right now!
 Did you introduce D to your work place? How? What challenges 
 did you face?
I don't tilt at those windmills anymore. It works for me. I'd rather be coding.
 What is you D setup at work, which compiler, which IDE?
https://code.dlang.org/packages/dlangide while I can, but mostly Dlang plugin integration with Visual Studio Code
 And any other fun facts you may want to share :)
I made some commandline utilities in D that would parse, process, and export 100K line files with an in-memory SQLite db and resources easily embedded in the executable. When I gave them to colleagues to use, they thought my code didn't work at all - because it executed and returned practically instantly. They were used to the 10s of seconds execution times of Ruby and Python!
Jul 28
parent O/N/S (Ozan) <ozan.nurettin.sueel gmail.com> writes:
On Saturday, 29 July 2017 at 04:21:43 UTC, Shannon wrote:
 On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:
 How do you use D?
At my leisure time, I use it to build real-time apps (fast, faster, fastest ;-) At work, we use it for web-based stuff like apps in the cloud foundry. The big challenge for D is the small code base, lot of unfinished libs, low numbers of CPUs support, and tiny community compared to other languages. A typical discussion at work: "Did you hear about D?" "What's this" "A C-like language with more state-of-the-art syntax and functionalities. More secure, faster, more flexible compared to C, C++" "Is it strategic? Are other companies using it? Any light tower apps?..." "No, yet, but.." "Let's go to work with C/C++/Java/Javascript/PHP/Python...!" The point is, if you has the experience with other languages before, and you discover D (in my case it was an article in a german IT magazine), you don't like to go back. But you have to make the first step forward. Regards, Ozan
Jul 29
prev sibling next sibling parent reply "H. S. Teoh via Digitalmars-d" <digitalmars-d puremagic.com> writes:
On Fri, Jul 28, 2017 at 02:58:01PM +0000, Ali via Digitalmars-d wrote:
[...]
 How do you use D?
vim + dmd git HEAD :-) Well, sometimes also gdc/ldc2, but usually just dmd git HEAD because I'm a sucker for bleeding edge D.
 In work, (key projects or smaller side projects)
Unfortunately, people at work are very C/C++ centric and resistant to other languages. Plus, we have a huge codebase that has to run on an embedded system, so adding a new language into the mix does not sit well with the PTBs. So, no D at work, sad to say. :-(
 in your side project, (github, links please)
Sorry, most of my projects are not (yet) available on github. The few which are, include: https://github.com/quickfur/fastcsv https://github.com/quickfur/qrat https://github.com/quickfur/dcal The dcal code is very minimal, because it was supposed to be example code for the following article, so I haven't added any bells and whistles that I otherwise normally would: https://wiki.dlang.org/Component_programming_with_ranges
 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)
Actually, I've found that D has completely spoiled C/C++ for me. After tasting the expressive power that is D, having to deal with C at work and C++ to a lesser extent (a rather constricted subset of C++, I might add, for various reasons) is just very painful and frustrating. I just can't enjoy working with C/C++ the way I used to anymore. D is just too comfortable to use and just too awesome, that going back to C/C++ feels like being forced to program on a 1MHz CPU with 64kB RAM after experiencing the power of a 6-core CPU with 800MHz per core with 3GB RAM. The only reason I'm still putting up with C/C++ is because they pay me to do it.
 Did you introduce D to your work place? How? What challenges did you
 face?
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".
 What is you D setup at work, which compiler, which IDE?
[...] Compiler: usually dmd, but where performance is important, gdc or ldc2. IDE: what's that? :-D Linux is my IDE, vim is my source code editor. And no, I don't use syntax highlighting either. (IMAO, if code (or the language) needs highlighting just to be readable, it has already failed. I'm probably by far the minority in this opinion, and I'm quite happy with that. :-P) T -- By understanding a machine-oriented language, the programmer will tend to use a much more efficient method; it is much closer to reality. -- D. Knuth
Jul 29
parent Kagamin <spam here.lot> writes:
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.
Aug 02
prev sibling next sibling parent Danni Coy via Digitalmars-d <digitalmars-d puremagic.com> writes:
On Sat, Jul 29, 2017 at 12:58 AM, 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
In work, (key projects or smaller side projects)

As a replacement for Python for automating tasks (I was already using
python because I suck at shell scripting), D's main advantage here is that
I can compile a binary that will run on the target computer without having
to install any dependencies. The most important thing to note here is that
I haven't come accross any serious downsides to using D instead of python.


 in your side project, (github, links please)
https://github.com/kayosiii/subterrainian is my current side project. It is moving slowly as I tend to work on other things when I get into a place where I can either wait for features to be implemented or do a lot of extra work. Most recently this was getting iAllocator working in nogc code.
 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)
Initially i picked up Andrei's book because it looked interesting and found that D was closer to what I wanted than anything else out there. Generally I learn languages when they are the easiest way to get a task done D and Perl are the only two I have learned for 'fun'. Did you introduce D to your work place? How? What challenges did you face?

Until recently I was the only coder at my workplace. I would probably use D
more if there were more game engines that intergrated D.

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

Currently tooling is my least favourite aspect of using D. I am finding
vscode with the D extension that intergrates Dub the least bad solution.

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

Jul 29
prev sibling next sibling parent reply Zwargh <zwargh none.org> writes:
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)
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.
 Did you introduce D to your work place? How? What challenges 
 did you face?
As a research scientist, I can choose any tools I think will do the job.
 What is you D setup at work, which compiler, which IDE?
Visual Studio Code + D Plugin - DMD and LDC
 And any other fun facts you may want to share :)
After using FORTRAN, C/C++ and Java for structural bioinformatics, I think D is the best language so far for programming those types of tools.
Jul 29
parent reply Nicholas Wilson <iamthewilsonator hotmail.com> writes:
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?
Jul 31
parent reply Zwargh <zwargh none.org> writes:
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.
Aug 02
parent Nicholas Wilson <iamthewilsonator hotmail.com> writes:
On Thursday, 3 August 2017 at 03:46:38 UTC, Zwargh wrote:
 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.
I hope it does, i'll be using it for all my bioinformatics stuff.
Aug 02
prev sibling next sibling parent Michael <michael toohuman.io> writes:
On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:
 How do you use D?
 In work, (key projects or smaller side projects)
I did my undergraduate in CS where I picked up Python, Java and a little bit of C/C++, but Java was my most familiar language. When I started my PhD in an Engineering Maths department, I picked up Andrei's book on D as I had come across the language several times earlier but never had a good excuse to pick it up properly. My supervisor is more of a mathematician so I did not have any dependencies or limitations in the tools I chose to use for research. For the first year of my PhD I built models in Java with Python for scripting on the side. I was incredibly disappointed with the performance in Java, and having been learning D on the side during that year, I decided to rewrite it using D. I essentially chose D for the one reason many people do NOT choose D; I wanted a GC-language that offered a decent level of control like C/C++ and was much nicer to write than Java, but with the convenience of not having to concern myself too much with memory management. I was happy to tune for efficiency, but did not want memory management to interrupt my workflow when writing a new model. D was perfect for this.
 in your side project, (github, links please)
I've been lazy with side projects since I am always trying to work on my maths and writing skills which are pretty lacking given my choice of degree.
 Did you introduce D to your work place? How? What challenges 
 did you face?
I've tried to inform people of the merits of D but in this department, we're heavily tied to Matlab for teaching. When I started, they switched up the undergrad courses and started teaching Python as an alternative to Matlab alongside C/Java, but there's still a lot of reliance on Matlab. I'd like to see them chuck Java and teach C/D but we'll see. At university, there's a lot of difficulty in balancing the necessities (C for embedded systems/robotics and Matlab for modelling).
 What is you D setup at work, which compiler, which IDE?
I've been a long-time Sublime Text user, using DMD (rdmd is a life saver) and that's about it. I'm interested in VS Code with the dlang extension though.
 And any other fun facts you may want to share :)
It makes me sad to see so many people disgruntled by the mere presence of a garbage collector. I like it a lot and while I am completely on board with moving toward making it more optional, I am glad it's there and would welcome speed improvements. I think there's a balance to be struck between allowing programmers to forget about the low-level memory management when writing programs and tuning memory management when optimising for performance.
Jul 31
prev sibling next sibling parent Jacob Carlborg <doob me.com> writes:
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
Aug 01
prev sibling next sibling parent aberba <karabutawotld gmail.com> writes:
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.
Aug 01
prev sibling next sibling parent Daniel Kozak via Digitalmars-d <digitalmars-d puremagic.com> writes:
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)
Aug 02
prev sibling next sibling parent Daniel Kozak via Digitalmars-d <digitalmars-d puremagic.com> writes:
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)
Aug 02
prev sibling next sibling parent Meta <jared771 gmail.com> writes:
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.
Aug 02
prev sibling next sibling parent reply MGW <mgw yandex.ru> writes:
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 )))
Aug 02
parent reply SCev <SCev gmail.com> writes:
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
Aug 02
parent Moritz Maxeiner <moritz ucworks.org> writes:
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.
Aug 02
prev sibling next sibling parent Neia Neutuladh <neia ikeran.org> writes:
On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:
 How do you use D?
I use D for pretty much everything in my personal life at the moment. I've found some things that I thought were better in other languages, but either D's ecosystem has improved (which is why I'm rewriting my RSS reader from C# to D -- when I wrote it, vibe.d wasn't a thing) or I was proven false (scraping websites in Python led to a ton of inscrutable encoding errors; implementing a parser in C# was about 900 times slower than the D version until I wrote my own UTF8 string struct and made some other optimizations, at which point it was merely 3.5 times slower). By count, most of what I'm using it for is small scripts for simple simulations. Recurrences that I can't solve mentally in a reasonable amount of time, so I need a program for it. In ages past, I'd use Python, since it tends to be convenient. However, while it's a bit more convenient than D, type safety is worth a lot. I tend not to finish projects, but the ones I've worked on in the past week or strongly intend to get back to are: * An init system (mainly for learning). * A procedural generator for a witch's spellbook [1] * A rewrite of my RSS reader (70% complete) * A MUD involving procedurally generated sky islands As for the mechanism by which I use D: I've mainly stuck to vim. I've tried out vscode plus code-d, but that doesn't work for me. And in the past, I've used Eclipse plugins for D. Vim, NERDTree, and tmux make for a good editing experience -- it's what I use for Java at work.
 Did you introduce D to your work place?
I used D to write a tool to extract and update vbulletin templates from a directory of templates. This meant we could store things in source control. (Vbulletin stores templates in its database. This makes their hosted solution much better, I'm sure. It makes my life more annoying.) Unfortunately, I was the only one who preferred source control rather than editing live. [1] Sample spellbook, only one spell (it needs some work):
 The Book of Vile Darkness
 a witch's guide to necromancy with friends

 𐀛𐀲 𐀔𐀼 𐀗 𐀩𐀴 𐀬𐀀 𐀒𐀂 π€³π€˜ 𐀓𐀝 𐀓𐀴
𐀅 𐀹𐀢, a spell to banish spirits

 You will need:
  * graveyard soil
  * bronze mirror

 reduce graveyard soil to a paste
 boil paste, bronze mirror in a size 6 cauldron
 mix paste thoroughly
Aug 03
prev sibling next sibling parent reply Laeeth Isharc <laeeth nospamlaeeth.com> writes:
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 started programming in 1983: BBC BASIC, 6502 assembler, Z80 assembler. I learnt to program C on an Amstrad PCW running CP/M, and compiler I used had K&R style declarations. Then I discovered economics, and my life took a different course. I moved into trading and managing money, but I always programmed on the side to help me solve investment and business problems. Kept it quiet because programming was for a long time low status and clashed with what people expected to see in a money manager. Late 2013 I recognised that the way our business used technology was completely broken. The only way to make the most of technology is to combine an understanding of investing, financial instruments, the investment business, and technology in one mind. But where am I going to find a guy like that? So I looked in the mirror and realised I had to brush up my skills. So I started building tools to help me invest. My friends mostly thought it was a crazy course of action, because it's rare if you leave investing even temporarily to return to it, and I love markets, but sometimes the direct approach isn't the right one. We're drowning in data but don't have good tools to make sense of it. I learnt python and cython, but kept looking, because I wanted to have my cake and eat it. Why can I not have all of productivity, performance, static typing/correctness, abstraction, and code readability - I don't think I should have to choose just a couple, and I am not going to. That led me to D in 2014. At school they used to ask us if everyone else jumped out of the window would you do it too? And it's a profitable approach in financial markets to develop and learn to trust your own judgement of things. If a highly respected and very knowledgeable economist tells you "you do realise that there is no basis in economic theory for what you are suggesting", you need to be able to revisit your thinking, see what you might be missing, but in the end trust your own judgement over that of the putative expert. And he subsequently wrote a very impressive explanation after the fact of how what "couldn't be justified in theory" did in fact happen. And it's a bit similar with programming language choices and such. Its way better to appeal to people who make up their own mind and bear the consequences then to those who have to cover their behinds by getting the right ticks in the boxes because the are never going to be earlier adopters except through some unfortunate accident - because you also don't want such people as early adopters! Since then, one thing led to another, and I ended up hiring a few people from the community to help me as consultant developers. Maybe a bit more than 10% of Team Phobos, based on a simple calculation. I have also ended up running technology, amongst other things, for a decent size hedge fund. I am using D for the project I started beforehand, and we are starting to explore its usefulness in the rest of the firm for some core analytics. It pays to start small and build on early successes. Has D been good for me? What have been the consequences of the French Revolution? In both cases it's too early to say with utter confidence since life is complicated and things are not always what they seem to be in the moment, but I have a view on the latter, and I think the answer to the former is definitely yes. Finance used to be relatively at the leading edge. The industry got a bit too fat, it hired the wrong people as it expanded too quickly, and then after the crisis people had other things to worry about - first survival, and then an exploding burden of compliance. At one big bank even the compliance people complain about the number of compliance people they have. On top of that, there's so much legacy systems that it can be very difficult to do anything creative or new. So as an industry we fell behind a bit, and when you go through a cycle like that if becomes somewhat self-reinforcing. To turn things around you need to hire very good people, but it's not so easy to find very good people who are willing to work with the people who created and tolerated the mess in the first place. But it can be done, and I think based on a view from afar that the banks will do better on this front than they have been. For a firm like the one I am involved with its different because we are at a post startup stage. Some legacy but not that much, and it's possible to do new and creative things. And it's also possible to use languages that might not win on social factors if based on intrinsic factors it's by far the best answer for us. And we don't need to make a big bet, because we can make a start in a small way for us, and build on successes. One of the biggest benefits from D is I think a cultural one. We're in an age of specialists and of the full stack overflow engineer, with people strapping together ready made components. If that's all programming is about, you don't need to have people with flair, because it really flattens out the differences between people. But in a business that's highly dynamic, there's also a cost to such a conventional approach. One loses some ability to adapt to unanticipated change, and you lose coherence in understanding about the total behaviour of your system, and about what the choices are and what the implications might be. This fragmentation of knowledge that accompanies micro-specialisation isn't entirely healthy. And maybe if working with framework X for years will make you faster then someone who hasn't experience of framework X, speed of development isn't from a commercial perspective the only, or sometimes the main factor, in determining productivity, which is not a materialist measure (features accomplished per 40 hours), but a measure of economic value added per unit input, and value added relates in this case to long lived capital, and part of the value of capital relates to optionality and the ability to adapt what you have built to an unexpected need, or to change the way you do things in a way you didn't originally plan for but that's better. In other words you can think about the plasticity of D from the point of view of real options theory. When I started my career there was an understanding that whilst experience had value, someone capable could often pick things up given a few pointers and a chance to learn. We somehow forgot that in the years since then, though this way of thinking is making a comeback. So a benefit of D is that because it attracts people who aren't put off by the tooling etc, one tends to find people who are adaptable and don't mind getting their hands dirty and doing something they never did before because that's what is the most valuable right now from a business perspective. Lack of polish can itself also be a highly effective filter. Many seemingly hairy things are not that bad with a bit of experience. But if you don't get such experience because you spend your life in an environment where things just work then when something doesn't work it's a bit more painful. Suppose there's part of an application that's slow. I simply can't imagine finding a good and experienced D developer who wouldn't have put it through a profiler and doesn't already have some idea anyway of bits of the code that are slow. In some other communities, it really isn't like that at all! And similarly if you think the GC is a problem in your code somewhere it's just normal to use the instrumentation to check and to use an allocator if that's the case. Not something you would even give a lightning talk about doing in D land, because it's just what you do. For some managed languages the norm is quite different. London used to be a set of villages. But today any former village that has an underground station has lost its character, whereas those that don't are harder to get to and have somehow preserved it more. And it's the same with virtual communities - the very difficulty initially of gaining entry can also preserve its character. Benefits of D? The easiest reasons to adopt something are not necessarily the reasons that ultimately matter most. Some proximate attractive aspects of D are the ability to write native code in a modern language that can be called from many different languages with wrappers being generated via attributes. Excel-D is one such tool, but there are other languages we need to target also. There's a rising interest in alternative data sources in finance. Numerical data is not that big. Text data can be, if not big, uncomfortably large vs what we are used to working with. And D is fast with strings, but that's not the case for some other more modern languages used in a finance environment. Code clarity is worth something too. It's easy to read well-written D code, to some extent even if you don't know D. Some other languages not so much, because of the fragmentation of OO code and the verbosity and use of abstraction that isn't doing any useful work but does constitute another layer in the way of understanding what's going on. I personally use Sublime or vim on Linux. Others use Visual D. Biggest challenges? People don't have reference points for D. It doesn't slot into an existing mental category. "so you're saying D is good for larger data sets". Well, that's true but it's not quite only what I am saying. Other challenges - normal human anxiety about doing something different. And habit - apart from necessity, the most powerful force in the universe. If someone is in pain, they are going to listen to something that might be an answer. C++ programmers I work with aren't sceptical of the GC, but they're excited about doing things better because they both love C++ and appreciate that it has flaws. Windows experience is not that great. Part of it is just native code on Windows rather than D, but expectations are set by languages that do everything for you. Most of the time installing a library in python is one command. In D you might have the dub wrapper or binding and then the C library itself. And installing the latter is not always just one command. Would be great to have a web front end to D irc, because some companies have to be careful about what chat services are accessed from their systems. Of course I can for me set this up myself but others might not bother to do that. Thinking about my own experience and that of another commercial user I wonder if there is a market for paid support for compiler plus phobos plus certain libraries. The first adopter within a firm might be quite ready to persevere, but the others they follow may do better if there is someone they can call when they get stuck. Not necessary for my group, but in time some might find it valuable. Not very difficult but just need patience and ability to communicate. Maybe some value also to training eg python users to show them how they can do similar things in D and what the benefits are. People learn in different ways and I think it's a minority that learn from reading books unless very motivated.
Aug 05
parent Bastiaan Veelo <Bastiaan Veelo.net> writes:
On Sunday, 6 August 2017 at 05:39:36 UTC, Laeeth Isharc wrote:
 [...]
Thanks for sharing your views, a nice read. Bastiaan.
Aug 06
prev sibling next sibling parent solidstate1991 <laszloszeremi outlook.com> writes:
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?
For personal projects, using a mixed form of OOP and procedural programming (I won't make static classes if I'm not forced to, like in Java and C#).
 In work, (key projects or smaller side projects)
I almost got a job at Sociomantic, that's all. If I were asked to develop someone a PHP based website, I'd probably would use vibe.D instead, while keep telling them that how much I had to work with PHP.
 in your side project, (github, links please)
Projects that have been publicized: -PixelPerfectEngine: https://github.com/ZILtoid1991/pixelperfectengine A 2D engine mainly for retro games, once I get a way for efficient 2D acceleration it probably could easily handle native HD resolutions. -OpenRG: https://github.com/ZILtoid1991/OpenRG A response to the abandonment of easily usable raster graphics acceleration, will be written in DCompute for easy portability. I currently need more people on planning stuff, mainly for embedded systems. Currently nonpublic projects: -libPCM: A Library for converting and playing back various PCM and ADPCM formats. Currently having issues with finding usable ADPCM codec guides. -libLZHAM: Compression algorithm using an obscure algorithm found on github with my own enhancements, like an archive file format. It has speeds comparable to ZLIB, but almost the same compression rate as LZMA (sometimes it even surpasses it). DCompute version is planned.
 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 pretty much learned C (and C#) through D.
 Did you introduce D to your work place? How? What challenges 
 did you face?
I introduced it in my college, I even made an OOP project using D as I no longer liked Java. My teacher could instantly read it, since he was pretty good with C++, Java, C#, and many others.
 What is you D setup at work, which compiler, which IDE?
VS2015, DMD for x86 (thinking on working on an ARM codegen), LDC for everything else (engine will have several optimizations for single board computers like rPi, and maybe even mobile phones).
Aug 06
prev sibling parent reply Eugene Wissner <belka caraus.de> writes:
I'm a self-employed web-developer, mostly working with PHP and 
Javascript and markup languages like HTML and stuff like CSS and 
SQL databases.

On the other hand at school (in Russia) we began with QBasic, 
then Turbo Pascal and could choose if we use Turbo Pascal or 
something else for solving class excercises. It was the first 
time I learned C. After school I continued to use C for some open 
source projects I was participating for fun. Two years ago I 
started to look for a language that gives you a control over the 
system like C but at the same time has high-level constructs I 
was fimilar with from PHP. Here D comes into play (my second 
choice would be Haskell and Rust).

 How do you use D?
 In work, (key projects or smaller side projects)
I'm living now in Germany and a year ago I found a job, where I can use D all the time, but I still continue doing web-development with PHP, Javascript and & Co.
 in your side project, (github, links please)
Still my primary interest on D was to replace C in my projects, I started to work on a library that would give me C++ with the syntax of a modern high-level programming language. See https://github.com/caraus-ecms/tanya.
 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)
Yes. Everything I know about low-level network programming, assembler, memory management, I learned from my working on my library, tanya.
 Did you introduce D to your work place? How? What challenges 
 did you face?
Though it is not reallistic to replace PHP and js with D for small end customers I want to start some web-service based on D on my own. After some work on tanya, I'm planning to continue to work on my web-framework, I've started before: https://github.com/caraus-ecms/caraus.
 What is you D setup at work, which compiler, which IDE?
neovim, dmd and gcc on Slackware Linux.
Aug 07
parent reply Nicholas Wilson <iamthewilsonator hotmail.com> writes:
On Monday, 7 August 2017 at 19:54:51 UTC, Eugene Wissner wrote:
 Yes. Everything I know about low-level network programming, 
 assembler, memory management, I learned from my working on my 
 library, tanya.
OT but tanya's readme has a wrong comment: ``` int i = arr[7]; // Access 7th element. ``` should be 8th element.
Aug 07
parent Eugene Wissner <belka caraus.de> writes:
On Tuesday, 8 August 2017 at 01:20:37 UTC, Nicholas Wilson wrote:
 On Monday, 7 August 2017 at 19:54:51 UTC, Eugene Wissner wrote:
 Yes. Everything I know about low-level network programming, 
 assembler, memory management, I learned from my working on my 
 library, tanya.
OT but tanya's readme has a wrong comment: ``` int i = arr[7]; // Access 7th element. ``` should be 8th element.
Fixed, thanks!
Aug 07