Pull to refresh
154
0.3
Григорий@bfDeveloper

Программист на C++, D, Brainfuck

Send message
Не поделитесь выводами? Я не смог из этой статьи сделать никаких выводов относительно эволюции мозга.
У видео есть одно «неоспоримое» преимущество — его легче и быстрее записывать чем печатный текст.

Спорное утверждение. Экспромтом может и быстрее, но что-то проработанное сначала надо написать, а потом уже записывать на видео. По крайней мере качественный контент на ютубе явно не экспромт, а хорошо подготовленное выступление. А уж с монтажом и свистелками это ещё дольше.
Мда, а где хоть какие-то доказательства того что называется мифом или его опровержение? Выше уже отметили, что человек может неверно оценивать свою предрасположенность. Кроме того утверждается, что люди называют тот способ, который им «нравится». Но ведь даже при отсутствии разницы в тестах есть разница в мотивации. Мотивация исследуемых неизвестна, а в реальной школе это основная проблема. Дети способны запоминать гораздо больше, чем дают в школах, но «не хотят».
А потом можно будет и нормальные захоронения устроить, как сейчас на Земле. Тем более, что всё короткоживущее распадётся и фонить будет уже не так сильно.
Что на Луне, что на Марсе очень холодно, так что хотя бы с охлаждением нагревающихся отходов проблем не будет.

Совершенно неверно. Там как бы нет атмосферы (у Марса очень разреженная), тепло отводить некуда. Грунт — очень плохой проводник, сверху вакуум, так что греться будет.
При этом я не понимаю проблемы. Отвезите подальше, да складируйте. В ближайшие сотни лет Марс не будет заселён хоть сколько-то плотно, чтобы такие склады представляли угрозу.
Что тут выбрать из букета?

А для этого нужны профессиональные программисты в штате. У совсем больших лабораторий и объединений есть профессиональные программисты. Тот же CERN публикует очень качественные библиотеки. С моей колокольни выбор выглядит так:
Нужно перемолоть кучу данных с максимальной скоростью? — C, C++, D.
Нужно посчитать статистику и работать с табличными данными? — R, Julia.
Нужна символьная арифметика с выводами — Matlab.
Исследуете теорию языков программирования — Haskel.
Не хочется запариваться со всем этим — Python. Если вдруг не хватит производительности зовём суровых сишников, они вынесут нагруженные функции в натив. Многие базовые уже вынесли, поэтому проблемы скорости возникают всё реже и реже.
Выше уже написали про неумение пользоваться плюсовым дебагером и не буду повторяться. Главное делать правильный вывод из этой статьи. Многие комментаторы восприняли тезис «С++ это очень плохо, питон хорошо», а на самом деле выводом должно быть: «Порог вхождения в программирование на питоне намного ниже, поэтому для непрофессионального программиста он лучше, чем С++». С++, как и Delphi, является отличным языком в руках того, кто очень хорошо его знает и умеет пользоваться инструментарием. Плюсы карают тех, кто подходит к ним как дилетант. Питон поощряет дилетантов, но платить за это приходится скоростью и областью применения.
И просто от себя советую автору и всем учёным посмотреть в сторону D. Он быстр, как С++, но гораздо добрее к новичкам. Слышал много положительных отзывов от переехавших на D c питона.
Тогда была проблема найти информацию. Сейчас есть проблема не проще — отфильтровать информацию. Сложно начинать, когда тебе со всех сторон предлагают совершенно разные пути и никто не может объяснить, чем они отличаются. Я начинал программировать на спектруме (и это в 2000 году!) с одной книгой в руках и отлично вас понимаю. Но ещё я учусь программировать сейчас и считаю проблему поиска качественной информации не менее важной. Я находил фактические ошибки в самой рекомендуемой книге по изучению python, я вижу полнейшее безумие советов в каналах по JS и не вижу тенденций к улучшению. Неверные знания хуже их отсутствия. Поэтому наставник нужен как никогда.
Люди, хватит издеваться над человеком. Я тоже считаю позицию Zloy_starik крайне странной, но не вижу в ней причин для гонения и издевательств. Подобными высказываниями вы принижаете себя сильнее, чем его. Каждый имеет право на любую точку зрения и каждый имеет правое её высказывать. У вас есть право с ней не соглашаться, но нет права открыто насмехаться и унижать человека.
Спасибо за статью, пример взаимодействия с asio лучше любой синтетики.
<holywar_mode="on"/>
Сколько уже копий сломано об эти корутины, но мне до сих пор не понятно. В бусте уже были нормальные корутины, что мешало внести в язык что-то похожее на boost::context? С чего вдруг предлагаемая модель обёрток над промисами лучше, чем корутины со стеком? Вот теперь придумывают, как использовать asio, хотя он уже работал с бустовыми корутинами.
<holywar_mode="off"/>
Очень интересно, спасибо за статью. В вашу модель просто просятся автокаталитические процессы (например). Для демонстрации на клеточном автомате достаточно, чтобы жизнь потребляла ресурс и размножалась (это у вас есть) и происходило медленное восстановление ресурса, когда его никто не потребляет. Уже такая система может порождать очень интересные циклы и узоры. С некоторыми параметрами можно получать интересные деревья, кольцевые структуры и много чего ещё. Скорее всего это пригодится для многоклеточной жизни.
ИМХО, именно навигатор приводит к подобному поведению. В предложенной модели маршрут выбирается на основе загрузки всех дорог, а не только того, что может видеть водитель без навигатора. Ещё недавно, когда навигаторов не было, водители не были склонны к изменению маршрута, а ездили каждый день одинаково. Торопыги и таксисты были всегда, но даже они не имели полной картины, а объезжали локально видимые пробки.
Однако, я согласен, что навигаторы могут решать проблему пробок. Сейчас навигаторы предлагаю то самое эгоистическое решение — как лично мне доехать быстрее, но они могут предлагать другой маршрут, чтобы все ехали быстрее. Боюсь только что реальность куда сложнее указанного парадокса, и построить оптимальный алгоритм вообще невозможно.
Само упоминание цифры 14 — уже спойлер. Найти оптимальную стратегию не так сложно, и я думаю, что уважаемый ptyrss её знает. Потому как второе яйцо действительно кидается по одному этажу, не смотря на то, что стратегия первого сложнее. А вот доказать оптимальность и придти именно к 14, имхо, сложнее. Мне давали эту задачку, правда не в гугле, и к оптимуму пришлось придти перебором, хотя конечно же можно проще.
Они после такого будут ещё громче кричать, ведь теперь они видели, что Земля плоская. На видео закругление едва заметно и не противоречит ни идее с слегка выгнутым диском, ни оптическим иллюзиям. Говорить о шарообразности можно при полёте на несколько тысяч километров, где видна значительная часть планеты.
Так в том и дело, что это не tuple, а любая структура. Преобразовать структуру в tuple не так-то просто без «этого домостроя». Можете предложить реализацию шаблона с таким объявлением?
template <typename T>
auto as_tuple(T&& t) -> tuple<Types...>;

Здесь Types… — список типов полей структуры T. Для любого конкретного типа всё тривиально, а обобщённо? В статье описано, как это сделать, а где ещё есть что-то подобное? Это и называется открытием — что-то, что до недавнего времени казалось невозможным, ну или никто подобного не делал.
boost::multiindex вообще мимо. Там тонны метапрограммирования, но к сабжу отношения не имеет.
Открытием я считаю возможность вот этого:
flat_get<FieldIndex>(value);

Да, это не runtime, это compile time reflection. От передаваемого value не требуется иметь специальные методы или перегружать специальные функции, или быть обработанным препроцессором. В то время как nlohmann json требует специальных методов.
Приведённый вами пример с json j2 = {...} создаёт объект типа json, а не типизированную структуру. Настоящая сериализация на основе рефлексии это что-то подобное:
MyCustomStruct obj = from_json<MyCustomStruct>("{member1:12, member2:[0.0, 3.14]}")

Такое без препроцессора на C++ не сделать, но в статье показан приём, делающий нас на шаг ближе к желаемому. Имея итерацию по полям мы можем, потребовав каким-либо образом указать имена полей, решить задачу полностью.
Заглянул, не нашёл ничего, напоминающего рефлексию или автоматизацию. Как на основе обсуждаемой статьи сделать автоматическую сериализацию/десерализацию json я догадываюсь (хотя имена всё равно не вытащить, придётся делать ключами индексы и битовые представления типов). А в предложенном вами nlohmann json предлагается руками написать to_json и from_json.
А рефлексия это не обязательно строки. Это в первую очередь возможность, не глядя на типы, вытаскивать из объектов свойства. Да, в данном случае вытаскивать можно только по индексу. Но это уже даёт как минимум возможность итерироваться по полям произвольных структур, что уже достижение для C++.

Тема очень крутая, за текст +100500! Не так часто происходят такие открытия.
Придирка к языку статьи
в русском языке используется «строка» кода, а не линия.
Всё, что было рекомендовано до этого предложения. Возможно даже больше, все эксперименты не помню. Некоторое время назад я задался вопросом «в чём я верю науке, а что могу проверить?». Шарообразность земли была первым пунктом проверок. А потом ньютоновская механика. Дальше идти абсолютно фундаментально очень сложно, поэтому в биологии и антропогенезе, например, приходится гораздо больше доверять другим. Зато это даёт понимание откуда берётся необходимость научных рецензируемых журналов — абсолютно всё через себя пропустить невозможно.

Information

Rating
2,537-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity