Udało się, jest ponad 100k linii kodu :)
/tmp/scikit-learn$ cloc .
1012 text files.
1006 unique files.
271 files ignored.
http://cloc.sourceforge.net v 1.60 T=2.10 s (384.6 files/s, 125593.4 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
Python 668 41788 65306 108116
Cython 40 2940 3929 8469
CSS 4 49 66 8175
C/C++ Header 21 824 582 6557
C++ 5 827 429 5422
C 44 363 3141 2394
Javascript 7 593 373 1763
Bourne Shell 9 91 134 417
PowerShell 2 65 39 395
HTML 1 34 6 323
YAML 5 33 65 201
make 2 37 14 122
DOS Batch 1 17 1 102
-------------------------------------------------------------------------------
SUM: 809 47661 74085 142456
-------------------------------------------------------------------------------
Myślę, że w Javce też można by to w prosty sposób napisać, oczywiście z użyciem jakichś lepszych kolekcji niż te wbudowane w Javę. Np http://www.vavr.io/ i jedziemy. Java 10 ma vara, więc tym bardziej się zbliża zwięzłością do innych języków (czyli np powiedzmy 2x więcej kodu by w Javce było niż w Pythonie).
Ja jak siedzę nad C++em to czuję tylko frustrację spowodowaną segfaultami i dziwnymi problemami wynikłymi z tego, że język i kompilator nie sprawdzają automatycznie np indeksów tablic czy poprawności wskaźników. Do tego tragicznie template'y (z punktu widzenia ergonomii), kosztowne metody wirtualne (więc trzeba unikać i kombinować), itp itd Taki masochizm z wyboru.
Zdecydowanie wolę wyzwania algorytmiczne niż składniowe, aczkolwiek kacze typowanie mi nie po drodze, bo bardzo cenię sobie statyczną analizę (bardzo mi pomaga). Z tego powodu lubię statycznie typowane języki, ale nie takie które są niepotrzebnie skomplikowane (jak np C++).