I will ask something that maybe looks like a fundamental question, but I believe it is quite essential for young font engineers/devs/(type)designers like myself who knows a little about the history behind OTF and TTF.
I've been curious what really makes the difference between those two extensions. Especially when it comes to Variable Fonts, is it just a type of curves? Or is there any other differences? Or maybe is it just another reminiscence of so-called "font wars" without any particular meaning? Or is there any differences in hinting implementation?
In what circumstances is it recommended to use "otf" and "ttf" variable fonts?
Is there some particular reason why I usually see variable fonts with ",ttf" extension?
A rasterizer that does not support font variations will most likely show the default instance of a variable font if it contains TrueType based outlines. It will fail with CFF based outlines.
TrueType —> WOFF
PostScript —> WOFF2
Yes, there are several reasons.
When the OpenType spec was first extended to support variable fonts, the TrueType flavor of variable fonts came first, by quite a bit. Plus, the PostScript version requires supporting a significantly new flavor of OpenType-PostScript font, with the CFF2 table.
Font development tools and browsers generally supported .ttf variable fonts much sooner as a result, so it became a feedback loop with font designers/developers as well.
Plus, as previously noted by Erwiin Denissen, variable TTF fonts still act like single-master fonts in environments that do not support variable fonts. Variable OTF fonts just fail to work at all in older environments.
Indeed, please let's stop using OTF to refer to CFF or CFF2 flavour OpenType fonts. It is imprecise, and the only reason all OpenType fonts, including TrueType flavour, do not use OTF as a file extension is that TrueType OpenType fonts with the TTF extension work, with limitations, in older and non-OT environments.
[I'd also recommend not using the term PostScript at all when referring to OpenType fonts. Technically, CFF is not PostScript (the CFF format as published by Adobe independently of the more restricted definition of the CFF table in an OpenType font, provides for embedding of PostScript language code, but is not itself PostScript). As one of the Adobe engineers pointed out during the specification of the CFF2 table, there is not one line of PostScript in a CFF OT font, so we should stop referring to them as PS.]
Variable TT fonts (TrueType)
Variable glyf fonts (table tag)
Variable quadratic fonts (Bézier curve)
Variable CFF2 fonts (table tag)
Variable cubic fonts (Bézier curve)
Variable OTTO fonts (sfntVersion)
(Tom has pointed out one customer-relevant issue: with a TT-flavoured variable font, the default instance continues to work in legacy software. I'm not sure to what extent, in practice, it's an issue for potential customers.)