Odkąd Go ma kanały, zastanawiałem się, dlaczego standardowa biblioteka nie została zaprojektowana do używania ich również dla IO.Kanały IO vs czytnik/program czytający
Zamiast tego są typy czytników i pisarzy, ale jaki byłby problem z używaniem kanałów?
Funkcja może zwrócić kanał z bajtów (zakładając, że jednobajtowe, a nawet jednobitowe powroty są zbyt mało wydajne) i przyjąć kanał dla żądań anulowania i kanał zgłaszania błędów.
-Najlepszy nowicjusz.
Tak więc twoja uwaga jest dwojaka: 1) kanały będą w tym przypadku wąskim gardłem wydajności, a 2) kanały ukryją IO, a projektanci nie będą tego lubić. Interesujące byłoby wykonanie pomiarów wydajności czytnika/pisarza w porównaniu z kanałami, aby mieć pojęcie o tym, jaka będzie rzeczywista kara za wydajność - zdając sobie oczywiście sprawę, że kompilator (y) może zoptymalizować dla prostych przypadków, a optymalizacje staną się z czasem bardziej wyrafinowane. Rob Pike mówił o możliwościach optymalizacji wydajności kanałów. –