LINUX.ORG.RU

История изменений

Исправление 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?

Пока опыт из прошлого не был осмыслен, он остаётся релевантным в каждом новом поколении.

Не следует после этого удивляться репутации «языка для дебилов».

«Объяснение явлений через глупость людей — это характерная черта снобов, выдающая их собственный узкий взгляд на мир.»