Unless you are compiling massive projects then your best bet will likely be a 3900x. You get more cores then you can likely use to handle all the programming multitasking while also having a cpu that’s 5-10% off of the best gaming cpu available. All while keeping within a reasonable budget.
Without question, get the 3900x. It's a bit behind Intel in single-threaded performance, but only barely, and the embarrassment of cores you get compared to the i9-9900K more than makes up for it. Microcenter currently has it on sale for $379 if you buy it together with a compatible mobo, which is the deal of the century.
There is some confusion in their naming. Zen is the architecture name, and so far we've had Zen, Zen+, and Zen 2. The consumer processor line is branded Ryzen (and Ryzen Mobile for laptop parts). The HEDT processor line is branded Threadripper, and the server line is branded Epyc.
Ryzen and Threadripper 1000-series are Zen.
Ryzen Mobile 2000-series is Zen.
Epyc 7001-series is Zen.
Ryzen and Threadripper 2000-series are Zen+
Ryzen Mobile 3000-series is Zen+.
Ryzen and Threadripper 3000-series are Zen 2.
Ryzen Mobile 4000-series is Zen 2.
Epyc 7002-series is Zen 2 (Epyc skipped Zen+).
Zen 3 is expected in 2020, based on AMD guidance. Asssuming they follow their part numbering scheme, we should expect this to appear in Ryzen and Threadripper 4000-series, Ryzen Mobile 5000-series, and Epyc 7003-series.