Здравствуйте, kaa.python, Вы писали:
KP>Думается мне, пора бы уже перестать пытаться реанимировать труп и закопать.
Я уже тоже так начинал думать, но если они не затянут еще на несколько лет с релизом второй
версии язык может вполне еще состоятся, возможно и в более узкой нише чем могло бы быть.
Re[3]: Александреску "Язык программирования D" на русском.
Здравствуйте, FR, Вы писали:
FR>Я уже тоже так начинал думать, но если они не затянут еще на несколько лет с релизом второй FR>версии язык может вполне еще состоятся, возможно и в более узкой нише чем могло бы быть.
Это уже не важно. Мало того, что вышел очень не плохой C++0x, так еще и активно пилится очень многообещающая Ржавчина.
Re[2]: Александреску "Язык программирования D" на русском.
Здравствуйте, kaa.python, Вы писали:
KP>Думается мне, пора бы уже перестать пытаться реанимировать труп и закопать.
А мне думается, что пора бы уже убить страшного монстра под названием С++ (трупик закопать и забыть где), отправить на почетную пенсию Си и дать дорогу молодым и здоровым. Закон природы же: чтобы кто-то родился кто-то должен умереть, эволюция не должна стоять на месте.
Re[3]: Александреску "Язык программирования D" на русском.
Здравствуйте, kaa.python, Вы писали:
KP>Это уже не важно. Мало того, что вышел очень не плохой C++0x,
Неплохой он только на фоне предыдущего стандарта С++.
KP>так еще и активно пилится очень многообещающая Ржавчина.
Rust да очень интересен.
Но тут очень сложно предсказывать, например такой же многообещающий Go уже допилили
до релиза, но как-то результат меня например не очень впечатляет.
Re[5]: Александреску "Язык программирования D" на русском.
Здравствуйте, FR, Вы писали:
FR>Rust да очень интересен. FR>Но тут очень сложно предсказывать, например такой же многообещающий Go уже допилили FR>до релиза, но как-то результат меня например не очень впечатляет.
Не знаю, но Go меня не впечатлял ни до, ни после релиза. А Rust ну очень зацепил.
Не смог найти на сайте, сама книга еще не вышла, но судя по отрывку на boors.ru
перевод вполне нормальный.
Q>А то ведь как бывает, книжка хорошая, а редактор перевода Непейвода какой-нибудь.
Да вставлять свои философические взгляды в перевод, пусть и в сносках не стоит
Re[6]: Александреску "Язык программирования D" на русском.
Здравствуйте, 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. Есть поддержка шаблонов и они не взрывают мозг, как это происходит с шаблонами С++
> 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" на русском.
Здравствуйте, kaa.python, Вы писали:
KP>1. Очень хорошая и простая интеграция с Си. Например вот таким способом мы экспортируем функцию из библиотеки libevent и говорим компилятору с чем линковаться.
extern (C) int strcmp(char* string1, char* string2);
KP>2. Есть поддержка шаблонов и они не взрывают мозг, как это происходит с шаблонами С++
D'шные шаблоны и пишутся и главное читаются гораздо лучше чем C++'ные, конечно если применять все возможности
D, а не тупо копипастить с С++.
KP>3. Поддержка многопоточности "из коробки". Простейший пример — задачи:
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" на русском.
Здравствуйте, pepelac, Вы писали:
P>А мне думается, что пора бы уже убить страшного монстра под названием С++ (трупик закопать и забыть где), отправить на почетную пенсию Си и дать дорогу молодым и здоровым. Закон природы же: чтобы кто-то родился кто-то должен умереть, эволюция не должна стоять на месте.
Не, C трогать не надо
Re[9]: Александреску "Язык программирования D" на русском.
Здравствуйте, 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" на русском.
Здравствуйте, pepelac, Вы писали:
P>А мне думается, что пора бы уже убить страшного монстра под названием С++ (трупик закопать и забыть где)
Поверь, как только изобретут то, что способно отправить его на пенсию, так он тут же сам туда и пойдет. Он настолько ужасен, что даже сопротивляться не станет. Единственная причина, почему C++ не уходит — потому что он до сих пор лучший в своей области.
P>отправить на почетную пенсию Си и дать дорогу молодым и здоровым.
Да и Си совсем не на пенсии и не собирается. Отчасти из-за отсутствия в С++ ABI — если б в C++ была возможность прилинковываться к хер пойми когда хер пойми каким C++ компилером скомпилированной libzcpp.so — тогда б уже давно половина юниксов была на C++.
Re[4]: Александреску "Язык программирования D" на русском.
Здравствуйте, kaa.python, Вы писали:
KP>Это уже не важно. Мало того, что вышел очень не плохой C++0x, так еще и активно пилится очень многообещающая Ржавчина.
на то как Александреску ( ) отжигает, самое интересное, практически аналог того с чем немерлисты
сейчас носятся, PEG парсер работающий как в компиле так и рантайме, пример:
Здравствуйте, FR, Вы писали:
FR>на то как Александреску ( ) отжигает, самое интересное, практически аналог того с чем немерлисты FR>сейчас носятся, PEG парсер работающий как в компиле так и рантайме, пример:
Ты что-то путаешь. ПЕГ давно признан тупиковым направлением.
FR>В общем у немерлистов, хоть слабенький, но конкурент уже есть
Даже не смешно. А с тем что будет в Н2 просто не сравнимо.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[6]: Александреску "Язык программирования D" на русском.
Здравствуйте, WolfHound, Вы писали:
FR>>на то как Александреску ( ) отжигает, самое интересное, практически аналог того с чем немерлисты FR>>сейчас носятся, PEG парсер работающий как в компиле так и рантайме, пример: WH>Ты что-то путаешь. ПЕГ давно признан тупиковым направлением.
Неважно, на мелкие EDSL его с головой хватает.
FR>>В общем у немерлистов, хоть слабенький, но конкурент уже есть WH>Даже не смешно. А с тем что будет в Н2 просто не сравнимо.
Это же для вас плюс, хорошо что есть конкурент и хорошо что он слабее.
Если еще пара пусть даже маргинальных языков начнут движение в ту же сторону
будет больше шансов что направление не тупиковое.
Re[7]: Александреску "Язык программирования D" на русском.
Здравствуйте, FR, Вы писали:
FR>Это же для вас плюс, хорошо что есть конкурент и хорошо что он слабее. FR>Если еще пара пусть даже маргинальных языков начнут движение в ту же сторону FR>будет больше шансов что направление не тупиковое.
А что без миллиона мух понять, что направление не тупиковое нельзя?
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн