metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2013-01-25 06:43 pm

Компилируемый язык с статик типами и GC?

http://www.rust-lang.org/
Кто-нибудь на сие смотрел, чем оно полезно и зачем?

[identity profile] denisioru.livejournal.com 2013-01-25 03:47 pm (UTC)(link)
Очередная чья-то самодельная херня?

[identity profile] demmonoid.livejournal.com 2013-01-25 03:53 pm (UTC)(link)
Ну Mozilla же.

[identity profile] gds.livejournal.com 2013-01-25 03:55 pm (UTC)(link)
в контексте языков программирования этот вопрос слишком универсален, чтобы ответ на него мог сообщить какую-либо дополнительную информацию.

(no subject)

[identity profile] nivanych.livejournal.com - 2013-01-26 01:30 (UTC) - Expand

[identity profile] metaclass.livejournal.com 2013-01-25 04:06 pm (UTC)(link)
Да не совсем, фуррифоксовцы ее клепают.

[identity profile] gds.livejournal.com 2013-01-25 04:10 pm (UTC)(link)
> Компилируемый язык с статик типами и GC?

в свою очередь, а этот критерий действительно необычен?

[identity profile] metaclass.livejournal.com 2013-01-25 04:24 pm (UTC)(link)
Мейнстримных языков подобных пока толком не наблюдается. Сплошные жабы да дотнеты и поверх них скалы и F#.
Окамл разве что, но его массово не наблюдается.

(no subject)

[identity profile] gds.livejournal.com - 2013-01-25 16:25 (UTC) - Expand

(no subject)

[identity profile] nivanych.livejournal.com - 2013-01-26 01:31 (UTC) - Expand

(no subject)

[identity profile] gds.livejournal.com - 2013-01-26 09:00 (UTC) - Expand

(no subject)

[identity profile] thedeemon.livejournal.com - 2013-01-25 17:16 (UTC) - Expand

(no subject)

[identity profile] jakobz.livejournal.com - 2013-01-25 17:19 (UTC) - Expand

[identity profile] dair-spb.livejournal.com 2013-01-25 04:15 pm (UTC)(link)
А гуглоподелие (http://golang.org) не?

[identity profile] metaclass.livejournal.com 2013-01-25 04:20 pm (UTC)(link)
Rust этот выглядит гуманнее как-то :)

[identity profile] eternal-leave.livejournal.com 2013-01-25 05:05 pm (UTC)(link)
Он весьма странно компилируемый.

(no subject)

[identity profile] avnik.livejournal.com - 2013-01-25 17:38 (UTC) - Expand

[identity profile] theiced.livejournal.com 2013-01-26 04:18 pm (UTC)(link)
нет
нет нет нет
нет
нет нет
нет нет нет нет
нет
не надо

(no subject)

[identity profile] kiryl.livejournal.com - 2013-01-26 16:32 (UTC) - Expand

(no subject)

[identity profile] theiced.livejournal.com - 2013-01-26 16:41 (UTC) - Expand

(no subject)

[identity profile] schrdinger's cat - 2013-01-28 05:58 (UTC) - Expand

[identity profile] andrew kondratovich (from livejournal.com) 2013-01-25 04:38 pm (UTC)(link)
окамл

[identity profile] avnik.livejournal.com 2013-01-25 04:43 pm (UTC)(link)
Выглядит сыровато, но обещающе.
Погляди на ерланг лучше -- он ближе к реальности.

[identity profile] jakobz.livejournal.com 2013-01-25 05:20 pm (UTC)(link)
Эрланг не компилируемый и без типов.

(no subject)

[identity profile] avnik.livejournal.com - 2013-01-25 17:29 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2013-01-25 17:30 (UTC) - Expand

(no subject)

[identity profile] avnik.livejournal.com - 2013-01-25 17:41 (UTC) - Expand

(no subject)

[identity profile] zerthurd.livejournal.com - 2013-01-26 06:50 (UTC) - Expand

(no subject)

[identity profile] thedeemon.livejournal.com - 2013-01-26 12:28 (UTC) - Expand

(no subject)

[identity profile] kurilka.livejournal.com - 2013-01-26 17:06 (UTC) - Expand

(no subject)

[identity profile] zerthurd.livejournal.com - 2013-01-27 17:02 (UTC) - Expand

(no subject)

[identity profile] jakobz.livejournal.com - 2013-01-25 17:37 (UTC) - Expand

(no subject)

[identity profile] avnik.livejournal.com - 2013-01-25 17:42 (UTC) - Expand

(no subject)

[identity profile] jakobz.livejournal.com - 2013-01-25 17:45 (UTC) - Expand

(no subject)

[identity profile] kurilka.livejournal.com - 2013-01-26 09:45 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2013-01-28 03:18 (UTC) - Expand

[identity profile] dmzlj.livejournal.com 2013-01-25 04:44 pm (UTC)(link)
оно пока недоделано

[identity profile] thedeemon.livejournal.com 2013-01-25 05:11 pm (UTC)(link)
Эмбрионная стадия: все время меняется и само пока не особо жизнеспособно. Там GC-то уже сделали или все еще только собираются?
Хотя в защиту говорит то, что вроде как оно self-hosted, компилятор на нем самом.

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

[identity profile] denisioru.livejournal.com 2013-01-26 05:17 am (UTC)(link)
Тот же Nemerle уже сколько лет пилится силами чуть более чем одного человека - и где он до сих пор? Где реальные проекты? Где развитие? Не мейнстримовые языки не нужны.

(no subject)

[identity profile] thedeemon.livejournal.com - 2013-01-26 12:32 (UTC) - Expand

(no subject)

[identity profile] denisioru.livejournal.com - 2013-01-26 12:58 (UTC) - Expand

[identity profile] geeks-ru.livejournal.com 2013-01-25 06:06 pm (UTC)(link)
Я уже довольно давно веду список языков-кандидатов на замену C/C++, сейчас там значатся:
D http://www.digitalmars.com/d
Go http://golang.org
HaXe http://haxe.org
Vala http://live.gnome.org/Vala
Clay http://claylabs.com/clay
Nimrod http://force7.de/nimrod/index.html
Zimbu http://www.zimbu.org
OOC http://docs.ooc-lang.org
Brace http://sam.ai.ki/brace
Rust http://www.rust-lang.org
C2 http://www.c2lang.org
SafeC http://chat-webcam-samuro.com/safe-c/start-en.html
BitC http://www.bitc-lang.org
Cyclone http://cyclone.thelanguage.org

[identity profile] blackyblack.livejournal.com 2013-01-26 07:03 am (UTC)(link)
Окамл не замена что ли? Или С подобный синтаксис требуется?

(no subject)

[identity profile] thedeemon.livejournal.com - 2013-01-26 07:54 (UTC) - Expand

(no subject)

[identity profile] gds.livejournal.com - 2013-01-26 11:53 (UTC) - Expand

(no subject)

[identity profile] thedeemon.livejournal.com - 2013-01-26 12:27 (UTC) - Expand

(no subject)

(Anonymous) - 2013-01-27 12:11 (UTC) - Expand

(no subject)

[identity profile] thedeemon.livejournal.com - 2013-01-28 03:49 (UTC) - Expand

[identity profile] andrew kondratovich (from livejournal.com) 2013-01-25 07:46 pm (UTC)(link)
Кстати да - с каких пор джит уже не компилируемый )

Сейчас джит делает код поэффективнее, чем статик компилятор.

[identity profile] vaddimka.livejournal.com 2013-01-26 04:10 pm (UTC)(link)
Как-то это не подтверждается на реальном коде
http://benchmarksgame.alioth.debian.org/
По ссылке - набор задачек, каждый может засабмитить свое решение на любом популярном языке, а некоторый набор машин-конфигураций автоматически его соберет-протестирует. Я давно туда не заглядывал, но не видел жавы обгоняющей те же C/C++.

[identity profile] mehanizator.livejournal.com 2013-01-25 08:40 pm (UTC)(link)
под jvm же полно их

[identity profile] metaclass.livejournal.com 2013-01-25 08:51 pm (UTC)(link)
Забыл уточнить, что мне нужен стандалоне язык - чтобы с собой рантаймы на 100 мег не таскать, не деплоить и не зависеть от них.

(no subject)

[identity profile] mehanizator.livejournal.com - 2013-01-25 22:13 (UTC) - Expand

(no subject)

(Anonymous) - 2013-01-26 12:21 (UTC) - Expand

[identity profile] nivanych.livejournal.com 2013-01-26 01:34 am (UTC)(link)
Вот нахера это делают?
Первый же вопрос — а что там такого, чего нет в уже существующем?
Убрали побольше фишек, чтобы не было очень страшно?

[identity profile] thedeemon.livejournal.com 2013-01-26 04:08 am (UTC)(link)
См. его модель памяти и подход к многопоточности. Все ради этого.

(no subject)

[identity profile] nivanych.livejournal.com - 2013-01-26 06:30 (UTC) - Expand

[identity profile] veter-r-r.livejournal.com 2013-01-26 12:10 pm (UTC)(link)
Ребе, да напишите же уже свой язык с червями и змеями. Все равно вам там заняться нечем :)

[identity profile] ivanzoid.livejournal.com 2013-01-26 03:46 pm (UTC)(link)
В рамках флуда — вот ещё есть компилятор Java (кучу денег стоит правда): http://www.excelsior-usa.com/products.html

[identity profile] potan.livejournal.com 2013-01-26 09:41 pm (UTC)(link)
Пока сырой. И GC у него странный.
Но смотрю на него с надеждой - давно хочу язык для втсраиваемых систем и быструю мозилу ;-).

[identity profile] theiced.livejournal.com 2013-01-26 10:26 pm (UTC)(link)
guile же
ну или для метросексуалов - lua

[identity profile] schrdinger's cat (from livejournal.com) 2013-01-27 04:15 pm (UTC)(link)
Я пробовал на нем писать. В принципе пока мне очень все нравится. Я слежу за развитием этого языка почти с самого начала, еще с тех времен, когда ничего кроме спецификации небыло. С тех пор язык довольно сильно поменялся. Например, они убрали классы, решив, что структуры вполне себе их заменят. Они убрали typestate, потому что им никто не пользовался.
В принципе, язык позволяет делать то же, что и С++, например, он умеет статический полиморфизм, но, в отличии от С++, он умеет это правильно. Например, я могу специализировать какую либо обобщенную сущьность для параметра определенного типа, как в с++, но для эмуляции разных языковых фич я использовать дженерики не буду, так как для этого есть совсем другой механизм (с помощью которого реализовано printf style форматирование с проверкой типов на стадии компиляции, как пример). Для параметров типов можно задавать type bounds и получать вменяемые сообщения об ошибках.

Самое вкусное в Rust, это легковесные потоки и модель памяти. Один легковесный поток занимает порядка килобайта памяти, их можно плодить в огромных количествах и строить свои абстракции на них, как в erlang. Модель памяти, это три типа владения объектами - owned, borrowed и managed указатели, ну и соответственно, возможность размещения объектов на стеке, в хипе(локальном для каждого потока) и в exchange heap, на объекты из которого можно ссылаться только через уникальный указатель, соотв. в языке реализована move semantics аки в с++ для таких указателей. В подробности вдаваться не буду, любой может почитать у них на сайте об этом. Насколько я понимаю, в самом начале чуваки как следует подумали на тему - как сделать так, чтобы простой dataflow анализ смог показать, может ли указатель быть безопасно разименован и, в итоге, пришли к такой модели.

Сейчас rust можно скачать, собрать (оно часа полтора собирается, не меньше, ибо тянет с собой LLVM и яростно его билдит) и даже написать чего нибудь. С библиотеками сейчас совсем все печально, на github совсем мало проектов на rust и они, как правило, игрушечные.

С golang его сравнивать глупо, go - на мой взгляд, скорее замена для питона на серверах гугла, а не замена С++ или С. А Rust, как раз для системного программирования, правда, у него есть свой runtime, его нельзя использовать как Си - без стандартной библиотеки.
Edited 2013-01-27 16:18 (UTC)

[identity profile] kurilka.livejournal.com 2013-01-27 04:20 pm (UTC)(link)
Немного тяжеловаты легковесные потоки - http://thesz.livejournal.com/954916.html

(no subject)

[identity profile] schrdinger's cat - 2013-01-27 18:14 (UTC) - Expand

(no subject)

[identity profile] kurilka.livejournal.com - 2013-01-27 18:30 (UTC) - Expand

(no subject)

[identity profile] berezovsky.livejournal.com - 2013-01-27 18:33 (UTC) - Expand

(no subject)

[identity profile] kurilka.livejournal.com - 2013-01-27 18:34 (UTC) - Expand

(no subject)

[identity profile] berezovsky.livejournal.com - 2013-01-27 18:45 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2013-01-27 17:13 (UTC) - Expand

[identity profile] migmit.livejournal.com 2013-01-28 06:48 am (UTC)(link)
Ну, ихние дженерики совмещают худшие черты настоящих дженериков и плюсовых шаблонов, а так, вроде, всё хорошо.

[identity profile] schrdinger's cat (from livejournal.com) 2013-01-28 07:17 am (UTC)(link)
Аргументация?

(no subject)

[identity profile] migmit.livejournal.com - 2013-01-28 09:51 (UTC) - Expand