This has been a long time coming. The 12-factors have guided us well, but the ecosystem has changed.
The point we're at now reminds me a lot of Java in 2010. Everything was complex--too complex--and the "best practices" led to operational toil. The 12-factor manifesto ushered in a period of simplification that brought us out of big enterprise web servers, and into containers with executable jar files.
Similarly, the cloud-native ecosystem is brimming with complexity. It's time to establish patterns that result in more scalable, portable, and maintainable apps. Updating the 12-factor is how we'll do it.
I think this is exactly why people should use Buildpacks over Dockerfiles. I've seen so many Dockerfiles that are wrong, or even introduce security problems.
To you first point, there's probably no example of a Buildpack because (unlike Dockerfile) most Buildpack users don't write their own. They are reuseable. I'm not sure why the author didn't include an example of running a buildpack against an app though.
To your second point, Buildpacks are written in code too. But unlike Dockerfile, they use real programming languages that you can write tests for.
I'm the Java Languages Owner at Heroku. While I can't reveal in full detail why we do (or do not) officially support a particular language, I can say that it has nothing to do with how resource-hungry the runtime is :)
Our determination to officially support a language is based on numerous factors including community demand, relationship with other technologies, suitability to the platform (C++ is really popular but not for web apps), and more. In any case, I wouldn't read too much into our support--it's not a determination on the language itself.
Today, Heroku support Java (with Maven or Gradle), Scala, and Clojure buildpacks. JRuby is supported via the Ruby buildpack. Buildpacks are the mechanism that prepares each app for production, so in some ways our support is more tightly coupled to the build tools than the language. That's why we don't have a Kotlin buildpack (it can use the Maven or Gradle buildpack accordingly). In fact, there's nothing specially you need to do to run a Kotlin app on Heroku, so we have some docs and there isn't much more to say about it. We've also worked closely with the Kotlin folks to make sure the ecosystem plays well with Heroku.
Let us know if you have any trouble with Clojure on Heroku. Stackoverflow.com is a great place to start (and I personal try to watch for questions tagged with "Heroku" and "Clojure").
LinuxKit (as I understand it) is for building the OS itself. Buildpacks are a higher level abstract for building a complete application image (with the emphasis on application). They take app source code as input, and output a docker image that's ready for prod.
The point we're at now reminds me a lot of Java in 2010. Everything was complex--too complex--and the "best practices" led to operational toil. The 12-factor manifesto ushered in a period of simplification that brought us out of big enterprise web servers, and into containers with executable jar files.
Similarly, the cloud-native ecosystem is brimming with complexity. It's time to establish patterns that result in more scalable, portable, and maintainable apps. Updating the 12-factor is how we'll do it.