|
|
|
Написание программ без...
|
|||
|---|---|---|---|
|
#18+
Используя ЯП с жесткой типизацией можно ли написать достаточно сложную программу (не HelloWord) и стоит ли это делать, в коде которой не будет : 1. Неявных приведений типов: (YourClass) myobject 2. Явных приведений типов: (myobject as YourClass) 3. Проверок типов: myobject is YourClass 4. Интроспекции: myobject.GetType() 5. Конструкций обработок исключений try catch если система не обращается ко внешним неуправляемым ресурсам С уважением, Naf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2010, 13:40 |
|
||
|
Написание программ без...
|
|||
|---|---|---|---|
|
#18+
Naf, без первых четырёх пунктов - возможно. Имхо, использование в коде п.1...4 говорит об ошибках в дизайне программы. пятый пункт не относится к проблемам типизации совершенно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2010, 14:07 |
|
||
|
Написание программ без...
|
|||
|---|---|---|---|
|
#18+
egorychNaf, без первых четырёх пунктов - возможно. Имхо, использование в коде п.1...4 говорит об ошибках в дизайне программы. пятый пункт не относится к проблемам типизации совершенно. 5 включен чтоб не использjвать всякие динамические типы как в C# dynamic ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2010, 14:11 |
|
||
|
Написание программ без...
|
|||
|---|---|---|---|
|
#18+
Naf5 включен чтоб не использjвать всякие динамические типы как в C# dynamicобработку ошибок предполагается основывать на кодах возврата таким образом )) назад, в прошлое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2010, 14:19 |
|
||
|
Написание программ без...
|
|||
|---|---|---|---|
|
#18+
egorychNaf5 включен чтоб не использjвать всякие динамические типы как в C# dynamicобработку ошибок предполагается основывать на кодах возврата таким образом )) назад, в прошлое?ошибки разные бывают просто насчет try был пример на 1С (не бейте только ногами :-) ) в котором огромный кусок кода помещен в этот самый try, почему? да просто человек не хотел проанализировать ситуацию и так сделал, а выяснилось что там рушится бизнес-логика, хотя внешне все выглядит пристойно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2010, 14:25 |
|
||
|
Написание программ без...
|
|||
|---|---|---|---|
|
#18+
Naf, 5. А как без экзепшинов будет построена система управления ошибками (проверка входных, промежуточных, выходных данных)? Это ж геморойно без экзепшинов что-то мутить в проектах со сложной структурой и (тем более) при наличии нетривиального взаимодействия с пользователем (который априори источник ошибок в самых непредсказуемых местах). 1-4. Смотря что за задачи решает программа и что такое "достаточно сложная". Например фреймворк с кучей сложных алгоритмов по кодированию-декодированию (форматы изображений, текста, шифрование и т.д.) - можно. Там собственно все четко определено. А вот например реализуешь интерфейс сериализации/десериализации неважно чего. Собственно суть этого - набор объектов разных типов преобразовывать в один тип (строку или бинарник например). И наоборот - из этой строки восстанавливать реальные объекты конкретных типов. Любая крупная система управления разнотипными данными так или иначе сталкивается с необходимостью таких преобразований. Я даже не вижу никакого богохульства в том, чтобы когда мне надо проверить какого именно типа (из типов-реализаций) является конкретный объект. Если же задача не требует наличия каких-то фабрик или менеджеров, в которых могут возникнуть подобные проверки, тогда хорошо - обойдемся. Но в общем случае - нет. Абстрактная задача "Поменять масло" при реализации все же требует от тебя указать механику, какого бренда масло ты хочешь залить. Хотя теоритически можно было бы ужесточить условия задачи и пусть механик анализирует остатки масла в бачке - вот такое же пусть и заливает. Тогда твое указание на "тип" масла не потребуется. Но это же геморой, требует излишних телодвижений, оборудования, и заставляет тебя всю жизнь пользоваться одним и тем же маслом. Вот как-то так. Т.е. в ряде случаев обойтись без всех 4-х пунктов пропросту не удастся. В ряде - придется установить неудобные ограничения или вводить какие-то неюзер-френдли форматы данных. Ну а в остальных случаях - пожалуйста. И многие из этих случаев - "достаточно сложные программы" ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2010, 14:35 |
|
||
|
Написание программ без...
|
|||
|---|---|---|---|
|
#18+
Naf, конечно можно без всего этого. А чем не угодили преобр. типов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2010, 14:38 |
|
||
|
Написание программ без...
|
|||
|---|---|---|---|
|
#18+
NafИспользуя ЯП с жесткой типизацией можно ли написать достаточно сложную программу (не HelloWord) и стоит ли это делать, в коде которой не будет : 1. Неявных приведений типов: (YourClass) myobject 2. Явных приведений типов: (myobject as YourClass) 3. Проверок типов: myobject is YourClass 4. Интроспекции: myobject.GetType() 5. Конструкций обработок исключений try catch если система не обращается ко внешним неуправляемым ресурсам С уважением, Naf здесь язык с жесткой типизацией идеален. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2010, 16:43 |
|
||
|
Написание программ без...
|
|||
|---|---|---|---|
|
#18+
Naf, P.S. Посмотри на Haskell. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2010, 16:57 |
|
||
|
Написание программ без...
|
|||
|---|---|---|---|
|
#18+
первые четыре решаются использованием одного типа в линейке -- например только int (в линейке char (здесь - 8 байтовое целое), short, int, long long, signed/unsigned). а сложность программы -- любая. последнее вообще говоря непонятно зачем -- можно и без исключений обойтись, если программа не юзает системные функции... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2010, 17:10 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=36912798&tid=1343373]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
19ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 323ms |

| 0 / 0 |
