I'm doing a computer science A level in school and our coursework is to create a programming project of our choice. I've decided I would like to try and create a hardware monitoring software similar to msi afterburner or nzxt cam. I was wandering which language would be best for something like this and if this is a realistic task for someone who only really has basic knowledge of python currently.
If you want to play with hardware on professional level, you should go C/C++ way, but it's not an easy path to take.
Java is completely PITA choice for that (as it runs in virtual machine).
Any .NET language would still call down to native libraries to mine the data you'd need. But, if it is a school project (ie. not university degree) I'd say you can get quite a lot of data quite easily in C#/.NET while having language with plenty features that's much easier to approach than hardcore C++.
Otoh even with latest development of .NET multiplatformity it's not trivial to make it working on non-Windows systems. But then again tools like these need to be stitched specifically for the platform they run on, so Java or C/C++ won't multiplatform out of box either... The more details you'd want to mine the more differences between platforms.
What kind of HW monitoring program.
Somebody has already prepared the drivers, bootloader, diagnostic, etc. on the device and you need only to read the status information sent by the device?
You need to write everything on your own?
If you need to write everything on your own, C/C++ is the better choice.