Здравствуйте, febus, Вы писали:
F>>>Оба языка разрабатывались для .Net. L>>Это не совсем верно по отношению к F#-у — он не разрабатывался для .Net, за основу был взят OCaml. F>Но ведь и Nemerle "лишь" комбинирует идеи, ранее уже существовавшие в других языках, которые появились задолго до .Net? F>Да и какая разница изначально разрабатывался или потом доработали?
QL>Зато есть, к примеру, отдельный забугорный форум по F#. По Nemerle есть что-то аналогичное?
А был бы этот форум англоязычным ты бы нас реально спросил почему нету русскоязычных форумов по Nemerle?
Кто интересуется языком, тот знает что по Nemerle есть юзер-группа, есть этот форум, есть сорцы, есть куча макробиблиотек идущих и с компилятором и выложенных просто так в сорцах на RSDN, есть статьи Влада которых достаточно что-бы начать писать если хоть немного C# знаешь, есть вики в которой основные триксы описаны.
Да и несерьёзно как-то мерять языки форумами. Nemerle настолько близок к C# и интуитивен, что когда начнёшь на нём программировать — вопросов у тебя долго не будет. Максимум по инициализации массивов (есть на вики), и уже сильно потом, когда до макросов доберёшься — тогда наверное появятся вопросы.
А до того всегда можно положиться на простое правило: "не знаешь как — делай как в C#".
До кучи посмотри что обсуждается на этом форуме, не тупые флеймы Nemerle vs всё-всё, а конкретные вопросы людей которые уже программируют на Nemerle. Обнаружишь что вопросов как таковых "не могу сделать, помогите", от немерлистов то и нету. Сплошь предложения по добавлению новых фич, расширению макробиблиотеки, улучшению чего-то там и т.п. И посмотри на унылые вопросы на форуме F#, и на даты постов тоже посмотри, и на количество ответов на вопросы Пока что F# не спасает даже то что его продвигает MS.
_>>А был бы этот форум англоязычным ты бы нас реально спросил почему нету русскоязычных форумов по Nemerle? QL>Мое замечание было о том, что РСДНом жизнь не ограничивается. Стоит иногда смотреть по сторонам.
Где свидетельства что мы не смотрим? Вроде вижу обратное, в Nemerle за счёт его расширяемости стремятся притащить всё подряд, и тащут, и тащут... Вот приспичит кому-нить — и будет в Nemerle встроенный компилятор F#
QL>Как раз на этом форуме явно идет противопоставление немерлистов и остальных — чувствуется какая-то надменная снисходительность, как будто первые — элита, продвинутые и опытные, а другие — "унылые" и бестолковые. Причем гонор у отдельных товарищей местами просто зашкаливает.
Ну на меня пока в этом форуме никто не наехал Может потому что я не пытался доказать что 1)Всё что можно сделать на Nemerle можно через пень-колоду слепить и на C#; 2)Что Nemerle не решает адской супер-пупер-важной задачи которую кроме меня вообще никто не решает; 3)Что Nemerle это слишком большая штука, и если его дать индусам то случится взрыв вселенной.
>>Пока что F# не спасает даже то что его продвигает MS. QL>Вообще подобные темы регулярно в КСВ появляются — люди умудряются делать космические выводы типа "язык Х мертв", "платформа У — тормозной отстой" и т.п. Я не знаю, как вы определяете "спасение F#", но для меня подобные проекты достаточно показательны — язык развивается, появляются коммерческие продукты, расширяется коммюнити.
Если бы ты на Nemerle реально программировал — ты бы понимал что половина существующих методов решения задач — просто косяки и костыли. Приведенная платформа — лишь частность. Чуваки пытаются по AST сгенерировать JS/XML/и т.п. Ну и как мне откомментировать их разработку так, чтобы ты не увидел в моём коменте снисхождения и не подвёл всё под то что у меня гонор зашкаливает, если тот же VladD2 про все эти возможности Nemerle пишет и писал стопиццот раз во всех разделах RSDN?
F>Здорово! А можете пример привести? Ну например: была такая проблема, думали как решить, остановились на макросах по таким-то причинам, решили, переделали, переделали, используем.
вот пример кода (здесь и далее пишу по памяти — я ща отдыхаю от трудовых подвигов).
fork(100)//поднимает потоки по числу процессоров, выполняет ими в общей сложности 100 итераций
{
def element = items[forkIndex];//получили какой-то элемент, работаем с ним
}
//здесь мы снова в главном потоке, многопоточная обработка завершена
На C# короче чем Threads.Fork((forkIndex) => { лямбда }); — не получалось. А главное — в C# за иммутабельностью расшаренного состояния следить надо было, а Nemerle это сам делает.
Или вот такой пример — к нам много данных приходило в текстовом формате. Парсить решили регекспами (данные от legacy системы, далеки от XML/HTML). Но сами регекспы сравнительно медленные, что-бы были быстрые — нужна прекомпиляция. Но прекомпилируемый регексп — уже не так удобен в использовании — его по месту использования не объявишь, он загружается из отдельной DLL, которую надо отдельно компилировать и т.п. На макросах мы получили фактически объявление по месту использования и с компилированными регекспами. И автоматом получили кэш компилированных регекспов — т.е. если по ходу работы в разных модулях проекта использовались одинаковые регекспы — два раза их код не компилировался.
Ещё макросами была сделана собственная сериализация, мемоизация, логгирование. Ну и самое наверное странное применение — это то что один из макросов был враппером для javascript'а приходящего из внешней системы. Получалась запись вида def (x, y, z) = javascript("\\server\share\file.js");
Здравствуйте, febus, Вы писали:
F>Сразу скажу, ни того ни другого не знаю. Прочитал первую часть статьи "Язык Nemerle". F>Сейчас читаю "Functional Programming for the real world" — F#. F>Оба языка разрабатывались для .Net.
Это не так. Nemerle — это новый язык который действительно исходно разрабатывался для дотнета. По этому он бесшовно интегрируется с дотнетом (не хуже C#-а).
F# же — это адаптация функционального языка Ocaml. Идиомы Ocaml-а частенько конфликтуют с идиомами дотнета.
Можно сказать так. F# предоставляет адаптированный Ocaml поверх дотнета, а Nemerle — это язык разработанный для дотнета.
F>Oба поддерживают и функциональное и объектное программирование.
Более того, они имеют общего предка — язык ML.
Вот только реализовано все несколько по разному. F# поддерживает и ФП, и ООП почти так же как это делает Ocaml. Очень характерен, например, взгляд F# на ООП. ООП в F# и Ocaml как бы вытекает из ФП (замыканий и т.п.). Все это делает F# трудным для восприятия и изучения для тех кто до этого не был связан с миром ФП, но был знаком, скажем, с C#.
Nemerle, в отличии от F#, имеет не одного предка (OCaml), а сразу несколько предков (C#, ML, Lisp). Причем от C# Nemerle позаимствовал весьма не мало. Это позволяет C#-программистам намного проще изучать новый язык и использовать подходы хорошо изученные при работе на C#.
F>Немерле позволяет определять собственные макросы, я это видел в статье на примере макроса &&. F>В F# можно определять собственные операторы.
Немерле так же позволяет определять собственные операторы. Только это сделано способом принятым в C#.
Дело в том, что возможность определять операторы — это не основная возможность макросов (т.е. метапрограммирования). Метапрограммирование (МП) — это намного больше нежели возможность определить оператор или функцию.
МП — это возможность менять код во время компиляции. Причем не только генерировать код, но и анализировать имеющийся код. Просто надо понимать, что во водных главах приводятся очень простые реализации макросов, чтобы не перегружать неподготовленного читателя.
F>В чем же преимущество Nemerle перед F#?
В кратце:
1. Поддержка метапрограммирования. А это значит: вводить собственные конструкции языка, автоматизировать написание кода, решать задачи методом создания встроенных ДСЛ-ей (языков описывающих задачу в терминах предметной области).
2. Nemerle во многом мимикрирует под C#, что позволяет как упростить изучение Nemerle C#-программистами, так и проще использовать возможности дотнет-библиотек которые писались в рассчете на использование из C#. Можно сказать, что Nemerle — это C# на стероидах (идеальный C#).
Тут скорее будет более уместным обратный вопрос.
А в чем же преимущество F# перед Nemerle?
Если вы не являетесь знатоком Ocaml-а, то найти ответ на этот вопрос будет не просто.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, enCobalt, Вы писали:
VD>>В "Декларативном программирвоании" F# обсуждают довольно не плохо. Я бы дал ему второе место за Хаскелем.
C>Понимаешь как комично в итоге выглядит этот ответ? Это примерно как — в винигрете мы занимаем примерно второе место после зеленого горошка.
Нет не понимаю.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, QrystaL, Вы писали:
Z>>Интересно, а если ты увидишь эти вещи в немерловом фреймворке, ты точно так же начнешь везде его расхваливать?
Z>>Например "корректность разметки, типы параметов аjax запросов, структуру сайта (отсутствие некорректных url-ов)" можно проверить в nrails если включить прекомпиляцию вьюх spark'а.
Z>>Да и остальные пункты туда прикрутить можно, только я сейчас этот фреймворк плотно не использую (просто нет новых задач для веба).
QL>Вообще интересно получается. На F# есть примеры законченных продуктов — и его все равно считают "не выстрелившим". На Nemerle основной упор на "потенциальные возможности" — и поэтому он крут
Я хз, кто считает F# не выстрелившим. Но если сравнивать языки, у немерле возможностей больше. Поэтому на них и указывают. А из того, что продукт еще сыроват и комьюнити невелико, количество публичных проектов стремится к нулю. На F# тоже опенсорса не много, а немерл еще никто не вложился.
Вообще мой пост был о том, что некоторые вещи вызывающие ваш восторг есть в наличии, но даже если бы они были все, это не было бы показателем для вас. Ну хочется вам считать F# успешнее, пожалуйста, так и есть. Мне от языка нужна не только успешность но и удобство написания нужных мне фич. Поэтому вы сравниваете количество вложенного бабла, а я возможности языка.
Здравствуйте, Mr.Cat, Вы писали:
MC>Кстати, насчет регекспов — замечал, что Regex.Match с регекспом-строкой первый раз выполняется сравнительно долго, а последующие — значительно быстрее. Возможно, библиотека где-то внутри себя регекспы мемоизирует.
И каждая регулярка при первом использовании будет подтормаживать, если их много, то можно нарваться на неприятности, именно поэтому существует метод Regex.CompileToAssembly. Профит макросов в том, что компиляция регулярок происходит во время компиляции проекта и нет оверхеда в рантайме.
Здравствуйте, Mr.Cat, Вы писали:
MC>Кстати, насчет регекспов — замечал, что Regex.Match с регекспом-строкой первый раз выполняется сравнительно долго, а последующие — значительно быстрее. Возможно, библиотека где-то внутри себя регекспы мемоизирует.
Если ты о статической версии, то она тупо создает новый экземпляр класса Regex который не прекомпилирует паттерн. Так что паттерн может и кэшироуется, но в результате он каждый раз выполняется не компилированный запрос.
ЗЫ
А вообще реализация регекспов от МС ниже плинтуса по скорости. В них используется НКА, что во многих случаях делает производительность просто ужасной. И тут не спасает даже прекомпиляция. Ведь квадратичный алгоритм является тормозом в любо исполнении.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, febus, Вы писали:
F>Ни одна здравомыслящая фирма, желающая жить и здравствовать, не бросается на новую технологию в момент ее появления. Они выжидают. МС — не исключение.
Нет, нет, нет уважаемый. Если из списка уважаемых фирм исключить MS и IBM которые давно живут в режиме полного подавления рынка, то окажется, что большая часть других фирм пытаются как можно быстрее освоить новые технологии и выпустить продукты их содержащие. Если они не будут этого дела, то рынок их уничтожит. А вот у MS и IBM все иначе. Они сами диктуют рынку свою волю. Это не позволяет с ними конкурировать.
F>Фирмы даже не переходят сразу на новейшую версию Visual Studio. Обычно ждут, чтобы все устаканилось и вышел какой-нить Service Pack.
Это говорит о качестве софта от MS. На новые версии многих продуктов люди переходят охотно и сразу. Простой пример — SVN. Он часто обновляется, но я ни разу не слышал, чтобы кто-то выжидал более стабильных версий.
F>Они также не бросаются на новейшие технологии, к коим можно смело отнести и Немерле.
Это не верная формулировка. Они не то что бы не бросются. Они их тупо игнорируют. Следствием такого игнорирования в купе с полнейшим подавлением рынка стало дичайшее отставание в области разработки языков программировния. Технологии известные вот уже 50 лет входят в продукты МС только сейчас. И входят очень не охотно.
При этом делается множество ошибок. Те же события, мулиткаст-делегаты, встроенная поддержка классов и полное отсутствие поддержки ФП во фрймворке.
F>И если они вообще и вспомнят о таких языках как Немерле или F#, то лишь по сугубо практическим соображениям.
К сожалению, единственное практическое соображение — это то что Дон Сайм оказался близко к тем людям которые выделяют деньги в МС. Он работал над рядом исследовательских проектов в МС Ресерч (например, дженерики — это его рук дело) и смог продвинуть свое детище. В прочем уровень поддержки F# в VS находится на зачаточном уровне. Такая работа за такое время под силу одному человеку.
F>В данный момент я вижу только одну такую причину: F>с появлением многоядерных процессоров использование новых возможностей стало очень актуально. Потому и снова всплыла давно забытая тема функционального программирования, отсюда полагаю и появление F# с его asyncron workflow (и снова читаю оглавление ).
Тема ФП не была забыта. Ее тупо игнорировали те кто ее не понимал. А MS была флагманом в этом процессе. Появление в МС таких людей как Дон Сайм и Липман меняют дело, но практика игнорирования всего окружающего осталась на месте.
Хейльсберг "не смог найти описание по Немерле". В добавок он просто таки борется с любыми попытками встроить в язык средства метапрограммирования.
F>Так что Майкрософт не тупой, они четко реагируют на реалии спроса.
Ага. С запозданием лет эдак на 30.
F>Другой пример, с более давних времен. Само появление .NET. МС активно агитировал за технологию COM. (Я и там тоже оглавление читал )
История программных революций от Microsoft, вкратце: Сначала были Windows API и DLL Hell. Революцией №1 было DDE — помните, как ссылки позволили нам создавать статусные строки, отражающие текущую цену акций Microsoft? Примерно тогда же Microsoft создала ресурс VERSION INFO, исключающий DLL Hell. Но другая группа в Microsoft нашла в DDE фатальный недостаток — его писали не они!
Для решения этой проблемы они создали OLE (похожее на DDE, но другое), и я наивно вспоминаю докладчика на Microsoft-овской конференции, говорящего, что скоро Windows API перепишут как OLE API, и каждый элемент на экране будет ОСХ-ом. В OLE появились интерфейсы, исключающие DLL Hell. Помните болезнь с названием "по месту", при которой мы мечтали встроить все свои приложения в один (возможно, очень большой) документ Word? Где-то в то же время Microsoft уверовала в религию С++, возникла MFC решившая все наши проблемы еще раз.
Но OLE не собиралась, сложа руки смотреть на это, поэтому оно заново родилось под именем COM, и мы внезапно поняли, что OLE (или это было DDE?) будет всегда — и даже включает тщательно разработанную систему версий компонентов, исключающую DLL Hell. В это время группа отступников внутри Microsoft обнаружила в MFC фатальный недостаток — его писали не они! Они немедленно исправили этот недочет, создав ATL, который как MFC, но другой, и попытались спрятать все замечательные вещи, которым так упорно старалась обучить нас группа COM. Это заставило группу COM (или это было OLE?) переименоваться в ActiveX и выпустить около тонны новых интерфейсов (включая интерфейсы контроля версий, исключающие DLL Hell), а заодно возможность сделать весь код загружаемым через браузеры, прямо вместе с определяемыми пользователем вирусами (назло этим гадам из ATL!).
Группа операционных систем громким криком, как забытый средний ребенок, потребовала внимания, сказав, что нам следует готовиться к Cairo, некой таинственной хреновине, которую никогда не могли даже толком описать, не то, что выпустить. К их чести, следует сказать, что они не представляли концепции "System File Protection", исключающей DLL Hell. Но тут некая группа в Microsoft нашла фатальный недостаток в Java — её писали не они! Это было исправлено созданием то ли J, то ли Jole, а может, и ActiveJ (если честно, я просто не помню), точно такого же как Java, но другого. Это было круто, но Sun засудило Microsoft по какому-то дряхлому закону. Это была явная попытка задушить право Microsoft выпускать такие же продукты, как у других, но другие.
Помните менеджера по J/Jole/ActiveJ, стучащего по столу туфлей и говорящего, что Microsoft никогда не бросит этот продукт? Глупец! Все это означало только одно — недостаток внимания к группе ActiveX (или это был COM?). Эта невероятно жизнерадостная толпа вернулась с COM+ и MTS наперевес (может, это стоило назвать ActiveX+?). Непонятно почему к MTS не приставили "COM" или "Active" или "X" или "+" — они меня просто потрясли этим! Они также грозились добавить + ко всем модным тогда выражениям. Примерно тогда же кое-кто начал вопить про "Windows DNA" (почему не DINA) и "Windows Washboard", и вопил некоторое время, но все это почило раньше, чем все поняли, что это было.
К этому моменту Microsoft уже несколько лет с нарастающей тревогой наблюдала за интернет. Недавно они пришли к пониманию, что у Интернет есть фатальный недостаток: ну, вы поняли. И это приводит нас к текущему моменту и технологии .NET (произносится как "doughnut (пончик по-нашему)", но по-другому), похожей на Интернет, но с большим количеством пресс- релизов. Главное, что нужно очень четко понимать — .NET исключает DLL Hell.
В .NET входит новый язык, C#, (выясняется, что в Active++ Jspresso был фатальный недостаток, от которого он и помер). .NET включает виртуальную машину, которую будут использовать все языки (видимо, из-за фатальных недостатков в процессорах Интел). .NET включает единую систему защиты (есть все-таки фатальный недостаток в хранении паролей не на серверах Microsoft). Реально проще перечислить вещи, которых .NET не включает. .NET наверняка революционно изменит Windows-программирование... примерно на год.
F>Когда Ява стала поджимать, МС практически забил на COM и начал активно продвигать .NET, тем самым реагируя на реалии окружающего мира.
Ну, к чести МС надо сказать, что на КОМ таки не забили. Большая часть новых сервисов ОС делается именно на КОМ.
Но что точно плохо — это то, что на сам .NET должного внимания уделено не было. Был пиар-всплеск который заставил многих поверить в то, что КОМ обречен, а .NET — это наше все, но потом победила другая команада, а команда .NET так и не смогла обеспечить производительности и потребляемых ресурсов достаточных для того чтобы на базе .NET создавались системные сервисы нового поколения.
F>Так что повторюсь, — да, они держат руку на пульсе и реагируют, когда становится очевидным, что реагировать необходимо. А быстрее или медленнее, — ну это задним умом всегда виднее.
Это самовнушение. МС все больше и больше превращаются в консерваторов. Само по себе это не плохо. Плохо то, что с их массой, деньгами и пиаром они полность подминают под себя рынок и тем самым не позволяют работать конкуренции. А без конкуренции развитие будет оооОоочень медленным.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, enCobalt, Вы писали:
QL>>Можно просто сказать, чем эта разработка так ужасна, и почему ее нельзя считать примером успешного применения F# в production окружении для решения реальных задач.
C>В каком месте там должен наступить "wow-эффект"? Типа как от C# или магического 1597463007, или библиотек DevExpress, или применяемых в райнтайме XAML?
C>Вот честно, я вообще ничего не увидел. Все понты около-гуёвые... я не понял зачем там F#? Или функциональный язык вообще?
Значит не хотел увидеть.
Ну например:
вохможность абстрагироваться от javascript и писать client-side вещи в стиле обычных .NET приложений: если надо использовать какую-то третьстороннюю JavaScript библиотеку, просто добавляешь ссылку на dll с описаниями типов и получаешь все плюшки статической типизации. Вместе с релизом WS 2.0 будут доступны биндинги к наиболее популярным из существующих библиотек.
компилятор может проверить много вещей, которые обычно откладваются до рантайма: корректность разметки, типы параметов аjax запросов, структуру сайта (отсутствие некорректных url-ов).
формлеты — возможность создания комбинируемых, типобезопасных html форм
макросы — возможность вклиниться в процесс генерации javascript
продолжать можно долго...
C>А окологуёвая тема DexExpress например круче смотрится, и вместо прицела в корпоративный сегмент он давно и крепко уже там есть. А еще есть сервелат, есть контролы, есть ASP, есть WCF и ремоутинг... а ниши для этого WebSharper нет. C>Я не понимаю этих ребят. Если они делают ставку на то, что это F# то это скорее отпугнет корпоративный сектор, чем привлечет, там другие правила игры, и два первых из них — предсказуемость и персонал.
Здравствуйте, Аноним, Вы писали:
F>>Ух ты! Вы используете Nemerle в реальных коммерческих проектах вашей фирмы? А>Хотел было по ёрничать по поводу столь по детски наивного удивления, но боюсь обидеть.
Да без проблем, тем более анонимно Возможность получения информации на форуме для чайника — это тоже одно из важных преимуществ языка программирования.
А удивление то как раз и не детское. Убедить собственное руководство в том, чтобы разработка велась на языке, даже о существовании которого на сегодня знают лишь немногие программисты — вот это действительно круто. Если контора ты сам, да те два парня, то это другое дело: как средство борьбы с аутсорсингом, вполне себе вариант, конечно. Как средство защиты тоже, т.к. рефлектор не поможет.
_>>>Nemerle превратился из языка общего назначения в DSL, сам собой F>>Насчет DSL, я так понимаю, это фишка не столько самого языка, как функциональной парадигмы в целом. А>Можно не скромный вопрос? А>Ты лично сам много DSL-лей сделал на F#-е?
Ни одного, я вчера его впервые открыл Впрочем, я об этом писал в вопросе. Прочитай оглавление темы
F>>F# позволяет создавать свой специализированный язык под конкретную задачу. F>>Как именно это делается — не знаю. Но в оглавлении книги вижу, что можно. А>Сравнивать языки программирования по информации полученной из оглавления книги — это круто! Так держать!
Оглавление — это уже много, см. выше
_>>>взгляд на другие языки стал у меня очень предвзятым, так что писать про тот же F# ничего не буду — всё равно сплошные лозунги и агитки за Nemerle будут получаться F>>Зря, — даже субъективные вещи вполне себе аргумент. Меня пока хитровывернутый синтаксис и отступы в F# напрягают. Впрочем это абсолютно естественно, т.к. я никогда раньше функционального стиля не видел. Linq не считается
А>В технологиях нужно разбираться. То кто разобрался в том, что такое мета программирование не будет даже задаваться вопросом есть ли в F# его полноценная поддержка. Он и так понимает, что нет.
Пойду убьюсь об стену.
Здравствуйте, febus, Вы писали:
F>Да и какая разница изначально разрабатывался или потом доработали? F# позволяет создавать библиотеки, которые без проблем могут быть использованы в проекте на C#.
Прозрачное взаимодействие — свойство платформы, не языка. После компиляции и Nemerle, и F# превращаются в MSIL.
Далее, ЕМНИП, операторы, созданные в F#, только в нём и получится использовать, т.к. это уже свойство языка, а не платформы. Кстати, это по сути не операторы, а обыкновенные функции с именами из специальных символов и двумя аргументами, которые разрешается применять инфиксно. Например, в Haskell (просто не знаю, как в других языках, может, тоже есть) функция двух аргументов с обычным именем тоже может быть использована инфиксно, если её имя заключить в обратные кавычки: 2 `foo` 3
Как я считаю, Nemerle мощнее F# именно в плане своей подсистемы макросов. Nemerle позволяет создавать не только новые операторы, но и новые синтаксические конструкции.
Мне F# синтаксис мозг выносит: вроде смотришь в книгу, но видишь фигу. А к Немерлу я довольно быстро привык.
В теории главным преимуществом должны быть макросы.
Здравствуйте, VladD2, Вы писали:
L>>Вы сейчас скобки осуждаете, даже не задумываясь, что это изменение может поломать чей-то код.
VD>МС не раз ломал обратную совместимость в своих продуктах. Вспомнить хотя бы BV6 и VB .NET. F# тут не исключение.
Зачем мне вспоминать дела столь давно минувших дней? У меня перед глазами пример переходов с шарпа v1 на v2, а потом и на v3. Не припомню несовместимостей в языке.
L>>Вряд ли ты стал бы рекомендовать такую машину для покупки в России.
VD>Я точно не стану рекомендовать покупку Лады. А вот рекомендовать покупку чего-то другого я буду (или не буду) на основании качества этой альтернативы, а не наличия у нее владельца с огромным пиар-агентством.
А это уже бнальная подтасовка. Речь не о наличии пиара, а о "никто не ремонтирует, по которой нет литературы по эксплуатации и нет в продаже запчастей". Ты действительно считаешь все это неважным для машины?
Здравствуйте, VladD2, Вы писали:
L>>Обращаться в мс я точно не буду. Полезу в гугл и за полчаса найду решение или воркэаунд. В крайнем случае задам вопрос на стэковерфлоу или тут. Под поддержкой я прежде всего имел в виду поддержку коммьюнити.
VD>ОК. Значит стем что дождаться исправления багов от МС сложнее та не спориш. уже прогресс.
Гм. Перечитал свое первое сообщение и кажется понял, в чем был косяк.
Когда я писал "поддержка со стороны микрософта", я не имел в виду, что конечный пользователь языка будет в случае проблем звонить в службу поддержки микрософта и пытаться таким образом решить свою проблему.
Имелось в виду, т.к. за спиной F#-а стоит микрософт, не это неизбежно привлечет внимание к языку большого количества народа, что свою очередь приведет к тому, что появится литература, статьи, блоги, будут выработаны best practices, существующие косяки будут изучены и обсосаны со всех сторон, ... И конечный пользователь найдет решение своих проблем уже в этом накопленом багаже знаний.
VD>А, что есть какие-то сомнения, в том что по Немерле можно легко получить ответы на вопросы?
У меня есть сомнения, что ответы на вопросы по Nemerle получить так же просто, как и на вопросы по C#/F#/...-у.
L>>Поверь мне, еще не самый худший экземпляр. Большинство не могут разобраться даже при наличии огромного кол-ва документации, статей, блогов...
VD>Ты ведь считаешь себя не тупее меня? VD>Ведь так? Значит и ты справишся.
Тут не в уме дело. Я на 200%-ов уверен, что в совокупности твой объем знаний больше моего. Также уверен, что Nemerle мне понравится и я буду не против его использовать.
Но в силу специфики работы, я не могу выбирать технологию, не оглядываясь на мнение окружающих (заказчиков, коллег, начальства). Если мне захочется использовать этот язык, мне нужно будет их убедить, нужно будет "продать" его. А продать я его не смогу по вышеназванной причине (нет гиганта за плечами).
Речь только об этом.
VD>Так что чем придираться и излевать тут свой писсемизм, учше взял бы и помог бы нам.
У меня на флейм на rsdn-е времени не хватает, а ты пытаешься мне еще и помощь навязать.
Здравствуйте, Lloyd, Вы писали:
L>А продать я его не смогу по вышеназванной причине (нет гиганта за плечами).
Не на одних гигантах держатся языки программирования, взять тот же Руби.
Nemerle on Rails — смерть руби через статическую типизацию и производительность.
Здравствуйте, Аноним, Вы писали:
А>Конец 2010-го года. На дворе почти зима. А>Время все расставило по своим местам. А>На RSDN все еще нет форума по F#, а в форуме .Net не приняли. Изредка что-то проскакивает что-то в ветке "Декларативное программирование" в компании языков.. странной компании.
Это скорее говорит о rsdn-е, а не о предмете обсуждения.
Вот мои наблюдения:
Здравствуйте, hi_octane, Вы писали:
_>А был бы этот форум англоязычным ты бы нас реально спросил почему нету русскоязычных форумов по Nemerle?
Мое замечание было о том, что РСДНом жизнь не ограничивается. Стоит иногда смотреть по сторонам.
_>Да и несерьёзно как-то мерять языки форумами.
Это вполне очевидно.
_>До кучи посмотри что обсуждается на этом форуме, не тупые флеймы Nemerle vs всё-всё, а конкретные вопросы людей которые уже программируют на Nemerle. Обнаружишь что вопросов как таковых "не могу сделать, помогите", от немерлистов то и нету. Сплошь предложения по добавлению новых фич, расширению макробиблиотеки, улучшению чего-то там и т.п. И посмотри на унылые вопросы на форуме F#, и на даты постов тоже посмотри, и на количество ответов на вопросы
Как раз на этом форуме явно идет противопоставление немерлистов и остальных — чувствуется какая-то надменная снисходительность, как будто первые — элита, продвинутые и опытные, а другие — "унылые" и бестолковые. Причем гонор у отдельных товарищей местами просто зашкаливает.
>Пока что F# не спасает даже то что его продвигает MS.
Вообще подобные темы регулярно в КСВ появляются — люди умудряются делать космические выводы типа "язык Х мертв", "платформа У — тормозной отстой" и т.п. Я не знаю, как вы определяете "спасение F#", но для меня подобные проекты достаточно показательны — язык развивается, появляются коммерческие продукты, расширяется коммюнити.
QL>Можно просто сказать, чем эта разработка так ужасна, и почему ее нельзя считать примером успешного применения F# в production окружении для решения реальных задач.
Я где-то писал что она ужасна? Или что её нельзя чем-то считать? Да даже статьи с CodeProject вполне идут в продакшн Эта либа — пиар-проект, делается одним из штатных евангелистов и соавторов F#, и с таким же успехом могла бы быть включена аддоном в поставку F#. Выделили её в отдельный фреймворк по каким-то особенным соображениям.
Увы это сравнительно простая штука, которая может понравится только тому кто про доступ к АСТ во время компиляции не слышал. Но в немерле эта задача тривиальна. Если на F# это не так, и целый платный фреймворк реально нужно городить — то это проблемы F# и тех кто его почему-то выбрал.
VD>>>Я бы дал ему второе место за Хаскелем.
C>>Понимаешь как комично в итоге выглядит этот ответ? Это примерно как — в винигрете мы занимаем примерно второе место после зеленого горошка.
VD>Нет не понимаю.
Ну... винигрет в данном случае это такой салат, подаваемый на банкете в котором смена блюд происходит галантно каждые 20 минут, а королевские охотники три месяца до этого заготавливали рябчиков и кабанчиков для мейнстрима. Но это все еще отличный салат чтобы в него упасть поспать, после этого самого 40-ка градусного мейнстрима. И в нем есть зеленый горошек.
ОК, дай ему место не по Volume, а по Value мерять. Сколько процентов из веток декларативного программирования посвящены F#? А если отсечь одноразовых юников? Сколько от сообщества останется. Да практически... Не последняя кстати причина, почему я выбрал Nemerle для переписывания в будущей версии бизнес-логики с С# для вполне успешного, дорогостоящего и состоявшегося проекта. А задача там самая трушная именно для функционального языка.
D>вохможность абстрагироваться от javascript и писать client-side вещи в стиле обычных .NET приложений: если надо использовать какую-то третьстороннюю JavaScript библиотеку, просто добавляешь ссылку на dll с описаниями типов и получаешь все плюшки статической типизации. Вместе с релизом WS 2.0 будут доступны биндинги к наиболее популярным из существующих библиотек. D>компилятор может проверить много вещей, которые обычно откладваются до рантайма: корректность разметки, типы параметов аjax запросов, структуру сайта (отсутствие некорректных url-ов). D>формлеты — возможность создания комбинируемых, типобезопасных html форм D>макросы — возможность вклиниться в процесс генерации javascript D>продолжать можно долго... D>
Интересно, а если ты увидишь эти вещи в немерловом фреймворке, ты точно так же начнешь везде его расхваливать?
Например "корректность разметки, типы параметов аjax запросов, структуру сайта (отсутствие некорректных url-ов)" можно проверить в nrails если включить прекомпиляцию вьюх spark'а.
Да и остальные пункты туда прикрутить можно, только я сейчас этот фреймворк плотно не использую (просто нет новых задач для веба).
Здравствуйте, hi_octane, Вы писали:
_>Когда в F# можно будет каким-то образом читать и менять AST компилирующейся в данный момент программы — буду смотреть. А так — в C/C++ тоже можно DSL сделать — #define и погнали
Возможность создавать свои DSL-и не обязательно означает возможность изменять синтаксис.
Здравствуйте, hardcase, Вы писали:
ВВ>>Возможность создавать свои DSL-и не обязательно означает возможность изменять синтаксис. H>Возможность изменять AST также не подразумевает возможности менять синтаксис.
Угу, и в свою очередь также не является необходимой для создания DSL-ей.
Сразу скажу, ни того ни другого не знаю. Прочитал первую часть статьи "Язык Nemerle".
Сейчас читаю "Functional Programming for the real world" — F#.
Оба языка разрабатывались для .Net. Oба поддерживают и функциональное и объектное программирование.
Немерле позволяет определять собственные макросы, я это видел в статье на примере макроса &&.
В F# можно определять собственные операторы.
В чем же преимущество Nemerle перед F#?
Здравствуйте, Lloyd, Вы писали: F>>Оба языка разрабатывались для .Net. L>Это не совсем верно по отношению к F#-у — он не разрабатывался для .Net, за основу был взят OCaml.
Но ведь и Nemerle "лишь" комбинирует идеи, ранее уже существовавшие в других языках, которые появились задолго до .Net?
Да и какая разница изначально разрабатывался или потом доработали? F# позволяет создавать библиотеки, которые без проблем могут быть использованы в проекте на C#.
У нас в процессе работы над первым же проектом Nemerle превратился из языка общего назначения в DSL, сам собой. Просто по ходу создавались макросы для всех удачных решений и внедрялись. Этакий мета-рефакторинг. Начинаешь писать вроде-бы на C#, а заканчиваешь на чём-то своём, удобном и полностью заточенном под задачу. После такого опыта — взгляд на другие языки стал у меня очень предвзятым, так что писать про тот же F# ничего не буду — всё равно сплошные лозунги и агитки за Nemerle будут получаться
Здравствуйте, hi_octane, Вы писали:
_>У нас в процессе работы над первым же проектом Nemerle
Ух ты! Вы используете Nemerle в реальных коммерческих проектах вашей фирмы?
_>Nemerle превратился из языка общего назначения в DSL, сам собой
Насчет DSL, я так понимаю, это фишка не столько самого языка, как функциональной парадигмы в целом. F# позволяет создавать свой специализированный язык под конкретную задачу.
Как именно это делается — не знаю. Но в оглавлении книги вижу, что можно.
_>взгляд на другие языки стал у меня очень предвзятым, так что писать про тот же F# ничего не буду — всё равно сплошные лозунги и агитки за Nemerle будут получаться
Зря, — даже субъективные вещи вполне себе аргумент. Меня пока хитровывернутый синтаксис и отступы в F# напрягают. Впрочем это абсолютно естественно, т.к. я никогда раньше функционального стиля не видел. Linq не считается
Здравствуйте, hi_octane, Вы писали:
_>У нас в процессе работы над первым же проектом Nemerle превратился из языка общего назначения в DSL, сам собой. Просто по ходу создавались макросы для всех удачных решений и внедрялись. Этакий мета-рефакторинг. Начинаешь писать вроде-бы на C#, а заканчиваешь на чём-то своём, удобном и полностью заточенном под задачу. После такого опыта — взгляд на другие языки стал у меня очень предвзятым, так что писать про тот же F# ничего не буду — всё равно сплошные лозунги и агитки за Nemerle будут получаться
Здорово! А можете пример привести? Ну например: была такая проблема, думали как решить, остановились на макросах по таким-то причинам, решили, переделали, переделали, используем.
F>Насчет DSL, я так понимаю, это фишка не столько самого языка, как функциональной парадигмы в целом. F# позволяет создавать свой специализированный язык под конкретную задачу.
Когда в F# можно будет каким-то образом читать и менять AST компилирующейся в данный момент программы — буду смотреть. А так — в C/C++ тоже можно DSL сделать — #define и погнали
Здравствуйте, febus, Вы писали:
F>В чем же преимущество Nemerle перед F#?
Для меня, основных преимуществ два: синтакс и макросы. Синтаксическое сходство языка с C# позволяет свободно обсуждать фрагменты кода с незнакомыми с Немерле программистами. Стандартные макросы содержат много полезного функционала, вроде мемоизации функций, безопасных printf и scanf, автоматического создания аксессоров и конструкторов. Свои макросы я пишу редко, но написанные сэкономили тонны времени. Без своих макросов локализации я бы просто не стал переводить одну программу с десятками тысяч пользователей. Своя библиотека макросов профилирования очень помогает писать алгоритмы. Макросы генерируют таблицу имён в одном моём DSL'е.
Ce n'est que pour vous dire ce que je vous dis.
Re[3]: В чем преимущество Nemerle перед F#?
От:
Аноним
Дата:
30.12.09 19:12
Оценка:
Здравствуйте, febus, Вы писали:
_>>У нас в процессе работы над первым же проектом Nemerle F>Ух ты! Вы используете Nemerle в реальных коммерческих проектах вашей фирмы?
Хотел было по ёрничать по поводу столь по детски наивного удивления, но боюсь обидеть.
_>>Nemerle превратился из языка общего назначения в DSL, сам собой F>Насчет DSL, я так понимаю, это фишка не столько самого языка, как функциональной парадигмы в целом.
Можно не скромный вопрос?
Ты лично сам много DSL-лей сделал на F#-е?
F>F# позволяет создавать свой специализированный язык под конкретную задачу.
С удовольствием послушаю о замечательных свойствах F# которые позволят создавать встроенные ДСЛ-и.
Это не lex yacc ли имеются в виду? Или может CAML4P? Но он откровенно и рядом не стоял с макросами, да и не поддерживается вроде бы он в F#. Хотя я тут не уверен.
F>Как именно это делается — не знаю. Но в оглавлении книги вижу, что можно.
Сравнивать языки программирования по информации полученной из оглавления книги — это круто! Так держать!
_>>взгляд на другие языки стал у меня очень предвзятым, так что писать про тот же F# ничего не буду — всё равно сплошные лозунги и агитки за Nemerle будут получаться F>Зря, — даже субъективные вещи вполне себе аргумент. Меня пока хитровывернутый синтаксис и отступы в F# напрягают. Впрочем это абсолютно естественно, т.к. я никогда раньше функционального стиля не видел. Linq не считается
В технологиях нужно разбираться. То кто разобрался в том, что такое мета программирование не будет даже задаваться вопросом есть ли в F# его полноценная поддержка. Он и так понимает, что нет.
Здравствуйте, hi_octane, Вы писали:
_>Когда в F# можно будет каким-то образом читать и менять AST компилирующейся в данный момент программы — буду смотреть. А так — в C/C++ тоже можно DSL сделать — #define и погнали
Как раз в C++ возможностей по больше. Все же метапрограммирование на шаблонах хотя и кривое решение, но рабочее.
Справедливости ради нужно заметить, что по наследству от Окамла F# получил в свое распоряжение квази-цитировние. Но парадокс заключается в том, что с его помощью нельзя создавать код во время компиляции.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, febus, Вы писали:
F>Да и какая разница изначально разрабатывался или потом доработали?
Примерно такая же как использовать для гонок специально разрабатываемый болид и доработанный самосвал. Может самосвал и хорош в своей области применения, но в условиях шоссейно-круговых гонок он явно будет чувствовать себя не в своей тарелке (как его не дорабатывай).
F>F# позволяет создавать библиотеки, которые без проблем могут быть использованы в проекте на C#.
F# обложен кучей собственных библиотек оборачивающих API дотнета, чтобы его использование выглядело более менее естественно в F#. Можно скзать, что в F# создается виртуальный ФП-мир посреди враждебного мира дотнета. Кое что из мира дотнета в F# вообще отсутствует. Как, например, в F# объявить protected-свойство или protected internl-метод?
ЗЫ
В общем, что тут разводить бодягу. Изучи оба языка и сам сможешь ответить на все вопросы. Причем теоретического знакомства мало. Нужны практические упражнения.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Мишень-сан, Вы писали:
МС>Как я считаю, Nemerle мощнее F# именно в плане своей подсистемы макросов. Nemerle позволяет создавать не только новые операторы, но и новые синтаксические конструкции.
Уточню. Не только синтаксические, но и семантические! Это, на мой взгляд, намного важнее. Переписывание синтаксиса конечно дает некоторые бенефиты, но не так можно как задание умного поведения. Макры немерла позволяют анализировать код, информацию о типах и на основании этого анализа генерировать специализированный код. Это позволяет реализовывать разную семантику для разных случаев использования. Например, макрос foreach ни чем не уступает аналогичному оператору C# и даже превосходит его. А ведь это всего лишь макрос!
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, febus, Вы писали:
F>А удивление то как раз и не детское. Убедить собственное руководство в том, чтобы разработка велась на языке, даже о существовании которого на сегодня знают лишь немногие программисты — вот это действительно круто. Если контора ты сам, да те два парня, то это другое дело: как средство борьбы с аутсорсингом, вполне себе вариант, конечно. Как средство защиты тоже, т.к. рефлектор не поможет.
Если человек принимающий решение уже знаком с языком, то это не проблема. Проблемы обычно возникают в больших забюракротизированных конторах. Но они и F# использовать вряд ли станут. Ява для них — самое то. Ну, на крайняк C#.
F>Ни одного, я вчера его впервые открыл Впрочем, я об этом писал в вопросе. Прочитай оглавление темы
Тогда попробуй. Тебя ждут сплошные разочарования. Для немерла — макры, а значит и метапрограммирование — это неотъемлемая часть языка. В F# же есть даже меньше чем в его родителе — Ocaml-е.
F>>>F# позволяет создавать свой специализированный язык под конкретную задачу. F>>>Как именно это делается — не знаю. Но в оглавлении книги вижу, что можно. А>>Сравнивать языки программирования по информации полученной из оглавления книги — это круто! Так держать! F>Оглавление — это уже много, см. выше
Ну, так сделай следующий шаг — прочти соответствующую главу.
А>>В технологиях нужно разбираться. То кто разобрался в том, что такое мета программирование не будет даже задаваться вопросом есть ли в F# его полноценная поддержка. Он и так понимает, что нет. F>Пойду убьюсь об стену.
От этого никому толку не будет. А вот разобраться следовало бы.
Кстати, к метапрограммированию нужно прийти. Оно должно потребоваться тебе лично без оглядки на каком языке ты пишешь. Иначе толку от этого не будет.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Lloyd, Вы писали:
L>На этот вопрос как раз очень легко ответить: преимущество F#-а — поддержка со стороны микрософта. Больше преимуществ вроде нет.
Дык это не преимущество языка. Это преимущество команды его разрабатывающей.
Это все равно, что говорить о приемуществах Лады перед, скажем, Маздой в том, что Лада поддерживается нашим правительством, а Мазда — нет.
ЗЫ
Вообще, у меня складывается впечатление, что МС вместо того чтобы действовать по законам рынка формирует некую матрицу в которой заставляет жить всех остальных.
20 лет назад МС просто сделал бы компилятор для обоих языков и выжил бы сильнейший. Сегодня МС тупо поддерживает того кто оказался ближе к телу не взирая на перспективность. Да вообще не взирая на какие либо разумные доводы.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, hi_octane, Вы писали: _>Или вот такой пример — к нам много данных приходило в текстовом формате. Парсить решили регекспами (данные от legacy системы, далеки от XML/HTML). Но сами регекспы сравнительно медленные, что-бы были быстрые — нужна прекомпиляция. Но прекомпилируемый регексп — уже не так удобен в использовании — его по месту использования не объявишь, он загружается из отдельной DLL, которую надо отдельно компилировать и т.п. На макросах мы получили фактически объявление по месту использования и с компилированными регекспами. И автоматом получили кэш компилированных регекспов — т.е. если по ходу работы в разных модулях проекта использовались одинаковые регекспы — два раза их код не компилировался.
А можно пояснить, в чем тут профит макросов по сравнению с функциями? Не совсем ясно.
Кстати, насчет регекспов — замечал, что Regex.Match с регекспом-строкой первый раз выполняется сравнительно долго, а последующие — значительно быстрее. Возможно, библиотека где-то внутри себя регекспы мемоизирует.
Здравствуйте, Mr.Cat, Вы писали:
MC>А можно пояснить, в чем тут профит макросов по сравнению с функциями? Не совсем ясно.
MC>Кстати, насчет регекспов — замечал, что Regex.Match с регекспом-строкой первый раз выполняется сравнительно долго, а последующие — значительно быстрее. Возможно, библиотека где-то внутри себя регекспы мемоизирует.
Если влючена опция компиляции, то она их не мемоизирует, а просто компилирует (сначала в мсил, а потом в нэйтив код).
Вот только человек говорил о прекомпилированных регексах. Для них компиляция во время исполнения вообще не производится. Они просто загружаются из сборок.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
L>>На этот вопрос как раз очень легко ответить: преимущество F#-а — поддержка со стороны микрософта. Больше преимуществ вроде нет.
VD>Дык это не преимущество языка. Это преимущество команды его разрабатывающей.
Это преимущество для тех, кто язык использует.
Вы сейчас скобки осуждаете, даже не задумываясь, что это изменение может поломать чей-то код.
VD>Это все равно, что говорить о приемуществах Лады перед, скажем, Маздой в том, что Лада поддерживается нашим правительством, а Мазда — нет.
Тут лучше вместо Мазды подставить название машины, которая не распространена в России, которую никто не ремонтирует, по которой нет литературы по эксплуатации и нет в продаже запчастей.
Вряд ли ты стал бы рекомендовать такую машину для покупки в России.
Здравствуйте, Lloyd, Вы писали:
L>Это преимущество для тех, кто язык использует. L>Вы сейчас скобки осуждаете, даже не задумываясь, что это изменение может поломать чей-то код.
МС не раз ломал обратную совместимость в своих продуктах. Вспомнить хотя бы BV6 и VB .NET. F# тут не исключение. Но ведь тебе главное не это, правда? Чувство защищенности от ощущения руки большого брата столь велико, что заставляет закрывать глаза на что угодно. Да?
VD>>Это все равно, что говорить о приемуществах Лады перед, скажем, Маздой в том, что Лада поддерживается нашим правительством, а Мазда — нет.
L>Тут лучше вместо Мазды подставить название машины, которая не распространена в России, которую никто не ремонтирует, по которой нет литературы по эксплуатации и нет в продаже запчастей.
Да, что не подставь. Лада от этого лучше не станет. И то, что поддерживаю ее, а не что-то перспективное — это маразм.
L>Вряд ли ты стал бы рекомендовать такую машину для покупки в России.
Я точно не стану рекомендовать покупку Лады. А вот рекомендовать покупку чего-то другого я буду (или не буду) на основании качества этой альтернативы, а не наличия у нее владельца с огромным пиар-агентством.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Вообще, у меня складывается впечатление, что МС вместо того чтобы действовать по законам рынка формирует некую матрицу в которой заставляет жить всех остальных. VD>20 лет назад МС просто сделал бы компилятор для обоих языков и выжил бы сильнейший. Сегодня МС тупо поддерживает того кто оказался ближе к телу не взирая на перспективность. Да VD>вообще не взирая на какие либо разумные доводы.
Не так уж и тупо. Когда народ начал засматриваться на Ruby и Monorail Майкрософт создал свой mvc framework. Не сразу, конечно, где-то с задержкой в года три, с 2004 до 2007 года.
Так что они держат руку на пульсе. Народ — это конечно не такие как я, а mvp — именно они законодатели мод, они пишут блоги
Здравствуйте, 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-ом студии решают
С исходниками разобраться можно. Но конечно и проблемы в них есть. Код далек от идеала.
Посему главной задачей второй версии будет создание чисто и легко поддерживаемой реализации, а не навороты языка. Конечно и они будут, но это не главная цель.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
MC>А можно пояснить, в чем тут профит макросов по сравнению с функциями? Не совсем ясно.
У нас в некоторых местах время срочной реакции на поступившие данные не должно было превышать 20 ms. За это время надо было получить, распарсить, некисло проанализировать, и дать ответ тому кто эти данные подогнал. Получалось что если мы просто создадим регекспу с опцией Compiled — то при первом проходе через него будем иметь огроменное время (каждая такая регекспина собирается в отдельную сборку). Если регексп без компиляции — то нехватало времени на обработку/ответ. Как вариант можно было бы собрать все регекспы в какое-то одно место и вызвать CompileToAssembly и прибиндить их назад рефлексией, но пользоваться этим было бы неудобно программистам. А макрос все вхождения сам собирает и подставляет. Программистам удобно и задумываться не надо.
Кстати сейчас подумал — если бы в C# были макросы — то никаких прекомпилируемых регекспов, и их некомпилируемых версий наверное не было бы — просто само использование regex сделали бы макросом и подставляли IL по месту.
Здравствуйте, VladD2, Вы писали:
L>>Опять передергиваешь. F# не релизнулся еще даже. Поддержка будет только начиная с 2010.
VD>Да ну? Передергиваю? А Nemerle "релизнулся"?
Не релизнулся. Что же ты тогда так за него агитируешь?
VD>>>И вообще языком нужно молоть по ответственнее, а то так и будешь оправдываться когда тебя тычат носом в несостоятельность твоего трепа.
L>>Пока вроде нет причин оправдываться. И ты эта, язык попридержи, а то совсем детсад какой-то развел.
VD>Есть, и оправдывашься. У тебя то МС гарант стабильности, то "минувшие дни" и "не релизнулся еще даже". К продуктам не МС это у тебя странным образом не относится.
Ты приведи пример. Пока что был упомянут только F#, который в состоянии прибета, да VB.NET, который на самом деле совсем другой язык.
VD>>>Ага. Банальная подтасовка. Ведь проблем с сервисом у немерле нет.
L>>Да ну? И к кому ж обращаться в случае чего, когда ты например в отпуск уйдешь.
VD>В форум. К тому же есть исходники которые ты можешь поправить сам. А вот обращаться к МС практически бесполезно. Даже если они признают проблему и поправят ее, до следующего релиза или хотя бы сервис пака ты исправления не получишь. А признаются и исправляются далеко не все ошибки. Самые сложные тупо подвисают на долгие годы. Тот же Reflection.Emit до сих пор не может полноценно применяться для создания компиляторов из-за наличия ряда серьезнийших багов и недоработок.
Обращаться в мс я точно не буду. Полезу в гугл и за полчаса найду решение или воркэаунд. В крайнем случае задам вопрос на стэковерфлоу или тут. Под поддержкой я прежде всего имел в виду поддержку коммьюнити.
VD>>>За то есть исходники и свободная лицензия.
L>>Спасибо, не надо. Прежде чем я разберусь в этих исходниках, у меня уже внуки выростут.
VD>Это говорит исключительно о тебе. Есть люди способные разобраться в чужих исходниках.
Поверь мне, еще не самый худший экземпляр. Большинство не могут разобраться даже при наличии огромного кол-ва документации, статей, блогов...
Здравствуйте, VladD2, Вы писали:
F>>Ни одна здравомыслящая фирма, желающая жить и здравствовать, не бросается на новую технологию в момент ее появления. Они выжидают. МС — не исключение.
VD>Нет, нет, нет уважаемый. Если из списка уважаемых фирм исключить MS и IBM которые давно живут в режиме полного подавления рынка, то окажется, что большая часть других фирм пытаются как можно быстрее освоить новые технологии и выпустить продукты их содержащие. Если они не будут этого дела, то рынок их уничтожит.
А можно поподобнее про другие фирмы? Кто именно пытаются быстрее освоить технологии и выпустить продукты их содержащие? Просто интересно.
Здравствуйте, Lloyd, Вы писали:
L>А можно поподобнее про другие фирмы? Кто именно пытаются быстрее освоить технологии и выпустить продукты их содержащие? Просто интересно.
Не, нельзя. Список слишком большой. Примеры у тебя перед глазами. Возьми хотя бы электронику или бытовую химию. Скажем Sony пытается всунуть максимум хайтека, но дерет за свои продукты втридорога. А Samsung занимается более доступным железом, но все же обе конторы постоянно вводят новые технологии. причинатому четная конкуренция.
Языи программирования продукт не менее хойтечный нежело какой-нибудь ЖК-телевизор, и конукенция очень нужна для разватия ЯП. Но при сложившихся условиях разработка ЯП дело не прибыльное. И МС приложил не мало усилий к тому чтобы дела обстояли именно так.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Lloyd, Вы писали:
L>Ты приведи пример. Пока что был упомянут только F#, который в состоянии прибета, да VB.NET, который на самом деле совсем другой язык.
Ну так Nemerle тоже пре-бэта. Только в отличии от F# мы прежде чем чтото менять советуемся с тем самым комьюнити. В общем, этот вопрос и больше обсуждать не намерен. У верен что не предвзятые люди уже поняли несостоятельность и предвзятость твоих наездов.
L>Обращаться в мс я точно не буду. Полезу в гугл и за полчаса найду решение или воркэаунд. В крайнем случае задам вопрос на стэковерфлоу или тут. Под поддержкой я прежде всего имел в виду поддержку коммьюнити.
ОК. Значит стем что дождаться исправления багов от МС сложнее та не спориш. уже прогресс.
А, что есть какие-то сомнения, в том что по Немерле можно легко получить ответы на вопросы?
L>Поверь мне, еще не самый худший экземпляр. Большинство не могут разобраться даже при наличии огромного кол-ва документации, статей, блогов...
Ты ведь считаешь себя не тупее меня?
Ведь так? Значит и ты справишся.
Так что чем придираться и излевать тут свой писсемизм, учше взял бы и помог бы нам.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Не, нельзя. Список слишком большой. Примеры у тебя перед глазами. Возьми хотя бы электронику или бытовую химию. Скажем Sony пытается всунуть максимум хайтека, но дерет за свои продукты втридорога. А Samsung занимается более доступным железом, но все же обе конторы постоянно вводят новые технологии. причина тому четная конкуренция.
VD>Языи программирования продукт не менее хойтечный нежело какой-нибудь ЖК-телевизор, и конукенция очень нужна для разватия ЯП. Но при сложившихся условиях разработка ЯП дело не прибыльное. И МС приложил не мало усилий к тому чтобы дела обстояли именно так.
Ну это все железячники, я в этом плохо разбираюсь. Нет ли примером и софто-строителей?
Здравствуйте, dotneter, Вы писали:
L>>А продать я его не смогу по вышеназванной причине (нет гиганта за плечами).
D>Не на одних гигантах держатся языки программирования, взять тот же Руби.
За ним хотя бы коммьюнити огромное стоит. А тут увы ни того, ни другого.
D>Nemerle on Rails — смерть руби через статическую типизацию и производительность.
А оно надо для веб-фреймворков? Вон, говорят у youtube-а морда на питоне написана и ничего, не жалуются вроде.
Здравствуйте, Мишень-сан, Вы писали:
МС>... Например, в Haskell (просто не знаю, как в других языках, может, тоже есть) функция двух аргументов с обычным именем тоже может быть использована инфиксно, если её имя заключить в обратные кавычки: 2 `foo` 3
Не обязательно именно двух аргументов, можно больше, но оператор располагается между первыми двумя:
Здравствуйте, Lloyd, Вы писали:
L>За ним хотя бы коммьюнити огромное стоит. А тут увы ни того, ни другого.
Каким бы хорошим не был язык, сам по себе он нужен малой доли программистов. Появится кил фреймфорк, появится и комьюнити.
L>А оно надо для веб-фреймворков? Вон, говорят у youtube-а морда на питоне написана и ничего, не жалуются вроде.
1) Не у всех есть ресурсы гугла.
2) На чем то нужно писать остальную часть.
2) Twitter Ruby -> Scala.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Talk is cheap. Show me the code.
Re[13]: В чем преимущество Nemerle перед F#?
От:
Аноним
Дата:
17.11.10 00:02
Оценка:
L>Имелось в виду, т.к. за спиной F#-а стоит микрософт, не это неизбежно привлечет внимание к языку большого количества народа, что свою очередь приведет к тому, что появится литература, статьи, блоги, будут выработаны best practices, существующие косяки будут изучены и обсосаны со всех сторон, ... И конечный пользователь найдет решение своих проблем уже в этом накопленом багаже знаний.
Хочу up-нуть тему.
Конец 2010-го года. На дворе почти зима.
Время все расставило по своим местам.
На RSDN все еще нет форума по F#, а в форуме .Net не приняли. Изредка что-то проскакивает что-то в ветке "Декларативное программирование" в компании языков.. странной компании.
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, Аноним, Вы писали:
А>>Конец 2010-го года. На дворе почти зима. А>>Время все расставило по своим местам.
Здравствуйте, Аноним, Вы писали:
А>На RSDN все еще нет форума по F#, а в форуме .Net не приняли. Изредка что-то проскакивает что-то в ветке "Декларативное программирование" в компании языков.. странной компании.
В "Декларативном программирвоании" F# обсуждают довольно не плохо. Я бы дал ему второе место за Хаскелем.
Другое дело, что — это как раз и показывает, что F# такой же маргинальный как и Хаскель, и в Мэйнстрим он вряд ли сможет попасть. Но МС его так и рассматривает. "Язык не для всех."
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
_>Ну и как мне откомментировать их разработку [...] ?
Можно просто сказать, чем эта разработка так ужасна, и почему ее нельзя считать примером успешного применения F# в production окружении для решения реальных задач.
Re[17]: В чем преимущество Nemerle перед F#?
От:
Аноним
Дата:
18.11.10 00:12
Оценка:
_>>А был бы этот форум англоязычным ты бы нас реально спросил почему нету русскоязычных форумов по Nemerle? QL>Мое замечание было о том, что РСДНом жизнь не ограничивается. Стоит иногда смотреть по сторонам.
Ну.. это не ответ на кривизну твоего замечания.
А нашей языковой зоне RSDN-ом конечно жизнь не ограничивается, но просто замыкается на RSDN.
Лучше было тебе привести в пример хинди и индусов, но там получился бы разгром.
Я уже устал повторять почему по той или иной вещи так много англоязычных источников. Это
не Microsoft и не MIT генерят топики.
Большинство источников и вопрошателей не носители английского, просто пытаться найти друг друга и ответы
в интернете проще на международном стандарте, а у IT-шников он один — английский.
На английском спрашивает китаец и на английском отвечает ему индус, вот тебе и индекс языка.
А>>На RSDN все еще нет форума по F#, а в форуме .Net не приняли. Изредка что-то проскакивает что-то в ветке "Декларативное программирование" в компании языков.. странной компании.
VD>В "Декларативном программирвоании" F# обсуждают довольно не плохо. Я бы дал ему второе место за Хаскелем.
Понимаешь как комично в итоге выглядит этот ответ? Это примерно как — в винигрете мы занимаем примерно второе место после зеленого горошка.
L>Это скорее говорит о rsdn-е, а не о предмете обсуждения. L>Вот мои наблюдения: L>Google (по *.ru сайтам): L>F#: 80800 L>Nemerle: 5140
Это говорит и об RSDN и о предмете. Я ожидал что у F# будет одним нулем больше, учитывая что
он в стандартной поставке и каждый хоть один раз задастся вопросом "что за зверь такой этот F#".
Я не верю что за год продано всего 80к копий студии 2010. Этот рейтинг — это катастрофа для
F#.
При этом Nemerle с выходом новой студии никаких бонусов не получил, откуда аудитория взялась?
Здравствуйте, enCobalt, Вы писали:
L>>Это скорее говорит о rsdn-е, а не о предмете обсуждения. L>>Вот мои наблюдения: L>>Google (по *.ru сайтам): L>>F#: 80800 L>>Nemerle: 5140
C>Это говорит и об RSDN и о предмете. Я ожидал что у F# будет одним нулем больше, учитывая что C>он в стандартной поставке и каждый хоть один раз задастся вопросом "что за зверь такой этот F#". C>Я не верю что за год продано всего 80к копий студии 2010. Этот рейтинг — это катастрофа для C>F#.
Но наверное, верите, что на территории России их продано "одним нулем больше", т.е. почти миллион? Ну-ну.
Здравствуйте, QrystaL, Вы писали:
_>>А был бы этот форум англоязычным ты бы нас реально спросил почему нету русскоязычных форумов по Nemerle? QL>Мое замечание было о том, что РСДНом жизнь не ограничивается. Стоит иногда смотреть по сторонам.
С этим никто не спорит. Сейчас зарелизимся, переведем статьи что не переведены и залудим их на разные кодпрожекты. А там поглядим.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
L>>За ним хотя бы коммьюнити огромное стоит. А тут увы ни того, ни другого.
VD>15 лет назад в комьюните был один автор.
Это твоя новая оценка на срок, через который "он" выстрелит?
Здравствуйте, febus, Вы писали:
F>Не так уж и тупо. Когда народ начал засматриваться на Ruby и Monorail Майкрософт создал свой mvc framework. Не сразу, конечно, где-то с задержкой в года три, с 2004 до 2007 года.
Ты серьезно считаешь, что АСП.НЭТ МВЦ аналог Рельсов?
Представляешь себе разницу в удобстве? А где в МВЦ средства развития и развертывания БД?
F>Так что они держат руку на пульсе. Народ — это конечно не такие как я, а mvp — именно они законодатели мод, они пишут блоги
Держат то они ее держат, но не очень уверенно. МС частенько сливает те или иные ниши, а потом выкидывает миллионы (если не миллиарды) на то чтобы догнать. Вот с Интерент Эксплорером история, например, показательна. В девятке они вроде как попытались на верстать. Но кому она теперь нужна? А ведь были монополистами. С веб-ом у них тоже слив намечается. Многие и WP7-у слив прогнозируют.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Lloyd, Вы писали:
L>Это твоя новая оценка на срок, через который "он" выстрелит?
Она не новая. И я 3 года назад говорил, что у языков успеха менее чем за 10 лет (без волосатой лапы) не бывает. Успех это цепная реакция. Сначала пробует единицы — самые смелые и свободно мыслящие. Затем подтягиваются те кто по осторожнее. Затем серяднички. И в конце (если идет развитие) — планктон. Последние уже никаких выгод не получают, так как все уже в равных условиях.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Ты серьезно считаешь, что АСП.НЭТ МВЦ аналог Рельсов? VD>Представляешь себе разницу в удобстве? А где в МВЦ средства развития и развертывания БД?
А почему это должна быть задача веб фреймворка? Берите соответствующую библиотеку да пользуйтесь.
Здравствуйте, dotneter, Вы писали:
VD>>Ты серьезно считаешь, что АСП.НЭТ МВЦ аналог Рельсов? VD>>Представляешь себе разницу в удобстве? А где в МВЦ средства развития и развертывания БД? D>А почему это должна быть задача веб фреймворка? Берите соответствующую библиотеку да пользуйтесь.
Рельсы — это не веб-фрэймворк, а интегрированное RAID-решение. Оно интересно людям в комплексе.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
L>Но наверное, верите, что на территории России их продано "одним нулем больше", т.е. почти миллион? Ну-ну.
А вы наверное верите, что в России установлено "одним нулем меньше" и поэтому F# имеет ту аудиторию которую имеет?
Не хочу злорадствовать над вашим комментом, но блин... смешно.
Здравствуйте, enCobalt, Вы писали:
L>>Но наверное, верите, что на территории России их продано "одним нулем больше", т.е. почти миллион? Ну-ну.
C>А вы наверное верите, что в России установлено "одним нулем меньше" и поэтому F# имеет ту аудиторию которую имеет?
Да, именно в это я и верю. У меня нет статистики, но не думаю, что на территории России продано более 80 тыс копий Visual Studio 2010.
C>Не хочу злорадствовать над вашим комментом, но блин... смешно.
QL>Можно просто сказать, чем эта разработка так ужасна, и почему ее нельзя считать примером успешного применения F# в production окружении для решения реальных задач.
В каком месте там должен наступить "wow-эффект"? Типа как от C# или магического 1597463007, или библиотек DevExpress, или применяемых в райнтайме XAML?
Вот честно, я вообще ничего не увидел. Все понты около-гуёвые... я не понял зачем там F#? Или функциональный язык вообще?
А окологуёвая тема DexExpress например круче смотрится, и вместо прицела в корпоративный сегмент он давно и крепко уже там есть. А еще есть сервелат, есть контролы, есть ASP, есть WCF и ремоутинг... а ниши для этого WebSharper нет.
Я не понимаю этих ребят. Если они делают ставку на то, что это F# то это скорее отпугнет корпоративный сектор, чем привлечет, там другие правила игры, и два первых из них — предсказуемость и персонал.
C>>А вы наверное верите, что в России установлено "одним нулем меньше" и поэтому F# имеет ту аудиторию которую имеет?
L>Да, именно в это я и верю. У меня нет статистики, но не думаю, что на территории России продано более 80 тыс копий Visual Studio 2010.
Здравствуйте, enCobalt, Вы писали:
L>>Да, именно в это я и верю. У меня нет статистики, но не думаю, что на территории России продано более 80 тыс копий Visual Studio 2010.
C>Ключевое слово установлено.
Ну так и писал бы, что установлено, а не продано, как ты писал в своем сообщении. Над кем тут смеяться после этого?
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, enCobalt, Вы писали:
C>>Ключевое слово установлено.
L>Ну так и писал бы, что установлено, а не продано, как ты писал в своем сообщении. Над кем тут смеяться после этого?
3-е сообщение выше. Там так и написано ...<<верите, что в России установлено "одним нулем меньше" и поэтому>>...
Кстати, по той самой акции майкрософт, я слышал только за ноябрь в нашей стране продано несколько тысяч копий 2010-й студии.
И на радостях продлили акцию до 31-го декабря, хотя по идее она вчера должна была закончиться.
Но в магазине не врали, что доставка такая долгая потому-что в москве просто не осталось коробок с MSDN. Похоже так и есть.
С другой стороны нашего спора эта акция не касается, поскольку удельное количество пользователей студии не изменится.
Немногие с бесплатных IDE наверное перейдут.
Здравствуйте, Ziaw, Вы писали:
Z>Здравствуйте, desco, Вы писали:
D>>Ну например: D>>
D>>вохможность абстрагироваться от javascript и писать client-side вещи в стиле обычных .NET приложений: если надо использовать какую-то третьстороннюю JavaScript библиотеку, просто добавляешь ссылку на dll с описаниями типов и получаешь все плюшки статической типизации. Вместе с релизом WS 2.0 будут доступны биндинги к наиболее популярным из существующих библиотек. D>>компилятор может проверить много вещей, которые обычно откладваются до рантайма: корректность разметки, типы параметов аjax запросов, структуру сайта (отсутствие некорректных url-ов). D>>формлеты — возможность создания комбинируемых, типобезопасных html форм D>>макросы — возможность вклиниться в процесс генерации javascript D>>продолжать можно долго... D>>
Z>Интересно, а если ты увидишь эти вещи в немерловом фреймворке, ты точно так же начнешь везде его расхваливать?
Z>Например "корректность разметки, типы параметов аjax запросов, структуру сайта (отсутствие некорректных url-ов)" можно проверить в nrails если включить прекомпиляцию вьюх spark'а.
не сомневаюсь
а как насчет проверяемого компилятором clients-side кода, про планы сделать транслятор в javascript я читал, следующий вопрос, когда его ждать?
Z>Да и остальные пункты туда прикрутить можно, только я сейчас этот фреймворк плотно не использую (просто нет новых задач для веба).
"можно прикрутить" или "на днях зарелизится" несколько разные состояния дел.
Z>Интересно, а если ты увидишь эти вещи в немерловом фреймворке, ты точно так же начнешь везде его расхваливать?
Z>Например "корректность разметки, типы параметов аjax запросов, структуру сайта (отсутствие некорректных url-ов)" можно проверить в nrails если включить прекомпиляцию вьюх spark'а.
Z>Да и остальные пункты туда прикрутить можно, только я сейчас этот фреймворк плотно не использую (просто нет новых задач для веба).
Вообще интересно получается. На F# есть примеры законченных продуктов — и его все равно считают "не выстрелившим". На Nemerle основной упор на "потенциальные возможности" — и поэтому он крут
Здравствуйте, Ziaw, Вы писали: Z>Я хз, кто считает F# не выстрелившим. Но если сравнивать языки, у немерле возможностей больше. Поэтому на них и указывают. А из того, что продукт еще сыроват и комьюнити невелико, количество публичных проектов стремится к нулю. На F# тоже опенсорса не много, а немерл еще никто не вложился.
Z>Вообще мой пост был о том, что некоторые вещи вызывающие ваш восторг есть в наличии, но даже если бы они были все, это не было бы показателем для вас. Ну хочется вам считать F# успешнее, пожалуйста, так и есть. Мне от языка нужна не только успешность но и удобство написания нужных мне фич. Поэтому вы сравниваете количество вложенного бабла, а я возможности языка.
Ну, определенная предвзятость присутствует, наверное. Посмотрим, как они будут дальше развиваться Я думаю, что параллельное сосуществование будет всем на пользу.
Здравствуйте, desco, Вы писали:
Z>>Интересно, а если ты увидишь эти вещи в немерловом фреймворке, ты точно так же начнешь везде его расхваливать?
Z>>Например "корректность разметки, типы параметов аjax запросов, структуру сайта (отсутствие некорректных url-ов)" можно проверить в nrails если включить прекомпиляцию вьюх spark'а.
D>не сомневаюсь
Мне кажется, ты уходишь от ответа на прямой вопрос.
D>а как насчет проверяемого компилятором clients-side кода, про планы сделать транслятор в javascript я читал, следующий вопрос, когда его ждать?
Z>>Да и остальные пункты туда прикрутить можно, только я сейчас этот фреймворк плотно не использую (просто нет новых задач для веба).
D>"можно прикрутить" или "на днях зарелизится" несколько разные состояния дел.
Угу. И я их не смешиваю. У меня даже планов пока нет прикручивать такие вещи. Ибо валидировать там только названия методов можно да синтаксис. Вот пишу я код:
$('#maypart').accordion(); // jquery-ui
Кто даст гарантию, что
#mypart есть на старинице
это див с нужной структурой?
Все что мне дадут — интелисенс на метод accordion причем безо всякой гарантии, что jquery-ui будет на клиенте. При этом мне придется грузить лишний джаваскрипт на клиента, мне оно надо?
Каким макаром мне подключать новые версии фреймворков? Ждать dll от производителя? А если они забили на мой фреймворк? А если мне надо что-то пропатчить руками? А если у меня свой фреймворк?
Простой транслятор в джаваскрипт сделать несложно, но он будет напоминать первые ORM, вроде круто, с объектами работаем, а не с базой, только вот запросы приходится писать через задницу и лазить в базу за каждой строчкой в цикле. Для нормального воплощения надо долго и упорно работать именно над идеей, изучая другие реализации, пробуя их в деле.
Вот зачем они переделали camelCase методы в PascalCase и какие сюрпризы с апи меня ждут еще?
Сколько раз я будут мучительно думать, как написать то, что я хочу прекрасно зная как я написал бы это на JavaScript? Ладно бы он был низкоуровневым или обладал высокой избыточность, так ведь нет, программы на F# не короче получаются.
Здравствуйте, desco, Вы писали:
D>Здравствуйте, enCobalt, Вы писали:
QL>>>Можно просто сказать, чем эта разработка так ужасна, и почему ее нельзя считать примером успешного применения F# в production окружении для решения реальных задач.
C>>В каком месте там должен наступить "wow-эффект"? Типа как от C# или магического 1597463007, или библиотек DevExpress, или применяемых в райнтайме XAML?
C>>Вот честно, я вообще ничего не увидел. Все понты около-гуёвые... я не понял зачем там F#? Или функциональный язык вообще?
D>Значит не хотел увидеть. D>Ну например: D>
D>вохможность абстрагироваться от javascript и писать client-side вещи в стиле обычных .NET приложений: если надо использовать какую-то третьстороннюю JavaScript библиотеку, просто добавляешь ссылку на dll с описаниями типов и получаешь все плюшки статической типизации. Вместе с релизом WS 2.0 будут доступны биндинги к наиболее популярным из существующих библиотек. D>компилятор может проверить много вещей, которые обычно откладваются до рантайма: корректность разметки, типы параметов аjax запросов, структуру сайта (отсутствие некорректных url-ов). D>формлеты — возможность создания комбинируемых, типобезопасных html форм D>макросы — возможность вклиниться в процесс генерации javascript D>продолжать можно долго... D>
C>>А окологуёвая тема DexExpress например круче смотрится, и вместо прицела в корпоративный сегмент он давно и крепко уже там есть. А еще есть сервелат, есть контролы, есть ASP, есть WCF и ремоутинг... а ниши для этого WebSharper нет. C>>Я не понимаю этих ребят. Если они делают ставку на то, что это F# то это скорее отпугнет корпоративный сектор, чем привлечет, там другие правила игры, и два первых из них — предсказуемость и персонал.
D>Поживем — увидим.
1) лишняя зависимость нафиг нужна
2) найти профи в жс гораздо проще чем такового в f# и жс
3) пихать лишний язык в проект тоже не комильфо
поживем-увидим
Здравствуйте, desco, Вы писали:
D>а как насчет проверяемого компилятором clients-side кода, про планы сделать транслятор в javascript я читал, следующий вопрос, когда его ждать?
А нечего ждать. Надо? Возьми и сделай. Само перекодирование задача не сложная.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, QrystaL, Вы писали:
QL>Вообще интересно получается.
Ага — очень.
QL>На F# есть примеры законченных продуктов — и его все равно считают "не выстрелившим".
Ну, потому что ложь это. Нет никаких досупных законченых продуктов. Есть какие-то рассказы. Те кому делать нечего тычут пальцем в какие-то проекты вудущиеся на F# и с придыханием говорят — вот это киллер-хреновина! Сами при этом эту хреновину даже в глаза не видели.
Когда же им приводят несколько других хреновин эти воздыхатели даже глазом не поведя изрекаю — "нэ нужно!".
QL> На Nemerle основной упор на "потенциальные возможности" — и поэтому он крут
Да нет никакого упора. Немерл это тупо значительно более мошьный язык нежели F# или C#. Все что можно сделать на F# и C# можно сделать и на немреле. Обраное не верно. "Хреновин" которые есть на немерле но нет на F# и C# придостаточно. Просто таким как ты нужен повод чтобы не смотреть, а не какие-то там аргументы. Отсюда и все эти разговоры.
Забавно что Ziaw, который тут рядом с вами спорит — это один из вас. Не так давно он так же задавался вопросами. Но вместо того чтобы в сотый раз обсасывать свои предубеждения он взял и попробовал предмет обсуждения на практике. В результате получился Nemerle on Rails. Получился он не за годы труда целой конторы, а где-то за квартал работы "без отрыва от стужи" (с) Райкин. А вы все продолжаете искать отбрехи. А зачем? Не хочется пробовать, так не пробуйте. Вам никто добра насильно причинять не намерен.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, QrystaL, Вы писали:
QL>Ну, определенная предвзятость присутствует, наверное. Посмотрим, как они будут дальше развиваться Я думаю, что параллельное сосуществование будет всем на пользу.
А пробовать программировать на языках вы не пробовали? (с) реклама майонеза.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
VD>Когда же им приводят несколько других хреновин эти воздыхатели даже глазом не поведя изрекаю — "нэ нужно!".
Лично я такого не говорил, решь шла о том, что Немерле — не единственный язык, достойный внимания.
VD>Да нет никакого упора. Немерл это тупо значительно более мошьный язык нежели F# или C#. Все что можно сделать на F# и C# можно сделать и на немреле. Обраное не верно. "Хреновин" которые есть на немерле но нет на F# и C# придостаточно. Просто таким как ты нужен повод чтобы не смотреть, а не какие-то там аргументы. Отсюда и все эти разговоры. VD>А вы все продолжаете искать отбрехи. А зачем? Не хочется пробовать, так не пробуйте. Вам никто добра насильно причинять не намерен.
Я бы не стал закапываться в дебри психологии, определять по фотографии, кто какой повод ищет. Все началось со ссылки на WS, а в итоге успели поставить диагноз. И где тут конструктив?
Здравствуйте, kkolyan, Вы писали:
D>>Поживем — увидим. K>1) лишняя зависимость нафиг нужна K>2) найти профи в жс гораздо проще чем такового в f# и жс K>3) пихать лишний язык в проект тоже не комильфо K>поживем-увидим
Здравствуйте, Воронков Василий, Вы писали:
ВВ>Здравствуйте, hi_octane, Вы писали:
_>>Когда в F# можно будет каким-то образом читать и менять AST компилирующейся в данный момент программы — буду смотреть. А так — в C/C++ тоже можно DSL сделать — #define и погнали
ВВ>Возможность создавать свои DSL-и не обязательно означает возможность изменять синтаксис.
Возможность изменять AST также не подразумевает возможности менять синтаксис.