Саме із-за кобола і доісторичного мейнфрейма, пошук квитків займає 20 секунд
Є цьому докази?
А то сучасна система на зразок SystemZ вміє ну дуже швидко працювати.
то что мускуль плевать хотел на стандарты, и у него налл равен наллу — его проблемы
Проблема именно в том, что на стандарт плюют 99% DBA, и авторам движков приходится под это подделываться.
Стандартный NULL предназначен, лучше считать, только для внутренних трюков только «чем заполнять при right join». А для ситуаций типа «у этого человека в принципе нет отчества» предназначены другие значения, и для этого надо расширять домен значений.
Но так как всем плевать — то и получается фигня. Вот MySQL для фигнестроителей и выставил упрощённый режим.
Или ты по стандарту делаешь глупости — или ты делаешь «по уму» — но тогда будь бобёр — не говори что ты — «соотвествуешь стандарту»
И я подозреваю, что вы тоже сплошь и рядом используете NULL как затычку для отсутствия значения. Не?
кстати, так чему будет равен null = null, тру или фальш?
А вы перестали пить коньяк по утрам?
Да пожалуйста. Вот например ISO
4.5.2 Comparison and assignment of booleans
All boolean values and SQL truth values are comparable and all are assignable to a site of type boolean. The value True is greater than the value False, and any comparison involving the null value or an Unknown truth value will return an Unknown result. The values True and False may be assigned to any site having a boolean data type; assignment of Unknown, or the null value, is subject to the nullability characteristic of the target.
“and any comparison involving the null value or an Unknown truth value will return an Unknown result” — ключевое.
А вот в 1992 пункт “8.2 <comparison predicate>”, покрывающий все проверки типа X=Y, X>Y и так далее:
a) If XV or YV is the null value, then “X <comp op> Y” is unknown.
(XV, YV — X value, Y value. Язык стандарта очень тяжёлый.)
Если вы хотите придраться к тому, что null и Unknown разные, то я согласен, но MySQL и большинство остальных движков их приравнивает без потери смысла. А вот что не будет в этом случае TRUE — сказано явно и именно это тут существенно.
Вопросы?
> У MySQL нестандартна поведінка під час використання оператора = із NULL. Наприклад, NULL = NULL повертає NULL, а не TRUE, що може призвести до неочікуваних результатів при некоректній обробці значень NULL.
Як раз за стандартом NULL=NULL має давати NULL. Текст стандарту можна знайти і переконатись самому.
Проблема «чи має none дорівнювати undefined» загально відома і використання NULL для обох це типова диверсія з боку майже кожного проектувальника БД.
> Тому при роботі з NULL завжди потрібно використовувати IS NULL або IS NOT NULL для коректного порівняння.
Є таке. І це проблема для будь-якої БД.
> MACADDR — для зберігання MAC-адрес, MACADDR — для зберігання
Я розумію, тут щось переплутане.
8 байтів це мало. В Infiniband треба 20 байтів.
Ви з 2000 порівняйте чи ще раніше. Ось тоді програмістом бути було тотально невигідно.
Не надо повʼязувати це з IT. «На нитінгах» локальна мова може требуватись в будь-якій іншій галузі більше, ніж в IT. Саме IT тут особливе тим, що мінімально має такі вимоги. Один колега сидить уже під 10 років в Берліні і вивчив німецьку дай бог щоб на A2, вона йому потрібна на рівні замовити їжи. На роботі все по роботі — англійська.
Може, десь є роботи на внутрішній ринок, у стилі локальної заміни 1С, але їх замало.
Я розумію початкове питання тільки як глобальну вимогу, універсальну для майже кожного ITшника незалежно од того, де він сидить. На це є зараз десь півтори мови, а для більшости і одна.
Давньохалдейську.
І яка частина IT матеріалів на французькій оригінальна і не перекладається?
Для програміста (а не друкаря) навіть такий довгий (насправді ні) час на перенавчання нічого поганого не дасть. Ти думаєш і читаєш більше, ніж друкуєш, в рази.
Я бачу дещо більшу проблему — в тому, що всі ці розкладки розроблені для оптимізації під англійську. Тобто вони ніколи не наберуть світового визнання.
Але як для власної розваги — може і піти.
Це вже локальні вимоги, а не IT. У такому ж сенсі можна казати, що для праці в Ajax треба знати українську... і що?
Як саме глобальні вимоги я б назвав китайську — просто тому, що багато розробок, для яких або нема документації англійською, або переклад такий, що краще б не перекладали. Але це тільки для тих, хто сам робить залізо.
Є багато тих хто щось робить в IT саме французькою і не перекладає?
Я б повірив ще про німецьку або іспанську, але французька тут якось побоку.
Якщо мова про російсько-заліську+українську+білоруську в комплекті... гарно, але для IT не має власного принципового сенсу. Замало ресурсів.
Хоча можна використовувати той же хабр хоча б в R/O бо гарна концентрація непоганих матеріалів. Тим, кого метод подачи там влаштовує.
Може, і правильно робили. Відхід від CUA починаючи з XP приніс більше бардака, ніж користі.
І змінити клавіатуру на мобільному деввйсі складніше ніж на фізичному
Легше. Просто інший застосунок і встановити його як дефолтний.
По факту доведеться вчити дві
Ви і так знаєте дві — qwerty і йцукен. І якось вводите ж. А я ще памʼятаю, як на всіх доступних компʼютерах була jcuken, а не qwerty. Переходити було... ну, в ≈18 років легко, але помітно.
github.com/kaievns/halmak — ще одна спроба оновити.
Спитаю так: чи виконується правило 10000 годин для 99, 95, 90, 80, 50% спеціалістів?
Бо всі ці anecdotal evidence показують очевидне — що люди бувають зовсім нестандартні, але, якщо правило виконується для більшости, на нього треба таки спиратись.
Ну можно купить кулёк брелков и авторизоваться в разных местах по-разному.
Один знакомый ещё в районе 2000 (когда это было зверски дорого) так ходил с 9(!) мобилками — ему нельзя было делать, чтобы пересеклись номера...
Конечно, надо ещё разные прокси добавлять... но такая проблема и с паролями в полный рост.
Ну если вы и не попытались понять, в каком случае что оценивается — да, всё так.
будь який тернарний оператор можна переписати за допомогою оператора if.
Не в будь-якій мові. Бо проміжні змінні можуть бути дорожче через вимогу зберігання, конструктори-деструктори, та ще й типи треба коректно виводити...
А от з goto ситуація складніше: якщо його немає, то щоб перевести код з його використанням треба дуже попотіти.
Це банально, хоча і некрасиво. Навколо простих блоків будується автомат зі станами.
Решение, что как хранить на каком уровне, это скорее таки к архитектору базы, не? Девелоперы будут уже действовать в соответствии с принятым решением. Какие таблицы вообще есть, какие НФ нарушать для скорости, что режется на отдельные атрибуты, а что нет, что зажато в домены и справочники, а что нет, выбранная коллация, и ещё 100500 тонкостей.
Для данного примера — лучше всего пустая строка. Конечно, тут повезло, что в домене бизнес-значений такого нет, и мы можем применить такое значение под спецроль.
Да вот из-за проблем типа «а если нам нужно отсутствие отчества, мы должны сформировать select с `is null` вместо универсального `=`». Теперь представим себе, что таких полей несколько, и, например, всю эффективность предкомпилированных шаблонных операторов мы уже теряем.
В основном таки «магические».
Ну вот и я не давал ни true ни false :))