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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
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 2017
next sibling 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 2017
prev sibling parent reply Pjotr Prins <pjotr.public12 thebird.nl> writes:
 How do you use D?
I write code for a living. We use D for writing the next generation critical large data software. Sequencing centers churn out TBs of data per day and writing code in Python does not cut it. Even JVM tools are problematic when it comes to raw performance. Sambamba, written in D, has been doing heavy lifting since 2014 and is running every second of the day somewhere on an HPC diagnosing cancer.
 Did you introduce D to your work place? How? What challenges 
 did you face?
Not that many as we make up the rules. Great programmers tend to like D once they grok it. Writing idiomatic D takes time though. I have written significant code in a great number of languages, including Ruby, Python, C++, Perl (ugh), Lisp, Elixir, Erlang, Scala... I am in a position to state what I like. Currently I favor Ruby for the quick and dirty, Elixir for web programming and D for data processing and raw speed. It is the fastest car in my garage. It would be C++ if I had no D - and I am very glad I don't have to write new code in C++. There are reasons I still use other languages. Ruby feels just slightly more productive and Elixir has some great features too for a functional programming language. I have absolutely no incentive to program in Go or Rust though I sometimes have to read such code. I think Go is a royal pain.
 What is you D setup at work, which compiler, which IDE?
ldc and emacs. GNU Guix handles all dependencies.
 And any other fun facts you may want to share :)
Started late programming 70s after a stretch playing chess. Been coding ever since. My first encounters with Walter were on Compuserve when I was using Zortech and Symantec C++ compilers. Obviously I am glad we moved forward, tooling-wise. On Sunday, 6 August 2017 at 05:39:36 UTC, Laeeth Isharc wrote:
 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!
I think that is very true. I can understand why the people involved in D want it to be popular - to become famous, rich, or if only to convince those at work. But I think it is fine to target thousands of great programmers, rather than millions of average ones. And D must be there. Similar to the Haskell and Lisp communities we have the luxury of dealing with the best programmers out there. Hyped languages are for suckers. Even so, if you are a D programmer and your work environment does not allow you to use D, 'popularizing' D is not going to help that (how do you popularize a powerful language?). Grind your teeth and write in whatever the job dictates (I do that too), but sneak in your best work in D without telling anyone. There are always opportunities. Don't complain. Move on. That is my advice. I predict D has enough momentum to stay and be a better alternative to C/C++/JVM. Which is the main thing. Even when Walter and Andrei would drop out, for whatever reason, D will continue. There are some language features I would like, but to be honest I can live without them.
Jan 03
parent reply Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= <ola.fosheim.grostad gmail.com> writes:
On Wednesday, 3 January 2018 at 09:56:48 UTC, Pjotr Prins wrote:
 average ones. And D must be there. Similar to the Haskell and 
 Lisp communities we have the luxury of dealing with the best 
 programmers out there.
This attitude is toxic, and it isn't true either. Sure, Haskell might attract programmers who are more interested in math, but in practical programming formal math is only 1% of what you need (99% of your time is not spent on things that require deep understanding of math). I don't see any evidence of Lisp programmers being better than other programmers either. Good programmers aren't stuck on any single language and will pick the tool best suited for the job at hand. Good programmers are also good at picking up new languages.
 Hyped languages are for suckers.
Hype leads to critical mass, which leads to higher productivity because you get better tooling, better documentation (including stack overflow), better libraries and better portability. But you don't need lots of users to get hype. You can focus on a narrow domain and be the "hyped language" within a single realm. The only time where it is an advantage to be small is when your language design is changing. Once the language design is stable there is only disadvantages in not having critical mass.
Jan 03
next sibling parent reply Joakim <dlang joakim.fea.st> writes:
On Wednesday, 3 January 2018 at 10:29:05 UTC, Ola Fosheim Grøstad 
wrote:
 On Wednesday, 3 January 2018 at 09:56:48 UTC, Pjotr Prins wrote:
 average ones. And D must be there. Similar to the Haskell and 
 Lisp communities we have the luxury of dealing with the best 
 programmers out there.
This attitude is toxic
Not necessarily, it all depends if thinking you're the best leads to taking your eye off the ball of improving and acknowledging your problems, which I see little indication of here.
 Haskell might attract programmers who are more interested in 
 math, but in practical programming formal math is only 1% of 
 what you need (99% of your time is not spent on things that 
 require deep understanding of math).   I don't see any evidence 
 of Lisp programmers being better than other programmers either.
Agreed with much of this: they may be better at various things, but those things don't matter much of the time.
 Good programmers aren't stuck on any single language and will 
 pick the tool best suited for the job at hand.  Good 
 programmers are also good at picking up new languages.
And who do you know who does this? While I myself have espoused the idea of the best tool for the job in this forum, realistically, other than a small handful of coders, when does that ever happen? I recently read some article linked off proggit that stated the reality much better: programmers learn a language that suits them, then use it everywhere they can. Ruby programmers can't write an OS kernel, so they don't bother with that. They may dabble with a few other languages, but unless forced to by a new job or project, they stick with what they know. Given how much effort it takes to know a language platform well, not only the language itself but all the libraries and their bottlenecks, and most programmers' limited motivation to pick up new tech, that is the only approach that makes sense for the vast majority.
 Hyped languages are for suckers.
Hype leads to critical mass, which leads to higher productivity because you get better tooling, better documentation (including stack overflow), better libraries and better portability.
Yes, but if you're only hyped because you were stowed away on a popular platform, ie javascript in the browser, or are easy to learn, Go from what I hear, then the technical limitations of the language put a ceiling on how high you can go. You'll get to that ceiling faster, but then you're stuck there.
 But you don't need lots of users to get hype.  You can focus on 
 a narrow domain and be the "hyped language" within a single 
 realm.
Another way to get stuck, you're highly specialized to a niche and can't break out. I'm not knocking this approach- it has worked well for many languages nowadays- it's just not what D is going after.
 The only time where it is an advantage to be small is when your 
 language design is changing. Once the language design is stable 
 there is only disadvantages in not having critical mass.
And since when has the D language design been stable? ;) I don't think any language can call themselves done changing these days, look at how often C# has had to update itself and put out major versions. And who's to say D doesn't have critical mass? I'd say 100-200k users (my math based on the chart below: 2k downloads/day of dmd X 60 days between major versions + ldc/gdc and external downloads) is a significant market: http://erdani.com/d/downloads.daily.png It's not hyped or popular, but you can leverage that base to get bigger, particularly since you didn't sell out and specialize to get that base in the first place.
Jan 03
next sibling parent reply Paulo Pinto <pjmlp progtools.org> writes:
On Wednesday, 3 January 2018 at 11:13:04 UTC, Joakim wrote:
 On Wednesday, 3 January 2018 at 10:29:05 UTC, Ola Fosheim 
 Grøstad wrote:
 On Wednesday, 3 January 2018 at 09:56:48 UTC, Pjotr Prins 
 wrote:
 [...]
 Good programmers aren't stuck on any single language and will 
 pick the tool best suited for the job at hand.  Good 
 programmers are also good at picking up new languages.
And who do you know who does this? While I myself have espoused the idea of the best tool for the job in this forum, realistically, other than a small handful of coders, when does that ever happen? [...]
Everyone at my employer, a few thousand of them doing enterprise consulting. We specialize in a few large domains, and tend to jump between them every 6 months or a year, when switching projects. On my case, full stack development across JVM and .NET languages, with C++ for low level coding. Occasionally there are some projects using all of them, for example, JVM on the backend with a native desktop GUI developed in WPF.
Jan 03
parent reply Joakim <dlang joakim.fea.st> writes:
On Wednesday, 3 January 2018 at 11:43:35 UTC, Paulo Pinto wrote:
 On Wednesday, 3 January 2018 at 11:13:04 UTC, Joakim wrote:
 On Wednesday, 3 January 2018 at 10:29:05 UTC, Ola Fosheim 
 Grøstad wrote:
 On Wednesday, 3 January 2018 at 09:56:48 UTC, Pjotr Prins 
 wrote:
 [...]
 Good programmers aren't stuck on any single language and will 
 pick the tool best suited for the job at hand.  Good 
 programmers are also good at picking up new languages.
And who do you know who does this? While I myself have espoused the idea of the best tool for the job in this forum, realistically, other than a small handful of coders, when does that ever happen? [...]
Everyone at my employer, a few thousand of them doing enterprise consulting. We specialize in a few large domains, and tend to jump between them every 6 months or a year, when switching projects. On my case, full stack development across JVM and .NET languages, with C++ for low level coding.
How many of those few thousand are actually comfortable with C++ for low-level coding? I think you've said before that it's not many. So okay, your colleagues switch between Java and C#, which is somewhat uncommon as many places are pure C# or Java shops, but those are the two most popular enterprise application languages, noted for their similarities. You can hardly use this as an example of having a toolbox of languages and picking the best for the job, say Erlang for some high-concurrency microservice or ruby for an app you need to get up and running quickly. You're just using two of the most popular business languages and deciding which based on what the customer wants. On Wednesday, 3 January 2018 at 14:08:20 UTC, Ola Fosheim Grøstad wrote:
 On Wednesday, 3 January 2018 at 11:13:04 UTC, Joakim wrote:
 Not necessarily, it all depends if thinking you're the best 
 leads to taking your eye off the ball of improving and 
 acknowledging your problems, which I see little indication of 
 here.
Well, if a language is used for a narrow set of application areas then one might be able to have a deep understanding of what the challenges are. In general I think it is difficult to understand what challenges people have in areas one have little familiarity with. I've seen this time and time again in discussions about memory management. I think both Rust and D suffers a bit from this. And likewise, I think C++ designers are making a mistake by presuming that C++ can become a competitive high level language. So it is a general challenge in language design, I think.
These languages may all have these problems, but I don't see the connection to your original point about it not being good to think you're the best.
 And who do you know who does this?  While I myself have 
 espoused the idea of the best tool for the job in this forum, 
 realistically, other than a small handful of coders, when does 
 that ever happen?
I don't know how many… But if you have a good understanding of a language like Java and C/machine language, and also have the equivalent of a bachelor in comp sci, then I think you should be able to pick up just about any language in relatively short time (except C++ where the know-how is less accessible for various reasons).
More programmers don't have a bachelors in CS than those who do. I think you'll find the percentage who regularly use multiple languages is fairly low, let alone evaluating each one for each job.
 Anyway, it is my impression that many C/C++ programmers also 
 know Python and also have a good understanding of basic 
 functional programming.
So two tools in the toolbox is enough?
 I recently read some article linked off proggit that stated 
 the reality much better: programmers learn a language that 
 suits them, then use it everywhere they can.
Well. Take an iOS programmer. She/he would start out with Objective-C, which requires understanding of C. Then maybe you also need to interface with C++ in order to use some library. Then you switch over to Swift… Then you need to port the app to Android and have to pick up some Java. Then somebody want to turn it into a webapp and you pick up TypeScript… Then someone needs interfacing with C# for a web-service and you pick up a bit of that… As long as you are interfacing with other systems you often achieve more by learning enough to use something written in another language than by picking a suboptimal solution that use your favourite language.
If you're just stitching together a bunch of libraries written by others, sure, you can pick up enough to interface them. But we were talking about switching between significant use of each language based on the job, which almost never happens. Your company is much more likely to bring in somebody with Java experience to write the Android portion.
 But sure, if I need to hack together something I would usually 
 think about using Python first, mostly because it is so 
 mallable for smaller tasks. Not really because it is my 
 preferred language. I don't really like dynamic typing in 
 principle, but it is productive for smaller tasks and 
 prototyping.
Whatever the reason, everybody has their go-to language that they generally stick to. Very few have a deep toolbox of languages, where they just pull out the best one for each job. It is unrealistic to expect the vast majority of programmers to do any more than use one language most of the time.
 Given how much effort it takes to know a language platform 
 well, not only the language itself but all the libraries and 
 their bottlenecks, and most programmers' limited motivation to 
 pick up new tech, that is the only approach that makes sense 
 for the vast majority.
Well, but libraries and frameworks are unfortunately not permanent. They are shifting relatively fast. Heck, even the Java standard library contains many things that you don't want to use, because there is something better in there. So if you start on a new project there is often a more productive framework you could go with.
This actually argues for a single language: you're going to spend a ton of time tracking all those shifting frameworks so you won't have time for a new language too, but at least you won't have to learn a new language every time you pick up the new js framework of the day.
 And that might require adopting a new language as well.

 This is of course good for new languages. If this was not the 
 case then it would be near impossible for new languages to 
 establish themselves.
The ongoing churn may help new languages with new users and companies, don't think it helps with users who already know a language well.
 But it can also be taken as a sign that we don't have the 
 languages and tooling that enable writing really good timeless 
 libraries and frameworks.
Seems like an oxymoron, tech changes so fast that I don't see how anything could be timeless, even if you really mean "will still be the same 20 years from now." ;)
 Maybe that will change in the future, I guess we now are 
 reaching a point where neither CPU or memory are the limiting 
 factor for most mundane applications. So maybe that will cause 
 a more stable infrastructure to emerge… but probably not in our 
 lifetime. I think we still have a long way to go in even simple 
 areas such as GUI frameworks.
There's always new stuff other than that, eg more limited mobile hardware over the last decade has returned the tech market to earlier times, and native languages like Obj-C and Swift have benefited.
 Yes, but if you're only hyped because you were stowed away on 
 a popular platform, ie javascript in the browser, or are easy 
 to learn, Go from what I hear, then the technical limitations 
 of the language put a ceiling on how high you can go.  You'll 
 get to that ceiling faster, but then you're stuck there.
I perceived that there was a lot of hype around Python 15 years ago or so. Now, universities are replacing Java with Python as the introduction language and Python is also becoming the defacto language for scientific programming. Python is basically getting critical mass and is now managing to take on Matlab and perhaps to some extent even C++/Fortran.
Python has done well in those niches, but when is the last time you saw a popular GUI app written in Python? That is the largest segment of the market, and Python has basically no uptake there. Even Java got nowhere in the consumer GUI market, other than a few p2p apps like Vuze and the now-defunct Limewire, largely for piracy.
 There is a loooong road for languages like Rust, D and Julia… 
 All those scientific simulation frameworks creates are rather 
 heavy critical mass. That is very difficult to move around 
 (Matlab was for a long time dominant).
While that market may be important to you, it is a small segment of the programming market. It's nice that D libraries like Mir are targeting it, but it's not going to move the needle much.
 And who's to say D doesn't have critical mass?  I'd say 
 100-200k users (my math based on the chart below: 2k 
 downloads/day of dmd X 60 days between major versions + 
 ldc/gdc and external downloads) is a significant market:

 http://erdani.com/d/downloads.daily.png
I don't know what to make out of the download metric. It would be easier to grasp if it was broken down into regional downloads and if it isn't already, filtered by unique IPs.
I believe it is filtered for repeated downloads, but we don't know exactly how.
 It's not hyped or popular, but you can leverage that base to 
 get bigger, particularly since you didn't sell out and 
 specialize to get that base in the first place.
Well, but nobody picks a language because it is a good language for building libraries. They might avoid a language if it is bad at that, but for a single application you often don't need generic programming.
You don't pick a language for that, you pick it because it has all these great libraries that make building your app faster. You may not even know that's because of generic programming, you just like all the great libraries. IOW, you may think you don't need generic programming, but the libraries you do need do need it.
 When focusing on a niche you have an easier sell for the 
 specifics of a project. Being a bit better than Rust at this, 
 Go and that and C++ an this and that, isn't given as much 
 weight as "hands down most productive solution for Y". And 
 being the most productive goes beyond language and even 
 libraries, it also includes knowhow and online tutorials for 
 that narrow area.
I'd argue it's historically actually been the opposite: just pick a popular language and go with it, without bothering to figure out if there's some niche language better suited for Y. With the fragmentation in languages over the last decade and a half, that's been changing, partly because of how much easier it is to get the word out about these less-popular languages on the internet now. However, there's always going to be space for a few general-purpose languages to complement the many single-purpose languages. D's aiming for the former, not the latter. I understand you think the former are on the way out but many of us disagree, for the reasons laid out above.
Jan 03
next sibling parent reply Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= <ola.fosheim.grostad gmail.com> writes:
On Wednesday, 3 January 2018 at 16:20:48 UTC, Joakim wrote:
 These languages may all have these problems, but I don't see 
 the connection to your original point about it not being good 
 to think you're the best.
Hm? I tried to say that it is not good to think that you have the best programmers. Or that you are satisfied with only appealing to the best programmers. There are some assumptions about "best" in that attitude that isn't healthy for developing an ecosystem. First of all, it might not be true, maybe the best programmers go elsewhere. Second of all, programmers generally don't start out as "best". And only appealing to experience programmers is not a good long term strategy. Anyway, you probably have a lot more great programmers using Javascript than any small language, measured in absolute numbers. And when growing a eco system it is those absolute numbers that matters. It doesn't matter if 99% are not good if the other 1% can grow your infrastructure. And well, right now that means developers can be very productive in that eco system (e.g. TypeScript, Angular, React etc).
 More programmers don't have a bachelors in CS than those who 
 do.  I think you'll find the percentage who regularly use 
 multiple languages is fairly low, let alone evaluating each one 
 for each job.
I think it depends on what type of developement we are talking about. But I see a lot of fuzz about fullstack developers. Not sure if that fuzz translates into something at scale, but "full-stack" is at least something that is mentioned frequently.
 Anyway, it is my impression that many C/C++ programmers also 
 know Python and also have a good understanding of basic 
 functional programming.
So two tools in the toolbox is enough?
Not sure what you mean by that. I meant to say that my impression is that most C/C++ programmers need a higher level language and also are capable of using other paradigms than what C/C++ encourages. Despite C++ being able to express a lot of the same things and also despite C++ being a language where you never really reach a full deep understanding of the language.
 Your company is much more likely to bring in somebody with Java 
 experience to write the Android portion.
Mostly because of the iOS/Android frameworks, not really because of the languages. Or rather, the Java language shouldn't be the stumbling block, but both of iOS and Android are rather bloated frameworks that takes time getting into. Which I think it is intentional. Both Apple and Google want developers to be dedicated experts on their platform and seems to deliberately go for changes that prevent cross platform tooling.
 It is unrealistic to expect the vast majority of programmers to 
 do any more than use one language most of the time.
I don't know. Depends on what kind of development we are talking about.
 This actually argues for a single language: you're going to 
 spend a ton of time tracking all those shifting frameworks so 
 you won't have time for a new language too, but at least you 
 won't have to learn a new language every time you pick up the 
 new js framework of the day.
I think there is another way, but it isn't available yet. Program transliteration and software synthesis should over time be able to offset some of these issues. Most imperative languages are fairly similar. Most of the code we write, whether it is in Python, C+ or D would have a fairly similar structure. In some sections you get something very different, but I don't think that is dominating. (Functional and logic programming tend to lead to more different patterns though.)
 The ongoing churn may help new languages with new users and 
 companies, don't think it helps with users who already know a 
 language well.
I don't know. Seems that many in these forums have done work in Java, Go, Python, Rust and C++.
 Seems like an oxymoron, tech changes so fast that I don't see 
 how anything could be timeless, even if you really mean "will 
 still be the same 20 years from now." ;)
Right, but digital computing is a relatively new invention (and well, even electricity is relatively new ;-). Over time one would think that something "timeless" would establish itself. But for now we can just say "stable". There clearly are some frameworks that have been relatively stable. Like matlab. I think that is because matlab has tried to closely model the domain that scientists have been trained in (linear algebra). But it is interesting that Python is making inroads there. That matlab is now perceived as not having good enough abstraction mechanisms, perhaps. On the other hand, the mathematical field of logic is also relatively new as it is conceptualized today, and some people are exploring paradigms such as probabilistic programming languages and what not… So right, "timeless" is not realistic at the moment as the basic foundation is still quite new and we are still learning how to make computers reason about first order logic… (building automatic theorem provers).
 There's always new stuff other than that, eg more limited 
 mobile hardware over the last decade has returned the tech 
 market to earlier times, and native languages like Obj-C and 
 Swift have benefited.
Yeah, as you have pointed out many times, mobile CPUs are quickly catching up at the high end and also to some extent on the middle-end. What remains to be seen is how the mass-market low end picks up. I think companies like Motorola is pushing the curve at the low/middle phone market as Samsung and Apple have taken the high end.
 Python has done well in those niches, but when is the last time 
 you saw a popular GUI app written in Python?
Many applications use Python (or Lua or Java or even Visual Basic) to tie the pieces together, including the GUI, but they use engines written in other languages for interfacing with the OS.
 Even Java got nowhere in the consumer GUI market, other than a 
 few p2p apps like Vuze and the now-defunct Limewire, largely 
 for piracy.
JetBrain's products?
 While that market may be important to you, it is a small 
 segment of the programming market.  It's nice that D libraries 
 like Mir are targeting it, but it's not going to move the 
 needle much.
Mmm… it is a small segment of the revenue-based market, because scientific programmers are often the scientists themselves (no it is not important to me at the moment). It is a fairly large segment though of the overall market. As it includes a lot of engineering. Just because those programs aren't sold, either because they are in-house, personal or with a very narrow user base (like researchers) doesn't mean that these programs are less important.
 I believe it is filtered for repeated downloads, but we don't 
 know exactly how.
That's a shame. I'd be interested in knowing what the distribution over the different nordic countries is.
 You may not even know that's because of generic programming, 
 you just like all the great libraries.  IOW, you may think you 
 don't need generic programming, but the libraries you do need 
 do need it.
That's right, but you need critical mass for it to matter. Otherwise people will just use somewhat slower or somewhat more clunky libraries. Go, Python and JavaScript are doing fine… without proper generics. (TypeScript is better suited for building libraries, but most libraries with TypeScript support are JavaScript libraries with TypeScript type definitions.)
Jan 03
parent reply Joakim <dlang joakim.fea.st> writes:
On Wednesday, 3 January 2018 at 17:50:01 UTC, Ola Fosheim Grøstad 
wrote:
 On Wednesday, 3 January 2018 at 16:20:48 UTC, Joakim wrote:
 These languages may all have these problems, but I don't see 
 the connection to your original point about it not being good 
 to think you're the best.
Hm? I tried to say that it is not good to think that you have the best programmers. Or that you are satisfied with only appealing to the best programmers.
Yes, but when I pointed out that it's fine to think you're the best as long as you stay focused on bettering the flaws you still have, you responded with points about memory management and how C++ can't be a "competitive high level language," seemingly ignoring the topic at hand. Good to see you address it below.
 There are some assumptions about "best" in that attitude that 
 isn't healthy for developing an ecosystem.  First of all, it 
 might not be true, maybe the best programmers go elsewhere.  
 Second of all, programmers generally don't start out as "best".
  And only appealing to experience programmers is not a good 
 long term strategy.
Thinking you're the best doesn't imply that inexperienced programmers shouldn't show up, it just means they better think they have the ability to someday be similarly good. ;) And when you're smaller and trying to take on older languages with many more users, you need some identity to rally your much smaller group of insurgents: thinking you're the best is as good a rallying cry as any other. Finally, D is hardly pitched as an "expert-only" language, given it makes pragmatic choices to use a GC by default and carry forward the popular C syntax. It simply provides many more power tools that you can use, if you're so inclined to go farther and learn more.
 Anyway, you probably have a lot more great programmers using 
 Javascript than any small language, measured in absolute 
 numbers. And when growing a eco system it is those absolute 
 numbers that matters. It doesn't matter if 99% are not good if 
 the other 1% can grow your infrastructure. And well, right now 
 that means developers can be very productive in that eco system 
 (e.g. TypeScript, Angular, React etc).
What would be better, a million JS programmers with 10k great ones who "grow your infrastructure," or 150k D programmers with 30k great ones doing the same? Holding everything else equivalent proportionally, I'd say the latter. Of course, a very important factor could be how willing the million is to pay for better tools, as that will lead to great tools programmers from less-popular languages to swarm into JS for the money, but given how much of the time all these dev tools are free, particularly for JS, that doesn't matter as much. Another huge factor is that you are fundamentally limited by the language, it doesn't matter how many great devs work on speeding up a fundamentally slow and inefficient language design, which a core team of great programmers wouldn't have put out there in the first place. :P
 More programmers don't have a bachelors in CS than those who 
 do.  I think you'll find the percentage who regularly use 
 multiple languages is fairly low, let alone evaluating each 
 one for each job.
I think it depends on what type of developement we are talking about. But I see a lot of fuzz about fullstack developers. Not sure if that fuzz translates into something at scale, but "full-stack" is at least something that is mentioned frequently.
It's a high percentage without CS bachelors in most subfields of programming. As for "full stack," a meaningless term which I bet actually has less CS bachelors than the percentage I gave. ;)
 Anyway, it is my impression that many C/C++ programmers also 
 know Python and also have a good understanding of basic 
 functional programming.
So two tools in the toolbox is enough?
Not sure what you mean by that. I meant to say that my impression is that most C/C++ programmers need a higher level language and also are capable of using other paradigms than what C/C++ encourages. Despite C++ being able to express a lot of the same things and also despite C++ being a language where you never really reach a full deep understanding of the language.
It's pretty simple what I mean: you were responding to my point that most don't really pick the best tool for the job, but have a single language that they try to hammer every nail with. Saying that most C++ programmers also use python implies that having two tools that you choose from is enough. In that case, you're basically agreeing with me, despite your previous statements otherwise, as I was saying we can't expect most programmers to learn more than one tool, ie a single language.
 Your company is much more likely to bring in somebody with 
 Java experience to write the Android portion.
Mostly because of the iOS/Android frameworks, not really because of the languages.
That's why I included such knowledge of the needed frameworks in knowing a language platform earlier, as realistically it can be as important to getting the job done.
 Or rather, the Java language shouldn't be the stumbling block, 
 but both of iOS and Android are rather bloated frameworks that 
 takes time getting into. Which I think it is intentional. Both 
 Apple and Google want developers to be dedicated experts on 
 their platform and seems to deliberately go for changes that 
 prevent cross platform tooling.
Could be, but that changes nothing about the reality that most programmers are just going to pick one language and some set of frameworks that are commonly used with it.
 It is unrealistic to expect the vast majority of programmers 
 to do any more than use one language most of the time.
I don't know. Depends on what kind of development we are talking about.
That is the current reality, it doesn't matter what hypothetical kind of development you have in mind.
 This actually argues for a single language: you're going to 
 spend a ton of time tracking all those shifting frameworks so 
 you won't have time for a new language too, but at least you 
 won't have to learn a new language every time you pick up the 
 new js framework of the day.
I think there is another way, but it isn't available yet. Program transliteration and software synthesis should over time be able to offset some of these issues. Most imperative languages are fairly similar. Most of the code we write, whether it is in Python, C+ or D would have a fairly similar structure. In some sections you get something very different, but I don't think that is dominating.
Yes, that is part of the plan with betterC, to make it easy to translate C code to D.
 The ongoing churn may help new languages with new users and 
 companies, don't think it helps with users who already know a 
 language well.
I don't know. Seems that many in these forums have done work in Java, Go, Python, Rust and C++.
D users are the exception that prove the rule, the much larger majority not using D because they're already entrenched in their language. That's because, unlike Go, D offers many more features than other languages, so it particularly appeals to such advanced users from other languages.
 Seems like an oxymoron, tech changes so fast that I don't see 
 how anything could be timeless, even if you really mean "will 
 still be the same 20 years from now." ;)
Right, but digital computing is a relatively new invention (and well, even electricity is relatively new ;-). Over time one would think that something "timeless" would establish itself. But for now we can just say "stable". There clearly are some frameworks that have been relatively stable. Like matlab. I think that is because matlab has tried to closely model the domain that scientists have been trained in (linear algebra). But it is interesting that Python is making inroads there. That matlab is now perceived as not having good enough abstraction mechanisms, perhaps. On the other hand, the mathematical field of logic is also relatively new as it is conceptualized today, and some people are exploring paradigms such as probabilistic programming languages and what not… So right, "timeless" is not realistic at the moment as the basic foundation is still quite new and we are still learning how to make computers reason about first order logic… (building automatic theorem provers).
I don't think such stability will ever happen, because unlike electricity distribution or other older tech, software is infinitely malleable. We're always going to keep stretching and twisting it in new ways, as we get more used to its plasticity. We will do a better job of securing and developing it, but we're always going to keep changing it.
 There's always new stuff other than that, eg more limited 
 mobile hardware over the last decade has returned the tech 
 market to earlier times, and native languages like Obj-C and 
 Swift have benefited.
Yeah, as you have pointed out many times, mobile CPUs are quickly catching up at the high end and also to some extent on the middle-end. What remains to be seen is how the mass-market low end picks up. I think companies like Motorola is pushing the curve at the low/middle phone market as Samsung and Apple have taken the high end.
Sure, so you _could_ now run python on those newly powerful mobile CPUs, but Objective-C and Swift have used that decade when you _couldn't_ to entrench themselves in that market. And as I've pointed out to you before, they're still much more efficient, so until battery tech get much better, you're going to want to stick with those natively-compiled languages.
 Python has done well in those niches, but when is the last 
 time you saw a popular GUI app written in Python?
Many applications use Python (or Lua or Java or even Visual Basic) to tie the pieces together, including the GUI, but they use engines written in other languages for interfacing with the OS.
Which of those python-glued GUI apps has become popular? That was the question: I can find toy apps in any language, that nobody uses.
 Even Java got nowhere in the consumer GUI market, other than a 
 few p2p apps like Vuze and the now-defunct Limewire, largely 
 for piracy.
JetBrain's products?
I wouldn't call developer tools consumer apps, as they're used by developers to do their job, so that doesn't really qualify. I should also note that I meant consumer desktop GUI apps, as obviously Java does well on mobile, when it was made the default application language for Android, though they've paid the price for its inefficiency and lag and had to AoT-compile it starting with Lollipop.
 While that market may be important to you, it is a small 
 segment of the programming market.  It's nice that D libraries 
 like Mir are targeting it, but it's not going to move the 
 needle much.
Mmm… it is a small segment of the revenue-based market, because scientific programmers are often the scientists themselves (no it is not important to me at the moment). It is a fairly large segment though of the overall market. As it includes a lot of engineering. Just because those programs aren't sold, either because they are in-house, personal or with a very narrow user base (like researchers) doesn't mean that these programs are less important.
I don't think it's a large percentage of programmers or programs either, leaving aside revenue. It used to be a significant chunk decades ago, but I believe it has dwindled to a small percentage as computing has spread everywhere else.
 You may not even know that's because of generic programming, 
 you just like all the great libraries.  IOW, you may think you 
 don't need generic programming, but the libraries you do need 
 do need it.
That's right, but you need critical mass for it to matter.
I've given you an estimate of D users, you haven't said why that hasn't passed your critical mass threshold.
 Otherwise people will just use somewhat slower or somewhat more 
 clunky libraries.  Go, Python and JavaScript are doing fine… 
 without proper generics.
As I noted in an earlier thread in this forum, I can build a bike in a couple hours and get going faster out of the gate up to a top speed of 30 km/h. However, the guy building his own car will take longer but eventually zoom by me at 150 km/h. Those languages got farther earlier, but that's no guarantee they win the race. On Thursday, 4 January 2018 at 07:51:56 UTC, Paulo Pinto wrote:
 On Wednesday, 3 January 2018 at 16:20:48 UTC, Joakim wrote:
 On Wednesday, 3 January 2018 at 11:43:35 UTC, Paulo Pinto 
 wrote:
 On Wednesday, 3 January 2018 at 11:13:04 UTC, Joakim wrote:
 On Wednesday, 3 January 2018 at 10:29:05 UTC, Ola Fosheim 
 Grøstad wrote:
 On Wednesday, 3 January 2018 at 09:56:48 UTC, Pjotr Prins 
 wrote:
 [...]
 Good programmers aren't stuck on any single language and 
 will pick the tool best suited for the job at hand.  Good 
 programmers are also good at picking up new languages.
And who do you know who does this? While I myself have espoused the idea of the best tool for the job in this forum, realistically, other than a small handful of coders, when does that ever happen? [...]
Everyone at my employer, a few thousand of them doing enterprise consulting. We specialize in a few large domains, and tend to jump between them every 6 months or a year, when switching projects. On my case, full stack development across JVM and .NET languages, with C++ for low level coding.
How many of those few thousand are actually comfortable with C++ for low-level coding? I think you've said before that it's not many. So okay, your colleagues switch between Java and C#, which is somewhat uncommon as many places are pure C# or Java shops, but those are the two most popular enterprise application languages, noted for their similarities. You can hardly use this as an example of having a toolbox of languages and picking the best for the job, say Erlang for some high-concurrency microservice or ruby for an app you need to get up and running quickly. You're just using two of the most popular business languages and deciding which based on what the customer wants.
Not all of them of them are comfortable with C++, that is true. But they are comfortable with other languages, which I am not. Notice that "JVM and .NET languages, with C++ for low level coding." was my own skillset, not everyone at the company. Also I said JVM and .NET languages, not Java and C#. If you want me to be more precise, Java, Clojure, C#, F#, VB.NET and now getting into Kotlin due to future Android projects. I also do JavaScript, PL/SQL, pgSQL on occasion, and have helped some iOS projects when an extra helping hand is needed and I am low on project requests. I never like to specialize in any technology stack, it is the best way to outdate myself on a market that is fashion driven.
I suspect you are one of the small handful I mentioned, even in your company, who's comfortable with so many languages.
 Of course there are lots of details I don't master in every 
 programming language, but as Wirth puts it, it is all about 
 mastering CS concepts, algorithms and data structures. Also why 
 Knuth used his own invented Assembly instead of choosing any 
 programming language.

 To actually know every detail of programming language, or what 
 its runtime library is capable of, there are books and web 
 sites to get it from.

 Soft skills and domain knowledge in each market are more 
 relevant than knowing every single detail of a programming 
 language.
I suspect that is what most at even your company do: focus on a single language, much more of its details, and all those non-CS skills you say are more important. Which is fine, that has been the natural order of things, a few generalists like you interacting with a bunch of specialists. On Thursday, 4 January 2018 at 13:07:37 UTC, Mengu wrote:
 On Wednesday, 3 January 2018 at 16:20:48 UTC, Joakim wrote:
 On Wednesday, 3 January 2018 at 11:43:35 UTC, Paulo Pinto 
 wrote:
 On Wednesday, 3 January 2018 at 11:13:04 UTC, Joakim wrote:
 On Wednesday, 3 January 2018 at 10:29:05 UTC, Ola Fosheim 
 Grøstad wrote:
 On Wednesday, 3 January 2018 at 09:56:48 UTC, Pjotr Prins 
 wrote:
 [...]
I perceived that there was a lot of hype around Python 15 years ago or so. Now, universities are replacing Java with Python as the introduction language and Python is also becoming the defacto language for scientific programming. Python is basically getting critical mass and is now managing to take on Matlab and perhaps to some extent even C++/Fortran.
Python has done well in those niches, but when is the last time you saw a popular GUI app written in Python? That is the largest segment of the market, and Python has basically no uptake there. Even Java got nowhere in the consumer GUI market, other than a few p2p apps like Vuze and the now-defunct Limewire, largely for piracy.
you could not be more wrong. there are tons of python gui applications. pygtk, pyqt and wxpython are great libraries that allows you to create desktop apps very easy and fast. D does not even have a good solution except for gtkD which is a one man show. if it wasn't for Mike we would not even have it. leadership does not care. remember qtd guys stopping everything because a bug was not getting fixed?
Maybe I am, but you have not named a popular python GUI app like I asked, only some GUI frameworks that could be used to build such an app. I wasn't saying that you couldn't write a python GUI app, but that it's probably not the best tool for the job.
 there's also one other thing: atom, vs code, spotify, slack are 
 all running on electron. does it make it a better platform than 
 python?
No, because it's still a bad framework, as posts like this show: https://medium.com/ caspervonb/why-i-still-use-vim-67afd76b4db6 But at least they can show some real-world successes for app usage, even if they perform poorly because of the fundamental limitations of the language. I don't think python has even gotten that far.
Jan 05
parent Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= <ola.fosheim.grostad gmail.com> writes:
On Friday, 5 January 2018 at 11:49:44 UTC, Joakim wrote:
 Yes, but when I pointed out that it's fine to think you're the 
 best as long as you stay focused on bettering the flaws you 
 still have,
I don't think that thinking you're the best brings anything but disadvantages, actually… Except when you are advertising perhaps.
 What would be better, a million JS programmers with 10k great 
 ones who "grow your infrastructure," or 150k D programmers with 
 30k great ones doing the same?  Holding everything else 
 equivalent proportionally, I'd say the latter.
Well, that is not the scale we are talking about here, but actually the former is the better if it means that you get twice as many that are paid to grow the eco system full time. If you compare JavaScript with D on that metric you are closer to a 1000:1 ratio or more in JavaScript's favour… Not a fair comparison, but that's the reality that drives adoption. When you reach critical mass within a specific domain a lot more people will be doing full-time eco system development… (Facebook, Google, Microsoft + a very large number of smaller companies). The browser domain is very large, so not a fair comparison, of course.
 speeding up a fundamentally slow and inefficient language 
 design, which a core team of great programmers wouldn't have 
 put out there in the first place. :P
Doesn't really matter in most cases. The proper metric is "sufficient for that task at hand". So, if many people are paid to do full-time eco system development that also means that the tool is sufficient for a large number of use cases… You can do the same in browsers as people do with Python. Use something else for those parts where speed is paramount: stream from a server, use WebGL or WebAssembly, or use the browser engine cleverly. For instance I've implemented instant text search using CSS for even IE9, the browser engines were tuned for it, so it was fast. People use the same kind of thinking with C++/D/Rust as well, i.e use the GPU when the CPU is too slow, or use a cluster, or use a database lookup… Bother computer hardware and the very capable internet connections people have (at least in the west) are changing the equations. It is easier to think about a single entity like a programming language with a small set of isolated great programmers writing an application that will run on an isolated CPU, but the world is much more complicated now than it used to be in terms of options and the environment for computing.
 of programming.  As for "full stack," a meaningless term which 
 I bet actually has less CS bachelors than the percentage I 
 gave. ;)
I understand "full stack" to mean that you can quickly adapt to doing database, server, client and GUI development.
 Saying that most C++ programmers also use python implies that 
 having two tools that you choose from is enough.  In that case, 
 you're basically agreeing with me, despite your previous 
 statements otherwise, as I was saying we can't expect most 
 programmers to learn more than one tool, ie a single language.
No. The programming style for Python is very different from C++. Just because many C++ programmers also know Python, doesn't mean that they don't benefit from also knowing other languages. I bet many also know JavaScript and basic Lisp.
 Could be, but that changes nothing about the reality that most 
 programmers are just going to pick one language and some set of 
 frameworks that are commonly used with it.
Ok. I personally don't find the standard libraries for Java and C# difficult to pick up as I go. Google gives very good hits on those. Application frameworks are more tedious, but they are also more quickly outdated. So you might have to learn or relearn one for a new project anyway.
 That is the current reality, it doesn't matter what 
 hypothetical kind of development you have in mind.
That's not an argument… That is just a unfounded claim.
 D users are the exception that prove the rule, the much larger 
 majority not using D because they're already entrenched in 
 their language.
I don't really think D users are as exceptional as they often claim in these forums…
 when you _couldn't_ to entrench themselves in that market.  And 
 as I've pointed out to you before, they're still much more 
 efficient, so until battery tech get much better, you're going 
 to want to stick with those natively-compiled languages.
Not convinced. I think most people on smartphones spend a lot of time accessing browser-driven displays. Either in the actual browser or as a widget in an app… It doesn't really matter, because the dominating activity isn't doing heavy things like theorem proving or data-mining… As long as the code for display rendering is efficient, but that is mostly GPU.
 Which of those python-glued GUI apps has become popular?  That 
 was the question: I can find toy apps in any language, that 
 nobody uses.
That's not right. Scripting is commonly used for the high level layer in productivity applications.
 I've given you an estimate of D users, you haven't said why 
 that hasn't passed your critical mass threshold.
What estimate? Based on what? Using what method? Does it hold up on Github? If not, what is the explanation?
Jan 05
prev sibling next sibling parent Paulo Pinto <pjmlp progtools.org> writes:
On Wednesday, 3 January 2018 at 16:20:48 UTC, Joakim wrote:
 On Wednesday, 3 January 2018 at 11:43:35 UTC, Paulo Pinto wrote:
 On Wednesday, 3 January 2018 at 11:13:04 UTC, Joakim wrote:
 On Wednesday, 3 January 2018 at 10:29:05 UTC, Ola Fosheim 
 Grøstad wrote:
 On Wednesday, 3 January 2018 at 09:56:48 UTC, Pjotr Prins 
 wrote:
 [...]
 Good programmers aren't stuck on any single language and 
 will pick the tool best suited for the job at hand.  Good 
 programmers are also good at picking up new languages.
And who do you know who does this? While I myself have espoused the idea of the best tool for the job in this forum, realistically, other than a small handful of coders, when does that ever happen? [...]
Everyone at my employer, a few thousand of them doing enterprise consulting. We specialize in a few large domains, and tend to jump between them every 6 months or a year, when switching projects. On my case, full stack development across JVM and .NET languages, with C++ for low level coding.
How many of those few thousand are actually comfortable with C++ for low-level coding? I think you've said before that it's not many. So okay, your colleagues switch between Java and C#, which is somewhat uncommon as many places are pure C# or Java shops, but those are the two most popular enterprise application languages, noted for their similarities. You can hardly use this as an example of having a toolbox of languages and picking the best for the job, say Erlang for some high-concurrency microservice or ruby for an app you need to get up and running quickly. You're just using two of the most popular business languages and deciding which based on what the customer wants.
Not all of them of them are comfortable with C++, that is true. But they are comfortable with other languages, which I am not. Notice that "JVM and .NET languages, with C++ for low level coding." was my own skillset, not everyone at the company. Also I said JVM and .NET languages, not Java and C#. If you want me to be more precise, Java, Clojure, C#, F#, VB.NET and now getting into Kotlin due to future Android projects. I also do JavaScript, PL/SQL, pgSQL on occasion, and have helped some iOS projects when an extra helping hand is needed and I am low on project requests. I never like to specialize in any technology stack, it is the best way to outdate myself on a market that is fashion driven. Of course there are lots of details I don't master in every programming language, but as Wirth puts it, it is all about mastering CS concepts, algorithms and data structures. Also why Knuth used his own invented Assembly instead of choosing any programming language. To actually know every detail of programming language, or what its runtime library is capable of, there are books and web sites to get it from. Soft skills and domain knowledge in each market are more relevant than knowing every single detail of a programming language.
Jan 03
prev sibling parent reply Mengu <mengukagan gmail.com> writes:
On Wednesday, 3 January 2018 at 16:20:48 UTC, Joakim wrote:
 On Wednesday, 3 January 2018 at 11:43:35 UTC, Paulo Pinto wrote:
 On Wednesday, 3 January 2018 at 11:13:04 UTC, Joakim wrote:
 On Wednesday, 3 January 2018 at 10:29:05 UTC, Ola Fosheim 
 Grøstad wrote:
 On Wednesday, 3 January 2018 at 09:56:48 UTC, Pjotr Prins 
 wrote:
 [...]
I perceived that there was a lot of hype around Python 15 years ago or so. Now, universities are replacing Java with Python as the introduction language and Python is also becoming the defacto language for scientific programming. Python is basically getting critical mass and is now managing to take on Matlab and perhaps to some extent even C++/Fortran.
Python has done well in those niches, but when is the last time you saw a popular GUI app written in Python? That is the largest segment of the market, and Python has basically no uptake there. Even Java got nowhere in the consumer GUI market, other than a few p2p apps like Vuze and the now-defunct Limewire, largely for piracy.
you could not be more wrong. there are tons of python gui applications. pygtk, pyqt and wxpython are great libraries that allows you to create desktop apps very easy and fast. D does not even have a good solution except for gtkD which is a one man show. if it wasn't for Mike we would not even have it. leadership does not care. remember qtd guys stopping everything because a bug was not getting fixed? there's also one other thing: atom, vs code, spotify, slack are all running on electron. does it make it a better platform than python?
Jan 04
parent Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= <ola.fosheim.grostad gmail.com> writes:
On Thursday, 4 January 2018 at 13:07:37 UTC, Mengu wrote:
 there's also one other thing: atom, vs code, spotify, slack are 
 all running on electron. does it make it a better platform than 
 python?
I found this example of using electron with Python: https://github.com/keybraker/electron-GUI-for-python Could probably use the same model for any language.
Jan 04
prev sibling parent Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= <ola.fosheim.grostad gmail.com> writes:
On Wednesday, 3 January 2018 at 11:13:04 UTC, Joakim wrote:
 Not necessarily, it all depends if thinking you're the best 
 leads to taking your eye off the ball of improving and 
 acknowledging your problems, which I see little indication of 
 here.
Well, if a language is used for a narrow set of application areas then one might be able to have a deep understanding of what the challenges are. In general I think it is difficult to understand what challenges people have in areas one have little familiarity with. I've seen this time and time again in discussions about memory management. I think both Rust and D suffers a bit from this. And likewise, I think C++ designers are making a mistake by presuming that C++ can become a competitive high level language. So it is a general challenge in language design, I think.
 Agreed with much of this: they may be better at various things, 
 but those things don't matter much of the time.
Yes, I don't think any programmers are "best", some people are not at all suited for programming or lack some general knowledge, but otherwise I think we only have good programmers that are "best" in some very narrow domains.
 And who do you know who does this?  While I myself have 
 espoused the idea of the best tool for the job in this forum, 
 realistically, other than a small handful of coders, when does 
 that ever happen?
I don't know how many… But if you have a good understanding of a language like Java and C/machine language, and also have the equivalent of a bachelor in comp sci, then I think you should be able to pick up just about any language in relatively short time (except C++ where the know-how is less accessible for various reasons). Anyway, it is my impression that many C/C++ programmers also know Python and also have a good understanding of basic functional programming.
 I recently read some article linked off proggit that stated the 
 reality much better: programmers learn a language that suits 
 them, then use it everywhere they can.
Well. Take an iOS programmer. She/he would start out with Objective-C, which requires understanding of C. Then maybe you also need to interface with C++ in order to use some library. Then you switch over to Swift… Then you need to port the app to Android and have to pick up some Java. Then somebody want to turn it into a webapp and you pick up TypeScript… Then someone needs interfacing with C# for a web-service and you pick up a bit of that… As long as you are interfacing with other systems you often achieve more by learning enough to use something written in another language than by picking a suboptimal solution that use your favourite language. But sure, if I need to hack together something I would usually think about using Python first, mostly because it is so mallable for smaller tasks. Not really because it is my preferred language. I don't really like dynamic typing in principle, but it is productive for smaller tasks and prototyping.
 Given how much effort it takes to know a language platform 
 well, not only the language itself but all the libraries and 
 their bottlenecks, and most programmers' limited motivation to 
 pick up new tech, that is the only approach that makes sense 
 for the vast majority.
Well, but libraries and frameworks are unfortunately not permanent. They are shifting relatively fast. Heck, even the Java standard library contains many things that you don't want to use, because there is something better in there. So if you start on a new project there is often a more productive framework you could go with. And that might require adopting a new language as well. This is of course good for new languages. If this was not the case then it would be near impossible for new languages to establish themselves. But it can also be taken as a sign that we don't have the languages and tooling that enable writing really good timeless libraries and frameworks. Maybe that will change in the future, I guess we now are reaching a point where neither CPU or memory are the limiting factor for most mundane applications. So maybe that will cause a more stable infrastructure to emerge… but probably not in our lifetime. I think we still have a long way to go in even simple areas such as GUI frameworks.
 Yes, but if you're only hyped because you were stowed away on a 
 popular platform, ie javascript in the browser, or are easy to 
 learn, Go from what I hear, then the technical limitations of 
 the language put a ceiling on how high you can go.  You'll get 
 to that ceiling faster, but then you're stuck there.
I perceived that there was a lot of hype around Python 15 years ago or so. Now, universities are replacing Java with Python as the introduction language and Python is also becoming the defacto language for scientific programming. Python is basically getting critical mass and is now managing to take on Matlab and perhaps to some extent even C++/Fortran. There is a loooong road for languages like Rust, D and Julia… All those scientific simulation frameworks creates are rather heavy critical mass. That is very difficult to move around (Matlab was for a long time dominant).
 The only time where it is an advantage to be small is when 
 your language design is changing. Once the language design is 
 stable there is only disadvantages in not having critical mass.
And since when has the D language design been stable? ;)
Good point… Critical mass might be more damaging that good.
 And who's to say D doesn't have critical mass?  I'd say 
 100-200k users (my math based on the chart below: 2k 
 downloads/day of dmd X 60 days between major versions + ldc/gdc 
 and external downloads) is a significant market:

 http://erdani.com/d/downloads.daily.png
I don't know what to make out of the download metric. It would be easier to grasp if it was broken down into regional downloads and if it isn't already, filtered by unique IPs.
 It's not hyped or popular, but you can leverage that base to 
 get bigger, particularly since you didn't sell out and 
 specialize to get that base in the first place.
Well, but nobody picks a language because it is a good language for building libraries. They might avoid a language if it is bad at that, but for a single application you often don't need generic programming. When focusing on a niche you have an easier sell for the specifics of a project. Being a bit better than Rust at this, Go and that and C++ an this and that, isn't given as much weight as "hands down most productive solution for Y". And being the most productive goes beyond language and even libraries, it also includes knowhow and online tutorials for that narrow area.
Jan 03
prev sibling parent reply Pjotr Prins <pjotr.public12 thebird.nl> writes:
On Wednesday, 3 January 2018 at 10:29:05 UTC, Ola Fosheim Grøstad 
wrote:
 On Wednesday, 3 January 2018 at 09:56:48 UTC, Pjotr Prins wrote:
 average ones. And D must be there. Similar to the Haskell and 
 Lisp communities we have the luxury of dealing with the best 
 programmers out there.
This attitude is toxic, and it isn't true either.
We differ in opinion here.
 Good programmers aren't stuck on any single language and will 
 pick the tool best suited for the job at hand.  Good 
 programmers are also good at picking up new languages.
Very true. Some languages are harder to learn and apply then others. Few C++ programmers make great Lisp or Haskell programmers.
 Hype leads to critical mass, which leads to higher productivity 
 because you get better tooling, better documentation (including 
 stack overflow), better libraries and better portability.
I don't disagree. I am reacting to other messages where people assert that we need to improve this and that for the sake of popularity. Maybe it is toxic not to care too much about what other people want/need and perhaps I am wrong. But I don't think D will become a hyped language, so we may as well stop wanting to be one. D is a language for software engineers - and they come if they need it. I remember a Google engineer telling me that he was tired of people bringing up D every time. That was 10 years ago. D has had every chance to become a hype ;) Erlang has been a non-hype language for a long time. Now the success of whatsapp made it a lot more interesting to startups and therefore it is growing. Even so, I don't think it will ever become a hype. If you program in Erlang you can appreciate why. What is it that makes a hyped language? That should not stop us from answering questions and writing docs. I just disagree with the aim of trying to make D a hyped language.
 The only time where it is an advantage to be small is when your 
 language design is changing. Once the language design is stable 
 there is only disadvantages in not having critical mass.
A language like GNU Guile has only a few developers - and they do great work. D and its community are not small in my book. Large enough not to be endangered and still keep moving forward. Hard but soft. About right.
Jan 03
parent reply Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= <ola.fosheim.grostad gmail.com> writes:
On Wednesday, 3 January 2018 at 12:15:13 UTC, Pjotr Prins wrote:
 they come if they need it. I remember a Google engineer telling 
 me that he was tired of people bringing up D every time. That 
 was 10 years ago. D has had every chance to become a hype ;)
There was a lot of hype around D about 10 years ago, because of slashdot? (slashdot doesn't seem to work as a hub in that way anymore?) Geeky people had even heard about it in job interviews… But the compiler was a bit too buggy for production use and the GC was… a problem for what it was position itself as: a replacement for C++. There are other languages that also position themselves as C++ replacements, such as http://loci-lang.org/ , but very few have heard of those. So yeah D has enjoyed more hype than most languages in this domain, actually.
 why. What is it that makes a hyped language?
Well, depends on the hype, I guess. But you probably need some kind of "prophetic" message that will "remove all pain". Since C++98 was not painless, there was a market for a "prophetic message". Much less so now. Also you need a "tower for announcing" like Slashdot. I don't think reddit is anywhere near as effective as Slashdot used to be. Too fragmented. Rust received hype because it would make writing fast programs "painless", just wait, it isn't quite ready yet, but we'll get there. So they hype prophecies were there before Rust was actually useful. I don't think Go was all that hyped up. It received a lot of attention at first release, but was underwhelming in terms of features. But it received a lot of attention when being used for containers, I believe. So more a niche utility marketing effect in terms of buzz. So hype seems to come with a language being used for some new way of doing something (even though the language might not be significant in that regard, e.g. Go). Or the hype seems to come before the product is actually useful, not quite like a pyramid scheme, but close… Oh yeah, bitcoin too. Prophetic, but not particularly useful… yet, but just wait and see. So I guess hype comes from: 1. People having an emotional desire to be free from something. 2. A tech delivering some kind of prophetic message one can imagine will provide some kind of catharsis if one just believe in the outcome. Then you have this all the psychological effect that if people have invested significant time, resources and/or emotion into something then they will defend it and refuse to see flaws even when faced with massive evidence against it. So the hype will be sustained by a vocal set of believers if you have reached a large enough audience with your messaging before the product is launched…? Then it tapers off in a long tail… or the believers will make it work somehow, at least good enough to not be a lot worse than the alternatives.
 docs. I just disagree with the aim of trying to make D a hyped 
 language.
Yes, that is a bit late, I think. You would have to launch D3 or something to get a hype effect (at least in the west).
 A language like GNU Guile has only a few developers - and they 
 do great work.
But is Guile used much outside GNU affiliated projects?
Jan 03
parent reply Pjotr Prins <pjotr.public12 thebird.nl> writes:
On Wednesday, 3 January 2018 at 18:36:29 UTC, Ola Fosheim Grøstad 
wrote:
 Then you have this all the psychological effect that if people 
 have invested significant time, resources and/or emotion into 
 something then they will defend it and refuse to see flaws even 
 when faced with massive evidence against it. So the hype will 
 be sustained by a vocal set of believers if you have reached  a 
 large enough audience with your messaging before the product is 
 launched…?
Aye.
 Then it tapers off in a long tail… or the believers will make 
 it work somehow, at least good enough to not be a lot worse 
 than the alternatives.
I am thinking of Python here. I have to work in Python and there is no love lost. Regarding hype. I think it is fairly easy to create a new language these days - thanks to LLVM and JVM targets. New languages pop up every other week it appears. Getting it right, however, takes a lot of time. D proves how much it takes to create a great (complex) language and deal with most corner cases. Writing a performing compiler (run time and compile time) is no mean feat.
 docs. I just disagree with the aim of trying to make D a hyped 
 language.
Yes, that is a bit late, I think. You would have to launch D3 or something to get a hype effect (at least in the west).
I think D is too powerful/complicated to become a target for millions. The irony does not escape me, with many C++/JVM programmers out there, that D is a great replacement for C++ and many JVM languages. I did a stretch of Scala and I think D is the superior language, even if it misses out on some nifty Scala features. But that does not mean people will take to D in droves. Scala is bigger. Anyway, my opinions do not matter that much. Suffice to say I enjoy D and I think it is perfect for our large data processing projects.
 A language like GNU Guile has only a few developers - and they 
 do great work.
But is Guile used much outside GNU affiliated projects?
No. Not that I am aware. Still, it is an amazing effort by a small group of people. I am partial to organizing a Guile/Guix day. Feel free to join in! https://libreplanet.org/wiki/Group:Guix/FOSDEM2018. Pj.
Jan 03
parent Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= <ola.fosheim.grostad gmail.com> writes:
On Wednesday, 3 January 2018 at 20:11:03 UTC, Pjotr Prins wrote:
 I am thinking of Python here. I have to work in Python and 
 there is no love lost.
If I write conservative Python code then I think PyCharm community edition is getting me closer to static typing, but providing type info as comments when deduction fails is quirky.
 small group of people. I am partial to organizing a Guile/Guix 
 day. Feel free to join in! 
 https://libreplanet.org/wiki/Group:Guix/FOSDEM2018.
Sounds like a fun event! (but I am nowhere near Belgium at that point in time).
Jan 04
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 2017
prev sibling next 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 2017
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 2017
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 2017
prev sibling next sibling parent Fra Mecca <me francescomecca.eu> 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 am a student that also does research at different institutions (maninly Italy and US). I use D for everything that is programming related and when I am not paired on a team. Mainly it has been backend stuff and D has been up to the challenge. My setup is neovim + deoplete (and other dev related plugins) I also use D for sideprojects (https://github.com/framecca)
Jan 03
prev sibling next sibling parent Binghoo Dang <dangbinghoo gmail.com> writes:
On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:
 How do you use D?
I use D for developing an RFID tracker tool, to track some tools for security purpose. It's basically a GUI application with RFID reader module using serial-port read/write. for the GUI, I use GtkD, for Database operation, I use entity. and It will have a web service implemented using vibe.d
 Did you introduce D to your work place? How? What challenges 
 did you face?
No, I used to introduce things I consider great or wonderful to others. But now, I would not introduce anything to others. Suitable tool for suitable jobs, and people have their own tastes.
 What is you D setup at work, which compiler, which IDE?
I'm using D via VSCode + code-d plugin, and for compiler, I use dmd on linux, and ldc2 on windows. Both of them works great for my GTK GUI. The VScode+Code-d sometime seems too slow or did not correctly detect a compilation process. But it's enough for me, I got autocomplete works great.
Jan 03
prev sibling next sibling parent codephantom <me noyb.com> writes:
On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:
 How do you use D?
Every programming language has an effect on how programmers think. I use D to explore different ways of thinking.
 Did you introduce D to your work place? How? What challenges 
 did you face?
My work place is my home ;-) I introduce whatever I want, whenever I want, however I want.
 What is you D setup at work, which compiler, which IDE?
I prefer as little bells and whistles as possible. I like seeing just the code. So plain text editors, and commandline.
 And any other fun facts you may want to share :)
Voyager 2 was launched by NASA in 1977. Sometime after 2025 it will not have enough electricity to power its instruments. Another 14,000..28,000 years after this, it will emerge from the Oort cloud that surrounds our solar system. https://solarsystem.nasa.gov/planets/oort
Jan 03
prev sibling parent reply Andre Pany <andre s-e-a-p.de> 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 am working for a german software company. There are various programming languages used. I created several non customer facing tools in D for the projects I am involved. Also I tried to make advertisements for the D Programming Language by creating internal wiki pages, recordings, video channel with screencams and telling everyone about that nice programming language called D. To be able to write customer facing software in D I have to integrate the D programming language into the existing build landscape (Jenkins/XMake). It was possible to integrate D but there are rough edges. Before I start I want to say a big thank you to Sönke and everyone involved in the Dub project. Without Dub, the usage of D would not be possible at all! 1) There is a deprecated "version" attribute in dub.json. Dub now forces you to specify the application version using git tags. As the build landscape itself creates git tags which aren't Semver compatible, the deprecation of the "version" attribute is a great pain for me. I solved the problem by "inventing" an own way to specify a version (version.txt file), which is a bad solution. https://github.com/dlang/dub/issues/1301 2) During the official build no connection to the internet is allowed (e.g. code.dlang.org). For the moment I have no possibility to run an inhouse dub repository. This forces me to include source code of the dub packages I want to use, in my applications. The company is running a big Maven repository in which I could store the dub packages as zip files and which has http access to these artefacts. I would like to specify in my dub.json the url address to the zip file stored in the maven repository. https://github.com/dlang/dub/issues/1134 3) It is not possible to run DMD with the microsoft linker and libs without adapting the sc.ini. That is a pain! In the build infrastructure I can only use the dmd zip archive and not the setup routine. Also the adapation of the sc.ini I need to automate in a python script (XMake build plugin). Python does not like the sc.ini... due to duplicate keys... Just compare with LDC windows 64. You only have to extract the zip archive, call vcvarsall batch file which sets the environment variables and thats it! https://issues.dlang.org/show_bug.cgi?id=17967 4) Every open source software I want to use, needs to go through an open source process before I can use it in customer facing software. Dub has a very annoying behavior. If I want to use a package A and it has an optional dependency to be package B, Dub fails if B is not available. That leads to the issue that even I do not want to use B, I need to go through the open source process for B due to the behavior of Dub. I had this issue with the unit test frame work D-Unit. Fortunatelly the developer of D-Unit was kind and removed the optional dependency completely! https://github.com/dlang/dub/issues/1272 I have also to say a big thank you to Adam D. Ruppe. He has created a great library with very helpful functionality like database access, http server, terminal, ... and he is a very helpful and kind person. My hobby project is to create a bridge between the Embarcadero RAD Studion (Delphi) and D. The idea is to use all functionality from Delphi and RAD Studio (GUI designer, thousands of libraries) without writing one 1 line Pascal but write everything in D. At the moment I have already a windows demo application running, but I hope I can extend it to MacOS/Android/IPhone... https://github.com/andre2007/delta-core-10-2-1 The package you see on github is written by hand. At the moment I am writing a Pascal Parser to have everything generated by the Pascal Source files (VCL/Firemonkey/Indy/...) automatically. Kind regards André
Jan 04
next sibling parent reply Laeeth Isharc <laeeth laeeth.com> writes:
On Thursday, 4 January 2018 at 15:52:15 UTC, Andre Pany wrote:
 On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:
 [...]
I am working for a german software company. There are various programming languages used. I created several non customer facing tools in D for the projects I am involved. Also I tried to make advertisements for the D Programming Language by creating internal wiki pages, recordings, video channel with screencams and telling everyone about that nice programming language called D. [...]
Very interesting. Have a look at pegged and the work done by Bastian who has also been building a pascal parser - for a different dialect.
Jan 04
parent Andre Pany <andre s-e-a-p.de> writes:
On Friday, 5 January 2018 at 00:38:05 UTC, Laeeth Isharc wrote:
 On Thursday, 4 January 2018 at 15:52:15 UTC, Andre Pany wrote:
 On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:
 [...]
I am working for a german software company. There are various programming languages used. I created several non customer facing tools in D for the projects I am involved. Also I tried to make advertisements for the D Programming Language by creating internal wiki pages, recordings, video channel with screencams and telling everyone about that nice programming language called D. [...]
Very interesting. Have a look at pegged and the work done by Bastian who has also been building a pascal parser - for a different dialect.
Thanks for the info, I try to make my parser easiliy replacable by a better solution like pegged. For the moment I try to get the generator working and cleanup things later. I will also have a look at the work of Bastian. Kind regards André
Jan 06
prev sibling next sibling parent Andre Pany <andre s-e-a-p.de> writes:
On Thursday, 4 January 2018 at 15:52:15 UTC, Andre Pany wrote:
 On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:

 3) It is not possible to run DMD with the microsoft linker and 
 libs without adapting the sc.ini.
 That is a pain! In the build infrastructure I can only use the 
 dmd zip archive and not
 the setup routine. Also the adapation of the sc.ini I need to 
 automate in a python script (XMake build plugin).
 Python does not like the sc.ini... due to duplicate keys...

 Just compare with LDC windows 64. You only have to extract the 
 zip archive, call vcvarsall batch
 file which sets the environment variables and thats it!
 https://issues.dlang.org/show_bug.cgi?id=17967
It seems with the recent version of DMD (2.078.0) there is new feature which solves this problem (https://dlang.org/changelog/2.078.0.html#vs-auto-detection) That's fantastic! Thanks a lot! I will try it and then close the issue. Also the new options for customizing the code coverage seems like you heard my wishes within my mind;) Great work! Kind regards André
Jan 06
prev sibling parent Bastiaan Veelo <Bastiaan Veelo.net> writes:
On Thursday, 4 January 2018 at 15:52:15 UTC, Andre Pany wrote:
 My hobby project is to create a bridge between the Embarcadero 
 RAD Studion (Delphi) and D.
 The idea is to use all functionality from Delphi and RAD Studio 
 (GUI designer, thousands of libraries) without writing one 1 
 line Pascal but write everything in D. At the moment I have 
 already a windows demo application running, but I hope I can 
 extend it to MacOS/Android/IPhone...
 https://github.com/andre2007/delta-core-10-2-1
 The package you see on github is written by hand. At the moment 
 I am writing a Pascal Parser to
 have everything generated by the Pascal Source files 
 (VCL/Firemonkey/Indy/...) automatically.
Interesting indeed. I am working on putting my transcompiler up on github, but it is still very much a WIP, and will be for a long time. The Extended Pascal PEG is available already, though: https://github.com/PhilippeSigaud/Pegged/tree/master/pegged/examples/extended_pascal Bastiaan.
Jan 07