реклама на сайте
подробности

 
 
6 страниц V  « < 3 4 5 6 >  
Reply to this topicStart new topic
> C++ & Pascal, Помощь утопающим
zltigo
сообщение Sep 13 2016, 09:49
Сообщение #61


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (Kabdim @ Sep 13 2016, 11:59) *
Эти ограничения - меседж от разработчиков языка и компилятора "подумай еще раз, с большой вероятностью ты готовишь выстрел в ногу".

О чем простите думать, если Вы говорите об ОГРАНИЧЕНИИ, а не предупреждении? Ограничение означает, что не сможете этим, одним из миллионов вариантов, повредить себе ногу. Заодно не сможете вообще воспользоваться витовкой для любых других целей.
Какое относительно счастье. Спасибо разработчикам компиляторов за наше счастливое детство.
Есть и целые толпы борцов с ветряными мельницами и в Си, например, благодеятели от MISRA, но это все же НЕ ОГРАНИЧЕНИЯ, а "предупреждения".


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
brag
сообщение Sep 13 2016, 10:06
Сообщение #62


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



Цитата
Причем тут стиль? Это тот случай, когда программисту нельзя доверить второй указатель. Говорит о силе языка или программиста?.
Выросла производительность железа - появилась возможность организовывать системы выделения памяти со сборщиками мусора.

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

Цитата
Это так, но на самом деле это мелочь.

Это мелочь для крохотных проектов, а если там хотя бы 200к строк кода, тогда портировать такой код на плюсы будет не просто.

Цитата
Вы никогда не делали глупых ошибок с указателями? Модификатор const выброшен вами за ненадобностью? sm.gif

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

Цитата
Но получал аналогичный месседж от компилятора, который все же не делает ограничений

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

Все, кто гонит на С++ и другие высокоуровневые языки или на какой-то непривычный для них стиль(тот же асинхронный) - просто не умеют на них программировать, просто не имеют достаточных современных знаний и опыта, и предпочитают все делать по старинке привычным для них способом sm.gif
Это все равно что сравнивать стамеску, молоток и топор с много-осевым ЧПУ станком sm.gif
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Sep 13 2016, 10:45
Сообщение #63





Guests






Видал я эти "многоосевые", после которых рыдать хочется.
В итоге берешь молоток и зубило, идешь эффективным путем и получаешь годами работающее изделие без обслуживания.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Sep 13 2016, 10:52
Сообщение #64


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(brag @ Sep 13 2016, 13:06) *
Это все равно что сравнивать стамеску, молоток и топор с много-осевым ЧПУ станком sm.gif


Ага и вытачивать на своем много осевом винты и гайки, которые нормальный конструктор берет из кассетницы.

Убого выглядят потуги хоть как-то продвинуть C++ без опыта реальных проектов.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 13 2016, 10:59
Сообщение #65


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (AlexandrY @ Sep 13 2016, 13:52) *
Убого выглядят потуги хоть как-то продвинуть C++
Еще более убого выглядят попытки его задвинуть.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 13 2016, 11:22
Сообщение #66


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (AlexandrY @ Sep 13 2016, 13:52) *
Ага и вытачивать на своем много осевом винты и гайки, которые нормальный конструктор берет из кассетницы.

Из "кассетницы берет" не конструктор, а слесарь. Вот такая принциальная разница между программированием и "програмированием". В массовом сознании еще не укрепились различия между "программистами" и "слесарями-интеллигентами"© Ильф и Петров.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Sep 13 2016, 12:19
Сообщение #67


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



Цитата(zltigo @ Sep 13 2016, 12:49) *
О чем простите думать, если Вы говорите об ОГРАНИЧЕНИИ, а не предупреждении? Ограничение означает, что не сможете этим, одним из миллионов вариантов, повредить себе ногу. Заодно не сможете вообще воспользоваться витовкой для любых других целей.
Какое относительно счастье. Спасибо разработчикам компиляторов за наше счастливое детство.
Есть и целые толпы борцов с ветряными мельницами и в Си, например, благодеятели от MISRA, но это все же НЕ ОГРАНИЧЕНИЯ, а "предупреждения".

Можно поинтересоваться с каким настройками предупреждений вы компилируете и исправляете ли все предупреждения?

В расте декларируется простая вещь - гарантированная безопасность данных, пока вы в рамках наложенных ограничений. Если вам не нравится ограничения, то можно пользоваться "unsafe {...}" и не получать этих гарантий. Мне наоборот нравится идея что пока я в рамках правил язык даёт мне такие гарантии, в отличии от нашего любимого C в котором неосторжная опечатка может привести к трудно отлавливаемой катастрофе. Насчёт ограниченности инструмента вы неаргументированно утверждаете что что-то сделать невозможно. Разумеется там где нужно используется"unsafe {...}" с ручной верификацией, в библиотеке самого раста немало примеров. Но для большинства применений отступать от этих правил не требуется, а профит от гарантий встроенных в язык остается. Я бы предпочел поспорить аргументированно, но т.к. у меня (и скорее всего у вас) нет опыта использования раста, то спор выйдет ущербный.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 13 2016, 12:45
Сообщение #68


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (Kabdim @ Sep 13 2016, 15:19) *
Можно поинтересоваться с каким настройками предупреждений вы компилируете и исправляете ли все предупреждения?

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


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
brag
сообщение Sep 13 2016, 12:46
Сообщение #69


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



От спора по расту я бы тоже воздержался, очень новый язык и функционал его очень богат(в том числе и шаблоны, перегрузки ипт. там тоже есть), но мы все пока что не умеем им пользоваться. Сначала научимся, сделаем хотя бы парочку серьезных проектов, потом можно и спорить.
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Sep 13 2016, 12:51
Сообщение #70


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



Цитата(zltigo @ Sep 13 2016, 15:45) *
С максимумом абсолютно возможных. Исправляю все. Это относится к сообщениям компилятора, а не приблуд типа MISRA, поскольку меня волнуют все места возможного непонимания меня конкретным компилятором. А фантазии на тему разных дядей на тему где я могу ошибиться и где может не понять некий абстракный компилятор, напротив, совершенно не волнуют.

Т.е. если прямо сейчас включить опцию treat warning as error - то ничего не поменяется? Ну вот раст это постоянно включенная опция.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 13 2016, 12:58
Сообщение #71


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (Kabdim @ Sep 13 2016, 15:51) *
Т.е. если прямо сейчас включить опцию treat warning as error - то ничего не поменяется?

Ничего.
QUOTE
Ну вот раст это постоянно включенная опция.

Вопрос в том, что относится к наказуемым предупреждениями вещам. В случае текущих сишных компилятров все уже достаточно сбалансировано, хотя, например, у того-же массовейшего GCC, пожалуй набор предупреждений относительно мал. Расширять-же количество warnings уже представляется достаточно бессмысленным. Но если хотите, то так-же MISRA Вам с радостью их накидает, как с бодуна sad.gif и мало не покажется.



--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
aiwa
сообщение Sep 13 2016, 14:02
Сообщение #72


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682



Цитата(brag @ Sep 13 2016, 13:06) *
Все, кто гонит на С++ и другие высокоуровневые языки ....

Так Вы же первый и "гнали" на С++, рекламируя Rust ему на замену. Поначалу я усомнился в его способности заменить С++, исходя из
Вашего описания ограничения на свободу с указателями. Ради интереса заглянул к ним на страничку, ну разбавили они взятый за основу С-шный синтаксис
паскалеобразностью, да еще приплели в него восторженности. Не прельщает, шарп или ява и то приятней.
Go to the top of the page
 
+Quote Post
Den64
сообщение Sep 13 2016, 14:50
Сообщение #73


Знающий
****

Группа: Свой
Сообщений: 584
Регистрация: 22-11-07
Из: Курская область
Пользователь №: 32 571



Цитата(andrew_b @ Sep 13 2016, 08:29) *
Это разные языки. Валидный Си-код может быть невалидным Си++-кодом.

Какие конструкции или ключевые слова из языка С компилятор С++ не поймёт?
Кто нибудь знает хоть один чисто си современный компилятор?
Например я С++ называю просто си, без всяких ++. Все знакомые кто в теме тоже говорят просто "сишка" или "писал на сях" и все имеют ввиду С++.
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Sep 13 2016, 15:19
Сообщение #74


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



Цитата(aiwa @ Sep 13 2016, 17:02) *
Так Вы же первый и "гнали" на С++, рекламируя Rust ему на замену. Поначалу я усомнился в его способности заменить С++, исходя из
Вашего описания ограничения на свободу с указателями. Ради интереса заглянул к ним на страничку, ну разбавили они взятый за основу С-шный синтаксис
паскалеобразностью, да еще приплели в него восторженности. Не прельщает, шарп или ява и то приятней.

Дык, последние по такой логике - тот же самый си, только чего-то там добавили, приплели, восторженность всякая и т.д. biggrin.gif
Синтаксис не главная часть языка... даже близко.
Go to the top of the page
 
+Quote Post
brag
сообщение Sep 13 2016, 15:21
Сообщение #75


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



Цитата
Так Вы же первый и "гнали" на С++, рекламируя Rust ему на замену. Поначалу я усомнился в его способности заменить С++, исходя из
Вашего описания ограничения на свободу с указателями. Ради интереса заглянул к ним на страничку, ну разбавили они взятый за основу С-шный синтаксис
паскалеобразностью, да еще приплели в него восторженности. Не прельщает, шарп или ява и то приятней.

Имелось в виду гонят на более высокоуровневые(такие как плюсы, или еще более высокоуровневый раст, или JS) в пользу более низко-уровневых типа С или паскаля.
У раста такой синтаксис не случайно возник, а из за того, чтобы он был растом, чтобы программист привыкал к определенному стилю и технике. И ява или шарп ему не конуренты, у них своя ниша, у раста своя. Например на яве Вы не сможере писать под Atmega8, а на расте - запросто.

Любое высокоуровневое программирование - это набор определенных ограничений и правил. И чем выше уровень, тем их больше. Даже в ассемблера есть правила, тк он более высокоуровневый, чем машинный код. В машинном коде ограничений нет - пиши что хочешь и никакой компилятор тебе ничего не запретит, тк компилятора нет sm.gif

Цитата
Какие конструкции или ключевые слова из языка С компилятор С++ не поймёт?

Да запросто, вот выдрал из реального коммерческого проекта. Попробуйте скомпилируйте этот код стандартным плюсовым компилятором. Стандарт С++(даже 17й) этого не поддерживает, поэтому приходится делать на С.
Код
typedef void (*t_ISR)(void);

typedef const struct{
//...
    t_ISR tim6;        // 54 0x00000118  TIM6 global interrupt
//...
} t_Ivectors;

//....
void iTim6(void);
//.....
__section(".ivectors") t_Ivectors iVectors={
    .tim6=iTim6
//....
};
Go to the top of the page
 
+Quote Post

6 страниц V  « < 3 4 5 6 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 19:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.0148 секунд с 7
ELECTRONIX ©2004-2016