@ly000
No dobrze, ale co stoi przeciwko temu, żeby mogli tą bibliotekę chociaż porządnie udokumentować?
Akurat nie tylko to API mogliby lepiej udokumentować, stąd też swego czasu punktem wejścia dla bibliotek w Pythonie było PYMOTW (jest też uaktualnienie do wersji 3). Generalnie dokumentacja zawiera głównie odgórny opis API, a nie tutoriale, jak ktoś potrzebuje czegoś więcej, to szuka książek, wpisów na SO (a wcześniej pytało się na usnecie, IRCu i grupach Google) lub istniejących próbek kodu. I to jest mocno uniwersalny problem. C++ nie ma wcale oficjalnej dokumentacji - masz jedynie standard, 1200 stron technicznego dokumentu. PHP było kiedyś sławne z tego, że w dokumentacji były dozwolone komentarze i trzeba je było czytać, bo w nich użytkownicy podawali rady wskazówki i pułapki, których trzeba było unikać. Inne języki też jedynie podają referencyjny słownik zawartości swoich modułów i pakietów. Pisanie dokumentacji jest trudne, co potwierdzi każdy, co kiedyś próbował.
Poza tym, w między czasie został wydany python3 (2008), który nie było kompatybilny z poprzednikiem, ale mimo wszystko tkinter został przeniesiony. Mogliby go chociaż zmodernizować albo usunąć.
Mogli, ale pewnie woleli zostawić jak jest dla tych, którzy tego z jakichkolwiek powodów używają aby nie dostarczać im więcej zmartwień (i tak migracja była, jak wspomniałem, bolesna).
I dlatego dodali tkinter do standardu? Gdyby tak było, to by w ogóle tego nie dodawali.
20 lat temu trudno było mówić o standardach, Python ciągle się kształtował jako język, jednocześnie konkurując na rynku i budując pozycję. Wiadomo, że jakby Guido miał kryształową kulę i mógł przewidzieć przyszłość to wiele rzeczy zrobiłby inaczej. Ale projektowanie i rozwój języka to skomplikowany ciągły proces. I tak, można się natknąć na artefakty wynikające z historii, stąd konwencje i zalecenia, gdy doświadczenie nauczyło nas lepiej.
Mogli to po prostu zrealizować jako zewnętrzną bibliotekę do GUI, bez upychania tego do standardu.
Mogli. Może nawet żałują.
Albo mogliby wpierw stworzyć niezależne API do GUI, a potem co najwyżej zaimplementować to API z użyciem Tcl/Tk i nie wspominać o tym dziwactwie użytkownikowi.
A to już omawiałem - stworzenie jednolitego API spełniającego wymagania dla każdego to nie takie proste hop siup. Okazałoby się po 20 latach, że Qt i inne frameworki tak zdryfowały, że ich API nijak się nie przekłada na to domyślne i trzeba i tak stosować zewnętrzne biblioteki - dalej byś narzekał.
Robienie biblioteki do GUI opartej o przestarzałą technologie, o której mało kto w ogóle słyszał, a następnie umieszczanie jej w standardzie powoduje, że standard tego języka do burdel.
W 1999 jeszcze nie była przestarzała.
Inne języki przynajmniej starają się trzymać jakąś higienę przy umieszczaniu bibliotek w standardzie. Chyba w żadnej innej popularniej technologii nie ma takich dziwactw - gdzie indziej jakoś mogli tego uniknąć.
Babole w bibliotekach standardowych w innych językach się zdarzają. Typowym przykładem jest std::vector<bool>
w C++. Swing w Javie też nie jest chyba obecnie specjalnie lubiany. JavaScript poszedł inną drogą: nie ma biblioteki standardowej wcale, więc w NPM w repozytorium są 3-linijkowe pakiety do podstawowych operacji pokroju is_promise
ściągane automatycznie przez miliony projektów; raz za czas któryś z nich się psuje i wtedy siada im cały ekosystem.