Форум программистов, компьютерный форум, киберфорум
Наши страницы
Другие языки программирования
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.97/36: Рейтинг темы: голосов - 36, средняя оценка - 4.97
tezaurismosis
Администратор
Эксперт .NET
8714 / 3999 / 734
Регистрация: 17.04.2012
Сообщений: 8,774
Записей в блоге: 14
1

[Rust] Обсуждение возможностей и предстоящей роли языка Rust

12.02.2015, 04:38. Просмотров 7161. Ответов 121
Метки нет (Все метки)

Psilon, чем он тебя так привлек? И почему именно "убийца плюсов"?
Если напишешь развернутый ответ, обещаю вынести в отдельную тему и погонять компилятор пару часов дабы вступить в полемику
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2015, 04:38
Ответы с готовыми решениями:

[Rust] Как привязывать WinAPI-функции к коду на Rust?
Может кто-нить дать код, КАК привязывать вин апишные функции к растовскому коду (на примере...

Rust?
Доброе утро! Расскажите, пожалуйста, о своём опыте программирования на Rust. Можно в сравнении с...

[Rust] Time
Подскажите как узнать время в Rust. //Rust extern crate time; fn main() { let now =...

Подключение библиотеки в Rust lang
хочу подключить библиотеку glfw в проекте rust. я сделал как здесь получился следующий код ...

[Rust] impl для примитивного типа
Привет всем! Решаю задачку на codewars.com, а там, видимо, rust более ранней версии чем свежий,...

121
Psilon
Master of Orion
Эксперт .NET
6041 / 4898 / 903
Регистрация: 10.07.2011
Сообщений: 14,514
Записей в блоге: 5
Завершенные тесты: 4
12.02.2015, 12:02 2
tezaurismosis, Пересказывать чужие статьи - моветон, поэтому просто приложу ссылки:
http://habrahabr.ru/company/yandex/blog/235789/
http://habrahabr.ru/post/135712/
http://habrahabr.ru/post/237199/
http://habrahabr.ru/post/243315/
http://habrahabr.ru/post/244537/
http://habrahabr.ru/post/191916/
http://habrahabr.ru/post/239067/
http://habrahabr.ru/post/240617/
http://habrahabr.ru/post/239151/


Где-то видел ролик минут на 30 с хорошим описанием, но пока найти не могу...
2
tezaurismosis
Администратор
Эксперт .NET
8714 / 3999 / 734
Регистрация: 17.04.2012
Сообщений: 8,774
Записей в блоге: 14
12.02.2015, 15:14  [ТС] 3
 Комментарий модератора 
Эта тема выделена из другой темы: Насколько актуален сегодня C#
Здесь обсуждается абстрактная область, задачи которой Rust должен решать и послужит ли
он заменой языка C++.


Psilon, тему выделил, осталось теперь попробовать язык в действии.
Сразу хочу уточнить, ибо с OCaml'ом не связывался - почему такой интересный выбор языка для основы был сделан? Первый компилятор был на нём написан и заимствованы многие элементы синтаксиса - это стремление выйти на бой с плюсами в отдалении от них (в отличие от D) или "производственная необходимость" (сделать функциональный язык в основе равноправным с императивными конструкциями, а не "пудрой на поверхности" как в C#)?
Как ты считаешь?
0
Psilon
Master of Orion
Эксперт .NET
6041 / 4898 / 903
Регистрация: 10.07.2011
Сообщений: 14,514
Записей в блоге: 5
Завершенные тесты: 4
12.02.2015, 15:15 4
tezaurismosis, афайк раст изначально планировался быть языком с большим количеством ФП фич, при этом он должен быть ООП (ибо энтерпрайз ничего другого не переваривает), поэтому логично было взять объектно-функциональный язык
0
12.02.2015, 15:15
tezaurismosis
Администратор
Эксперт .NET
8714 / 3999 / 734
Регистрация: 17.04.2012
Сообщений: 8,774
Записей в блоге: 14
12.02.2015, 15:59  [ТС] 5
Нехилый такой бинарник
1
Миниатюры
[Rust] Обсуждение возможностей и предстоящей роли языка Rust  
tezaurismosis
Администратор
Эксперт .NET
8714 / 3999 / 734
Регистрация: 17.04.2012
Сообщений: 8,774
Записей в блоге: 14
12.02.2015, 17:04  [ТС] 6
Ага, нашёл: (http://doc.rust-lang.org/book/hello-world.html)
Rust is an ahead-of-time compiled language, which means that you can compile a program, give it to someone else, and they don't need to have Rust installed.
что радует и объясняет размер бинарника.

Добавлено через 57 минут
Интересная вещь - в Rust if является выражением и возвращает значение, так что возможна такая наркомания
Haskell
1
2
3
4
5
6
7
8
9
10
11
12
13
// Rust
fn main() {
    let x: i32 = 5;
    let y = if x == 5 {
        println!("x is five");
        10
    }
    else {
        println!("x is'nt five");
        15
    };
    println!("{}", y);
}
Нечто похожее можно написать в C#, но это совсем другая история
C#
1
2
3
4
5
6
7
8
9
10
11
12
int x = 5;
int y = ((Func<int, int>)((n) => {
    if (n == 5) {
        Console.WriteLine("x is five");
        return 10;
    }
    else {
        Console.WriteLine("x is'nt five");
        return 15;
    }
}))(x);
Console.WriteLine(y);
0
Psilon
Master of Orion
Эксперт .NET
6041 / 4898 / 903
Регистрация: 10.07.2011
Сообщений: 14,514
Записей в блоге: 5
Завершенные тесты: 4
12.02.2015, 17:29 7
tezaurismosis, это типично для всех функциональных языков, и некоторых ООП (например Ruby):
Ruby
1
2
3
4
5
6
7
def Foo
    puts "Hello"
    i = 10
    "world"
end
 
puts Foo()
http://ideone.com/2DGjzG

называется "всё есть функция". А любая функция, как известно, возвращает значение. Та, что не возвращает, называется процедурой (в терминах паскаля) или "грязной" (в терминах хаскелля) и в ФП используется по минимуму, а с точки зрения математики вообще не существует
0
tezaurismosis
Администратор
Эксперт .NET
8714 / 3999 / 734
Регистрация: 17.04.2012
Сообщений: 8,774
Записей в блоге: 14
12.02.2015, 17:33  [ТС] 8
Psilon, агась, видел в Scheme. Там последнее значение является возвращаемым
Lisp
1
2
3
4
5
6
7
(define (prime? n)
    (let loop ((n n) (div 2))
        (if (= 0 (modulo n div))
            #f
            (if (< div (sqrt n))
                (loop n (+ div 1))
                #t))))
И прочие весёлости вроде передачи функции как аргумента без всяких примочек типа C#-ских делегатов.
А я то ждал D на новый лад, но это зря.
0
Psilon
Master of Orion
Эксперт .NET
6041 / 4898 / 903
Регистрация: 10.07.2011
Сообщений: 14,514
Записей в блоге: 5
Завершенные тесты: 4
12.02.2015, 17:36 9
tezaurismosis, теперь мои восторги более понятны?

И если не секрет, чем компилируешь? А то я окромя связки notepad++ и компиля ничего не придумал, подсветка тоже хромает, без IntelliSense как без рук, и прочие невзгоды
0
tezaurismosis
Администратор
Эксперт .NET
8714 / 3999 / 734
Регистрация: 17.04.2012
Сообщений: 8,774
Записей в блоге: 14
12.02.2015, 17:48  [ТС] 10
Psilon, тебе не понравится мой вариант
Сижу на openSuse, установил подсветку для vim, компилирую из консольки.
Сейчас порылся, даже об автодополнении толковом пока говорить рано.
0
Psilon
Master of Orion
Эксперт .NET
6041 / 4898 / 903
Регистрация: 10.07.2011
Сообщений: 14,514
Записей в блоге: 5
Завершенные тесты: 4
12.02.2015, 17:52 11
tezaurismosis, да я понимаю. Ждем реализацию IntelliR IDEA
0
Dennis Ritchie
549 / 141 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
12.02.2015, 17:58 12
Цитата Сообщение от tezaurismosis Посмотреть сообщение
И почему именно "убийца плюсов"?
Не. Плюсы Rust не убьёт.
0
tezaurismosis
Администратор
Эксперт .NET
8714 / 3999 / 734
Регистрация: 17.04.2012
Сообщений: 8,774
Записей в блоге: 14
12.02.2015, 18:03  [ТС] 13
Psilon, кстати, установил плагин на IntelliJ IDEA, но пока это по сути очень тяжеловесный редактор кода с подсветкой, не более. Можно создать проект, но толку мало от этого - компилировать всё равно самому. Но что я хочу от версии 0.0.4
Было бы неплохо иметь IDE для Rust, хотя бы такую как Dev-C++ или Geany, уж не до жиру...

Добавлено через 1 минуту
Dennis Ritchie, зря я оставил эту строчку. Тема не рассчитывалась на холивары, только обсуждение самого языка Rust, не более.
0
Psilon
Master of Orion
Эксперт .NET
6041 / 4898 / 903
Регистрация: 10.07.2011
Сообщений: 14,514
Записей в блоге: 5
Завершенные тесты: 4
12.02.2015, 18:32 14
tezaurismosis, будет релиз языка, будет и IDE, у меня хорошее предчувствие по его поводу

Dennis Ritchie, посмотрим. На джаву тоже в свое время смотрели как на "говнокод для кофеварок"
0
tezaurismosis
Администратор
Эксперт .NET
8714 / 3999 / 734
Регистрация: 17.04.2012
Сообщений: 8,774
Записей в блоге: 14
12.02.2015, 18:36  [ТС] 15
Psilon, будем ждать.
0
Dennis Ritchie
549 / 141 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
13.02.2015, 08:50 16
Цитата Сообщение от Psilon Посмотреть сообщение
Dennis Ritchie, посмотрим.
Psilon, я не понимаю одного, как функциональный язык может заменить императивный.
Ведь в Rust'e больше развита функциональная сторона?
А зачем восклицательный знак в функции println!()?
0
tezaurismosis
Администратор
Эксперт .NET
8714 / 3999 / 734
Регистрация: 17.04.2012
Сообщений: 8,774
Записей в блоге: 14
13.02.2015, 09:03  [ТС] 17
Dennis Ritchie, Rust не функциональный язык, он лишь реализует много вещей из разных парадигм, в т.ч. функциональной.

Воскл. знаком в конце отмечают макросы.
0
Dennis Ritchie
549 / 141 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
13.02.2015, 09:19 18
Цитата Сообщение от tezaurismosis Посмотреть сообщение
Rust не функциональный язык, он лишь реализует много вещей из разных парадигм, в т.ч. функциональной.
Ну какая-нибудь парадигма в нём должна быть развита лучше других?
Цитата Сообщение от tezaurismosis Посмотреть сообщение
Воскл. знаком в конце отмечают макросы.
tezaurismosis, а пример привести можете? Какую-нибудь простенькую программу.
0
tezaurismosis
Администратор
Эксперт .NET
8714 / 3999 / 734
Регистрация: 17.04.2012
Сообщений: 8,774
Записей в блоге: 14
13.02.2015, 09:40  [ТС] 19
Dennis Ritchie, его характеризуют как мультипарадигменный язык, на мой беглый взгляд он больше императивный язык, чем функциональный, но из-за того, что в нем тонна разгых фич, можно написать код, по которому будут создаваться другие ощущения.

По поводу макросов пока скажу, что они похожи на сишные, но намного шире (поддерживают даже расширения синтаксиса). Попробую написать программу- пример, как доберусь до дома, я в автобусе, пишу с телефона
0
Dennis Ritchie
549 / 141 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
13.02.2015, 09:46 20
Цитата Сообщение от tezaurismosis Посмотреть сообщение
По поводу макросов пока скажу, что они похожи на сишные, но намного шире (поддерживают даже расширения синтаксиса).
Не могу до сих пор понять: полезны ли макросы вообще? В D, например, препроцессор вообще убрали, а в Rust макросы расширили. Не знаю даже, что и думать.
0
13.02.2015, 09:46
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2015, 09:46

Обсуждение возможностей языка D
В данной теме я предлагаю обсуждать интересные (и не очень) возможности языка D, делиться кодом и...

Rust+assembler
Как связать язык rust и ассемблер не используя ассемблерные вставки(неудобно использовать их в...

Есть ли у rust будущее?
Вот вчера общался с 1 товарищем на тему перспектив С++, он меня убеждает что язык скоро будет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.