Dodatkowym elementem, który wpłynął na potrzebę rozwoju platform obliczeniowych, była złożoność obliczeniowa, na którą wpływ miał niestandardowy sprzęt lub niekompatybilne API znacząco utrudniające tworzenie i wdrażanie nowych programów.
Taką abstrakcję można osiągnąć poprzez zapewnienie modelu funkcjonalnego konkretnych funkcjonalności, zarówno na płaszczyźnie sprzętowej za pomocą ujednoliconych modeli programowych, jak i na płaszczyźnie programowej poprzez udostępnianie środowisk uruchomieniowych (np. JRE, CLR) oraz interfejsów binarnych (np. DirectX).
Zasadniczą cechą tak zdefiniowanej abstrakcji jest jej uniwersalność zwana kompatybilnością.
Typy platform W przypadku platform dokonywane jest rozróżnienie na platformy sprzętowe i programowe.
Platforma sprzętowa – zwana także poziomem maszyny, odnosi się do typu komputera lub rodziny procesorów. Definiowana jest głównie przez określoną architekturę komputera lub procesora, używa spójnego kodu maszynowego, ma jasno określony rozmiar słowa danych i kolejność bajtów. Można je dodatkowo podzielić na platformy wykorzystujące instrukcje CISC lub RISC.