скрипт языки и типы
От: Рома Мик Россия http://romamik.com
Дата: 21.01.04 19:01
Оценка:
Почему-то в большинстве, если не во всех, встраиваемых языках имеет место быть слабая типизация. Это на первый взгяд проще запрограммировать, но отрицательно сказывается на производительности и менее удобно для программиста-пользователя, поскольку некоторые ошибки, о каких он мог бы узнать во время компиляции, во время компиляции не отлавливаются, и это усложняет отладку.

Есть ли какие-либо достоинства слабой типизации, кроме большего удобства ( ИМХО на самом деле это неправда ) для разработчика языка?
... << RSDN@Home 1.1.3 beta 1 >>
Re: скрипт языки и типы
От: oRover Украина  
Дата: 21.01.04 20:15
Оценка: 14 (1)
Здравствуйте, Рома Мик, Вы писали:

РМ>Есть ли какие-либо достоинства слабой типизации, кроме большего удобства ( ИМХО на самом деле это неправда ) для разработчика языка?


действительно для большего удобства. Если наша программа или изолированый от других кусок программы небольшой по размерам (например веб-страница. В том же АСП это по большому счету самостоятельный кусок), то скрипты подходят в самый раз — за типами следить не надо, выполняется последовательно и этот аспект благоприятствует более легкому чтению кода и т.д.
... << RSDN@Home 1.1.2 stable >>
Re: скрипт языки и типы
От: Tonal- Россия www.promsoft.ru
Дата: 21.01.04 21:40
Оценка: 1 (1)
РМ>Почему-то в большинстве, если не во всех, встраиваемых языках имеет место быть слабая типизация.
РМ>Это на первый взгяд проще запрограммировать, но отрицательно сказывается на производительности и менее удобно для программиста-пользователя, поскольку некоторые ошибки, о каких он мог бы узнать во время компиляции, во время компиляции не отлавливаются, и это усложняет отладку.

РМ>Есть ли какие-либо достоинства слабой типизации, кроме большего удобства ( ИМХО на самом деле это неправда ) для разработчика языка?


Посмотри на ML и OcaML — типизация вполне себе так.

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

Грубо говоря, если ты пишешь скриптик в 20 — 40 сторк ты в состаянии сам уследить за использованием переменных и строгая типизация будет тебе только мешать. А получив ошибку выполнения или неверный результат ты быстро поймёшь где слажал.
... << RSDN@Home 1.1.0 stable >>
Re[2]: скрипт языки и типы
От: Рома Мик Россия http://romamik.com
Дата: 21.01.04 22:24
Оценка:
Здравствуйте, Tonal-, Вы писали:

T>время первичного обучения,

О. Об этом я не подумал. Дейстивтельно, возможно, не-программисту проще будет без типов. Хотя, типы же все равно где-то там есть, только спрятаны. По-крайней мере я, когда учил бейсик в десятилетнем возрасте, был несколько удивлен, что ничего не надо делать, чтобы сделать переменную строковой ( а я был тогда вполне еще не-программистом ).
... << RSDN@Home 1.1.3 beta 1 >>
Re: скрипт языки и типы
От: hrg Россия  
Дата: 22.01.04 06:43
Оценка:
Рома Мик -> "скрипт языки и типы" :

РМ> Почему-то в большинстве, если не во всех, встраиваемых языках имеет

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

Насчет производительности — правда, но если сравнивать с java & c# то не
сильно и ниже. А уж если не требуется критическая производительность, от
этот недостаток просто отпадает.

Насчет ошибок — давно не встречался с такими проблемами.

РМ> Есть ли какие-либо достоинства слабой типизации, кроме большего

РМ> удобства ( ИМХО на самом деле это неправда ) для разработчика языка?

Ну например очень удобно строить сложные структуры данных.

Yury Kopyl aka hrg | http://id.totem.ru |
"Если ты плюнешь на коллектив — коллектив утрется,
но если коллектив плюнет на тебя — ты утонешь" (С)Баралгин
Posted via RSDN NNTP Server 1.8 beta
Re[2]: скрипт языки и типы
От: Рома Мик Россия http://romamik.com
Дата: 22.01.04 10:57
Оценка:
Здравствуйте, hrg, Вы писали:

hrg>Ну например очень удобно строить сложные структуры данных.

А можно поподробнее, что имеется ввиду, с примером сложной структуры данных, которую со слабой типизацией проще строить, а потом еще и проще использовать?
... << RSDN@Home 1.1.3 beta 1 >>
Re[3]: скрипт языки и типы
От: hrg Россия  
Дата: 22.01.04 11:19
Оценка:
Рома Мик -> "Re[2]: скрипт языки и типы" :

РМ> Здравствуйте, hrg, Вы писали:


hrg>> Ну например очень удобно строить сложные структуры данных.


РМ> А можно поподробнее, что имеется ввиду, с примером сложной структуры

РМ> данных, которую со слабой типизацией проще строить, а потом еще и
РМ> проще использовать?

Хм... попробую от балды, уровень вложенности можно продолжать...

my $dummy_struct=[
    {
        name1=>value1
     },
    {
        name2=>[1,a,2,b]
     },
    {
        name3=>{1=>'a',b=>2}
    }
];

foreach my $name (@$dummy_struct){
    my $res=do_smth_with_name($dummy_struct->{$name});
}



Yury Kopyl aka hrg | http://id.totem.ru | Гордость мешает доходам!
Posted via RSDN NNTP Server 1.8 beta
Re: скрипт языки и типы
От: _vovin http://www.pragmatic-architect.com
Дата: 22.01.04 12:12
Оценка:
Здравствуйте, Рома Мик, Вы писали:

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


РМ>Есть ли какие-либо достоинства слабой типизации, кроме большего удобства ( ИМХО на самом деле это неправда ) для разработчика языка?


Слабая типизация действительно не имеет особых преимуществ и имеет существенные недостатки. Это видно на примере C, Perl, и т.д.

Совсем другое — сильная динамическая типизация. Там ошибки не проходят незамеченными и в то же время не требуется описывать много лишней информации, чтобы удовлетворить компилятор. Это видно на примере Ruby, Python, ...

--

Владимир.
Re[4]: скрипт языки и типы
От: Рома Мик Россия http://romamik.com
Дата: 22.01.04 12:12
Оценка: +1
Здравствуйте, hrg, Вы писали:

hrg>Хм... попробую от балды, уровень вложенности можно продолжать...

А теперь то же самое, но чтоб я понял Это похоже на перл, а я в нем ни в зуб ногой. Во-первых что это делает, а во-вторых чем это удобней, чем со строгой типизацией ( аналогичный код на C++ ).
... << RSDN@Home 1.1.3 beta 1 >>
Re[5]: скрипт языки и типы
От: _vovin http://www.pragmatic-architect.com
Дата: 22.01.04 12:19
Оценка:
Здравствуйте, Рома Мик, Вы писали:

РМ>Здравствуйте, hrg, Вы писали:


hrg>>Хм... попробую от балды, уровень вложенности можно продолжать...

РМ>А теперь то же самое, но чтоб я понял Это похоже на перл, а я в нем ни в зуб ногой. Во-первых что это делает, а во-вторых чем это удобней, чем со строгой типизацией ( аналогичный код на C++ ).

C++ — слабая типизация.

--

Владимир.
Re[6]: скрипт языки и типы
От: Рома Мик Россия http://romamik.com
Дата: 22.01.04 13:53
Оценка:
Здравствуйте, _vovin, Вы писали:

_>C++ — слабая типизация.

Я бы не согласился. В C++ можно подавить правила типизации, но это придется специально делать. ИМХО скорее все-таки сильно-типизированный язык. Я имел ввиду, что-то типа lua или javascript, когда говорил о слабой типизации.
... << RSDN@Home 1.1.3 beta 1 >>
Re[7]: скрипт языки и типы
От: _vovin http://www.pragmatic-architect.com
Дата: 22.01.04 15:45
Оценка: +1
Здравствуйте, Рома Мик, Вы писали:

РМ>Здравствуйте, _vovin, Вы писали:


_>>C++ — слабая типизация.

РМ>Я бы не согласился. В C++ можно подавить правила типизации, но это придется специально делать. ИМХО скорее все-таки сильно-типизированный язык. Я имел ввиду, что-то типа lua или javascript, когда говорил о слабой типизации.

Что такое сильная — это правила типизации энфорсятся *всегда*.
Что такое слабая — это типизация с предопределенными случами, когда она может быть нарушена.
Такие случаи: приведение типов, неявное преобразование типов, указатели, юнионы...
Когда есть четкое определение, "я бы" говорить не стоит.

--

Владимир.
Re[7]: скрипт языки и типы
От: _vovin http://www.pragmatic-architect.com
Дата: 22.01.04 15:50
Оценка: 3 (2) +1
Здравствуйте, Рома Мик, Вы писали:

РМ>Здравствуйте, _vovin, Вы писали:


_>>C++ — слабая типизация.

РМ>Я бы не согласился. В C++ можно подавить правила типизации, но это придется специально делать. ИМХО скорее все-таки сильно-типизированный язык. Я имел ввиду, что-то типа lua или javascript, когда говорил о слабой типизации.

То, что ты говорил — динамическая типизация. Правила типизации энфорсятся во время выполнения.
Многие путают эти два понятия, из-за чего некоторые языки получают незаслуженно низкую репутацию.

--

Владимир.
Re[2]: скрипт языки и типы
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.01.04 20:58
Оценка: +2
Здравствуйте, Tonal-, Вы писали:

T>Грубо говоря, если ты пишешь скриптик в 20 — 40 сторк ты в состаянии сам уследить за использованием переменных и строгая типизация будет тебе только мешать. А получив ошибку выполнения или неверный результат ты быстро поймёшь где слажал.


Строгая типизация мешает только халтуре.
... << RSDN@Home 1.1.2 beta 3 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: скрипт языки и типы
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.01.04 20:58
Оценка:
Здравствуйте, _vovin, Вы писали:

_>C++ — слабая типизация.


С++ поддреживает оба варианта. На мнем можно писать как опасный не типизированный код, так и строго-типизированный и надежный. Проблема С++ в том, что он вынуждает пользоваться некими джентельменскими соглашениями... которые легко нарушить.
... << RSDN@Home 1.1.2 beta 3 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: скрипт языки и типы
От: _vovin http://www.pragmatic-architect.com
Дата: 22.01.04 22:15
Оценка: +1
Здравствуйте, VladD2, Вы писали:

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


_>>C++ — слабая типизация.


VD>С++ поддреживает оба варианта. На мнем можно писать как опасный не типизированный код, так и строго-типизированный и надежный. Проблема С++ в том, что он вынуждает пользоваться некими джентельменскими соглашениями... которые легко нарушить.


Это не тот случай, когда оба варианта подходят. Определения просто взаимоисключающиеся. Сильная типизация означает соблюдение правил типизации *всегда*. Слабая это и есть наличие исключений.
Т.е. "можно писать" и "джентельменскими" как раз указывает на наличие проблем в системе типов.
А то, что джентельменские правила "легко нарушить", говорит, что таких дыр достаточно, чтобы было сложно писать безпроблемный код.

http://www.csse.monash.edu.au/~jonmc/CSE2305/General/html/glossary.html#strong_typing
http://www.csse.monash.edu.au/~jonmc/CSE2305/General/html/glossary.html#weak_typing

--

Владимир.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.