Обновить
63
1.8

Programmer

Отправить сообщение
Это не было бы магией, хотя не было бы и полным решением проблемы («счетчики времени компиляции» — лишь крошечная часть того, что можно сделать, получив доступ к императивному метапрограммингу).
Я вот в предыдущем посте по С++ высказался насчет того, как я вижу идеальный вариант метапрограммирования — так заминусовали. А эта дикая смесь constexpr, шаблонов и friend объявлений уже есть, и ей будут пользоваться, получая в очередной раз километровые сообщения об ошибках компиляции. И трогать придется, потому что реальные задачи требуют хоть каких-то решений, и за неимением других придется пользоваться этим.
Боже мой, похоже что Филипп Розеен это еще один Александреску :)
Самое страшное, что оно сейчас расползется, все начнут это использовать, потом в Бусте что нибудь появится, и потом это станет нормой.
Надо было за эту минуту успеть продать подороже:)
Напомнило одну байку. Студенты, чтобы не сидеть на лекции, оставляли вместо себя включенные диктофоны и уходили куда-то по своим делам. Со временем студентов в аудитории становилось все меньше, а диктофонов — все больше. И вот однажды, видя такое дело, преподаватель пришел с магнитофоном, включил его на воспроизведение лекции и сам тоже ушел по делам:)
Какова вероятность соударения в космосе двух достаточно маленьких по космическим меркам объектов, учитывая что и собственное гравитационное поле обоих объектов слишком слабое чтобы притянуть к себе что-то?
Добавлю: к программам и метапрограммам предъявляются совершенно разные требования. В отличие от программы, метапрограмма может не быть супер-быстрой, но она обязана быть максимально безопасной. Вы же не хотите, чтобы скачанные с гитхаба исходники при компиляции (всего лишь при компиляции!) отформатировали ваш жесткий диск или отправили ваши пароли куда-нибудь в интернет? Метапрограмма должна быть заточена для работы в специальном окружении — внутри компилятора (т.к. по сути это плагин к компилятору). Там должны быть удобные средства работы со специальными типами данных (такими как узлы AST, идентификаторы и т.д.). Скриптовые языки на самом деле предназначены именно для этого — для работы в специальных изолированных окружениях (будь то движок игры, CAD-система, браузер или в нашем случае компилятор). А синтаксическое дерево имеет некоторое сходство с иерархической структурой HTML DOM, так что в случае с js есть на что ориентироваться. Хотя конечно можно взять и другой язык — Lua, Python и т.д.
С указателями и прочими «небезопасными» вещами? Ну-ну:) Если падает программа, ее можно хотя-бы в отладчике загрузить и посмотреть что и где падает. А если упадет компилятор, как искать ошибку будете? А он упадет, не сомневайтесь; компиляторы и на существующих шаблонах иногда падают.
Метапрограммирование совершенно не должно быть на том же языке, что и нормальное программирование, т.к. у этих видов программирования совершенно разные задачи и совершенно разное окружение: у программ — системные вызовы ОС и внешние библиотеки, а нередко и доступ к оборудованию; у метапрограмм — API компилятора и AST компилируемой программы. Хотя конечно это возможно и на одном языке, но с очень серьезными ограничениями.
Ну да, именно это я и имею в виду. Синтаксические (а не лексические как в плюсах) макросы, доступ к AST. В качестве языка метапрограммирования можно использовать любой достаточно распространенный скриптовый язык, например javascript.
Не прошло и 35 лет:)
Но лучше поздно чем никогда. Наконец-то этот ад под названием include станет постепенно исчезать.
Конечно еще придется подождать пока основные библиотеки (boost, qt и т.п.) перейдут на модули. Но думаю как только msvc, gcc и clang поддержат — так сразу и перейдут.
Еще бы рефлексию нормальную и метапрограммирование человеческое, а не на шаблонах.
Интересно, для каких нибудь других, по возможности «хакерских» целей (не связанных с рыбалкой) можно использовать этот девайс?
А мне понравилось «I am a Pig!»
А что например мешает открыть общие средства разработки (ту же VCL) под какой-нибудь BSD лицензией? Наверняка нашлись бы желающие портировать под Linux и OSX (хотя под OSX у них вроде что-то есть… но я давно уже не отслеживаю: ).
Среду разработки было бы тоже очень неплохо, по старой памяти среда-то была неплохая. Тем более что они в процессе перехода на открытый Clang, вот бы и Дельфи перевели на LLVM заодно. Хотя может и старый компилятор кого-нибудь заинтересовал бы, чем больше компиляторов тем лучше.

Оставили бы платными специальные вещи типа работы с коммерческими СУБД, ну и корпоративную поддержку. Сейчас, когда есть Qt, Java, C# и все это фактически бесплатно, требовать с разработчиков такие суммы денег странно:)
А я надеюсь что будет и у них какое-то движение в сторону open-source. Все-же корпорация+сообщество лучше чем просто корпорация.
Спасибо! Грамматика это именно то что нужно.
Я пока в основном ограничивался заучиванием слов, потому ушел на Anki, чтобы можно сортировать слова в рандомном порядке (для чего написал простейшую утилиту). Теперь думаю попользоваться сервисом LinguaLeo опять.
1. Интересное наблюдение. Сообщение с Аресибо хотя-бы как-то закодировано, чтобы его можно было хотя-бы гипотетически раскодировать внеземным цивилизациям. А «Мир», «Ленин», «СССР» — это азбука Морзе, которая сама по себе чистая условность, да и сами слова послания никакого смысла для внеземной цивилизации не несут.
2. Интересно где в сети бывает Сноуден:) Реально ли с ним пообщаться где-нибудь в даркнете…
Часы-клавиатура очень милые, так и хочется понажимать клавиши… правда время определять сложновато.
Часы на nixie-лампах тоже ничего. Кстати, в эпоху умных часов можно просто скачать соответствующий скин и радоваться:) Зеленые светящиеся цифры где-то в черной глубине…
Думаю, диктуют так, чтобы было понятно тому, кому диктуют. И какой бы там ни был супер-пупер специалист, если на другом конце провода какая-нибудь тетенька или бабушка, будет и «U ванночкой» и прочее, а вовсе не правильные названия английских букв и тем более алфавит ИКАО:)
Интересно, а ученые специально выбирают темы исследований с расчетом на Шнобелевку, или оно само так получается?
Купил бы, если это будет действительно серьезная книга. С подробнейшим изложением таких вопросов, как техники работы с памятью, все виды умных указателей, всякие «dynamically sized types» и «lifetime specifiers», метапрограммирование и макросы в rust, и т.д. В том числе с описанием алгоритмов работы компилятора в некоторых случаях.
Но ведь не будет… будет обычное введение в язык, которое можно получить и из официальной документации.
Чисто визуально у цифр Сапера центральный пиксель везде есть. Хотя конечно можно и несколько пикселей проверять, цвет все равно уникален.

Информация

В рейтинге
1 515-й
Зарегистрирован
Активность