haskell: random observations
Nov. 7th, 2009 03:23 pmприкольно наблюдать дуализм; как какие-то свойства языка, вызывающие у хаскельников гордость, имеют на самом деле side effects, которые приходится лечить дополнительными заплатками. например, "concise" syntax (без скобок, явного объявления типов, etc.) приводит к тому, что читать труднее. для облегчения чтения придумываются другие вещи, типа relative vertical positioning (что с точки зрения free-flow языков вообще признак тридцатилетней отсталости).
вообще, Эрик пока неубедителен. например, наезд на якобы вербозность сишарпа не убедителен - всё, что я пока вижу, это определения статических (с точки зрения сишарпа) методов. имя класса в этом случае служит в основном не контейнером состояния, а неймспейсом. и когда в программе станет не две, а хотя бы стописят функций, я посмотрю, как хаскелл обойдётся без неймспейсов.
вообще, Эрик пока неубедителен. например, наезд на якобы вербозность сишарпа не убедителен - всё, что я пока вижу, это определения статических (с точки зрения сишарпа) методов. имя класса в этом случае служит в основном не контейнером состояния, а неймспейсом. и когда в программе станет не две, а хотя бы стописят функций, я посмотрю, как хаскелл обойдётся без неймспейсов.
(no subject)
Date: 2009-11-08 12:49 am (UTC)Но дело в следующем. Хаскел выносит программиста на более высокий уровень мышления. После чего и на сишарпе (по-моему, прекрасный язык) можно писать очень даже.
Насчёт же сайдэффектов и т.п. - тут вешь очень серьёзная, и простыми программистскими холиворами этот вопрос решать или даже обсуждать бессмысленно. Это как один, пардон, хуй из Китая вздумал вдруг нас учить, что нельзя пользоваться интерфейсами, т.к. они неэффективны, а надо сразу указывать классы.
(no subject)
Date: 2009-11-08 01:35 am (UTC)Если Эрик Липперт с Мейером найдут, как добавить туда глобальное type inference, не ломающую бэк-компатибилити.
(no subject)
Date: 2009-11-08 01:36 am (UTC)Но питон медленный и ему не хватает опциональных type contracts
(no subject)
Date: 2009-11-08 02:55 am (UTC)(no subject)
Date: 2009-11-08 02:58 am (UTC)причем работает. но хочется сильно быстрее.
опишите задачу
(no subject)
Date: 2009-11-08 02:58 am (UTC)(no subject)
Date: 2009-11-08 03:13 am (UTC)Можно попробовать для убыстрения переписать критическое на C, вдруг поможет. SWIG и вперед.
(no subject)
Date: 2009-11-08 09:09 am (UTC)я не спорю, кого-то может и выносит. например того, кто писал на джаве 8-Р, где лучшим приближением к функции как объекту является Listener. а кто ещё десять лет назад писал на эвентах на дельфи, того как бы и выносить особо не надо :)
а хуй из китая, наверное, заебался наблюдать классы с названием типа IMyInterfaceImpl, и я даже где-то его понимаю.
(no subject)
Date: 2009-11-08 09:10 am (UTC)(no subject)
Date: 2009-11-08 09:14 am (UTC)(no subject)
Date: 2009-11-08 10:07 am (UTC)(no subject)
Date: 2009-11-08 10:13 am (UTC)(no subject)
Date: 2009-11-08 10:47 am (UTC)import qualified ... as ...
import ... hiding (...)
import ...(...)
Они, по моему, в качестве замены неймспейсов подойдут вполне.
(no subject)
Date: 2009-11-08 12:39 pm (UTC)(no subject)
Date: 2009-11-11 03:02 pm (UTC)Но на самом деле неймспейсы там есть.