January 03, 2018
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.


January 03, 2018
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.
January 03, 2018
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.)

January 03, 2018
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?


January 03, 2018
On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:
> While the Orgs using D page is very nice ... I hoping to hear more personal stories ...
>
> So
>
> How do you use D?
> In work, (key projects or smaller side projects)
> in your side project, (github, links please)
> just to learn something new? (I would easily argue that learning D will make you a better C++ programmer, maybe not the most efficient way, but I a sure it i very effective)
>
> Did you introduce D to your work place? How? What challenges did you face?
>
> What is you D setup at work, which compiler, which IDE?
>
> And any other fun facts you may want to share :)

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

January 03, 2018
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.
January 04, 2018
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.


January 04, 2018
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

January 04, 2018
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.
January 04, 2018
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).