<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" >

  <channel>
    <title><![CDATA[Статьи]]></title>
    <link>https://habr.com/ru/users/neocode/publications/articles/</link>
    <description><![CDATA[Хабр: статьи пользователя neocode]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Sat, 25 Apr 2026 11:40:17 GMT</pubDate>
    
    
      <image>
        <link>https://habr.com/ru/</link>
        <url>https://habrastorage.org/webt/ym/el/wk/ymelwk3zy1gawz4nkejl_-ammtc.png</url>
        <title>Хабр</title>
      </image>
    

    
      
        
    
    <item>
      <title><![CDATA[Метаинформация, возможности файловых систем и децентрализованные сети будущего]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/593531/</guid>
      <link>https://habr.com/ru/articles/593531/?utm_campaign=593531&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/c4b/6e2/0d9/c4b6e20d952988bd940a1be2f431f684.png" /><p>Файл и файловая система - фундаментальные сущности, без которых современные компьютеры немыслимы. Мы привыкли к ним настолько, что порой не задумываемся - а могли бы эти сущности быть другими? Достаточно ли они удобны, эффективны, можно ли их улучшить, и если можно - то как? Насколько удобны и развиты средства для работы с различной метаинфорацией? И какое это все имеет отношение к децентрализованному интернету будущего? Об этом и пойдет разговор в данной статье.</p> <a href="https://habr.com/ru/articles/593531/?utm_campaign=593531&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 05 Dec 2021 17:20:02 GMT</pubDate>
      <dc:creator><![CDATA[NeoCode]]></dc:creator>
      <category><![CDATA[Децентрализованные сети]]></category><category><![CDATA[Семантические сети]]></category><category><![CDATA[Хранение данных]]></category><category><![CDATA[Научно-популярное]]></category><category><![CDATA[Будущее здесь]]></category>
      <category><![CDATA[расширенные атрибуты]]></category><category><![CDATA[метаинформация]]></category><category><![CDATA[метаданные]]></category><category><![CDATA[torrents]]></category><category><![CDATA[libgen]]></category><category><![CDATA[децентрализованные сети]]></category><category><![CDATA[p2p-сети]]></category><category><![CDATA[файловый менеджер]]></category><category><![CDATA[файловая система]]></category><category><![CDATA[тегирование]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Язык программирования C∀ (CForAll)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/587428/</guid>
      <link>https://habr.com/ru/articles/587428/?utm_campaign=587428&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/2a4/fda/41d/2a4fda41d91acdfe845ca0d0c2b2139c.jpg" /><p>Мой интерес к дизайну языков программирования приводит меня иногда к интересным, но почти неизвестным в широких кругах проектам. Один из таких проектов - язык C∀ (CForAll), разрабатываемый Университетом Ватерлоо. C∀ является расширением ISO C и обеспечивает обратную совместимость с C. Помимо исправления некоторых недостатков Си (которые можно исправить без нарушения обратной совместимости), в C∀ есть некоторые весьма интересные и оригинальные фичи: некоторые расширения классических управляющих операторов, альтернативный синтаксис объявления квалификаторов, кортежи и множественные операции, оригинальное расширение ссылок, своя реализация полиморфизма, сопрограммы и т.д.</p><p>Данная статья представляет собой краткий конспект официального руководства по языку, собранного из нескольких источников, с некоторыми моими комментариями.</p> <a href="https://habr.com/ru/articles/587428/?utm_campaign=587428&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 04 Nov 2021 20:39:18 GMT</pubDate>
      <dc:creator><![CDATA[NeoCode]]></dc:creator>
      <category><![CDATA[Ненормальное программирование]]></category><category><![CDATA[Программирование]]></category>
      <category><![CDATA[cforall]]></category><category><![CDATA[языки программирования]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Последняя битва за Сингулярность]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/509562/</guid>
      <link>https://habr.com/ru/articles/509562/?utm_campaign=509562&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<div style="text-align:center;"><img src="https://habrastorage.org/webt/d7/fi/-d/d7fi-d8biv4rud_0hf_stkwnk6k.jpeg"></div><br>
Среди футурологов и трансгуманистов про Технологическую Сингулярность много говорят и пишут. Считается, что это такая точка в развитии, когда технологическое развитие становится в принципе неуправляемым и необратимым, что порождает радикальные изменения характера человеческой цивилизации. Обычно ее наступление связывают с появлением технологии сильного искусственного интеллекта, который способен совершенствовать сам себя — и в конечном итоге может войти в «безудержную реакцию» циклов самосовершенствования, создав в конечном счёте суперинтеллект, превосходящий интеллект всего человечества (wiki). <br>
<br>
Считается также, что мы стоим на пороге сингулярности. Что вот-вот, осталось подождать еще пару десятилетий, и она случится. Однако пока никакого сильного ИИ нет. Различные новые технологии появляются, но относительно медленно. Прогнозы футурологов не спешат сбываться, а то и вовсе оказываются несбыточными мечтами. И всё происходящее выглядит так, как будто ничего особенного не случится — ни в ближайшее десятилетие, ни в ближайшее столетие… Неужели наши надежды напрасны? И можем ли мы что-то сделать, чтобы реально приблизить Сингулярность?<br> <a href="https://habr.com/ru/articles/509562/?utm_campaign=509562&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Sat, 04 Jul 2020 14:13:25 GMT</pubDate>
      <dc:creator><![CDATA[NeoCode]]></dc:creator>
      <category><![CDATA[Будущее здесь]]></category><category><![CDATA[Искусственный интеллект]]></category><category><![CDATA[Научно-популярное]]></category>
      <category><![CDATA[технологическая сингулярность]]></category><category><![CDATA[будущее]]></category><category><![CDATA[трансгуманизм]]></category><category><![CDATA[несовершенство человека]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Первое впечатление от концептов]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/495396/</guid>
      <link>https://habr.com/ru/articles/495396/?utm_campaign=495396&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/webt/qd/ja/kc/qdjakcxd4173w_juzv5fx3bf0_o.jpeg"><br>
<br>
Решил разобраться с новой возможностью С++20 — концептами.<br>
<br>
<a href="https://en.wikipedia.org/wiki/Concepts_(C%2B%2B)" rel="nofollow">Концепты </a>(или <a href="https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%86%D0%B8%D1%8F_(C%2B%2B)" rel="nofollow">концепции</a>, как пишет русскоязычная Вики) — очень интересная и полезная фича, которой давно не хватало. <br>
<br>
По сути это типизация для аргументов шаблонов.<br>
<br>
Основная проблема шаблонов до С++20 — в них можно было подставить все что угодно, в том числе то, на что они совершенно не рассчитаны. То есть система шаблонов была совершенно нетипизирована. В результате, при передаче в шаблон неверного параметра возникали невероятно длинные и совершенно нечитаемые сообщения об ошибках. С этим пытались бороться с помощью разных языковых хаков, которые я даже упоминать не хочу (хотя приходилось сталкиваться).<br>
<br>
Концепты призваны исправить это недоразумение. Они добавляют в шаблоны систему типизации, причем весьма мощную. И вот, разбираясь с особенностями этой системы, я стал изучать доступные материалы в интернете.<br>
<br>
Скажу честно, я немножко в шоке:) С++ и без того сложный язык, но тут хотя бы есть оправдание: так получилось. Метапрограммирование на шаблонах именно открыли, а не заложили при проектировании языка. А дальше, при разработке следующих версий языка, были вынуждены подстраиваться под это «открытие», так как в мире было написано очень много кода. Концепты же — принципиально новая возможность. И, как мне кажется, в их реализации уже присутствует некоторая непрозрачность. Возможно, это следствие необходимости учесть огромный объем унаследованных возможностей? Попробуем разобраться… <br> <a href="https://habr.com/ru/articles/495396/?utm_campaign=495396&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Thu, 02 Apr 2020 20:36:53 GMT</pubDate>
      <dc:creator><![CDATA[NeoCode]]></dc:creator>
      <category><![CDATA[C++]]></category><category><![CDATA[Программирование]]></category>
      <category><![CDATA[c++]]></category><category><![CDATA[c++20]]></category><category><![CDATA[концепты]]></category><category><![CDATA[шаблоны c++]]></category><category><![CDATA[метапрограммирование]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Идея децентрализованной социальной сети следующего поколения]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/482912/</guid>
      <link>https://habr.com/ru/articles/482912/?utm_campaign=482912&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/webt/zl/_t/xs/zl_txsgavekyjs9aqtvt7eu8ydi.png"><br>
В данной статье я представляю вам свои размышления на тему истории и перспектив развития интернета, централизованных и децентрализованных сетей и как итог — возможной архитектуры децентрализованной сети следующего поколения.<br>
<br>
<h1>С интернетом что-то не так</h1><br>
Впервые я познакомился с Интернетом в 2000 году. Конечно, это далеко не самое начало — Сеть уже существовала до этого, но то время можно назвать как первый расцвет Интернета. Всемирная паутина — гениальное изобретение Тима Бернерса-Ли, web1.0 в его классической канонической форме. Множество сайтов и страничек, ссылающихся друг на друга гиперссылками. На первый взгляд — простая, как все гениальное, архитектура: <b>децентрализованная и свободная</b>. Хочу — путешествую по сайтам других людей, переходя по гиперссылкам; хочу — создаю свой сайт, на котором публикую то что мне интересно — например свои статьи, фотографии, программы, гиперссылки на интересные для меня сайты. А другие размещают ссылки на меня. <br>
<br>
Казалось бы — идиллическая картина? Но вы уже знаете чем всё это закончилось.<br> <a href="https://habr.com/ru/articles/482912/?utm_campaign=482912&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше →</a>]]></description>
      
      <pubDate>Sun, 05 Jan 2020 15:07:20 GMT</pubDate>
      <dc:creator><![CDATA[NeoCode]]></dc:creator>
      <category><![CDATA[Децентрализованные сети]]></category><category><![CDATA[Социальные сети]]></category>
      <category><![CDATA[p2p-сети]]></category><category><![CDATA[p2p]]></category><category><![CDATA[социальные сети]]></category><category><![CDATA[децентрализованные сети]]></category><category><![CDATA[файлообмен]]></category><category><![CDATA[файлообменные сети]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Язык программирования Zig]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/435872/</guid>
      <link>https://habr.com/ru/articles/435872/?utm_campaign=435872&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<div style="text-align:center;"><img src="https://habrastorage.org/webt/pq/fm/db/pqfmdbfclpie1tmlpudotsmvlbw.jpeg"></div><br>
Первым комментарием к замечательной статье <a href="https://habr.com/post/435300/">Субъективное видение идеального языка программирования</a> оказалась ссылка на <a href="http://ziglang.org/" rel="nofollow noopener noreferrer">язык программирования Zig</a>. Естественно, стало интересно, что же это такое за язык, который претендует на нишу C++, D и Rust. Посмотрел — язык показался симпатичным и в чем-то интересным. Приятный си-подобный синтаксис, оригинальный подход к обработке ошибок, встроенные сопрограммы. Данная статья является кратким обзором <a href="https://ziglang.org/documentation/master/" rel="nofollow noopener noreferrer">официальной документации</a> с вкраплениями собственных мыслей и впечатлений от запуска примеров кода. <br> <a href="https://habr.com/ru/articles/435872/?utm_campaign=435872&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Mon, 14 Jan 2019 14:21:46 GMT</pubDate>
      <dc:creator><![CDATA[NeoCode]]></dc:creator>
      <category><![CDATA[Zig]]></category><category><![CDATA[Компиляторы]]></category><category><![CDATA[Программирование]]></category><category><![CDATA[Системное программирование]]></category>
      <category><![CDATA[zig]]></category><category><![CDATA[языки программирования]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[CodeRainbow: интерактивное изучение и документирование кода]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/425061/</guid>
      <link>https://habr.com/ru/articles/425061/?utm_campaign=425061&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/webt/iv/gr/zm/ivgrzmxl75a8hrtazr4d-y_qczm.jpeg"><br>
<br>
Часто программистам приходится разбираться с чужим незнакомым кодом. Это может быть и изучение интересных проектов с открытым кодом, и необходимость по работе — в случае присоединения к новому проекту, при анализе большого объема legacy кода и т.д. Думаю, каждый из вас сталкивался с этим.<br>
<br>
У меня в процессе такой работы всегда остро ощущалась необходимость некоего инструмента, специально заточенного для облегчения процесса быстрого погружения в большие объемы незнакомого кода. Со временем появлялись все новые интересные задумки в разных областях, и все они требовали изучения больших объемов чужого кода. Децентрализованные сети, криптовалюты, компиляторы, операционные системы — все это большие проекты, требующие изучения значительных объемов кода. В какой-то момент я решил: надо просто взять и сделать этот специальный инструмент. В этой статье я представляю вашему вниманию то, что получилось в результате.<br> <a href="https://habr.com/ru/articles/425061/?utm_campaign=425061&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше →</a>]]></description>
      
      <pubDate>Mon, 01 Oct 2018 18:59:18 GMT</pubDate>
      <dc:creator><![CDATA[NeoCode]]></dc:creator>
      <category><![CDATA[Я пиарюсь]]></category>
      <category><![CDATA[tools]]></category><category><![CDATA[code]]></category><category><![CDATA[source code]]></category><category><![CDATA[programming]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Мечты о Хакерфоне (и Хакерпаде)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/400903/</guid>
      <link>https://habr.com/ru/articles/400903/?utm_campaign=400903&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<div style="text-align:center;"><img src="https://habrastorage.org/files/cbc/6c2/651/cbc6c265158b4ec7b48f317975943f18.jpg" /></div><br/>
Современные смартфоны и планшеты, несмотря на всю их мощь и функциональность, в общем не блещут разнообразием. Одинаковые глянцевые прямоугольники из стекла и пластика, экран во весь корпус, стандартный набор аппаратных возможностей с очень небольшими вариациями… Особенно остро это чувствуется, когда читаешь статьи про старое железо. Где все то разнообразие форм и содержаний, что было когда-то?<br/>
<br/>
Разбирая свои заметки, наткнутся на несколько интересных записей о том, какие необычные фичи в смартфонах и планешах могли бы быть, и решил объединить это все в одну статью. <br/>
<br/>
Этот пятничный пост посвящен моему видению концептов двух устройств для настоящих Гиков и Хакеров — примерно соответствующих современным «смартфону» и «планшету» (или скорее «UMPC»).<br/>
 <a href="https://habr.com/ru/articles/400903/?utm_campaign=400903&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Thu, 19 Jan 2017 21:08:49 GMT</pubDate>
      <dc:creator><![CDATA[NeoCode]]></dc:creator>
      <category><![CDATA[Гаджеты]]></category><category><![CDATA[Смартфоны]]></category><category><![CDATA[Планшеты]]></category>
      <category><![CDATA[хакерфон]]></category><category><![CDATA[хакерпад]]></category><category><![CDATA[девайсы]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Расширения языков C и C++. Часть 1]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/315676/</guid>
      <link>https://habr.com/ru/articles/315676/?utm_campaign=315676&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Данная статья (и я надеюсь что серия статей) посвящена нестандартным расширениям языков C и C++, которые существуют практически в каждом компиляторе.<br/>
<br/>
Языковые расширения — это дополнительные возможности и фичи языка, не входящие в стандарт, но тем ни менее поддерживаемые компиляторами. Исследовать эти расширения очень интересно — в первую очередь потому, что они возникли не на пустом месте; каждое расширение — результат насущной необходимости, возникавшей у большого числа программистов. А мне интересно вдвойне — поскольку мне нравятся языки программирования и я разрабатываю свой, часто оказывается что многие мои идеи реализованы именно в расширениях языка. Стандарты языков C и C++ развиваются крайне медленно, и порой, читая описание расширений, так и хочется воскликнуть «ну это же очевидно! почему этого до сих пор нет в стандарте?».<br/>
<br/>
Языковые расширения — это такая «серая», теневая область, про которую обычно мало пишут и мало знают. Но именно этим она и и интересна!<br/>
<br/>
Предварительно могу сказать, что будут рассмотрены компиляторы общего назначения gcc, msvs, clang, intel, embarcadero, компиляторы для микроконтроллеров iar и keil, и по возможности многие другие компиляторы. Больше всего расширений в GCC, что не удивительно — свободная разработка способствует воплощению разных языковых фич. К тому же, информация по расширениям GCC вся собрана в одном месте, а информацию по остальным компиляторам придется собирать по крупицам. Поэтому начнем с GCC.<br/>
 <a href="https://habr.com/ru/articles/315676/?utm_campaign=315676&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Sun, 20 Nov 2016 12:01:48 GMT</pubDate>
      <dc:creator><![CDATA[NeoCode]]></dc:creator>
      <category><![CDATA[C++]]></category><category><![CDATA[Компиляторы]]></category><category><![CDATA[Программирование]]></category>
      <category><![CDATA[c]]></category><category><![CDATA[c++]]></category><category><![CDATA[gcc]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Кортежи в языках программирования. Часть 2]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/280608/</guid>
      <link>https://habr.com/ru/articles/280608/?utm_campaign=280608&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[В <a href="https://habrahabr.ru/post/276871">предыдущей части</a> я рассмотрел реализации кортежей в различных языках программирования (причем я рассматривал компилируемые не скриптовые языки со статической типизацией и классическим си-подобным синтаксисом, что вызвало удивление у некоторых читателей). В этой части я предлагаю выйти за рамки существующего и заняться по сути дизайном языка программирования. Исходные данные — такие же: компилируемый не скриптовый язык со статической типизацией и си-подобным синтаксисом, включающий императивную парадигму (хотя и не ограничивающийся ею разумеется).<br/>
<br/>
В этой части мы попробуем помечтать и поэкспериментировать — а что вообще можно сделать с кортежами? Как выжать из них максимум возможностей? Как с их помощью сделать язык программирования мощнее и выразительнее, как вызвать восхищение у истинных Хакеров Кода и при этом не слишком запутать обычных программистов? Какие неожиданные возможности появляются в языке, если правильно и грамотно экстраполировать семантику кортежей в разных направлениях, и какие затруднения при этом возникают?<br/>
<br/>
Итак, если вам нравится размышения и холивары на тему дизайна языков программирования, то прошу под кат.<br/>
 <a href="https://habr.com/ru/articles/280608/?utm_campaign=280608&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Thu, 31 Mar 2016 12:43:12 GMT</pubDate>
      <dc:creator><![CDATA[NeoCode]]></dc:creator>
      <category><![CDATA[Ненормальное программирование]]></category><category><![CDATA[Программирование]]></category>
      <category><![CDATA[кортежи]]></category><category><![CDATA[tuples]]></category><category><![CDATA[языки программирования]]></category><category><![CDATA[дизайн языков программирования]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Кортежи в языках программирования. Часть 1]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/276871/</guid>
      <link>https://habr.com/ru/articles/276871/?utm_campaign=276871&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Сейчас во многих языках программирования существует такая конструкция, как кортежи (tuples). Где-то кортежи в той или иной мере встроены в язык, иногда — опять же в той или иной мере — реализуются средствами библиотек. C++, C#, D, Python, Ruby, Go, Rust, Swift (а также Erlang, F#, Groovy, Haskell, Lisp, OCaml и многие другие)…<br/>
Что же такое кортеж? В Википедии дается достаточно точное <a href="https://ru.wikipedia.org/wiki/Кортеж_(информатика)">определение</a>: кортеж — упорядоченный набор фиксированной длины. Определение хоть и точное, но для нас пока бесполезное, и вот почему: задумывается ли большинство программистов, зачем понадобилась эта сущность? В программировании существует множество структур данных, как фиксированной, так и переменной длины; они позволяют хранить различные значения — как однитипные, так и разных типов. Всевозможные массивы, ассоциативные массивы, списки, структуры… зачем еще и кортежи? А в языках со слабой типизацией — и тем более, разница между кортежами и списками/векторами совсем размытая… ну нельзя добавлять в кортеж элементы, ну и что с того? Это может ввести в некоторое заблуждение. Поэтому стоит копнуть глубже и разобраться, зачем же на самом деле нужны кортежи, чем они отличаются от других языковых конструкций, и как сформировать идеальный синтаксис и семантику кортежей в идеальном (или близком к идеальному) языке программирования.<br/>
<br/>
В первой части мы рассмотрим кортежи и кортежеподобные конструкции в распространенных и не очень языках программирования. Во второй части я попытаюсь обобщить и расширить и предложить наиболее универсальный синтаксис и семантику кортежей.<br/>
 <a href="https://habr.com/ru/articles/276871/?utm_campaign=276871&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Tue, 09 Feb 2016 10:54:21 GMT</pubDate>
      <dc:creator><![CDATA[NeoCode]]></dc:creator>
      <category><![CDATA[Программирование]]></category>
      <category><![CDATA[кортежи]]></category><category><![CDATA[tuples]]></category><category><![CDATA[c]]></category><category><![CDATA[c++]]></category><category><![CDATA[d]]></category><category><![CDATA[go]]></category><category><![CDATA[rust]]></category><category><![CDATA[swift]]></category><category><![CDATA[языки программирования]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Метапрограммирование: какое оно есть и каким должно быть]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/258667/</guid>
      <link>https://habr.com/ru/articles/258667/?utm_campaign=258667&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/files/329/822/782/3298227824c54f508cffeeea4b8db1cb.png" align="right"/><br/>
Метапрограммирование — вид программирования, связанный с созданием программ, которые порождают другие программы как результат своей работы (<a href="https://ru.wikipedia.org/wiki/Метапрограммирование">wiki</a>). Это достаточно общий термин, к которому, согласно той же википедии, относится и генерация исходного кода внешними инструментами, и различные препроцессоры, и «плагины к компилятору» — макросы с возможностью модификации синтаксического дерева не посредственно в процессе компиляции, и даже такая экзотическая возможность, как самомодифицирующийся код — модификация программы самой программой непосредственно во время выполнения.<br/>
<br/>
Хотя, конечно, самомодифицирующийся код — это скорее отдельная большая тема, достойная отдельного исследования; здесь под метапрограммированием мы будем понимать процессы, происходящие во время компиляции программы.<br/>
<br/>
Метапрограммирование реализовано в той или иной мере в очень разных языках; если не рассматривать экзотические и близкие к ним языки, то самым известным примером метапрограммирования является С++ с его системой шаблонов. Из «новых» языков можно рассмотреть D и Nim. Одна из самых удачных попыток реализации метапрограммирования — язык Nemerle. Собственно, на примере этой четверки мы и рассмотрим сабж.<br/>
<br/>
Метапрограммирование — интереснейшая тема; в этой статье я попытаюсь разобраться, что же это такое, и каким оно должно быть в идеальном случае.<br/>
 <a href="https://habr.com/ru/articles/258667/?utm_campaign=258667&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Sun, 24 May 2015 20:42:46 GMT</pubDate>
      <dc:creator><![CDATA[NeoCode]]></dc:creator>
      <category><![CDATA[C++]]></category><category><![CDATA[D]]></category><category><![CDATA[Компиляторы]]></category><category><![CDATA[Программирование]]></category>
      <category><![CDATA[метапрограммирование]]></category><category><![CDATA[программирование]]></category><category><![CDATA[c++]]></category><category><![CDATA[d]]></category><category><![CDATA[nemerle]]></category><category><![CDATA[nim]]></category><category><![CDATA[ast]]></category><category><![CDATA[компиляция]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Мысли об идеальном языке программирования]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/257875/</guid>
      <link>https://habr.com/ru/articles/257875/?utm_campaign=257875&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/files/59e/ec1/0dd/59eec10ddaae4ee6ac2d9a95057dc950.png"/><br/>
<br/>
В данной статье я хотел бы поделиться своими мыслями об идеальном языке программирования общего назначения. В первую очередь — о языке, который мог бы заменить С++.<br/>
<br/>
Так случилось, что языки программирования — мое хобби и мой основной интерес в сфере IT. Наверное, любой программист иногда мечтает создать свой собственный — идеальный — язык программирования. Для меня это нечто большее, чем просто мечта, фактически я уже давно собираю всю информацию по различным языкам и проектирую свой собственный язык.<br/>
<br/>
На разных ресурсах я регулярно высказываюсь по вопросам этой тематики. В этой статье я попытался собрать основные мысли воедино. Мы рассмотрим основные недостатки С++, особенности других языков, которые так или иначе можно сравнивать с С++, и — самое интересное — потребности программистов в языковых фичах, на примере библиотеки Boost.<br/>
<br/>
Данная статья не претендует на какую-то техническую полезность (хотя если она будет кому-то полезна, это замечательно). Это статья — приглашение к обсуждению.<br/>
 <a href="https://habr.com/ru/articles/257875/?utm_campaign=257875&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Mon, 11 May 2015 19:38:25 GMT</pubDate>
      <dc:creator><![CDATA[NeoCode]]></dc:creator>
      <category><![CDATA[Программирование]]></category>
      <category><![CDATA[языки программирования]]></category><category><![CDATA[c++]]></category><category><![CDATA[boost]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Обзор языка программирования Rust]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/135712/</guid>
      <link>https://habr.com/ru/articles/135712/?utm_campaign=135712&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<b>Rust</b> — новый экспериментальный язык программирования, разрабатываемый Mozilla. Язык компилируемый и мультипарадигмальный, позиционируется как альтернатива С/С++, что уже само по себе интересно, так как даже претендентов на конкуренцию не так уж и много. Можно вспомнить D Вальтера Брайта или Go от Google. <br/>
В Rust поддерживаются функицональное, параллельное, процедурное и объектно-ориентированное программирование, т.е. почти весь спектр реально используемых в прикладном программировании парадигм. <br/>
<br/>
Я не ставлю целью перевести документацию (к тому же она весьма скудная и постоянно изменяется, т.к. официального релиза языка еще не было), вместо этого хочется осветить наиболее интересные фичи языка. Информация собрана как из официальной документации, так и из крайне немногочисленных упоминаний языка на просторах Интернета.<br/>
<br/>
 <a href="https://habr.com/ru/articles/135712/?utm_campaign=135712&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Wed, 04 Jan 2012 21:19:48 GMT</pubDate>
      <dc:creator><![CDATA[NeoCode]]></dc:creator>
      <category><![CDATA[Программирование]]></category><category><![CDATA[Rust]]></category>
      <category><![CDATA[rust]]></category><category><![CDATA[mozilla]]></category><category><![CDATA[языки программирования]]></category>
    </item>
  

  

  

	
  

  

  

      

      

      

    
  </channel>
</rss>
