Здравствуйте, Lloyd, Вы писали:
L>На этот вопрос как раз очень легко ответить: преимущество F#-а — поддержка со стороны микрософта. Больше преимуществ вроде нет.
Дык это не преимущество языка. Это преимущество команды его разрабатывающей.
Это все равно, что говорить о приемуществах Лады перед, скажем, Маздой в том, что Лада поддерживается нашим правительством, а Мазда — нет.
ЗЫ
Вообще, у меня складывается впечатление, что МС вместо того чтобы действовать по законам рынка формирует некую матрицу в которой заставляет жить всех остальных.
20 лет назад МС просто сделал бы компилятор для обоих языков и выжил бы сильнейший. Сегодня МС тупо поддерживает того кто оказался ближе к телу не взирая на перспективность. Да вообще не взирая на какие либо разумные доводы.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, hi_octane, Вы писали: _>Или вот такой пример — к нам много данных приходило в текстовом формате. Парсить решили регекспами (данные от legacy системы, далеки от XML/HTML). Но сами регекспы сравнительно медленные, что-бы были быстрые — нужна прекомпиляция. Но прекомпилируемый регексп — уже не так удобен в использовании — его по месту использования не объявишь, он загружается из отдельной DLL, которую надо отдельно компилировать и т.п. На макросах мы получили фактически объявление по месту использования и с компилированными регекспами. И автоматом получили кэш компилированных регекспов — т.е. если по ходу работы в разных модулях проекта использовались одинаковые регекспы — два раза их код не компилировался.
А можно пояснить, в чем тут профит макросов по сравнению с функциями? Не совсем ясно.
Кстати, насчет регекспов — замечал, что Regex.Match с регекспом-строкой первый раз выполняется сравнительно долго, а последующие — значительно быстрее. Возможно, библиотека где-то внутри себя регекспы мемоизирует.
Здравствуйте, Mr.Cat, Вы писали:
MC>А можно пояснить, в чем тут профит макросов по сравнению с функциями? Не совсем ясно.
MC>Кстати, насчет регекспов — замечал, что Regex.Match с регекспом-строкой первый раз выполняется сравнительно долго, а последующие — значительно быстрее. Возможно, библиотека где-то внутри себя регекспы мемоизирует.
Если влючена опция компиляции, то она их не мемоизирует, а просто компилирует (сначала в мсил, а потом в нэйтив код).
Вот только человек говорил о прекомпилированных регексах. Для них компиляция во время исполнения вообще не производится. Они просто загружаются из сборок.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
L>>На этот вопрос как раз очень легко ответить: преимущество F#-а — поддержка со стороны микрософта. Больше преимуществ вроде нет.
VD>Дык это не преимущество языка. Это преимущество команды его разрабатывающей.
Это преимущество для тех, кто язык использует.
Вы сейчас скобки осуждаете, даже не задумываясь, что это изменение может поломать чей-то код.
VD>Это все равно, что говорить о приемуществах Лады перед, скажем, Маздой в том, что Лада поддерживается нашим правительством, а Мазда — нет.
Тут лучше вместо Мазды подставить название машины, которая не распространена в России, которую никто не ремонтирует, по которой нет литературы по эксплуатации и нет в продаже запчастей.
Вряд ли ты стал бы рекомендовать такую машину для покупки в России.
Здравствуйте, Mr.Cat, Вы писали:
MC>Кстати, насчет регекспов — замечал, что Regex.Match с регекспом-строкой первый раз выполняется сравнительно долго, а последующие — значительно быстрее. Возможно, библиотека где-то внутри себя регекспы мемоизирует.
И каждая регулярка при первом использовании будет подтормаживать, если их много, то можно нарваться на неприятности, именно поэтому существует метод Regex.CompileToAssembly. Профит макросов в том, что компиляция регулярок происходит во время компиляции проекта и нет оверхеда в рантайме.
Здравствуйте, Mr.Cat, Вы писали:
MC>Кстати, насчет регекспов — замечал, что Regex.Match с регекспом-строкой первый раз выполняется сравнительно долго, а последующие — значительно быстрее. Возможно, библиотека где-то внутри себя регекспы мемоизирует.
Если ты о статической версии, то она тупо создает новый экземпляр класса Regex который не прекомпилирует паттерн. Так что паттерн может и кэшироуется, но в результате он каждый раз выполняется не компилированный запрос.
ЗЫ
А вообще реализация регекспов от МС ниже плинтуса по скорости. В них используется НКА, что во многих случаях делает производительность просто ужасной. И тут не спасает даже прекомпиляция. Ведь квадратичный алгоритм является тормозом в любо исполнении.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Lloyd, Вы писали:
L>Это преимущество для тех, кто язык использует. L>Вы сейчас скобки осуждаете, даже не задумываясь, что это изменение может поломать чей-то код.
МС не раз ломал обратную совместимость в своих продуктах. Вспомнить хотя бы BV6 и VB .NET. F# тут не исключение. Но ведь тебе главное не это, правда? Чувство защищенности от ощущения руки большого брата столь велико, что заставляет закрывать глаза на что угодно. Да?
VD>>Это все равно, что говорить о приемуществах Лады перед, скажем, Маздой в том, что Лада поддерживается нашим правительством, а Мазда — нет.
L>Тут лучше вместо Мазды подставить название машины, которая не распространена в России, которую никто не ремонтирует, по которой нет литературы по эксплуатации и нет в продаже запчастей.
Да, что не подставь. Лада от этого лучше не станет. И то, что поддерживаю ее, а не что-то перспективное — это маразм.
L>Вряд ли ты стал бы рекомендовать такую машину для покупки в России.
Я точно не стану рекомендовать покупку Лады. А вот рекомендовать покупку чего-то другого я буду (или не буду) на основании качества этой альтернативы, а не наличия у нее владельца с огромным пиар-агентством.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Вообще, у меня складывается впечатление, что МС вместо того чтобы действовать по законам рынка формирует некую матрицу в которой заставляет жить всех остальных. VD>20 лет назад МС просто сделал бы компилятор для обоих языков и выжил бы сильнейший. Сегодня МС тупо поддерживает того кто оказался ближе к телу не взирая на перспективность. Да VD>вообще не взирая на какие либо разумные доводы.
Не так уж и тупо. Когда народ начал засматриваться на Ruby и Monorail Майкрософт создал свой mvc framework. Не сразу, конечно, где-то с задержкой в года три, с 2004 до 2007 года.
Так что они держат руку на пульсе. Народ — это конечно не такие как я, а mvp — именно они законодатели мод, они пишут блоги
Здравствуйте, VladD2, Вы писали:
L>>Вы сейчас скобки осуждаете, даже не задумываясь, что это изменение может поломать чей-то код.
VD>МС не раз ломал обратную совместимость в своих продуктах. Вспомнить хотя бы BV6 и VB .NET. F# тут не исключение.
Зачем мне вспоминать дела столь давно минувших дней? У меня перед глазами пример переходов с шарпа v1 на v2, а потом и на v3. Не припомню несовместимостей в языке.
L>>Вряд ли ты стал бы рекомендовать такую машину для покупки в России.
VD>Я точно не стану рекомендовать покупку Лады. А вот рекомендовать покупку чего-то другого я буду (или не буду) на основании качества этой альтернативы, а не наличия у нее владельца с огромным пиар-агентством.
А это уже бнальная подтасовка. Речь не о наличии пиара, а о "никто не ремонтирует, по которой нет литературы по эксплуатации и нет в продаже запчастей". Ты действительно считаешь все это неважным для машины?
Здравствуйте, Lloyd, Вы писали:
VD>>МС не раз ломал обратную совместимость в своих продуктах. Вспомнить хотя бы BV6 и VB .NET. F# тут не исключение.
L>Зачем мне вспоминать дела столь давно минувших дней? У меня перед глазами пример переходов с шарпа v1 на v2, а потом и на v3. Не припомню несовместимостей в языке.
И вообще языком нужно молоть по ответственнее, а то так и будешь оправдываться когда тебя тычат носом в несостоятельность твоего трепа.
VD>>Я точно не стану рекомендовать покупку Лады. А вот рекомендовать покупку чего-то другого я буду (или не буду) на основании качества этой альтернативы, а не наличия у нее владельца с огромным пиар-агентством.
L>А это уже бнальная подтасовка. Речь не о наличии пиара, а о "никто не ремонтирует, по которой нет литературы по эксплуатации и нет в продаже запчастей". Ты действительно считаешь все это неважным для машины?
Ага. Банальная подтасовка. Ведь проблем с сервисом у немерле нет. За то есть исходники и свободная лицензия.
А литература она конечно по ладе есть. И сервис для нее самый дешевый и доступнй. Куда же без этого если эта хрень при минимуме удобства требует постоянного ремонта?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, febus, Вы писали:
F>Не так уж и тупо. Когда народ начал засматриваться на Ruby и Monorail Майкрософт создал свой mvc framework. Не сразу, конечно, где-то с задержкой в года три, с 2004 до 2007 года.
Точнее будет сказать пять (лет).
Кстати, "рельсы" ты тоже изучал по оглавлению? Если нет, то должен был бы заметить, что между рельсами и mvc framework есть заметная разница.
А знаешь что позволило сделать рельсы столь удобным? Будешь смеяться, но Руби, так как этот язык, очень хорошо поддерживает метапрограммирование. Рельсы — это фрэймворк созданный на базе средств метапрограммирования руби. Вот такие вот зависимости.
F>Так что они держат руку на пульсе. Народ — это конечно не такие как я, а mvp — именно они законодатели мод, они пишут блоги
Назвать это "на пульсе" у меня язык не поворачивается. Я бы назвал это "иного обращат внимание на окружающий мир". Но к сожалению чаще МС варится в своем мире. В своем, в том смысле, что создаваемом самим собой.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, febus, Вы писали:
F>>Не так уж и тупо. Когда народ начал засматриваться на Ruby и Monorail Майкрософт создал свой mvc framework. Не сразу, конечно, где-то с задержкой в года три, с 2004 до 2007 года.
VD>Точнее будет сказать пять (лет).
VD>Кстати, "рельсы" ты тоже изучал по оглавлению? Если нет, то должен был бы заметить, что между рельсами и mvc framework есть заметная разница.
VD>А знаешь что позволило сделать рельсы столь удобным? Будешь смеяться, но Руби, так как этот язык, очень хорошо поддерживает метапрограммирование. Рельсы — это фрэймворк созданный на базе средств метапрограммирования руби. Вот такие вот зависимости.
VD>Назвать это "на пульсе" у меня язык не поворачивается. Я бы назвал это "иного обращат внимание на окружающий мир". Но к сожалению чаще МС варится в своем мире. В своем, в том смысле, что создаваемом самим собой.
Ни одна здравомыслящая фирма, желающая жить и здравствовать, не бросается на новую технологию в момент ее появления. Они выжидают. МС — не исключение.
Фирмы даже не переходят сразу на новейшую версию Visual Studio. Обычно ждут, чтобы все устаканилось и вышел какой-нить Service Pack.
Они также не бросаются на новейшие технологии, к коим можно смело отнести и Немерле. И если они вообще и вспомнят о таких языках как Немерле или F#,
то лишь по сугубо практическим соображениям. В данный момент я вижу только одну такую причину:
с появлением многоядерных процессоров использование новых возможностей стало очень актуально. Потому и снова всплыла давно забытая тема функционального программирования, отсюда полагаю и появление F# с его asyncron workflow (и снова читаю оглавление ).
Так что Майкрософт не тупой, они четко реагируют на реалии спроса.
Другой пример, с более давних времен. Само появление .NET. МС активно агитировал за технологию COM. (Я и там тоже оглавление читал )
Когда Ява стала поджимать, МС практически забил на COM и начал активно продвигать .NET, тем самым реагируя на реалии окружающего мира.
Так что повторюсь, — да, они держат руку на пульсе и реагируют, когда становится очевидным, что реагировать необходимо. А быстрее или медленнее, — ну это задним умом всегда виднее.
Здравствуйте, VladD2, Вы писали:
VD>Ну, вспомни делай текущих дней: VD>http://cs.hubfs.net/forums/thread/10538.aspx
VD>И вообще языком нужно молоть по ответственнее, а то так и будешь оправдываться когда тебя тычат носом в несостоятельность твоего трепа.
А в чем его треп то? Если я правильно вижу, там речь о изменениях на стадии pre-beta. A это не одно и то же, что и подобное изменение в уже выпущенной официальной версии.
Breaking changes and renames are very common for "pre-Beta" products. (If anything F# is abnormal in that it is already so stable — almost all the 'breaking' changes at the source code level from 1.9.6.2 to 1.9.6.16 are merely deprecation warnings saying we renamed a library function. I think if you pick most any other product, you're likely to find vastly more significant changes from CTP to Beta1.) There will continue to be some changes up until F# is released along with VS2010, but we are definitely converging on the final form of the language and libraries.
VD>Ага. Банальная подтасовка. Ведь проблем с сервисом у немерле нет. За то есть исходники и свободная лицензия. VD>А литература она конечно по ладе есть. И сервис для нее самый дешевый и доступнй. Куда же без этого если эта хрень при минимуме удобства требует постоянного ремонта?
Литература тоже есть,- Nemerle за 4 недели или как-то так оно называется на www.nemerle.org. Другое дело, что я уже неделю на тот сайт попасть не могу. Он все время лежит.
Здравствуйте, VladD2, Вы писали:
VD>>>МС не раз ломал обратную совместимость в своих продуктах. Вспомнить хотя бы BV6 и VB .NET. F# тут не исключение.
L>>Зачем мне вспоминать дела столь давно минувших дней? У меня перед глазами пример переходов с шарпа v1 на v2, а потом и на v3. Не припомню несовместимостей в языке.
VD>Ну, вспомни делай текущих дней: VD>http://cs.hubfs.net/forums/thread/10538.aspx
Опять передергиваешь. F# не релизнулся еще даже. Поддержка будет только начиная с 2010.
VD>И вообще языком нужно молоть по ответственнее, а то так и будешь оправдываться когда тебя тычат носом в несостоятельность твоего трепа.
Пока вроде нет причин оправдываться. И ты эта, язык попридержи, а то совсем детсад какой-то развел.
VD>>>Я точно не стану рекомендовать покупку Лады. А вот рекомендовать покупку чего-то другого я буду (или не буду) на основании качества этой альтернативы, а не наличия у нее владельца с огромным пиар-агентством.
L>>А это уже бнальная подтасовка. Речь не о наличии пиара, а о "никто не ремонтирует, по которой нет литературы по эксплуатации и нет в продаже запчастей". Ты действительно считаешь все это неважным для машины?
VD>Ага. Банальная подтасовка. Ведь проблем с сервисом у немерле нет.
Да ну? И к кому ж обращаться в случае чего, когда ты например в отпуск уйдешь.
VD>За то есть исходники и свободная лицензия.
Спасибо, не надо. Прежде чем я разберусь в этих исходниках, у меня уже внуки выростут.
Здравствуйте, VladD2, Вы писали: VD>А знаешь что позволило сделать рельсы столь удобным? Будешь смеяться, но Руби, так как этот язык, очень хорошо поддерживает метапрограммирование. Рельсы — это фрэймворк созданный на базе средств метапрограммирования руби. Вот такие вот зависимости.
И поэтому сонный МС сообразил IronRuby.
Оглавление здесь
Здравствуйте, Lloyd, Вы писали:
L>И к кому ж обращаться в случае чего, когда ты например в отпуск уйдешь.
В гуглогруппах всегда найдется кому ответить , вот этот форум в конце концов и пачка статей тут же (VladD2 — респект тебе — по ним и учился).
VD>>За то есть исходники и свободная лицензия.
L>Спасибо, не надо. Прежде чем я разберусь в этих исходниках, у меня уже внуки выростут.
Исходники вполне читаемые (хотя различия в стилистике выносят мозг), если задаться целью; меня обычно интересует реализация стандартных макросов, их "тонкости", опущенные в документации. Я вот где-то за полтора года ленивого знакомства с языком стал в исходниках свободно ориентироваться: notepad++ с light explorer-ом, поисковиком по файлам и object explorer-ом студии решают
Здравствуйте, Lloyd, Вы писали:
L>Опять передергиваешь. F# не релизнулся еще даже. Поддержка будет только начиная с 2010.
Да ну? Передергиваю? А Nemerle "релизнулся"?
VD>>И вообще языком нужно молоть по ответственнее, а то так и будешь оправдываться когда тебя тычат носом в несостоятельность твоего трепа.
L>Пока вроде нет причин оправдываться. И ты эта, язык попридержи, а то совсем детсад какой-то развел.
Есть, и оправдывашься. У тебя то МС гарант стабильности, то "минувшие дни" и "не релизнулся еще даже". К продуктам не МС это у тебя странным образом не относится.
VD>>Ага. Банальная подтасовка. Ведь проблем с сервисом у немерле нет.
L>Да ну? И к кому ж обращаться в случае чего, когда ты например в отпуск уйдешь.
В форум. К тому же есть исходники которые ты можешь поправить сам. А вот обращаться к МС практически бесполезно. Даже если они признают проблему и поправят ее, до следующего релиза или хотя бы сервис пака ты исправления не получишь. А признаются и исправляются далеко не все ошибки. Самые сложные тупо подвисают на долгие годы. Тот же Reflection.Emit до сих пор не может полноценно применяться для создания компиляторов из-за наличия ряда серьезнийших багов и недоработок.
VD>>За то есть исходники и свободная лицензия.
L>Спасибо, не надо. Прежде чем я разберусь в этих исходниках, у меня уже внуки выростут.
Это говорит исключительно о тебе. Есть люди способные разобраться в чужих исходниках.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, febus, Вы писали:
F>И поэтому сонный МС сообразил IronRuby. F>Оглавление здесь
Это вяло текущий ресерч. На него не делается ставок и от него не ждут бенефитов.
IronPython — это вообще пример для отладки интеграции с VS. Ее (интеграции) качество ниже плинтуса.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, febus, Вы писали:
VD>>И вообще языком нужно молоть по ответственнее, а то так и будешь оправдываться когда тебя тычат носом в несостоятельность твоего трепа. F>А в чем его треп то?
При том, что исходный посыл был "МС не допускает ломающих изменений".
F>Если я правильно вижу, там речь о изменениях на стадии pre-beta.
А у Немерла какая-то другая стадия? Или МС можно ломать на право и на лево, в каждом релизе, а нам даже действительно мешающие вещи нельзя поправить?
F>A это не одно и то же, что и подобное изменение в уже выпущенной официальной версии.
Не одно и то же с чем? А VB? А куча дуригих продуктов в которых совместимость была по херена? Мы вот на Word 2007 так и не перешли, из-за идиотизма сотворенного в интерфейсе этого продукта (не совместимость со старым).
F>
F>Breaking changes and renames are very common for "pre-Beta" products. (If anything F# is abnormal in that it is already so stable — almost all the 'breaking' changes at the source code level from 1.9.6.2 to 1.9.6.16 are merely deprecation warnings saying we renamed a library function. I think if you pick most any other product, you're likely to find vastly more significant changes from CTP to Beta1.) There will continue to be some changes up until F# is released along with VS2010, but we are definitely converging on the final form of the language and libraries.
Предлагаю подобрать скобки для типов...
...
2. Нужно ли делать это до выпуска версии 1.0 или отложить смену синтаксиса до будущей версии?
3. Делать ли такую смену в виде ключа компиляции допускающего как квадратные скобки с точкой (как принято сейчас), так и новые скобки?
F>Литература тоже есть,- Nemerle за 4 недели или как-то так оно называется на www.nemerle.org. Другое дело, что я уже неделю на тот сайт попасть не могу. Он все время лежит.
Ну, с сайтом дествительно проблема. Железо там дохнет. В ближайшее время переведем его на наше железо.
Исходники же на гугль-код, так что доступны в режиме 24 * 7.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, hardcase, Вы писали:
H>Исходники вполне читаемые (хотя различия в стилистике выносят мозг), если задаться целью; меня обычно интересует реализация стандартных макросов, их "тонкости", опущенные в документации. Я вот где-то за полтора года ленивого знакомства с языком стал в исходниках свободно ориентироваться: notepad++ с light explorer-ом, поисковиком по файлам и object explorer-ом студии решают
С исходниками разобраться можно. Но конечно и проблемы в них есть. Код далек от идеала.
Посему главной задачей второй версии будет создание чисто и легко поддерживаемой реализации, а не навороты языка. Конечно и они будут, но это не главная цель.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.