109: (Default)
[personal profile] 109
прикольно наблюдать дуализм; как какие-то свойства языка, вызывающие у хаскельников гордость, имеют на самом деле side effects, которые приходится лечить дополнительными заплатками. например, "concise" syntax (без скобок, явного объявления типов, etc.) приводит к тому, что читать труднее. для облегчения чтения придумываются другие вещи, типа relative vertical positioning (что с точки зрения free-flow языков вообще признак тридцатилетней отсталости).

вообще, Эрик пока неубедителен. например, наезд на якобы вербозность сишарпа не убедителен - всё, что я пока вижу, это определения статических (с точки зрения сишарпа) методов. имя класса в этом случае служит в основном не контейнером состояния, а неймспейсом. и когда в программе станет не две, а хотя бы стописят функций, я посмотрю, как хаскелл обойдётся без неймспейсов.

(no subject)

Date: 2009-11-08 12:49 am (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Неймспейсы - это, покуда, полный каюк, конечно; они, имхо, выдают древность и немасштабируемость языка. Пробелы вместо скобок тоже во многих случаях - глупость.

Но дело в следующем. Хаскел выносит программиста на более высокий уровень мышления. После чего и на сишарпе (по-моему, прекрасный язык) можно писать очень даже.

Насчёт же сайдэффектов и т.п. - тут вешь очень серьёзная, и простыми программистскими холиворами этот вопрос решать или даже обсуждать бессмысленно. Это как один, пардон, хуй из Китая вздумал вдруг нас учить, что нельзя пользоваться интерфейсами, т.к. они неэффективны, а надо сразу указывать классы.

(no subject)

Date: 2009-11-08 01:35 am (UTC)
wizzard: (Default)
From: [personal profile] wizzard
Вербозность сишарпа можно вылечить (имхо).

Если Эрик Липперт с Мейером найдут, как добавить туда глобальное type inference, не ломающую бэк-компатибилити.

(no subject)

Date: 2009-11-08 01:36 am (UTC)
wizzard: (Default)
From: [personal profile] wizzard
А вообще, самый concise syntax у Питона. При том, не теряющий читабельности и позволяющий использовать скобки и писать one-liners, если оч захочется.

Но питон медленный и ему не хватает опциональных type contracts

(no subject)

Date: 2009-11-08 02:55 am (UTC)
From: [identity profile] anton-solovyev.livejournal.com
Кстати, а как потестировать медленность Python?

(no subject)

Date: 2009-11-08 02:58 am (UTC)
wizzard: (Default)
From: [personal profile] wizzard
ну, э, смотря для чего. я на нем просто игры писать пытаюсь, и прочий soft realtime.

причем работает. но хочется сильно быстрее.

опишите задачу

(no subject)

Date: 2009-11-08 02:58 am (UTC)
From: [identity profile] anton-solovyev.livejournal.com
Мне тоже наезды на многословность, скажем, Java непонятны. Скажем, в Python мне часто хочется помногословнее...

(no subject)

Date: 2009-11-08 03:13 am (UTC)
From: [identity profile] anton-solovyev.livejournal.com
Описать задачу не могу, ибо на Python легче сказать что не делается...

Можно попробовать для убыстрения переписать критическое на C, вдруг поможет. SWIG и вперед.

(no subject)

Date: 2009-11-08 09:09 am (UTC)
From: [identity profile] 109.livejournal.com
в нормальной человеческой логике неймспейсы - это как раз механизм масштабирования. как в твоей логике получилось наоборот is beyond me.

я не спорю, кого-то может и выносит. например того, кто писал на джаве 8-Р, где лучшим приближением к функции как объекту является Listener. а кто ещё десять лет назад писал на эвентах на дельфи, того как бы и выносить особо не надо :)

а хуй из китая, наверное, заебался наблюдать классы с названием типа IMyInterfaceImpl, и я даже где-то его понимаю.

(no subject)

Date: 2009-11-08 09:10 am (UTC)
From: [identity profile] 109.livejournal.com
глобальное type inference - это что?

(no subject)

Date: 2009-11-08 09:14 am (UTC)
From: [identity profile] 109.livejournal.com
многословность безусловно вредна в one-off script-like поделках. а чем фундаментальнее код, тем больше в нём read/write ratio, и очень скоро readability становится самым важным фактором. чему краткость, очевидно, больше мешает, чем помогает:

(no subject)

Date: 2009-11-08 10:07 am (UTC)
From: [identity profile] metaclass.livejournal.com
В хаскеле ж вместо неймспейсов модули, с возможным переименованием при импорте. Хотя посмотреть, как это подойдет для крупных проектов, было бы интересно, да.

(no subject)

Date: 2009-11-08 10:13 am (UTC)
From: [identity profile] 109.livejournal.com
мнээ... переименованием чего?

(no subject)

Date: 2009-11-08 10:47 am (UTC)
From: [identity profile] metaclass.livejournal.com
Ну вот эти конструкции для импорта модулей:
import qualified ... as ...
import ... hiding (...)
import ...(...)

Они, по моему, в качестве замены неймспейсов подойдут вполне.

(no subject)

Date: 2009-11-08 12:39 pm (UTC)
wizzard: (Default)
From: [personal profile] wizzard
В данном контексте - чтобы infer'ились не только локальные переменные, а и типы членов класса. Хотя бы в пределах одной сборки.

(no subject)

Date: 2009-11-11 03:02 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Я, конечно, имел в виду, что отсутствие грамотно организованных неймспейсов в Хаскеле приводит к немасштабируемости.

Но на самом деле неймспейсы там есть.

Profile

109: (Default)
109

March 2019

S M T W T F S
     12
3456789
101112131415 16
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags