Внутренняя реализация скрывается за сигнатурой типа, а сами типы и помогают избежать таких вот несовместимых операций как сложение веса с возрастом, хоть они и могут иметь одинаковое внутренее представление (int например).<span></span><br>
<br>пятница, 31 августа 2012 г. пользователь Alexey Shrub  писал:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">31.08.2012 14:09, Андрей П. Ковбович пишет:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
31 августа 2012 г., 11:46 пользователь Alexey Shrub <<a>worldmind@mail.ru</a>> написал:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Думаю типы должны отражать некие различные сущности, а кодировка это детали<br>
реализации, тип тот же - строка.<br>
</blockquote>
<br>
А как же абстракция данных? Вы типом (абстрактным) и скрываете эти<br>
детали реализации. К тому же не во всех языках строковый тип является<br>
встроенным.<br>
</blockquote>
<br>
По большому счёту вообще не должно быть строк в разных кодировках, всё приходящее извне должно приходить в известной кодировке и преобразовываться в нужный вид, в идеале автоматом.<br>
<br>
Давайте приведу другой пример, есть тип "возраст", его нельзя складывать с типом "вес", но никакого значения не имеет как эти типы устроены внутри, хранится ли это в виде целого, вещественного или строки не важно - типы это более высокий уровень абстракции, а уже задача языка обеспечить единобразие внутреннего формата или преобразовывать между ними<br>

<br>
-- <br>
Alexey Shrub<br>
-- <br>
Moscow.pm mailing list<br>
<a>moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
</blockquote>