LINUX.ORG.RU
ФорумTalks

[пятница][ода на смерть моска] Статическая типизация vs динамическая

 


0

1

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

Мой моск умер в попытках преобразований типов. Я раньше не думал, что такое возможно... Полдня сидел дрючил типы туда-сюда, а потом сюда-туда. Кусок кода, если бы на пыхе уместился бы на один экран, а тут уже пятый и до конца задачи как до горизонта...

Я ненавижу це шарп!!!

Хотя счас представил прогера, который наоборот переходит от статики к динамике. Он бы наверное был в ужасе :)

Давно со мной такого не было, вспомнить бы номер маршрутки до дома...

★★★

Ответ на: комментарий от KRoN73

> А что такое «ПХПшный стиль»? :) Что в этом языке такого, что категорически выделяет его стиль среди других?

Думаю товарищ путается в терминологии. Скорее не стиль, а подход. Подход всегда опирается на набор интрументов в языке/платформе.

Это как раз моя глобальная задача, отказаться от старого подхода, и воспринять новый шарповый. Но «правильно» воспринять. А то, что я языка не знаю... Хм. Конечно не знаю. Можно подумать мне кто-то давал время его «изучать». «Пиши бля. Пишу бля.» - вот и весь подход.

Единственное что меня бесит. Так это то, что документация огромная, а примеры в ней дебильные. Уже несколько раз убеждался. Поставил задачу -> ищу описания и примеры в доке и msdn -> потом спрашиваю у нашего гуру -> и тихонько оху^Wудивляюсь. Он зачастую объяснит как надо, и ведь работает. А в документации ихней видимо только Боллмер и разбирается.

С нежностью вспоминаю доку к Delphi...

valich ★★★
() автор топика
Ответ на: комментарий от KRoN73

>Будешь смеяться, но почти каждый второй на быстрый вопрос «... или ...» в такой форме сразу отвечает «да» или «нет» :)

Вроде как считается что в вопросе "... или ..." ответом «Да» является утверждение первого пункта. я несколько про другое - слить и приопустить коллег (друзей, единомышленников) один из наилегчайших понтов, особенно перед девушками.

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от quickquest

> и никогда ничего не забывают :)

Надо такую карточку с собой таскать. Ежели что, пусть положат на место... Меня...

valich ★★★
() автор топика
Ответ на: комментарий от DNA_Seq

>Вроде как считается что в вопросе "... или ..." ответом «Да» является утверждение первого пункта.

Да, чаще всего так. Человек получил вопрос, переключается на обдумывание ответа и фильтрует второй вопрос. Поэтому в такой ситуации и ответ следует как бы мгновенно. Ты только закончил произносить второй вопрос, а тебе уже мгновенно ответ :)

я несколько про другое - слить и приопустить коллег (друзей, единомышленников) один из наилегчайших понтов


А. Такой смысловой слой я не заметил :)

KRoN73 ★★★★★
()
Ответ на: комментарий от legolegs

в принципе да, если с непривычки писать.

но если привыкнуть, можно быстро сразу писать правильно и при этом коротко и быстро.

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

olegsov
()
Ответ на: комментарий от valich

>Так это то, что документация огромная, а примеры в ней дебильные.

Так это весь msdn такой, как-то помогал одной девушки сделать контрольные в с++, так матерился на msdn жутко, объясняют то что итак понятно а неочевидные моменты - хрен вам. Допустим надо было вывести true в случае 1 и false в случае нуля не прибегая к if, нужные модификаторы cout нашел только в блоге одного программера. Адрес блога жалкко что посеял но там курсы по многимм языкам были, причем на линуксе основанные, хоть в школы неси.

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от PolarFox

> А давайте попробуем воссоздать некое подобие loopback.

Это вин (:

pevzi ★★★★★
()
Ответ на: комментарий от valich

> ищу описания и примеры в доке и msdn -> потом спрашиваю у нашего гуру -> и тихонько оху^Wудивляюсь. Он зачастую объяснит как надо, и ведь работает. А в документации ихней видимо только Боллмер и разбирается.

при всей моей нелюбви к некрософту, MSDN это ОТЛИЧНАЯ документация. скорее всего вы в нее заглядывали всего несколько раз и плохо в ней ориентируетесь?

По теме. Динамическая типизация зло. При размерах проекта более чем «крошечный». Забыли венгерскую нотацию? Что-бы при чтении можно было сходу однозначно сказать, что в конкретной переменной хранится, использовали такой полу-костыль. Нет же у кого то мозги жмут, придумали динамическую типизацию. Типо удобно, епт.
Динамическая типизация должна иметь весьма ограниченный круг применения, но ее пихают уже в языки общего назначения, ппц какой то. Некоторые уже не могут без этого. Ремесло «программирование» катится в сраное г-но.

FollowTheRabbit
()
Ответ на: комментарий от KRoN73

>Но это же не повод развешивать ярлыки на простые рабочие инструменты?
О PHP ничего сказать не могу. Ни хорошего ни плохого, так как ни разу не видел.

Я писал о программистах и их стиле на основе просмотра их Java, C#, VB.Net кода.

grim ★★☆☆
()
Ответ на: комментарий от olegsov

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

Выписывать? Чё там выписывать. Зато после того, как она готова вообще нихрена делать не надо. Даже тесты не нужны, всё просто работает правильно. А на динамических языках - как на ассемблере: какую бы хрень ты не написал - она съестся и что-нибудь неожиданное сделает

legolegs ★★★★★
()
Ответ на: комментарий от DNA_Seq

>msdn

cout

А зачем доку по _языку_ искать в мсдн? Он как бы не для этого. Хотя он правда говнище неудобное, тормозное и неполное.

legolegs ★★★★★
()
Ответ на: комментарий от legolegs

>А зачем доку по _языку_ искать в мсдн?

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

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от FollowTheRabbit

>при всей моей нелюбви к некрософту, MSDN это ОТЛИЧНАЯ документация. скорее всего вы в нее заглядывали всего несколько раз и плохо в ней ориентируетесь?

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

Динамическая типизация зло. При размерах проекта более чем «крошечный».


Если в голове бардак то чинить надо голову а не язык

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от DNA_Seq

Самый лучший мсдн был с VS6 потом начал катиться в говно . глючит , лезет в онлайн за каждым чихом и так далее . а в 6ке был идеальный почти

Loki13 ★★★★★
()
Ответ на: комментарий от valich

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

grim ★★☆☆
()
Ответ на: комментарий от Loki13

Я в свое время не пошел на программера только из-за ужаса перед делфи. Увидил бы тогда визуал студио вообще бы повесился нафиг

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от DNA_Seq

>Если в голове бардак то чинить надо голову а не язык

Охохо! Очень интересно было бы послушать историю успеха о том, как всё держать в голове при работе над проектом хотя бы вдвоём на протяжении хотя бы месяца.

Zenom ★★★
()
Ответ на: комментарий от PolarFox

>С каких это пор у нас cout стал частью языка?

С тех пор как стандарт STL стал публиковаться вместе со стандартом на язык.

legolegs ★★★★★
()
Ответ на: комментарий от Loki13

> Самый лучший мсдн был с VS6 потом начал катиться в говно . глючит , лезет в онлайн за каждым чихом и так далее . а в 6ке был идеальный почти

он был просто значительно по-меньше, умещался на 1 сд. потом туда напихали всего. последний которым я пользовался был выпуск от начала 2005 года. 2,5 гб где то. Да, структура менялась, но искать что-л. было достаточно просто и быстро.

FollowTheRabbit
()

Дело не в статической типизации, а в отсутствии вывода типов в C#, поэтому и траху много.

Reset ★★★★★
()
Ответ на: комментарий от DNA_Seq

>комментарии для слабаков?

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

Zenom ★★★
()
Ответ на: комментарий от DNA_Seq

>> ЛОЛШТО? Любой язык позволяет писать копипастом.

В случае паскаля придется описывать все используемые переменные

Ыыыы... ты правда думаешь, что это хоть кого-нибудь остановило бы, даже если было бы правдой?

tailgunner ★★★★★
()
Ответ на: комментарий от legolegs

> Выписывать? Чё там выписывать.

Вписывать, может, и ничего. А читать многострочные простыни сообщений об ошибках в Бусте - придется.

Зато после того, как она готова вообще нихрена делать не надо. Даже тесты не нужны, всё просто работает правильно.

Бугага.

tailgunner ★★★★★
()
Ответ на: комментарий от Reset

>Дело не в статической типизации, а в отсутствии вывода типов в C#, поэтому и траху много.

Проблема топикстартера не в этом. Он просто не привык. Он предпочитает сам контролировать, какие операции над чем можно производить. Когда компилятор вмешивается, ТС раздражается. Если он сможет довериться компилятору и выкинуть из головы информацию о типах (оставив это машине), то у него появится время на донесение своих мыслей компилятору.

legolegs ★★★★★
()
Ответ на: комментарий от legolegs

>>С каких это пор у нас cout стал частью языка?

С тех пор как стандарт STL стал публиковаться вместе со стандартом на язык.

А что, cout уже стал частью STL?

tailgunner ★★★★★
()
Ответ на: комментарий от DNA_Seq

> Если в голове бардак то чинить надо голову а не язык

Как раз наоборот. Статическая типизация предполагает грамотное проектирование. А динамическая позволяет лозунг «главное - начать, а там разгребем». В результате так и начинают.

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

Откройте друпал в любом месте. Предположим common.inc, и сходу разберитесь, что делает та или иная функция, какого типа у нее аргументы и тд.

Назовите действительно большие проекты, написанные на языке с динамической типизацией?

Я уж не говорю, отлаживать только что написанный код на языке со стат.типизацией гораздо проще. Ошибок можно сделать меньше, исправить ошибки в compile-time.

З.ы. И топик с таким названием был уже и было там нацать страниц.

FollowTheRabbit
()
Ответ на: комментарий от tailgunner

>читать многострочные простыни сообщений об ошибках в Бусте

Ах вот что мне напоминали простыни ошибок питона... Точно-точно, тоже длинно и по большей части не по существу.

legolegs ★★★★★
()
Ответ на: комментарий от grim

> Учить язык по MSDN очень неправильно.

Советую почитать книгу.


Ага, читаю уже Троелсена какого-то. Я ее украл, в смысле PDF. Думал, если что куплю. Теперь знаю что фуфло.

valich ★★★
() автор топика
Ответ на: комментарий от Loki13

> 2 CD , или даже 4 .. у меня была версия студии полная на 6 CD
ну сама МСДН модульная, я помнится сам вырезал из нее те части которые мне не нужны, у мну VS6 на 2х сд была. =)

FollowTheRabbit
()
Ответ на: комментарий от tailgunner

>А что, cout уже стал частью STL?

Если уж буквоедствуешь, то сразу говори, что никакого STL больше не существует ;)

legolegs ★★★★★
()
Ответ на: комментарий от FollowTheRabbit

>Как раз наоборот. Статическая типизация предполагает грамотное проектирование. А динамическая позволяет лозунг «главное - начать, а там разгребем». В результате так и начинают.

На эту тему уже было обсуждение. Проектирование сверху-вниз сосет.

http://www.linux.org.ru/forum/development/5377010

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от FollowTheRabbit

>Назовите действительно большие проекты, написанные на языке с динамической типизацией?

В какой области? Среди научного софта такого дофига и больше.

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от legolegs

>> А что, cout уже стал частью STL?

Если уж буквоедствуешь

Ты первый начал.

то сразу говори, что никакого STL больше не существует ;)

Ну, я несколько лет уже не слежу за новостями Си++

tailgunner ★★★★★
()
Ответ на: комментарий от FollowTheRabbit

> И где ты видел СЛОЖНЫЙ научный софт, а?

Кстати, критерии сложности софта и примеры сложного софта - в студию.

tailgunner ★★★★★
()
Ответ на: комментарий от KRoN73

А каждый второй заказчик на вопрос «x or y» отвечает «yes, ok».

queen3 ★★★★★
()
Ответ на: комментарий от tailgunner

> Кстати, критерии сложности софта и примеры сложного софта - в студию.

Любой проект содержащий как минимум энное количество файлов/классов можно считать сложным ПО. Энность зависит от размеров файлов и используемого языка. Так пойдет? =) Давайте установим N равным 500.

FollowTheRabbit
()
Ответ на: комментарий от valich

Что ты такое пишешь? Зачем в C# вообще нужна документация? Достаточно intellisense + иногда гугля.

queen3 ★★★★★
()
Ответ на: комментарий от DNA_Seq

Такие треды давно пора завершать краткими тезисами. Причём, тем, кто их начал. А иначе срезать скор. Ну просто потому, что кто-то же должен это сделать.

queen3 ★★★★★
()

программирование ненужно, настоящие мачо рубят лес

SebastianPoeiro
()
Ответ на: комментарий от FollowTheRabbit

ну например modeller - предсказание структуры белка по гомологии с применением скрытых марковских моделей. Частично на фортране, частично на питоне

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от FollowTheRabbit

> Любой проект содержащий как минимум энное количество файлов/классов можно считать сложным ПО.

Так файлов или классов?

Энность зависит от размеров файлов и используемого языка. Так пойдет? =) Давайте установим N равным 500.

Для какого языка?

tailgunner ★★★★★
()
Ответ на: комментарий от DNA_Seq

и сколько там питона? И где гарантия, что весь функционал не укладывается в 10 файлов по 20 кб, которые и составляют все ноухау? С научными программами так и бывает, ээто я знаю не понаслышке.

Вообще, если _внимательно_ смотреть на http://www.python.org/about/success/, мягко говря не впечатляет/

FollowTheRabbit
()
Ответ на: комментарий от tailgunner

вам что, нужно точное определение булевого критерия «сложность проекта»? мне кажется это уже демагогия. Вы не хуже меня знаете, что это поределение через чур субъективно, что бы сойтись в едином мнении. Покажите большой проект, который пилят более чем 10 человек и не нужно будет гадать о нижней границе, я соглашусь что он является сложным ПО написанным на языке с динамической типизацией

FollowTheRabbit
()
Ответ на: комментарий от FollowTheRabbit

> вам что, нужно точное определение булевого критерия «сложность проекта»?

Нет.

FollowTheRabbit> Энность зависит от размеров файлов и используемого языка. Так пойдет? =) Давайте установим N равным 500.

Мне нужно значение N для Python.

tailgunner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.