Pages

Friday 29 December 2017

Making Time for the D Language

The D programming language has been an itch for a little while, to the best of my collection, it has been somewhat like for the last four years or so. Being an itch that was never properly remedied in the sense of programmatically exploring the language, it was time to put an effective scratch on the proverbial itch.

I must concede upfront that in terms of severity of an itch, the Rust language generated almost the same level of attention as D, however, after glancing through both written and video material on the internals of Rust, I determined that D would be a more appropriate programming environment to explore at this point.
With this understanding, this blog is really more about trying to understand the D Language from the perspective of someone who enjoys taking a language or two per year for a test spin.

My first impressions of D reminded me of how similar the language is to Object Pascal. Being a Go developer, I also noted some conceptual similarities in how certain features are implemented. My primary attraction to D was defined by what was being presented as relatively easy features to web application, database integration, email management as well as threading application development.

Installing the D environment on the Ubuntu 16.04 laptop was a breeze. D seems to have a couple of compiler applications, each optmised for specific application types - I limited my exploration to the DMD and DUB compilers for now. DUB, though seemingly a compiler, is really more of a package management application. I have used DUB to download and compile a vibe.d web test application environment. The same was also used for a mysql based back end test application.

I consider vibe.d as a pretty advanced and powerful web application framework. The small test application I developed suggests that I may in the future consider creating web backend applications in D. The DIET webpage templating concept was of particular interest.

The next step was to trial an application that communicates with a mysql server. This is where in my opinion similarities between D and Object Pascal come to an abrupt end. So far I managed to select only a single row whereas I am expecting more than a thousand. I need to put more effort and research in understanding the mysql-native package before I can make productive use of mysql integration.

In comparison to other languages I have taken for a spin, finding simple and easy to find examples seems to be a huge  challenge. As much as this is frustrating, I am careful not to cast doubt on the strength and relevance of the D language as part of my software development toolsets.

The next few weeks and possibly months will require a focused approach in learning some of the basics of the D language ecosystem - I like what I have experienced so far.