Мейнстримных языков подобных пока толком не наблюдается. Сплошные жабы да дотнеты и поверх них скалы и F#. Окамл разве что, но его массово не наблюдается.
Эмбрионная стадия: все время меняется и само пока не особо жизнеспособно. Там GC-то уже сделали или все еще только собираются? Хотя в защиту говорит то, что вроде как оно self-hosted, компилятор на нем самом.
Разговоров о нем много последнее время, но реальных проектов не видно, что вполне ожидаемо на такой стадии.
Тот же Nemerle уже сколько лет пилится силами чуть более чем одного человека - и где он до сих пор? Где реальные проекты? Где развитие? Не мейнстримовые языки не нужны.
Я уже довольно давно веду список языков-кандидатов на замену 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
Как-то это не подтверждается на реальном коде http://benchmarksgame.alioth.debian.org/ По ссылке - набор задачек, каждый может засабмитить свое решение на любом популярном языке, а некоторый набор машин-конфигураций автоматически его соберет-протестирует. Я давно туда не заглядывал, но не видел жавы обгоняющей те же C/C++.
Я пробовал на нем писать. В принципе пока мне очень все нравится. Я слежу за развитием этого языка почти с самого начала, еще с тех времен, когда ничего кроме спецификации небыло. С тех пор язык довольно сильно поменялся. Например, они убрали классы, решив, что структуры вполне себе их заменят. Они убрали typestate, потому что им никто не пользовался. В принципе, язык позволяет делать то же, что и С++, например, он умеет статический полиморфизм, но, в отличии от С++, он умеет это правильно. Например, я могу специализировать какую либо обобщенную сущьность для параметра определенного типа, как в с++, но для эмуляции разных языковых фич я использовать дженерики не буду, так как для этого есть совсем другой механизм (с помощью которого реализовано printf style форматирование с проверкой типов на стадии компиляции, как пример). Для параметров типов можно задавать type bounds и получать вменяемые сообщения об ошибках.
Самое вкусное в Rust, это легковесные потоки и модель памяти. Один легковесный поток занимает порядка килобайта памяти, их можно плодить в огромных количествах и строить свои абстракции на них, как в erlang. Модель памяти, это три типа владения объектами - owned, borrowed и managed указатели, ну и соответственно, возможность размещения объектов на стеке, в хипе(локальном для каждого потока) и в exchange heap, на объекты из которого можно ссылаться только через уникальный указатель, соотв. в языке реализована move semantics аки в с++ для таких указателей. В подробности вдаваться не буду, любой может почитать у них на сайте об этом. Насколько я понимаю, в самом начале чуваки как следует подумали на тему - как сделать так, чтобы простой dataflow анализ смог показать, может ли указатель быть безопасно разименован и, в итоге, пришли к такой модели.
Сейчас rust можно скачать, собрать (оно часа полтора собирается, не меньше, ибо тянет с собой LLVM и яростно его билдит) и даже написать чего нибудь. С библиотеками сейчас совсем все печально, на github совсем мало проектов на rust и они, как правило, игрушечные.
С golang его сравнивать глупо, go - на мой взгляд, скорее замена для питона на серверах гугла, а не замена С++ или С. А Rust, как раз для системного программирования, правда, у него есть свой runtime, его нельзя использовать как Си - без стандартной библиотеки.
no subject
no subject
no subject
(no subject)
no subject
no subject
в свою очередь, а этот критерий действительно необычен?
no subject
Окамл разве что, но его массово не наблюдается.
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
no subject
no subject
(no subject)
no subject
нет нет нет
нет
нет нет
нет нет нет нет
нет
не надо
(no subject)
(no subject)
(no subject)
no subject
no subject
Погляди на ерланг лучше -- он ближе к реальности.
no subject
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
no subject
http://en.wikipedia.org/wiki/D_(programming_language)
http://en.wikipedia.org/wiki/Go_language
no subject
Хотя в защиту говорит то, что вроде как оно self-hosted, компилятор на нем самом.
Разговоров о нем много последнее время, но реальных проектов не видно, что вполне ожидаемо на такой стадии.
no subject
(no subject)
(no subject)
no subject
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
no subject
(no subject)
(no subject)
(no subject)
(no subject)
(Anonymous) - 2013-01-27 12:11 (UTC) - Expand(no subject)
no subject
Сейчас джит делает код поэффективнее, чем статик компилятор.
no subject
http://benchmarksgame.alioth.debian.org/
По ссылке - набор задачек, каждый может засабмитить свое решение на любом популярном языке, а некоторый набор машин-конфигураций автоматически его соберет-протестирует. Я давно туда не заглядывал, но не видел жавы обгоняющей те же C/C++.
no subject
no subject
(no subject)
(no subject)
(Anonymous) - 2013-01-26 12:21 (UTC) - Expandno subject
Первый же вопрос — а что там такого, чего нет в уже существующем?
Убрали побольше фишек, чтобы не было очень страшно?
no subject
(no subject)
no subject
no subject
no subject
Но смотрю на него с надеждой - давно хочу язык для втсраиваемых систем и быструю мозилу ;-).
no subject
ну или для метросексуалов - lua
no subject
В принципе, язык позволяет делать то же, что и С++, например, он умеет статический полиморфизм, но, в отличии от С++, он умеет это правильно. Например, я могу специализировать какую либо обобщенную сущьность для параметра определенного типа, как в с++, но для эмуляции разных языковых фич я использовать дженерики не буду, так как для этого есть совсем другой механизм (с помощью которого реализовано printf style форматирование с проверкой типов на стадии компиляции, как пример). Для параметров типов можно задавать type bounds и получать вменяемые сообщения об ошибках.
Самое вкусное в Rust, это легковесные потоки и модель памяти. Один легковесный поток занимает порядка килобайта памяти, их можно плодить в огромных количествах и строить свои абстракции на них, как в erlang. Модель памяти, это три типа владения объектами - owned, borrowed и managed указатели, ну и соответственно, возможность размещения объектов на стеке, в хипе(локальном для каждого потока) и в exchange heap, на объекты из которого можно ссылаться только через уникальный указатель, соотв. в языке реализована move semantics аки в с++ для таких указателей. В подробности вдаваться не буду, любой может почитать у них на сайте об этом. Насколько я понимаю, в самом начале чуваки как следует подумали на тему - как сделать так, чтобы простой dataflow анализ смог показать, может ли указатель быть безопасно разименован и, в итоге, пришли к такой модели.
Сейчас rust можно скачать, собрать (оно часа полтора собирается, не меньше, ибо тянет с собой LLVM и яростно его билдит) и даже написать чего нибудь. С библиотеками сейчас совсем все печально, на github совсем мало проектов на rust и они, как правило, игрушечные.
С golang его сравнивать глупо, go - на мой взгляд, скорее замена для питона на серверах гугла, а не замена С++ или С. А Rust, как раз для системного программирования, правда, у него есть свой runtime, его нельзя использовать как Си - без стандартной библиотеки.
no subject
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
no subject
(no subject)