Re[8]: html5
От: WolfHound  
Дата: 18.07.11 11:28
Оценка:
Здравствуйте, nbaksalyar, Вы писали:

WH>>Тормозит? Да!

N>Нет.
Голословные утверждения.
Если оно в некоторых случаях и сравнимо, то только тогда когда код фактически статически типизирован и компилятору удалось вывести типы.

WH>>Ошибки ловит? Нет!

N>Да.
И где там написано что лисп ловит ошибки?
Нигде.

N>Тот же Erlang можно вполне назвать динамическим языком. Стоит ли напоминать о надежности правильно написанных на нем программ?

ЛОЛ.
Программы на ерланге не надежны, они просто падают и быстренько перезапускаются, делая вид, что ничего не произошло.
И динамическая типизация для этого не нужна.

Она вообще ни для чего не нужна.
Мне так никто и не показал ни одного примера нахрена оно вообще нужно.

WH>>Полноценную навигацию и рефакторинг сделать можно? Нет!

N>Да.
Покажи хоть одну IDE которая не запутается в десятке строк кода.
Таких нет.

N>Рефакторинг и паттерны нужны преимущественно для статических языков.

Рефакторинг нужен всегда.
Просто по тому, что с первого раза никто не может написать все правильно.
Про паттерны я вообще ничего не говорил. Но и динамика от них нихрена не спасает.
От паттернов помогает только метапрограммирование. А оно и на статике прекрасно делается.

N>Навигация — без проблем.

Не видел.

N>Ну и что? Так я могу раз в десять больше способов отстрелить себе ногу в статически типизированном C++ найти.

С++ позволяет наплевать на типы.
Так что пример мимо тазика.

N>Но это будет говорить лишь о том, что отстреливать себе ногу не нужно, а нужно писать код с умом и осторожностью.

ЛОЛ. Так никто не делает.
Никто и никогда.

N>Обратите внимание на первый же абзац: "carelessly written or poorly documented monkey patches can lead to problems".

Это 100% кода.
Просто по тому, что люди не железные и постоянно ошибаются.

N>Нормальных, даже отличных IDE в достатке — JetBrains WebStorm/RubyMine/PyCharm, Eclipse, NetBeans.

Путаются в десятке строк кода.

N>Для меня же нормальная IDE это REPL + Vim или Emacs.

Те отсутсвие IDE.

WH>>Непонимание матчасти детектед.

N>Не отрицаю.
А что же тогда в спор влез, если не знаешь, о чем говоришь?
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[8]: html5
От: WolfHound  
Дата: 18.07.11 11:30
Оценка:
Здравствуйте, Евгений Акиньшин, Вы писали:

ЕА>я для себя только один юз-кейс нашел — когда требуется ввод логики от конечного пользователя:

ЕА>во-первых проще обработать все возможные ошибки, чем объяснить не-программистам что вместо (a + b) надо писать (a + (int)b)
ЕА>во-вторых приходится делать всякие контекстно-зависмые подстановки: опять же например
ЕА>sum(Order.Lines.Amount)
ЕА>бизнес пользователю понятно, а Order.Lines.Sum(line => (double)line.Amount) уже не очень.
Это ДСЛ обыкновенный.
Причем тут динамическая типизация не ясно.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[9]: html5
От: Евгений Акиньшин grapholite.com
Дата: 18.07.11 17:09
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, Евгений Акиньшин, Вы писали:


ЕА>>я для себя только один юз-кейс нашел — когда требуется ввод логики от конечного пользователя:

ЕА>>во-первых проще обработать все возможные ошибки, чем объяснить не-программистам что вместо (a + b) надо писать (a + (int)b)
ЕА>>во-вторых приходится делать всякие контекстно-зависмые подстановки: опять же например
ЕА>>sum(Order.Lines.Amount)
ЕА>>бизнес пользователю понятно, а Order.Lines.Sum(line => (double)line.Amount) уже не очень.
WH>Это ДСЛ обыкновенный.
WH>Причем тут динамическая типизация не ясно.

в dsl-х, предназначенных для редактирования енд-юзером приходится приводить типы автоматически за пользователей: если бизнес пользователю хочется складывать апельсины с яблоками, мы попытаемся использовать все возможные способы приведения, и ошибку выдадим, только если уж совсем ничего не получилось
Не шалю, никого не трогаю, починяю примус Diagrams Designer for iPad and Windows 10
Re[10]: html5
От: WolfHound  
Дата: 18.07.11 19:02
Оценка:
Здравствуйте, Евгений Акиньшин, Вы писали:

ЕА>в dsl-х, предназначенных для редактирования енд-юзером приходится приводить типы автоматически за пользователей: если бизнес пользователю хочется складывать апельсины с яблоками, мы попытаемся использовать все возможные способы приведения, и ошибку выдадим, только если уж совсем ничего не получилось

А динамическая типизация то зачем?
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[11]: html5
От: Евгений Акиньшин grapholite.com
Дата: 19.07.11 01:39
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, Евгений Акиньшин, Вы писали:


ЕА>>в dsl-х, предназначенных для редактирования енд-юзером приходится приводить типы автоматически за пользователей: если бизнес пользователю хочется складывать апельсины с яблоками, мы попытаемся использовать все возможные способы приведения, и ошибку выдадим, только если уж совсем ничего не получилось

WH>А динамическая типизация то зачем?

а как это сделать статически? например наша программа позволяет пользователю подключится к его данным и выполнить операции над его данными — например подсчитать sum(db.Oranges) + avеrage(db.Apples). Типы известны только в момент подключения к источнику, причем источники могут быть разные с разными тиипами. Т.е. на момент ввода выражений нам надо проверить синтаксис, но проверить совместимость типов мы не можем. Это не динамтическая типизация?
Не шалю, никого не трогаю, починяю примус Diagrams Designer for iPad and Windows 10
Re[12]: html5
От: WolfHound  
Дата: 19.07.11 07:57
Оценка:
Здравствуйте, Евгений Акиньшин, Вы писали:

ЕА>а как это сделать статически? например наша программа позволяет пользователю подключится к его данным и выполнить операции над его данными — например подсчитать sum(db.Oranges) + avеrage(db.Apples).

И что должно быть в этом случае?
ИМХО нужно говорить, что так делать нельзя.

ЕА>Типы известны только в момент подключения к источнику, причем источники могут быть разные с разными тиипами.

Те одно выражение пользователь засовывает в разные источники?
В любом случае типы можно проверить в момент подключения к источнику, а не во время исполнения запроса.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[29]: html5
От: Ночной Смотрящий Россия  
Дата: 19.07.11 08:34
Оценка: -1
Здравствуйте, Mamut, Вы писали:

M>Тебе сто раз сказали, что именно мы имеем в виду, а ты продолжал упираться рогом в регулярные выражения.


Я тебя предупреждал. Он и дальше так же делать будет — ему просто другого не остается. Потому что он давно понял, что не прав, а признаться в этом не может.
Re[7]: html5
От: Ночной Смотрящий Россия  
Дата: 19.07.11 08:34
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Да никто ничего не приписывает.

WH>Тормозит? Да!
WH>Ошибки ловит? Нет!
WH>Полноценную навигацию и рефакторинг сделать можно? Нет!
WH>Что дает? Ничего!

Плюс там ровно один — пологая learning curve. И именно это привлекает к динамике стада малообразованных программистов.
Re[13]: html5
От: Евгений Акиньшин grapholite.com
Дата: 19.07.11 08:39
Оценка:
Здравствуйте, WolfHound, Вы писали:

ЕА>>а как это сделать статически? например наша программа позволяет пользователю подключится к его данным и выполнить операции над его данными — например подсчитать sum(db.Oranges) + avеrage(db.Apples).

WH>И что должно быть в этом случае?
WH>ИМХО нужно говорить, что так делать нельзя.

а пользователи говорят что очень хочется и денег платят

ЕА>>Типы известны только в момент подключения к источнику, причем источники могут быть разные с разными тиипами.

WH>Те одно выражение пользователь засовывает в разные источники?
WH>В любом случае типы можно проверить в момент подключения к источнику, а не во время исполнения запроса.

ага, особенно если на входе строки

к слову сказать, мы-то как раз в большинстве случаев си-шарп для скриптов использовали, так саппортерам иногда приходится объяснять тете Клаве, что вместо a+b надо писать double.Parse(data["a"]) + double.Parse(data["b"])
Не шалю, никого не трогаю, починяю примус Diagrams Designer for iPad and Windows 10
Re[14]: html5
От: WolfHound  
Дата: 19.07.11 09:16
Оценка:
Здравствуйте, Евгений Акиньшин, Вы писали:

ЕА>а пользователи говорят что очень хочется и денег платят

Те им хочется считать бессмысленные данные?
Так это же GIGO.

WH>>Те одно выражение пользователь засовывает в разные источники?

WH>>В любом случае типы можно проверить в момент подключения к источнику, а не во время исполнения запроса.
ЕА>ага, особенно если на входе строки
Что за строки?
Что мешает типизировать источник данных?

ЕА>к слову сказать, мы-то как раз в большинстве случаев си-шарп для скриптов использовали, так саппортерам иногда приходится объяснять тете Клаве, что вместо a+b надо писать double.Parse(data["a"]) + double.Parse(data["b"])

То что вы используете непойми что ничего не говорит о том что статика плохая.
Ничто не мешает один раз типизировать источники и писать a+b.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[15]: html5
От: Евгений Акиньшин grapholite.com
Дата: 19.07.11 09:31
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, Евгений Акиньшин, Вы писали:


ЕА>>а пользователи говорят что очень хочется и денег платят

WH>Те им хочется считать бессмысленные данные?
WH>Так это же GIGO.

Это теперь называется "робастность" — небольшое количество мусора на входе не сильно портит конечный результат

WH>>>Те одно выражение пользователь засовывает в разные источники?

WH>>>В любом случае типы можно проверить в момент подключения к источнику, а не во время исполнения запроса.
ЕА>>ага, особенно если на входе строки
WH>Что за строки?
WH>Что мешает типизировать источник данных?

ЕА>>к слову сказать, мы-то как раз в большинстве случаев си-шарп для скриптов использовали, так саппортерам иногда приходится объяснять тете Клаве, что вместо a+b надо писать double.Parse(data["a"]) + double.Parse(data["b"])

WH>То что вы используете непойми что ничего не говорит о том что статика плохая.
WH>Ничто не мешает один раз типизировать источники и писать a+b.

вы ужасно далеки от народа как-нидь на досуге попытайтесь заставить непрограммиста типизировать данные. Особенно если они хранятся в эксельных и csv-х файлах, в разных форматах.
Не шалю, никого не трогаю, починяю примус Diagrams Designer for iPad and Windows 10
Re[8]: html5
От: anonymous Россия http://denis.ibaev.name/
Дата: 19.07.11 11:22
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Плюс там ровно один — пологая learning curve. И именно это привлекает к динамике стада малообразованных программистов.


Аха, Perl или Lisp тому пример. (: Прямо сел и начал ваять проекты на тысячи строк.
Re[9]: html5
От: Ночной Смотрящий Россия  
Дата: 19.07.11 11:40
Оценка:
Здравствуйте, anonymous, Вы писали:

НС>>Плюс там ровно один — пологая learning curve. И именно это привлекает к динамике стада малообразованных программистов.


A>Аха, Perl


Перл — безусловно. Меня посещает дежа вю.

A> или Lisp тому пример.


Лисп — отдельный разговор.
Re[10]: html5
От: anonymous Россия http://denis.ibaev.name/
Дата: 19.07.11 12:44
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>>>Плюс там ровно один — пологая learning curve. И именно это привлекает к динамике стада малообразованных программистов.

A>>Аха, Perl
НС>Перл — безусловно. Меня посещает дежа вю.

Если тебе при изучении Perl так показалось, то ты не научился им пользоваться.

A>> или Lisp тому пример.

НС>Лисп — отдельный разговор.

Это ещё почему? И сколько таких исключений?
Re[11]: html5
От: Ночной Смотрящий Россия  
Дата: 19.07.11 13:03
Оценка:
Здравствуйте, anonymous, Вы писали:

НС>>>>Плюс там ровно один — пологая learning curve. И именно это привлекает к динамике стада малообразованных программистов.

A>>>Аха, Perl
НС>>Перл — безусловно. Меня посещает дежа вю.

A>Если тебе при изучении Perl так показалось, то ты не научился им пользоваться.


Попробуй подумать о том, что означает термин "пологая learning curve"

НС>>Лисп — отдельный разговор.


A>Это ещё почему?


Потому что Лисп отличается от других языков не только динамикой, и его плюсы тоже вовсе не в динамике. Посмотри Qi — там и вся прелесть Лиспа сохранена, и статический контроль типов опционально доступен.

A> И сколько таких исключений?


Если не считать клоны Лиспа, то других исключений мне неизвестно.
Re[11]: html5
От: Gaperton http://gaperton.livejournal.com
Дата: 19.07.11 15:32
Оценка:
Здравствуйте, Евгений Акиньшин, Вы писали:

ЕА>Угу, как будто мало других вещей, которые не могут быть разрулены кроме как административно, так мы еще и за компьютеры работу делать будем — для удобства


У тебя и в статически типизированном языке надо "разруливать" эту вещь административно. Точно также.
Re[7]: html5
От: Gaperton http://gaperton.livejournal.com
Дата: 19.07.11 15:34
Оценка:
Здравствуйте, TK, Вы писали:

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


N>>У вас устаревшие данные. JavaScript уже давно шагнул вперед за DOM — поглядите, например, Angry Birds или Linux в браузере — DOM-модель там упоминается разве только в ключе document.getElementById('canvas').


TK>В случае с canvas в первую очередь важна скорость рендеринга — это делается браузером.


А в случае с WebGL ты тоже считаешь, что "это делается браузером"?
Re[7]: html5
От: Gaperton http://gaperton.livejournal.com
Дата: 19.07.11 15:49
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Полноценную навигацию и рефакторинг сделать можно? Нет!

WH>Что дает? Ничего!

Валяй, затипизируй в своем любимом Хиндли-Милнере от природы динамические DOM-деревья. Паржом. И покажи, чем pattern-matching будет в работе с ними удобнее, чем типичные для JS, насквозь динамические селекторы вида $('.node').
Re[8]: html5
От: TK Лес кывт.рф
Дата: 19.07.11 16:01
Оценка:
Здравствуйте, Gaperton, Вы писали:

TK>>В случае с canvas в первую очередь важна скорость рендеринга — это делается браузером.

G>А в случае с WebGL ты тоже считаешь, что "это делается браузером"?

Ну, мы же не будем опускаться до того, что рендеринг делается видео-картой?
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[9]: html5
От: Gaperton http://gaperton.livejournal.com
Дата: 19.07.11 16:11
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>>>Ошибки ловит? Нет!

N>>Да.
WH>И где там написано что лисп ловит ошибки?
WH>Нигде.

На, посмотри. Для лиспа есть несколько систем типов, допускающих статические проверки. Вот это для CMUCL.
http://common-lisp.net/project/cmucl/doc/cmu-user/compiler-hint.html#toc160

Такие системы типов называются soft type system. Для Эрланга статический тайпчекер входит в штатную поставку, и прекрасно ловит ошибки типов.

Для JS она, разумеется, тоже есть, и наличествует, например, в Google Closure Compiler. И никаких фундаментальных проблем делать это для динамических языков не существует.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.