[Pure C] почему мазохизм?!
От: Alexéy Sudáchen Чили  
Дата: 20.02.11 08:13
Оценка:
От в этой ветке http://www.rsdn.ru/forum/cpp/4158614.flat.aspx
Автор: Alexéy Sudáchen
Дата: 15.02.11
С-программер (Олег К.) и С++ программер (Vain) солидарно считают что программирование на С — мазохизм.

С некоторыми оговорками я с ними в общем-то согласен, но тем не менее существует стереотип что С — безусловный мазохизм! Вопрос в том почему имено вы так считаете, или не считаете?

В философию, поскольку вопрос философский =)))
Re: [Pure C] почему мазохизм?!
От: adontz Грузия http://adontz.wordpress.com/
Дата: 20.02.11 08:18
Оценка:
Здравствуйте, Alexéy Sudáchen, Вы писали:

AS>Вопрос в том почему имено вы так считаете, или не считаете?


Выгоды (дополнительная гибкость, дополнительная портируемость, и т.д.) не адекватны трудозатратам (утечки ресурсов, слабая типизация).
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[2]: [Pure C] почему мазохизм?!
От: Alexéy Sudáchen Чили  
Дата: 20.02.11 08:44
Оценка:
Здравствуйте, adontz, Вы писали:

AS>>Вопрос в том почему имено вы так считаете, или не считаете?

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

Относительно утечки ресурсов не всё так просто. В С есть свои техники аналогичные идеоме умных указателей и RAII. К тому же, на доступных версиях компилятора С++ до определённого момента (где-то в середине 90-ых если мне склероз не изменяет) было крайне тяжело контролировать ресурсы. В этом плане он от С не сильно отличался. Щас с Modern C++ это делать весьма несложно. Но и в С вобщем-то тоже =) Я постараюсь на неделе написать и про это.

Является ли минусом слабая типизация — это вообще сложный вопрос. Именно для С — это гигантский плюс, ИМХО =)
Re[3]: [Pure C] почему мазохизм?!
От: adontz Грузия http://adontz.wordpress.com/
Дата: 20.02.11 08:47
Оценка:
Здравствуйте, Alexéy Sudáchen, Вы писали:

AS>>>Вопрос в том почему имено вы так считаете, или не считаете?

AS>Относительно утечки ресурсов не всё так просто. В С есть свои техники аналогичные идеоме умных указателей и RAII.

Существование техник и удобство их использования разные вещи.

AS>К тому же, на доступных версиях компилятора С++ до определённого момента (где-то в середине 90-ых если мне склероз не изменяет) было крайне тяжело контролировать ресурсы.


Что, деструкторы не работали?

AS>Является ли минусом слабая типизация — это вообще сложный вопрос. Именно для С — это гигантский плюс, ИМХО =)


Вопрос только в том, оправдывает ли удобство в 2% случаев, когда это надо, проблемы в 98% случаев, когда это не надо.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re: [Pure C] почему мазохизм?!
От: shasa  
Дата: 20.02.11 08:51
Оценка:
Здравствуйте, Alexéy Sudáchen, Вы писали:
AS>С — безусловный мазохизм! Вопрос в том почему именно вы так считаете, или не считаете?

— Пишет человек который на си толком не программировал.
Re[4]: [Pure C] почему мазохизм?!
От: Alexéy Sudáchen Чили  
Дата: 20.02.11 08:54
Оценка:
Здравствуйте, adontz, Вы писали:


A>Что, деструкторы не работали?

Тяжело было на каждый чих деструкторы писать =)

AS>>Является ли минусом слабая типизация — это вообще сложный вопрос. Именно для С — это гигантский плюс, ИМХО =)

A>Вопрос только в том, оправдывает ли удобство в 2% случаев, когда это надо, проблемы в 98% случаев, когда это не надо.
А что это действительно даёт столько проблем?!
Re[2]: [Pure C] почему мазохизм?!
От: Alexéy Sudáchen Чили  
Дата: 20.02.11 08:55
Оценка:
Здравствуйте, shasa, Вы писали:

S>- Пишет человек который на си толком не программировал.

Это вы про себя ?

Собственно, по существу что-нить скажите. Наверняка есть что сказать, раз написали.
Re[5]: [Pure C] почему мазохизм?!
От: adontz Грузия http://adontz.wordpress.com/
Дата: 20.02.11 08:58
Оценка:
Здравствуйте, Alexéy Sudáchen, Вы писали:

AS>>>Является ли минусом слабая типизация — это вообще сложный вопрос. Именно для С — это гигантский плюс, ИМХО =)

A>>Вопрос только в том, оправдывает ли удобство в 2% случаев, когда это надо, проблемы в 98% случаев, когда это не надо.
AS>А что это действительно даёт столько проблем?!

Всегда есть человеческий фактор, вероятность ошибки. Венгерская нотация — очевидный костыль, позволяющий визуально контроллировать типы вместо компилятора. Если нет проблемы со случайным использованием слабой типизации, то зачем венгерская нотация?
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[6]: [Pure C] почему мазохизм?!
От: Alexéy Sudáchen Чили  
Дата: 20.02.11 09:02
Оценка:
Здравствуйте, adontz, Вы писали:

A>Если нет проблемы со случайным использованием слабой типизации, то зачем венгерская нотация?

Понятия не имею, и никогда не использовал. Вы считаете что именно для этого?
Re: [Pure C] почему мазохизм?!
От: __lambda__ Россия http://zen-hacker.blogspot.com/
Дата: 20.02.11 09:04
Оценка: 1 (1) +4
Здравствуйте, Alexéy Sudáchen, Вы писали:

AS>С некоторыми оговорками я с ними в общем-то согласен, но тем не менее существует стереотип что С — безусловный мазохизм! Вопрос в том почему имено вы так считаете, или не считаете?


Смотря для каких задач его применять. Для низкоуровневого программирования, Си отличный инструмент. А для более высокоуровневого программирования, мазохизм. Я на Си программировал разные микроконтроллеры, для таких задач, он действительно хорош. Ну или для программ близких к железу, а также для написания критичных к скорости участков кода. А вот в веб-прогрограммировании никто в здравом уме Си использовать не будет. И поэтому я не могу сказать, что Си — безусловный мазохизм, все как раз зависит от условий, в которых мы находимся.
Computer science is no more about computers than astronomy is about telescopes (c) Edsger Dijkstra
Re: [Pure C] почему мазохизм?!
От: jazzer Россия Skype: enerjazzer
Дата: 20.02.11 09:05
Оценка:
Здравствуйте, Alexéy Sudáchen, Вы писали:

AS>От в этой ветке http://www.rsdn.ru/forum/cpp/4158614.flat.aspx
Автор: Alexéy Sudáchen
Дата: 15.02.11
С-программер (Олег К.) и С++ программер (Vain) солидарно считают что программирование на С — мазохизм.


AS>С некоторыми оговорками я с ними в общем-то согласен, но тем не менее существует стереотип что С — безусловный мазохизм! Вопрос в том почему имено вы так считаете, или не считаете?


Странно было бы не соглашаться с очевидным.

Потому что практически все, что можно написать на Си, можно написать и на С++, но не наоборот. За исключением некоторых С99-фич, собственно (некоторых — потому что многие фичи уже вошли в новый стандарт и/или поддерживаются компиляторами подпольно уже сейчас, например, restrict, variadic macros etc).
Все твои трюки со свичами будут прекрасно работать и в С++.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[3]: [Pure C] почему мазохизм?!
От: jazzer Россия Skype: enerjazzer
Дата: 20.02.11 09:07
Оценка:
Здравствуйте, Alexéy Sudáchen, Вы писали:

AS>Здравствуйте, adontz, Вы писали:


AS>>>Вопрос в том почему имено вы так считаете, или не считаете?

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

AS>Относительно утечки ресурсов не всё так просто. В С есть свои техники аналогичные идеоме умных указателей и RAII. К тому же, на доступных версиях компилятора С++ до определённого момента (где-то в середине 90-ых если мне склероз не изменяет) было крайне тяжело контролировать ресурсы. В этом плане он от С не сильно отличался. Щас с Modern C++ это делать весьма несложно. Но и в С вобщем-то тоже =) Я постараюсь на неделе написать и про это.


AS>Является ли минусом слабая типизация — это вообще сложный вопрос. Именно для С — это гигантский плюс, ИМХО =)


reinterpret_cast в С++ замечательно убивают любую типизацию там, где это вдруг потребовалось
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[7]: [Pure C] почему мазохизм?!
От: adontz Грузия http://adontz.wordpress.com/
Дата: 20.02.11 09:07
Оценка:
Здравствуйте, Alexéy Sudáchen, Вы писали:

A>>Если нет проблемы со случайным использованием слабой типизации, то зачем венгерская нотация?

AS>Понятия не имею, и никогда не использовал. Вы считаете что именно для этого?

Да, я думаю что сейчас она используется именно для этого (хотя придумывалась для другого).
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[2]: [Pure C] почему мазохизм?!
От: Alexéy Sudáchen Чили  
Дата: 20.02.11 09:22
Оценка: :))
Здравствуйте, jazzer, Вы писали:

J>Странно было бы не соглашаться с очевидным.

Ну для меня это совсем не очевидно =)

J>Потому что практически все, что можно написать на Си, можно написать и на С++, но не наоборот. За исключением некоторых С99-фич, собственно (некоторых — потому что многие фичи уже вошли в новый стандарт и/или поддерживаются компиляторами подпольно уже сейчас, например, restrict, variadic macros etc).


Ну далеко не всё. В С в отличии от С++ void* приводится к любому другому указателю. Это вроде бы незначительное отличие может в корне менять структуру программы. В скобках запутаешся то же самое писать на плюсах.
Re: [Pure C] почему мазохизм?!
От: MasterZiv СССР  
Дата: 20.02.11 09:23
Оценка:
On 20.02.2011 11:13, Alexéy Sudáchen wrote:

> С некоторыми оговорками я с ними в общем-то согласен, но тем не менее существует

> стереотип что С — безусловный мазохизм!

Программировать на С -- безусловный мазохизм, потому что
С++ делает кучу проверок за тебя, в то время как С оставляет
тебя на едине со своими проблемами. А разницы в коде или сборке
нет никакой.

Можно писать на С++ не используя классы, шаблоны и пр. , уже будет лучше.
Posted via RSDN NNTP Server 2.1 beta
Re[2]: [Pure C] почему мазохизм?!
От: Alexéy Sudáchen Чили  
Дата: 20.02.11 09:31
Оценка:
Здравствуйте, MasterZiv, Вы писали:

MZ>Программировать на С -- безусловный мазохизм, потому что

MZ>С++ делает кучу проверок за тебя, в то время как С оставляет
MZ>тебя на едине со своими проблемами. А разницы в коде или сборке
MZ>нет никакой.

То есть вы хотите сказать что если я пишу на С++ тот же самый код что и на С (а именно без шаблонов и классов), то я получаю некие дополнительные проверки, который магически защищают мой код?! Это интересно какие?

MZ>Можно писать на С++ не используя классы, шаблоны и пр. , уже будет лучше.


Чем?
Re[2]: [Pure C] почему мазохизм?!
От: Alexéy Sudáchen Чили  
Дата: 20.02.11 09:36
Оценка:
Здравствуйте, __lambda__, Вы писали:

___>Смотря для каких задач его применять. Для низкоуровневого программирования, Си отличный инструмент. А для более высокоуровневого программирования, мазохизм. Я на Си программировал разные микроконтроллеры, для таких задач, он действительно хорош. Ну или для программ близких к железу, а также для написания критичных к скорости участков кода. А вот в веб-прогрограммировании никто в здравом уме Си использовать не будет. И поэтому я не могу сказать, что Си — безусловный мазохизм, все как раз зависит от условий, в которых мы находимся.


Ну хорошо, вы повторили своими словами высказывание ставшее причиной это обсуждения. С некоторыми исключениями конечно. Однако почему вы так считаете?
Re[3]: [Pure C] почему мазохизм?!
От: FR  
Дата: 20.02.11 09:41
Оценка:
Здравствуйте, Alexéy Sudáchen, Вы писали:

AS>То есть вы хотите сказать что если я пишу на С++ тот же самый код что и на С (а именно без шаблонов и классов), то я получаю некие дополнительные проверки, который магически защищают мой код?! Это интересно какие?


Ну например такое:

#include <stdio.h>

void Tst(int x)
{
printf("%d\n", x);
}

void (*FPtr)() = Tst;

int main()
{
FPtr();
}


На си соберется и будет выводить мусор, на C++ ошибка компиляции.
Re[3]: [Pure C] почему мазохизм?!
От: __lambda__ Россия http://zen-hacker.blogspot.com/
Дата: 20.02.11 09:44
Оценка:
Здравствуйте, Alexéy Sudáchen, Вы писали:

AS>Ну хорошо, вы повторили своими словами высказывание ставшее причиной это обсуждения. С некоторыми исключениями конечно. Однако почему вы так считаете?


Странно, я думал, что опроверг, то самое высказывание. То высказывание, где утверждается, что программирование на Си, это безусловный мазохизм. И вроде как даже обосновал свою точку зрения тем, что условия разные бывают.
Computer science is no more about computers than astronomy is about telescopes (c) Edsger Dijkstra
Re[4]: [Pure C] почему мазохизм?!
От: Alexéy Sudáchen Чили  
Дата: 20.02.11 09:57
Оценка:
Здравствуйте, FR, Вы писали:

FR>Здравствуйте, Alexéy Sudáchen, Вы писали:


FR>
FR>void (*FPtr)(void) = Tst;
FR>


Ну, я уверен что С ты знаешь и выделенное пропустил намеренно, как и -Wall -Werror. Ещё вырианты есть?
Я в С++ тоже могу гору багов с опечатками набрать, несмотря на его жёсткую типизацию и использование всяких песочниц а-ля STL. =)))
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.