Le 08/02/2017 à 19:27, Ilya Yaroshenko a écrit :
I can answer for the product on which I am working (Home Design 3D), others are video games made with Unity which is imposed by the editor.

On Home Design 3D the development teams have the choice of technologies to use, but we have to convince our boss. There is an history, any developer on previous teams knows the D language, we are now 2 on 6 that having few basics.

1. Why your company uses  D?

  a. D is the best
  b. We like D
  c. I like D and my company allowed me to use D
  d. My head like D
  e. Because marketing reasons
  f. Because my company can be more efficient with D for some tasks then
with any other system language

We don't use D.

2. Does your company uses C/C++, Java, Scala, Go, Rust?

C++11, other languages as Java or objective-C can be used for OS specifics (Android and iOS).

3. If yes, what the reasons to do not use D instead?

There is a lot of obstacles to migrate to D or at least using it partially in our product or for tools.
Here is the list sorted by difficulties:
1. The team isn't enough familiar with the D language
2. It seems too hard to use it with our actual C++ dependencies (QtQuick, boost geometry, and a lot of other C/C++ libraries) 3. We don't have enough feedback on how it can be used on all our targeted platforms (Android, iOS, Windows x86 and x64, MacOS) 4. Due to some differences with the c++ major refactoring will be necessary after a translation to have the same performances (GC will impact a lot the resources management) 5. The quality of the possible integration with a complete production ecosystem is unknown.
  IDE : Debugging, refactoring
Platforms : Compatibility with Stores (and there tools such as crash reporting,...) 6. D isn't as mature as C++, so there is fewer articles on internet that can help on particular subjects. And no body will give code examples in D, so even for test we would have to port it. This will globally impact the productivity.

2. Have you use one of the following Mir projects in production:

  a. https://github.com/libmir/mir
  b. https://github.com/libmir/mir-algorithm
  c. https://github.com/libmir/mir-cpuid
  d. https://github.com/libmir/mir-random
  e. https://github.com/libmir/dcv - D Computer Vision Library
  f. std.experimental.ndslice


3. If Yes, can Mir community use your company's logo in a section "Used
by" or similar.

4. Have you use one of the following Tamedia projects in your production:

  a. https://github.com/tamediadigital/asdf
  b. https://github.com/tamediadigital/je
  c. https://github.com/tamediadigital/lincount

5. What D misses to be commercially successful languages?

I think that it start with a bigger adoption, but it can be addressed directly, so it have to easy to take into. IMO documentation IDE friendly-ness,... will help newbie to start. After tools necessary to have stable and effective products are critical, debugger (code and memory), profiler,... On this point to IMO the ergonomic is important (not every developer want to use command line and a lot would prefer UI).

I also think that it depends who is the target, because Java developers will be certainly more reticent to come to D if tools don't have good UI than C/C++ developers that works mostly under linux.

Personally I develop only under Windows and having a great integration between D tools with UI is one of the most important thing. I want an IDE that is ready for use after installation, with dub integrated, unit tests UI, compilers and debuggers configured and ready for cross compilation.

6. Why many topnotch system projects use C programming language nowadays?

IMO the fact that C is one of the first language helps a lot, languages that came after few or any are system languages. I find that C/C++ didn't evolve a lot for many years and it start to come better with C++11, 14 and 17. Maybe D have put some pressure.

I don't know a lot of languages but I think that D have the potential to be a much better system language than C++, and it should be else nobody will migrate if the win isn't enough.


All my current D project are finished. Probably I will use other
languages for production this year, Java/Go/whatever. Mir libraries are
amazing and good quality. If you use them this would be a good
motivation for us to improve the docs and provide regular updates. Plus,
it can be enchanted during the GSoC 2017.


Reply via email to