The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Доступен язык программирования Rust 1.16

19.03.2017 09:40

Подготовлен релиз языка программирования Rust 1.16, развиваемого проектом Mozilla, обеспечивающего автоматическое управление памятью и предоставляющего средства для высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime. Параллельно с Rust совместно с компанией Samsung развивается экспериментальный браузерный движок Servo, написанный на языке Rust и отличающийся поддержкой многопоточного рендеринга web-страниц и распараллеливанием операций с DOM (Document Object Model). На Rust также разрабатывается операционная система Redox, использующая концепцию экзоядра и продвигающая принцип "все есть URL".

В подготовке нового выпуска приняли участие 137 разработчиков. Основные новшества:

  • В пакетном менеджере Cargo реализована команда "cargo check", при указании которой компилятором выполняются все совершаемые при сборке проверки кода, но пропускаются достаточно ресурсоёмкие стадии, связанные с генерацией исполняемых файлов. Для некоторых проектов "cargo check" может выполняться в несколько раз быстрее обычной сборки, что позволяет значительно сэкономить время разработчика при выполнении тестовых пересборок, обычно используемые в процессе разработки чтобы убедиться, что добавленный код компилируется;
  • В команды "cargo build" и "cargo doc" добавлен флаг "--all" для сборки и документирования всех исполняемых контейнеров (crate) одной командой. По аналогии с rustc в cargo также добавлены флаги "--version" и "--verbose";
  • В cargo и репозиторий crates.io добавлена возможность использования не только заданных в произвольной форме ключевых слов, но и предопределённых фиксированных категорий;
  • Для обеспечения работы "cargo check" в компилятор rustc добавлена поддержка нового типа файлов ".rmeta", в которых сохраняются только метаданные об исполняемых контейнерах (crate), необходимые для проверки типов и сопутствующей сборке информации о зависимостях. В будущем файлы ".rmeta" планируется задействовать в сборочном сервере Rust Language Server и возможно в некоторых других утилитах;
  • Удалена диагностическая подсказка "consider using an explicit lifetime parameter", выводимая при проблемах с lifetime-аннотациями, которая только запутывала новичков, в некоторых ситуациях давая ложный совет, не приводящий к устранению проблемы;
  • Диагностические подсказки об опечатках в именах теперь не ограничены именами функций, локальными переменными и полями в структурах, и также применяются для имён импортируемых модулей, crate и inline-блоков;
  • В разряд стабильных переведена новая порция функций и методов. В том числе стабилизированы VecDeque::truncate, VecDeque::resize, String::insert_str, Duration::checked_*, str::replacen, str::repeat, SocketAddr::is_ipv4/6, IpAddr::is_ipv4/6, Vec::dedup_by*, File::set_permissions, String::split_off и т.д.
  • По аналогии с "println!" добавлена новая форма "writeln!" без указания аргументов, выводящая перевод строки;
  • Все структуры стандартной библиотеки поддерживают трейт fmt::Debug, то есть могут быть выведены на печать при помощи `println("{:?}", strct)`.

Напомним, что язык Rust сфокусирован на безопасной работе с памятью и обеспечении высокого параллелизма выполнения заданий. При этом Rust обходится без использования сборщика мусора или runtime, что делает возможным создания на Rust библиотек, которые могут выступать в роли прозрачной замены библиотекам для языка Си. Для распространения библиотек на языке Rust, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo, позволяющий получить нужные для программы библиотеки в один клик. Для размещения библиотек введён в строй репозиторий crates.io.

По структуре язык Rust напоминает C++, но существенно отличается в некоторых деталях реализации синтаксиса и семантики. Автоматическое управление памятью избавляет разработчика от манипулирования указателями и защищает от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Rust поддерживает смесь императивных, процедурных и объектно-ориентированных методов с такими парадигмами, как функциональное программирование, обобщённое программирование и метапрограммирование, в статических и динамических стилях.

  1. Главная ссылка к новости (https://blog.rust-lang.org/201...)
  2. OpenNews: Доступен язык программирования Rust 1.15
  3. OpenNews: Рассматривается возможность перевода NTPsec на язык Rust или Go
  4. OpenNews: Представлена операционная система Redox, написанная на языке Rust (
  5. OpenNews: Facebook работает над реализацией сервера Mercurial на языке Rust
  6. OpenNews: В Firefox 48 начнётся интеграция компонентов на языке Rust
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/46221-rust
Ключевые слова: rust
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (209) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, Аноним (-), 10:23, 19/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    Чем он лучше С++?
     
     
  • 2.9, A.Stahl (ok), 10:50, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –7 +/
    Да ничем. Просто прикрутили автоматическое управление памятью для тех, для кого это проблема.
     
     
  • 3.22, A (?), 11:53, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –7 +/
    >>при этом обходясь без использования сборщика мусора и runtime

    заметку не читал но осуждаю.

     
  • 3.28, Вы забыли заполнить поле (?), 12:09, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –8 +/
    Откровения о языках программирования! Только на opennet!
     
  • 2.10, Аноним (-), 10:52, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    За счет встроенных возможностей статического анализа позволяет применять оптимизации работы с памятью, которые в с++ не возможны или требуют очень сложного анализа. И вне секций unsafe обеспечивает безопасность.
     
     
  • 3.78, Вареник (?), 16:42, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >> За счет встроенных возможностей статического анализа

    - У кого-то проблема запустить статистический анализатор в другом ЯП?
    Значит проблема не в коде....

     
     
  • 4.79, Вареник (?), 16:43, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > статический анализатор

    сорри

     
     
  • 5.90, Аноним (-), 17:30, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Речь не о статических анализаторах ошибок и уязвимостей в коде. Речь об анализе кода компилятором. В С++ нет встроенного динамического массива. Массивы работают через указатели. Указатели же не несут данных о памяти, на которую указывают. Компилятор в ряде случаев не может определить перекрываются ли копируемые диапазоны и применить соответствующие оптимизации. В Rust данная ситуация исключена.
     
     
  • 6.177, Вареник (?), 15:05, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > В С++ нет встроенного динамического массива. Массивы работают через указатели.

    - Поэтому я и спокоен за С++, когда вижу какие глупости пишут его критики, расхваливая сырые поделки на замену :)

    То анализатор не знают как запустить, то массивы в современном С++ хорошего стиля - "через указатели", которые "перекрываются"...

     
  • 4.116, ferux (ok), 21:18, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Дело в том, что возможности и сложность реализации статического анализатора сильно зависит от языка.

    Для C++ сколько анализаторов не писали, пока не могут гаранитровать безопасность данных, потому что с одной стороны в языке богатый синтаксис (всё не проверишь), а с другой стороны мало ограничений на корректную программу.
    В Rust же благодаря налагаемым ограничениям на корректную программу, безопасность данных гарантировать удалось.

     
  • 2.71, Аноним (-), 15:44, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Чем он лучше С++?

    На бенче-игрищах наконец-то обогнал плюсы и идет теперь сразу после сишечки:
    http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=rust&lang2=gpp

     
     
  • 3.179, 123 (??), 15:10, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ХЗ, может это просто LLVM лучше оптимизирует на этих задачах.
     

  • 1.4, Аноним (-), 10:24, 19/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –14 +/
    Но зачем, если есть си? Тот же вопрос относится и к любому другому языку, кстати. А теперь, хейтеры, внимание. Даю команду атаковать ненавидимый вами си и лично меня.
     
     
  • 2.5, Аноним (-), 10:38, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +6 +/
    В си очень просто отстрелить себе ногу, а раст это шотган с предохранителем.
     
  • 2.7, Аноним (-), 10:44, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >Напомним, что язык Rust сфокусирован на безопасной работе с памятью и обеспечении высокого параллелизма выполнения заданий.
     
     
  • 3.132, Аноним (-), 01:08, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ИЧСХ, про скорость уже не говорится. :-)
     
     
  • 4.135, Аноним (-), 01:55, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > ИЧСХ, про скорость уже не говорится. :-)

    о рили?
    http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=rust&lang2=gpp
    http://benchmarksgame.alioth.debian.org/u64q/which-programs-are-fastest-first
    Сразу после сишечки и перед плюсиками.
    Учитывая, что используется llvm и тот же clang так и не догнал gcc, вполне неплохой результат.


     
     
  • 5.137, Аноним (-), 02:40, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Синтетические бенчмарки сосут. Чтобы понять с какой скоростью оно реально работает и сколько при этом жрёт - запусти демку "нового" FF или распиаренный redox. Гарантированно получишь разрыв шаблона.
     
     
  • 6.142, Аноним (-), 04:30, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Синтетические бенчмарки сосут.
    > Чтобы понять с какой скоростью оно реально работает и сколько при этом жрёт - запусти демку "нового" FF

    И с чем ты собирался его сравнивать?
    > или распиаренный redox.

    По сравнению с чем он "сосeт", умник? С линухом? Ты не в курсе, что такое микроядро или Proof of Concept, причем реализованый считай что "в одно рыло"?

     
     
  • 7.144, Аноним (-), 05:31, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • –4 +/
    По сравнению со "старым", негодным FF на c++, который ужас-ужас.

    > Ты не в курсе, что такое микроядро или Proof of Concept

    Твои маняманёвры очень забавны. Впрочем так обычно и бывает, когда растофанатика приземляют на грешную землю.

     
     
  • 8.146, Аноним (-), 06:26, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Верни машину времени на место Т е ты даже с мат частью перед вбросом не ознако... текст свёрнут, показать
     
     
  • 9.147, Аноним (-), 07:32, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Да не верещи ты так, уши закладывает На вот тебе, просвещайся https www open... текст свёрнут, показать
     
     
  • 10.174, Аноним (-), 14:51, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    О, увидел знакомое слово и опять пукан переклинило Дорогой ыкспердус, движок ог... большой текст свёрнут, показать
     
  • 8.149, Очередной аноним (?), 10:52, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Ты просто жирный тролль Про переключения контекста первый раз слышим Ну тогда ... текст свёрнут, показать
     
     
  • 9.160, Аноним (-), 12:40, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    В курсе, в курсе Только вот валить всё на микроядро тут не выйдет, в посте выше... текст свёрнут, показать
     
     
  • 10.178, Аноним (-), 15:08, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Дык корни явлений одинаковые поиски серебряной пули и обязательно чтобы не как ... текст свёрнут, показать
     
  • 2.12, Аноним (-), 11:00, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Кому нужна свобода - Си. Кто готов к дополнительным правилам и ограничениям, обеспечивающим безопасность и увеличение скорость за счет большего количества возможных оптимизаций компилятором - Rust.
     
     
  • 3.130, O01eg (?), 00:06, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Можно и в Rust'e с unsafe писать.
     
     
  • 4.133, Аноним (-), 01:08, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Только с ним и получается.
     
     
  • 5.136, Аноним (-), 01:57, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Только с ним и получается.

    Дай угадаю - ты из тех, кто и на плюсах будет писать в сишном стиле, а потом резать правду-матку про негодность «надстройки над Си» на форумах?

     
     
  • 6.139, Аноним (-), 02:42, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сам придумал, сам опроверг. Возьми с полки пирожок.
     
  • 3.138, Аноним (-), 02:41, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    "Тот кто жертвует свободой ради «безопасности» в итоге не получает ни того ни другого" © :-)
     
     
  • 4.148, Аноним (-), 09:20, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    К данной ситуации это не относится
     
     
  • 5.153, Аноним (-), 12:01, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Еще как относится.
     
     
  • 6.175, Аноним (-), 14:58, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Еще как относится.

    Что, тоже хотят заставить платить налог на защиту?


     
     
  • 7.182, Аноним (-), 15:21, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Для деревянных поясняю, любой нетривиальный софт на русте будет содержать преизрядное количество unsafe'ов, а bdsm с компилятором при этом никуда не денется.
    Т.е. и свободу отняли и безопасности не завезли.
     
     
  • 8.185, Аноним (-), 15:52, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Специально для одаренных поясняю цитаты из контекста вырывают только чудаки Да... текст свёрнут, показать
     
  • 8.198, ram_scan (?), 18:58, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Т е и свободу отняли и безопасности не завезли А зачем выеживаться Скользкие... большой текст свёрнут, показать
     
  • 4.188, анонимус вульгарис (?), 16:49, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > "Тот кто жертвует свободой ради «безопасности» в итоге не получает ни того ни другого" ©

    Обратное тоже верно. ©

     

     ....большая нить свёрнута, показать (26)

  • 1.6, Аноним (-), 10:40, 19/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Подскажите, кто в теме. Вот безопасное управление памятью я ещё представляю без gc и runtime. Concurrency я ещё представляю без рантайма, но как без него может работать параллельность (многопоточность) кода?
     
     
  • 2.8, Аноним (-), 10:46, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А в чем видится проблема?
     
     
  • 3.11, angra (ok), 10:56, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В невозможности без рантайма организовать green threads. То бишь придется ограничится потоками и процессами ОС. Хотя это как раз к concurrency, а не к распараллеливанию.
     
     
  • 4.14, Аноним (-), 11:29, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    вы неправильно понимаете что имеют ввиду под runtime в новости. Имеется в виду что это базовая возможность языка.
     
     
  • 5.17, angra (ok), 11:37, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    А может стоит пользоваться общепринятым значением термина, а не изобретать своё?
     
     
  • 6.58, Аноним (-), 13:19, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это вопрос к автору новости. Либо читайте оригинал.
     
  • 4.16, Аноним (-), 11:37, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да, именно в этом.
    Из новости в новость пишется о высоком распараллеливании без рантайма. Как это работает?  
    Напомню, что concurrency совсем не параллельность. А то, что разные горутины могут выполнятся одновременно - это заслуга операционной системы.
     
     
  • 5.20, angra (ok), 11:46, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > А то, что разные горутины могут выполнятся одновременно - это заслуга операционной системы.

    Ну тогда уже это заслуга не ОС, а наличия нескольких процессоров и/или нескольких полноценных(не hyperthreading) ядер в одном процессоре.


     
  • 5.36, freehck (ok), 12:33, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >>>> Concurrency я ещё представляю без рантайма
    >>> А в чем видится проблема?
    >> В невозможности без рантайма организовать green threads.
    > Напомню, что concurrency совсем не параллельность.

    Ребята, я вас не понимаю. Green threads - это как раз реализация concurrency и есть. Как вы его представляете без рантайма? Обязательно должен быть менеджер зелёных тредов в процессе.

     
     
  • 6.38, angra (ok), 12:35, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Я как бы об этом и сказал.
     
     
  • 7.51, freehck (ok), 13:01, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Я как бы об этом и сказал.

    Да я адресовл это вообще-то к анониму #6 и #16

     
  • 6.62, Аноним (-), 14:05, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я не использовал термином green threads т к не знаю его, я подумал, что товарищ... большой текст свёрнут, показать
     
     
  • 7.65, Аноним (-), 14:25, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Давайте тогда уж использовать полностью русские термины.
    concurency  - конкурентность, когда поток(нить) один и задачи конкурируют между собой за доступ к нему. Всегда должен быть планировщик который будет разруливать кто сейчас работает.
    Multithreading - паралельность, когда много потоков, один поток одна задача. Планировщик встроен в ОС.

    >> то, о чем пишется в каждой новости.

    на заборе тоже пишут, надеюсь мысль ясна.

     
     
  • 8.166, Аноним (-), 13:11, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    И что из этого есть в Расте ... текст свёрнут, показать
     
  • 7.76, angra (ok), 16:22, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Параллелизм это физическое одновременное исполнение кода на разных процессорах и... большой текст свёрнут, показать
     
     
  • 8.124, freehck (ok), 21:59, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Согласен, вот только хочу уточнить, что не обязательно компилятором Зелёные тре... текст свёрнут, показать
     
  • 4.54, freehck (ok), 13:04, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > green threads

    Кстати, green threads - это, насколько мне известно, явовский термин. Не подскажете, как называют зелёные треды в других языках программирования? Есть общее слово?

     
     
  • 5.61, Аноним (-), 13:38, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    это просто название абстракции. green threads, coroutines, fibers, goroutines. Суть одна это event loop.
     
     
  • 6.77, angra (ok), 16:25, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Под event loop обычно имеется ввиду совсем другая техника.


     
     
  • 7.93, Аноним (-), 17:39, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот давайте процитирую из главной gevent.
    "gevent is a coroutine -based Python networking library that uses greenlet to provide a high-level synchronous API on top of the libev event loop."
     
     
  • 8.97, angra (ok), 17:46, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И что То, что какая-то либа в питоне одно маскирует под другое, как то меняет, ... текст свёрнут, показать
     
     
  • 9.99, Аноним (-), 18:10, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Ну и отлично Опять в интернете кто то неправ ... текст свёрнут, показать
     
  • 5.170, Аноним (-), 13:48, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Нет Термин как ссылка на реализацию означает как-бы нити без поддержки или ... большой текст свёрнут, показать
     
  • 4.131, А. Н. ОНим (?), 00:39, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > В невозможности без рантайма организовать green threads. То бишь придется ограничится потоками
    > и процессами ОС. Хотя это как раз к concurrency, а не
    > к распараллеливанию.

    А кто сказал что оно green threads делает?

     
  • 4.216, Некулхацкер (?), 19:02, 23/03/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Грин или не грин, по-моему, не важно совсем. Псевдо-потоки нужны для тех сред, которым нужно минимально с ОС взаимодействовать (той же Яве). Вот просто по концепции. Это их "фича". А коль такой задачи не стоит, то просто компилятор может некую предложенную на уровне грамматики языка конструкцию переделать в фактическую конструкцию целевой среды исполнения (где-то процессов ОС налепить, где-то потоков в процессе ОС). Вроде так.
     
  • 2.64, ferux (ok), 14:19, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Действительно, как отмечали выше, runtime в Rust есть, но он легковесный и опциональный (ОС же пишут на Rust).

    Что касается многопоточности и конкурентного доступа к данным - то тут действительно нужен runtime. Например, он отвечает за работу механизма std::sync::Arc - atomic reference counter.

     
     
  • 3.100, Аноним (-), 18:54, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    printf в си является runtime?
     
     
  • 4.115, ferux (ok), 21:08, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    нет, но работать без runtime-а не будет т.к. ввод/вывод.
     
     
  • 5.117, Аноним (-), 21:27, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Следуя вашей логике, функции из сторонних библиотек не являются runtime, а что мы получим если программа не сможет найти эту функцию в библиотеке? сделали call, а там не правильный адрес.
     
     
  • 6.122, ferux (ok), 21:46, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В моём грубом понимании runtime - это только тот код, который компилятор добавляет к программам для обеспечения работы синтаксических конструкций языка. Всё остальное может зависеть от рантайма, как, например, функции работы с вводом/выводом, а может не зависеть, как большинство математических функций.
    В случае си часть рантайма реализована в crt0.o (https://en.wikipedia.org/wiki/Crt0) - если интересно.

    Что касается "не сможет найти эту функцию в библиотеке" - если функциям для работы требуется runtime, это ещё не значит что они его часть. И вообще, если библиотека  статическая - runtime для поиска функций не нужен.

     
     
  • 7.145, Аноним (-), 05:38, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    да, все так. Я просто не особо слежу за растом и хотелось понять, понимает ли собеседник о чем говорит.
     
  • 6.134, А. Н. ОНим (?), 01:17, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Следуя вашей логике, функции из сторонних библиотек не являются runtime, а что
    > мы получим если программа не сможет найти эту функцию в библиотеке?
    > сделали call, а там не правильный адрес.

    Получим невозможность использовать эту функцию и вероятно эту отдельную программу. Отдельная программа может нуждаться в специфическом runtime...

     

     ....большая нить свёрнута, показать (31)

  • 1.13, Аноним (-), 11:19, 19/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Они бы еще параллельно инструменты развивали. Например Qt Creator заточить, добавить в него подсветку синтаксиса и доки. Servo конечно хорош как доказательство состоятельности языка (будет, если допилят), но без нормальных инструментов язык не взлетит.
     
     
  • 2.18, Аномномномнимус (?), 11:37, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Qt пусть допилят обещанный PySide2 лучше, чем распыляться на это
     
     
  • 3.30, Аноним (-), 12:16, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Python признан неисправимым тормозом. Все потихоньку переходят на Go. Инвестировать в заведомо умирающую технологию - очень глупый шаг.
     
     
  • 4.48, Аномномномнимус (?), 13:00, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Все потихоньку переходят на Go <=> Инвестировать в заведомо умирающую технологию - очень глупый шаг.
    Вы сами себе противоречите.
    А ещё вы себе противоречите сравнивая разные сферы. Вы ещё HTML и Go по скорости сравните. Причём только по скорости, а читаемость, гибкость и прочее игнорируете конечно же
    Для скорости есть C/C++, которые и пытается подменить Go, но я всё ещё не вижу, чем он лучше уже знакомых и выпиленных до блеска инструментов.
     
     
  • 5.73, angra (ok), 16:00, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Для скорости есть C/C++, которые и пытается подменить Go, но я всё
    > ещё не вижу, чем он лучше уже знакомых и выпиленных до блеска инструментов.

    Писать и читать код на Go практически также легко как на python. Писать на нем конкурентный код проще чем на python и тем более на C/C++. А скорость лишь немного уступает плюсам и значительно обходит python.


     
     
  • 6.164, Аноним (-), 13:03, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Справедливости ради, Go медленнее даже чем java, ибо компилятор и VM последней совершенствовалась очень много лет. Компилятор Go пока не обладает инструментами оптимизации. Взамен нам предлагают скорость самой компиляции, она практически мгновенна. Надеюсь, в будущем будут варианты на выбор
     
     
  • 7.165, angra (ok), 13:08, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну давай посмотрим на циферки:
    http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=java&lang2=go
    В четырех случаях быстрее java, в шести -  go. Во всех случаях go потребляет значительно меньше памяти.
     
  • 4.67, Аноним (-), 14:53, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    NumPy, SciPy, Matplotlib уже переводят на Go?
     
     
  • 5.143, . (?), 04:59, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Делают аналоги, с разной степенью успешности. А ви таки зачем спрашиваете? :)
     
  • 5.167, angra (ok), 13:14, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > NumPy, SciPy, Matplotlib уже переводят на Go?

    А ты считаешь, что там скорость является заслугой питона? Разочарую, скорость там от С и Fortran, а от питона лишь обвязка над либами blas, lapack итд. При этом как только тебе в задаче понадобятся вычисления за пределами реализованных в либах функций, то скорость резко падает.

     
  • 4.180, Вареник (?), 15:13, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Python признан неисправимым тормозом. Все потихоньку переходят на Go. Инвестировать в заведомо
    > умирающую технологию - очень глупый шаг.

    Ядра предпочитают делать на С/C++, обвязки - на Python или C#, бизнес-логику и БД - на Java.

     
  • 3.80, Вареник (?), 16:46, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Qt пусть допилят обещанный PySide2 лучше, чем распыляться на это

    Вы не поняли. Это не проблема Qt, это целиком проблема раста.

    У Qt нет проблемы отсутствия фреймворка или отсуствия языка(ов) :)))

     
  • 2.53, Вы забыли заполнить поле Name (?), 13:01, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Есть https://github.com/phildawes/racer, который можно использовать в плагинах к редактору.
     

  • 1.15, Аномномномнимус (?), 11:36, 19/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!() }
    Прежде чем понять код ПО нужно расшифровать стопицот ненужных аббревиатур. write отрицает аргументы?
    println... тяжёлое детство, деревянный паскаль...
    let we_dont_use_camel_case
    Опять же зачем нужен let и затем указывать тип, если можно сразу указать тип и код будет более читаемый и компактный.

    >> It's possible to declare variable bindings first, and initialize them later.

    Вообще вещь стрёмная и ненужная.

    Короче куда ни ткни, непонятно чем этот ЯП лучше тех, которые давно и надёжно засели в TOP10 и почему все вокруг него так трясутся. Даже Go на его фоне смотрится лучше

     
     
  • 2.19, Аноним (-), 11:39, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Даже Go на его фоне смотрится лучше

    Что значит "Даже"? Golang - великолепен.

     
     
  • 3.21, Аномномномнимус (?), 11:46, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Чем?
     
     
  • 4.26, angra (ok), 12:06, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Почти всем :)
    Тут проще перечислить недостатки: размер бинаря, проблемное взаимодействия с Сишными либами, отсутствие прямого контроля за горутинами.
     
     
  • 5.41, freehck (ok), 12:36, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Тут проще перечислить недостатки: размер бинаря, проблемное взаимодействия с Сишными либами

    Вас почитать, так становится непонятно, почему Go более популярен по сравнению с тем же OCaml. :)

     
     
  • 6.47, angra (ok), 12:54, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Я перечислил недостатки, а не преимущества. Даже если у ocaml не было бы недостатков, это не означало бы, что у него достаточно преимуществ.Ну и конечно нельзя недооценивать фактор поддержки корпорацией.
     
     
  • 7.57, freehck (ok), 13:13, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Ну и конечно нельзя недооценивать фактор поддержки корпорацией.

    Ну да. В это всё как правило и упирается. Большая корпорация анонсирует новый язык, стимулирует людей на него переходить, нанимая объёмистый штат людей, заинтересованных в нём. Его начинают перенимать к себе другие крупные компании... Постепенно наращивается критическая масса специалистов в данном конкретном языке, и наконец малому и среднему бизнесу становится выгодно вести разработку именно на них, ибо для него важнее всего - заменяемость работника. А они появляется тогда, когда на рынке много специалистов.

    Иными словами, языки, технологии и программные продукты чаще выстреливают не за счёт технического превосходства, а за счёт поддержки со стороны больших корпораций.

     
     
  • 8.70, Аноним (-), 15:14, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    http www dedoimedo com computers software-development-cancer html Хорошая стат... текст свёрнут, показать
     
     
  • 9.125, freehck (ok), 22:02, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Очень благодарен Утащил в коллекцию ... текст свёрнут, показать
     
  • 8.209, Василий Теркин (?), 12:32, 21/03/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Большие корпорации обеспечивают то, чего катастрофически не хватает энтузиаста... большой текст свёрнут, показать
     
  • 6.52, Аномномномнимус (?), 13:01, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Мне непонятно, поэтому я и спрашиваю. Иначе не спрашивал бы. Вроде всё логично
     
  • 5.140, Аноним (-), 02:47, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    ... отсутствием генериков, убогостью кастомных типов, error'ом(!) при неиспользуемой(!) переменной, хипстоватым сообществом... Вы продолжайте, продолжайте.
     
  • 3.23, Аномномномнимус (?), 12:00, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Вообще интересно, чем люди мотивируются, создавая кучу костылей в каждом новом ... большой текст свёрнут, показать
     
     
  • 4.29, angra (ok), 12:11, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Да не стесняйся ты так, скажи открыто: "мне лень понимать и учить новые ЯП".
    TOP10 ЯП сегодня и TOP10 10/20/30/40/50 лет назад мягко говоря различаются. А с твоим подходом надо было остановится еще в 60-х.
     
     
  • 5.33, Аноним (-), 12:21, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    А что "новые языки" это какая-то самостоятельная ценность и их обязательно все учить ?
     
     
  • 6.37, angra (ok), 12:34, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, необязательно. Можно было выучить Fortran 60 лет назад или APL 50 лет назад и программировать на них по сей день.
     
     
  • 7.42, Аномномномнимус (?), 12:43, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    В текущих реалиях можно выучить пару основных для десктопа, и php/python, html+js+css для веба, и ещё останется лет на 30 что в процессе разработки продуктов по мере появления доп. вопросов (от code style, тестовых фреймворков и инструментария аля IDE, нужных API, до всяких RFC, алгоритмов подавления шумов и специфики железа). И этого будет достаточно чтобы учиться постоянно и не скучать по фортрану.
     
     
  • 8.74, Аноним (-), 16:01, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Задним умом мы конечно все крепки, но только вот 20 лет назад в основных для дес... текст свёрнут, показать
     
     
  • 9.87, angra (ok), 17:10, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Согласен Добавлю, что через пять лет может оказаться, что js и css все-таки не ... текст свёрнут, показать
     
  • 9.206, cp (?), 23:20, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    И мы ничего бы не прогадали CSS в котором десять только основных рецептов центр... текст свёрнут, показать
     
  • 5.40, Аномномномнимус (?), 12:36, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Мне лень начинать каждые 2 года с джуниора с соответсвующей зарплатой ради язы... большой текст свёрнут, показать
     
  • 5.43, freehck (ok), 12:47, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну знаете ли Этих новых языков в последнее время попёрло столько, что нет ни вр... большой текст свёрнут, показать
     
     
  • 6.50, angra (ok), 13:00, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ну знаете ли. Этих новых языков в последнее время попёрло столько, что
    > нет ни времени, ни сил на них на все. :)

    Да не больше, чем в иные времена. И никто не говорит про полноценно учить всё подряд. Но если какой-то язык из года в год увеличивает свою долю, то можно потратить одни выходные на базовое ознакомление, вдруг понравится.

    > Берёшь flex+bison (или если не на Си пишешь, но соответствующую своему языку связку lex/yacc), определяешь грамматику и синтаксис - и готово. Таким образом начать разработку нового языка - дело в общем-то плёвое. Вот их и расплодилось столько.

    Ты бы хоть поинтересовался в каком году появился yacc.

     
     
  • 7.59, freehck (ok), 13:19, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Я думаю, лучше это делать по мере необходимости Вот пользуешься ты программой, ... большой текст свёрнут, показать
     
     
  • 8.85, angra (ok), 17:06, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Я к тому, что написание парсеров за счет существования lex yacc и аналогов стало... текст свёрнут, показать
     
     
  • 9.123, freehck (ok), 21:51, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Не совсем Я лишь пояснял, почему их пишут все, кому не лень Я понятья не имею,... большой текст свёрнут, показать
     
     
  • 10.128, Sw00p aka Jerom (?), 23:06, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    а всё дело в том, что чем дальше тем меньше кода будут писать, и будущему поколе... текст свёрнут, показать
     
  • 10.157, angra (ok), 12:21, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Практически так и было Код на perl времен cgi pm и тогда это еще был очень хоро... текст свёрнут, показать
     
     
  • 11.169, freehck (ok), 13:25, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Современный - это какой Perl5 несколько десятилетий был неизменен Не вижу особ... большой текст свёрнут, показать
     
     
  • 12.171, angra (ok), 13:56, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Может потому, что ты не пишешь на нем сейчас и не писал тогда Поэтому всё, что ... текст свёрнут, показать
     
     
  • 13.203, freehck (ok), 21:43, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Нихт Сейчас я на нём почти не пишу Много писал как раз лет 8-10 тому назад А ... текст свёрнут, показать
     
  • 6.86, Вареник (?), 17:06, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > В общем, я не знаю, когда вылижут Rust, но для начала надо
    > дождаться хотя бы нескольких больших FOSS-проектов, написанных на нём.

    Без поддержки ТНК уровня фейсбука - никогда.
    Но подобным организациям нужна прикладуха, существующие ядра/системные либы их полностью устраивают.

    Игроделы не будут переделывать популярные и отлаженные движки на вырвиглазную хрень без либ.

    Руст - язык без ниши. Как системный, для игр и вычислений - он запоздал на 30 лет, как прикладной не состоятелен.

     
     
  • 7.193, анонимус вульгарис (?), 17:06, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Руст - язык без ниши. Как системный, для игр и вычислений -
    > он запоздал на 30 лет, как прикладной не состоятелен.

    Почему же без ниши? У него есть вполне определённая ниша. Правда вот беда, она в точности совпадает с нишей, занятой C++. И чтобы его оттуда вытеснить, языку надо иметь очень много преимуществ. А у rust оно ровно одно — модель памяти. Сомневаюсь, что этого хватит, хотя — время покажет.

     
  • 4.72, Sw00p aka Jerom (?), 15:53, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >>но это не должно идти в ущерб читаемости кода и скорости разработки.

    какой ещё скорости разработки? что это за понятие "быстро разработать"? писать строки кода (кодинг) это разве разработка?  

     
     
  • 5.88, Вареник (?), 17:11, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >>>но это не должно идти в ущерб читаемости кода и скорости разработки.
    > какой ещё скорости разработки? что это за понятие "быстро разработать"? писать строки
    > кода (кодинг) это разве разработка?

    На С++ програмист напишет сложную систему медленней, чем на Java, #C, Python, Ruby.
    На уровне одной формы/мелкой утилиты разницы никакой. Чем сложней программа - тем больше будет разница.
    Rust не дает преимуществ перед С++, наоборот усложняет нечитабельностью.

    Это факт. Зачем Вы хотите отрицать очевидное?

     
     
  • 6.101, Sw00p aka Jerom (?), 19:01, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Проектировать ПО и писать код - разные задачи И сей факт в том, что время трати... большой текст свёрнут, показать
     
     
  • 7.108, Аномномномнимус (?), 20:12, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Большую часть времени разработчик не стучит по кнопкам, а именно читает код и ду... большой текст свёрнут, показать
     
     
  • 8.118, RobotsCantPoop (?), 21:31, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Для любителей чтива, приближенного к одному из естесственных языков, придумали C... текст свёрнут, показать
     
  • 8.126, Sw00p aka Jerom (?), 22:37, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    вот к этому я и вёл слеш точка запятая - китайская грамота, русскому не поня... большой текст свёрнут, показать
     
     
  • 9.156, Аномномномнимус (?), 12:18, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Чтобы быстро думать - не должно ничего отвлекать Ты не должен спотыкаться на ка... большой текст свёрнут, показать
     
  • 9.183, Вареник (?), 15:37, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    - для стиля xyz - должен быть комментарий Y - квартальное начисление по от ко... текст свёрнут, показать
     
     
  • 10.186, Sw00p aka Jerom (?), 16:35, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    нет я не это имел ввиду, акцент на обьявлении функции, а не её имени Суть в син... большой текст свёрнут, показать
     
     
  • 11.207, Аномномномнимус (?), 01:08, 21/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Правильно объявлять function или func, если вы хотите функцию, а не класс, объек... большой текст свёрнут, показать
     
     
  • 12.210, Sw00p aka Jerom (?), 17:56, 21/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Без доказательное утверждение, замена одних символов на других - дело вкуса, и е... большой текст свёрнут, показать
     
     
  • 13.211, Sw00p aka Jerom (?), 01:14, 22/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    блин у комента кажись ограничение по длине текста хмммм скока текста порезалось ... текст свёрнут, показать
     
  • 7.114, angra (ok), 20:58, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Титеретик или тролль?
    Ну реализуй любой готовый алгоритм на брейнфаке и сравни со временем его же реализации хотя бы на С.
     
     
  • 8.127, Sw00p aka Jerom (?), 22:40, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    к чему это к тому, что не смогу или быстро написать не получится ... текст свёрнут, показать
     
     
  • 9.159, angra (ok), 12:28, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Это яркий пример, иллюстрирующий ошибочность твоих разглагольствований о том, чт... текст свёрнут, показать
     
     
  • 10.189, Sw00p aka Jerom (?), 16:49, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Время написания алгоритма во всех языках будет занимать одинаковое время, и это ... большой текст свёрнут, показать
     
     
  • 11.197, angra (ok), 18:39, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Таки титеретик Причем случай крайне запущенный, если даже пример с brainfuck не... текст свёрнут, показать
     
     
  • 12.201, Sw00p aka Jerom (?), 20:54, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    тады уж на ТМ, брейнфак в сторонке курит... текст свёрнут, показать
     
     
  • 13.202, Sw00p aka Jerom (?), 20:59, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    дополнение если про ТМ не в курсе https ru wikipedia org wiki D0 9C D0 B0 D1... текст свёрнут, показать
     
  • 8.129, Sw00p aka Jerom (?), 23:08, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    static const double one 1 00000000000000000000e 00, 0x3FF00000, 0x00000000... текст свёрнут, показать
     
     
  • 9.184, Вареник (?), 15:40, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    - Хуже, преподаватель Сам в реальных проектах не писал, не сопровождал, но имее... текст свёрнут, показать
     
     
  • 10.187, Sw00p aka Jerom (?), 16:40, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ментор Ждал этот аргумент Давайте спросим у Д Кнут-а сколько кода он н... текст свёрнут, показать
     
     
  • 11.208, Илья (??), 09:40, 21/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    о господи Ну хорошо хоть в одном файле уместилась... текст свёрнут, показать
     
  • 11.213, anonymous (??), 06:16, 22/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Много ... текст свёрнут, показать
     
     
  • 12.215, Sw00p aka Jerom (?), 16:08, 22/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    ... текст свёрнут, показать
     
  • 7.176, Вареник (?), 14:59, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> И сей факт в том, что время тратися в основном на проектирование.

    - На тестирование, отлаживание, сопровождение (многочисленные доработки по запросам). Внезапно. 90% объема работ.

    Есть, конечно, категория архитекторов высокого полета - "напроектировал и сбежал", пока рутина не началась (из которой работа системы и состоит).

    UML и ОО-скелет все равно на чем набросать, лишь бы в языке структуры/классы были, а они даже в ассемблере есть. Можно и на русте, не вопрос :)

     
     
  • 8.190, Sw00p aka Jerom (?), 16:52, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Внезапно до вас дошло, что синтаксис ЯП и его стдлиб никакой роли не играет Ну ... текст свёрнут, показать
     
  • 6.219, Некулхацкер (?), 13:06, 24/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >>>>но это не должно идти в ущерб читаемости кода и скорости разработки.
    >> какой ещё скорости разработки? что это за понятие "быстро разработать"? писать строки
    >> кода (кодинг) это разве разработка?
    > На С++ програмист напишет сложную систему медленней, чем на Java, #C, Python,
    > Ruby.
    > На уровне одной формы/мелкой утилиты разницы никакой. Чем сложней программа - тем
    > больше будет разница.
    > Rust не дает преимуществ перед С++, наоборот усложняет нечитабельностью.
    > Это факт. Зачем Вы хотите отрицать очевидное?

    На Питоне или Руби -- нет. У них нет даже зачаточных инструментов сборки и управления проектом. А на подобные процедуры уходи три четверти времени.

     
     
  • 7.220, Аноним (-), 21:46, 24/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    gt оверквотинг удален Потому что это своеобразный индикатор - как только появи... большой текст свёрнут, показать
     
  • 2.27, incker (?), 12:08, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем указывать тип, если переменная объявленная через let, как вы написали - будет константа. Не константы объявляются так let mut variable
     
     
  • 3.31, Аномномномнимус (?), 12:20, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Зачем константы называть variables в документации и делать иммутабельными из коробки?
     
     
  • 4.34, Аноним (-), 12:22, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Константность - только чтение. Мутабельность - чтение и запись. Т.е. любую переменную мы можем читать, а запись - это дополнительное свойство, которое и надо задавать. В С++ эта логика нарушена.
     
     
  • 5.44, Аномномномнимус (?), 12:49, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Как говорят знакомые атеисты: ОГОСПАДЕ!
    Переменная (англ. Variable) имеет в основе слово МЕНЯТЬ. Логично что то что меняется не может быть иммутабельным. В противном случае говорят "документация врёт и не соответствует коду".
    Прежде чем учить языки программирования, выучи хоть один человеческий, хотя бы на уровне базовой школы
     
     
  • 6.89, Ordu (ok), 17:28, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    ОГОСПАДЕ.
    Филолог в треде о программировании. Зря ты ссылаешься на толковый словарь английского языка, надо было отследить этимологию глагола to vary назад к латыни и древнегреческому, и сослаться на то, что Сократ думал о мутабельных и константных переменных.
     
  • 6.92, Аноним (-), 17:37, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Переменная может быть константной и меняться. Тут вообще большое поле для демагогии. Но всё это будут придирки к словам. Факт остается фактом, объект должен быть читаем всегда, а вот изменяем нет.
     
     
  • 7.105, Аномномномнимус (?), 19:45, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Константа не может быть переменной. Это тавтология.

    Есть язык - интерфейс общения. Его ценность в том, что один объект однозначно и по возможности лаконично (чтобы быстро и эффективно) объяснить что-то другому объекту. Будет объяснять человек человеку, человек программе, программа человеку - не важно. Важно чтобы не было путаницы и неоднозначно понимаемых абстрактных бредней. И именно инженеры обязаны это понимать, у них масса технических терминов именно по этой причине. Ты же не называешь системный блок процессором? Ну пожалуйста, скажи что не называешь?

     
     
  • 8.168, angra (ok), 13:17, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Зато переменная может быть константНой или по-русски неизменяемой ... текст свёрнут, показать
     
  • 8.194, анонимус вульгарис (?), 17:14, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, это оксюморон ... текст свёрнут, показать
     
  • 6.217, Некулхацкер (?), 19:19, 23/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Как говорят знакомые атеисты: ОГОСПАДЕ!
    > Переменная (англ. Variable) имеет в основе слово МЕНЯТЬ. Логично что то что
    > меняется не может быть иммутабельным. В противном случае говорят "документация врёт
    > и не соответствует коду".
    > Прежде чем учить языки программирования, выучи хоть один человеческий, хотя бы на
    > уровне базовой школы

    Понимаете, есть некая разница между логикой предикатов и логикой высказываний. В данном случае неизменяемая переменная -- честный полноценный предикат. Потому что это не константа и может быть задана непредсказуемо. Но вот измениться после такого, как задана, уже не может. И вы спокойно в таком случае пользуетесь аппаратом логики предикатов.

     
  • 4.46, freehck (ok), 12:53, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Зачем константы называть variables

    Это в Си-подобных языках традиция такая. Многие языки семейств Lisp/Scheme/ML называют это дело binding, т.е. связыванием. Потому что они связывают текстовое имя (символ) с каким-то местом в памяти.

     
  • 4.75, Ordu (ok), 16:12, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Константы и read-only переменные -- это разные вещи. Просто подумай об этом, и -- я верю в тебя -- ты увидишь разницу.
     
     
  • 5.106, Аномномномнимус (?), 19:51, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Про константы не я вбросил, я то знаю разницу
     
     
  • 6.112, Аноним (-), 20:35, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Про константы не я вбросил, я то знаю разницу

    Чуть ниже видно было,
    > это по сути read only переменная

    "знаток".

     
  • 4.91, Аноним (-), 17:32, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Зачем константы называть variables в документации и делать иммутабельными из коробки?

    Помому что под const обычно подразумевается что-то, вычислямое еще на этапе компиляции.  Еще, конкретно в ржавчине у const нет какого-то определенного адреса, он инлайнится. https://doc.rust-lang.org/book/const-and-static.html
    А вот let может быть присвоена уже в рантайме, но только один раз. Типа
    let foo = user_input_bar(...);

     
     
  • 5.107, Аномномномнимус (?), 19:59, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ты удивишься, но константы инлайнились ещё во времена ассемблера.
    Вот выше человек правильно написал - это по сути read only переменная, getter - очень распространённая вещь во многих языках.

    Короче печально всё, от понимания "зачем оно", до документации (и терминологии в частности).

     
     
  • 6.110, Аноним (-), 20:29, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ты удивишься, но константы инлайнились ещё во времена ассемблера.

    Ты удивишься, но я не удивлюсь - я в курсе.
    Правда, никакими const там не пахло (не надо кивать на .const секции, это немного из другой оперы), но объявления, в зависимости от диалекта, типа "foo EQU x" или "foo = y" как бы намекали нам об этом. Опять же, никакого конкретного адреса, всем все ясно.

    > Вот выше человек правильно написал - это по сути read only переменная,

    Еще раз, для тех кто в танке - это не переменная. Первое отличие - вычисляемость в компайлтайме. Второе - отсутствие конкретного адреса и прочих "мест обитания", причем "по умолчанию", а не в следсвии оптимизации.

    > Короче печально всё, от понимания "зачем оно", до документации (и терминологии в
    > частности).

    Во-во. Согласен.


     
     
  • 7.158, Аномномномнимус (?), 12:26, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Много кто умеет вычислять не меняющиеся переменные на этапе компайлтайма, причём по умолчанию, но они это называют "оптимизация на этапе компиляции", а не делают из этого культ мордования терминологии
     
     
  • 8.161, angra (ok), 12:50, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Культ тут разве что ты делаешь Насколько я понял, с С C ты знаком В них дефо... текст свёрнут, показать
     
     
  • 9.199, _ (??), 19:27, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Он дятел - сиречь не понимает даже что в правильных Ёзыках константы не имеют не... текст свёрнут, показать
     
  • 2.32, Аноним (-), 12:20, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Дополнительные правила и ограничения - плата за безопасность и увеличение производительности. Пример, как и все подобные, высосан из пальца.
     
     
  • 3.35, Аноним (-), 12:24, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Безопасность иллюзорна ибо любой нетривиальный алгоритм будет полон unsafe'ов.
    Увеличение производительности пока что не продемонстрировано.
     
     
  • 4.94, Аноним (-), 17:41, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Вот вам концепция, на которой С++ гарантированно проиграет Rust'у: http://www.gamedev.ru/flame/forum/?id=156989
     
     
  • 5.104, Аномномномнимус (?), 19:36, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот вам концепция, на которой С++ гарантированно проиграет Rust'у: http://www.gamedev.ru/flame/forum/?id=156989

    Я там что-то не нахожу большой кучи хвалебен в честь Rust. Где там это обосновано? Дай прямую ссылку. Или бенчмарк конкретный.

     
     
  • 6.151, Аноним (-), 11:37, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Тебе надо, ты и пиши, в чем проблема? Почему на операциях с памятью Rust оказывается быстрее тебе ответили.
     
     
  • 7.154, Аноним (-), 12:03, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Пруф или не было.
     
  • 4.195, анонимус вульгарис (?), 17:17, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Безопасность иллюзорна ибо любой нетривиальный алгоритм будет полон unsafe'ов.

    95% кода — это тривиальные алгоритмы. Вот там и будет выигрыш в безопасности.

     
  • 3.45, Аномномномнимус (?), 12:51, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Плата за безопасность - открытость и понятность кода. Когда начинается магия и ересь - безопасность и надёжность заканчивается, начинается security through oscurity и появляются "крайне редкие специалисты", требующие за разруливание этих клубков магической лапши баснословные деньги.
     
     
  • 4.83, Вареник (?), 16:57, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Плата за безопасность - открытость и понятность кода. Когда начинается магия и
    > ересь - безопасность и надёжность заканчивается, начинается security through oscurity
    > и появляются "крайне редкие специалисты", требующие за разруливание этих клубков магической
    > лапши баснословные деньги.

    Истину глаголишь. Стартап на чем-то экзотическом, только потому что пареньку с горящими глазами нравится perl, окамл, хруст и т.д. - это проблемы для всего коллектива в будущем и громадные перезатраты усилий.

     
     
  • 5.84, Вареник (?), 17:00, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Плата за безопасность - открытость и понятность кода. Когда начинается магия и
    >> ересь - безопасность и надёжность заканчивается, начинается security through oscurity
    >> и появляются "крайне редкие специалисты", требующие за разруливание этих клубков магической
    >> лапши баснословные деньги.
    > Истину глаголишь. Стартап на чем-то экзотическом, только потому что пареньку с горящими
    > глазами нравится perl, окамл, хруст и т.д. - это проблемы для
    > всего коллектива в будущем и громадные перезатраты усилий.

    Скала, кстати, тоже сюда. Хотя вроде бы хороший язык и с фреймворками все в порядке - получается плохо разгребаемая магическая лапша.

     

     ....большая нить свёрнута, показать (91)

  • 1.24, Аноним (-), 12:01, 19/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    https://en.wikipedia.org/wiki/Paul_Graham_(computer_programmer)#The_Blub_parad
     
  • 1.39, нонанон (?), 12:36, 19/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    "cargo build", "cargo doc", "cargo check" ... Какой-то прямо "cargo cult"...
     
     
  • 2.150, Аноним (-), 11:06, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ломающие новости. Это специально именно так и названо.
     

  • 1.49, Аноним (-), 13:00, 19/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Когда QT на раст перепишут, тогда он и зарешает, а пока  - язык выходного дня.
     
     
  • 2.55, Аномномномнимус (?), 13:05, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Qt на Rust не перепишут, к счастью.
     
     
  • 3.56, Аноним (-), 13:12, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ага, тогда им еще и гуи придумывать, а они и язык пока не могут до стабильного состоянию допилить.
     
     
  • 4.60, Аномномномнимус (?), 13:22, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У Qt есть GUI же. И у них нет причин переписывать себя на Rust.
    Если же мозилловцы захотят написать на Rust аналог Qt, то это будет не Qt, а другая библиотека. Максимум - у них будет схожее API/ABI и похожие алгоритмы.
    К тому же вообще не понятно зачем с нуля создавать то, что и так прекрасно работает, лишь бы была нормальная возможность подключать нужные библиотеки, которая конечно же есть у всех нормальных языков.
     
  • 3.95, Аноним (-), 17:43, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Это и не требуется. Элементы, требующие производительности и безопасности, можно выделить в отдельные либы на Rust'e. Остальное оставить на с++.
     
     
  • 4.103, Аномномномнимус (?), 19:29, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Можно популярнее про производительность и безопасность? Вот прям с примерами. Добавление зоопарка должно добавить или стрёмный, по сравнению со стандартным для Qt, код?
     
  • 2.66, skybon (ok), 14:29, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Вполне возможно, что весь гномостек на него портируют (включая GTK+). librsvg переписывают уже сейчас.
     
     
  • 3.68, Аноним (-), 14:56, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Сомневаюсь, что начнут переписывать glib
     
  • 3.69, Аноним (-), 15:07, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    уж куда лучше на Swift переписать, которому всего 3 года, но он уже юзабельный с версии 3.
     
     
  • 4.200, _ (??), 19:30, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Он А-огороженный и никому кроме заднеприводных не уперся, увы.
     
  • 2.82, Вареник (?), 16:54, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Когда QT на раст перепишут, тогда он и зарешает, а пока  
    > - язык выходного дня.

    Крику много, но они сами не знают зачем им Rust.
    Сферическая вырвиглазность в вакууме.

     
     
  • 3.96, Аноним (-), 17:45, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Знают.
     
     
  • 4.181, Аноним (-), 15:15, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Но никому не скажут.
     

  • 1.81, Вареник (?), 16:52, 19/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Руст - это агрессивная реклама вырвиглазного, неудобного и ненужного.

    Фактически аналог хорошего стат. анализатора подается как преимущество, при отсуствии фрейморка, IDE и прочих инструментов.

     
     
  • 2.98, Аноним (-), 17:48, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    1. Раст, не руст.
    2. Стат. анализатор и есть преимущество. Но оно не всем нужно ценой потери свободы.
    3. IDE и прочие инструменты еще впереди. Пока на этом языке нет ни одного взлетевшего проекта, т.ч. рано еще.
     
     
  • 3.109, Аноним (-), 20:16, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Dropbox. Впрочем, там еще много чего на Go, но весь core - уже на Rust.
     
     
  • 4.121, Аноним (-), 21:41, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Dropbox. Впрочем, там еще много чего на Go, но весь core - пока на Rust.(fixed)
     
  • 2.120, Аноним (-), 21:40, 19/03/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У кого что болит, как гриться... Пока я вижу лишь твою повышенную активность подозрительно напоминающую оказать влияние на мнение других.
     

  • 1.152, Аноним (-), 11:42, 20/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    По каждому языку здесь раскручивается холивар. Я полагаю из-за того, что люди боятся, что язык взлетит и его придется учить, чтобы не оказаться в отстоиниках. Как считаете?
     
     
  • 2.163, Kodir (ok), 13:02, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Считаю, фигню сказал. Разве боятся апологеты Жабы прихода C#? Кто-то из "сипиписников" оглядывается на D? Нет и нет. Каждый работает в своей нише. Мир ИТ, несмотря на свою кажущуюся стремительность, на деле крайне инертный (как стандарты для патронов). Есть столько легаси кода на древних языках, что практически любой найдёт себе работу по поддержке старого *овна мамонта. Да ещё и оплачивать будут выше из-за "уникальности специалиста".

    Радует то, что наметились здоровые тенденции - видны языки-аутсайдеры и языки с явным психическим уклоном создателей - такие просто медленно загнутся. Но любой новый выскочка никогда не заменит существующего болота, так что не переживайте - продолжайте похапэхать. :)

     
     
  • 3.172, Аноним (-), 14:39, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Разве боятся апологеты Жабы прихода C#? Кто-то из "сипиписников" оглядывается на D? Нет и нет.

    Не знаю, абсолютно. Я сужу по только по наблюдаемой здесь истерике. Людям плевать на объективные аргументы. И так и по Python и по Go и по Rust. И при том четкая тенденция - держатся за старое (Python) и категорически отвергают всё новое (Go, Rust).

     
     
  • 4.204, Ordu (ok), 23:17, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Я уверен, что половина плюющих на аргументы -- тролли, оставшиеся -- хомячки, которые не имеют собственного мнения и субъектности. Нет какого-то глубинного смысла в том, чтобы обращать внимание на тех или этих.
     
  • 2.218, Некулхацкер (?), 19:23, 23/03/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > По каждому языку здесь раскручивается холивар. Я полагаю из-за того, что люди
    > боятся, что язык взлетит и его придется учить, чтобы не оказаться
    > в отстоиниках. Как считаете?

    Языку для взлёта нужно десятки лет. Нужны иструментарии сборки и развёртывания, тестирования, отслеживания изменений и прецедентов, нужны средства управления жизненным циклом. Ничего этого у новых языков нет. Вот тот же Питон, Руби или Пых потрепыхались, но так на корпоратив и не вышли, потому что нет у них ничего подобного мавену-шмавену, жире, дженкинсу и т.д. и т.п. И не будет никогда. Ну и каркасы, конечно же.

     

  • 1.155, Аноним (-), 12:09, 20/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > ... обеспечивающего автоматическое управление памятью и предоставляющего средства для высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime.
    > ...  В пакетном менеджере Cargo ...
    > ...  В будущем файлы ".rmeta" планируется задействовать в сборочном сервере Rust Language Server и возможно в некоторых других утилитах;

    Не понял. Какое отношение имеет "пакетный менеджер" к ЯП (да ещё и без "runtime", что тоже херня какая-то --- собственная терминология?)?

     
  • 1.162, Kodir (ok), 12:57, 20/03/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Что прикольно, сто лет как существует D - такой же "с менеджером памяти" и не менее подходящий для "системное программирование". ГДЕ ВЫ, хипстеры и гонщики за новомодным? Вот же, стабильный язык с кучей библиотек - пишите! Или вам нехватает в ушах рекламы?
     
     
  • 2.173, Аноним (-), 14:44, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Ну видимо разница есть, раз не слетаются на такой крутой, "столетний" язык
     
  • 2.192, Аноним (-), 16:59, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    D растерял кучу людей, когда показал свою несостоятельность как языка в процессе своего развития (история с двумя стандартными библиотеками это вообще нечто, нужно придумать что-нибудь покруче для того чтобы отбить желание его учить еще в начале). Ни одному "хипстеру и гонщику за новомодным" (да и вообще кому угодно) такие запары с маргинальным языком в самом начале пути не нужны и нужны никогда не были.
     
  • 2.196, Pinkie Pie (?), 18:18, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Я пишу. Шикарный язык, да.
     
  • 2.205, Ordu (ok), 23:19, 20/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Что прикольно, сто лет как существует D - такой же "с менеджером
    > памяти" и не менее подходящий для "системное программирование". ГДЕ ВЫ, хипстеры
    > и гонщики за новомодным? Вот же, стабильный язык с кучей библиотек
    > - пишите! Или вам нехватает в ушах рекламы?

    D пролетел с названием. Такое амбициозное название, а под обложкой жаба, компилируемая в натив-код. Разрабы просто наcpали в душу. Им поскромнее бы быть, может чего и вышло бы.

     
     
  • 3.214, anonymous (??), 06:26, 22/03/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > D пролетел с названием. Такое амбициозное название, а под обложкой жаба, компилируемая
    > в натив-код. Разрабы просто наcpали в душу. Им поскромнее бы быть,
    > может чего и вышло бы.

    D пролетел из-за отсутствия ответа на вопрос "зачем?". Александреску в полный рост.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру