Deutsch

С++11 -> ...

1515  1 2 3 4 все
moose старожил26.12.19 19:30
moose
NEW 26.12.19 19:30 

похоже уже на уиндоуз, визуал студио и пр. с каждым годом новые "стандарты".

хорошо ли это? на моей памяти (меня лично коснулось) был только "фортнан IV". остальные языки не претерпевают таких кардинальных изменений. скорее появляются новые языки. с новыми стандартами, парадигмами и ...ЦЕЛЕВЫМИ ПРИЛОЖЕНИЯМИ.


появление С++11 для меня было попыткой франкенштайна возродить умирающее. путем усложнения и без того не самого из простых.


сиходя из вышерассказанного предлагаю высказаться тем, кто сталкивается в повседневной жизни с новыми стандартами.

0. когда и с какой целью "ввели"?

1. чего конкретно ожидали от введения?

2. как "введение" происходило: запретили использование raw pointers, например? а как заставить использование ламбда?

3. если есть конкретный простой пример, или конкретные данные, позволяющие оценить успех/неуспех, то было бы здорово.

4. с наступающим всех нас, а то вообще!

ばかが過半数である場合、それは彼らが正しいという意味ではありません
#1 
Бесконечный цикл гость26.12.19 19:51
Бесконечный цикл
26.12.19 19:51 
в ответ moose 26.12.19 19:30, Последний раз изменено 26.12.19 19:51 (Бесконечный цикл)
появление С++11 для меня было попыткой франкенштайна возродить умирающее. путем усложнения и без того не самого из простых.

Заставь дурака богу молиться, так он и последнюю версию C++ использовать будет.


С++ вообще нет смысла польjjзовать - проблем существенно больше чем преимуществ. Если очень хочется эффективности, и без приставки ОО никак не обойтись, то старого доброго Си вполне достаточно: object-oriented programming in C И волки сыты, и овцы целы.

#2 
AlexNek патриот27.12.19 14:20
AlexNek
NEW 27.12.19 14:20 
в ответ moose 26.12.19 19:30
кто сталкивается в повседневной жизни с новыми стандартами

Ну вот C# ASP.NET Core 3 как раз изучаю.

Пока только положительные впечатления. Xamarin Forms тоже ничего так. А плюсы уж лет десять как не интересуют.

#3 
anly патриот29.12.19 13:10
anly
NEW 29.12.19 13:10 
в ответ moose 26.12.19 19:30
0. когда и с какой целью "ввели"?
сделали лучше.

мне вот лямды в плюсах нравятся гораздо больше чем в шарпе.

...

но сам для себя я предпочитаю на шарпе баловаться. но это небольшие проекты.

А вот на работе у нас разработан большой проэкт на шарпе, как замена старому на плюсах. Так вот с прискорбием замечаю, что сложность (скорее запутанность для понимания) нового превышает плюсовый, И тормознутостью новый отличается в худшую сторону. Хотя есть и преимущества: ВПФ позволил автотестирование юзер интерфейса. Но пользователю ведь важна производительность (а не тесты), а стабильность ему - само собой разумеющееся.

...

ранее я бывало выражал недовольство библиотекой boost для плюсов, ну мол слишком сложно для простых вещей (как на танке в булочную за углом с\ездить), для элементарного действия в стеке вызовов - десяток строчек а то и больше! Так вот в шарпах (в нашем новом проекте) я вижу тоже самое! И всё это тормозит, причем так что не поддается оптимизации (за исключением - выбросить и переписать заново, что уже невозможно).

...

по мой-му этот изящный linq (который я очень ценю) всё таки таит в себе зло: на нем легко писать (не замечая этого, особенно думая только об изящной краткости кода) тормознутые программы. Редкие программисты сразу тестируют свой код на предельное количество данных, и тестеры тоже. А когда тормознутость вылезет - уже поздно что менять - слишком сложно.

Проклят нарушающий межи ближнего своего (Втор.27:17)
#4 
dymanoid местный житель29.12.19 19:54
dymanoid
NEW 29.12.19 19:54 
в ответ anly 29.12.19 13:10

Можно на шарпе написать какашку, которая будет сильно сложнее и сильно медленнее плюсов. Можно на плюсах написать какашку, которая будет сильно медленнее и сильно сложнее шарпов. Всё зависит от архитекторов и кодеров. Но в принципе языки - разные и по назначению, и по сути. Шарпы - мультипарадигменный язык (структурный, объектноориентированный, функциональный) для быстрой разработки энтерпрайза, серверно-базоданных штук и немного гуя. Плюсы - мощнейший хай-перформанс (чуть медлненнее чистого ЦЭ) для драйверов и прочей магии ядер и процессоров с более-менее чем-то похожим на объектно-ориентированность, плюс эдвансд уровень мета-программирования (читай шаблоны).

#5 
AlexNek патриот30.12.19 22:02
AlexNek
NEW 30.12.19 22:02 
в ответ dymanoid 29.12.19 19:54

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

И с ОО как то не совсем понятно - чем плюсы хуже?

#6 
dymanoid местный житель30.12.19 22:51
dymanoid
NEW 30.12.19 22:51 
в ответ AlexNek 30.12.19 22:02, Последний раз изменено 30.12.19 22:53 (dymanoid)

Я не писал, что есть "проблемы по скорости". Это твоя (неверная) интерпретация моего комментария. Я тебе на шарпах слабаю алгоритм, который будет до наносекунд так же быстр, как на плюсах. Вопрос в другом - плюсы под это заточены, шарп - нет, шарп заточен под другое.


Я не писал, что "плюсы хуже в ОО". Я писал, что плюсы дают что-то очень похожее на ОО. Почему плюсы не "чистый ОО язык"? Потому что int в плюсах - это не объект, а главная функция main (точка входа) не принадлежит никакому классу и не может принадлежать.

#7 
Murr патриот31.12.19 01:37
Murr
NEW 31.12.19 01:37 
в ответ dymanoid 30.12.19 22:51
Я тебе на шарпах слабаю алгоритм, который будет до наносекунд так же быстр, как на плюсах.

-----

Не слабаешь.

Много чего будет слегка медленнее... ну хотя бы потому что int не объект.

#8 
AlexNek патриот31.12.19 15:30
AlexNek
NEW 31.12.19 15:30 
в ответ dymanoid 30.12.19 22:51
Я тебе на шарпах слабаю алгоритм, который будет до наносекунд так же быстр, как на плюсах

ну это если специально алгоритм пару лет подбирать спок

https://habr.com/en/post/266163/


Я писал, что плюсы дают что-то очень похожее на ОО

Определение ОО в студию, плиз. Я пока только это нашел

https://dic.academic.ru/dic.nsf/ruwiki/5005

https://studfile.net/preview/5842923/page:7/

#9 
Simple Nothing is f*cked04.01.20 21:43
Simple
NEW 04.01.20 21:43 
в ответ dymanoid 30.12.19 22:51

Выше уже писали: можно писать оо на чистом С. Все остальное - буквоедство.

#10 
dymanoid местный житель05.01.20 08:19
dymanoid
NEW 05.01.20 08:19 
в ответ Simple 04.01.20 21:43

Так-то можно и на асме или брейнфаке писать "объектноориентированно", но речь ведь не об этом.

#11 
Simple Nothing is f*cked06.01.20 08:25
Simple
NEW 06.01.20 08:25 
в ответ dymanoid 05.01.20 08:19

С++, конечно, не чистый оо-язык, но это не мешает писать на нем строго оо-код.

#12 
moose старожил07.01.20 20:39
moose
NEW 07.01.20 20:39 
в ответ dymanoid 05.01.20 08:19, Последний раз изменено 07.01.20 20:41 (moose)
но речь ведь не об этом.

совершенно верно. речь о прибамбасах к сиплюсам в виде 11, 15, ...

ожидаю, когда же наконец добавят к стандарту garbage collector и выкинут все смартпойнтеры, например, за ненадобностью : )

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

ばかが過半数である場合、それは彼らが正しいという意味ではありません
#13 
LifeRider знакомое лицо08.01.20 20:48
LifeRider
NEW 08.01.20 20:48 
в ответ moose 07.01.20 20:39
...и выкинут все смартпойнтеры

Не хочешь - не пользуй (и не только смартпойнтеры), выбрасывать-то зачем?

ожидаю, когда же наконец добавят к стандарту garbage collector

От garbage collector меня тошнит не по-детски везде, где он есть. Зачем плюсы им похабить? C# и Java с ним есть, и достаточно.

#14 
hbrenner гость05.02.20 16:48
hbrenner
NEW 05.02.20 16:48 
в ответ moose 26.12.19 19:30

Здравствуйте,


Мне нравится список инициализации https://crascit.com/2015/01/10/cpp-list-initialization/

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


Лямбда-выражения/кложуры исспользовать пока не могу (не вижу отчетливого преимущества). Думал, почему так, и пришел к заключению, что надо понаблюдать как эти конструкции иссползуют люди, которые всегда имели возможность ползоватся лямбдами, к примеру. Межет чего научусь :)

#15 
AlexNek патриот07.02.20 23:15
AlexNek
NEW 07.02.20 23:15 
в ответ hbrenner 05.02.20 16:48
Лямбда-выражения/кложуры исспользовать пока не могу (не вижу отчетливого преимущества)

не знаю как точно как в плюсах, но на шарпе код часто читается удобнее с лямбдой. Хотя конечно, дело привычки.


#16 
Murr патриот07.02.20 23:27
Murr
NEW 07.02.20 23:27 
в ответ AlexNek 07.02.20 23:15

А иногда - не читается вообще...

И самое пробленое - отладка...

Пример - фильтрация классов плугинов... неприятно там...

#17 
AlexNek патриот07.02.20 23:41
AlexNek
NEW 07.02.20 23:41 
в ответ Murr 07.02.20 23:27
И самое проблемное - отладка...

А в чём именно проблема?

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

int Kuku {get xx; set xx;}


А иногда - не читается вообще...

Ну можно и нормальный код написать нечитаемым. спок


#18 
Murr патриот07.02.20 23:50
Murr
NEW 07.02.20 23:50 
в ответ AlexNek 07.02.20 23:41

А в чём именно проблема?

-----

Так не понятно когда и что происходит....

по крайней мере - не всегда понятно...

и чем крупнее решаемая задача - тем менее понятно...

лишние мозги нужны для отладки.



#19 
AlexNek патриот08.02.20 00:00
AlexNek
NEW 08.02.20 00:00 
в ответ Murr 07.02.20 23:50
Так не понятно когда и что происходит....

А если лямбду переписать как функцию, будет понятнее? Если нет, то дело не в лямбде спок

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

#20 
1 2 3 4 все