Well, you can pretty much consider the high end IBM mainframe machines "application servers", they're pretty popular.
TUXEDO is a transaction manager that empowers a lot of high end applications, written in many things, like C++.
Microsoft had MTS (Microsoft Transaction Server) back in the day. It talked to C, C++, VB, etc.
Application Server is a nice, vague term. Tomcat is an application server, for example. Arguably ZOPE can be considered an application server.
But the thing, in my mind, that really distinguishes an Application Server from "just code" is the transaction manager. I don't consider a raw Tomcat an Application Server, for example, it's basically a really cool web server.
Most folks rely on the database for transactions, but a transaction manager works at a higher level where a database is simply a participant. And transaction managers are where a lot of the heavy lifting in terms of services and middleware offered by Application Servers happens. Transactions are really important in business processes.
Java EE has transaction managers. I don't know of any other "free" system that offers a transaction manager capable of distributed transactions. As I mentioned, most folks rely on the DB and stop there.
There are several transaction managers that support Java JTA (Java EE servers are JTA compliant internally), that's what Spring plugs in to in order to offer transaction services. (Spring is just a framework, it's not a server itself.)
When you add a TM to an OS, the entire machine can become an Application Server. That's what MTS does for Windows.
Java EE app servers stand out because they make much of these services first class (thread pools, object allocation, database pooling, transactions, etc.). Many OSes offer all of these services, at least at the process level. But folks didn't care much to dedicate an entire machine to a task, and having to tune the OS to service that single application. But, all that capability is there.
Add in modern VM systems, and dedicated, "single task" OS instances make more sense. "This Linux VM handles my DNS", "This Linux VM handles my email", etc. So, perhaps the OS will be returning to being a dedicated Application Server.