I started off with Mach3 and tried LinuxCNC but didn't like it and in the end, I went for UCCNC. I think it is excellent. The drawback is that it has no lathe control function, so if you are dependent on that then you must stay with Mach.