Re[7]: F# - A Functional Programming Language
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.11.07 09:37
Оценка:
Здравствуйте, prVovik, Вы писали:

VD>>В мэйнстрим. Синтаксис и семантика ОКамла — это приговор для языка пытающегося стать популярным. Не будут (в массе своей) люди привыкшие к С/Паскале-подобному синтаксису ломать свое сознание и привыкать к МЛ-е подобному.


V>Ничего, если приспичит, то сломают, никуда не денутся.


Не приспичит. Любую программу можно написть на С или даже ассемблере. Чтобы понять, что дает язык его нужно сначала освоить. А в случае с F# этого попросту не лбудет.

VD>>F# — это довольно прямолинейная адаптация ОКамла на дотнет, когда как Скала и Немерле — это новые языки взаимствовашие из МЛ-е подобных языков идеологию. В них все функциональные фичи адаптированны к ОО-миру дотнета/явы.


V>И что с того? Какое это имеет отношение к "проходимости" языка в мире Майкрософт?


Читай выше (первая цитата).
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: F# - A Functional Programming Language
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.11.07 09:37
Оценка: 1 (1)
Здравствуйте, Курилка, Вы писали:

К>А вот ещё он добавляет по поводу функциональных языков на .Net/JVM, приводится пример, что исключения в окамле в 6 раз быстрее чем в плюсах, но в F# они в 600 медленнее.


По-моему он маньяк. Какая разница какая там скорость у исключений? У него программы из исключенй состоят что ли?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: F# - A Functional Programming Language
От: Курилка Россия http://kirya.narod.ru/
Дата: 19.11.07 10:57
Оценка: :)
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Курилка, Вы писали:


К>>А вот ещё он добавляет по поводу функциональных языков на .Net/JVM, приводится пример, что исключения в окамле в 6 раз быстрее чем в плюсах, но в F# они в 600 медленнее.


VD>По-моему он маньяк. Какая разница какая там скорость у исключений? У него программы из исключенй состоят что ли?


Ну... маньяки тоже имеют право на существование, пока они не ущемляют прав других людей
Re[4]: F# - A Functional Programming Language
От: EvilChild Ниоткуда  
Дата: 19.11.07 19:43
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>По-моему он маньяк. Какая разница какая там скорость у исключений? У него программы из исключенй состоят что ли?

Некоторые с перепугу на return codes переходят. А вообще, если что-то работает быстрее, при прочих равных, то почему бы и нет?
now playing: Anthony Steele — Sugar
Re[5]: F# - A Functional Programming Language
От: VladD2 Российская Империя www.nemerle.org
Дата: 20.11.07 13:42
Оценка:
Здравствуйте, EvilChild, Вы писали:

EC>Здравствуйте, VladD2, Вы писали:


VD>>По-моему он маньяк. Какая разница какая там скорость у исключений? У него программы из исключенй состоят что ли?

EC>Некоторые с перепугу на return codes переходят. А вообще, если что-то работает быстрее, при прочих равных, то почему бы и нет?

Потому что сравнение несущественных факторов путь к профанации. Скажем если у одной марки машыны можно быстрее получить доступ к запаске ничего не говорит о приемуществе этой машины в целом. Ее надо доставать раз в год и даже если ради этого прийдется открыть багажник — это ни сколичко не напрягает.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: F# - A Functional Programming Language
От: EvilChild Ниоткуда  
Дата: 20.11.07 17:05
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>>>По-моему он маньяк. Какая разница какая там скорость у исключений? У него программы из исключенй состоят что ли?

EC>>Некоторые с перепугу на return codes переходят. А вообще, если что-то работает быстрее, при прочих равных, то почему бы и нет?

VD>Потому что сравнение несущественных факторов путь к профанации. Скажем если у одной марки машыны можно быстрее получить доступ к запаске ничего не говорит о приемуществе этой машины в целом. Ее надо доставать раз в год и даже если ради этого прийдется открыть багажник — это ни сколичко не напрягает.


Там шла речь о том насколько пригодны разные виртуальные машины для реализации функциональных языков. Перечислялись различия между ними. Одним из них была дороговизна исключений. Никаких глобальных выводов не делалось. Ты бы пост по ссылке прочёл прежде чем кого-то маньяком объявлять.
now playing: Anthony Steele — Cease Effect
Re[7]: F# - A Functional Programming Language
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.11.07 10:18
Оценка:
Здравствуйте, EvilChild, Вы писали:

EC>Там шла речь о том насколько пригодны разные виртуальные машины для реализации функциональных языков. Перечислялись различия между ними. Одним из них была дороговизна исключений. Никаких глобальных выводов не делалось. Ты бы пост по ссылке прочёл прежде чем кого-то маньяком объявлять.


А зачем обсуждать какие-то не относящиеся к делу мелкие детали? Зачем нужно добиваться невероятных скоростей в обработке исключений?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: F# - A Functional Programming Language
От: Schade Россия  
Дата: 21.11.07 11:39
Оценка: 1 (1)
Здравствуйте, VladD2, Вы писали:

VD>А зачем обсуждать какие-то не относящиеся к делу мелкие детали? Зачем нужно добиваться невероятных скоростей в обработке исключений?


Товарисч сетует на скорость обработки исключений постольку, поскольку, по его словам, в ML-подобных языках использование исключений в неисключительных ситуациях является нормой. Уж не знаю, так ли это, либо это просто его личная привычка, и вообще насколько разумно строить логику на исключениях — не в этом суть. Видимо, при портировании камлового кода столкнулся с существенным замедлением. Смысл его поста — в том, что ФП-языки существенно просаживаются в производительности при переходе на .NET платформу, и исключения — одна из частностей.
Re[9]: F# - A Functional Programming Language
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.11.07 13:22
Оценка:
Здравствуйте, Schade, Вы писали:

S>Товарисч сетует на скорость обработки исключений постольку, поскольку, по его словам, в ML-подобных языках использование исключений в неисключительных ситуациях является нормой. Уж не знаю, так ли это, либо это просто его личная привычка, и вообще насколько разумно строить логику на исключениях — не в этом суть. Видимо, при портировании камлового кода столкнулся с существенным замедлением. Смысл его поста — в том, что ФП-языки существенно просаживаются в производительности при переходе на .NET платформу, и исключения — одна из частностей.


Это его личные тараканы. Сам пишу на одном из ФЯ который не только не просаживается по производительности, но и вообще был создан под дотнет.

Ну, а то что кто-то там считает в порядке вещей использовать исключения для организации логики программ — это уже разговор отдельный. На мой взгляд — это отличный путь привести большой проект в неработоспособное состояние. Гогика на исключениях не чем не лучше логики на готу. Даже хуже, так как действует в глобальном контексте. Сам не раз страдал от этого.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: F# - A Functional Programming Language
От: Andrei N.Sobchuck Украина www.smalltalk.ru
Дата: 21.11.07 13:36
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Ну, а то что кто-то там считает в порядке вещей использовать исключения для организации логики программ — это уже разговор отдельный. На мой взгляд — это отличный путь привести большой проект в неработоспособное состояние. Гогика на исключениях не чем не лучше логики на готу. Даже хуже, так как действует в глобальном контексте. Сам не раз страдал от этого.


Каждый, кто ловит исключение организует на них логику Так что ты подумай, может ты не страждаешь, а наслаждаешся этим?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Я ненавижу Hibernate
Автор: Andrei N.Sobchuck
Дата: 08.01.08
!
Re[10]: F# - A Functional Programming Language
От: lomeo Россия http://lomeo.livejournal.com/
Дата: 21.11.07 13:49
Оценка: 8 (1)
Здравствуйте, VladD2, Вы писали:

VD>Ну, а то что кто-то там считает в порядке вещей использовать исключения для организации логики программ — это уже разговор отдельный. На мой взгляд — это отличный путь привести большой проект в неработоспособное состояние. Гогика на исключениях не чем не лучше логики на готу. Даже хуже, так как действует в глобальном контексте. Сам не раз страдал от этого.


Немного оффтопик, но, полагаю, будет интересно:
via thesz

От: Michael Nikolaev — просмотр профиля
Дата: Пн. 13 Янв. 2003 01:35
Электронная почта: Michael Nikolaev <michael.nikol...@p40.f58.n463.z2.fidonet.org>
Группы: fido7.su.softw


Hello Alexander!

Saturday January 11 2003 00:33, Anton Moscal wrote to you:

AM> From: "Anton Moscal" <m...@post.tepkom.ru>

AM> Fri Jan 10 2003 16:05, Alexander Krotov wrote to Vitaly Lugovsky:

AK>> From: a...@despammed.com (Alexander Krotov)

AK>> Vitaly Lugovsky <v...@ontil.ihep.su> wrote:

VL>>> А кто когда либо обещал возможность писать эффективно на
VL>>> ленивых чисто функциональных языках? Хочешь оптимизаций —
VL>>> используй императивные фичи, вроде тех же ексепшинов...

AK>> Hе флейма ради, а токма из любопытства:
AK>> исключения, как мне до сих пор кажется, являются скорее
AK>> порождением FP, чем императивщины. All, Так ли это ?

Hасколько я помню, это не совсем так. Исключения понадобились для выpажения
семантики GOTO пpи спецификации языков типа ПЛ/1 на языке спецификаций META-IV
Венского метода спецификаций. Основными pазpаботчиками там были
D. Bjorner, C.B, Jones. Это где-то 1977-1978 гг. Если я сильно поищy,
то, может быть, даже найдy y себя их "дpевние" статьи по этомy поводy.
Там было две основные констpyкции — неpекypсивная и pекypсивная:

1. trap exit(id) with F(id) in C(...)

Если пpи вычислении С(...) исключение, поpождённое опеpатоpом exit(v) не бyдет
пеpехвачено внyтpи этого блока, его значение связывается с идентификатоpом
id и вычисляется выpажение F(id), значение котоpого и бyдет тогда pезyльтатом
в?числения всего выpажения. Исключения в F(id) "пpоходят наpyжy", т.е. должны
пеpехватываться "охватывающими" выpажениями.

2. tixe [F(i) -> G(i) | P(i)] in C(...) Здесь значение исключения
2. tixe [F(i) -> сопоставляется с обpазцом F(j). Если для этого
обpазца выполняется yсловие, заданное пpедикатом P(j), то вычисляется
выpажение G(j). Если пpи вычислении этого выpажения возникнет исключение,
снова пpоизводится сопоставление с обpазцом и т.д., пока пpедикат не бyдет
выполняться для исключения, либо исключений не бyдет.

Исключения С++ весьма похожи на пеpвый ваpиант, не пpавда ли?
Это почти 20 лет спyстя!

C.B. Jones доказывал в каких-то своих pаботах эквивалентность этого
механихма и механизма "continuations" (не знаю даже, как это по-pyсски
сказать).

Я сам пpогpаммиpовал с использованием ваpианта этого механизма на C еще в
сеpедине 80-х. Помню, что многие тогда меня pyгали, потомy, что не могли
вpyбиться в смысл соответствyющих констpyкций.

Подpобнее об этом можно почитать в
Lecture Notes in Computer Science. #61. The Vienna Development Method:
Th Meta-Language. Springer-Verlag< 1978.

AM> Видимо нет. Исключения позволяют определить порядок вычисления
AM> подвыражений, а потому не являются "pure functional" (насколько я
AM> помню — в Java с исключениями связаны похожие проблемы с
AM> неоднозначностью семантики).

AM> "pure functional" решением проблемы является явный возврат состояния:
AM> то есть тип вроде:

AM> data Value a = Value a | Error String

AM> и операция последовательного исполнения (см. монады):

a >>> = b =
AM> case a of
AM> | Error msg -> Error msg
AM> | Value a -> b a

AM> Hо реально — это довольно нетривиальная тема. Монады imho — чуть ли не
AM> единственая нетривальная управляющая структура, которая была
AM> изобретена с времен структурного программирования. Тут на пальцах
AM> объяснить довольно трудно.

AK>> --
AK>> Успехов,
AK>> Саша.

AM> Антон

AM> -+- ifmail v.2.15dev5
AM> + Origin: FidoNet Online — http://www.fido-online.com (2:5020/175.2)

Всех благ,
Михаил

E-Mail: m...@gu.kiev.ua

... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[10]: F# - A Functional Programming Language
От: EvilChild Ниоткуда  
Дата: 21.11.07 15:34
Оценка: +2 :)
Здравствуйте, VladD2, Вы писали:

S>>Товарисч сетует на скорость обработки исключений постольку, поскольку, по его словам, в ML-подобных языках использование исключений в неисключительных ситуациях является нормой. Уж не знаю, так ли это, либо это просто его личная привычка, и вообще насколько разумно строить логику на исключениях — не в этом суть. Видимо, при портировании камлового кода столкнулся с существенным замедлением. Смысл его поста — в том, что ФП-языки существенно просаживаются в производительности при переходе на .NET платформу, и исключения — одна из частностей.


VD>Это его личные тараканы. Сам пишу на одном из ФЯ который не только не просаживается по производительности, но и вообще был создан под дотнет.

Мощный аргумент, особенно учитывая тот факт, что его ниоткуда не портировали и просесть у него возможности не было. Расскажи на основании чего сделан вывод об осутствии просаживания.
Re[11]: F# - A Functional Programming Language
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.11.07 16:14
Оценка: +1
Здравствуйте, Andrei N.Sobchuck, Вы писали:

ANS>Каждый, кто ловит исключение организует на них логику


Ага. Только одни реализуют на них логику приложения, а другие логику обработки ошибок. Лично я принадлежу ко второй группе. Более того, стараюсь обрабатывать исключения по минимуму.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[11]: F# - A Functional Programming Language
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.11.07 16:27
Оценка: :)
Здравствуйте, EvilChild, Вы писали:

EC>Расскажи на основании чего сделан вывод об осутствии просаживания.


На основании того, что код работает со скоростью аналогичного написанного на С++, а исключения используются только по их прямому предназначению.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[11]: F# - A Functional Programming Language
От: BulatZiganshin  
Дата: 06.12.07 11:32
Оценка: 10 (2)
Здравствуйте, lomeo, Вы писали:

L>Hасколько я помню, это не совсем так. Исключения понадобились для выpажения

L>семантики GOTO пpи спецификации языков типа ПЛ/1 на языке спецификаций META-IV
L>Венского метода спецификаций. Основными pазpаботчиками там были
L>D. Bjorner, C.B, Jones. Это где-то 1977-1978 гг.

исключения были в клу (реализовано в 75-77г.), до этого в мезе и даже pl/1
Люди, я люблю вас! Будьте бдительны!!!
Re[12]: F# - A Functional Programming Language
От: lomeo Россия http://lomeo.livejournal.com/
Дата: 06.12.07 11:45
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

BZ>исключения были в клу (реализовано в 75-77г.), до этого в мезе и даже pl/1


О! Интересно! Источник есть?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: F# - A Functional Programming Language
От: фдычун  
Дата: 17.11.08 21:08
Оценка:
Введение в F# на PDC2008
http://channel9.msdn.com/pdc2008/TL11/
прямая ссылка на видео
http://mschnlnine.vo.llnwd.net/d1/pdc08/WMV-HQ/TL11.wmv
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.