Re: Go 1.9

2017-07-04 Thread bachmeier via Digitalmars-d

On Tuesday, 4 July 2017 at 03:41:35 UTC, jmh530 wrote:

I just gave it a try. Got an error. As far as I can tell, the 
problem is that my user name has a space in it 
(firstname[space]lastname).



library(embedrwin)
setwd("C:\\test\\")
compile("librtest", 
"C:\\D\\ldc2\\ldc2-1.3.0-beta1-win64-msvc\\bin")
[1] 
"\"C:\\D\\ldc2\\ldc2-1.3.0-beta1-win64-msvc\\bin\\ldmd2.exe\" 
-shared -m64 librtest.d 
C:/Users/firstname[space]lastname/Documents/R/win-library/3.3/embedrwin\\embedrwin\\r.d -version=inline R.lib"
[1] "Error: module firstname is in file 
'C:\\Users\\firstname.d' which cannot be read"
[2] "import path[0] = 
C:\\D\\ldc2\\LDC2-1~1.0-B\\bin\\..\\import\\ldc"
[3] "import path[1] = 
C:\\D\\ldc2\\LDC2-1~1.0-B\\bin\\..\\import"


Thanks. I forgot a pair of quotes.

It's probably better to file issues on Bitbucket or use Gitter[1] 
if possible. Or send an email to me at the address here[2]. 
Someone will get upset with me for using this mailing list for my 
package.


[1] https://gitter.im/dlang-embedr/Lobby
[2] http://www.k-state.edu/economics/staff/bios/bachmeier.html


Re: Go 1.9

2017-07-03 Thread jmh530 via Digitalmars-d

On Friday, 30 June 2017 at 20:36:47 UTC, bachmeier wrote:

On Tuesday, 27 June 2017 at 02:40:37 UTC, jmh530 wrote:

On Tuesday, 27 June 2017 at 02:38:31 UTC, bachmeier wrote:


I'll post here after updating and testing the embedr package.


Great. I'll give it a go again when it's ready.


An update. It looks like I will be able to get all of my 
research programs to work on Windows. It might be easier to use 
D in R packages on Windows than to use C/C++/Fortran because 
there is no need to mess with R tools, which many end users 
find confusing. The final piece of the puzzle would be an LDC 
installer for Windows that puts it in the path. Then it would 
definitely be easier to use D than C/C++/Fortran.


I just gave it a try. Got an error. As far as I can tell, the 
problem is that my user name has a space in it 
(firstname[space]lastname).



library(embedrwin)
setwd("C:\\test\\")
compile("librtest", 
"C:\\D\\ldc2\\ldc2-1.3.0-beta1-win64-msvc\\bin")
[1] "\"C:\\D\\ldc2\\ldc2-1.3.0-beta1-win64-msvc\\bin\\ldmd2.exe\" 
-shared -m64 librtest.d 
C:/Users/firstname[space]lastname/Documents/R/win-library/3.3/embedrwin\\embedrwin\\r.d -version=inline R.lib"
[1] "Error: module firstname is in file 'C:\\Users\\firstname.d' 
which cannot be read"
[2] "import path[0] = 
C:\\D\\ldc2\\LDC2-1~1.0-B\\bin\\..\\import\\ldc"

[3] "import path[1] = C:\\D\\ldc2\\LDC2-1~1.0-B\\bin\\..\\import"
attr(,"status")
[1] 1
Error in inDL(x, as.logical(local), as.logical(now), ...) :
  unable to load shared object 'C:/test/librtest.dll':
  LoadLibrary failure:  The specified module could not be found.
In addition: Warning messages:
1: In file.copy(paste0(loc, "/embedr/R.lib"), getwd()) :
  problem copying 
C:\Users\firstname[space]lastname\Documents\R\win-library\3.3\embedrwin\embedr\R.lib to C:\test\R.lib: No such file or directory
2: running command 
'"C:\D\ldc2\ldc2-1.3.0-beta1-win64-msvc\bin\ldmd2.exe" -shared 
-m64 librtest.d 
C:/Users/firstname[space]lastname/Documents/R/win-library/3.3/embedrwin\embedrwin\r.d -version=inline R.lib' had status 1


Re: Go 1.9

2017-07-02 Thread jmh530 via Digitalmars-d

On Friday, 30 June 2017 at 20:36:47 UTC, bachmeier wrote:


An update. It looks like I will be able to get all of my 
research programs to work on Windows. It might be easier to use 
D in R packages on Windows than to use C/C++/Fortran because 
there is no need to mess with R tools, which many end users 
find confusing. The final piece of the puzzle would be an LDC 
installer for Windows that puts it in the path. Then it would 
definitely be easier to use D than C/C++/Fortran.


Cool. I still need to give embedrwin a try...


Re: Go 1.9

2017-06-30 Thread bachmeier via Digitalmars-d

On Tuesday, 27 June 2017 at 02:40:37 UTC, jmh530 wrote:

On Tuesday, 27 June 2017 at 02:38:31 UTC, bachmeier wrote:


I'll post here after updating and testing the embedr package.


Great. I'll give it a go again when it's ready.


An update. It looks like I will be able to get all of my research 
programs to work on Windows. It might be easier to use D in R 
packages on Windows than to use C/C++/Fortran because there is no 
need to mess with R tools, which many end users find confusing. 
The final piece of the puzzle would be an LDC installer for 
Windows that puts it in the path. Then it would definitely be 
easier to use D than C/C++/Fortran.


Re: Go 1.9

2017-06-27 Thread bachmeier via Digitalmars-d

On Tuesday, 27 June 2017 at 02:40:37 UTC, jmh530 wrote:

On Tuesday, 27 June 2017 at 02:38:31 UTC, bachmeier wrote:


I'll post here after updating and testing the embedr package.


Great. I'll give it a go again when it's ready.


You can try this:
https://bitbucket.org/bachmeil/embedrwin

It's not in any sense a release. This is for early testing and 
everything will be added to embedr in the future. It works for 
me, so hopefully it will work for you.


Re: Go 1.9

2017-06-26 Thread jmh530 via Digitalmars-d

On Tuesday, 27 June 2017 at 02:38:31 UTC, bachmeier wrote:


I'll post here after updating and testing the embedr package.


Great. I'll give it a go again when it's ready.


Re: Go 1.9

2017-06-26 Thread bachmeier via Digitalmars-d

On Monday, 26 June 2017 at 12:20:02 UTC, jmh530 wrote:

[...]

I might make another effort on this after work if I have time.


I think this will be fairly easily handled within the embedr R 
package. I should be able to put R.lib inside the package. R 
knows where to find R.dll. The only thing that remains is to find 
the LDC installation. I don't know how to automate that, but the 
user could give the path as input.


I'll post here after updating and testing the embedr package.


Re: Go 1.9

2017-06-26 Thread Russel Winder via Digitalmars-d
On Mon, 2017-06-26 at 16:30 +, jmh530 via Digitalmars-d wrote:
> 
[…]
> I don't know how well dub will handle it as my dub projects never 
> get this complicated. I haven't used SCons, but might make sense. 
> Reggae is another choice (though I haven't used that either).

Although I have been quite involved with SCons for a while, I am not
sure it is the future of build. Systems such as Meson/Ninja are much
nicer to work with.  Reggae is very much in the same camp as Meson. The
difference is that Meson has a big community giving it traction.
 
-- 
Russel.
=
Dr Russel Winder  t: +44 20 7585 2200   voip: sip:russel.win...@ekiga.net
41 Buckmaster Roadm: +44 7770 465 077   xmpp: rus...@winder.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder

signature.asc
Description: This is a digitally signed message part


Re: Go 1.9

2017-06-26 Thread jmh530 via Digitalmars-d

On Monday, 26 June 2017 at 13:10:17 UTC, bachmeier wrote:


Thanks for giving it a try. I have a feeling that this is a job 
for Dub, SCons, or more likely, an R package that figures out 
this stuff. Windows development seems to have more moving 
parts. An R package on Linux requires adding a Makefile with 
one line.


I don't know how well dub will handle it as my dub projects never 
get this complicated. I haven't used SCons, but might make sense. 
Reggae is another choice (though I haven't used that either).


Re: Go 1.9

2017-06-26 Thread Jack Stouffer via Digitalmars-d

On Sunday, 25 June 2017 at 17:21:06 UTC, Michael wrote:
I think the problem with this is that compilation speed being 
the no. 1 selling point requires people to invest in large 
projects in order to reap the benefits. However, if you fail to 
draw them in to begin with, then they're not going to commit to 
a large enough project to benefit enough from improved 
compilation speed.


I don't know where you're getting this idea that fast compile 
times only help for large projects.


I reap the benefits every time I use rdmd for my scripts. I reap 
the benefits every time the compilation is near instant when 
tweaking+debugging my libraries or when unit testing my projects.


Re: Go 1.9

2017-06-26 Thread bachmeier via Digitalmars-d

On Monday, 26 June 2017 at 12:20:02 UTC, jmh530 wrote:

[...]

Then, this caused a problem because it used my 2017 Visual 
Studio instead of the Visual Studio 12.0. So I gave up, for 
now, at this point.


I might make another effort on this after work if I have time.


Thanks for giving it a try. I have a feeling that this is a job 
for Dub, SCons, or more likely, an R package that figures out 
this stuff. Windows development seems to have more moving parts. 
An R package on Linux requires adding a Makefile with one line.


Re: Go 1.9

2017-06-26 Thread jmh530 via Digitalmars-d

On Monday, 26 June 2017 at 01:31:43 UTC, bachmeier wrote:

[snip]
3. Windows requires R.lib for compilation, so I created that by 
installing the MinGW pexports.exe utility.


C:\MinGW\bin\pexports.exe R.dll > R.def



You might make reference to cd to the folder that R.dll for x64 
is in, for me it was

C:\Program Files\R\R-3.3.3\bin\x64

I also got access denied, so used administrative cmd.

RTools hadn't installed pexports, so I installed a new MinGW.


Then create the .lib using Visual Studio:

"C:\Program Files (x86)\Microsoft Visual Studio 
14.0\VC\bin\lib.exe" /def:R.def /out:R.lib /machine:x64




I have Visual Studio 2017 installed, so I used
"C:\Program Files (x86)\Microsoft Visual 
Studio\2017\Community\VC\Tools\MSVC\14.10.25017\bin\HostX86\x64\lib.exe" /def:R.def /out:R.lib /machine:x64


but got the error

LINK : fatal error LNK1171: unable to load mspdb140.dll (error 
code: 126)


So I tried to use my Visual Studio 12 (did not have 14 
installed). That seemed to work.



4. Create librtest.dll using LDC:

"C:\Users\lance\ldc64\ldc2-1.3.0-beta2-win64-msvc\bin\ldmd2.exe" -shared -m64 
librtest.d r.d -version=inline R.lib


Path adjusted for my location of ldc2. Also, I had 
ldc2-1.3.0-beta1. Also, first you need to cd back to the original 
location.


Then, this caused a problem because it used my 2017 Visual Studio 
instead of the Visual Studio 12.0. So I gave up, for now, at this 
point.


I might make another effort on this after work if I have time.




Re: Go 1.9

2017-06-26 Thread Ola Fosheim Grøstad via Digitalmars-d
On Monday, 26 June 2017 at 06:47:53 UTC, Ola Fosheim Grøstad 
wrote:
But you need a focus, figure out what you are good at and go 
with it. For which domain is your language the best option?


Decent doesn


(Hit tab by mistake, why would tab+space be a sensible key 
sequence for sending a message? Have experienced the same issue 
in gmail.)


Anyway,  decent doesn't cut it, you have to focus on the areas 
where your language can become the hands down best option.


Which is why throwing in some libraries for various domains won't 
work. If you don't have good integration with one of the best 
physics engines, then you can't really compete in the area of 
games in the general case.


C++, Rust, Swift and Go have some very clear areas where they are 
the best option if you evaluate the available options based on 
your project's requirement spec. Which is why they have traction.


It isn't really a question of individual language features or 
libraries making things possible. Those things attract individual 
programmers, but it doesn't directly affect the cost/feasibility 
analysis for a project where you evaluate options for something 
very specific.


Scripting-like programming is different, there you often want one 
flexible language that can do a little of everything, but it 
doesn't have to master any particular area or do it particularly 
well. E.g. Python.




Re: Go 1.9

2017-06-25 Thread Ola Fosheim Grøstad via Digitalmars-d

On Sunday, 25 June 2017 at 10:50:17 UTC, Igor wrote:
percent of developers needing memory management. The games 
industry is growing like crazy [1][2] and after all these years 
C++ is still the main language for that except that today 99% 
of those developers have many bad things to say about it.


I think the number of games are increasing because people now can 
write games in other languages than C++. Unfortunately it is my 
impression many of those games are the same game-engine being 
redressed with differently themed graphics + some tweaks.


article [3] has it explained nicely, except that it seems to me 
language should be marketed as general but have strong 
libraries (or game engines) for specific purposes through which 
it should market itself as something specialized.


But you need a focus, figure out what you are good at and go with 
it. For which domain is your language the best option?


Decent doesn



Re: Go 1.9

2017-06-25 Thread bachmeier via Digitalmars-d

On Saturday, 24 June 2017 at 23:05:58 UTC, jmh530 wrote:

On Saturday, 24 June 2017 at 19:17:24 UTC, bachmeier wrote:


Just this morning I got things working on Windows. Now that 
all three major platforms have support, it is as reasonable to 
create an R package with D functions as C, C++ or Fortran. 
Anyone can write up a library of D functions and put a package 
on Bitbucket or Github. The R user doesn't even need to know 
which language the functions are written in.


Music to my ears! Please put something up on announce when you 
release it.


It will probably take a while to put together a formal release. 
In the meantime, you can test it if you want. Here's an example 
that works for me on 64-bit Windows (it's obviously not the only 
way to do this).


1. Create the D file with the functions you want to call from R. 
Save this in librtest.d:


import embedr.r;
mixin(createRLibrary("rtest"));

import std.math;

export extern(C) {
  Robj transform(Robj rx) {
auto x = RVector(rx);
double[] y = [log(x[0]), log(x[1])];
double result = y[0] + y[1];
return result.robj;
  }
}

2. Download embedr to that same directory 
https://bitbucket.org/bachmeil/embedr/raw/89797bc39030a8433839119cfcdf7de6e8d7007c/inst/embedr/r.d


3. Windows requires R.lib for compilation, so I created that by 
installing the MinGW pexports.exe utility.


C:\MinGW\bin\pexports.exe R.dll > R.def

Then create the .lib using Visual Studio:

"C:\Program Files (x86)\Microsoft Visual Studio 
14.0\VC\bin\lib.exe" /def:R.def /out:R.lib /machine:x64


4. Create librtest.dll using LDC:

"C:\Users\lance\ldc64\ldc2-1.3.0-beta2-win64-msvc\bin\ldmd2.exe" 
-shared -m64 librtest.d r.d -version=inline R.lib


5. Open 64-bit R, load the library, and test it out:

dyn.load("librtest.dll")
.Call("transform", c(2.0, 3.0))

Disclaimer: I don't know much about Windows development. It would 
be nice to have others test this out and identify problems. I 
would like to figure out how to make R packages with D code on 
Windows before doing a release.


Re: Go 1.9

2017-06-25 Thread Michael via Digitalmars-d

On Monday, 19 June 2017 at 15:07:12 UTC, Jack Stouffer wrote:

On Monday, 19 June 2017 at 13:24:00 UTC, Russel Winder wrote:

The former is not a problem for D, but the latter…


Disagree. One of D's biggest competitive advantages is fast 
compilation of fast code. If other languages become as fast or 
faster than DMD in compilation speed then that's a big problem.


I think the problem with this is that compilation speed being the 
no. 1 selling point requires people to invest in large projects 
in order to reap the benefits. However, if you fail to draw them 
in to begin with, then they're not going to commit to a large 
enough project to benefit enough from improved compilation speed.


Re: Go 1.9

2017-06-25 Thread Igor via Digitalmars-d
Maybe I am wrong but I get a feeling from posts in this thread 
that some people are greatly underestimating the size of some 
segments, like mentioning niche C++ programmers and only 0.01% 
percent of developers needing memory management. The games 
industry is growing like crazy [1][2] and after all these years 
C++ is still the main language for that except that today 99% of 
those developers have many bad things to say about it. Imagine 
how D adoption would jump if someone created something on par 
with Unity or Unreal engine, or even Cocos engine in D. And I 
think D is already up to that task, with biggest pain points 
being only cross platform support, especially for Android and iOS.


Also regarding the question whether D should be marketed as 
general purpose or some special purpose language I find this 
article [3] has it explained nicely, except that it seems to me 
language should be marketed as general but have strong libraries 
(or game engines) for specific purposes through which it should 
market itself as something specialized.


[1] 
http://kotaku.com/nearly-40-of-all-steam-games-were-released-in-2016-1789535450
[2] 
http://www.gamasutra.com/view/news/267645/Over_500_games_now_submitted_to_iOS_App_Store_every_day.php
[3] 
https://simpleprogrammer.com/2017/06/19/generalists-specialists/


Re: Go 1.9

2017-06-24 Thread jmh530 via Digitalmars-d

On Saturday, 24 June 2017 at 19:17:24 UTC, bachmeier wrote:


Just this morning I got things working on Windows. Now that all 
three major platforms have support, it is as reasonable to 
create an R package with D functions as C, C++ or Fortran. 
Anyone can write up a library of D functions and put a package 
on Bitbucket or Github. The R user doesn't even need to know 
which language the functions are written in.


Music to my ears! Please put something up on announce when you 
release it.




On my agenda next are interoperability with Julia and Octave 
(which isn't that popular, but would make a lot of Matlab code 
available inside D). I honestly don't know if this will bring 
in new D users, but for the most part I don't care, because I'm 
doing it for my own research. Nonetheless, I think the 
potential to expand the D userbase is there.


I write less Matlab code these days than I used to, but I'm sure 
that would be valuable as well. There's a lot of Matlab code out 
there.


Re: Sponsorship [Re: Go 1.9]

2017-06-24 Thread Wulfklaue via Digitalmars-d
On Saturday, 24 June 2017 at 21:56:20 UTC, Andrei Alexandrescu 
wrote:

On 6/24/17 1:11 PM, Wulfklaue wrote:
[snip]

Thanks, this is a good point. The bountysource has been tried by
Facebook (with D and other projects) and was deemed 
unsuccessful. It may

be the time for trying a new angle on bountysource though.


The issue with pure bounties is that while they may incentive 
people if the work vs reward is good. But unfortunately, when 
reading the bounties currently posted, a lot seem to be major 
amount of time vs little pay.


That is why Nim / Crystal simply work with collecting money to 
pay developers for specific bounties or pay for full time people. 
It does not prevent people from doing there own bounties if they 
want.


We'll look into defining a page listing existing sponsors 
(though the majority by monies are anonymous) and a simple 
method to donate on the website.


As seen with Nim, Crystal, ... there are plenty of people who do 
not have a issue given a name or nickname. I think the current 
reason for a lot of anonymous donation is simply there is no real 
"advantage" for that person to have his/her name known.


People are competitive animals. If you see what amount of money 
people sometimes donate to  ( small ) youtube'rs. Sometimes 
thousand of dollars. All for being grateful by the person 
receiving the money and being the top donater.



What other methods of payments do you have in mind?


Germany: www.sofort.com
Netherlands: www.ideal.nl
...

Those are all popular in there respected countries. At times 
bigger then paypal etc...



Nevertheless we need to update that.


Might be interesting to also move the donation a bit more 
"visual" on the website. Its not the first time that issues 
regarding the website have been mentioned.


* The library still using the horrible phobos/index.html 101 page 
library. There is now a link to the library/index.html that is 
way better. But its something that most people will overlook.


* Tutorials:

I found the old:

https://www.tutorialspoint.com/d_programming/d_programming_associative_arrays.htm

A more interesting spot to actually learn D examples, then the D 
website /spec/class.html. It more messy and finding out about 
sometimes as simply as associative_arrays, only to discover that 
its buried somewhere.


* It might also be interesting to do a "Rust" and have Ali's D 
book provided as a standard free D book ( and maybe pay him 
something per download ). Now it already requires some searching 
or forum knowledge to find out the book is also available for 
free. Make it a prominent feature item on the website. Worth a 
extra blog post = free publicity again. :)


* Local language websites.

As somebody with family relations in China, i can say that there 
is a thriving Go community in China, where most Go related 
documentation got translated. Unfortunately, its a bit of 
"western" thinking, that everybody speaks / reads on a good level 
English. By not having localized language versions of major 
markets, D loses out on target audience. Go had the luxury that a 
lot of people comited time to do the translations and was 
rewarded with a large Go community in China. Something that most 
western developer do not even realize how big Go is in China. The 
idea that every software  developer knows (any/good ) English is 
sometimes a bit exaggerated. So this is again a overlooked 
potential focus point.


... Plenty of topics regarding the website around ;)

My biggest advice is to find or hire a community director. 
Somebody who's job is community management, media management, to 
focus resources etc. Some of the things that i mention seem to 
have been mentioned a lot of times before.




Sponsorship [Re: Go 1.9]

2017-06-24 Thread Andrei Alexandrescu via Digitalmars-d

On 6/24/17 1:11 PM, Wulfklaue wrote:
[snip]

Thanks, this is a good point. The bountysource has been tried by
Facebook (with D and other projects) and was deemed unsuccessful. It may
be the time for trying a new angle on bountysource though.

We'll look into defining a page listing existing sponsors (though the
majority by monies are anonymous) and a simple method to donate on the
website.


Electronic wire transfer or bank check *bwahaaha*. What are we: 1980?


What other methods of payments do you have in mind?


Even worse, "Wire transfer information will be announced soon.". How
long as that text been there???


That's not much to worry about - we did have a few wire transfers; it's 
not like people who want to wire us money have difficulty reaching us 
for details. Nevertheless we need to update that.



Thanks,

Andrei


Re: Go 1.9

2017-06-24 Thread bachmeier via Digitalmars-d

On Saturday, 24 June 2017 at 17:43:36 UTC, Laeeth Isharc wrote:

R is done (thanks bachmeier)


Integration with R is largely complete, but the missing piece has 
always been lack of Windows support, which meant it wasn't an 
option for most users.


Just this morning I got things working on Windows. Now that all 
three major platforms have support, it is as reasonable to create 
an R package with D functions as C, C++ or Fortran. Anyone can 
write up a library of D functions and put a package on Bitbucket 
or Github. The R user doesn't even need to know which language 
the functions are written in.


This could possibly lead to wider adoption of D. Right now Rcpp 
is the most popular dependency for R packages (over 1000 at last 
check). And that's only a tiny fraction of overall Rcpp usage; 
many users write their own C++ code but don't upload a package to 
CRAN. It is my belief that these statisticians and 
econometricians and biologists - few of whom have a C++ 
background or know what a GC is - are open to a language like D. 
I plan to write a post on my website demonstrating usage soon.


On my agenda next are interoperability with Julia and Octave 
(which isn't that popular, but would make a lot of Matlab code 
available inside D). I honestly don't know if this will bring in 
new D users, but for the most part I don't care, because I'm 
doing it for my own research. Nonetheless, I think the potential 
to expand the D userbase is there.


Re: Go 1.9

2017-06-24 Thread Laeeth Isharc via Digitalmars-d

On Saturday, 24 June 2017 at 11:18:10 UTC, Ecstatic Coder wrote:
On Saturday, 24 June 2017 at 10:34:07 UTC, Ola Fosheim Grøstad 
wrote:
On Saturday, 24 June 2017 at 09:35:56 UTC, Ecstatic Coder 
wrote:
I'm assuming that D is for general purpose programming as 
well.


That seems to be where it is heading.  I don't think D 
stands a chance in that domain, but we'll see.


With all due respect, on the contrary I think that promoting 
D as a general purpose programming language could be its only 
chance to really improve its popularity, and thus 
significantly grow its current user base.


I know that in certain other sectors, people have high 
expectations of growth, but I really am at a loss to know what it 
is that people might expect significant growth to be when we 
already have some pretty impressive developments in the numbers 
that we do have.


http://erdani.com/d/downloads.daily.png

Daily unique dmd downloads in Jan 2013 were 150-200 much of the 
time.  This year they have been between 1200 and 1700.  What kind 
of growth would it take for you to be satisfied - I am curious?  
Bearing in mind that the availability of all three compilers via 
distributions has been improving over time.


And it seems to be unlikely to be a mere artefact of some sort 
because it lines up with what one observes in the forums, in what 
one hears about dconf lately versus prior years (I only went to 
the past couple) and more importantly in development activity - 
commercial and organic.


Weka.io hadn't even heard of D about three years ago and now they 
have one of the largest D projects there is.  3.5 years ago me 
neither - and soon I will be paying for about 4.5 full time 
equivalent people to work on D (maybe a bit more than that in 
time).  This little web company called eBay seems to be using it  
- never heard of them before, but they seem pretty smart.  Remedy 
Games released Quantum Leap, which I guess sold millions of 
copies - it used D for scripting and they will be using D much 
more throughout the firm shortly.  It's used by a $20+bn hedge 
fund for their trading systems, and will gain greater adoption 
within a $3.5bn hedge fund quite soon.


https://dlang.org/orgs-using-d.html

And somebody else remarked to me: "just look at code.dlang.org 
these days - some interesting libraries and I don't know even 
half the names that wrote them".


D doesn't need to persuade most C++ users to switch over to 
succeed.  It doesn't need to persuade anyone you know to succeed. 
 It's at a stage where it's easy to keep growing without anything 
particularly dramatic happening.  All it needs to do is appeal 
just that little bit more to people who are already minded to use 
D, or for whom people who are in pain and looking for an answer 
(which D might be in part) to find out about the language - as 
happened recently with Weka.  And if I compare the documentation, 
libraries, and general quality of things today compared to 2014 
when I started looking at the language, it's improving much 
faster than just a little bit every year.  One doesn't notice 
such change necessarily quickly.



I agree, but it will be hard for D to beat C++, because people 
who *need* to use C++ as a "systems programming language" won't 
use D for the same reasons they don't use C#, Java or Go.


Finance is still one of the larger spenders as an industry.  C++ 
is used quite broadly within it for analytics.  Not because 
people want a system language and need to use malloc and free and 
freely drop down to assembly, but because there isn't an adequate 
alternative that's widely known about for now.  In 3-5 years 
time, I think number of users in finance of D will be higher, 
because it's the solution to pain.  Also, people tend to have 
end-users working in many different languages.  Writing separate 
clients for each one isn't ideal, and wrapping automatically 
makes much more sense.  SWIG works, after a fashion, but D offers 
some more pleasant and more maintainable alternatives.  R is done 
(thanks bachmeier); Python is done (PyD); Excel is done (me, 
Stefan + Atila); C/C++ is easy enough; C# will be done shortly, 
and I have already done some work on Java.  If you say that 
finance guys will never consider adopting D, I beg to differ 
because I think I know that world quite well.  And that's just a 
world I am familiar with, and there are plenty of others.


The web guys get the attention because they are doing interesting 
things, have particular challenges, and can afford to talk - 
because their edge doesn't mostly come from code, which is why 
they open-source so much of it.  It's a mistake to think that the 
people who talk are a good representation of the total number of 
lines of code that are written each year, let alone the total 
code that exists.  Visual Basic for Applications (Excel) 
programmers for example do not tend to get much attention - yet 
there's still a lot of code in VBA, a lot of new code being 
written each year. 

Re: Go 1.9

2017-06-24 Thread Adam D. Ruppe via Digitalmars-d

On Saturday, 24 June 2017 at 12:11:29 UTC, Wulfklaue wrote:
I never considered that D has a bountysource account. Its way, 
wy at the bottom of the monthly listing page. It did not 
even show up until 3 days ago.


It was somewhat active for a while a couple years ago, but I 
found it to be simply offensive and a demotivator. They 
(including a large corporation that you've heard of having 
gigabucks) attached $50 bounties to bugs that would take several 
days of work to fix... then, of course, you have to go though the 
review process which has an indeterminate wait and frequently 
shifts goalposts.


If any other client treated me like that, I'd walk away and never 
look back. (Heck, if any other client offered me what amounted to 
maybe $5 / hour, I'm not even sure that I'd waste my time 
actually telling them no - I might just ignore their emails as 
being a bad joke.)



Bountysource has changed since then, and now has the salt 
program, but I think I'm not the only one who found it 
counterproductive in its early iteration and finds the brand 
damaged. If we wanted to revive it, it'd have to be clearly done 
differently than it was before.




Electronic wire transfer or bank check *bwahaaha*. What are we: 
1980?


That's the way big donors actually prefer do business. Avoids 
having x% of their donation go to some for-profit middleman, and 
is easier accounting with the IRS. (D, being a legally 
incorporated not-for-profit organization, is required by US law 
to keep track of its financial information and publish an open 
report each year. Also, individuals and businesses donating to it 
can list that as a tax-deductible expense on their own annual 
returns - provided they have the necessary documentation.)



There is no focus on raising funds. I talked about D Foundation 
being obscure but this blow my mind.


Perhaps we need a new director of development!


Re: Go 1.9

2017-06-24 Thread rikki cattermole via Digitalmars-d

On 24/06/2017 1:11 PM, Wulfklaue wrote:

snip

And sorry for the strong language but this is the truth! The fact that i 
as a newcomer needs to point this out is just ridiculous. Its easy to 
see why Nim and Crystal out fund D on bountysource.


It's fine. You're not attacking anyone and not swearing for the sake of 
swearing :)


My recommendation is to fund specific people or donate directly to the D 
foundation. If there were people willing to fund specific people, it'll 
pick up in time. As it stands it is mostly behind closed doors and going 
straight to the people.


How to improve this without a giant wad of cash idk.


Re: Go 1.9

2017-06-24 Thread Wulfklaue via Digitalmars-d

On Saturday, 24 June 2017 at 10:21:50 UTC, rikki cattermole wrote:

What on earth are you talking about[0]?

[0] https://www.bountysource.com/teams/d


*wow* ... Call me amazed and dumbstruck.

I never considered that D has a bountysource account. Its way, 
wy at the bottom of the monthly listing page. It did not even 
show up until 3 days ago.


This is just ... /lost for words and that is a first.

There is like one contribution 3 days ago and the last activity 
is 8 months. No open contributions in the last 2+ years. *wow* 
... just *wow* ...


Now i understand why some people complained that people if they 
wanted something, that they needed to pay for it. Expect people 
forgot to mention every time WHERE to put the payment. FFS ... i 
had people tell me several times pay for whatever feature and not 
a single person mention that D has a bountysource account.


Where is it even on the website


Other sites:


Nim, one click on sponsors ( Top Page ) shows the sponsors and 
amounts or a big donate button ( bottom page ).


https://nim-lang.org/sponsors.html

Crystal, one click ( Top Page ) shows the sponsors and amounts.

https://crystal-lang.org/sponsors/

D, ... press Community, then press Donate. Already two clicks, 
hidden in the drop down menu.


https://dlang.org/donate.html

A big wall of text, no mention of donators, there amount. And 
then paypal but no bountysource...


Electronic wire transfer or bank check *bwahaaha*. What are we: 
1980? Even worse, "Wire transfer information will be announced 
soon.". How long as that text been there??? Does the D team even 
look at there own website???



No offense but frankly, this is the equivalent of not having a 
bountysource account. Its simply hidden. There is no sponsors 
list, there is no motivation if people donate like "hey, my name 
is on the sponsor list". Or "hey, look, i am the top sponsor this 
month".


For your information, i am still on the Nim list ;)



I was under the impression that D with a bountysource account was 
going to be able to raise monthly funds on a higher level then 
Crystal and Nim. I really do not know what to say. No wonder when 
most new people do not even know its exists and the lack of 
acknowledgment on the website only reinforces this.


There is no focus on raising funds. I talked about D Foundation 
being obscure but this blow my mind. Talk about lost 
opportunities on the website and general marketing.


A community project that wants to grow but does not take its 
fundraising seriously... No no!!! Do not give me the party line: 
if you want it solved, then enhance the website. This is part of 
the core team there job. Its frankly the D Foundation there core 
job to ensure every left and right way money can be gained, so 
more people can be hired.


And sorry for the strong language but this is the truth! The fact 
that i as a newcomer needs to point this out is just ridiculous. 
Its easy to see why Nim and Crystal out fund D on bountysource.


Re: Go 1.9

2017-06-24 Thread Ecstatic Coder via Digitalmars-d

On Saturday, 24 June 2017 at 10:17:16 UTC, Wulfklaue wrote:

On Saturday, 24 June 2017 at 09:35:56 UTC, Ecstatic Coder wrote:
With all due respect, on the contrary I think that promoting D 
as a general purpose programming language could be its only 
chance to really improve its popularity, and thus 
significantly grow its current user base.


I'm sorry to repeat myself once again on this forum, but it's 
obvious to me that D's strongest feature at the moment is that 
it has the best syntax on the market.


I personally will not go that far. Syntax is more about 
preference. Rust looks dog ugly to me and yet some people find 
it beautiful.


Personally i find Swift / Kotlin a nicer looking syntax then D.

Reference types, strings, maps, slices, arrays, UFCS, etc, 
everything is made so that the most obvious and readable code 
will work both safely and efficiently.


There is absolutely zero syntactic noise, the code is crystal 
clear.


So instead of losing many potential users by focusing on a 
niche market (unhappy C++ programmers), D should focus on its 
major strengths, which already now make it stand high above 
its competition.


Agrees with that. The problem with a language trying to scope 
away a specific group of developers, from a existing ecosystem 
is that your fighting the entire ecosystem, not just the 
language. That is a mistake that many new languages make.


Why switch over from C++ to D?

Language => Sure.
Tooling => No.
Libraries => No.
Editors => No.
...

That has been the dilemma that not only D has faced. Until you 
get critical mass where people start writing a massive amount 
of your ecosystem, its hard to get people to switch over.


For instance, all these programmer-friendly features make D 
even more convenient for scripting than scripting languages 
themselves.


True but the same can be said about Go. And Go is even more 
friendly and has the ecosystem now. You want to write something 
more exotic. There is big change that somebody wrote a 
module/package in Go. That is not going on with D. Sure, you 
can take a existing c library and transform it into D but it 
still takes work and is not always 100% idiomatic D.


That is the main difference between D and lets say Kotlin. 
Kotlin build on top of Java and you can native imports all the 
libraries. There is less effort involved.


Maybe this was mentioned before but a lot of programmers prefer 
to lazy program. They want to write there code, move forward 
with there project and not spend time on trying to get "things" 
to import/convert/work. D has more people who have no issue 
doing things the "hard" way. I applaud that resolve, i really 
do. But at the same time its a barrier, a attitude that makes 
it hard to accept those lazy people like me :)


IMHO, trying to compete directly with C++, C# and Java, with 
the current state of the language and of its ecosystem, is 
simply choosing the hardest path to success...


See above. Some people prefer the hard way. The masochists 
*haha*. I know the angle where your coming from Ecstatic but 
its hard to convince people. Especially when there is a 
manpower shortage.


Frankly, i think the best way to go about moving D to 
popularity, is simply money. More fully time programmers but 
that requires money.


I do not understand why D does not have a BountySource account 
( salt.bountysource.com ).


Look at nim ( $1,896 last month ) /crystal ( $2,345 this month 
):


They publish there fund raising. They motivate people by 
pointing out the backers. Their income is a extra full time 
developer ( who wants to work for cheap :) ). The whole D 
foundation is nice and well but to me it feels like cloak and 
daggers. It something hiding in the background, something 
obscure. Maybe i am not expressing myself good again but D its 
fund raising seems to be largely corporate focused but they 
seem to lose a big market potential. Corporate funding is 
harder to get then a lot of small donations.


Its just my two cents but if D wants to grow, it needs full 
time developers. Not just volunteer work. People who can do the 
grunt work that volunteers do not want to do ( because its just 
not sexy ).


I agree with all that you said.

Just about Go, I must say that language is a bit rude, and 
actually less convenient and versatile than D.


Many convenient features are missing (true reference classes, 
member function polymorphism, generics, etc).


IMHO, Go is lagging somewhere between C and D.

Kotlin is a better contender, especially with is LLVM 
implementation.


And with its current ecosystem, I'm sorry to say that indeed 
Kotlin native is becoming de factor the best alternative to D.


Re: Go 1.9

2017-06-24 Thread Ecstatic Coder via Digitalmars-d
On Saturday, 24 June 2017 at 10:34:07 UTC, Ola Fosheim Grøstad 
wrote:

On Saturday, 24 June 2017 at 09:35:56 UTC, Ecstatic Coder wrote:
I'm assuming that D is for general purpose programming as 
well.


That seems to be where it is heading.  I don't think D stands 
a chance in that domain, but we'll see.


With all due respect, on the contrary I think that promoting D 
as a general purpose programming language could be its only 
chance to really improve its popularity, and thus 
significantly grow its current user base.


Most programming languages are technically "general purpose", 
but when projects look for tooling they aren't looking for 
something generic, they are looking for a solution to a 
specific domain.


So, for a language to succeed you need to provide the best 
solution to something specific.


I agree, but it will be hard for D to beat C++, because people 
who *need* to use C++ as a "systems programming language" won't 
use D for the same reasons they don't use C#, Java or Go.


Just its GC keeps many C++ developers away from it, whether is 
justified or not, despite D is as low level and performant.


But a GC is rarely a problem for a scripter, because most 
scripting language already work this way.


So I think promoting D as a "systems programming language" won't 
help in improving its popularity, as its GC doesn't make it the 
best solution on this market.


Re: Go 1.9

2017-06-24 Thread Ola Fosheim Grøstad via Digitalmars-d

On Saturday, 24 June 2017 at 09:35:56 UTC, Ecstatic Coder wrote:
I'm assuming that D is for general purpose programming as 
well.


That seems to be where it is heading.  I don't think D stands 
a chance in that domain, but we'll see.


With all due respect, on the contrary I think that promoting D 
as a general purpose programming language could be its only 
chance to really improve its popularity, and thus significantly 
grow its current user base.


Most programming languages are technically "general purpose", but 
when projects look for tooling they aren't looking for something 
generic, they are looking for a solution to a specific domain.


So, for a language to succeed you need to provide the best 
solution to something specific.


Re: Go 1.9

2017-06-24 Thread rikki cattermole via Digitalmars-d

On 24/06/2017 11:17 AM, Wulfklaue wrote:

snip

Frankly, i think the best way to go about moving D to popularity, is 
simply money. More fully time programmers but that requires money.


I do not understand why D does not have a BountySource account ( 
salt.bountysource.com ).


What on earth are you talking about[0]?

[0] https://www.bountysource.com/teams/d



Re: Go 1.9

2017-06-24 Thread Wulfklaue via Digitalmars-d

On Saturday, 24 June 2017 at 09:35:56 UTC, Ecstatic Coder wrote:
With all due respect, on the contrary I think that promoting D 
as a general purpose programming language could be its only 
chance to really improve its popularity, and thus significantly 
grow its current user base.


I'm sorry to repeat myself once again on this forum, but it's 
obvious to me that D's strongest feature at the moment is that 
it has the best syntax on the market.


I personally will not go that far. Syntax is more about 
preference. Rust looks dog ugly to me and yet some people find it 
beautiful.


Personally i find Swift / Kotlin a nicer looking syntax then D.

Reference types, strings, maps, slices, arrays, UFCS, etc, 
everything is made so that the most obvious and readable code 
will work both safely and efficiently.


There is absolutely zero syntactic noise, the code is crystal 
clear.


So instead of losing many potential users by focusing on a 
niche market (unhappy C++ programmers), D should focus on its 
major strengths, which already now make it stand high above its 
competition.


Agrees with that. The problem with a language trying to scope 
away a specific group of developers, from a existing ecosystem is 
that your fighting the entire ecosystem, not just the language. 
That is a mistake that many new languages make.


Why switch over from C++ to D?

Language => Sure.
Tooling => No.
Libraries => No.
Editors => No.
...

That has been the dilemma that not only D has faced. Until you 
get critical mass where people start writing a massive amount of 
your ecosystem, its hard to get people to switch over.


For instance, all these programmer-friendly features make D 
even more convenient for scripting than scripting languages 
themselves.


True but the same can be said about Go. And Go is even more 
friendly and has the ecosystem now. You want to write something 
more exotic. There is big change that somebody wrote a 
module/package in Go. That is not going on with D. Sure, you can 
take a existing c library and transform it into D but it still 
takes work and is not always 100% idiomatic D.


That is the main difference between D and lets say Kotlin. Kotlin 
build on top of Java and you can native imports all the 
libraries. There is less effort involved.


Maybe this was mentioned before but a lot of programmers prefer 
to lazy program. They want to write there code, move forward with 
there project and not spend time on trying to get "things" to 
import/convert/work. D has more people who have no issue doing 
things the "hard" way. I applaud that resolve, i really do. But 
at the same time its a barrier, a attitude that makes it hard to 
accept those lazy people like me :)


IMHO, trying to compete directly with C++, C# and Java, with 
the current state of the language and of its ecosystem, is 
simply choosing the hardest path to success...


See above. Some people prefer the hard way. The masochists 
*haha*. I know the angle where your coming from Ecstatic but its 
hard to convince people. Especially when there is a manpower 
shortage.


Frankly, i think the best way to go about moving D to popularity, 
is simply money. More fully time programmers but that requires 
money.


I do not understand why D does not have a BountySource account ( 
salt.bountysource.com ).


Look at nim ( $1,896 last month ) /crystal ( $2,345 this month ):

They publish there fund raising. They motivate people by pointing 
out the backers. Their income is a extra full time developer ( 
who wants to work for cheap :) ). The whole D foundation is nice 
and well but to me it feels like cloak and daggers. It something 
hiding in the background, something obscure. Maybe i am not 
expressing myself good again but D its fund raising seems to be 
largely corporate focused but they seem to lose a big market 
potential. Corporate funding is harder to get then a lot of small 
donations.


Its just my two cents but if D wants to grow, it needs full time 
developers. Not just volunteer work. People who can do the grunt 
work that volunteers do not want to do ( because its just not 
sexy ).


Re: Go 1.9

2017-06-24 Thread Ecstatic Coder via Digitalmars-d

I'm assuming that D is for general purpose programming as well.


That seems to be where it is heading.  I don't think D stands a 
chance in that domain, but we'll see.


With all due respect, on the contrary I think that promoting D as 
a general purpose programming language could be its only chance 
to really improve its popularity, and thus significantly grow its 
current user base.


I'm sorry to repeat myself once again on this forum, but it's 
obvious to me that D's strongest feature at the moment is that it 
has the best syntax on the market.


Reference types, strings, maps, slices, arrays, UFCS, etc, 
everything is made so that the most obvious and readable code 
will work both safely and efficiently.


There is absolutely zero syntactic noise, the code is crystal 
clear.


So instead of losing many potential users by focusing on a niche 
market (unhappy C++ programmers), D should focus on its major 
strengths, which already now make it stand high above its 
competition.


For instance, all these programmer-friendly features make D even 
more convenient for scripting than scripting languages themselves.


Just add the instant compilation, and you actually have the 
perfect language for scripters and learning/inexperienced 
programmers who currently choose JavaScript, Python, Ruby because 
they don't know that the perfect language for their needs is 
actually D.


I strongly believe that D has the potential to be the killer 
"general purpose" language if :

1/ it is also promoted with this target in mind
2/ a few additional pre-installed libraries (web + ui) would make 
it as easy to develop cross-platform connected applications.


IMHO, trying to compete directly with C++, C# and Java, with the 
current state of the language and of its ecosystem, is simply 
choosing the hardest path to success...


Re: Go 1.9

2017-06-24 Thread Ola Fosheim Grøstad via Digitalmars-d

On Friday, 23 June 2017 at 14:45:12 UTC, Bienlein wrote:

I'm assuming that D is for general purpose programming as well.


That seems to be where it is heading.  I don't think D stands a 
chance in that domain, but we'll see.


Re: Go 1.9

2017-06-23 Thread via Digitalmars-d

On Friday, 23 June 2017 at 22:38:29 UTC, Paulo Pinto wrote:

On Friday, 23 June 2017 at 21:31:00 UTC, Araq wrote:

...

That's just "I looked at the websites, never used these tools 
in practice but found them convincing" phrased differently to 
pretend you have an argument.


The success of Go strongly indicates people generally don't 
connect Java/C# to "native code" or "slim binaries without 
dependencies", whom are you kidding here.


You are right, it was a mistake to come back to these forums, 
after the GDC announcement.


Looking forward to see blazing fast D applications on the 
Windows store.


Just FYI, Araq is the author of Nim (https://nim-lang.org/), so
I'm sure he didn't have any intention in making D look good ;)

On the other hand, I think he made good technical arguments, 
(leaving

aside his Ad Hominem way of expressing, which I think was out of
place) which I think you should actually consider.


Re: Go 1.9

2017-06-23 Thread Joakim via Digitalmars-d

On Friday, 23 June 2017 at 22:35:04 UTC, Paulo Pinto wrote:

On Friday, 23 June 2017 at 20:25:10 UTC, Joakim wrote:
C# lost out internally at Microsoft precisely because of how 
bloated it made everything, with signs that native is 
ascendant again in recent years:


https://hackernoon.com/what-really-happened-with-vista-4ca7ffb5a1a


C# lost the Longhorn/Vista battle, but won the Windows 10 UWP 
one.


I wouldn't say C# won, UWP is implemented in C++ and supports 
C++.  Of course, UWP is so unpopular that they eventually allowed 
Win32 apps into their store:


https://arstechnica.com/information-technology/2016/09/desktop-apps-make-their-way-into-the-windows-store/

Now they are so desparate for people to use it that they just 
released a version of Windows that will only install UWP apps, 
Windows 10 S:


https://arstechnica.com/information-technology/2017/05/microsoft-takes-on-chrome-os-with-new-windows-10-s/


Try to find the C++ talks.

https://channel9.msdn.com/Events/Build/2017


You seem to have missed the bit where I said C# lost 
_internally_.  Their plan, as detailed in the Vista link, was to 
move all their own apps to C#, which has yet to happen.  I hear 
C# has been very successful for corporate LoB apps, which are 
developed quickly and not used widely enough to spend much time 
on optimizing for performance.


On Friday, 23 June 2017 at 22:38:29 UTC, Paulo Pinto wrote:
Looking forward to see blazing fast D applications on the 
Windows store.


Why?  The Windows Store is a ghost town, with google not even 
bothering to package Chrome on there, despite their browser being 
the most installed and used app on Windows.


Re: Go 1.9

2017-06-23 Thread Paulo Pinto via Digitalmars-d

On Friday, 23 June 2017 at 21:31:00 UTC, Araq wrote:

...

That's just "I looked at the websites, never used these tools 
in practice but found them convincing" phrased differently to 
pretend you have an argument.


The success of Go strongly indicates people generally don't 
connect Java/C# to "native code" or "slim binaries without 
dependencies", whom are you kidding here.


You are right, it was a mistake to come back to these forums, 
after the GDC announcement.


Looking forward to see blazing fast D applications on the Windows 
store.





Re: Go 1.9

2017-06-23 Thread Paulo Pinto via Digitalmars-d

On Friday, 23 June 2017 at 20:25:10 UTC, Joakim wrote:

On Friday, 23 June 2017 at 16:49:54 UTC, Kagamin wrote:

On Friday, 23 June 2017 at 06:41:26 UTC, Bienlein wrote:
Java, Kotlin, C# are still Jit compiled languages, with the 
memory footprint to prove it :)


The memory footprint doesn't matter. Those times are OVER :-).


Do you want D to compete in enterprise domain? Of 16 programs 
running on my machine 13 are native.


Not only that, but the majority of use of Java and soon Kotlin 
is on Android, where efficiency and memory footprint matters a 
lot, hence Java moving to AoT-compilation when Android 5.0 
released three years ago and adding a concurrent GC:


https://arstechnica.com/gadgets/2014/11/android-5-0-lollipop-thoroughly-reviewed/3/#h2

C# lost out internally at Microsoft precisely because of how 
bloated it made everything, with signs that native is ascendant 
again in recent years:


https://hackernoon.com/what-really-happened-with-vista-4ca7ffb5a1a

Bienlein may be right that there are niches where memory 
footprint doesn't matter and there were years where it wasn't a 
big deal, but it's back now.  RAM is really cheap today, but 
latency and power efficiency are the big issues.  You could put 
8 GBs of RAM in every smartphone right now, and there are some 
models which do (http://www.gsmarena.com/oneplus_5-8647.php), 
but the only reason most don't is because it'd suck a lot more 
power.


C# lost the Longhorn/Vista battle, but won the Windows 10 UWP one.

Try to find the C++ talks.

https://channel9.msdn.com/Events/Build/2017


Re: Go 1.9

2017-06-23 Thread Araq via Digitalmars-d

On Friday, 23 June 2017 at 20:13:15 UTC, Paulo Pinto wrote:
ExcelsiorJET is quite easy to figure out, you can download 
their open source version.


So in other words, you do not have used these products and only 
read their websites, got it.


Some products go the static linking way, others map .jars into 
shared libraries.


And how does the tool know which .jars to compile to shared 
libraries without running the code first? It can't. Which is why 
Excelsior ships with a JIT:


From https://www.excelsiorjet.com/

"First, the AOT compiler turns your jar and class files into a 
conventional binary executable. That executable is fully 
interoperable with our JVM, which includes a JIT compiler to 
handle any classes that were not precompiled."



Nice how you overlook the fact that .NET Native requires static 
linking, hence why there are such issues.
AOT compiling to native code with either NGEN or Windows 8 MDIL 
compiler doesn't have such issues, because dynamic linking is 
used instead.


Again, how can you compile ahead-of-time when you don't know the 
dependencies before running the program? You can't which is why 
every such tool is at a fight with how these languages work.


In any case, even if native compilation toolchains for Java and 
C# aren't perfect, they make it less appealing to try out D if 
you don't come up with a solid history to go against them, that 
make people actually curious to try out D.


That's just "I looked at the websites, never used these tools in 
practice but found them convincing" phrased differently to 
pretend you have an argument.


The success of Go strongly indicates people generally don't 
connect Java/C# to "native code" or "slim binaries without 
dependencies", whom are you kidding here.


Re: Go 1.9

2017-06-23 Thread Joakim via Digitalmars-d

On Friday, 23 June 2017 at 16:49:54 UTC, Kagamin wrote:

On Friday, 23 June 2017 at 06:41:26 UTC, Bienlein wrote:
Java, Kotlin, C# are still Jit compiled languages, with the 
memory footprint to prove it :)


The memory footprint doesn't matter. Those times are OVER :-).


Do you want D to compete in enterprise domain? Of 16 programs 
running on my machine 13 are native.


Not only that, but the majority of use of Java and soon Kotlin is 
on Android, where efficiency and memory footprint matters a lot, 
hence Java moving to AoT-compilation when Android 5.0 released 
three years ago and adding a concurrent GC:


https://arstechnica.com/gadgets/2014/11/android-5-0-lollipop-thoroughly-reviewed/3/#h2

C# lost out internally at Microsoft precisely because of how 
bloated it made everything, with signs that native is ascendant 
again in recent years:


https://hackernoon.com/what-really-happened-with-vista-4ca7ffb5a1a

Bienlein may be right that there are niches where memory 
footprint doesn't matter and there were years where it wasn't a 
big deal, but it's back now.  RAM is really cheap today, but 
latency and power efficiency are the big issues.  You could put 8 
GBs of RAM in every smartphone right now, and there are some 
models which do (http://www.gsmarena.com/oneplus_5-8647.php), but 
the only reason most don't is because it'd suck a lot more power.


Re: Go 1.9

2017-06-23 Thread Paulo Pinto via Digitalmars-d

On Friday, 23 June 2017 at 19:27:56 UTC, Araq wrote:

On Thursday, 22 June 2017 at 11:27:47 UTC, Paulo Pinto wrote:
Java is AOT compiled to native code via Excelsior JET, IBM J9, 
IBM Websphere RealTime, JamaicaVM, SubstrateVM, Android ART 
and eventually Java 10.




Have you used one of these products? How do they deal with 
dynamic class loading? I know how JamaicaVM does it, no thanks.


ExcelsiorJET is quite easy to figure out, you can download their 
open source version.


Some products go the static linking way, others map .jars into 
shared libraries.






C# is AOT compiled to native code since day 1, via NGEN, 
althouth it isn't an optimizing compiler and only supports 
dynamic linking.




From 
https://docs.microsoft.com/en-us/dotnet/framework/net-native/net-native-and-compilation


"Because the .NET Native tool chain links implementation code 
into your app only if it knows that your app actually invokes 
that code, either the metadata or the implementation code 
required in the following scenarios may not be included with 
your app:


* Reflection.
* Dynamic or late-bound invocation.
* Serialization and deserialization.
* COM interop.

If the necessary metadata or implementation code is absent at 
runtime, the .NET Native runtime throws an exception. You can 
prevent these exceptions, and ensure that the .NET Native tool 
chain includes the required metadata and implementation code, 
by using a runtime directives file, an XML file that designates 
the program elements whose metadata or implementation code must 
be available at runtime and assigns a runtime policy to them. 
The following is the default runtime directives file that is 
added to a Windows Store project that is compiled by the .NET 
Native tool chain: ..."



Better learn what the competition is actually doing.


Reflection and dynamic class loading are essential parts of C# 
and Java and do not work well with AOT compilation and never 
will. Money can't patch over design mistakes.


Nice how you overlook the fact that .NET Native requires static 
linking, hence why there are such issues.


AOT compiling to native code with either NGEN or Windows 8 MDIL 
compiler doesn't have such issues, because dynamic linking is 
used instead.


Also .NET Native is still kind of work in progress, as they still 
try to bring more features from System C# into regular .NET 
toolchain. With every Windows 10 SDK release there are new 
improvement made to it.


In any case, even if native compilation toolchains for Java and 
C# aren't perfect, they make it less appealing to try out D if 
you don't come up with a solid history to go against them, that 
make people actually curious to try out D.






Re: Go 1.9

2017-06-23 Thread Araq via Digitalmars-d

On Thursday, 22 June 2017 at 11:27:47 UTC, Paulo Pinto wrote:
Java is AOT compiled to native code via Excelsior JET, IBM J9, 
IBM Websphere RealTime, JamaicaVM, SubstrateVM, Android ART and 
eventually Java 10.




Have you used one of these products? How do they deal with 
dynamic class loading? I know how JamaicaVM does it, no thanks.




C# is AOT compiled to native code since day 1, via NGEN, 
althouth it isn't an optimizing compiler and only supports 
dynamic linking.




From 
https://docs.microsoft.com/en-us/dotnet/framework/net-native/net-native-and-compilation


"Because the .NET Native tool chain links implementation code 
into your app only if it knows that your app actually invokes 
that code, either the metadata or the implementation code 
required in the following scenarios may not be included with your 
app:


* Reflection.
* Dynamic or late-bound invocation.
* Serialization and deserialization.
* COM interop.

If the necessary metadata or implementation code is absent at 
runtime, the .NET Native runtime throws an exception. You can 
prevent these exceptions, and ensure that the .NET Native tool 
chain includes the required metadata and implementation code, by 
using a runtime directives file, an XML file that designates the 
program elements whose metadata or implementation code must be 
available at runtime and assigns a runtime policy to them. The 
following is the default runtime directives file that is added to 
a Windows Store project that is compiled by the .NET Native tool 
chain: ..."



Better learn what the competition is actually doing.


Reflection and dynamic class loading are essential parts of C# 
and Java and do not work well with AOT compilation and never 
will. Money can't patch over design mistakes.


Re: Go 1.9

2017-06-23 Thread Kagamin via Digitalmars-d

On Friday, 23 June 2017 at 06:41:26 UTC, Bienlein wrote:
Java, Kotlin, C# are still Jit compiled languages, with the 
memory footprint to prove it :)


The memory footprint doesn't matter. Those times are OVER :-).


Do you want D to compete in enterprise domain? Of 16 programs 
running on my machine 13 are native.


Re: Go 1.9

2017-06-23 Thread Russel Winder via Digitalmars-d
On Fri, 2017-06-23 at 13:14 +, Wulfklaue via Digitalmars-d wrote:
> On Monday, 19 June 2017 at 16:13:20 UTC, Russel Winder wrote:
> > I'd be more bothered by Kotlin native that Scala native.
> 
> Well, Kotlin/Native just came out with version 0.3. And it 
> includes Windows support. Take that Apple/Swift ;)
> 
> Its impressive how fast things are being developer by Jetbrain.
> 
> There first release ( 0.1 ) on 31 March 2017.
> Then Coroutines ( 0.2 ) on 11 May 2017.
> Now Windows support ( 0.3 ) on June 23 2017.

I suspect this is a tribute to LLVM as well as the Kotlin Native team.
Like LDC takes DMD frontend and injects into the LLVM backend, so
Kotlin Native takes the Kotlin frontend and injects into LLVM.

Sadly they currently just use the GTK C API directly, rather than
having a Kotlin idiomatic binding. Not competition for D in the GTK
GStreamer arena just yet. I have however put in issues.

-- 
Russel.
=
Dr Russel Winder  t: +44 20 7585 2200   voip: sip:russel.win...@ekiga.net
41 Buckmaster Roadm: +44 7770 465 077   xmpp: rus...@winder.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder

signature.asc
Description: This is a digitally signed message part


Re: Go 1.9

2017-06-23 Thread Bienlein via Digitalmars-d
On Friday, 23 June 2017 at 14:07:09 UTC, Ola Fosheim Grøstad 
wrote:

On Friday, 23 June 2017 at 11:15:40 UTC, Bienlein wrote:
I have not done any manual memory management at work for the 
last 25 years.


But are you doing any programming for the low end of the 
hardware spectrum? It has been the low end hardware limitations 
that have the standard for memory consumption…


I'm assuming that D is for general purpose programming as well.




Re: Go 1.9

2017-06-23 Thread Ola Fosheim Grøstad via Digitalmars-d

On Friday, 23 June 2017 at 11:15:40 UTC, Bienlein wrote:
I have not done any manual memory management at work for the 
last 25 years.


But are you doing any programming for the low end of the hardware 
spectrum? It has been the low end hardware limitations that have 
the standard for memory consumption…




Re: Go 1.9

2017-06-23 Thread Wulfklaue via Digitalmars-d

On Monday, 19 June 2017 at 16:13:20 UTC, Russel Winder wrote:

I'd be more bothered by Kotlin native that Scala native.


Well, Kotlin/Native just came out with version 0.3. And it 
includes Windows support. Take that Apple/Swift ;)


Its impressive how fast things are being developer by Jetbrain.

There first release ( 0.1 ) on 31 March 2017.
Then Coroutines ( 0.2 ) on 11 May 2017.
Now Windows support ( 0.3 ) on June 23 2017.


Re: Go 1.9

2017-06-23 Thread Bienlein via Digitalmars-d
On Friday, 23 June 2017 at 08:57:04 UTC, Ola Fosheim Grøstad 
wrote:

On Friday, 23 June 2017 at 06:41:26 UTC, Bienlein wrote:
Java, Kotlin, C# are still Jit compiled languages, with the 
memory footprint to prove it :)


The memory footprint doesn't matter. Those times are OVER :-).


People said that 30 years ago too... It is still an issue, 
though. Not as much as it was, but still relevant.


Programmers seem to be able to suck up whatever RAM is 
available on the low-end by adding frameworks, bloated 
libraries and runtimes, or just bugs…


I have not done any manual memory management at work for the last 
25 years. Did some C++ programming at college and a bit at home 
where I had to take care of memory myself. That was it. Till I 
retire in 20 years I will also not have been doing any manual 
memory management. That kind of stuff only survives in very 
special areas where 0.1% of all software developers work.


That being said let me repeat that D needs a decent GC for being 
able to create any traction, because those 99.9% of the share are 
the far bigger market.





Re: Go 1.9

2017-06-23 Thread Ola Fosheim Grøstad via Digitalmars-d

On Friday, 23 June 2017 at 06:41:26 UTC, Bienlein wrote:
Java, Kotlin, C# are still Jit compiled languages, with the 
memory footprint to prove it :)


The memory footprint doesn't matter. Those times are OVER :-).


People said that 30 years ago too... It is still an issue, 
though. Not as much as it was, but still relevant.


Programmers seem to be able to suck up whatever RAM is available 
on the low-end by adding frameworks, bloated libraries and 
runtimes, or just bugs…




Re: Go 1.9

2017-06-22 Thread Bienlein via Digitalmars-d

On Friday, 23 June 2017 at 06:41:26 UTC, Bienlein wrote:
Java, Kotlin, C# are still Jit compiled languages, with the 
memory footprint to prove it :)


The memory footprint doesn't matter. Those times are OVER :-).


Here are some references:

http://benchmarksgame.alioth.debian.org/u64q/go.html
http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=go&lang2=gcc

There you can see how little memory Go uses compared to C and 
Java. Java will also get better as it will also get value types 
in some upcoming JDK.


Re: Go 1.9

2017-06-22 Thread Bienlein via Digitalmars-d
Java, Kotlin, C# are still Jit compiled languages, with the 
memory footprint to prove it :)


The memory footprint doesn't matter. Those times are OVER :-).






Re: Go 1.9

2017-06-22 Thread Paulo Pinto via Digitalmars-d

On Thursday, 22 June 2017 at 10:23:37 UTC, Russel Winder wrote:
On Thu, 2017-06-22 at 10:00 +, Paulo Pinto via 
Digitalmars-d wrote:

[…]

They were all about Swift, Java, Kotlin, C#.


Isn't Swift a native code language?


Just like Java when one uses any commercial JDK or C# when 
targeting UWP or Windows 8.x devices.


Re: Go 1.9

2017-06-22 Thread Paulo Pinto via Digitalmars-d

On Thursday, 22 June 2017 at 11:11:01 UTC, Wulfklaue wrote:

On Thursday, 22 June 2017 at 10:23:37 UTC, Russel Winder wrote:
On Thu, 2017-06-22 at 10:00 +, Paulo Pinto via 
Digitalmars-d wrote:

[…]

They were all about Swift, Java, Kotlin, C#.


Those are also the major players in the market. C# Microsoft, 
Swift Apple, Java Oracle... so there is more focus on them 
naturally.



Isn't Swift a native code language?


Yep ... Its it uses LLVM.

Java, Kotlin, C# are still Jit compiled languages, with the 
memory footprint to prove it :)




Java is AOT compiled to native code via Excelsior JET, IBM J9, 
IBM Websphere RealTime, JamaicaVM, SubstrateVM, Android ART and 
eventually Java 10.


Sun was the only one religilous against any kind of AOT support, 
all major commercial JDKs always supported AOT compilation.


C# is AOT compiled to native code since day 1, via NGEN, althouth 
it isn't an optimizing compiler and only supports dynamic linking.


C# and VB.NET for Windows 8 and Windows 8.1 only support AOT 
compilation to native code via a format called MDIL (Machine 
Dependent Intermediate Language), basically native code with 
symbolic labels, linked on the devices at installation time.


C# and VB.NET for UWP are always AOT compiled to native code and 
static linking is used.


Better learn what the competition is actually doing.




Re: Go 1.9

2017-06-22 Thread Wulfklaue via Digitalmars-d

On Thursday, 22 June 2017 at 10:23:37 UTC, Russel Winder wrote:
On Thu, 2017-06-22 at 10:00 +, Paulo Pinto via 
Digitalmars-d wrote:

[…]

They were all about Swift, Java, Kotlin, C#.


Those are also the major players in the market. C# Microsoft, 
Swift Apple, Java Oracle... so there is more focus on them 
naturally.



Isn't Swift a native code language?


Yep ... Its it uses LLVM.

Java, Kotlin, C# are still Jit compiled languages, with the 
memory footprint to prove it :)


C# may change to a native compiled language with CoreRT ( This 
translates C# to C++ code and then compiles it. A bit like Haxe 
(C++ target) or Nim(C target) ).


Re: Go 1.9

2017-06-22 Thread Russel Winder via Digitalmars-d
On Thu, 2017-06-22 at 10:00 +, Paulo Pinto via Digitalmars-d wrote:
> […]
> 
> They were all about Swift, Java, Kotlin, C#.
> 
Isn't Swift a native code language?
> 
-- 
Russel.
=
Dr Russel Winder  t: +44 20 7585 2200   voip: sip:russel.win...@ekiga.net
41 Buckmaster Roadm: +44 7770 465 077   xmpp: rus...@winder.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder

signature.asc
Description: This is a digitally signed message part


Re: Go 1.9

2017-06-22 Thread Paulo Pinto via Digitalmars-d

On Thursday, 22 June 2017 at 07:15:26 UTC, Bienlein wrote:
I suspect though that like Go took Python more than C folk, 
Kotlin Native will take more Java that C++, Go and Rust folks. 
But speculation rarely turn out quite as speculated.


In Java development there is almost no C or C++ and no Rust or 
D at all. Memory is no problem. Some server needs 256 GB RAM or 
maybe 512 GB? That's not an issue anywhere. As long as you get 
the performance through parallelisation there is no need for C 
or C++.


You won't meet any Java EE archtitecture that will do anything 
else than fight against calling C, C++ routines from Java. That 
is only done in some very exceptional cases.


This includes how Android developers see the use of the NDK, and I
quote:

"""
Squeeze extra performance out of a device to achieve low latency 
or run computationally intensive applications, such as games or 
physics simulations.


Reuse your own or other developers' C or C++ libraries.
"""

https://developer.android.com/ndk/guides/index.html

Anything else is frowned upon and only available to Java, 
requiring JNI calls to access the features from C and C++.


They even pivoted Brillo from a being a simplified Android with 
C++ Framework, to a simplified Android where even user space 
drivers can be written in Java.


https://developer.android.com/things/sdk/drivers/index.html



The days of languages for systems programming are over. There 
are only very few people that need such a language. That is why 
D really needs a decent GC, otherwise it won't find any users 
that would do production systems with it.


This was quite visible at this year's WWDC, Google IO and BUILD.

They were all about Swift, Java, Kotlin, C#.

There were hardly any meaningful talks with C or C++ content 
related to actual software development on their OSes, other than 
to share the latest improvements in compiler/IDE tooling and ANSI 
C++ compliance.





Re: Go 1.9

2017-06-22 Thread Russel Winder via Digitalmars-d
On Thu, 2017-06-22 at 07:15 +, Bienlein via Digitalmars-d wrote:
> > 
[…]
> In Java development there is almost no C or C++ and no Rust or D 
> at all. Memory is no problem. Some server needs 256 GB RAM or 
> maybe 512 GB? That's not an issue anywhere. As long as you get 
> the performance through parallelisation there is no need for C or 
> C++.

The whole "Just add more memory" approach of JVM installations leads to
some really crap programs and programming. And what is worse, they do
not even do parallelism properly. Whenever I did Java workshops, I was
always dreadfully disappointed how bad at programming the lower 50% of
programmers were. I.e. the average Java programmer is really not very
good.

A fairly good metric in the UK is, if a supposed Java programmer hasn't
heard of DevoxxUK or JAXLondon or has heard of them but doesn't want to
go, then they are not a Java programmer, they are just robots turning
out Java code, disinterested in their profession.. 

> You won't meet any Java EE archtitecture that will do anything 
> else than fight against calling C, C++ routines from Java. That 
> is only done in some very exceptional cases.

Same goes for people sensibly avoiding Java EE and using Springboot or
container-base system, even those using Tomcat. JNI is horrible, to be
used only if absolutely necessary. Hence JNA, JNR, etc. all designed to
make FFI easier with the JVM. The next round of Charlie Nutter's
assault on JVM FFI may make things a lot better.

> The days of languages for systems programming are over. There are 
> only very few people that need such a language. That is why D 
> really needs a decent GC, otherwise it won't find any users that 
> would do production systems with it.

It depends what you mean by systems programming. Go folk for example
seems to thing anything to do with The Web is systems programming.

Whilst many people see The Web as the only thing that programmers do, I
bet that most software has nothing to do with it. JVM-based system
account for a lot, but it is nearly all Web oriented. Python has
hegemony currently (but not for long I'll wager) in AI and machine
learning. Many, including some Scala and Kotlin folk see the
constraints of the JVM (that containers, Docker, and Kubernetes have
quite nicely highlighted) – native code is resurgent.

But yes, there are different forms of native code, and I agree, there
are places where a GC cannot be used (hard real time currently, but
people are working on that, again cf. Go folk), and the rest where GC
is a good thing. But only a good GC is a good thing – this lesson comes
from 20 years of JVM. The JVM has encouraged research and
implementation of GCs.

-- 
Russel.
=
Dr Russel Winder  t: +44 20 7585 2200   voip: sip:russel.win...@ekiga.net
41 Buckmaster Roadm: +44 7770 465 077   xmpp: rus...@winder.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder

signature.asc
Description: This is a digitally signed message part


Re: Go 1.9

2017-06-22 Thread Laeeth Isharc via Digitalmars-d

On Thursday, 22 June 2017 at 07:32:51 UTC, Wulfklaue wrote:

On Thursday, 22 June 2017 at 07:15:26 UTC, Bienlein wrote:
In Java development there is almost no C or C++ and no Rust or 
D at all. Memory is no problem. Some server needs 256 GB RAM 
or maybe 512 GB?


That is just sloppy... There is this bad trend in the industry, 
it has been going on for years. Performance issue, trow more 
hardware at the problem. Optimizations? Trow more hardware at 
the issue.


The problem being that it has becomes a constantly lowering 
expectations bar. Hire some basic programmers, use 
php/ruby/python and performance issues are simply overlooked as 
part of the job.


In my daily job seeing php import scripts that suck up a GB 
just for some basic work, is considered almost normal. Let the 
client pay for more performing servers. Our developers need to 
write more code, faster, be ready before the deadline so we can 
bill the client for the fast work.


That's not an issue anywhere. As long as you get the 
performance through parallelisation there is no need for C or 
C++.


And while this works on a local server, the moment you start 
with clusters, master-slave configurations etc, things get 
complicated fast. Especially with latency issues.


You won't meet any Java EE archtitecture that will do anything 
else than fight against calling C, C++ routines from Java. 
That is only done in some very exceptional cases.


That same applies to just about every other language. Native 
will always be prioritized before external calls.


The days of languages for systems programming are over. There 
are only very few people that need such a language. That is 
why D really needs a decent GC, otherwise it won't find any 
users that would do production systems with it.


Technically, with Go, Rust, Crystal etc more about those high 
performing languages, then before. Before it was all about 
scripting languages, slowly you see a trend backing away from 
them.


Massive relative price shocks can be important in shaping trends 
in the use of technology.  Storage prices drop 40% annually, 
Moore'a Law isn't what it was, and dram latency isn't improving 
nearly as fast as data sets are increasing in size.  Intel non 
volatile storage technology upsets all our assumptions about 
where the bottlenecks are, and there seems a decent chance that 
as you say the tilt away from slow languages is only just 
beginning.


https://www.quora.com/Why-is-Python-so-popular-despite-being-so-slow/answer/Laeeth-Isharc?share=5ebdf91a&srid=35gE

Acam paper linked at the end of this.



Re: Go 1.9

2017-06-22 Thread Wulfklaue via Digitalmars-d

On Thursday, 22 June 2017 at 07:15:26 UTC, Bienlein wrote:
In Java development there is almost no C or C++ and no Rust or 
D at all. Memory is no problem. Some server needs 256 GB RAM or 
maybe 512 GB?


That is just sloppy... There is this bad trend in the industry, 
it has been going on for years. Performance issue, trow more 
hardware at the problem. Optimizations? Trow more hardware at the 
issue.


The problem being that it has becomes a constantly lowering 
expectations bar. Hire some basic programmers, use 
php/ruby/python and performance issues are simply overlooked as 
part of the job.


In my daily job seeing php import scripts that suck up a GB just 
for some basic work, is considered almost normal. Let the client 
pay for more performing servers. Our developers need to write 
more code, faster, be ready before the deadline so we can bill 
the client for the fast work.


That's not an issue anywhere. As long as you get the 
performance through parallelisation there is no need for C or 
C++.


And while this works on a local server, the moment you start with 
clusters, master-slave configurations etc, things get complicated 
fast. Especially with latency issues.


You won't meet any Java EE archtitecture that will do anything 
else than fight against calling C, C++ routines from Java. That 
is only done in some very exceptional cases.


That same applies to just about every other language. Native will 
always be prioritized before external calls.


The days of languages for systems programming are over. There 
are only very few people that need such a language. That is why 
D really needs a decent GC, otherwise it won't find any users 
that would do production systems with it.


Technically, with Go, Rust, Crystal etc more about those high 
performing languages, then before. Before it was all about 
scripting languages, slowly you see a trend backing away from 
them.


Re: Go 1.9

2017-06-22 Thread Bienlein via Digitalmars-d
I suspect though that like Go took Python more than C folk, 
Kotlin Native will take more Java that C++, Go and Rust folks. 
But speculation rarely turn out quite as speculated.


In Java development there is almost no C or C++ and no Rust or D 
at all. Memory is no problem. Some server needs 256 GB RAM or 
maybe 512 GB? That's not an issue anywhere. As long as you get 
the performance through parallelisation there is no need for C or 
C++.


You won't meet any Java EE archtitecture that will do anything 
else than fight against calling C, C++ routines from Java. That 
is only done in some very exceptional cases.


The days of languages for systems programming are over. There are 
only very few people that need such a language. That is why D 
really needs a decent GC, otherwise it won't find any users that 
would do production systems with it.





Re: Go 1.9

2017-06-20 Thread Russel Winder via Digitalmars-d
On Mon, 2017-06-19 at 19:07 +, Ecstatic Coder via Digitalmars-d
wrote:
> […]
> 
> But Go still doesn't have proper generics, which keeps it 
> light-years behind D in terms of expressivity.

Go doesn't have, and likely will never have, generics in the C++, D,
Chapel sense, but then Rust doesn't either. Go has two routes for
achieving the goal that C++ generics (and hence D and Chapel generics)
were intended for. You have to use the idiomatic approach for the
language. Saying Go is behind D is missing the point that the languages
are different and have to be used differently to achieve the same goal.

> Still time to convince people to use D instead of Go then...

The only way of doing this is to have lots of problems programmed
idiomatically in D, Go, Rust, Kotlin, with unbiased compare and
contrast notes. You end up finding different languages are best in
different problems. Which is hardly a surprise. Generally it is the
libraries that are the truly key factors. 

And do not underestimate personal choice, different language gel with
different people (though there is some Stockholm Syndrome effect with
some people).

For me just now, D beats C++ for working with Gtk and GStreamer. For
other problems I go with Go, or partake of Python. C++17, or more
likely C++20, may make C++ interesting again. I though C++11 had, but
in the end it didn't.

-- 
Russel.
=
Dr Russel Winder  t: +44 20 7585 2200   voip: sip:russel.win...@ekiga.net
41 Buckmaster Roadm: +44 7770 465 077   xmpp: rus...@winder.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder

signature.asc
Description: This is a digitally signed message part


Re: Go 1.9

2017-06-19 Thread Wulfklaue via Digitalmars-d

On Monday, 19 June 2017 at 16:13:20 UTC, Russel Winder wrote:

I'd be more bothered by Kotlin native that Scala native.


Thanks, did not even know that Jetbrain is also going for a 
native LLVM version. It even seems they are in contact with the 
Scala-native team. Looks like everybody is jumping on the native 
LLVM compilation bandwagon.


Re: Go 1.9

2017-06-19 Thread Ecstatic Coder via Digitalmars-d

On Monday, 19 June 2017 at 13:24:00 UTC, Russel Winder wrote:
Go gets parallel compilation, at last, and better garbage 
collection. The former is not a problem for D, but the latter…





Indeed a faster garbage collector will be a good selling point 
for Go.


But Go still doesn't have proper generics, which keeps it 
light-years behind D in terms of expressivity.


Still time to convince people to use D instead of Go then...



Re: Go 1.9

2017-06-19 Thread Russel Winder via Digitalmars-d
On Mon, 2017-06-19 at 15:44 +, bpr via Digitalmars-d wrote:
> On Monday, 19 June 2017 at 13:24:00 UTC, Russel Winder wrote:
> > Go gets parallel compilation, at last, and better garbage 
> > collection. The former is not a problem for D, but the latter…
> > 
> > 
> 
> It should also be noted that, even though it's still a research 
> project, Scala native just recently upgraded it's Boehm GC to an 
> Immix based one. Scala native would be yet another language 
> competing with D, and might compete in even more domains than Go 
> would.

I'd be more bothered by Kotlin native that Scala native. 

Scala did a lot for the JVM in terms of getting "functional" accepted as a
word that wasn't a swear word. However it is a very complicated language.
Kotlin is a great "half way house" in replacing Java but not being as
complicated as Scala but with the same "functional objects" approach that
Scala started and championed. Scala trieed as yet.d to be and now Kotlin has
become the language of choice for the discerning JVM-oriented Android
developer.

With Kotlin Native now announced and going great guns, it may be that C++,
D, Rust, and Go, get a challenge that Scala Native has not managed.

I suspect though that like Go took Python more than C folk, Kotlin Native
will take more Java that C++, Go and Rust folks. But speculation rarely turn
out quite as speculated.

-- 
Russel.
=
Dr Russel Winder t:+44 20 7585 2200   voip:sip:
russel.win...@ekiga.net
41 Buckmaster Road   m:+44 7770 465 077   xmpp:rus...@winder.org.uk
London SW11 1EN, UK  w: www.russel.org.uk skype:russel_winder

signature.asc
Description: This is a digitally signed message part


Re: Go 1.9

2017-06-19 Thread Wulfklaue via Digitalmars-d

On Monday, 19 June 2017 at 15:44:47 UTC, bpr wrote:
It should also be noted that, even though it's still a research 
project, Scala native just recently upgraded it's Boehm GC to 
an Immix based one. Scala native would be yet another language 
competing with D, and might compete in even more domains than 
Go would.


Immix has a very impressive speed compared to default Boehm.

http://img.phperz.com/data/img/20170616/1497580303_4280.png


Re: Go 1.9

2017-06-19 Thread bpr via Digitalmars-d

On Monday, 19 June 2017 at 13:24:00 UTC, Russel Winder wrote:
Go gets parallel compilation, at last, and better garbage 
collection. The former is not a problem for D, but the latter…





It should also be noted that, even though it's still a research 
project, Scala native just recently upgraded it's Boehm GC to an 
Immix based one. Scala native would be yet another language 
competing with D, and might compete in even more domains than Go 
would.


Re: Go 1.9

2017-06-19 Thread Jack Stouffer via Digitalmars-d

On Monday, 19 June 2017 at 13:24:00 UTC, Russel Winder wrote:

The former is not a problem for D, but the latter…


Disagree. One of D's biggest competitive advantages is fast 
compilation of fast code. If other languages become as fast or 
faster than DMD in compilation speed then that's a big problem.


Re: Go 1.9

2017-06-19 Thread Bienlein via Digitalmars-d

On Monday, 19 June 2017 at 13:24:00 UTC, Russel Winder wrote:
Go gets parallel compilation, at last, and better garbage 
collection. The former is not a problem for D, but the latter…





Right, D2 has a problem with the GC. It cannot be put to 
reasonable speed, because of initial design decisions with D 
memory management. If there is a reason for D3, then it is to 
make the required changes so that the GC can be made faster.


The GC is in my opinion very important for the success of D. Go 
is the best example that a programming language for "system-like" 
programming can have a huge success out there in the real world. 
If using the GC were problem free in D, a lot of projects that 
chose Go might have gone with D. And there are tons of 
applications out there that are the flag ship product of some 
startup company that are written in Go.


So the best thing that can happen to D, IMHO, is that the GC 
issue is resolved even if that required a move from D2 to D3.