Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Религиозные войны > static vs dynamic typing


Автор: Lazin 15.2.2009, 21:54
поверить не могу, что здесь небыло такого холивара smile 

Автор: Goliaf777 15.2.2009, 22:53
Ну товарисчи исправим?

Автор: Shaggie 16.2.2009, 07:53
Static. Очень сберегает нервные клетки.

Автор: picc 16.2.2009, 12:06
Цитата

dynamic typing

а как это?

Автор: unicuum 16.2.2009, 12:24
Цитата(Lazin @  15.2.2009,  21:54 Найти цитируемый пост)
поверить не могу, что здесь небыло такого холивара smile  

Потому что смысла нет.

Автор: picc 16.2.2009, 12:26
Цитата(unicuum @  16.2.2009,  12:24 Найти цитируемый пост)
Потому что смысла нет. 

это означает что вы уже определились?

Автор: Sun 16.2.2009, 13:01
Статическое или динамическое печатание? Хм... Динамическое печатание звучит заманчиво. Печатать много и динамично - это кул! Или имеется ввиду печатание на стационарном компутере (печатной машинке, печатном станке) в отличие от мобильного компутера (нотебука, КПК, и т, п,)??  smile 

Автор: unicuum 16.2.2009, 13:08
Цитата(Sun @  16.2.2009,  13:01 Найти цитируемый пост)
Статическое или динамическое печатание? Хм...

Как-то не смешно. smile Статическая или динамическая типизация.

Цитата(picc @  16.2.2009,  12:26 Найти цитируемый пост)
это означает что вы уже определились? 

Я считаю, что надо использовать и то и другое в зависимости от обстоятельств. Для меня это звучит как, "что лучше for или do/while?" и так далее.

Автор: picc 16.2.2009, 13:13
Цитата(unicuum @  16.2.2009,  13:08 Найти цитируемый пост)
"что лучше for или do/while?"

тут однозначно for

Автор: Shaggie 16.2.2009, 13:19
Цитата(unicuum @  16.2.2009,  13:08 Найти цитируемый пост)
надо использовать и то и другое в зависимости от обстоятельств.

Можно подробнее про обстоятельства?

Автор: Sun 16.2.2009, 13:22
Цитата(unicuum @  16.2.2009,  10:08 Найти цитируемый пост)
Как-то не смешно. smile Статическая или динамическая типизация.

В таком случае - typification, а не typing

Автор: Lazin 16.2.2009, 13:32
http://en.wikipedia.org/wiki/Type_system
Я считаю что в большинстве случаев, динамическая типизация вредна. Это как использовать наиболее универсальное решение там, где можно обойтись специальным. Тот факт, что языки программирования с динамической типизацией проще, это не их достоинство, это просто следствие несовершенства системы типов mainstream языков программирования, таких как java и с++. smile 
вот к примеру, код на с++
Код

template<class T>
struct is_next
{
 bool operator () (T lhs, T rhs)
 {
    bool res = (lhs + 1) == rhs;
    return res;
 }
};

в принципе, с одной стороны явное указание типа переменной res - лишнее, компилятор мог-бы и сам его вывести зная тип выражения справа от оператора присваивания, с другой стороны, я не могу задать ограничения для типов, с которыми может работать этот шаблон, что на практике означает совершенно не читаемые сообщения компилятора в случае, если тип Т - не является числом либо не имеет оператора сравнения smile 

Автор: picc 16.2.2009, 13:35
а документацию нафига придумали smile 

Автор: Lazin 16.2.2009, 13:45
Цитата(picc @  16.2.2009,  13:35 Найти цитируемый пост)
а документацию нафига придумали

наверное для того, что-бы программисты выполняли работу за компилятор =)

Автор: picc 16.2.2009, 13:47
Цитата(Lazin @  16.2.2009,  13:45 Найти цитируемый пост)
что-бы программисты выполняли работу за компилятор =) 

ничего не понял

Автор: Lazin 16.2.2009, 13:54
это была ирония...
вместо того, что-бы читать доки и выяснять что можно передать в ф-ю(в случае динамических яп), можно просто узреть подсказку в IDE, либо попытаться скомпилировать код. smile 

Автор: picc 16.2.2009, 13:59
Цитата(Lazin @  16.2.2009,  13:54 Найти цитируемый пост)
выяснять что можно передать в ф-ю

а вы что наугад программируете smile 

Цитата(Lazin @  16.2.2009,  13:54 Найти цитируемый пост)
можно просто узреть подсказку в IDE

а это разве не решается документированием, написал описание метода, и потом появляются подсказки

Автор: Lazin 16.2.2009, 15:22
Цитата(picc @  16.2.2009,  13:59 Найти цитируемый пост)
а вы что наугад программируете

я ошибки иногда делаю, и хочу что-бы они у меня сразу вылезали, а не у клиента smile 
Цитата(picc @  16.2.2009,  13:59 Найти цитируемый пост)
а это разве не решается документированием, написал описание метода, и потом появляются подсказки

Код

def some_method(self, param):
    '''this is some method'''
    for i in param:#а что если мы передадим в качестве параметра в метод не iterable? :)
        print i

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

Автор: unicuum 16.2.2009, 15:35
Цитата(Sun @  16.2.2009,  13:22 Найти цитируемый пост)
В таком случае - typification, а не typing 

Нет, так не принято говорить на их языке. А static typing и dynamic typing это не наши термины, у нас всего лишь перевод в соответствии с нашими смысловыми конструкциями.

Цитата(picc @  16.2.2009,  13:13 Найти цитируемый пост)
тут однозначно for 

В том весь и фокус, что не однозначно. Простейший пример, нужно считать из консоли ответ, да или нет. Это значит надо сначала спросить пользователя, а потом ждать ответ. Если он начнёт выпендриваться и вводить неправильно, то спрашивать его ещё и ещё раз. smile

В общем, do/while применяется когда нужен цикл, который зависит от неких условий и когда нужно выполнить его хотя бы один раз. А for, когда надо повторить несколько раз последовательность действий с учётом их количества. Если программисту не нужен индексатор, то применять for нет смысла.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)