Задать вопрос
  • Использование English версий программ - улучшит ли знание языка?

    @Mercury13
    Программист на «си с крестами» и не только
    Да, я люблю английский GUI за то, что он легко схватывается. Но GUI как таковой — этого мало, т.к. штука специфичная. Лучше английские игры. Кстати, это в своё время меня и подтолкнуло к изучению языка.

    Впрочем, если по служебным обязанностям надо бегло читать техлитературу — почему бы не читать техлитературу?
    Ответ написан
    Комментировать
  • Разобраться со слабыми сторонами C++?

    @Mercury13
    Программист на «си с крестами» и не только
    Что я могу сказать про проблемы C++?
    1. Слишком слабая типизация. Например, int x = 0.0;
    2. Система хедерных файлов крайне медленна, «предкомпилированные хедеры» и extern template — полумеры.
    3. Запутано подключение чужого откомпилированного кода (DLL, к примеру). Мало написать хедер, надо ещё откомпилировать lib — в общем, интересного мало.
    4. Библиотека STL крайне жирна. Хотя и libc тоже «хороша» — минимальная программа на Паскале занимала несколько килобайт, в зависимости от компилятора, на Си — приближается к сотне килобайт. Я не говорю про Linux/MSVC, где libc динамически подключаемая.
    5. Строковый литерал на C++ — это та же нуль-терминированная строка. Когда эту строку приходится оборачивать в какой-нибудь std::string, уже при выполнении вычисляется её длина. Зачем? Почему бы не вкомпилировать её в exe'шник?
    6. Нет ключевых слов override/reintroduce. При изменении сигнатуры виртуального метода приходится вспоминать, где он переопределялся.
    7. Нет виртуальных конструкторов. «Фабрика» — полумера.
    8. Коряво реализовано право доступа «читай кто угодно, пишу только я».
    9. Явное определение методов как inline или не-inline в сочетании с шаблонами приводит к странным эффектам. Когда расшаблонивание приводит к сложному коду, inline вреден (сжирает кэш процессора), когда к простенькой операции с указателем — наоборот, нужен. В общем, это давно уже должно стать парафией оптимизатора.
    10. В разного рода callback'ах замыкание приходится реализовывать собственными силами. Что-то типа: typedef void (*ProcDoSomething)(int aParam, void* aClosure). То же самое в Delphi: type ProcDoSomething = procedure(int aParam) of object;
    11. Если вдруг случайно два разных модуля реализуют одно и то же, но один препроцессором, а второй — синтаксисом C++, будет ОЧЕНЬ много геморроя с поиском ошибки.
    12. В обычном цикле for счётчик упоминается трижды. В общем, место очень ошибкоопасное. Для самых простых циклов у меня вообще есть макрос FOR_S (i, 0, n); суффикс S означает size_t.
    13. Когда из-за рефакторинга «внутренней кухни» объекта меняется способ хранения ссылки, меняется и код, который этой ссылкой пользуется. Например: object.buddy.field, object->buddy.field, object.buddy().field — в зависимости от того, buddy реализовано как Buddy& buddy, Buddy* buddy или Buddy buddy().

    Пока, засиделся. Мне бежать.
    Ответ написан
    4 комментария
  • Какие теги кошернее: em или i, strong или b?

    @Mercury13
    Программист на «си с крестами» и не только
    В html5 примерно одинаково. Тэги и переопределили так, что — малозаметное выделение, — сильное выделение.
    Ответ написан
    1 комментарий
  • Какие есть хорошие клавиатуры?

    @Mercury13
    Программист на «си с крестами» и не только
    Microsoft Comfort Curve 2000 (USB).

    У меня два года. Клавиатура очень хорошая.
    + Нравится отклик кнопок. Нечто среднее между классической и ноутбучной.
    + Компромисс, пригодный под всё: и под зрячую печать, и под слепую, и под игры.
    + Хорошо моется без разборки, обычной стиральной щёткой.
    + Кнопка «Калькулятор» около цифрового блока.
    + Продуманные светодиоды Num/Caps/Scroll: хорошо видны и не бросаются в глаза.
    + Нет спорных нововведений наподобие маленького Shift'а и большого Delete. До «классики» не хватает только большого Enter'а — мне не критично.
    — В стеснённом пространстве лучше взять другую.
    — За два года с наиболее используемых кнопок стёрся шершавый рельеф. Маркировка, закрепленная слоем лака, держится отлично.
    — Не самый лучший пробел.
    — Кнопки Ctrl, которые я приспособил для переключения раскладок, маловаты.
    Ответ написан
  • Серийный номер Windows XP на ноуте и наклейка не совпадают

    @Mercury13
    Программист на «си с крестами» и не только
    Другими словами, если я на ноут с лицензионной XP Pro ставлю подходящую пиратскую сборку, всё будет в порядке?
    Ответ написан
    4 комментария