Здравствуйте, Mirrorer, Вы писали:
M>Смотря что считать отмазками. У меня текущи проект на Compact Framework. Немерле туда ну никак. Вернее в принципе то как, но для этого придется приложить туеву хучу усилий и времени.
Я не говорю о случаях когда чего-то действительно нехватает. Я говорю о случаях когда все есть, но ищется отмазка чтобы что-то не делать. Реальная причина в таких случаях обычно или животный страх, или лень.
M>Ну насчет попробовать это меня уговаривать не надо. Правда могу сразу сказать один недостаток Немерле. Плохая документация. Она может быть лучше чем допустим у Ruby, но однозначно хуже чем MSDN К хорошему привыкаешь быстро.
Наберусь наглости утверждать, что наша статья на русском может служить неплохим справочником по языку.
M> Допустим я не смог сходу найти как написать аналог C# кода M>
M>public T proofOfConcept<T,Q>(T a,Q b)
M> where T : Integral<T>,Eq<T>
M> where Q : Real<Q>
M>{
M> return a;
M>}
M>
Дык, в том то все и дело, что в большинстве случаев Неперле это суперсет от C#. В данном случае достаочно заменить угловые скобки на квадратные и заменить описания типов на немерловые. В общем, твой пример будет выглядеть так:
public proofOfConcept[T,Q](a : T, b : Q) : T
where T : Integral[T], Eq[T]
where Q : Real[Q]
{
return a;
}
VD>> Большинство людей просто пока не в курсе. M>Ой-вей, имхо уже весь РСДН в курсе. По крайней мере все люди, которые хоть изредка читают Философию и ДП, точно в курсе. 100%
Их не так много. Но уже не плохо.
M>Но я не буду
Ладно, тогда тем кто ложится спать — спокойного сна.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Alexey Chen, Вы писали:
AC>И вот что ещё я тебе скажу. Я знаком с N вскользь и хоть обективных причин против у меня нет, но благодоря вашему "стрЁмлению победить" у меня уже вырабаталось стойкое ощущение что это очередное Г, да сладкое, но Г. Чисто субективно так, на уровне подсознания. И думаю не у меня одного упоминание N, не важно по теме или нет, вызывает внутренний и чисто рефлекторный протест.
На зло маме отморожу уши!
AC>Ну противно читатать тебя Влад, чесно слово.
А ты, на зло маме, читай! Читай и возмущайся! "Какие козлы! Я морожу уши, а им хоть бы хны!!!".
И не в комем случае не пролистывай не одного сообщения.
AC>P.S. AC>Господа, интересно, а что если обьявить байкот N? Для начала просто не отвечать на постинги где N упоминается не в тему.
Ни в коем случае! Хотя таких критикунов не много, но вы реально подогреваете интерес к языку. Умный человек просто не сможет не заинтересоваться языком вокруг которого столько крика.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, eao197, Вы писали:
E>Программы, которые можно читать только на компьютере и только в заточенной под этот язык IDE я, пожалуй, лучше оставлю для любителей Nemerle.
Но черт побери, почему же ты тут пиаришь Руби если в нем вообще нет возможности узнать тип переменной до запуска программы и он имеет довольно мощьные средства метарпрограммирования позволяющие сделать все что угодно?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
PI>>и если кто-то имеет контр-примеры, пусть их приводит
К>код для свича AXD301 на динамическом (и функциональном) Эрланге в 1,7 млн. строк (на 2005 год). Вроде бы больше сотни человек в комманде разработчиков.
M>Если бы они все в одну .chm-ку запихнули было бы приятнее. И поиск можно делать и вообще.
см. C:\Program Files\Nemerle\docs\
VD>>>> Большинство людей просто пока не в курсе.
Здравствуйте, VladD2, Вы писали:
E>>Программы, которые можно читать только на компьютере и только в заточенной под этот язык IDE я, пожалуй, лучше оставлю для любителей Nemerle.
VD>Но черт побери, почему же ты тут пиаришь Руби
Все, дальше тебе можно ничего не объяснять. Будучи профессиональным продавцов IT-пиара ты не можешь просто понять, что я не пиарю Ruby.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
PI>>здесь соглашусь с FR, только начал проект с наворотами на макросах, уже 3 уровня макросов
VD>И что ты ими делаешь?
а проще как бы, и не придумаешь:
есть dsl — это один уровень
в проекте, реализующем dsl, я юзаю ещё один уровень, т.к. удобно воспользоваться чем-то, вроде простых трейтов
ну и ещё уровень, вроде как нужны ещё макросы, но в самих макросах удобно dsl-ем пользоваться
Здравствуйте, PhantomIvan, Вы писали:
PI>>>и если кто-то имеет контр-примеры, пусть их приводит
К>>код для свича AXD301 на динамическом (и функциональном) Эрланге в 1,7 млн. строк (на 2005 год). Вроде бы больше сотни человек в комманде разработчиков.
PI>а Эрланг — чистая динамика?
VD>Это проблемы твоего воображения. Не более того. Я с успехом применял для скрптовых задач C# 2.0. И не вижу проблем в применении Немерле.
это правда... я например bat-анику не знаю вообще — если что-то надо — сишарп (теперь немерле)
и файлы стройными рядами...
а отдельно какой-то скриптовый синтаксис специально для таких задач учить... гм..
PI>>хочу понять динамику...
E>Напиши на каком-нибудь нормальном динамическом языке (вроде Python, Ruby или Smalltalk) програмку строк эдак в 5k-10k и посопровождай годик-полтора. Понимание само придет.
для этого надо найти задачу, которая на них реализуется проще, чем на немерле
E>>Напиши на каком-нибудь нормальном динамическом языке (вроде Python, Ruby или Smalltalk) програмку строк эдак в 5k-10k и посопровождай годик-полтора. Понимание само придет.
PI>для этого надо найти задачу, которая на них реализуется проще, чем на немерле
PI>>потому что я тоже не слышал ни об одном достаточно большом (больше 10 человеко-лет) проекте на динамике PI>>"серьёзное утверждение" заключается во фразе "динамику нельзя использовать для больших проектов, потому что она имеет фундаментальные ограничения на масштабиремость" PI>>это автоматически объясняет, почему динамика не применяется в "серьёзном" энтерпрайзе
VD>Скромный вопрос, а кого ты цитирушь?
Здравствуйте, PhantomIvan, Вы писали:
M>>Если бы они все в одну .chm-ку запихнули было бы приятнее. И поиск можно делать и вообще. PI>см. C:\Program Files\Nemerle\docs\
Ну я там и смотрел. Но иметь это в одном файле с индексацией и возможностью поиска удобнее чем россыпь доков.
... << RSDN@Home 1.2.0 Marilyn Manson — Justify My Love >>
Здравствуйте, VladD2, Вы писали:
VD>Наберусь наглости утверждать, что наша статья на русском может служить неплохим справочником по языку.
Не посчитай наездом, но я предпочитаю по возможности читать в оригинале.
VD>Дык, в том то все и дело, что в большинстве случаев Неперле это суперсет от C#. В данном случае достаочно заменить угловые скобки на квадратные и заменить описания типов на немерловые.
После ссылки на Quick_Guide я то нашел. Просто я искал по interface, а не по where, потому что мало ли как они могли его обозвать.
VD>Ладно, тогда тем кто ложится спать — спокойного сна.
... << RSDN@Home 1.2.0 Red Hot Chili Peppers — On Mercury >>
Здравствуйте, PhantomIvan, Вы писали:
E>>Напиши на каком-нибудь нормальном динамическом языке (вроде Python, Ruby или Smalltalk) програмку строк эдак в 5k-10k и посопровождай годик-полтора. Понимание само придет.
PI>для этого надо найти задачу, которая на них реализуется проще, чем на немерле
Я не понял, ты хочешь понять динамику или "чем динамика лучше Nemerle"?
Не лучше динамика Nemerle в абстрактном смысле. Так же как в абстрактном смысле Nemerle не лучше динамики.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, PhantomIvan, Вы писали:
PI>>>а Эрланг — чистая динамика?
К>>Да, конечно.
PI>какое твое мнение о реализации параллельной библиотеки в Скале? PI>они говорят, подобна Эрлангу, выполняет те же функции...
Вообще одним из тех, кто тебе отвечал и одним из первых, упомянувших про эту библиотеку был я
Если по сути — интересно, вроде как всего в 2 раза медленней Эрланга.
Только вот OTP там нету конечно — большой минус.
Плюс Скала — имеративный язык, со всеми вытекающими (хотя чётко аргументировать тут сейчас не могу).
Плюс там это всё работает только в рамках одной JVM, когда распределённые приложения для эрланга — одно из первых применений.
VD>Я не гворил что на динамике нельзя создавать большие проекты. Вполне можно. Я говорил, что на динамике сложно создавать большие сильно связнные проекты.
Мммм. Возможно я неправильно понимаю, но не связность ли пытаются уменьшить различные паттерны ?
Я к тому что если большой проект, да еще и сильносвязанный получается может в архитектуре чего-то не того ?
Хотелось бы или пример такого проекта или разъяснение, вполне может быть что я не совсем уловил мысль.
Здравствуйте, PhantomIvan, Вы писали:
PI>имею в виду: PI>архитектура такая же, как была бы на статике PI>типа тим лидеры запрещают делать хитровыверты... типа генерации кода на лету
Кодогенерации не было, но использовалась рефлексия для (авто)привязки гуя к модели.
ANS>>Использовал, и расширение классов своими методами, PI>nemerle/c# 3: extension methods
afaik, это не доступно без перекомпиляции уже скомпиленного кода плюс есть ограничение на видимость?
А использование из VB.Net?
ANS>> и перекрытие существующих методов моими версиями PI>наследование
нет, полная замена предыдущего исходного кода новым. (Напр.)
ANS>> (последнее делал для багфиксов GLORP, которые то появлялись в основном коде, но позже, а работать нужно было сразу). Как пример: я там уже давно не работаю, но когда народ там начал переезжать на XPSP2 оказалось, что в базовой GUI-библиотеке вылез какой-то баг с реакцией на dbl-click под SP2. Нашел в инете, какой именно метод в базовой библиотеке нужно пропатчить, и отправил в контору парсел (парсел — единица распространения ST-кода в VisualWorks, может включать как классы, так и отдельные методы в любой их комбинации) с этим методом. Всё заработало. Прикол в том, что сырцов той проги у меня нет. А возможность фиксить некоторые баги — есть PI>workaround-ы
? не знаю что это.
ANS>> Возможность налету переделать метод и перезапустить выполнение проги с некоторой точки — это было очень приятно. PI>apply code changes, хотя аналогия не полная
далеко не полная.
ANS>> Иногда выполнял код прямо в процессе написания кода. То есть пишеш-пишеш — бац, непонятно как точно работает метод. Тут же, в окне написания кода выполняеш то, что интересно и смотриш. PI>object test bench в Visual Studio
И в нём доступна полностью проинициализированная твоя прога? И даже если ты начал писать и теперь у тебя не компилица вот-вот этот файлик?
PI>не флейма ради, просто пытаюсь понять, какие динамические фичи нельзя реализовать статикой
Можно многое. Наверное окромя hoto code swap. Вопрос только в цене использования неких фич (типа рефлексии), и соответсвия языка/инструментария/комьюнити твоему мышлению.
PI>ещё можешь предложить чисто динамические механизмы для интереса?
.
ANS>>Вот чего я не делелал, так это не вставлял в код явную проверку типов, не писал тесты для проверки типизации и прочей чепухи. PI>но ты ведь с лёгкостью можешь сказать, в каком месте какой тип будет?
Для неизвестной проги — врядли С другой стороны, когда выяснилось что драйвера на pure-ST для PostgreSQL не понимают уникода, то на нахождение тех трёх мест где пришлось добавить перекодирование у меня ушла пара часов. И потом несколько суток, на объяснение проблемы и сути фикса автору драйвера И это при том, что я ни драйвера того раньше в глаза не видел, ни архетиктуру ДБ-слоя не знал.