В Ява полное описание с комментариями системы типов с дженериками занимает около 300 страниц. Просто ли это держать в голове? Каждый сам для себя решает.
цитата Роба Пайка (соавтор языка Go): Ключевой момент здесь, что наши программисты (прим.пер.: гуглеры) не исследователи. Они, как правило, весьма молоды, идут к нам после учебы, возможно изучали Java, или C/C++, или Python. Они не в состоянии понять сложный язык, но в то же время мы хотим, чтобы они создавали хорошее ПО. Именно поэтому их язык должен быть прост для их понимания и изучения. Он должен быть знакомым, грубо говоря, похожим на Си. Программисты работающие в Google рано начинают свою карьеру и в большинстве своем знакомы с процедурными языками, в частности семейства Си. Требование в скорой продуктивности на новом языке программирования означает, что язык не должен быть слишком радикальным.
с точки зрения реализации, дженерики сложны только при компиляции в одном проходе, которым страдает го из-за единой монстрообразной монорепы в гугл, который его породил, а в остальных случаях никто тормозов не заметит
любое сильное утверждение заведомо ложно. не нужны кривые и недоделанные реализации дженериков. одна из причин отсутствия нормальных библиотек в го - необходимы тонны левого кода без дженериков
пример простой. если в нормальных языках можно реализовать один обобщенный вариант патернов отказоустойчивости(retry, breaker, rate limit, etc,etc), то в го без дженериков для каждого интефейса их необходимо рисовать отдельно. простота хуже воровства
Abdulla, very good points!
В Ява полное описание с комментариями системы типов с дженериками занимает около 300 страниц. Просто ли это держать в голове? Каждый сам для себя решает.
цитата Роба Пайка (соавтор языка Go):
Ключевой момент здесь, что наши программисты (прим.пер.: гуглеры) не исследователи. Они, как правило, весьма молоды, идут к нам после учебы, возможно изучали Java, или C/C++, или Python. Они не в состоянии понять сложный язык, но в то же время мы хотим, чтобы они создавали хорошее ПО. Именно поэтому их язык должен быть прост для их понимания и изучения.
Он должен быть знакомым, грубо говоря, похожим на Си. Программисты работающие в Google рано начинают свою карьеру и в большинстве своем знакомы с процедурными языками, в частности семейства Си. Требование в скорой продуктивности на новом языке программирования означает, что язык не должен быть слишком радикальным.
уже не только студенты гугла пишут на го, у других программистов тоже потребности есть
с точки зрения реализации, дженерики сложны только при компиляции в одном проходе, которым страдает го из-за единой монстрообразной монорепы в гугл, который его породил, а в остальных случаях никто тормозов не заметит
А можно чуть подробнее, для тех кто на ява программирует. Можно ссылку на стаью если есть такая с освещением этой проблемы.
смешно страдать о 5% для наносекунд на фоне других тормозов
99% времени ждём ответа от IO, зато сэкономили 5 наносекунд посредством спагетти-кода. Успех
интересное
тогда не пишите код в го, пишите на asm если вам так критично "performance"
любое сильное утверждение заведомо ложно. не нужны кривые и недоделанные реализации дженериков. одна из причин отсутствия нормальных библиотек в го - необходимы тонны левого кода без дженериков
пример простой. если в нормальных языках можно реализовать один обобщенный вариант патернов отказоустойчивости(retry, breaker, rate limit, etc,etc), то в го без дженериков для каждого интефейса их необходимо рисовать отдельно. простота хуже воровства