Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Религиозные войны > умер ли Си?


Автор: nikitao 26.10.2005, 15:01
Цитата
Лучше б на С++ код привел

Почему? Человек начал изучать С а не C++(он сам в первом посте написал).


Автор: Neitron 26.10.2005, 15:03
Упс, пропстил.
Тогда совет автору, изучать Си++. С умер.
А изучать санчало С, а потом ++ не имеет никакого смысла.

Автор: nikitao 26.10.2005, 15:09
Цитата
С умер

Недавно споры ходили об этом так я понял что С не умер.Прсто на C программируют на низком уровне а C++ все остальное.
Цитата
А изучать санчало С, а потом ++ не имеет никакого смысла.

До сих пор большенство книг по C++ расчитаны на то что читательзнает C,хотя не все.

Автор: Neitron 26.10.2005, 15:29
nikitao
С умер, С++ разрабатывался одновременно и для низкоуровнего программирования.

Автор: S.A.P. 26.10.2005, 15:31
Neitron
http://forum.vingrad.ru/index.php?showtopic=68470

Автор: nikitao 26.10.2005, 15:32
Цитата
С умер, С++ разрабатывался одновременно и для низкоуровнего программирования.

А зачем тогда стандартизацию C провели уже после создания C++,и к тому же С++ тормаз по сравнению с C.

Автор: Kagor 26.10.2005, 15:45
Народ, давайте здесь без религиозных воин. Если хотите поспорить, то для этого есть специальный раздел. smile

Автор: sergejzr 26.10.2005, 15:47
Перенёс сюда полтемы: http://forum.vingrad.ru/index.php?showtopic=68367&unread=1&hl=



Дабы не оффтопить smile

Автор: Sun 27.10.2005, 14:41
Цитата
умер ли Си?

Спроси у тех кто работает под Unix и тех кто пишет Windows, умер ли С smile Язык C абсолютный чемпион по написанному на нем софту. С++ там и рядом не валялся.

Автор: Sardar 27.10.2005, 15:45
C++ сложен, через чур. Редкий компилятор реализует всю спецификацию C++ Лучше писать на D smile

C активно используеться для программирования микроконтроллеров, DSP и другого железа. Потому что удобно и достаточно просто. Весь проект комилируеться/линкуеться в один процесс-имейдж, никакой динамическй линковки и т.п.

Правда не совсем C а его версия embedded C используеться, различия в паре ключевых слов. Xотя сейчас пишу под eZ80L92, пришедший вместе с IDE компилер являеться ANSI C. Прерывания не помечаються специальными ключевыми словами, да это и не нужно, т.к. идёт вместе много софта, в частности RTOS, в которой твои прерывания это процессы/нити, регистрируемые с помощью API. Удобно smile

Автор: chipset 27.10.2005, 15:56
http://russian.joelonsoftware.com/Articles/BacktoBasics.html

Автор: DeadSoul 27.10.2005, 20:19
nikitao, нет не умер. Си(без плюсов) родной язык Линуха

Автор: Mad 27.10.2005, 21:43
Цитата(nikitao @ 26.10.2005, 14:09)
Прсто на C программируют на низком уровне а C++ все остальное

Цитата(nikitao @ 26.10.2005, 14:32)
к тому же С++ тормаз по сравнению с C.

Мне всегда нравиться когда кто-то кричит о том что он пишет на С и что рядом С++ вообще не стоял, а затем смотриш исходники и видеш, что он всетаки пишет на С++ просто не использую ООП smile

С имер чуть-ли не в момент своего рождения, на ЧИСТОМ С почти не кто не пишет, а оно и понятно, там только с локальными переменными такой гимор, что ..... smile

Цитата(DeadSoul @ 27.10.2005, 19:19)
нет не умер. Си(без плюсов) родной язык Линуха

DeadSoul
Внимательно посмотри на исходники ядра, там во многих местах есть определения переменных с ограничимой областью видимости (а это уже С++ а не С)

Автор: DeadSoul 27.10.2005, 21:46
Цитата(Mad @ 27.10.2005, 21:43)
DeadSoul
Внимательно посмотри на исходники ядра, там во многих местах есть определения переменных с ограничимой областью видимости (а это уже С++ а не С)


Mad, а такого не появилось в очередной версии Сишного стандарта

Автор: Mad 27.10.2005, 21:54
DeadSoul
Цитата(DeadSoul @ 27.10.2005, 20:46)
Mad, а такого не появилось в очередной версии Сишного стандарта

Очень интересно, особенно что между этими языками было всего ДВА различия :
1. Области видимости и правила обьявления (где именно можно обьявлять) переменных
2. Наличие/отсутсвия механизмов ООП

Видимо теперь С это полная копия С++, только без ООП smile

На самом деле я (для себя) никогда не разделял эти два языка (поэтому в большинстве случаев и пишут С/С++)

И еще, приведи пример хоть одного компилятора (именно компилятора, а не крос-компилятора), который держит последний стандарт С, не не держит С++ (причем именно не держит С++, а не только не понимает классы) ?
Добавлено @ 21:57
Да и еще, я очень давно не просматривал ANSI стандарты на С/С++.
Ты уверен что его изменили, или ты просто судеш по возможностям какогото компилятора ?

Например последний (который я видел, щас версию уже не помню) АСМ от мелкомягкого потдерживал КЛАССЫ !!! это тоже стандарт ?

Автор: srd 27.10.2005, 22:00
Цитата(Mad @ 28.10.2005, 05:43)
Мне всегда нравиться когда кто-то кричит о том что он пишет на С и что рядом С++ вообще не стоял, а затем смотриш исходники и видеш, что он всетаки пишет на С++ просто не использую ООП

А мне всегда нравятся такие категоричные заявления. Чистый Си никуда не делся. Допустим, я на работе пишу для embedded-устройств. Используется компилятор, соответствующий стандарту C89. Из расширений там только однострочные комментарии //

Цитата
С имер чуть-ли не в момент своего рождения, на ЧИСТОМ С почти не кто не пишет, а оно и понятно, там только с локальными переменными такой гимор, что .....

Стандарт 89 года - локальные переменные определяются в начале блока. Учитывая, что блоки {} можно размещать практически произвольно...
Cтандарт 99 года - локальные переменные можно определять совершенно свободно в любом месте.
Где гимор??



Автор: Void 27.10.2005, 22:05
Mad
В C99 ввели объявление переменных в произвольном месте блока. Правда, разработка Linux началась задолго до принятия этой редакции стандарта...

Автор: Mad 27.10.2005, 22:06
Цитата(srd @ 27.10.2005, 21:00)
Стандарт 89 года - локальные переменные определяются в начале блока. Учитывая, что блоки {} можно размещать практически произвольно...
Cтандарт 99 года - локальные переменные можно определять совершенно свободно в любом месте.
Где гимор??

И вчем тогда отличие C99 от С++ ? smile

Автор: srd 27.10.2005, 22:19
Mad
Извини, но говорить, что Си++ отличается от Си из-за ООП и места определения локальных переменных, это такая же глупость, как говорить, что Ява - это Си++ без множественного наследования. Достаточно сравнить объёмы книг Страуструпа и K&R. Помимо классов, отличий полно, начиная от таких фундаментальных, как шаблоны, исключения, перегрузка операторов, стандартная библиотека, и заканчивая менее сногсшибательными - логические типы, типы символьных литералов, тип enum, правило "неявного int", вызовы функций без предварительного объявления, неявное приведение void* к другому типу указателя и т.д., и т.п.
Добавлено @ 22:21
Void
Цитата(Void @ 28.10.2005, 06:05)
В C99 ввели объявление переменных в произвольном месте блока. Правда, разработка Linux началась задолго до принятия этой редакции стандарта...

Это расширения GCC, их полно.

Автор: chipset 28.10.2005, 02:47
Цитата(Mad @ 27.10.2005, 11:43)
на ЧИСТОМ С почти не кто не пишет,

smile smile smile
Прийди к Юниксоидам и скажи им что они не пишут на чистом Си.
Цитата(Mad @ 27.10.2005, 11:43)
Внимательно посмотри на исходники ядра, там во многих местах есть определения переменных с ограничимой областью видимости (а это уже С++ а не С)

Ты имеешь в виду неймспейсы?

Автор: Mad 28.10.2005, 03:48
Цитата(chipset @ 28.10.2005, 01:47)
Ты имеешь в виду неймспейсы

наймспейсы, это уже С++ ;)

Автор: Sun 28.10.2005, 10:16
Цитата(Mad @ 28.10.2005, 00:48)
наймспейсы, это уже С++ ;)

Здесь я больше согласен с srd. При програмировании на С идет совсем другая методология, чем на С++. Программа на С не превращается в программу на С++, если там используются нэймспейсы или по другому производится объявление переменных, нежели в ранних версиях. ИМХО это просто развитие языка. Сила С в простоте. Это фактически ассемблер, только с более удобной формой записи. Создать компилятор С элементарно, для любого процессора (даже с поддержкой нэймспейсов и объявлением переменных в любом месте кода), тогда как для С++ это сложнейшая задача.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)