Respostas:
Eu acredito que é a mesma razão pela qual eles escolheram MENOS do que Sass - o React não tinha uma grande comunidade estável por trás dele quando o Magento 2 foi iniciado, não tenho certeza se o Angular o fez, mas de qualquer maneira que ouvi, o Angular é bastante complexo e pareceria um exagero para Magento na minha opinião.
O nocaute é leve, não é um exagero e atende aos requisitos que o Magento tinha na época.
Existe uma versão do aplicativo da Web progressivo baseado em React (PWA) do Magento que poderemos fazer o checkout em algum momento deste ano, mas não há data de lançamento, pois ela está em um estágio inicial do conceito do que posso ver. Para informações sobre isso, veja aqui .
Se o Magento 2 foi construído usando react, sua pergunta seria "Por que ele não usa Angular ou KnockoutJs?".
Se foi construído usando Angular .... você sabe onde isso está indo.
Não sou uma autoridade nisso, mas especulo que foi a arma de escolha, porque a equipe estava mais à vontade com o KOjs e atendeu às necessidades deles com base no roteiro.
Houve um debate semelhante ao porquê escolher menos do que o sass (leia mais aqui: https://alankent.me/2016/05/21/magento-2-community-project-moving-from-less-to-sass/ )
Também ouvi discussões sobre o porquê do ZF e não o Symfony. A mesma coisa ... é uma questão de escolher as ferramentas certas adequadas para o trabalho, as ferramentas com as quais você se sente confortável.
Enfim ... você não está limitado demais a essa escolha. Você pode escolher a pilha de tecnologia, especialmente para o front-end, que melhor lhe convier.
Pode ser necessário um esforço extra, mas você fará isso apenas uma vez e poderá reutilizar os resultados em projetos futuros.
Já existem projetos no magento com o React, por exemplo.
Aqui está um vídeo incrível de Riccardo Tempesta: https://www.youtube.com/watch?v=ElZ5UtTXpzQ
Além disso, você pode encontrar aqui um proxy entre react e magento: https://github.com/McFizh/magento2-react
You pode encontrar ainda mais com uma simples pesquisa online.
Não sei o motivo oficial, mas, ao usá-lo, o Knockout parece muito mais leve, carrega o mínimo necessário e adequado para a integração com modelos de front-end do Magento2 do que o Angular ou React mais pesado.
Além disso, a maneira fácil de o RequireJS e o gulp se misturarem automaticamente com o knockout para reduzir o tempo de carregamento e o tamanho dos arquivos foi provavelmente importante, suponho, mas uma certa velocidade de front end foi uma consideração importante ao planejar o Magento2.
Penso que uma pergunta melhor é: por que o m2 é tão fortemente acoplado ao frontend?
Muitas estruturas JS já existiam quando o M2 foi lançado.
M2 Teria sido muito mais popular se as pessoas:
Basicamente, muitos ET ALS. Mas não, eles forçam você a usar sua monstruosidade de engenharia avançada, orientada a xml.
O bom é que eles têm uma API REST, para que você possa ficar sem cabeça e criar um aplicativo da web progressivo.
Por favor, não se preocupe com isso. Como Anton Kril anunciou no MageConf2017 - desde a versão 2.4, o front-end do Magento2 terá o React. E também, Redux, é claro, e GraphQL. Mas ... Knockout.js permanecerá.
webapi
área diferente ), a nova API é adequada para isso. O PWA Studio é apenas uma maneira de fornecer uma base para quem precisa.