Re[28]: Tcl как обоснование ненужности поддержки компонентности в С++
От: kedik  
Дата: 02.06.06 20:13
Оценка: 30 (2) +1
Здравствуйте, IT, Вы писали:

IT>А теперь вопрос. Почему нельзя добавить в сам язык давно напрашивающийся тип string и покончить раз и навсегда эту строковую вакханалию.


Ну почему ж нельзя... можно конечно...

Пока "строка" в библиотеке... пускай даже в стандартной... я могу её выкинуть, если по каким-то причинам она меня не устраивает... а если её добавить в язык — тогда сам язык станет заточен под какие-то определённые требования и задачи потеряв универсальность — вот тогда действительно начнуться проблемы.

1) Какой стандарт "строк" т.е. кодировки текста возмем за основу? UTF-8? UTF-16? UTF-32? а как на счет остальных?
2) Что эта строка будет уметь?

1)
Но что делать с проектами в которых нафик не нужна кодировка которую мы выберем?
Можно конечно реализацию (т.е. кодировку) спрятать внутри класса, но что делать если под Виндами стандарт UTF-16, а на Униксах UTF-32... или UTF-8? ... на лету кoнвертить будем? Хм... в некоторых местах — это непозволительная роскошь...
2)
И даже если эту проблему решить... то на самом деле существует, проблема гораздо серьезнее: какой набор методов такая "строка" будет предоставлять? На все случаи жизни?... Хм... нереально... а что бы этот набор расширить для требований проекта нужна будет возможность эти методы добавлять... а для этого нам надо будет иметь доступ к непосредственно к данным строки и знать, как она устроена... и тогда мы возвращаемся к п.1 ...


Если всерьез задаться целью создать совершенно универсальный класс универсальной строки, то резутьтат будет, только один — как минимум лекгая шизофрения у его разработчиков

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


PS. Как начсет добавить в язык тип "время"?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.