История изменений
Исправление kaldeon, (текущая версия) :
Мне, как C++нику, непонятно зачем решать проблему в чистом ОО-стиле, если ее можно эффективнее решить другим способом.
Чистый ОО-стиль — бедрок современного программирования. Не подойдёт для sort — подойдёт для чего-нибудь другого, и вот тогда наличие дженериков будет критично.
И этот «другой способ» всё равно похож на чистый ОО-стиль, по манере использования. Поэтому он кажется более привычным.
В Го напрямую это выглядело бы так:
Sort(any, func(any, any) int)
И здесь сразу видно, что any — это проблема не только конкретно здесь (что решается тривиально рефлексией), но и потенциальная проблема, если бы иерархия типов была возможна.
Машина тупо не потянет.
Неуместный пессимизм.
А ведь на этом примере можно хорошенько пофантазировать
К какому выводу вы пришли, кроме «красиво» и «все остальные так делают»? Довольно поверхностно.
А нужно учитывать цель языка, чтобы программист думал об ошибках и занимался ими своевременно, когда они возникают.
strconv.Atoi — это ведь не мелочь какая-то. Усложни его API на уровне языка — усложнится весь язык. Поэтому я лично очень доволен проверять ошибку Atoi каждый раз.
отряхивать от нафталина наработки из Alef (конец 1980-х) и Limbo (середина 1990-х)
А кто-нибудь кроме Go смог должным образом усвоить уроки Alef и Limbo?
Пока опыт из прошлого не был осмыслен, он остаётся релевантным в каждом новом поколении.
Не следует после этого удивляться репутации «языка для дебилов».
«Объяснение явлений через глупость людей — это характерная черта снобов, выдающая их собственный узкий взгляд на мир.»
Исправление kaldeon, :
Мне, как C++нику, непонятно зачем решать проблему в чистом ОО-стиле, если ее можно эффективнее решить другим способом.
Чистый ОО-стиль — бедрок современного программирования. Не подойдёт для sort — подойдёт для чего-нибудь другого, и вот тогда наличие дженериков будет критично.
И этот «другой способ» всё равно похож на чистый ОО-стиль, по манере использования. Поэтому он кажется более привычным.
В Го напрямую это выглядело бы так:
Sort([]any, func(any, any) int)
И здесь сразу видно, что any — это проблема не только конкретно здесь (что решается тривиально рефлексией), но и потенциальная проблема, если бы иерархия типов была возможна.
Машина тупо не потянет.
Неуместный пессимизм.
А ведь на этом примере можно хорошенько пофантазировать
К какому выводу вы пришли, кроме «красиво» и «все остальные так делают»? Довольно поверхностно.
А нужно учитывать цель языка, чтобы программист думал об ошибках и занимался ими своевременно, когда они возникают.
strconv.Atoi — это ведь не мелочь какая-то. Усложни его API на уровне языка — усложнится весь язык. Поэтому я лично очень доволен проверять ошибку Atoi каждый раз.
отряхивать от нафталина наработки из Alef (конец 1980-х) и Limbo (середина 1990-х)
А кто-нибудь кроме Go смог должным образом усвоить уроки Alef и Limbo?
Пока опыт из прошлого не был осмыслен, он остаётся релевантным в каждом новом поколении.
Не следует после этого удивляться репутации «языка для дебилов».
«Объяснение явлений через глупость людей — это характерная черта снобов, выдающая их собственный узкий взгляд на мир.»
Исходная версия kaldeon, :
Мне, как C++нику, непонятно зачем решать проблему в чистом ОО-стиле, если ее можно эффективнее решить другим способом.
Чистый ОО-стиль — бедрок современного программирования. Не подойдёт для sort — подойдёт для чего-нибудь, и вот тогда наличие дженериков будет критично.
И этот «другой способ» всё равно похож на чистый ОО-стиль, по манере использования. Поэтому он кажется более привычным.
В Го напрямую это выглядело бы так:
Sort([]any, func(any, any) int)
И здесь сразу видно, что any — это проблема не только конкретно здесь (что решается тривиально рефлексией), но и потенциальная проблема, если бы иерархия типов была возможна.
Машина тупо не потянет.
Неуместный пессимизм.
А ведь на этом примере можно хорошенько пофантазировать
К какому выводу вы пришли, кроме «красиво» и «все остальные так делают»? Довольно поверхностно.
А нужно учитывать цель языка, чтобы программист думал об ошибках и занимался ими своевременно, когда они возникают.
strconv.Atoi — это ведь не мелочь какая-то. Усложни его API на уровне языка — усложнится весь язык. Поэтому я лично очень доволен проверять ошибку Atoi каждый раз.
отряхивать от нафталина наработки из Alef (конец 1980-х) и Limbo (середина 1990-х)
А кто-нибудь кроме Go смог должным образом усвоить уроки Alef и Limbo?
Пока опыт из прошлого не был осмыслен, он остаётся релевантным в каждом новом поколении.
Не следует после этого удивляться репутации «языка для дебилов».
«Объяснение явлений через глупость людей — это характерная черта снобов, выдающая их собственный узкий взгляд на мир.»