введение

Проектирование и разработка идеального средства программирования.

Модератор: Модераторы

Сообщение Bonart » 09.10.2007 19:59:28

Почему не UTF-16? Не 32?

1. Компактность. 2. Совместимость с однобайтными кодировками. 3. Интернетовский стандарт де-факто.
Почему не четырьмя? А вдруг я захочу написать написать идентификатор клинописью?

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

PS: Я знал, что по остальным пунктам разногласий не будет.
Bonart
новенький
 
Сообщения: 81
Зарегистрирован: 29.06.2007 11:47:40

Сообщение alexs » 09.10.2007 20:02:05

Mirror писал(а):Почему не UTF-16? Не 32?

потому что сейчас это стандарт дефакто
хотя он удобен только для англоязычных
а нам конечно удобнее UTF-16/32 (на выбор) - главное чтобы размер символов был фиксирован.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение Mirror » 09.10.2007 20:09:16

Bonart писал(а):
PS: Я знал, что по остальным пунктам разногласий не будет.

Рано делать выводы. Просто я не знаю многие из остальных пунктов.
Mirror
новенький
 
Сообщения: 49
Зарегистрирован: 22.05.2005 12:02:48
Откуда: Порту

Сообщение Bonart » 10.10.2007 07:29:07

alexs писал(а):а нам конечно удобнее UTF-16/32 (на выбор) - главное чтобы размер символов был фиксирован.

Фиксированный размер удобнее для хранения строк в памяти - произвольный доступ с O(1).
UTF-8 удобнее для текстовых файлов - меньший размер и обратная совместимость с ASCII.
Bonart
новенький
 
Сообщения: 81
Зарегистрирован: 29.06.2007 11:47:40

Сообщение alexs » 10.10.2007 11:04:57

Bonart писал(а):меньший размер и обратная совместимость с ASCII

на мой взгляд - обратная совместимость - это сказка - англоговорящик конечно много - но остальных всёж больше - а для них - всё равно теже 2 - 4 байта и будут
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение Bonart » 10.10.2007 15:02:56

на мой взгляд - обратная совместимость - это сказка

C ASCII - реальность. Он же семибитный. Ну а с кодировочным зоопарком совместимость скорее вредна чем бесполезна: цель UTF - ибавление от codepage hell.
Bonart
новенький
 
Сообщения: 81
Зарегистрирован: 29.06.2007 11:47:40

Сообщение alexs » 10.10.2007 16:26:36

Bonart писал(а):C ASCII - реальность. Он же семибитный

мне как рускоговрящему пользователю - вот это абсолютно по барабану - ибо 99% текстов которые проходят через мой ПК - русские - тоже самое для китайев т.д.

как программист - да, я понимаю причины появления UTF8 - но мне больше нравится UTF32 - потомучто я разрабтчик на паскале :-)
те кто пишет на С - они не избалованны вкусностями типа string :-)
про C++ И его классы для работы со строками я знаю, но это всёж чуть не то.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение noch » 10.10.2007 18:55:47

Bonart писал(а):3. Система типов Хиндли-Милнера. Идеал статической типизации - все типы статические, но указывать их при объявлении необязательно: они автоматически выводятся компилятором из выражений. После такой типизации на тотальную динамическую без слез не взглянешь.

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

а чем классы от типов отличаются кроме как процедурными полями?
Аватара пользователя
noch
постоялец
 
Сообщения: 145
Зарегистрирован: 07.06.2005 09:45:49
Откуда: Armenia

Сообщение Deepthroat » 11.10.2007 00:00:08

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

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

Не говоря о том что знать нужно сколько памяти под нее отводится.

В прикладном программировании это и не к чему. А вот в системном без этого никак. Опять же, все зависит от назначения языка.
Аватара пользователя
Deepthroat
постоялец
 
Сообщения: 144
Зарегистрирован: 06.09.2007 00:21:34
Откуда: Outer Heaven

Сообщение alexs » 11.10.2007 09:51:36

Deepthroat писал(а):В прикладном программировании это и не к чему

ага, а домохозяйки могут страной управлять
вот не надо эти сказки
это уже попахивает екселем и его VBA
за одно только это можно Била четвертовать
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение Bonart » 11.10.2007 13:07:51

мне как рускоговрящему пользователю - вот это абсолютно по барабану - ибо 99% текстов которые проходят через мой ПК - русские - тоже самое для китайев т.д.

99% текстов программ? Не верю!
Mirror писал(а):Рано делать выводы. Просто я не знаю многие из остальных пунктов.

Вот и шути так без смайликов :)
noch писал(а):может я консервативный придурок но использование переменной без ее обьявления ведет к трудно отлавиливаемым ошибкам
К примеру, если опечатался и написал вместо "а" "б", то не получишь предпреждения от компилятора что такой переменной нету. Не говоря о том что знать нужно сколько памяти под нее отводится.

Это еще почему? Если опечатался и получился не определенный в программе идентификатор - получишь от компилятора не то что предупреждение, а ошибку.
Начнешь складывать строки с числами - тоже получишь ошибку.
Предлагается необязательность объявления типа переменной, а не определения!
Bonart
новенький
 
Сообщения: 81
Зарегистрирован: 29.06.2007 11:47:40

Сообщение ev » 11.10.2007 13:38:08

товарищи, добавляйте и свои темы для обсуждения ;)
ev
долгожитель
 
Сообщения: 1763
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Сообщение alexs » 11.10.2007 17:53:24

Bonart писал(а):99% текстов программ? Не верю!

Я сказал - обычному пользователю - значит это не программы
книжек худжожественных и не очень у меня гораздо больше чем программ (исходников)
Bonart писал(а):Предлагается необязательность объявления типа переменной

вот пример
Код: Выделить всё
1+'1'

что я хочу получить?
2 и '11'?
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение Deepthroat » 11.10.2007 23:59:57

Ну в РНР это просто - конкатенация обозначается точкой, а плюсом - сложение. Так что ответ однозначен: 2. А вот для паскаля, я предлагал синтаксис, который избавит от проблемы. С дополнениями другого посетителя это может выглядеть так:
Код: Выделить всё
x1 := 1 + integer('1'); //x1 = 2
x2 := string(1) + '1'; //x2 = '11'

По сути, в SysUtils функции преобразования есть, так что что-то подобное уже возможно. Вопрос в том, чтобы это было возможно на уровне ядра.

ага, а домохозяйки могут страной управлять
вот не надо эти сказки
это уже попахивает екселем и его VBA
за одно только это можно Била четвертовать

А Java, а PHP, а Perl? Эти языки прекрасно обходятся без указателей и прямого управления памятью, так что же, они не полноценные? Драйвер на Java не напишешь, конечно, но крупных прикладных проектов на этом языке предостаточно. Вопрос в функциях языка - для чего нам язык, для системного или прикладного программирования.
Аватара пользователя
Deepthroat
постоялец
 
Сообщения: 144
Зарегистрирован: 06.09.2007 00:21:34
Откуда: Outer Heaven

Сообщение alexs » 12.10.2007 01:31:31

Deepthroat писал(а):конкатенация обозначается точкой, а плюсом - сложение

Сначала создаём трудности - потом с успехом их решаем :-)
если мы обязательно объявляем перменную:
Bonart писал(а):Предлагается необязательность объявления типа переменной, а не определения!

то почему сразу не объявить её тип? мы всё равно далем операцию - почему останавливаемся на пол пути?
и ещё - зачем плодить сущности сверх меры? из-за того что искуственно отказываемся от одной полезной вещи необхоимо изобретать столько городулек?

Deepthroat писал(а): Java не напишешь, конечно, но крупных прикладных проектов на этом языке предостаточно

Вот не надо ля-ля
нормальных (функциональных для оператора) програм нет
есть небольшие поделки - тыкалки мышкой.
если оператора заставить работать в них постоянно - то оператор скорее застрелит разработчика чем булет работать в ТАКОЙ программе. тоже и по PHP, и Perl

единственное удобство этих языков (сомнительное) скорость написания кода кодером

больше преимуществ не вижу.

ещё раз повторюсь:
Deepthroat писал(а):Вопрос в функциях языка - для чего нам язык, для системного или прикладного программирования

это искуственное деление - придумано маркетолагами для опровдания разработак т.н. языков высокого (4-5 и т.д.) уровня.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Пред.След.

Вернуться в Компилятор / язык программирования

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

Рейтинг@Mail.ru