I'm a big fan of the way JetBrains sells their licenses. Like a lot of software companies nowadays, they only sell licenses on a subscription basis. But with a very customer-friendly clause of where if you pay for a subscription for 12 months you get a perpetual license for the latest version of the product when you initially subscribed. And then after paying for any particular version of a product for 12 months, you…
When your one-year subscription expires you actually have a perpetual license for the first version that was available when you signed up. NOT for the last one available when the contract ended.
In other words, when your one year subscription is up, you have to downgrade to a one year-old (possibly buggy) version.
For more mature toolchains like C or Java, this seems reasonable. For ones that undergo massive updates each version (WebStorm, AppCode) it's a non-starter.
EDIT: on second read, this may have been what the parent poster was trying to say. I'm leaving this comment as-is though because there seems to be a TON of confusion about this point.