On Monday, 25 January 2016 at 18:11:24 UTC, Dibyendu Majumdar wrote:
On Monday, 25 January 2016 at 02:37:40 UTC, Andrei Alexandrescu wrote:
Hot off the press! http://wiki.dlang.org/Vision/2016H1 -- Andrei


I am new to D, and having my own language implementation (based off Lua) - therefore I think I can appreciate some of the difficulties around getting more contributors to D. For what its worth below are some thoughts on the H1 2016 priorities.

I am a would be D user - D is a tool that should help me get my job done. I guess the vast majority of potential users are in this bracket. To become a contributor requires one of the following - a) it must be your day job, i.e. someone paying you to work on the language, or b) you happen to have lots of free time and deeply interested in D's development, plus have the skills needed to contribute to D. I think that getting contributors to the core of D is going to be difficult. Most other languages/compilers that have big list of contributors usually have one or more large organisations funding the people working on the language. Rust, Go, Gcc, Clang, Java, C#, all fall into this category. I am not sure about Python, but I suspect companies like Google sponsored a lot of the work done in Python.

Assuming that above is correct and that you will only have a handful of people who can contribute to core D - then it seems to me that the effort needs to be a) least wasteful, and b) highly focused. Right now, there are multiple implementations of D compiler - DMD, GDC, LDC, SDC - here you have a bunch of people who obviously have the time, the knowledge and the desire to develop D. Yet the effort is spread out into several different implementations, and therefore wasteful. Why not form a core group and settle on one implementation and everyone focus on that? I know this is very hard as no one would be willing to give up their creation, but for the greater good of D? Perhaps you could assess each implementation and settle on the one that has the most technical merit and future proofing?

dmd, gdc, and ldc already share a common frontend. Walter, the main dmd developer, will never look at the llvm or gcc backends for legal reasons; the gcc devs likely won't touch anything that's not GPL; and the ldc devs likely prefer the license or implementation of llvm. I'm not sure what motivates the sdc devs, but it's likely having a frontend written in D itself that is focused on being easily used as a library, which dmd's recently translated D frontend isn't. Other than sdc, I doubt there's actually much code duplication going on, so I don't think this redundancy hurts.

As a D user who wishes to use D as a better C / C++ - my personal needs are following:

a) D should work on the three major platforms - Windows, Linux and OSX. b) It should be possible to write code in D that one would have written in C / C++ - i.e. let the programmer have full control. c) A good debugger on all supported platforms is essential for any complex language. d) A good IDE is essential to attract users accustomed to Eclipse, IntelliJ, Visual Studio.
e) A core library that handles the most basic stuff.
f) Ability to easily import C libraries. I struggled with htod - haven't tried dstep yet - but implementing tooling based on Clang seems sensible.

I don't think there has ever been a language that would fulfill all these requirements, let alone an OSS one that was available free of charge. D gets you some of the way, but it cannot grant you all your wishes.

The need to have a good standard GUI toolkit is not so great these days as users are moving away from Desktop applications.

Yeah, a couple toolkits in dub is fine.

I realise that interfacing with C++ seems like a big goal - but to be honest this isn't important to me. C++ isn't the standard for cross language interfacing ... C is.

Which is why D long didn't support interfacing with C++. But the leadership feels there is some untapped market out there that will warm to D once it can interface with C++ better, and I avoid C++ like the plague so I can't say if that's true or not. I know that I personally don't care for such C++ integration- nor do many in the D community, or they wouldn't be using D already- but those who do seem to have their ear for now.

Reply via email to