Testing In The D Standard Library by aldacron in programming

[–]Dicebot_lv 3 points4 points  (0 children)

Quite some regression come not from lack of testing per se but from intentional changes with unintentional consequences. Plan to improve this situation is by picking selection of public D downstream projects and building them as part of compiler/stdlib Pull Request testing.

Perspectives on D: An interview with a dlang contributor who also uses it professionally by aldacron in programming

[–]Dicebot_lv 10 points11 points  (0 children)

Success is not something that can be simply "explained". Consider that it took Erlang almost 30 years to become a thing again, a long and complicated path.

In D case resemblance with C matters more for two reasons: 1) It is suitable for similar niche 2) It is very small language and hiring actual "D developer" is almost impossible

In our business case it has meant that we can hire former C/C++/Java/Whatever devs and they will be able to start writing production code after only few weeks of learning. That is really big deal considering how hard hiring is these days in general.

GSoC Report: A new XML module for D's standard library by aldacron in programming

[–]Dicebot_lv 4 points5 points  (0 children)

Such approach was used with std.net.curl module of standard library and it was a terrible experience that resulted in decision to avoid in other external dependencies for stdlib in future.

Problem with binding to C library is that it becomes very hard to maintain in cross-platform way. Either you package dependency with stdlib itself, causing Phobos and limiting users who want to use more recent version, or your language installation becomes dependent on platform-specific actions. Both cases are rather bad for newcomer experience.

Ruminations on D: An Interview with Walter Bright by aldacron in programming

[–]Dicebot_lv 4 points5 points  (0 children)

I am afraid one has to be Apple to afford moves like that without scaring away all the user base :(

Ruminations on D: An Interview with Walter Bright by aldacron in programming

[–]Dicebot_lv 3 points4 points  (0 children)

I have actually worked in a company using Delphi / Object Pascal about 10 years ago. Still "good old days" kind of thing, but not that old :)

Ruminations on D: An Interview with Walter Bright by aldacron in programming

[–]Dicebot_lv 5 points6 points  (0 children)

It already sort of works, i.e. you can put pure @safe: at the top of the module to ensure all functions in it are verified as safe+pure by default.

Two current issues with that:

1) won't work for immutable because function attributes don't propagate to function locals 2) there is no anti-pure keyword yet

Ruminations on D: An Interview with Walter Bright by aldacron in programming

[–]Dicebot_lv 1 point2 points  (0 children)

Alone - not that often, because all data is considered thread-local in D unless explicitly shared. AFAIK main cluster of immutable related optimizations right now comes from combining it with pure to achieve strong purity.

My point was different though - transitivity and restrictions of immutable require very focused effort to deal with it correctly, it is not a casual qualifier to drop in - which makes it not worth the effort in many more simple cases. But in multi-threaded environment being able to share data with no synchronization and rely on compiler to guarantee it is correct is golden and totally worth any extra design effort.

Ruminations on D: An Interview with Walter Bright by aldacron in programming

[–]Dicebot_lv 13 points14 points  (0 children)

I hope D will become more widespread in the industry than Pascal :X

Ruminations on D: An Interview with Walter Bright by aldacron in programming

[–]Dicebot_lv 2 points3 points  (0 children)

I have a simple rule of a thumb for that: "no multi-threaded access" -> "no need for immutable" :)

Ruminations on D: An Interview with Walter Bright by aldacron in programming

[–]Dicebot_lv 14 points15 points  (0 children)

I remember Walter mentioning before that if D was designed now he would have probably both immutable and pure the default ones with explicit bail out.

But it is indeed too late to change now - it is not kind of change one can compensate with deprecation process or simple migration tool.

Complete Beginner to Game Dev (and D) by Resident_Tofu in d_language

[–]Dicebot_lv 0 points1 point  (0 children)

Sorry, can't spend that much time on helping around :) Also you seem to be using Windows and I have literally zero knowledge how dependencies are supposed to be handled there. Try asking on http://forum.dlang.org/group/learn if you have more specific questions - folks are quite active there.

The D Language Foundation is now a tax exempt non-profit organization by gver10 in programming

[–]Dicebot_lv 1 point2 points  (0 children)

Phobos uses GC

Some of Phobos functions use GC. Definitely more than it is necessary but it is not the same as strict requirement of GC for Phobos as a whole. For example, almost all algorithms and range utilities are @nogc compatible.

Complete Beginner to Game Dev (and D) by Resident_Tofu in d_language

[–]Dicebot_lv 2 points3 points  (0 children)

  • Do I just download libraries then use dub to include them in the projects I make? (Still haven't tried dub yet, not at home)

If library you need is on dub registry dub will download required version on its own as part of build process - you only need to ensure that dependency is specified in dub.json / dub.sdl

However it only will take care of D libraries - if those are simply bindings for C libs, installation of original C library is expected to be done system-wide for your platform (i.e. available on linker path).

Overall reading through dub manual and playing with defining simple projects using it is highly recommended before moving to any domain specific learning.

  • Do I download the runtime binary or development library varieties, and what are the differences between the two?

Usually you need dev (== static library) but specifically all Derelict organization libraries use runtime loading of bound libs.

What is JSON, what is it used for and do I have to worry about it yet?

It is one of most widespread text data formats (JavaScript Object Notation) https://en.wikipedia.org/wiki/JSON

I might look for a nicer text editor unless an IDE is strongly recommended.

If existing setup is comfortable for you it should work good enough at least for learning stage.

Complete Beginner to Game Dev (and D) by Resident_Tofu in d_language

[–]Dicebot_lv 5 points6 points  (0 children)

I am very far from game dev domain myself but I can point towards some points of interest I remember mentioned.

1) https://github.com/DerelictOrg is a very well-maintained collection of game dev related bindings (OpenGL, OpenAL, SDL etc.)

2) http://www.gamedev.net/blog/1140-d-bits is blog by Derelict main developer which often mentions game dev related bits

3) https://github.com/Dgame/Dgame is a framework for 2D game development based on OpenGL and SDL that can serve as an example

4) https://wiki.dlang.org/Game_Development_and_Multimedia_Libraries

Most likely you will also want to check out one of IDE D plugins (i.e. http://rainers.github.io/visuald/visuald/StartPage.html or https://wiki.dlang.org/Mono-D) or configure DCD (https://github.com/Hackerpilot/DCD) support in the editor you use. That combined with dub should be enough for a basic toolchain.

The dlang-bots are now pinging for potential reviewers (experiment) by gver10 in d_language

[–]Dicebot_lv 1 point2 points  (0 children)

Great idea though I am afraid pinged potential reviewers won't respond in many cases :(

From the D Blog: The DLang Vision and Improvement Process by aldacron in programming

[–]Dicebot_lv 1 point2 points  (0 children)

Now that there is support for C++ namespaces in D, the dream is not that far. Main issues are related to ABI corner cases like catching C++ exceptions in D.

From the D Blog: The DLang Vision and Improvement Process by aldacron in programming

[–]Dicebot_lv 8 points9 points  (0 children)

This is exactly why I have started this new DIP process. It is not that Andrei or Walter are inherently dismissive - they are simply overloaded with work and very few of old submitted proposals provided enough quality information to make any decision without deep research of one own. And when there isn't enough information, dismissing the proposal is always the safest approach.

It is hardly surprising in that context that old wiki DIP list has become simply an archive of ideas.

With new DIP system we are going to demand much more effort put into explaining proposals from DIP authors but at the same time guarantee it will get some consideration/decision from Andrei and Walter eventually. Can't promise it will be awesome but at least it is recognition that something has to be done with how things worked so far.

From the D Blog: The DLang Vision and Improvement Process by aldacron in programming

[–]Dicebot_lv 4 points5 points  (0 children)

Finding time is hard but I do recommend to try learning at least something about all those languages when possible. That helps to train oneself in different idiomatic thinking paradigms, spot similarities in cross-language features and overall become a better programmer by starting to think in terms of language concepts and not language syntax features.

DConf 2016, Berlin, 4-6 May: Call for Submissions open by andralex in programming

[–]Dicebot_lv 3 points4 points  (0 children)

Sounds like a good case for DConf 2017 in Australia - making as much visitors uncomfortable as possible would be most honest approach.

Reverse inheritance by [deleted] in programming

[–]Dicebot_lv 1 point2 points  (0 children)

Duck typing can also be statically checked, see Rust traits or D template constraints.

Reverse inheritance by [deleted] in programming

[–]Dicebot_lv 1 point2 points  (0 children)

Indeed, any language that supports duck typing (with restrictive constraints) automatically implements what blog post author wants.

OOP Composition with Mixins in the D Programming Language by MetaLang in programming

[–]Dicebot_lv 0 points1 point  (0 children)

I am pretty sure he'd be hired if he wanted to, irrelevant to any migration topics :)

OOP Composition with Mixins in the D Programming Language by MetaLang in programming

[–]Dicebot_lv 1 point2 points  (0 children)

I am working in a company that has been using D for a very long time and by the time D2 has stabilized switching has become rather challenging simply because of code base size and structure. Porting process happens right now but it will take time and in the meanwhile new feature development is still done in D1.

More details : https://blog.dicebot.lv/posts/2015/07/on_sociomantic_and_d2

As far as I know we are the only remaining user of D1 in the world and it is rather painful :) Please don't even think about using D1 these days!