а мне ок, и джава, и с, и objective-c. и котлин, и дарт. все можно нормально приготовить, а с помощью IDE все различия между языками стираются - на момент написания кода. с архитектурой и например моделью памяти можно жить с любой. возможно, вы тут про выбор нового языка для проекта, но когда у вас уже есть готовый код, то вполне можно работать с любым (чуть не написал с любым говном 😀)
зависит от предметной области, я думаю. ты же работал с ast и, наверное, понимаешь, что это больно в языках, где нет union (или sum) - типов. когда я подумал, что хватит извращений и полез посомтреть как оно сделано в go, быстро стало понятно, это навалять парсинг на go обойдется очень дорого. решил дождаться как минимум дженериков )
Да и в любом строго типизируемом языке разбор json неизвестной структуры выглядит как... плохо, короче он выглядит )