Здравствуйте, kedik, Вы писали:
K>Пока "строка" в библиотеке... пускай даже в стандартной... я могу её выкинуть, если по каким-то причинам она меня не устраивает... а если её добавить в язык — тогда сам язык станет заточен под какие-то определённые требования и задачи потеряв универсальность — вот тогда действительно начнуться проблемы.
Почему-то в других языках такой проблемы нет
K>1) Какой стандарт "строк" т.е. кодировки текста возмем за основу? UTF-8? UTF-16? UTF-32? а как на счет остальных?
Юникод вполне подойдёт.
K>2) Что эта строка будет уметь?
Посмотри в MSDN Members System.String.
K>на лету кoнвертить будем? Хм... в некоторых местах — это непозволительная роскошь...
Здесь надо жирным выделить
в некоторых. Т.е. если мне один раз в некотором месте не подошло, то такой тип надо считать вредным для всей индустрии. Логично.
K>И даже если эту проблему решить... то на самом деле существует, проблема гораздо серьезнее: какой набор методов такая "строка" будет предоставлять? На все случаи жизни?... Хм... нереально... а что бы этот набор расширить для требований проекта нужна будет возможность эти методы добавлять... а для этого нам надо будет иметь доступ к непосредственно к данным строки и знать, как она устроена... и тогда мы возвращаемся к п.1 ...
Ознакомься с System.String. В .NET такой "серьёзной" проблемы не существует.
K>Если всерьез задаться целью создать совершенно универсальный класс универсальной строки, то резутьтат будет, только один — как минимум лекгая шизофрения у его разработчиков
На C++ — вполне возможно.
K>Собственно с С/С++ этой проблемы не существует — есть кусок памяти и делай ты с ней что хошь... только будь добр поставить ноль в конце если передаешь наружу — все... хотя и это необязательно, если есть соответствующая договоренность...
Мы же не о массиве байт говорим, который как ты сам правильно заметил, неизвестно как конвертрировать, а типе string.
K>PS. Как начсет добавить в язык тип "время"?
Я понимаю. Если строка, то это обязательно должен быть массив байт, если дата, то длинное целое. От этих привычек очень трудно избавиться. Но всё же, будет время, взгляни на тип System.DateTime.