September 27, 2019
On Friday, 27 September 2019 at 17:37:14 UTC, Russel Winder wrote:
> It isn't that Python/C++ is the best choice per se, it is that libraries got developed using the Python/C++ combination, and that people working in the fields are introduced to these libraries as the de facto standard for their subject. I cannot see  Nim, D, Chapel, etc. even denting this traction of Python and C++, though at least Nim looks derivative of Python.

Right, it is very difficult to make this move as more and more simulation models or libraries are implemented in a specific language. Although it does happen, Fortran is not as important as it used to be, at least that is my impression. But it clearly takes decades, not years, to make this move.

> Something similar is happening in data science, machine learning, and artificial intelligence: Python has become the de facto standard because someone chose to write all the libraries people needed in Python, NumPy, or C++.

True.

> The use of Matlab was set because universities were given free licences, I suspect as a loss leader to ensure people knew Matlab and expected to use it when they moved to the world of work. However, over the 2007 to 2015 period it was clear Matlab were charging too much and that Python was the obvious place to move to. I ran many workshops over 2010 to 2015 retraining Matlab programmers as Python programmers. Actually they were electrical engineers not programmers who just wanted to solve problems. Matlab had the tools, but was too expensive, they discovered Python also had the tools, and so they switched.

Interesting that electrical engineers found that switch worthwhile, but I still think that if you primarily do experiments with linear algebra or signal processing then Matlab is more convenient to use interactively than Python.

Yet, if you already know Python then maybe  that isn't enough to also learn Matlab. So I think that over time, as Python becomes the primary language in education, you also get that effect. Not because Python is better than the alternative, but that learning the alternative is less attractive than solving the problem right away (so they prefer writing more code in Python than learning Matlab and write more terse code).

> I suspect there is beginning to be back pressure from the world of work to universities against Matlab and for Python, but this is speculation on my part.

I don't know, but I suspect as people that grew up with Python enter leadership position then the question becomes "Is there a good reason for not using Python for this?".

> university curriculum made for much better programmers. So Python for everything in universities is a very bad idea as well, at least for CS students – electrical engineering,

Yeah, but if you always start out with Python then students can switch field after the first two years with less resistance. Then you probably learn Arduino or C in a low level programming course, Scheme in a functional programming course, Prolog in a logic course, and Java .

That's not too bad, but the real problem is that some students only do mandatory programming exercises and do not program on their own, and that institutions do not want too many students to fail. If you then add into the mix that the CS department want many students (as the money follow the student) they end up accepting low quality submissions and thus the students don't get the training through effort that they need.

The desire to write your own programs and try out other languages is probably necessary to become a decent programmer. Not sure what can be done with that. In the 80s low level programming was a hobby, maybe 1 out of 10 males experimented with this on their 8-bit computers... We don't have these numbers today, I think?



September 27, 2019
On Friday, 27 September 2019 at 18:16:27 UTC, Ola Fosheim Grøstad wrote:
> The desire to write your own programs and try out other languages is probably necessary to become a decent programmer. Not sure what can be done with that. In the 80s low level

Another factor is that in the 80s and 90s the available languages were quite primitive and not too big and the hardware was insufficient for many tasks.  So there was a real motivation to look for better tools.

As languages and eco systems have become quite large and hardware is sufficient for most tasks, then we also should expect less motivation for looking for better tools.

Seems like the adoption of new languages today is primarily driven by a desire by big corporations to avoid compatibility and isolate their own eco systems.

Apple/Swift.
Microsoft/C#.
Google/Go/Koitlin.
Oracle/Java.

I am not sure if this trend is a good thing. Actually it probably is bad.

Seems like there is a desire for big business to segregate developers into Apple-programmers, Microsoft-programmers, Google-programmers, Business/Database programmers…

Clearly not beneficial to programmers.

Python bypasses all that though. Which in my view is a good thing.


September 27, 2019
On Friday, 27 September 2019 at 18:41:46 UTC, Ola Fosheim Grøstad wrote:
> Seems like the adoption of new languages today is primarily driven by a desire by big corporations to avoid compatibility and isolate their own eco systems.
>
> Apple/Swift.
> Microsoft/C#.
> Google/Go/Koitlin.
> Oracle/Java.
>

I don't think it's strictly that. It's more like they are looking for a way to improve developer experience for their respective platform. They don't have to necessarily look for isolation, they just don't want to make any effort to support other platforms more than necessary.

Swift is obviously a replacement for Objective-C. Objective-C is already incompatible and isolated, because it's THE language for iOS/macOS, and basically doesn't exist elsewhere. But it is quite outdated, and developers writing apps for Apple platforms would like to use a more modern language.

Kotlin is obviously a replacement for Java. Due to various reasons, Java's been quite conservative feature-wise and it's losing ground to C#, which is feels much more modern. Kotlin is an attempt to bring up Java to C# levels for developers, while still being able to interop and make use of the massive JVM ecosystem.

Go... I think Go started as a side project by some googlers? I think the goal was to offer an alternative to C/C++. Nowadays we have D, Rust, Crystal but back then there weren't really alternatives if you were looking for something that isn native but isn't C/C++.
September 27, 2019
On Friday, 27 September 2019 at 18:58:31 UTC, JN wrote:
> I don't think it's strictly that. It's more like they are looking for a way to improve developer experience for their respective platform. They don't have to necessarily look for isolation, they just don't want to make any effort to support other platforms more than necessary.

It is pretty obvious that Apple doesn't want to make it easy to port iOS apps to Android. Same with Microsoft and Windows-applications. They have both made too many developer-hostile moves over the years for this not to be true. Microsoft even did it with their browser for over a decade. Apple did it with iOS Safari as well.

Google is more in a grey area. They have fewer reasons to lock in and lock out.

> Kotlin is obviously a replacement for Java. Due to various reasons, Java's been quite conservative feature-wise and it's losing ground to C#, which is feels much more modern. Kotlin is an attempt to bring up Java to C# levels for developers, while still being able to interop and make use of the massive JVM ecosystem.

They are not competing with C#, they are competing with Swift...

> Go... I think Go started as a side project by some googlers?

AFAIK it was an attempt to build a system programming language for internal use at Google that would allow them to hire cheaper labour than C++ programmers.  But Go had problems gaining traction within Google.


September 29, 2019
On Friday, 27 September 2019 at 15:11:26 UTC, GreatSam4sure wrote:
> The biggest problem to D adoption is this community IMHO. Almost everything here is negative. The community is 95% negative to the language. There are people here that never see anything good about D yet they are here. The community is damaging to D image.
>
> It is a community that is out to destroy the language. All the hope of me using D has been almost destroyed.

As one of these negative people that from time to time reads up on multiple languages forums.

D was one of the first languages after moving away from Web dev, that i liked from structure point. Even got the book from Ali.

But ... the more i worked with it, the more frustration, upon frustration, upon ... kept creeping in with constant issues.

* Not user friendly tooling ( somewhat improved, took only a few years )

* Compiler bugs. O those bugs ...

* Upgrading the compiler resulting in packages ( like vibe.d going broke )

* Lacking IDE support ( somewhat improved on Visual Studio Code )

* Lacking in packages to easily get going.

* Constant and frustrating changing direction. BetterC? First get BetterD doing and when your a big boy, then do this.

* The feeling off being looked down when suggestion that D is not user friendly. Especially in the past you constantly got this as a answer: "you have a issue, fix it yourself". Yes, this was the constant answer from everybody.

* The snarky and frankly poison comments from regular members. Some of those now seem to have left but D really has some members that got under anybody their skin for daring to mention a issue.

* Focus upon C++ crowd, when very few C++ developers have any interest in D. Hell, if a C++ developer wants to switch, they have better alternatives with bigger or better growing communities.

* A leadership that seems to be stuck in the 1990's mentality. The world has moved on, people expect more these days, they have choices most old timers did not have. So they are more spoiled with those choices and are not going to put in the time. But when you ignore those "spoiled" people, you never build up a loyal base and you will never motivate them to help out with code or money.

You can not run anything worth while with D unless you plan on spending a lot of time writing supporting code yourself. Some companies have no issue with this but little old me can not be bothered with it, when there are plenty of good alternatives that get the job done as good.

* I know one of the posters on this forum a bit more personal. We have had some discussions about the different compilers. Just as he used Go for his personal project, i used Crystal for mine. We both found D too much trouble for the advantages it gave.

Its a vicious circle and i know it.

Lack in people / contributors => No Packaging / Bugs / Issues => New people scared away => Lack in people / contributors ....

* D just is not sexy. I know D now from 10/2016 ( when i got Ali's book. Programming in D ). Loved the book and language syntax ( especially if you come from PHP ) but it was all the rest that ruined it for me. And over the years D seems to have been going down a direction that i hated. New features that had no meaning for me, code breaking issues and resources being put in features like BetterC, when all i wanted was a god darn simple HTTP server that worked and kept working on release updates. And more active packages.

* On the subject of Programming in D, i noticed a lot of books are old. BetterC, the feature where a lot of resources have gone into, seems to be ignored in every book on the market.

------------------------------

To give you a nice example how much of a irritation D can be even today. Just right now, i tried to install D on Ubuntu because i want to time the current D compile speed, vs a few other languages. And i am following the official order ( https://dlang.org/download.html ):

1. sudo wget http://master.dl.sourceforge.net/project/d-apt/files/d-apt.list -O /etc/apt/sources.list.d/d-apt.list
2. sudo apt-get update && sudo apt-get -y --allow-unauthenticated install --reinstall d-apt-keyring
3. sudo apt-get update && sudo apt-get install dmd-compiler dub

Guess what happens on Step 2.

> Err:7 https://netcologne.dl.sourceforge.net/project/d-apt d-apt InRelease
  The following signatures couldn't be verified because the public key is not available:  NO_PUBKEY EBCF975E5BA24D5E

And this issue was posted a LONG time ago.

Yep ... Now try Go, Crystal, Nim, Rust, ... and a lot of other languages. I have installed all those dozens of times and a issue like simply do not show up or are fixed so fast, that it never hits "me". But whenever it involves D, its always one thing or another.

------------------------------

Hopefully this explains things from my point of view, where D simply fails me personally. Its late so i am off to bed.
September 29, 2019
On Friday, 27 September 2019 at 12:47:44 UTC, jmh530 wrote:
> On Friday, 27 September 2019 at 10:45:31 UTC, Chris wrote:
>> [snip]
>>
>> D has become too intellectual, i.e. playing with ideas and abstract concepts have become more important than the real world. And the problem is that this playing around with ideas has negatively affected the use of D in the real world. Once the D community gets over that, D might have a convincing "story" (it did when I first started to use it, in ~2010 I think).
>
> I came to D from scripting languages like Matlab, Python, and R. It got to the point where my code was taking 24 hours + to run and I tried to find alternatives that were faster. I tried C++, but didn't like it very much. I prefer D to C++, but I'm still far more productive in Matlab/Python/R because I can depend on other people's libraries to a greater extent. However, D has made some good progress on the library front in the past two years. Mir has really come into its own with its own little universe around it (lubeck and numir are fun) and the GSOC project Magpie for Data Frames already looks promising. I would contrast this progress on the library front with the intellectual issues you are describing on the language itself. For me, the biggest downside with D was a lack of libraries. As you mentioned above, modules depending on modules. The network effect is very important for these types of use cases. So I do see progress on this front, even if there is a lot of unhappy feelings about some language issues.

I haven't done much with it yet but I hooked up your embedr to our scripting language written in D and it works for examples with very little effort.  I was planning to do same for Julia so we can steal their libraries too.  So currently you can write inline D and R in SIL.  Python isn't far off working and C++ and C# one can do a hello world but not much more (using cling and mono). I think using cling one could maybe expose quite a lot of C++ libraries to D if you don't insist on zero overhead.

What were the practical limitations you encountered with using R libraries from D via embedr?

September 29, 2019
On Friday, 27 September 2019 at 14:01:34 UTC, bachmeier wrote:
> On Friday, 27 September 2019 at 13:04:37 UTC, Paulo Pinto wrote:
>
>> If any language is going to overtake Python or R among scientific users, I am betting Julia will be that language.
>
> *If* that is going to happen, I think you're right. Many economists have been moving from Matlab to Julia. For instance, the New York Fed has ported their forecasting model (a fairly large codebase) from Matlab to Julia. Matlab is not the best language, but a bigger factor is that it's really expensive - wealthy institutions complain about Matlab licensing costs. I don't see it making much progress in replacing Python or R yet. Maybe that's just my small view of the world.
>
> A different use case, for which Julia isn't as well suited, is writing extensions. In R, the most popular dependency for packages by far is C++ in the form of Rcpp. D is a perfect replacements, and that's primarily how I've been using it (giving up on C++ for that was why I looked at D in the first place). There's a lot of room for D in that area. Too bad I don't have time to work on marketing it.

Small beginning.

https://github.com/symmetryinvestments/juliad

September 29, 2019
29.09.2019 4:29, Benjiro пишет:
> 
> To give you a nice example how much of a irritation D can be even today. Just right now, i tried to install D on Ubuntu because i want to time the current D compile speed, vs a few other languages. And i am following the official order ( https://dlang.org/download.html ):
> 
> 1. sudo wget http://master.dl.sourceforge.net/project/d-apt/files/d-apt.list -O /etc/apt/sources.list.d/d-apt.list
d-apt isn't the official

> 2. sudo apt-get update && sudo apt-get -y --allow-unauthenticated install --reinstall d-apt-keyring
> 3. sudo apt-get update && sudo apt-get install dmd-compiler dub
> 
> Guess what happens on Step 2.
> 
>> Err:7 https://netcologne.dl.sourceforge.net/project/d-apt d-apt InRelease
>    The following signatures couldn't be verified because the public key is not available:  NO_PUBKEY EBCF975E5BA24D5E

d-apt provides instructions to install this pubkey https://d-apt.sourceforge.io/
"
To enable it, add the repository sources:

$ sudo wget https://netcologne.dl.sourceforge.net/project/d-apt/files/d-apt.list -O /etc/apt/sources.list.d/d-apt.list
then update local info and install "d-apt" public key (fingerprint 0xEBCF975E5BA24D5E):

$ sudo apt-get update --allow-insecure-repositories && sudo apt-get -y --allow-unauthenticated install --reinstall d-apt-keyring && sudo apt-get update
"


> 
> And this issue was posted a LONG time ago.

So there is no issue you are talking about. Probably it's gone
> 
> Yep ... Now try Go, Crystal, Nim, Rust, ... and a lot of other languages. I have installed all those dozens of times and a issue like simply do not show up or are fixed so fast, that it never hits "me". But whenever it involves D, its always one thing or another.
> 
> ------------------------------
> 
> Hopefully this explains things from my point of view, where D simply fails me personally. Its late so i am off to bed.
Did you ask people here to help you? You are welcome!
September 29, 2019
On Sunday, 29 September 2019 at 07:43:12 UTC, drug wrote:
> Did you ask people here to help you? You are welcome!

Thanks for your help* ( See PS below ) but fixing the download was not that hard. But for a new user that tries this, it can just as well been Chinese.

Its small issues like having a not working download present on the actual official website. It does not matter if its 3th party or not when its posted on the official website.

This is why i mentioned before how there are so many frustrations. Its not just the big issues but the constant small issues that are present everywhere.

> You are welcome!

*PS: Next time you write with a exclamation mark, know that this makes your sentence have a totally different meaning and is considered passive aggressive in my region.

Its little things like this that seems to pop up everywhere in this community on a regular base. The fact that there are no rules of conduct or any kind of oversight is probably the main reason why people see D as negative community. Even places like Reddit that are toxic, have some kind of moderation going on because people will be people.

D, you want my suggestion? Invest into a proper forum, set up a RoC and actually moderate topics. And yes, i understand the irony as i am posting this off-topic in the Nim Language thread. :)

This is the first step...
September 29, 2019
On Sunday, 29 September 2019 at 03:53:57 UTC, Laeeth Isharc wrote:
> [snip]
> What were the practical limitations you encountered with using R libraries from D via embedr?

Honestly, I haven't put it through its paces enough to say. I have used it for small examples, but nothing that significant.