Re[5]: Язык Go - слабые стороны
От: Pzz Россия https://github.com/alexpevzner
Дата: 15.02.22 18:42
Оценка:
Здравствуйте, rudzuk, Вы писали:

Pzz>> Пайк задумывал Go как C 2.0. Как язык для настоящих мужчин, но без недостатков C, и с достоинствами Алефа и Лимбо и с современным синтаксическим стилем, без всех этих ненужных скобочек после if'а. Но все мы знаем, что программировать на Go побежали в основном не небритые сишники, а молодые и прыщавые программисты на Питоне, не способные освоить даже JavaScript.


R>А я слышал, что его делали для неосиливающих нормальные языки:


Пайк — тот еще жук. Разным людям он рассказывает разное.

R>

давайте послушаем слова самого Роба Пайка:

R> Фишка в том, что наши программисты гуглеры, а не ученые. Это обычно молодые, только выпустившиеся пацаны, которые возможно выучили Java, возможно даже C/C++ и может быть Python. Они не в состоянии понимать пробздетый язык, но мы все равно хотим, чтобы они делали хороший софт. Таким образом, мы даем им легкопонимаемый язык, к которому они быстро привыкнут.


R>Короче, нужно было хоть как-то этих обезьян утилизировать... GO!


Вот тут он врет. Перед кем, хоть, выступает-то?

В Go если от слайса сделать субслайс, получишь "указатель" на ту же память, где был оригинальный слайс. И если модифицировать субслайс, оригинальный слайс тоже изменится, и наоборот. А вот если потом к оригинальному слайсу сделать append, то может он переедет в другую память, а может и нет, как повезет. И тогда модификация одного может будет изменять другой, а может и нет.

Сишнику это очень понятно и естественно. А вот сколько раз "не ученым" придется через это место себе ногу отстрелить, пока до них дойдет, науке неизвестно.

Или, например, если мы от мегабайтного слайса отсубслайсим 5 байт, а про остальное "забудем", в памяти все равно будет занят мегабайт, потому что отсубслайсенные 5 байт все равно указывают на мегабайтный буфер, и GC его не приберет. Наивная идея организовать очередь, дописывая в конец слайса и откусывая от начала породит конструкцию, которая в конце концов сожрет всю память. Ну и т.д.

Слайсы при этом — очень базовый тип в Go, постоянно используемый. Не какая-нибудь там экзотика редкая.

В общем, не для только выпустившихся пацанов этот язык, а для гораздо более зрелых мужей.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.