metaclass: (Default)
[personal profile] metaclass
Чтобы ИТ-индустрия окончательно встала раком, Гуглу сейчас нужно сделать ход конем - разработать ТРЕТИЙ вариант кроссплатформенного языка-платформы с собственной виртуальной машиной, JIT, итд, итп, в дополнение к жабе и дотнету. И сманить девелоперов на него какими-нибудь заманухами страшными.
Тем более что дотнет семимильными шагами двигается в ту же over-engineered сраку, что и жаба, а альтернативы реальной тому и другому и нету.

Date: 2010-08-15 05:10 am (UTC)
From: [identity profile] norguhtar.livejournal.com
Увы часто влечет. Потому что в противном случае система с точки зрения математики или будет не полная или прийдется разбивать систему на подсистемы и описывать отдельно. Я в качестве дипломной работы проектировал автоматизированную систему расчетов с клиентами. В качестве одного из материалов я использовал вот эту работу. Вот в ней как раз имеется моделирование математикой, которая хорошо может быть заменена выделением сущностей и описанием их взаимодействия.

Date: 2010-08-15 05:43 am (UTC)
From: [identity profile] metaclass.livejournal.com
Так как раз проблемы в проектировании системы обычно всплывают в мелочах и подсистемах. Т.е. если разбить на подсистемы и спроектировать наиболее неадекватные куски используя строго теоретические модели - мы уже спасемся от части маразма.

Скажем, строгая типизация та же - это же и есть математическая модель предметки, позволяющая проверить ее на непротиворечивость на уровне реализации.

Date: 2010-08-15 05:48 am (UTC)
From: [identity profile] norguhtar.livejournal.com

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

Только это займет много времени и часто будет шибко громоздко. Матан оно конечно хорошо, но далеко не всегда.


Скажем, строгая типизация та же - это же и есть математическая модель предметки, позволяющая проверить ее на непротиворечивость на уровне реализации.

Конечно. Но приведение предметной области к такой типизации, при помощи логики займет меньше времени, чем приведение ее же но при помощи математики.

Date: 2010-08-15 05:51 am (UTC)
From: [identity profile] metaclass.livejournal.com
Противопоставление логики и математики очень огорчает психов из комментариев :)

Date: 2010-08-15 05:56 am (UTC)
From: [identity profile] norguhtar.livejournal.com
ну что я могу поделать, если счетаю, что много матана в программировании это вредно? :)

Date: 2010-08-15 06:34 am (UTC)
From: [identity profile] nivanych.livejournal.com
> Противопоставление логики и математики

Ах, вот оно в чём дело.
Подозревал, но не думал, что такое может быть.
Ну, теперь понятно. Дальше смысла объяснять нет.

Date: 2010-08-15 04:53 pm (UTC)
From: [identity profile] thesz.livejournal.com
"Это оскорбление для всего сообщества психов из комментариев", перефразируя Свтлячка.

Date: 2010-08-15 06:29 am (UTC)
From: [identity profile] nivanych.livejournal.com
Да, описание может быть не полным, и это ничем не хуже, чем не полностью написанная программа. А лучше очень многим.

Можно даже сказать что-нибудь эдакое -
Из того, что человек что-то программирует, увы, очень часто следует, что это получается крайне криво. И хотя этого можно избежать, и у некоторых даже получается (!), но получается это очень редко и опыт никогда ну никак не удаётся перенять и поэтому, программирование всегда останется кривым, кривым, кривым...

В известном смысле, конструктивная математика, это то же самое, что и программирование. И на сегодняшний день это далеко не только теория, а очень даже практически развитая вещь.

То, что предметная область и требования существенно лучше ложатся не на функциональные языки, это ерунда. Ну, тут мне что-то сказать сложно, ведь может же получиться, что имеется в виду что-то очень новое и неочевидное, чего я не знаю.
Но если имеется в виду ОО, то это полная чушь, предположительно, вызванная двумя возможными причинами - некомпетентностью и/или желанием потроллить.
Без иронии - надеюсь, что я ошибаюсь.

Крайне редко при наличии достаточных описательных возможностей языка нужно ОО. Даже в OCaml, в котором, на мой взгляд, во многих местах система типов откровенно слабоватая, объекты на практике используются довольно редко, да и далеко "не по полной программе". И уж точно, в Haskell привнесение объектов (был такой O'Haskell) оказалось совершенно никому не нужным. А сейчас это сделать уж совсем запросто, если кому-то будет надо, только не нужно это никому.

> имеется моделирование математикой, которая
> хорошо может быть заменена выделением сущностей
> и описанием их взаимодействия.

Это всё равно, как увидеть хуёвый дизайн (пусть даже на любимом ОО-языке), сказать, что это никуда не годится, и переписать на ассемблере, "заменяя выделением сущностей и описанием их взаимодействия".
Математический дизайн тоже бывает плохой! Использование математики, к сожалению, не означает автоматической корректности и удобства работы. Разумеется, первым фактором, влияющим на некую "близость к серебрянной пуле", как и прежде, в первую очередь, остаётся квалификация человека.
Математика даёт возможность ограничить очень много, чего. И затем не допустить многих обшибок, например, по невнимательности или по незнанию (типаа давно писал код, забыл).
Теоретически, есть возможность избежать _всех_ ошибок, сделав полное совпадение с формально описанной спецификацией. Но реально, пока что, это делается довольно редко. Естественно, только потому, что это довольно трудоёмко, но и тут ситуация вполне конкретно переламывается, кстати.
Если найду, покажу измерения в человеко-часах, которые ушли на построение формально верифицированного компилятора C, проект называется Compcert.
Вкратце, даже полностью верифицированная хрень по человеко-часам не очень намного превышала просто хорошо написанный и хорошо оттестированный сишный компилятор. Но у них-то корректность _доказана_, а не протестирована!

Date: 2010-08-15 06:57 am (UTC)
From: [identity profile] norguhtar.livejournal.com
В случае компиляторов уместно использовать математические модели. Они там не избыточны, а вполне себе адекватны. Но строить математическую модель для автоматизации прохождения заявки по предприятию это чистой воды overengeneering. Да это очень круто, но не нужно. И в большинстве прикладного софта, построение математической модели увеличит необходимое время для его написания.

Date: 2010-08-15 07:01 am (UTC)
From: [identity profile] metaclass.livejournal.com
Описание workflow и прочих конечных автоматов это вообще чистая математика. Даже если их проектировать, не называя это математикой.

Date: 2010-08-15 07:11 am (UTC)
From: [identity profile] norguhtar.livejournal.com
Только никто обычно для них не пишет математической модели. Все на уровне вербального описания идет и графа переходов.

Date: 2010-08-15 07:25 am (UTC)
From: [identity profile] metaclass.livejournal.com
Граф переходов и есть математическая модель, в общем-то.

Date: 2010-08-15 07:30 am (UTC)
From: [identity profile] norguhtar.livejournal.com
Только я эту мат. модель просто банально рисую, без какого либо математического вывода.

Date: 2010-08-15 07:03 am (UTC)
From: [identity profile] metaclass.livejournal.com
А, и насчет времени написания - построение моделей снижает затраты на поддержку. А у меня нет ни одного написанного софта, который "сдал и забыл" - весь софт сначала год поддерживается бесплатно, затем за небольшую сумму в год - сколько угодно.

Date: 2010-08-15 07:12 am (UTC)
From: [identity profile] norguhtar.livejournal.com
И сколько софта содержит в своей документации строгие математические модели описанные математическими терминами?

Date: 2010-08-15 07:26 am (UTC)
From: [identity profile] metaclass.livejournal.com
В моем случае вопрос надо ставить "сколько софта содержит документацию вообще" :)
Если матмодель описать это еще куда ни шло, то написать техническую документацию для будущих разработчиков практически невозможно, тогда софт не будет написан никогда.

Date: 2010-08-15 07:29 am (UTC)
From: [identity profile] norguhtar.livejournal.com
Вот в том то и дело.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 26th, 2025 07:04 am
Powered by Dreamwidth Studios