The OpenNET Project / Index page

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

Проект Mozilla представил релиз компилятора для языка программирования Rust

24.01.2012 10:56

Разработчики проекта Mozilla представили первый релиз компилятора и инструментария для языка программирования Rust. Версия 0.1 позиционируется как релиз альфа-качества, пригодный для начального ознакомления с языком. API ещё полностью не сформирован и будет расширяться и изменяться, также предстоит большая работа по оптимизации производительности, которая пока оставляет желать лучшего. Исходные тексты проекта распространяются в рамках лицензии MIT. Компилятор поддерживает сборку для платформ Linux (x86 и x86_64), Mac OS X (x86 и x86_64) и Windows (x86), включая возможность кросс-компиляции и сборки сразу для нескольких целевых платформ.

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


   use std;
   import std::io;

   fn main() {
       for i in [1, 2, 3] {
           io::println(#fmt("hello %d\\n", i));
       }
   }

Изначально, проект Rust был основан Грейдоном Хоаре (Graydon Hoare) в 2006 году. В 2009 году проектом заинтересовалась компания Mozilla Corporation и включилась в его разработку. Грейдон был принят на работу в компанию Mozilla, где последние несколько лет занимался развитием языка в режиме полного рабочего дня. Для Mozilla язык Rust представляет интерес с точки зрения обеспечения многопоточного рендеринга web-страниц. В долгосрочной перспективе, код, ответственный за обработку DOM-дерева, планируется переписать на языке Rust, что позволит обеспечить распараллеливание выполнения операций в процессе обработки одной web-страницы.

В настоящее время задействовать потенциал современных многоядерных систем мешает использование однопоточных схем обработки в различных подсистемах. В частности, при обработке одной страницы однопоточным остается связанный с DOM (Document Object Model) внутренний API, функции формирования содержимого окна, парсинга HTML и выполнения JavaScript. Использование Rust позволит разбить код DOM и рендеринга на более мелкие подзадачи, которые смогут выполняться параллельно и более эффективно использовать ресурсы многоядерных CPU.

Базовые возможности языка:

  • Ориентация на безопасность:
    • Аккуратная работа с памятью - никаких нулевых и потерянных указателей. Автоматическое управление памятью;
    • Контроль изменчивости. Объекты неизменяемы (Immutable) по умолчанию;
    • Безопасность динамического выполнения: обработка сбоев, исключения, ведение лога, RAII / dtors;
    • Typestate: возможность определения сложных инвариантов, контролирующих структуры данных.
  • Ориентация на параллельность и эффективность кода:
    • Явный контроль памяти, контролирование схемы распределения памяти;
    • Крайне легкие задачи, формируемые в виде сопрограмм. Лёгкость в порождении тысяч и миллионов подпроцессов;
    • Итераторы стека (фактически лямбда-блоки без распределения кучи);
    • Статическая, нативная компиляция с созданием исполняемых файлов ELF, PE, Mach-o;
    • Прямой и простой интерфейс для кода на языке Си;
  • Ориентация на практическое применение:
    • Мультипарадигменный, функциональный, императивно-процедурный, объектно-ориентированный, поддерживающий параллельную actor-модель;
    • Функции первого класса с биндингами;
    • Нет номинальных типов или иерархии типов;
    • Мультиплатформенный, поддерживается Windows, Linux, Mac OS X;
    • Хранение строк в UTF8, разнообразие низкоуровневых типов;
    • Работает с существующими нативными наборами инструментов: GDB, Valgrind, Shark и т.д.;
    • Практическая возможность нарушения правил: возможность игнорирования правил безопасности, если чётко указано, когда и как их нарушать.


  1. Главная ссылка к новости (https://mail.mozilla.org/piper...)
  2. OpenNews: Разработчики Firefox обозначили цели перехода на новую многопроцессную архитектуру
  3. OpenNews: Разработчики Mozilla работают над реализацией многопоточного рендеринга web-страниц
  4. OpenNews: Mozilla разрабатывает новый язык программирования Rust
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/32876-rust
Ключевые слова: rust, mozilla, lang, parallel
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (178) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 11:56, 24/01/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    "Ржавейка"! Отличное название! :)
     
     
  • 2.14, YetAnotherOnanym (?), 12:54, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Скорее "ржа" :)
     
     
  • 3.205, Аноним (-), 11:22, 29/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Я в курсях, спасибо. Я вспомнил мульт "Тачки" просто. Там было Rusteze, евжли память мне не врет. :)
     

  • 1.2, Аноним (-), 12:07, 24/01/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    по описанию выглядит круто, хорошо бы, чтоб из него получилось что-то путное.
     
  • 1.5, Anonus (?), 12:25, 24/01/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    а результирующие бинарники будут жестко завязаны на libxul и libxpcom, да?
     
     
  • 2.20, oWeRQ (ok), 13:03, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Учитывая что libxul и libxpcom возможно будут частично на rust, да, они будут завязаны.
     

  • 1.7, terr0rist (ok), 12:37, 24/01/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Продолжаем строить вавилонскую башню? Стопицот языков с одинаковыми возможностями, разница только в том, как писать слово function или fn или func или def или "мнепофигкакэтоназватьглавноечтобработало"?
     
     
  • 2.18, Аноним (-), 13:01, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +6 +/
    >Продолжаем строить вавилонскую башню?

    Разрушать. ;)

     
  • 2.80, Аноним239 (?), 15:19, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    В моем пишется как ->
     
  • 2.206, Аноним (-), 11:22, 29/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Продолжаем строить вавилонскую башню? Стопицот языков с одинаковыми возможностями, разница
    > только в том, как писать слово function или fn или func
    > или def или "мнепофигкакэтоназватьглавноечтобработало"?

    Фатальный недостаток же. Оно написано не нами.

     

  • 1.8, Ваня (??), 12:42, 24/01/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Ориентация на безопасность и отсутствие типов данных. Это как?

    И что будет если "i=ptr[0]"? Не зная размера?

    Это вообщене понял: "никаких нулевых и потерянных указателей. Автоматическое управление памятью".

    ptr = malloc();
    free(ptr);

    И чему будет равен ptr?

    А вообще, ещё один бесполезный язык, ещё один С/С++, коих уже пару сотен, а то и тысяч.

     
     
  • 2.10, Аноним (-), 12:47, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > ptr = malloc();

    Никаких malloc и free.

     
     
  • 3.15, Ваня (??), 12:57, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • –6 +/
    Т.е. живём без динамической памяти? Без списков, деревьев и дин.массивов?
     
     
  • 4.24, rain87 (?), 13:09, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    ну почему же. с ними, просто память под них будет выделяться и освобождаться автоматически, а не вручную программистом
     
     
  • 5.30, Ваня (??), 13:21, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Если есть указатели, динамическая память и функция её освобождения, то я могу указатель сделать невалидным.

    Без явного контроля над освобождением памяти ни о какой эффективности речь не идёт.

     
     
  • 6.32, Аноним (-), 13:25, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > и функция её освобождения

    Никаких функции освобождения, ты читать умеешь?
    > Без явного контроля над освобождением памяти ни о какой эффективности речь не идёт.

    Очередная анонимная икспертиза. Конечно же без пруфов.

     
     
  • 7.34, Ваня (??), 13:28, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Я комментирую статью. И высказываю свою точку зрения. Мне на этот язык начхать, как и всем собственно.
     
     
  • 8.88, Аноним (-), 15:34, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А я думал что ты кормишь троллей сухим кормом, путем просто сказочного торможени... текст свёрнут, показать
     
  • 6.61, тоже Аноним (ok), 14:42, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ждем примера с превращением std::tr1::shared_ptr в невалидный.
    Это возможно, конечно.
    Но только на более низком уровне, который в Rust'е, очевидно, будет недоступен.
     
     
  • 7.66, Ваня (??), 14:51, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    free(ptr)

    Функцию free прошу заменить на функцию освобождения дин.памяти.

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

     
     
  • 8.73, Crazy Alex (??), 15:09, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Будет доступен в unsafe-блоке Да, в нём можно начудить, а можно получить хорошу... текст свёрнут, показать
     
  • 8.117, тоже Аноним (ok), 17:36, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Осталось объяснить, с какого перепугу в этот язык кто-то будет вводить функции о... текст свёрнут, показать
     
     
  • 9.119, Ваня (??), 17:38, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Повторюсь ещё раз если есть указатели, динамическая память и функция её освобож... текст свёрнут, показать
     
     
  • 10.122, Аноним (-), 17:45, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Тебе человеческим языком сказано, что НЕТ функции освобождения памяти, а есть ав... текст свёрнут, показать
     
  • 9.153, anonymous vulgaris (?), 02:22, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот тут недавно был отчет о том как в firefox борются с утечками памяти, може... текст свёрнут, показать
     
     
  • 10.164, Аноним (-), 10:55, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Жаба и ц Увольте Лисп 8212 наше всё ... текст свёрнут, показать
     
  • 4.42, all_glory_to_the_hypnotoad (ok), 13:55, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    будет очередной gc, почти как в яве с её гемором сборщика.
     
     
  • 5.195, gknrenmds (?), 20:52, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И мозилла станет жрать еще больше памяти...
     
  • 2.12, Crazy Alex (ok), 12:48, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    типы есть
     
     
  • 3.16, Ваня (??), 12:58, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    "Ориентация на практическое применение: Нет номинальных типов или иерархии типов"
     
     
  • 4.31, Аноним (-), 13:23, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > "Ориентация на практическое применение: Нет номинальных типов или иерархии типов"

    "Rust является языком со строгой типизацией, сфокусированным на безопасной работе с памятью и обеспечении высокого параллелизма выполнения заданий", вообще-то.
    "нет номинальных типов или иерархии типов" значит всего лишь, что не получится использовать long int и short int в одном выражении. (http://en.wikipedia.org/wiki/Nominative_type_system)

     
     
  • 5.33, Ваня (??), 13:26, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Под типами данных (базовыми, стандартными, номинальными, типовыми, ..) всю жизнь подразумевал как раз эти самые char, int, float, ..

    long, short, signed, unsigned, .. - всю жизнь называл модификаторами.

    Ну да ладно, вопрос терминологии.

     
     
  • 6.45, all_glory_to_the_hypnotoad (ok), 13:58, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    модификаторы здесь разве что signed/unsigned
     
     
  • 7.57, Ваня (??), 14:16, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Спорно.

    int - целое число.

    long int - целое число с бОльшим количеством значений
    signed int - знаковое целое число

    Было целое число и осталось целое число.

     
     
  • 8.81, Аноним239 (?), 15:22, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    a -целое число ... текст свёрнут, показать
     
  • 8.87, all_glory_to_the_hypnotoad (ok), 15:33, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ага, была переменная, и осталась переменной В общем, существует только один тип... текст свёрнут, показать
     
  • 8.162, шифер (?), 09:42, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Слежу за дискуссией и не понимаю Вот парень вроде какое-то отношение имеет к пр... текст свёрнут, показать
     
     
  • 9.165, Ваня (??), 11:48, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Хмм Вот мне тоже вас оскорблять, обвинять в непрофессионализме и грязно ругат... текст свёрнут, показать
     
     
  • 10.172, Аноним (-), 13:25, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    long - значит должен быть не короче , short - значит не длиннее Так гласит ... большой текст свёрнут, показать
     
     
  • 11.174, Ваня (??), 13:30, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Как я не люблю сам себя цитировать Я не пишу на С С и полагаться ни на что ... текст свёрнут, показать
     
     
  • 12.179, Аноним (-), 13:43, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Поправьте, если я правильно понял Общечеловеческая логика диктует Вам, что запо... текст свёрнут, показать
     
     
  • 13.181, Ваня (??), 14:12, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Я не пишу на С С и не собираюсь делать этого в обозримом будущем Какое из сл... текст свёрнут, показать
     
  • 13.193, arisu (ok), 19:59, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ну не мучай ванюшу, ну что ты, право 8230 он же тебе уже намекнул, что окончат... текст свёрнут, показать
     
  • 11.191, arisu (ok), 19:53, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    подожди, не спеши, ванюша спешно читает хотя вон в другом каменте утверждает, ч... текст свёрнут, показать
     
  • 10.192, arisu (ok), 19:55, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    тебя таки окончательно выгнали с должности стажёра и перевели в вечные дежурные ... текст свёрнут, показать
     
  • 7.145, arisu (ok), 00:58, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > модификаторы здесь разве что signed/unsigned

    у ванюши всё, что с пробелом — «модификатор». то, что название типа может быть более, чем в одно слово — в череп не помещается.

     
     
  • 8.159, www2 (??), 07:25, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вообще-то, long и short - это и в самом деле модификаторы типа int, так же ка... текст свёрнут, показать
     
     
  • 9.160, arisu (ok), 07:39, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    вопрос достаточно спорный, конечно трактовать можно и так, и иначе я бы, всё-т... текст свёрнут, показать
     
     
  • 10.170, Ваня (??), 12:48, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Спецификации языка программирования С99 и более поздние больше не авторитет Т... текст свёрнут, показать
     
     
  • 11.171, Аноним (-), 13:15, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Теория типов уже не авторитет Теперь спецификации отдельных языков программиров... текст свёрнут, показать
     
     
  • 12.173, Ваня (??), 13:28, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Для компилятора языка программирования Си спецификация практическая реализация ... текст свёрнут, показать
     
     
  • 13.180, Аноним (-), 13:48, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Если спецификация, скажем, паскаля начнёт утверждать, что комплексные числа 8... текст свёрнут, показать
     
  • 13.189, arisu (ok), 19:40, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    что, книжку по ассемблеру отобрали кстати, ванюша а зачем тебе C99 ведь твой ... текст свёрнут, показать
     
  • 3.62, Crazy Alex (??), 14:44, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Сорри, погорячился, оно таки инопланетное. То есть может за многими рещениями и есть толковые обоснования, но их тогда надо было описать на сайте. Я всего лишь кратенько пробежался по описанию типов - и слегка очумел. Как минимум, конструкция alt для биндинга переменных к членам структуры и отсутствие нормального доступа через точку вызывают сомнения. Также как и требование явного боксинга для объектов при преедаче в функцию, принимающую итерфейс. Из замеченного -  ещё угловые скобки для параметров шаблонов - им что, проблем плюсов с парсингом хочется?

     
     
  • 4.72, Crazy Alex (??), 15:07, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    так, что-то я сегодня туплю. Можно там через точку обращаться, это меня конструкция alt с толку сбила. И в общем язык довольно забавный - эдакий конкурент D, авторы явно много чему научились на дишном опыте и стараются не наступать на грабли (находя, впрочем другие).

    Хотя кое-где явная чушь. Допустим, что им мешает immutable shared boxes гонять между тасками - я не понимаю. Но они для таких случаем используют зачем-то unique boxes,  которые в один момент могут быть доступны только одному таску. Всё, что можно предположить - что это артефакт подсчета ссылок, который между потоками работает откровенно паршиво.

     

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

  • 1.9, anon8 (ok), 12:47, 24/01/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    «Ржавчина». Обнадеживающее название, ага.
     
  • 1.13, Crazy Alex (ok), 12:50, 24/01/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    судя по описанию - язык довольно адекватный, начиная с бинарной совместимости структур с сишными
     
     
  • 2.17, Ваня (??), 13:00, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    "бинарной совместимости структур с сишными"

    Это как?

     
     
  • 3.25, анонимус (??), 13:09, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ваня такой Ваня...
     
     
  • 4.28, Ваня (??), 13:19, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А теперь объясни мне "на пальцах" что из себя представляет "бинарная совместимость со структур данных двух разных языков программирования".
     
     
  • 5.35, Аноним (-), 13:29, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > А теперь объясни мне "на пальцах" что из себя представляет "бинарная совместимость
    > со структур данных двух разных языков программирования".

    Существуют конвенции о том, как должны выглядеть структуры данных после компиляции. Так, struct {int_8_t a; long b int_32_t} может в целом занимать как пять байт, так и шестьдесят четыре, если не придерживаться какой-то конкретной конвенции выравнивания (т.е. b может находиться по смещению +4, так и по смещению +1). Однако если её не придерживаться, между собой не будут совместимы не только обьектные файлы разных языков, но и обьектные файлы одного языка, скомпилированные разными компиляторами. Поскольку основная часть библиотек написана на Си, совместимость с Си важна для любого языка. Так понятно?

     
     
  • 6.36, Ваня (??), 13:33, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Открываю вам Америку: структуры АБСОЛЮТНО ВСЕХ языков программирования "бинарно совместимы".
     
     
  • 7.39, Аноним (-), 13:44, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Открываю вам Америку: структуры АБСОЛЮТНО ВСЕХ языков программирования "бинарно совместимы".

    Ловлю на слове и жду демонстрации использования структур из Си в питоне. Или в яве. Или, если уж на то пошло, перловских хешей в паскале.

     
     
  • 8.40, Ваня (??), 13:48, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Формат объектных файлов один Значит могут использоваться Формат файлов obj в... текст свёрнут, показать
     
     
  • 9.43, Аноним (-), 13:56, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    There are many different object file formats http en wikipedia org wiki Objec... текст свёрнут, показать
     
     
  • 10.49, Ваня (??), 14:04, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Ещё раз А теперь с пояснениями для женщин, обезьян, и детей младшей группы фо... текст свёрнут, показать
     
     
  • 11.53, Аноним (-), 14:10, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Скажи, чувак, а тебя не смущает что например COFF и ELF - разные форматы И оба ... текст свёрнут, показать
     
     
  • 12.55, Ваня (??), 14:12, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вы из милиции Нужно было сказать сразу, я бы повторил дважды А теперь с поя... текст свёрнут, показать
     
     
  • 13.67, Аноним (-), 14:51, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Если б ты не был эпическим тормозом то заметил бы что уже как несколько месяцев ... текст свёрнут, показать
     
     
  • 14.70, Ваня (??), 15:00, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Сами же ответили на свой вопрос - Покажи мне формат файла объектника Если объ... текст свёрнут, показать
     
     
  • 15.83, Аноним (-), 15:28, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Прикол состоит в том что у JS нет никаких объектных файлов Ну вот как-то не пре... текст свёрнут, показать
     
  • 9.50, Аноним (-), 14:05, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А еще 640 килобайтов хватит всем, да Не, ну ты бы ради приличия посмотрел чтоли... текст свёрнут, показать
     
     
  • 10.54, Ваня (??), 14:11, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А теперь с пояснениями для женщин, обезьян, и детей младшей группы формат файл... текст свёрнут, показать
     
     
  • 11.60, Аноним (-), 14:40, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Так я не понял, а ты к какой из этих категорий относишься Ко всем сразу учиты... большой текст свёрнут, показать
     
     
  • 12.64, Ваня (??), 14:47, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я ни говорил ничего из того, что вы опровергаете Если вам нравится высказывать ... текст свёрнут, показать
     
     
  • 13.82, Аноним (-), 15:24, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, а вон там выше - чего ... текст свёрнут, показать
     
  • 11.93, Аноним (-), 16:06, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ваня, ты неадекват Это же твоя фраза - Формат объектных файлов один Значит мо... большой текст свёрнут, показать
     
     
  • 12.95, Ваня (??), 16:31, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    - Формат объектных файлов один - У Си и Rust формат объектных файлов один Что ... текст свёрнут, показать
     
     
  • 13.103, Аноним (-), 17:06, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Так и скажи да, я дебил и не понимаю разницы между форматом данных в памяти и ... текст свёрнут, показать
     
     
  • 14.107, Ваня (??), 17:13, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нет, я это к тому что слова, предложения и абзацы нужно читать целиком, а не выд... текст свёрнут, показать
     
     
  • 15.136, 1 (??), 19:41, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    лол ну вот кто бы говорил ... текст свёрнут, показать
     
  • 15.202, Аноним (-), 20:01, 26/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ваня, уже даже как-то неудобно тебя опускать, даже стыдно немного, как-будто над... текст свёрнут, показать
     
  • 7.47, Аноним (-), 14:01, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Открываю вам Америку: структуры АБСОЛЮТНО ВСЕХ языков программирования "бинарно совместимы".

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

     
     
  • 8.51, Ваня (??), 14:07, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А попробуй в Прологе работать с бинарным деревом, созданным в С Зачем бред пи... текст свёрнут, показать
     
     
  • 9.58, Аноним (-), 14:26, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Так если по твоему мнению структуры бинарно одинаковые - фигня вопрос, должно бы... текст свёрнут, показать
     
     
  • 10.94, Аноним (-), 16:10, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    скорее всего он сам троль и есть Пытается вывести всех из себя Надо просто Ван... текст свёрнут, показать
     
     
  • 11.105, Аноним (-), 17:09, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Как известно, тролли - каннибалы Поэтому толстый и тупой тролль сам является вп... текст свёрнут, показать
     
  • 9.59, анонимус (??), 14:29, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Бред ты, Ванюш, пишешь Тебе как бы все вокруг намекают, что значит совместимы... текст свёрнут, показать
     
     
  • 10.63, Ваня (??), 14:46, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Rust и С - языки программирования Толпа анонимов утверждает что бинарно совмес... текст свёрнут, показать
     
     
  • 11.75, Аноним (-), 15:13, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Изначально ты утверждал какой-то булшит насчет форматов объектников При том сов... текст свёрнут, показать
     
  • 7.65, Crazy Alex (??), 14:49, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Вы либо идиот, либо не знаете, к чему прицепиться. И то и другое выглядит, мягко говоря, не очень.

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

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

     
     
  • 8.69, Ваня (??), 14:55, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Свои оскорбления оставьте при себе struct xxx float f 1 int i 1 char c... текст свёрнут, показать
     
     
  • 9.74, Crazy Alex (??), 15:12, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    моя бинарная совместимость - это возможность сунуть рустовскую type point x... текст свёрнут, показать
     
     
  • 10.76, Crazy Alex (??), 15:14, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    моя бинарная совместимость - это возможность сунуть рустовскую type point x... текст свёрнут, показать
     
     
  • 11.91, xxx (??), 15:45, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Эт конечно хорошо, однако как быть с так часто используемыми расширениями в Си к... текст свёрнут, показать
     
     
  • 12.96, Ваня (??), 16:47, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Оставь Он пишет о чём-то своём, игнорируя всё что ему говорят Пример с битовым... текст свёрнут, показать
     
  • 12.97, Ваня (??), 16:50, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Я уж не говорю про union и пр сяшные заморочки typedef struct _OVERLAPPED U... текст свёрнут, показать
     
     
  • 13.104, Аноним (-), 17:08, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    gt оверквотинг удален В Си нету никаких классов, и ссылок тоже нет, одни указа... текст свёрнут, показать
     
     
  • 14.109, Ваня (??), 17:16, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    struct int x int func int y return x y Хоть С, хоть С , но когда мне ... текст свёрнут, показать
     
     
  • 15.113, Аноним (-), 17:26, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    code cat temp c include stdio h struct int x int func int y return x ... текст свёрнут, показать
     
     
     
    Часть нити удалена модератором

  • 17.128, Аноним (-), 17:57, 24/01/2012 [ответить]  
  • +/
    А, ну конечно В качестве примеров языков программирования следует приводить лиш... текст свёрнут, показать
     
  • 17.150, arisu (ok), 02:14, 25/01/2012 [ответить]  
  • +/
    то ли дело няшный m vc как там дела с поддержкой C99 что, всё по-прежнему ах,... текст свёрнут, показать
     
  • 15.137, 1 (??), 19:48, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А ты это писал в файлик с расширением c или cpp попробуй файлик с расшире... текст свёрнут, показать
     
  • 15.139, 1 (??), 19:51, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А ты это писал в файлик с расширением c или cpp попробуй файлик с расшире... текст свёрнут, показать
     
  • 14.111, Ваня (??), 17:19, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ещё раз поднимите глаза где я это утверждал и прочтите 2 раза Если не поймёте о... текст свёрнут, показать
     
     
  • 15.114, Аноним (-), 17:29, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Утверждали Вы Так вот, открываю Вам Америку структура данных 8212 довольно ... текст свёрнут, показать
     
     
  • 16.115, Ваня (??), 17:32, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А теперь ещё выше, ответом на что были мои слова Даю подсказку я спросил что т... текст свёрнут, показать
     
     
  • 17.120, Аноним (-), 17:41, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Еще раз поднимите глаза к своему вопросу про бинарную совместимость и прочтите 2... большой текст свёрнут, показать
     
     
  • 18.124, Ваня (??), 17:46, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Вот уж не знал что в скомпилированном коде структуры живут своей отдельной жизнь... текст свёрнут, показать
     
     
  • 19.126, Аноним (-), 17:51, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Теперь вы вообще высасываете выводы из пальца или еще из какого-то органа Прочи... текст свёрнут, показать
     
  • 13.143, xxx (??), 22:57, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    gt оверквотинг удален Это строки из той самой известной Божественной комедии ... текст свёрнут, показать
     
     
  • 14.166, Ваня (??), 12:12, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Вовсе нет 8-байтный указатель сохранили как верхнюю и нижнюю часть чтобы не п... текст свёрнут, показать
     
     
  • 15.169, xxx (??), 12:36, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Эт, понятно и нормально Мне больше нравится не писать с использованием так назы... текст свёрнут, показать
     
     
  • 16.175, Ваня (??), 13:33, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Вы пожаловались на ад, я объяснил нормальность и услышал это понятно и нормальн... текст свёрнут, показать
     
  • 15.176, Аноним (-), 13:36, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А мне нравится решение, в котором ваш код окружён строчками code if sizeof v... большой текст свёрнут, показать
     
     
  • 16.183, Ваня (??), 14:25, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вы в шаг от моего любимого a b c if a b c ... текст свёрнут, показать
     
  • 9.77, Аноним (-), 15:15, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Чуров нервно покуривает в сторонке ... текст свёрнут, показать
     
     
  • 10.98, Ваня (??), 16:52, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    В сях вы ещё девственны Ох, как много вам ещё предстоит узнать ... текст свёрнут, показать
     
     
  • 11.106, Аноним (-), 17:09, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Угу, особенно про побитное выравнивание данных в памяти ... текст свёрнут, показать
     
  • 11.108, Аноним (-), 17:14, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Да, загнать столько данных в 9 битов - даже волшебнику Чурову слабо ... текст свёрнут, показать
     
     
  • 12.131, XPEH (?), 18:45, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Особенно радует однобитный float ... текст свёрнут, показать
     
     
  • 13.151, arisu (ok), 02:17, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    ыыыыыы а я сразу-то и не приметил да ванюша просто мегаотжигает сегодня ... текст свёрнут, показать
     
  • 13.167, Ваня (??), 12:13, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Просто пример Возможности языка это позволяют ... текст свёрнут, показать
     
     
  • 14.177, Аноним (-), 13:38, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Угу, только выравнивания адресов по границе N байт в памяти никто не отменял На... текст свёрнут, показать
     
     
  • 15.184, Ваня (??), 14:33, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Хмм Язык Си может использоваться для написания программ только на процессорах... текст свёрнут, показать
     
     
  • 16.196, Аноним (-), 23:01, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Язык Си может использоваться для написания программ только на процессорах, для к... текст свёрнут, показать
     
     
  • 17.199, Ваня (??), 11:02, 26/01/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Можно написать программу для процессора в котором 10 бит - да, можно скомпилиров... текст свёрнут, показать
     
  • 14.182, XPEH (?), 14:17, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Очередной пример вашего невежества, да ... текст свёрнут, показать
     
  • 9.92, анонимус (??), 16:00, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, не все К примеру, для высокопроизводительных числодробилок можно написать ... текст свёрнут, показать
     
     
  • 10.100, Ваня (??), 16:56, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Поправлюсь если возможности языка это позволяют Сути это не меняет бинарные д... текст свёрнут, показать
     
     
  • 11.110, Аноним (-), 17:19, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А вот хрен Возьмите к примеру сишную строку Её размер не известен заранее и мо... текст свёрнут, показать
     
     
  • 12.112, Ваня (??), 17:23, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Строка не сишная , а ASCII-Z Это просто формат Вам знакомо слово формат И ... текст свёрнут, показать
     
     
  • 13.118, Аноним (-), 17:36, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    В данном случае, дражайший, строка 8212 это тип Сишной функции strcat МОЖНО ... текст свёрнут, показать
     
     
  • 14.121, Ваня (??), 17:43, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В Си нет типа строка Этим он отличается от многих ЯВУ, и максимально приближен ... текст свёрнут, показать
     
     
  • 15.125, Аноним (-), 17:48, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Зато он есть в паскале В си есть тип указатель на символ , посредством которог... текст свёрнут, показать
     
     
  • 16.127, Ваня (??), 17:56, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще то в Паскале никто не запрещает создать динамический массив типа СИМВОЛ ... текст свёрнут, показать
     
     
  • 17.129, Аноним (-), 18:05, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Proof or GTFO ... текст свёрнут, показать
     
     
  • 18.133, анонимус (??), 19:04, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Я понять не могу, вы чего к паскалевской строке докопались - вы можете создать у... текст свёрнут, показать
     
     
  • 19.161, Аноним (-), 09:41, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А адресную арифметику потом использовать И да, Pascal Object Pascal Так и с... текст свёрнут, показать
     
  • 16.156, anonymous vulgaris (?), 02:40, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Вы бы почитали что ли про паскаль что нибудь, ну там где про указатели пишут что... текст свёрнут, показать
     
     
  • 17.163, Аноним (-), 09:44, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    В Pascal нет указателей Вообще Спросите хоть Никлауса Вирта А всякие монстры ... текст свёрнут, показать
     
     
  • 18.168, Ваня (??), 12:15, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В советском самоучителе Паскаля 1976 года указатели уже были ... текст свёрнут, показать
     
     
  • 19.178, Аноним (-), 13:39, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, советскому самоучителю явно лучше знать, чем тому, кто этот язык создал ... текст свёрнут, показать
     
  • 19.186, userd (ok), 15:23, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    У меня нет такого самоучителя, но могу предположить, что адресной арифметики не ... текст свёрнут, показать
     
     
  • 20.187, Ваня (??), 15:54, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ну уж не знаю В Си мне new delete они же malloc free для манипуляции ASCII-... текст свёрнут, показать
     
  • 21.188, userd (ok), 18:00, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Наверное, давно это было В C нет new delete это в C , только malloc free Но ... текст свёрнут, показать
     
  • 22.200, Ваня (??), 11:06, 26/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Я открою вам Америку 1 программа в конечном счёте будет выполняться в среде ОС... текст свёрнут, показать
     
  • 23.201, arisu (ok), 11:09, 26/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    ванюша, ну вот зачем ты опять полез туда, где ничего не смыслишь нет, я понимаю... текст свёрнут, показать
     
  • 21.190, arisu (ok), 19:50, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    171 Мария Колыванова, она же Манька Облигация 187 , ага мало того, что в C н... текст свёрнут, показать
     
  • 12.155, anonymous vulgaris (?), 02:32, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    20 лет анабиоза, я бы тоже так хотел Delphi strings are a complete replacement f... текст свёрнут, показать
     
     
  • 13.157, arisu (ok), 03:45, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    так у тебя и 8230 Delphi 8212 не паскаль, а Delphi ... текст свёрнут, показать
     

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

  • 1.19, Аноним (-), 13:01, 24/01/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    А чем их vala не устроила?
    И безопасность, а автоуправление памятью, и распараллеливание - всё есть.
    И не нужно ждать пока оптимизатор допилят - вала компилируется в С, для которого всё уже заоптимизировано по самое не балуйся :)
     
     
  • 2.23, Ищавин (ok), 13:08, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Наверное потому, что Вала отдает Джавой и пошарпанным Си.
     
     
  • 3.27, anonymous (??), 13:19, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    ну и?
     
     
  • 4.71, Ищавин (ok), 15:01, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это значит пока хардкорной оптимизации и невероятно сложное прогнозирование скорости исполнения кода.
     
  • 3.38, namefields (?), 13:41, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что профиль dova (без glib) так и не доведён до рабочей альфы.
     
  • 3.208, Аноним (-), 11:30, 29/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Наверное потому, что Вала отдает Джавой и пошарпанным Си.

    Она просто не ими написана :D:D:D:D:D

     
  • 2.44, all_glory_to_the_hypnotoad (ok), 13:56, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    в вале вроде полное ООП головного мозга? Это как бы не очень хорошо.
     
  • 2.48, Аноним (-), 14:02, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А чем их vala не устроила?

    NIH. Каждая команда должна написать свою операционку, браузер и язык программирования. Даже если половина из них будут нафиг никому не нужны :)

     
     
  • 3.209, Аноним (-), 11:30, 29/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >> А чем их vala не устроила?
    > NIH. Каждая команда должна написать свою операционку, браузер и язык программирования.
    > Даже если половина из них будут нафиг никому не нужны :)

    Фатальный недостаток же :D:D:D:D

     
  • 2.86, Crazy Alex (??), 15:33, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Лучше скажите, чем их D не устроил. Тут же соврешенно явно по мотивам написано, и сложность не меньше. С другой стороны - язык, в общем-то, инетересный. После того как понаступают на грабли и выпустят следующую версию (как у D  и было, и как бывает у любого языка с кучей экспериментальных фич) - может оказаться вполне рабочим. И даже если нет - это полигон дя обкатки этих самых фич, а особенно - их взаимодействия, на которое и приходится 90% проблем. Так что как ни крути - хорошо, что делают.
     
  • 2.130, netch (ok), 18:27, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А чем их vala не устроила?
    > И безопасность, а автоуправление памятью, и распараллеливание - всё есть.
    > И не нужно ждать пока оптимизатор допилят - вала компилируется в С,
    > для которого всё уже заоптимизировано по самое не балуйся :)

    Rust, Vala, D, Go, ещё десяток других...
    Я думаю, просто дошли до того уровня технологий, когда такой язык (и переводчик из него в Си, чтобы не мучаться с глубинным уровнем компиляции и взять готовые средства) способен написать любой продвинутый студент. И теперь идёт борьба вариантов.

    Я бы апеллировал в этой возне за Go, если бы он не был таким эстетически уродливым (чисто на мой вкус), а за 0 как префикс восьмеричной константы в XXI веке и прочие раритеты я бы просто расстреливал на месте. В Rust хоть этого нет - чуть лучше умеют чиститься от прошлых гадостей. Но надо смотреть и на другие особенности.

     

  • 1.52, qwerty (??), 14:08, 24/01/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот зачем в определении функции добавлять fn, с ним синтаксис выглядит как-то коряво.
     
     
  • 2.68, Crazy Alex (??), 14:54, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Там у них этого "зачем" - талмуд написать можно. А еще больше будет, когда попытаются со всем этим взлететь. Уже то, что тип  структуры определяется её полями, а не именем, создаст им массу проблем вида "суммируем груши с чемоданами".
     
     
  • 3.79, Аноним (-), 15:19, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > проблем вида "суммируем груши с чемоданами".

    И получаем чемодан груш. Вроде все логично :)

     
     
  • 4.85, Crazy Alex (??), 15:30, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Это если код ожидал, что получит груши и чемоданы. А тут скорее получим чемоданогрушу... ну или грушечемодан, как больше нравится.
     
  • 4.89, all_glory_to_the_hypnotoad (ok), 15:35, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    чемодан груш, это, очевидно, чемодан умноженный на грушу, а не сумма.
     
  • 3.123, userd (ok), 17:46, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Однако, груши с чемоданами сложатся только тогда, когда их программист сложит.
    Ослабление статического контроля типов, конечно, может показаться регрессом по сравнению со многими другими языками. Нужно смотреть, что такой ценой "покупается".
     
  • 3.138, mf (ok), 19:48, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >Уже то, что тип  структуры определяется её полями, а не именем...

    Для библиотек на динамических языках это норма и называется duck typing, может для этого.

     
  • 2.101, userd (ok), 17:04, 24/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот зачем в определении функции добавлять fn, с ним синтаксис выглядит как-то коряво.

    Вероятно, для грамматики LL(1).
    Довольно полезное свойство для ускорения компиляции и формирования понятных сообщений.

     
     
  • 3.144, Crazy Alex (ok), 00:04, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    И поэтому они сделали шаблоны через <>...
     
     
  • 4.154, arisu (ok), 02:25, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > И поэтому они сделали шаблоны через <>…

    а это уже потому, что: «а? как? что? можно и по-другому? ёлы-палы… алё! пацаны! срочно всё переделываем, тут малява пришла, что шаблоны можно делать и не так, как в C++!»

     
  • 4.185, userd (ok), 14:51, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Если рассматривать шаблон как своего рода функцию, то использование круглых скобок было бы предпочтительнее. Но автор решил использовать <>, и написал подходящую LL(1) грамматику. Очевидно, автор не собирается параметризовать шаблоны произвольными выражениями, а только именами типов. Поэтому затруднений подобных затруднениям при компиляции шаблонов в C++ нет.

    Право слово, на практике применялись языки с более серьёзными заморочками в синтаксисе.
    Вспомните PL/I или Pick BASIC. В первоначальном варианте языка C были операторы типа =+, которые потом заменились на +=. А тут версия 0.1, всё ещё может измениться.

     
     
  • 5.194, arisu (ok), 20:35, 25/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    на самом деле всё выглядит намного проще: дизайном языка никто не занимался. собралась Могучая Кучка и решила, что вместо нормального дизайна вполне покатит солянка из фич. не то, чтобы это было очень плохо, но всё-таки…
     
     
  • 6.197, Crazy Alex (ok), 04:28, 26/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, у меня такое же впечатление собралось. Это не просто не плохо - это очень полезно - в отличие от тщательно разработанной системы такая солянка даёт довольно свободно добавлять/удалять/менять фичи, так что в смысле наработки опыта создания языков тут очень много выгод. А взлетит/не взлетит - от качества языка, конечно зависит - но весьма слабо. Чего стоит только веб - подавляющее большинство серверов - PHP, а на клиентах застрял JS (и эти люди называют Перл write-only языком!). На их фоне проблемы какого-нибудь D или Rust - детские игры. Хотя PHP сейчас сильно окультурили, конечно - вон, даже типизацию тихой сапой вводят.
     
     
  • 7.198, arisu (ok), 04:36, 26/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    js нормальный вполне, хоть и корявый немного.

    а вот насчёт создания языка… оно, конечно, ничего бы — но авторы, я так понимаю, делают это на деньги тормозилла фаундэйшн? честное слово: если бы я давал тормозилле денег, то немедленно бы прекратил. я понимаю, когда студенты от избытка сил играют в то, во что взрослые уже наигрались и знают, как не надо делать; но когда достаточно взрослые и опытные, вроде бы, лбы — и занимаются тем же самым, да ещё и на зарплате… неплохо устроились, тоже хочу ваньку валять за деньги. да хоть здешнего.

     

  • 1.152, Аноним (-), 02:19, 25/01/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Я не знаю как популярен станет этот язык,
    но название реализации от МикроСофт должно начинатся с приставки Пидо
     
  • 1.204, eigrad (ok), 06:33, 27/01/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    во, неужели наконец альтернатива так и не взлетевшему D нарисовалась?
     

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



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

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