On Saturday, 14 March 2015 at 14:45:07 UTC, rumbu wrote:
I watched silently this discussion and turns out that it will
end - as always - in some obscure debate about some obscure
languages or more than obscure features.
I take the risk to be blamed, but let me tell you that the
developer world does not spin around R, Python, Fortran,
Haskell and Go. These are nice languages for a bunch of *nix
nerds or very specialized engineers but their usage is very
limited. The battle now is between C/C++/C#/Objective C/Java.
Even the abominable Javascript has a larger user base that
these languages.
Secondly, the same futile waste of energy is consumed in
debates about portability. 97% of desktop system,
believe-it-or-not, are using various flavours of Windows and
some of them OSX. 95% of mobile devices are built on top of
Androis/iOS. There is important *nix usage in the server OSes,
but the usual developer will not start his programming career
writing server applications.
Regular desktop usage statistics don't apply to developer
communities. The few times an OS survey was done here, it was
overwhelmingly Linux IIRC. You can't expect people who don't
use(or have access to) Windows/OSX to cater to those platforms.
D does not have a big corporation like Microsoft or Google
backing it, it has people donating their own time.
D focuses on portability because it's a systems programming
language, not .NET in native form.
About built-in functionality: Let's say that I want to sort
some strings. After I am shocked enough to find out that D has
three types of string which in fact they are not strings but
some weird arrays of something called immutable(char), I'll
look at the sort function prototype:
I can't really think of any language that doesn't implement
strings as an array of characters.
Another one: there is standard library support for complex
numbers. Who's using these complex numbers? But who's using
currencies? I bet that more people are using currencies then
complex numbers. Despite the evidence, D has no standard
support for them. We, mortals, are expecting that 1 / 10 is 0.1
not 0.1000000001 and we don't give a damn about the meaning of
2 + 3i.
complex numbers are much easier to implement than a good currency
system.
So, IMHO, if you want to attract users, here is my list:
- concentrate on most used OSes - Windows/OSX and Android/iOS.
- don't write scary documentation;
- offer standard functionality instead of the obscure one. It's
nice to have it, but the use case scenarios are rare.
- a GUI will be nice. You know, that thing allowing the
developer to put a button and writing events... instead of the
sad black console used by nobody I know.
Followed by renaming it to D#?