Re[8]: 2ambel-vlad
От: WolfHound  
Дата: 26.12.11 11:57
Оценка:
Здравствуйте, Ikemefula, Вы писали:

WH>>Те ты хочешь, чтобы я тебе сделал дизайн глядя на тесты?

I>Чуть ниже ты фактически показал, что ты не только в состоянии сделать это, но и знаешь приблизительное количество кода.
Я показал, что могу оценить размер данного куска кода. И больше ничего.
Проблема в том, что переписать только данный кусок кода бесполезно.
Чтобы type driven design заработал нужно переписать все.
Иначе получится байда типа опциональной "статической типизации" в некоторых языках.
А для этого нужно знать исходную постановку задачи.
Ибо с большой вероятностью я вообще использую иную вычислительную модель. Т.к. императивное ООП почти всегда не адекватно.

I>В строчках кода — так и есть. И все юнит-тесты обладают такой особенностью — код с тестами в несколько раз больше кода без этих тестов.

А код с типами и код без типов почти одинаковый.
Посмотри, что народ творит: http://goto.ucsd.edu/~rjhala/liquid/

I>Вобщем, суммируя, тебе нечего сказать кроме голословного "фактически убирая надобность в юнит-тестах полностью". На этом можно и закончить.

Больше, похоже, что ты быстренько сбежал в кусты, когда понял что жареным запахло.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[9]: 2ambel-vlad
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 26.12.11 12:48
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>>>Те ты хочешь, чтобы я тебе сделал дизайн глядя на тесты?

I>>Чуть ниже ты фактически показал, что ты не только в состоянии сделать это, но и знаешь приблизительное количество кода.
WH> Я показал, что могу оценить размер данного куска кода. И больше ничего.

Это ты в кусты маршем ?

WH>Проблема в том, что переписать только данный кусок кода бесполезно.

WH>Чтобы type driven design заработал нужно переписать все.

Здесь сразу отлуп ибо АПИ трогать нельзя.

WH>Иначе получится байда типа опциональной "статической типизации" в некоторых языках.

WH>А для этого нужно знать исходную постановку задачи.
WH>Ибо с большой вероятностью я вообще использую иную вычислительную модель. Т.к. императивное ООП почти всегда не адекватно.

Эдак придется переписывать весь продукт надо которым работала добрая сотня людей примерно 7 лет.

I>>Вобщем, суммируя, тебе нечего сказать кроме голословного "фактически убирая надобность в юнит-тестах полностью". На этом можно и закончить.

WH>Больше, похоже, что ты быстренько сбежал в кусты, когда понял что жареным запахло.

Не, в кусы ты сам полез когда начал спрыгивать на свои задачки.
Re[10]: 2ambel-vlad
От: WolfHound  
Дата: 26.12.11 13:02
Оценка: :)
Здравствуйте, Ikemefula, Вы писали:

WH>>Проблема в том, что переписать только данный кусок кода бесполезно.

WH>>Чтобы type driven design заработал нужно переписать все.
I>Здесь сразу отлуп ибо АПИ трогать нельзя.
При дизайне с нуля?

I>Эдак придется переписывать весь продукт надо которым работала добрая сотня людей примерно 7 лет.

Ну, так изначально выбрали кривой инструмент.
Теперь мучайтесь.

I>Не, в кусы ты сам полез когда начал спрыгивать на свои задачки.

Какие свои задачки?

Ты пойми одну простую вещь: Разница между типизацией в C# и например liquid types примерно такая же как разница между типизацией в жабаскрипте и в C#.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[11]: 2ambel-vlad
От: Mamut Швеция http://dmitriid.com
Дата: 26.12.11 15:53
Оценка: -1 :)
WH>Ты пойми одну простую вещь: Разница между типизацией в C# и например liquid types примерно такая же как разница между типизацией в жабаскрипте и в C#.

http://rsdn.ru/forum/philosophy/4270550.aspx
Автор: Mamut
Дата: 13.05.11
в чистом виде


dmitriid.comGitHubLinkedIn
Re[12]: 2ambel-vlad
От: WolfHound  
Дата: 26.12.11 16:26
Оценка:
Здравствуйте, Mamut, Вы писали:

WH>>Ты пойми одну простую вещь: Разница между типизацией в C# и например liquid types примерно такая же как разница между типизацией в жабаскрипте и в C#.

M>http://rsdn.ru/forum/philosophy/4270550.aspx
Автор: Mamut
Дата: 13.05.11
в чистом виде

Вот весь ты в этом.
Разоряешься тут на тему цитируемых статей. А когда получаешь ссылку не только на статью но и на работающий код начинаешь скулить об элитизме.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[13]: 2ambel-vlad
От: Mamut Швеция http://dmitriid.com
Дата: 26.12.11 20:50
Оценка: +2 :)
WH>>>Ты пойми одну простую вещь: Разница между типизацией в C# и например liquid types примерно такая же как разница между типизацией в жабаскрипте и в C#.
M>>http://rsdn.ru/forum/philosophy/4270550.aspx
Автор: Mamut
Дата: 13.05.11
в чистом виде

WH>Вот весь ты в этом.
WH>Разоряешься тут на тему цитируемых статей. А когда получаешь ссылку не только на статью но и на работающий код начинаешь скулить об элитизме.

Ты не понял Читай то, что я написал про элитизм еще раз, потом еще раз, а потом еще раз. Авось дойдет (хотя я уже сильно в этом сомневаюсь).

Когда с тобой начинаешь разговаривать о чем либо, ты всегда идешь по строго одному и тому же пути:
— максимально общее заявление
— на вопрос, а где это справедливо, ты сужаешь заявление до некоторого класса языков
— на вопрос, к каким языкам это применимо (или на справедливое замечание, что к существующим языкам это может быть неприменимо) ты показываешь ровно один экспериментальный язык, который обычно интересен только с академической точки зрения или просто никому не нужен даже даром (последние два таких языка — это Nemerle и Ur, а теперь к ним добавилась — академ-реализация liquid types для Haskell/OCaml).

При том, что, быть может, оно все и хорошо и прекрасно — но только и строго сугубо в теории. Теория хороша — но только в теории.


dmitriid.comGitHubLinkedIn
Re[14]: 2ambel-vlad
От: WolfHound  
Дата: 26.12.11 22:13
Оценка:
Здравствуйте, Mamut, Вы писали:

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

Работающий компилятор это практика. И с этим ты ничего не сделаешь.
Ты тут всеми силами пытаешься защитить свои любимые язычки. Прим единственное, что ты можешь придумать, это повесить на другой язык ярлык типа: "экспериментальный язык, который обычно интересен только с академической точки зрения или просто никому не нужен даже даром".
Для человека, который требует рецензируемую статью для подтверждения любых слов, мягко говоря, странное поведение.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re: Чем конкретно чревата разработка сложных проектов на PHP
От: Gaperton http://gaperton.livejournal.com
Дата: 27.12.11 08:36
Оценка: :))) :))
Здравствуйте, 0K, Вы писали:

Есть шанс случайно написать Facebook, и стать миллиардером.
Re[11]: 2ambel-vlad
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 27.12.11 08:49
Оценка:
Здравствуйте, WolfHound, Вы писали:

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


WH>>>Проблема в том, что переписать только данный кусок кода бесполезно.

WH>>>Чтобы type driven design заработал нужно переписать все.
I>>Здесь сразу отлуп ибо АПИ трогать нельзя.
WH>При дизайне с нуля?

На это был даден ответ, чуть ниже.

I>>Эдак придется переписывать весь продукт надо которым работала добрая сотня людей примерно 7 лет.

WH>Ну, так изначально выбрали кривой инструмент.
WH>Теперь мучайтесь.

Да, и вся индустрия теперь мучается вместе с нами

I>>Не, в кусы ты сам полез когда начал спрыгивать на свои задачки.

WH>Какие свои задачки?

Те, на которые ты дал ссылку.

WH>Ты пойми одну простую вещь: Разница между типизацией в C# и например liquid types примерно такая же как разница между типизацией в жабаскрипте и в C#.


На простых примерах, особенно АТД, все и ежу понятно. Потому если у тебя ничего кроме того, что по ссылке нет, можно и закончить.
Re[15]: 2ambel-vlad
От: Mamut Швеция http://dmitriid.com
Дата: 27.12.11 18:28
Оценка: :)
M>>При том, что, быть может, оно все и хорошо и прекрасно — но только и строго сугубо в теории. Теория хороша — но только в теории.
WH>Работающий компилятор это практика. И с этим ты ничего не сделаешь.

Уже лет тридцать, как работающий компилятор — это не повод для гордости.

WH>Ты тут всеми силами пытаешься защитить свои любимые язычки. Прим единственное, что ты можешь придумать, это повесить на другой язык ярлык типа: "экспериментальный язык, который обычно интересен только с академической точки зрения или просто никому не нужен даже даром".


Нет, я не защищаю «любимые языки». Твоя любимая фраза — «в статически типизированных языках то-то и то-то». А как спросишь тебя про C++/Java/C# — сразу начинается, то у них типы не те, то еще что-то не то, и все скатывается... правильно к каким-то теоретическим изысканиям в языках, которые никому даром не нужны.

WH>Для человека, который требует рецензируемую статью для подтверждения любых слов, мягко говоря, странное поведение.


Поведение абсолютно нормальное. В данном случае я просто описываю наблюдаемое поведение.


dmitriid.comGitHubLinkedIn
Re[16]: 2ambel-vlad
От: WolfHound  
Дата: 27.12.11 19:15
Оценка:
Здравствуйте, Mamut, Вы писали:

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

WH>>Работающий компилятор это практика. И с этим ты ничего не сделаешь.
M>Уже лет тридцать, как работающий компилятор — это не повод для гордости.
То есть работающий компилятор это теория? Я тебя правильно понял?

M>Нет, я не защищаю «любимые языки». Твоя любимая фраза — «в статически типизированных языках то-то и то-то». А как спросишь тебя про C++/Java/C# — сразу начинается, то у них типы не те, то еще что-то не то, и все скатывается... правильно к каким-то теоретическим изысканиям в языках, которые никому даром не нужны.

Так я давно говорю, что динамисты способны защитить динамику только на фоне говностатики типа той что ты перечислил.
Как только показываешь вам, что-то более умное так сразу начинается скулеж на тему что это никому не нужно...
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[17]: 2ambel-vlad
От: Mamut Швеция http://dmitriid.com
Дата: 27.12.11 19:31
Оценка: :)
M>>>>При том, что, быть может, оно все и хорошо и прекрасно — но только и строго сугубо в теории. Теория хороша — но только в теории.
WH>>>Работающий компилятор это практика. И с этим ты ничего не сделаешь.
M>>Уже лет тридцать, как работающий компилятор — это не повод для гордости.
WH>То есть работающий компилятор это теория? Я тебя правильно понял?

То есть гордится работающим компилятором для проверки каких-либо идей прекратили еще лет тридцать тому назад.

M>>Нет, я не защищаю «любимые языки». Твоя любимая фраза — «в статически типизированных языках то-то и то-то». А как спросишь тебя про C++/Java/C# — сразу начинается, то у них типы не те, то еще что-то не то, и все скатывается... правильно к каким-то теоретическим изысканиям в языках, которые никому даром не нужны.

WH>Так я давно говорю, что динамисты способны защитить динамику только на фоне говностатики типа той что ты перечислил.
WH>Как только показываешь вам, что-то более умное так сразу начинается скулеж на тему что это никому не нужно...

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

Беганьем в кусты и скулежом занимаешься только ты. По схеме, описанной мной уже дважды (тут
Автор: Mamut
Дата: 27.12.11
и тут
Автор: Mamut
Дата: 13.05.11
).

Повторю: ты постоянно делаешь максимально общие заявления про статически типизированные языки вообще при ближайшем рассмотрении ты тут же поджимаешь хвост и начинаешь рассказывать про «нет, это все не так, вы все не понимаете, я говорил исключительно про Nemerle/Ur/академ. работы».

Вот если бы ты начинал свои заявления со слов «существуют/возможны такие реализации статически-типизированных языков, в которых справедливо то-то и то-то», тебе бы никто слова поперек не сказал.


dmitriid.comGitHubLinkedIn
Re[6]: 2ambel-vlad
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 06.01.12 17:19
Оценка:
I>Хочется узнать, как система типов даст возможность отказаться от таких вот тестов.

тесты заменяются на тотальную проверку инвариантов.
в данном случае видно, что тесты пытаются точечно проверить два инварианта:
1. флаги обрабатываются независимо друг от друга (или другими словами: изменение одного флага не меняет состояние других флагов),
2. все флаги обрабатываются единообразно(для массовых функций)

эти общие инварианты можно автоматически (или руками) уточнить до инварианта входа/выхода каждой функции.

замена тестов на инварианты позволяет:
во-первых, уменьшить объем тестового кода
во-вторых, добиться полноты проверки
в-третьих, ускорить время проверки валидности кода
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.