Не знаю, чем тебе не нравится python 3. Но, надо сказать, что авторы Tcl поступили хитрее, введя аналогичные по уровню изменения в минорной версии 8.1. В результате народ взял и перешел, хотя где-то до 8.3 на это дело ворчали.
Да вот ровно этим и не нравиться — тотальной юникодизацией. Я предпочитаю иметь возможность не использовать юникод там, где он мне не нужен или мешает.
В ближайшие 100 лет кодировки никуда не денутся, так что выбросьте из головы эти мечты. С моей точки зрения правильным способом программирования на Python3 является использования байтовых строк, и лишь в редких случаях юникода.
Несколько примеров из моей личной практики: — FTP сервер и rsync; имена файлов в koi8-r, cp1251, utf-8; — файлы mp3; теги в них в cp1251, реже в utf-8; — zip-архив или torrent с файлами mp3 и плей-листами; имена файлов будут в локальной кодировке ФС или в utf-8, а плей-листы будут обязательно в cp1251.
Вот когда вымрут такие ретрограды как ты и Толченов, останутся ровно две кодировки- UTF-16 в винде и Джаве, и utf-8 во всем остальном.
Увидев имя файла, в 8-битной кодировке надо немедленно сказать на него convmv.
Тэги в MP3 надо использовать ID3v2, тем более что там и идиотских ограничений на размер нет, а плееры, которые их не умеют, по-моему уже все умерли естественной смертью. Кодировки имен файлов в zip-архиве, это все равно такая задница, что иначе как частотным анализом не разберешься.
Зачем нужна такая хрень как плей-листы, я никогда не понимал. Но это все равно текстовые файлы, и как и любые тексты их нужно конвертировать в utf-8 по факту включения в свой архив.
Кодировки utf-8 несуществует. Это довольно обшырный набор стандартных кодировок и деталей их поддержки плюс пачка нестандартных расшырений для того, что не влезло в стандарт.
И да, я, в отличие от некоторых собеседников, категорически против юникода. Люди, поставившые себе цэль перечислить все используемые человечеством символы -- либо дебилы либо идиоты, а, скорее всего, и то и другое. Пользоваться их поделиями не следует.
Есть еще реальная жизнь... Как в реальной жизни на грабли наступишь, так сразу новый тест появляется, или правится старый... Ну это в идеальной ситуации конечно...
Ошибки могут быть 1. В том, что считается "заранее известым результатом" 2. В том, как именно вызывается функция (особенно если речь идет о языках, где есть глобальный контекст и побочные эффекты) 3. В том как производится сравнение.
1. Это "сторожат" теоретики и психиатры :-) 2. Это "сторожит" уже сам твой код (хотя на 100% такому сторожу доверять нельзя). 3. Это уже оттестировано создателями языка и не моя забота (либо это относится к п. 1)
no subject
Date: 2016-03-23 12:49 pm (UTC)no subject
Date: 2016-03-23 12:51 pm (UTC)no subject
Date: 2016-03-23 12:55 pm (UTC)no subject
Date: 2016-03-23 01:16 pm (UTC)Но, надо сказать, что авторы Tcl поступили хитрее, введя аналогичные по уровню изменения в минорной версии 8.1. В результате народ взял и перешел, хотя где-то до 8.3 на это дело ворчали.
no subject
Date: 2016-03-23 01:18 pm (UTC)no subject
Date: 2016-03-23 01:23 pm (UTC)Кодировки текста, отличные от utf-8 давно пора истребить.
no subject
Date: 2016-03-23 01:41 pm (UTC)Несколько примеров из моей личной практики:
— FTP сервер и rsync; имена файлов в koi8-r, cp1251, utf-8;
— файлы mp3; теги в них в cp1251, реже в utf-8;
— zip-архив или torrent с файлами mp3 и плей-листами; имена файлов будут в локальной кодировке ФС или в utf-8, а плей-листы будут обязательно в cp1251.
no subject
Date: 2016-03-23 02:10 pm (UTC)Увидев имя файла, в 8-битной кодировке надо немедленно сказать на него convmv.
Тэги в MP3 надо использовать ID3v2, тем более что там и идиотских ограничений на размер нет, а плееры, которые их не умеют, по-моему уже все умерли естественной смертью.
Кодировки имен файлов в zip-архиве, это все равно такая задница, что иначе как частотным анализом не разберешься.
Зачем нужна такая хрень как плей-листы, я никогда не понимал. Но это все равно текстовые файлы, и как и любые тексты их нужно конвертировать в utf-8 по факту включения в свой архив.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2016-03-23 04:01 pm (UTC)no subject
Date: 2016-03-23 04:04 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2016-03-23 01:07 pm (UTC)Дети Зевса
Date: 2016-03-23 12:54 pm (UTC)Кто сторожит сторожей?
Date: 2016-03-23 12:52 pm (UTC)Re: Кто сторожит сторожей?
Date: 2016-03-23 01:01 pm (UTC)Re: Кто сторожит сторожей?
Date: 2016-03-23 01:12 pm (UTC)Re: Кто сторожит сторожей?
Date: 2016-03-23 01:25 pm (UTC)Полного решения задача не имеет.
no subject
Date: 2016-03-23 02:14 pm (UTC)Re: Кто сторожит сторожей?
Date: 2016-03-23 03:28 pm (UTC)Re: Кто сторожит сторожей?
Date: 2016-03-23 03:30 pm (UTC)1. В том, что считается "заранее известым результатом"
2. В том, как именно вызывается функция (особенно если речь идет о языках, где есть глобальный контекст и побочные эффекты)
3. В том как производится сравнение.
Re: Кто сторожит сторожей?
Date: 2016-03-23 03:40 pm (UTC)2. Это "сторожит" уже сам твой код (хотя на 100% такому сторожу доверять нельзя).
3. Это уже оттестировано создателями языка и не моя забота (либо это относится к п. 1)
Re: Кто сторожит сторожей?
Date: 2016-03-23 11:45 pm (UTC)http://www.postgresql.org/message-id/flat/9688.1458605021@sss.pgh.pa.us#9688.1458605021@sss.pgh.pa.us
И ваш ответ на вариант 3 - он неудачен явно в таком случае (равно как и вариант ответа на 1).
Re: TDD
Date: 2016-03-23 03:32 pm (UTC)Re: TDD
Date: 2016-03-23 03:43 pm (UTC)Краткий ответ — нет.
(программы, которые пишутся по известным алгоритмам, уже написаны либо не нужны)
no subject
Date: 2016-03-23 02:28 pm (UTC)no subject
Date: 2016-03-23 04:07 pm (UTC)