LINUX.ORG.RU

Ответ на: комментарий от Manhunt

Да на, обтошнись своей информацией:

По сути специально для итераторов добавили auto (хотя оно еще в generic lambdas в тему получилось). А тут ты еще намешал вложенные контейнеры, да еще и в шаблоне. Так можно и в расте нагородить. И да - если мне сообщат, что container оказывается:

vector<map<int, T>> container = foo();

а не

let container = foo();

то мне будет куда удобнее читать код.

anonymous
()
Ответ на: комментарий от anonymous

На вложенных ?: не работает.

Хотя нет, то я второй cond! забыл.

anonymous
()
Ответ на: комментарий от KRoN73

Птичий синтаксис.

Да ты и про руби так говорил. Анонимус помнит. Хотя руби очень легко читаемый, можно распарсить даже ниндзя-код. Тебе наверно и тикль, и лисп будут птичьими. Мозги уже закостенели что-ли на пыхпыхе и бейси^Wпитоне?

anonymous
()
Ответ на: комментарий от KRoN73

Не взлетают чаще красивые и изящные решения. Уродцы торжествуют чаще.

Ну да, практика показывает, что чаще взлетает что-то похожее на C. Почему? Потому что закостеневшие мозги не осиливают «птичий» синтаксис, будь он хоть кристально чист и логичен.

anonymous
()
Ответ на: комментарий от NegatiV

auto

Анон был резко против.

Не?

Разумеется, все нормальные люди перейдут на auto при первой же возможности.

Manhunt ★★★★★
()
Ответ на: комментарий от maloi

но анонимус не осилил tuple type

Анонимус хотел именно структуру, кроме того:

«It is almost always better to use a struct than a tuple struct» (с)

anonymous
()
Ответ на: комментарий от Manhunt

Тип явно и недвусмысленно указан в той же строчке. Чего еще надо?

Ничего подобного, указано выражение, можно конечно для простых случаев не писать тип - и так видно что получится, а для сложных писать, но это будет говноподходом.

anonymous
()

vala - вот убийца. это именно тот объектный C который нужно. пусть допиливают, хотя он и сейчас уже вполне юзабельный.

anonymous
()
Ответ на: комментарий от Manhunt

А сложных нужно избегать.

Окей, забудем про дженерики, контейнеры, макросы и прочее - это слишком сложно. Возьмем простое - «let data = CollectMetadata();», каким уровнем телепатии надо обладать, чтоб разгадать тип переменной data?

anonymous
()
Ответ на: комментарий от anonymous

Возьмем простое - «let data = CollectMetadata();»

В C++ как правило будет «Metadata data = CollectMetadata();», а уже где-то в заголовках будет typedef. Так что неважно.

monk ★★★★★
()
Ответ на: комментарий от Manhunt

Разумеется, все нормальные люди перейдут на auto при первой же возможности.

Это что-то хорошее?

anonymous
()
Ответ на: комментарий от quantum-troll

Достаточно посмотреть документацию к CollectMetadata()?

Это слишком долго, очевидно же.

anonymous
()
Ответ на: комментарий от anonymous

Каким уровнем телепатии надо обладать, прежде чем написать в С++ «const Metadata data = CollectMetadata();». Когда ты узнал, какой тип возвращает функция?

const auto data = CollectMetadata();
const Metadata data = CollectMetadata();
let data = CollectMetadata();
let data: Metadata = CollectMetadata();
anonymous
()
Ответ на: комментарий от anonymous

Это что-то хорошее?

Страуструп считает, что да.

Manhunt ★★★★★
()
Ответ на: комментарий от vertexua

Эксперты в треде ничего о Rust не знают, но отвечают

Раскрой мысль. Где ты нашёл GC в расте? Во первых, сейчас его убрали. Во вторых, он если и будет, то опционально (формально и в С++ есть кое-какие костыли для реализации GC). Правда не видишь разницы с D, где если мы решаем не использовать GC, то и стандартная библиотека отваливается?

Подсчёт ссылок - не GC.

Ну и если что, то я не эксперт и не претендую. Хотя язык изучаю понемногу. Вероятно, попробую что-то для себя на нём писать.

DarkEld3r ★★★★★
()

(они...) ибо свеженький.

однако у С++ есть суперфича(ей уже больше 2 лет но только ща до деревень затеряных на континенте добралась сия новость) это isocpp.org

во многом(не всю ибо дайхарды ) С++ поглотил комьюнити С - тот же Кониг и прочие у которых были отличные «Стутариалы» теперь «С++тьюторы»

ну и С сейчас (т.е вводимые в действия стандарты) это С++ двойной очистки.

qulinxao ★★☆
()
Ответ на: комментарий от Manhunt

За исключением макросов,

А чем ужасны растовские макросы? Я их правда поверхностно смотрел пока что. В любом случае, С++ тут взамен может только больший ужас предложить. Который ещё и не будет полноценной заменой.

DarkEld3r ★★★★★
()
Ответ на: комментарий от anonymous

Потому что слаще морковки не едали, кроме быдлоплюсцов языков не видели.

Ну ка, давай назови пару примеров не «быдлоязыков».

DarkEld3r ★★★★★
()
Ответ на: комментарий от anonymous

Во первых, два раза тип указывать не надо:

let mut p = Point { x: 0i, y: 0i };

Во вторых, зачастую нужны именно иммутабельные данные, и у нас уже получается:

const Point p( 1, 1 );
let p = Point { x: 0i, y: 0i };
Принципиальная разница только в том, что имена полей надо явно указывать. Лично я тоже на этом моменте удивился, что нельзя их опускать, если инициализируем в «правильном порядке». Ну да, так мы избегаем некоторых потенциальных ошибок... но аргумент про функции справедлив.

Впрочем, в С ведь так (указывать имена полей) можно. Видел предложения и в С++ так сделать...

наверняка заметят, что ": Point" не нужен

Ну да. Так зачем передёргивать?

DarkEld3r ★★★★★
()
Ответ на: комментарий от anonymous

прежде чем написать

Код пишется один раз, читается - десятки и сотни. Мы сейчас говорим именно о чтении, а не о написании.

anonymous
()
Ответ на: комментарий от anonymous

const опционален в отличие от

Не помечать константные данные соответствующим образом - плохая практика. И это как раз один из моментов С++, который уже не исправить.

DarkEld3r ★★★★★
()
Ответ на: комментарий от anonymous

е%сь с чтением кода сам, лишняя информация тебе не нужна.

Не хватает указания типа? Можно подумать в С++ нельзя всюду авто пихать.

DarkEld3r ★★★★★
()
Ответ на: комментарий от KblCb

Раз в год хорошо бы изучать новый ЯП
Раз в год
изучать

между «изучать» и «изучить» - тонкое диалектическое различие... С новыми ЯП еще «есть один нюанс»(с) в духе молотка, который изменяется в руке.

slackwarrior ★★★★★
()
Ответ на: комментарий от NegatiV

Не?

Да, но анониму как раз не хватает указаний типов. В том и дело, что это две крайности. Если по уму, то кое-где тип лучше указать. А во многих местах он ничего не проясняет.

DarkEld3r ★★★★★
()

Но не взлетит же

И это хорошо. Язык годный, а если убьет С++, его объобезьянят.

buddhist ★★★★★
()
Ответ на: комментарий от Miguel

А нафига нам ещё один язык

Конкретно этот - для замены Cи.

спроектированный криворукими долбоёбами

...если же вдобавок он будет раздражать диванных экспертов - это плюс.

tailgunner ★★★★★
()
Ответ на: комментарий от monk

а уже где-то в заголовках будет typedef.

нет

anonymous
()
Ответ на: комментарий от KRoN73

Уродцы торжествуют чаще

Эволюция движется не «самыми красивыми» в теории, а «самыми приспособленными» к «здесь» и «щас», в котором и живут обычные люди :) (и если у кого-то все еще возникает «WTF?» по поводу как так получилось - он чего-то упускает... или игнорирует. Некоторые, например, думают, что на человеков эволюция больше не действует... Ну, в общем они правы, только у них теперь внутривидовая социальная конкуренция - и на ярмарке ЯП тоже :))

slackwarrior ★★★★★
()
Ответ на: комментарий от Miguel

А нафига нам ещё один язык, спроектированный криворукими долбоёбами?

Ну например потому что руби интерпретируется, а раст нормально компилируется.

anonymous
()
Ответ на: комментарий от DarkEld3r

Я тебя не понял, я думал ты нашел GC в Rust. Видно пьян я был

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от DarkEld3r

Я потом постом ниже предложил вполне ходовое решение по тому как и указание типов не потерять, и не утонуть в скобочно-двоеточечном поносе.

NegatiV
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.