А был ли мальчик? (помянем плюсы)

Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: А был ли мальчик? (помянем плюсы)

Post by Сабина »

StrangerR wrote: 12 Jan 2018 20:01 Я весьма немного сам писал на C++, и побольше разбирался в чьем то коде. Темплейты - хороший способ запутать все насмерть.
Я тоже сейчас из-за старшего сына заново взялась за С++ после того как успешно завалила по нему класс и забыла в далеком 2002-м. Хотя вру, пришлось по работе в 2015-м не так давно. Но там одно приложение тока, причем в fancy IDE. Пережила :)
Сначала шло туго очень, потом как то вдруг наступило просветление и вполне себе получалось. Потом снова пошло STL и стало грустно.
В этом семестра будет Data Structures и алгоритмы и параллельно буду то же брать на Джаве. Надеюсь наконец-то хоть как то fill the gaps в своих знаниях и подвести С++ базу под Джава навыки :)
https://www.youtube.com/watch?v=wOwblaKmyVw
StrangerR
Уже с Приветом
Posts: 38016
Joined: 14 Dec 2006 20:13
Location: USA

Re: А был ли мальчик? (помянем плюсы)

Post by StrangerR »

Ну не знаю. Я считаю что в плюсах скрестили ужей с ежами. Получив все минусы обоих.
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15526
Joined: 27 Sep 2007 22:53

Re: А был ли мальчик? (помянем плюсы)

Post by Мальчик-Одуванчик »

Сабина wrote: 14 Jan 2018 02:55
Medium-rare wrote: 13 Jan 2018 21:18
OtherSide wrote: 13 Jan 2018 21:15 плюсы погубило
Точно. Но мы о том догадываемся, только читая этот тред.
Тема и правда ржачная :D
Плюсы сейчас можно сказать hardcore, Юникс обогнали
Мне уже много раз попадаются рекомендации изучать Хаскель, чтобы было легче в плюсах.
User avatar
flip_flop
Уже с Приветом
Posts: 4379
Joined: 20 Jun 2001 09:01

Re: А был ли мальчик? (помянем плюсы)

Post by flip_flop »

Долго думаю и теряюсь в догадках - как С++ может обогнать Юникс.

Язык на доске почёта (hall of fame) 2017 года по версии TIOBE - ... та да .... гром фанфар ... чистый C !
User avatar
M. Ridcully
Уже с Приветом
Posts: 12017
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: А был ли мальчик? (помянем плюсы)

Post by M. Ridcully »

Мальчик-Одуванчик wrote: 14 Jan 2018 06:21 Мне уже много раз попадаются рекомендации изучать Хаскель, чтобы было легче в плюсах.
Как-то даже сложно представить, на чём сия рекомендация основана.
Потуги писать в функциональном стиле на C++ выглядят довольно нелепо...
Мир Украине. Свободу России.
User avatar
M. Ridcully
Уже с Приветом
Posts: 12017
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: А был ли мальчик? (помянем плюсы)

Post by M. Ridcully »

Сабина wrote: 14 Jan 2018 02:59 Сначала шло туго очень, потом как то вдруг наступило просветление и вполне себе получалось. Потом снова пошло STL и стало грустно.
STL как раз одна из самых светлых частей C++.
Сабина wrote: 14 Jan 2018 02:59 ... подвести С++ базу под Джава навыки :)
Не знаю, что сия фраза означает, но звучит ужасно. :D
ИМХО самое худшее, что можно придумать - это пытаться писать на языке "А", как будто это язык "Б".
Мир Украине. Свободу России.
StrangerR
Уже с Приветом
Posts: 38016
Joined: 14 Dec 2006 20:13
Location: USA

Re: А был ли мальчик? (помянем плюсы)

Post by StrangerR »

STL одна из самых дерьмовых частей C++. Иначе зачем бы понадобилось изобретать QT с его собственной работой со строками?
Palych
Уже с Приветом
Posts: 13722
Joined: 16 Jan 2001 10:01

Re: А был ли мальчик? (помянем плюсы)

Post by Palych »

Мы где-то в 2004-м взялись переписывать (точнее - клонировать/мигрировать) одну систему с Java на C++.
Последние несколько лет выковыриваем остатки этого эксперимента из темных уголков приложения.
Главная причина фиаско - в библиотеках и в пресловутой "совместимости с C": библиотеки были, но под C, совмещать работу с памятью был еще тот фан...
Особенно помнится два случая:
- Expect Library оказалась фундаментально однопоточная
- GDome пришлось оборачивать в reference counting механизм, в котором с год отлавливали баги связанные с многопоточностью, потом при переходе на очередную версию Red Hat он работал в QA, но упал в production, где было несколько процессоров. Вылечилось перестановкой местами нескольких строк, после многодневного секса, когда все ключевые девелоперы бросили все дела и ловили баги в gdb, valgrind...

Может сейчас как-то исправилось, а то получается что все эти хаскели имеют смысл только если пишешь с нуля какой-нибудь PoC, или учебное пособие. (может относительно простые встроенные системы) А как только enterprise дела начинаются - 99% времени ковыряешься с указателями...
StrangerR
Уже с Приветом
Posts: 38016
Joined: 14 Dec 2006 20:13
Location: USA

Re: А был ли мальчик? (помянем плюсы)

Post by StrangerR »

В том то и дело. На C просто писали асинхронные запросы, асинхронную обработку ответов, все явно и просто. На C++ сдуру решили _вот оно, тред и вперед, нефиг выпендриваться_ после чего выяснилось, что тред то тредом но половина библиотек не фига не мультитредоваые, прозрачность _что там происходит_ потерялась нафиг, для работы со строками непонятно чего выбирать так как много разной фигни и ничего хорошего, ну а когда еще 3-д парти используешь,то они (1) фиг совместимы, (2) фиг мультипоточны.

И получается, что если выбор между C и JAVA понятен, с плюсами и минусами у каждого, то C++ сочетает минусы обоих а не плюсы - и как на Жабе не попишешь, и как на C вроде нелогично, а тогда на хрена нужны ++ после C становится непонятно. Как я уже упоминал, отсутствие чистой и удобной библиотеки работы со строками (STL дерьмо, от него пришлось отказаться) - это самое первое что там в глаза бросается...

PS. Я еще помню, как специально искали самые МЕДЛЕННЫЕ СТАРЫЕ СЕРВЕРЫ с кучей процессоров, вставляли разные искуственные задержки, чтобы все эти тредовые рейс кондишены ловились...
Last edited by StrangerR on 14 Jan 2018 07:51, edited 1 time in total.
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: А был ли мальчик? (помянем плюсы)

Post by Сабина »

M. Ridcully wrote: 14 Jan 2018 06:57
Сабина wrote: 14 Jan 2018 02:59 ... подвести С++ базу под Джава навыки :)
Не знаю, что сия фраза означает, но звучит ужасно. :D
ИМХО самое худшее, что можно придумать - это пытаться писать на языке "А", как будто это язык "Б".
Странно что непонятно :).
Java просто high level language, в смысле что higher level of abstraction from memory etc. Придумана для более ускоренного девелопмента определенных вещей. А тут можно сказать к истокам. Не было бы счастья, несчастье помогло 8)
https://www.youtube.com/watch?v=wOwblaKmyVw
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15526
Joined: 27 Sep 2007 22:53

Re: А был ли мальчик? (помянем плюсы)

Post by Мальчик-Одуванчик »

StrangerR wrote: 14 Jan 2018 07:10 STL одна из самых дерьмовых частей C++. Иначе зачем бы понадобилось изобретать QT с его собственной работой со строками?
STL - это, на минуточку, контейнеры и алгоритмы прежде всего. Одна из самых замечательных и мощных частей плюсов.
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: А был ли мальчик? (помянем плюсы)

Post by Сабина »

StrangerR wrote: 14 Jan 2018 07:48 PS. Я еще помню, как специально искали самые МЕДЛЕННЫЕ СТАРЫЕ СЕРВЕРЫ с кучей процессоров, вставляли разные искуственные задержки, чтобы все эти тредовые рейс кондишены ловились...
Тем более надо радоваться прогрессу :umnik1:
Не будь С -> С++ -> Java ->Scala/Spark, Go разьве мы бы увидели reactive, потоки и всякую асинхронную красотищу, которая имеет место в наши дни :) ?
https://www.youtube.com/watch?v=wOwblaKmyVw
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15526
Joined: 27 Sep 2007 22:53

Re: А был ли мальчик? (помянем плюсы)

Post by Мальчик-Одуванчик »

StrangerR wrote: 14 Jan 2018 07:48 В том то и дело. На C просто писали асинхронные запросы, асинхронную обработку ответов, все явно и просто. На C++ сдуру решили _вот оно, тред и вперед, нефиг выпендриваться_ после чего выяснилось, что тред то тредом но половина библиотек не фига не мультитредоваые, прозрачность _что там происходит_ потерялась нафиг, для работы со строками непонятно чего выбирать так как много разной фигни и ничего хорошего, ну а когда еще 3-д парти используешь,то они (1) фиг совместимы, (2) фиг мультипоточны.
И что мешало все тоже самое делать на плюсах, но используя более выразительные средства С++, нежели чем на простом С?
А неумение писать многопоточные приложения вообще с языком не связано напрямую.
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15526
Joined: 27 Sep 2007 22:53

Re: А был ли мальчик? (помянем плюсы)

Post by Мальчик-Одуванчик »

Сабина wrote: 14 Jan 2018 08:06
StrangerR wrote: 14 Jan 2018 07:48 PS. Я еще помню, как специально искали самые МЕДЛЕННЫЕ СТАРЫЕ СЕРВЕРЫ с кучей процессоров, вставляли разные искуственные задержки, чтобы все эти тредовые рейс кондишены ловились...
Тем более надо радоваться прогрессу :umnik1:
Не будь С -> С++ -> Java ->Scala/Spark, Go разьве мы бы увидели reactive, потоки и всякую асинхронную красотищу, которая имеет место в наши дни :) ?
Ну вообще вся эта асинхронная красотища еще три десятка лет вполне себе присутствовала на голимом си, особенно в телекоме, где оформилась в виде actor модели, и чуть позже была реализована в языке эрланг. В хайп она попала лишь по прошествии угара по обьектно-ориентированныму программированию и переключением моды на функциональное. Но по-сути стюардессу опять откопали, как в том анекдоте.
Last edited by Мальчик-Одуванчик on 14 Jan 2018 08:21, edited 1 time in total.

Return to “Вопросы и новости IT”