Pull to refresh
0
@MacInread⁠-⁠only

User

5
Subscribers
Send message
Да, а наш продукт ведет родословную с турбо-паскаля, поэтому париться приходится, к сожалению.

Конвертацию строк ANSI-Unicode нужно ограничить именно на уровне ввода-вывода, тогда каждый разработчик будет уверен, что во всех остальных юнитах в проекте все строки только юникодовые

Да, это логичное решение, но траты памяти при их полной ненужности (только ASCII) огорчают.

Ну и при подсчёте места под строку не забывать домножать Size = Length(s) * SizeOf(Char)

И это проблема, которая требует ручного решения. Плюс еще при дальнейшем переходе на 64 разряда, придется руками же везде править cast'ы между указателем и 4 байтным целым…
Так и придется делать. Но, во-первых, наш продукт — чисто ASCII, поэтому на пустом месте потерять ОП не очень хорошо. Во-вторых, постоянная конвертация будет туда-сюда, арифметику указателей проверять и т.д.
Я бы посмотрел с другой стороны: учитывая этот фактор, о котором вы говорите, компании будут предлагать что-то интересное соискателям.
Разумеется. Я говорю о том, что «учить платформу», если говорить о Дельфи — это фактор меньшего порядка по сравнению с изучением проекта. Серьезно.
Как вам будет угодно. Вы могли бы просто привести доводы в пользу своей точки зрения и мы бы мило побеседовали как инженер с инженером без эмоций и холиворов. Но надо быть готовым к тому, что в конкретном случае (том продукте, с которым я работаю) они могут быть неактуальны.

Но будьте готовы понести консеквенции, что уже происходит.

В то время, когда принимались решения, проблемы вида «в будущем будет жесткий юникод, без возможности выбора» не существовало.
Вы излишне драматизируете — никто не спорит с тем, что у Дельфи микроскопическая ниша. Спорят с «язык мертв».
Если зайти в практически любую тему про Дельфи, то комментарии хейтеров будут на первом уровне, т.е. это не ответы. И это реально странные комментарии, прочтя которые не понимаешь, зачем человек вообще зашел в этот хаб и комментирует эту статью.
Никакой человек не придя в сложный проект не будет сходу делать что-то серьезное. Он все равно будет учиться по месту.
Строки (именно Delphi строки) никогда не были спорным решением в качестве буфера.

Pascal строки можно временно или навсегда оставить, заменив на Ansi

Это связано со структурами данных, передаваемых и хранимых, так что не так просто.
Вопрос в том, кто этим будет заниматься.

Тот, кто нанимает. Это месяц-полтора затрат.
А если потом эти AnsiString'и надо в какой-нибудь TStringList загнать? Постоянная конвертация туда-сюда. А если с WinAPI работать?
Автоматическое управление и у array of bytes (сейчас TBytes), если что

Я не помню, есть ли у TBytes copy on write.
Использование строк в качестве буферов — более чем нормальное в условиях старого Delphi. Нет никакой технической разницы в той эпохе между набором байтов и набором символов. Тот же буфер в памяти с прямым к нему обращением.
Да и кроме того, учитывая, что код — очень-очень legacy, там и Pascal-строки есть в составе структур и т.п. весёлости.
Вариант отличный учитывая полу-автоматическое управление памятью строк.
Ну вот нам как раз предстоить переносить несколько млн строчные проекты, и переводится сложно. Начиная с того, что значительная часть кода привязана к строкам как буферам с предопределенной арифметикой вида 1 символ=1 байт и заканчивая сторонними библитеками, чисто ASCII строчными. То, что можно использовать псевдо ANSI строку не особо помогает, потому что весь RTL — уникодный, это приведет к постоянным преобразованиям туда сюда, плюс работа с WinAPI тоже на ANSI версии завязана и т.д. А уд сколько работы со строками как буферами…
Большой. Проблема серьезная, в нашем продукте — точно.
… а нам пришлось это писать ручками. Потому что памяти тээмэска жрала как не в себя да висела дай боже. Они наверняка изменились — TMS компоненты — вполне себе хороший пакет.
А он везде нужен? Кмк, это перенос проблем других платформ.
Вы случайно не пытались одновременно 32 и 64 платформы устанавливать?
Зачем? У нас куплены D7 и будет выкупаться 10.2, все.
Скажите, как с приобретением IDAPro обстоят дела?
Они не настолько отстали на сегодняшний день. Ключевое — не настолько.
Просто в сознании многих Дельфи остался на уровне D5-D7, когда они им пользовались, и сравнивают они ту память с другими современными языками. Аналогично люди, которые много лет назад ушли с платформы Windows зачастую склонны выдавать за недостатки Windows как таковой свои воспоминания о версиях W95-98.

Information

Rating
Does not participate
Registered
Activity