What does "predictive discrimination" mean and how is it different from classification? What does predictive discrimination mean and how is it different from classification?
My question is prompted by Frank Harrell's comment:

Predictive discrimination is much more general a concept than classification.
...

This comment is at odds with my current thinking that predictive discrimination is simply an old-fashioned synonym for what is now called the supervised classification task. I would also assume that predictive discrimination is distinct from just discrimination, which could also mean clustering, depending on the context.
This term does not appear at all in books on machine learning that I usually use as a reference. Searching the web proved to be unproductive, as mostly sociopolitical applications of machine learning come up in the results.
 A: Frank Harrell's comment [emphasis is mine]:

Predictive discrimination is the degree to which predictive signals can separate those with good outcomes from those with worse outcomes. The most popular measures of discrimination are R2 and c-index (concordance probability; equal to AUROC when Y is binary). Rank correlations between X and Y are measures of predictive discrimination. This is more general than classification as it takes into account tendencies/gray zones as in probability models. See https://fharrell.com/post/addvalue

His comparison of predictive discrimination to classification seems like apples and oranges to me, because the former is a statistic or performance measure, while the latter is a task or a problem setting. But this will do.
A: Predictive discrimination is the ability of a model to produce (distributions of) predicted values that are separated when the observed values are distinct, and to have the correct order, and I think this is totally consistent with the quote in the answer by paperskilltrees. This is not the same as making quality predictions. A model can have good, even perfect, predictive discrimination while having terrible performance, as I will demonstrate below.
set.seed(2023)
N <- 1000
y_true <- runif(N, 0, 1)
y_pred <- 10 + y_true
plot(y_true, y_pred)


The predicted values are perfectly correlated with the true values, yet the predictions are terrible.
Similarly, a model that predicts probabilities (a "classifier" in many circles) can produce probabilities that are well-separated between the classes yet are not reflective of the true probability of an event occurring. This would be reflected in the ROCAUC being high (or the correlation between the true and predicted values) yet the performance according to something like Brier score or log loss being poor.
library(rms)
set.seed(2023)
N <- 1000
p_true <- rbeta(N, 1/4, 1/4)
y_true <- rbinom(N, 1, p_true)
y_pred <- ecdf(p_true)(p_true)
rms::val.prob(y_pred, y_true)


The measures of predictive discrimination, AUC and squared correlation, are quite high (especially AUC), but the calibration is terrible, as the curved plot that deviates from the "ideal" shows.
