While i want to say DLang, D's compiler and adoption aren't quite mature enough even if the language brought forth a lot of good things which other languages have picked off and started using elements of it.
Java, C#, and Rust may all be contending options. If you don't mind interpreted, Python is fairly popular.
Either way you go, you should write some code and see how it looks and feels. Personally i did a sorting algorithm, QuickSort in C++, before ultimately dropping it. Maybe write a little text processor to find specific tokens and replace them, like when it finds {} to put 99 and decrement to 1, and repeat until you hit 0. (
99 bottles of beer or something).
Make your own templated something, anything. Making a BigInt library (
only using strings) isn't that difficult, and can do it probably in under 50 lines of code.
Incorporate unittests suite of some sort so you can do tests on your code to ensure it works correctly or 'as intended', and you can see how easy or difficult incorporating one for a small or large project would be.
Use another's library, be it zlib to compress a file and then uncompress it, or a image or png library and draw some circles and save files.
Get a feel of the language, and don't start going full hog into it unless you feel it's what you want to do, or you need it for a complex project or a project already using the language.
.Keys: I started learning C a while ago and I quite like it, albeit I've never used it in any kind of project
C is quite nice by itself, though it really fails at a handful of things, like memory management, error handling, and string manipulation. But larger projects are.... annoying in C. Better to use C for low level work on specific functions/utilities.
.Keys: Rust is a good "modern alternative" by what I've read.
To my understanding Rust originally was DLang, but at some point the build got a fork and deviated in it's own direction for specific features and his methodology of solving certain key problems, giving you Rust.