Александреску "Язык программирования D" на русском.
От: FR  
Дата: 12.04.12 06:25
Оценка: 34 (3)
Скоро выходит http://www.books.ru/books/yazyk-programmirovaniya-d-827252/?show=1
Re: Александреску "Язык программирования D" на русском.
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 12.04.12 06:29
Оценка: 8 (4) +1 -1
Думается мне, пора бы уже перестать пытаться реанимировать труп и закопать.
Re[2]: Александреску "Язык программирования D" на русском.
От: FR  
Дата: 12.04.12 06:35
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Думается мне, пора бы уже перестать пытаться реанимировать труп и закопать.


Я уже тоже так начинал думать, но если они не затянут еще на несколько лет с релизом второй
версии язык может вполне еще состоятся, возможно и в более узкой нише чем могло бы быть.
Re[3]: Александреску "Язык программирования D" на русском.
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 12.04.12 06:49
Оценка: +2 -1 :)
Здравствуйте, FR, Вы писали:

FR>Я уже тоже так начинал думать, но если они не затянут еще на несколько лет с релизом второй

FR>версии язык может вполне еще состоятся, возможно и в более узкой нише чем могло бы быть.

Это уже не важно. Мало того, что вышел очень не плохой C++0x, так еще и активно пилится очень многообещающая Ржавчина.
Re[2]: Александреску "Язык программирования D" на русском.
От: pepelac Россия  
Дата: 12.04.12 06:50
Оценка: +3 :))) :)))
Здравствуйте, kaa.python, Вы писали:

KP>Думается мне, пора бы уже перестать пытаться реанимировать труп и закопать.


А мне думается, что пора бы уже убить страшного монстра под названием С++ (трупик закопать и забыть где), отправить на почетную пенсию Си и дать дорогу молодым и здоровым. Закон природы же: чтобы кто-то родился кто-то должен умереть, эволюция не должна стоять на месте.
Re[3]: Александреску "Язык программирования D" на русском.
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 12.04.12 06:52
Оценка: +2 :)))
Изыди, нечистая!
Re: Перевод
От: Qbit86 Кипр
Дата: 12.04.12 06:55
Оценка:
Здравствуйте, FR, Вы писали:

FR>Скоро выходит http://www.books.ru/books/yazyk-programmirovaniya-d-827252/?show=1


А кто переводчик? К каким книгам уже прикладывал руку?

А то ведь как бывает, книжка хорошая, а редактор перевода Непейвода какой-нибудь.
Глаза у меня добрые, но рубашка — смирительная!
Re[4]: Александреску "Язык программирования D" на русском.
От: FR  
Дата: 12.04.12 06:55
Оценка: +1
Здравствуйте, kaa.python, Вы писали:

KP>Это уже не важно. Мало того, что вышел очень не плохой C++0x,


Неплохой он только на фоне предыдущего стандарта С++.

KP>так еще и активно пилится очень многообещающая Ржавчина.


Rust да очень интересен.
Но тут очень сложно предсказывать, например такой же многообещающий Go уже допилили
до релиза, но как-то результат меня например не очень впечатляет.
Re[5]: Александреску "Язык программирования D" на русском.
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 12.04.12 07:01
Оценка: +3
Здравствуйте, FR, Вы писали:

FR>Rust да очень интересен.

FR>Но тут очень сложно предсказывать, например такой же многообещающий Go уже допилили
FR>до релиза, но как-то результат меня например не очень впечатляет.

Не знаю, но Go меня не впечатлял ни до, ни после релиза. А Rust ну очень зацепил.
Re[2]: Перевод
От: FR  
Дата: 12.04.12 07:11
Оценка:
Здравствуйте, Qbit86, Вы писали:

FR>>Скоро выходит http://www.books.ru/books/yazyk-programmirovaniya-d-827252/?show=1


Q>А кто переводчик? К каким книгам уже прикладывал руку?


Не смог найти на сайте, сама книга еще не вышла, но судя по отрывку на boors.ru
перевод вполне нормальный.

Q>А то ведь как бывает, книжка хорошая, а редактор перевода Непейвода какой-нибудь.



Да вставлять свои философические взгляды в перевод, пусть и в сносках не стоит
Re[6]: Александреску "Язык программирования D" на русском.
От: FR  
Дата: 12.04.12 07:13
Оценка: +1
Здравствуйте, kaa.python, Вы писали:

KP>Не знаю, но Go меня не впечатлял ни до, ни после релиза. А Rust ну очень зацепил.


Тут была тема по русту, может опишешь чем зацепил, я вот никак ни найду время его
серьезно поковырять.
Re[7]: Александреску "Язык программирования D" на русском.
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 12.04.12 08:39
Оценка: 39 (7)
Здравствуйте, FR, Вы писали:

FR>Здравствуйте, kaa.python, Вы писали:


KP>>Не знаю, но Go меня не впечатлял ни до, ни после релиза. А Rust ну очень зацепил.


FR>Тут была тема по русту, может опишешь чем зацепил, я вот никак ни найду время его

FR>серьезно поковырять.

Rust, как впрочем и утверждали его создатели, — это язык который не изобретает новых практик, в то же время собирает в себя все лучшее, что есть в других языках. И, надо сказать , у авторов это хорошо получается — видно что люди не одну шишку с Си и С++ набили. Текущий уровень развития языка — это Си с модулями интерфейсами для модулей Да, классов еще нет, если точнее, они есть в репозитории на GitHub но довольно активно меняются.
Первое и основное — язык базируется на LLVM, т.е. будет очень хорошо переноситься между платформами. Сам язык выглядит довольно приятно, но, это чисто эстетическое ощущение
Что меня зацепило:

1. Очень хорошая и простая интеграция с Си. Например вот таким способом мы экспортируем функцию из библиотеки libevent и говорим компилятору с чем линковаться.

#[link_name = "event"]
native mod c {
    fn event_get_supported_methods() -> **libc::c_char;
}


2. Есть поддержка шаблонов и они не взрывают мозг, как это происходит с шаблонами С++

unsafe fn buf_len<T>(buf : **T) -> uint {
    position(buf){|i| 
        i == ptr::null()
    }
}


3. Поддержка многопоточности "из коробки". Простейший пример — задачи:

let data = 42;
task::spawn {||
    io::println(#fmt("%d", data));
}


4. Встроенная система тестирования:

fn foo() -> uint {
    ret 42;
}

#[test]
fn test_foo() {
    let foo_val = foo();

    assert foo_val != 0u;
}

которая запускается вот так:
> rustc --test test.rc
> ./test
running 1 tests
test test_foo ... ok

result: ok. 1 passed; 0 failed; 0 ignored


5. GC нет, но есть милые любому C++ разработчику умные указатели, которые тут зовуться Shared boxes и Unique boxes. Данные можно создавать как в памяти, так и на стеке.

6. Семантика функций позволяет передавать переменные по ссылке с копированием при изменении или с запретом на изменение после передачи.

В целом, я пока-что в данном вопросе совсем новичек, но у меня есть ощущение что Rust действительно может стать заменой или хотя-бы альтернативой C++.
Re[8]: Александреску "Язык программирования D" на русском.
От: FR  
Дата: 12.04.12 09:44
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>1. Очень хорошая и простая интеграция с Си. Например вот таким способом мы экспортируем функцию из библиотеки libevent и говорим компилятору с чем линковаться.


Ну в D как и в C++ сишные функции напрямую поддерживаются:
http://dlang.org/interfaceToC.html

extern (C) int strcmp(char* string1, char* string2);



KP>2. Есть поддержка шаблонов и они не взрывают мозг, как это происходит с шаблонами С++


D'шные шаблоны и пишутся и главное читаются гораздо лучше чем C++'ные, конечно если применять все возможности
D, а не тупо копипастить с С++.

KP>3. Поддержка многопоточности "из коробки". Простейший пример — задачи:


Ну с многопоточностью в D все хорошо http://www.informit.com/articles/printerfriendly.aspx?p=1609144
язык (иммутабельность, чистые функции) под это специально заточен.

KP>4. Встроенная система тестирования:


Вот это точно с D стянули
http://dlang.org/unittest.html

class Sum {
  int add(int x, int y) { return x + y; }

  unittest
  {
    Sum sum = new Sum;
    assert(sum.add(3,4) == 7);
    assert(sum.add(-2,0) == -2);
  }
}



KP>5. GC нет, но есть милые любому C++ разработчику умные указатели, которые тут зовуться Shared boxes и Unique boxes. Данные можно создавать как в памяти, так и на стеке.


Тут по моему они чуть дальше даже пошли, там есть (кажется чуть урезанная) версия уникальных типов из Clean. Как замена — альтернатива RAII
весьма неплохо.

KP>6. Семантика функций позволяет передавать переменные по ссылке с копированием при изменении или с запретом на изменение после передачи.


Тут не совсем понял.

KP>В целом, я пока-что в данном вопросе совсем новичек, но у меня есть ощущение что Rust действительно может стать заменой или хотя-бы альтернативой C++.


Ну у меня такое же ощущение и от D, хотя Rust тоже весьма интересен.
Re[3]: Александреску "Язык программирования D" на русском.
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 12.04.12 09:47
Оценка: :)
Здравствуйте, pepelac, Вы писали:

P>А мне думается, что пора бы уже убить страшного монстра под названием С++ (трупик закопать и забыть где), отправить на почетную пенсию Си и дать дорогу молодым и здоровым. Закон природы же: чтобы кто-то родился кто-то должен умереть, эволюция не должна стоять на месте.


Не, C трогать не надо
Re[9]: Александреску "Язык программирования D" на русском.
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 12.04.12 09:50
Оценка: 11 (2) +1 :)
Здравствуйте, FR, Вы писали:

KP>>6. Семантика функций позволяет передавать переменные по ссылке с копированием при изменении или с запретом на изменение после передачи.

FR>Тут не совсем понял.

Объяснение от авторов, по-моему, идея очень хорошая:

Then there is the by-copy style, written +. This indicates that the function wants to take ownership of the argument value. If the caller does not use the argument after the call, it will be 'given' to the callee. Otherwise a copy will be made. This mode is mostly used for functions that construct data structures. The argument will end up being owned by the data structure, so if that can be done without a copy, that's a win.

type person = {name: str, address: str};
fn make_person(+name: str, +address: str) -> person {
    ret {name: name, address: address};
}

Finally there is by-move style, written -. This indicates that the function will take ownership of the argument, like with by-copy style, but a copy must not be made. The caller is (statically) obliged to not use the argument after the call; it is de-initialized as part of the call. This is used to support ownership-passing in the presence of non-copyable types.

FR>Ну у меня такое же ощущение и от D, хотя Rust тоже весьма интересен.


D — язык хороший, но приход в него Александреску, на мой взгляд, убил его окончательно (хотя это и хорошо, он хотя-бы С++ оставил в покое ). В то же время Rust, как ты и сам заметил, не привнося чего-то нового, собирает хорошее старое. Плюс то, что он имеет за спиной поддержку Мозиллы, обнадеживает в вопросе скорости развития.
Re[3]: Александреску "Язык программирования D" на русском.
От: Кодёнок  
Дата: 13.04.12 20:27
Оценка: 1 (1) +8 -1
Здравствуйте, pepelac, Вы писали:

P>А мне думается, что пора бы уже убить страшного монстра под названием С++ (трупик закопать и забыть где)


Поверь, как только изобретут то, что способно отправить его на пенсию, так он тут же сам туда и пойдет. Он настолько ужасен, что даже сопротивляться не станет. Единственная причина, почему C++ не уходит — потому что он до сих пор лучший в своей области.

P>отправить на почетную пенсию Си и дать дорогу молодым и здоровым.


Да и Си совсем не на пенсии и не собирается. Отчасти из-за отсутствия в С++ ABI — если б в C++ была возможность прилинковываться к хер пойми когда хер пойми каким C++ компилером скомпилированной libzcpp.so — тогда б уже давно половина юниксов была на C++.
Re[4]: Александреску "Язык программирования D" на русском.
От: FR  
Дата: 15.04.12 16:48
Оценка: 1 (1) +1 :)
Здравствуйте, kaa.python, Вы писали:

KP>Это уже не важно. Мало того, что вышел очень не плохой C++0x, так еще и активно пилится очень многообещающая Ржавчина.


Не все-таки C++0x нервно курит в сторонке по сравнению с D, вот в этой теме http://rsdn.ru/forum/nemerle/4702893.flat.1.aspx
Автор: VladD2
Дата: 15.04.12

дали ссылки:

http://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2012/Three-Unlikely-Successful-Features-of-D
http://ecn.channel9.msdn.com/events/LangNEXT2012/AndreiLangNext.pdf

на то как Александреску ( ) отжигает, самое интересное, практически аналог того с чем немерлисты
сейчас носятся, PEG парсер работающий как в компиле так и рантайме, пример:

import pegged.grammar;

mixin(grammar(" 
    Expr     <   Factor AddExpr*
    AddExpr  <   ('+'/'-') Factor
    Factor   <   Primary MulExpr*
    MulExpr  <   ('*'/'/') Primary
    Primary  <   Parens / Number / Variable / '-' Primary

    Parens   <   '(' Expr ')'
    Number   <~ [0-9]+
    Variable <- Identifier
"));

// Parsing at compile-time:
enum parseTree1 = Expr.parse("1 + 2 - (3*x-5)*6");

pragma(msg, parseTree1.capture);
assert(parseTree1.capture == ["1", "+", "2", "-", "(", "3", "*", "x", "-", "5", ")", "*", "6"]);
writeln(parseTree1);

// And at runtime too:
auto parseTree2 = Expr.parse(" 0 + 123 - 456 ");
assert(parseTree2.capture == ["0", "+", "123", "-", "456"]);


https://github.com/PhilippeSigaud/Pegged

В общем у немерлистов, хоть слабенький, но конкурент уже есть
Re[5]: Александреску "Язык программирования D" на русском.
От: WolfHound  
Дата: 15.04.12 17:05
Оценка: :)))
Здравствуйте, FR, Вы писали:

FR>на то как Александреску ( ) отжигает, самое интересное, практически аналог того с чем немерлисты

FR>сейчас носятся, PEG парсер работающий как в компиле так и рантайме, пример:
Ты что-то путаешь. ПЕГ давно признан тупиковым направлением.

FR>В общем у немерлистов, хоть слабенький, но конкурент уже есть

Даже не смешно. А с тем что будет в Н2 просто не сравнимо.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[6]: Александреску "Язык программирования D" на русском.
От: FR  
Дата: 15.04.12 17:13
Оценка: :)
Здравствуйте, WolfHound, Вы писали:

FR>>на то как Александреску ( ) отжигает, самое интересное, практически аналог того с чем немерлисты

FR>>сейчас носятся, PEG парсер работающий как в компиле так и рантайме, пример:
WH>Ты что-то путаешь. ПЕГ давно признан тупиковым направлением.

Неважно, на мелкие EDSL его с головой хватает.

FR>>В общем у немерлистов, хоть слабенький, но конкурент уже есть

WH>Даже не смешно. А с тем что будет в Н2 просто не сравнимо.

Это же для вас плюс, хорошо что есть конкурент и хорошо что он слабее.
Если еще пара пусть даже маргинальных языков начнут движение в ту же сторону
будет больше шансов что направление не тупиковое.
Re[7]: Александреску "Язык программирования D" на русском.
От: WolfHound  
Дата: 15.04.12 17:29
Оценка:
Здравствуйте, FR, Вы писали:

FR>Это же для вас плюс, хорошо что есть конкурент и хорошо что он слабее.

FR>Если еще пара пусть даже маргинальных языков начнут движение в ту же сторону
FR>будет больше шансов что направление не тупиковое.
А что без миллиона мух понять, что направление не тупиковое нельзя?
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.