Автор Тема: Вышел Rust 0.2  (Прочитано 9591 раз)

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Вышел Rust 0.2
« : Апрель 05, 2012, 12:31:34 pm »
http://www.opennet.ru/opennews/art.shtml?num=33534

Цитировать
Увидел свет релиз экспериментального языка программирования Rust 0.2, развиваемого проектом Mozilla. Rust является языком со строгой типизацией, сфокусированным на безопасной работе с памятью и обеспечении высокого параллелизма выполнения заданий. Об особенностях Rust можно прочитать в анонсе первой версии проекта. Во втором выпуске расширено число поддерживаемых целевых платформ, кроме Linux (x86 и x86_64), Mac OS X (x86 и x86_64) и Windows (x86), добавлена поддержка FreeBSD (x86_64). Всего с момента выхода версии 0.1 внесено около 1500 изменений.

Из улучшений можно отметить: поддержка callback-вызовов из программ на языке Си, увеличение производительности передачи сообщений между нитями, поддержка в языке перегрузки операторов, классов и указателей на регионы, реализация новых конструкций 'loop { ... }', 'crust fn ...', 'export foo::*;', новые модули core::{future, iter} и std::arena.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Вышел Rust 0.2
« Ответ #1 : Апрель 05, 2012, 01:15:14 pm »
Эпоха безопасных языков прямо какая-то  :)

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Вышел Rust 0.2
« Ответ #2 : Апрель 05, 2012, 01:31:32 pm »
Ну, он не шибко безопасный. Хотя конечно безопасней Оберона.

Кстати, почему то у всех этих новомодных языков (начиная с Оберона, но может кто и раньше был) взяли в моду забивать на модульность. Для человека, а не для компилятора. То есть нет даже возможности на элементарное разделение на спецификацию и реализацию модуля. Что весьма печально.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Peter Almazov

  • Sr. Member
  • ****
  • Сообщений: 482
    • Просмотр профиля
Re: Вышел Rust 0.2
« Ответ #3 : Апрель 05, 2012, 01:34:18 pm »
Про тыщщупятьсот изменений - напомнило старый анекдот: "Я как-то поймал рыбу, одна фотография которой весила 15 тонн"  :)

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Вышел Rust 0.2
« Ответ #4 : Апрель 05, 2012, 01:37:11 pm »
Кстати, я тут на Go немного полезного для проекта пописал. Вполне себе язычок. Умеренно годный. Но из за отсутствия "обобщенки" там приходится делать в рантайме (посредством доступа к "метаинформации") то, что можно было бы сделать на этапе компиляции. Причем это на каждом шагу (по крайней мере в той области где я сейчас этот Go применяю). Поэтому ощущения от языка весьма похожи на ощущение от языка с динамической типизацией, хотя конечно все равно много лучше чем ощущения от того же питона например.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Вышел Rust 0.2
« Ответ #5 : Апрель 05, 2012, 01:39:54 pm »
...элементарное разделение на спецификацию и реализацию модуля. Что весьма печально.

Чет я не очень понял.  :) А с какой целью? (для человека)

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Вышел Rust 0.2
« Ответ #6 : Апрель 05, 2012, 01:47:24 pm »
...элементарное разделение на спецификацию и реализацию модуля. Что весьма печально.

Чет я не очень понял.  :) А с какой целью?
С целью последующей вменяемой работы с исходниками. Когда я вижу тонну кода мне совсем не интересно лазить по потрохам реализаций и пытаться выцепить что же оно там экспортирует и зачем. Мне интересно пройтись по спецификациям модулей писаным ЧЕЛОВЕКОМ с человеческими же коментариями для вводимых сущностей.

Например по исходникам библиотеки писаной на Аде (благодаря наличиям спецификаций) я разбираюсь много быстрее (то есть понимаю какое место либы мне интересно, и как с этим работать) чем скажем в библиотеках на java. Документация в виде сгенерированных html'ей обычно есть и для того и для другого (причем для явы оно бывает чаще и подробней). Плюс адские исходники я смотрю обычно в каком-нибудь shell+cat|less/mc/far, а жабные - в IDE (eclipse/netbeans), которые таки генерируют нечто вроде спецификации и позволяют интерактивно по ней лазить. Но Адские спеки на модули все равно удобней и читаемей просто потому, что их пишет человек, а не генерит аццкая железка из реализации.

Более того, если есть по человечески писаные хедеры для С++ кода (то есть это когда там не аццкого фарша из #ifdef'ов) то по ним я тоже разбираюсь в сути того что там делает программа и какие её места мне нужны и важны быстрее, чем скажем в программе на Обероне. Ну и уж в коллекции модулей писаных на Модуле2/3 разбираться на порядок проще чем в обероновской аналогичной коллекции.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Vartovyj

  • Full Member
  • ***
  • Сообщений: 197
    • Просмотр профиля
Re: Вышел Rust 0.2
« Ответ #7 : Апрель 05, 2012, 01:48:23 pm »
Кстати, я тут на Go немного полезного для проекта пописал.
На днях вышла 1 версия Go.
Какие еще впечатления от языка? Годится ли он как замена пхп, питона для написания, скажем, движка динамического сайта?

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Вышел Rust 0.2
« Ответ #8 : Апрель 05, 2012, 01:52:07 pm »
Кстати, я тут на Go немного полезного для проекта пописал.
На днях вышла 1 версия Go.
Какие еще впечатления от языка? Годится ли он как замена пхп, питона для написания, скажем, движка динамического сайта?
Я не великий знаток php/python и прочей ереси, опыта в использовании их у меня ну очень мало. Но использую сейчас Go как раз для сайта с ну о-очень динамическим контентом. С реалтаймовым контентом, я бы сказал. :-) И да, Go как раз версии 1.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Вышел Rust 0.2
« Ответ #9 : Апрель 05, 2012, 02:00:50 pm »
спеки на модули все равно удобней и читаемей просто потому, что их пишет человек, а не генерит аццкая железка из реализации.

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

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Вышел Rust 0.2
« Ответ #10 : Апрель 05, 2012, 02:09:47 pm »
спеки на модули все равно удобней и читаемей просто потому, что их пишет человек, а не генерит аццкая железка из реализации.

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

В ряде сценариев разработки (это обычно когда действительно большие проекты пишутся, а не на 12 тыс строк кода) удобней именно такой подход - когда спецификация первична, а реализация вторична и обязана удовлетворять даденой спецификации.

Но вначале, когда пишем hello-world'ы разной сложности и когда у нас околоскриптовое применение языка, явная ручная спецификация модулей конечно же мешает и смотрится как у собаки пятая нога.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Vartovyj

  • Full Member
  • ***
  • Сообщений: 197
    • Просмотр профиля
Re: Вышел Rust 0.2
« Ответ #11 : Апрель 05, 2012, 02:28:49 pm »
Я не великий знаток php/python и прочей ереси, опыта в использовании их у меня ну очень мало. Но использую сейчас Go как раз для сайта с ну о-очень динамическим контентом. С реалтаймовым контентом, я бы сказал. :-) И да, Go как раз версии 1.
Под Apache/ngnix или все самописное?
Это в этом проекте отсутствие обобщенки напрягает?

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Вышел Rust 0.2
« Ответ #12 : Апрель 05, 2012, 02:34:06 pm »
Я не великий знаток php/python и прочей ереси, опыта в использовании их у меня ну очень мало. Но использую сейчас Go как раз для сайта с ну о-очень динамическим контентом. С реалтаймовым контентом, я бы сказал. :-) И да, Go как раз версии 1.
Под Apache/ngnix или все самописное?
Это в этом проекте отсутствие обобщенки напрягает?
Используются стандартные либы Go. В том числе template/text и template/html. Ну, то есть они вне зависимости от сетевой части использовались бы (апач там или нет). Также используется модуль json. И там и там активно используется рефлекшн. То что могло бы делаться на этапе компиляции, делается в рантайме, со всеми растекающимися последствиями.

Да, а все крутится на google app engine.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Vartovyj

  • Full Member
  • ***
  • Сообщений: 197
    • Просмотр профиля
Re: Вышел Rust 0.2
« Ответ #13 : Апрель 06, 2012, 12:40:46 pm »
Да, а все крутится на google app engine.
Жаль, хотелось бы узнать про опыт написания полноценного независимого приложения.

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Вышел Rust 0.2
« Ответ #14 : Апрель 06, 2012, 01:01:34 pm »
Да, а все крутится на google app engine.
Жаль, хотелось бы узнать про опыт написания полноценного независимого приложения.
Полноценное независимое приложение пишется в точности так же. То есть мне код менять не придется (кроме гуглоспецифичных вещей вроде гугловой авторизации). И там и там используется стандартный пакет http.

Грубо говоря, код hello world'a на gae и standalone http server будет один и тот же.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"