LINUX.ORG.RU

Почему гуру выбирают си


0

0

Извините может и было подобное. Но не могу понять почему, на книжных полках просто завал языков с++ и ужасно мало про "чистый" Си? Хотя исходников в *nix на Cи намного больше чем на том же с++. Почему тот же GNU выпускает компилятор с++ и пишет все программы на Си?


> ...GNU выпускает компилятор с++ и пишет все программы на Си?

Это что, стеб такой?

>...не могу понять почему, на книжных полках просто завал языков с++ и ужасно мало про "чистый" Си?

На вс. случай, отвечаю на вопрос серьезно:-):

Потому, что Си -- простой язык, и им пользуются спецы-профессионалы, которые книжкам для носорогов предпочитают оригинальные спеки. А Си++ -- сложный язык, и им пользуются, в основном, всякие околоприкладники, правда, все меньше -- сейчас популярнее всего Джава (она еще сложнее), которую стремительно вытесняет СиШарп (гораздо сложнее). Но еще лет 5 назад Си++ был самым популярным, и книги были весьма востребованы: прикладнику, чтобы быстренько слепить разовую программулину, требовалось быстренько почитать пятистраничную брошюрку для носорогов типа "все о Си++" и иметь под рукой тысячестраничный справочник для носорогов "Некоторые аспекты программирования на Си++".

Die-Hard ★★★★★
()

Он нарушает сразу несколько принципов построения UNIX систем (покушается на основы философии трутЪ UNIX вея)

Например:

"Не пиши сложный код, оперирующий простыми данными, пиши простой код, оперирующий сложными данными".

"Не изобретай велосипед"

marsijanin ★★
()

Про книжные полки - это просто. Книжки печатают не потому что язык хороший, а потому что есть перспектива бабок срубить. Язык C компактный и простой (по крайней мере - по сравнению с C++), и его стандартная библиотека не очень замысловата - на всё достаточно одной-двух книжек :) Толи-дело С++ - и язык развесистый, и разных библиотек до дури, а практика его эффективного использования и вовсе отдельная песня. Так что не прячте ваши денежки - бегом за книжкой.

anonymous
()
Ответ на: комментарий от marsijanin

> "Не пиши сложный код, оперирующий простыми данными, пиши простой код, оперирующий сложными данными".

??? это откуда это? где в UNIX сложные данные ?

gods-little-toy ★★★
()

> Извините может и было подобное. Но не могу понять почему, на книжных полках просто завал языков с++ и ужасно мало про "чистый" Си? Хотя исходников в *nix на Cи намного больше чем на том же с++. Почему тот же GNU выпускает компилятор с++ и пишет все программы на Си?

с чего вы взяли, что гуру выбирают C? :) или исходники *NIX - это гуру? :)

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от Die-Hard

> Потому, что Си -- простой язык, и им пользуются спецы-профессионалы, которые книжкам для носорогов предпочитают оригинальные спеки. А Си++ -- сложный язык, и им пользуются, в основном, всякие околоприкладники, правда, все меньше -- сейчас популярнее всего Джава (она еще сложнее), которую стремительно вытесняет СиШарп (гораздо сложнее). Но еще лет 5 назад Си++ был самым популярным, и книги были весьма востребованы: прикладнику, чтобы быстренько слепить разовую программулину, требовалось быстренько почитать пятистраничную брошюрку для носорогов типа "все о Си++" и иметь под рукой тысячестраничный справочник для носорогов "Некоторые аспекты программирования на Си++".

вы видимо никогда не встречали серверного сетевого ПО, спокойно обрабатывающего миллионы весьма нетривиальных транзакций в минуту с требованиями 24x7x386.. :))) угадайте, на чем оно написано? явно не на C и не на Java...

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от gods-little-toy

"Пиши тупой код, который оперирует умными данными" - по моему так правильнее

marsijanin ★★
()
Ответ на: комментарий от marsijanin

Я так понимаю тот софт написан с использованием ACE, которая хоть и на c++ написана, но использует лишь малую долю его "новых возможностей".

anonymous
()

>http://www.linux.org.ru/profile/jony5/view-message.jsp?msgid=1989166&page=6

Еще больше запутался...=) Так на что же смотреть, если выбирать не скорость разработки программы, а ее хорошую функциональность и не смотреть на убогость ООП в с++? Я еще столкнулся с проблемами использования библиотек, которые написаны для Си(большее количество) или это поправимо... Сам я новичок, с Си дружу давно, но к с++ присматриваюсь с опаской.

jony5
() автор топика
Ответ на: комментарий от anonymous

> Я так понимаю тот софт написан с использованием ACE, которая хоть и на c++ написана, но использует лишь малую долю его "новых возможностей".

нет, ну почему же сразу ACE.. хотя зачастую не без ней, родимой. как минимум в качестве референса.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от marsijanin

> Ассемблер?

"ты знал! ты знал!" (с) уже не помню чей...

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

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от jony5

> Еще больше запутался...=) Так на что же смотреть, если выбирать не скорость разработки программы, а ее хорошую функциональность и не смотреть на убогость ООП в с++? Я еще столкнулся с проблемами использования библиотек, которые написаны для Си(большее количество) или это поправимо... Сам я новичок, с Си дружу давно, но к с++ присматриваюсь с опаской.

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

впрочем, уверен, чуткие и отзывчивые господа в Talks не дадут вам сделать опрометчивый выбор. спрашивайте..

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

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

"переносимостью" забыл.

З.Ы. машкоды руляд

anonymous
()
Ответ на: комментарий от klalafuda

klalafuda:

> ...вы видимо никогда не встречали серверного сетевого ПО, ...

Где уж мне!

Вообще говоря, мои рассуждения касались общего прикладного и системного софта (уж во всяком случае не программистов микроконтроллеров), и конкретно противопоставления Си и Си++. Про Жабку я вспомнил просто потому, что Жабкин путь -- это путь ЦеПП, доведенный до абсурда.

Кстати, на Жабке в последнее время микроконтроллеры часто хотят программировать...

Die-Hard ★★★★★
()
Ответ на: комментарий от klalafuda

Тут не много не согласен так как... В принципе Си и С++ ставят одинаковые цели "Сделать все и вся" с разными подходами, как мне кажется ,может я могу и ошибаться ... Так какой же из них язык выбрать? Си меня больше привлекает стабильностью, в плане компиляторов, с++ мне больше нравиться, в плане быстрого написания задуманного.

jony5
() автор топика
Ответ на: комментарий от jony5

>В принципе Си и С++ ставят одинаковые цели "Сделать все и вся"

Вы где траву берёте, уважаемый, явно не у нас. Сделать всё и всех - это ближе к жабе.

marsijanin ★★
()
Ответ на: комментарий от jony5

> Еще больше запутался...=) Так на что же смотреть, если выбирать не скорость разработки программы, а ее хорошую функциональность и не смотреть на убогость ООП в с++? Я еще столкнулся с проблемами использования библиотек, которые написаны для Си(большее количество) или это поправимо... Сам я новичок, с Си дружу давно, но к с++ присматриваюсь с опаской.

и что? хорошая функциональность твоей программы - это твой труд, его по любому надо делать вне зависимости от языка. Да, конечно, упомянутые библиотеки - это труд, который кто-то сделал за тебя. а тебе нужно только научиться использовать :) Но если ты думаешь, что библиотеки для C++ меньше или компактнее - то ты заблуждаешься. Одинаковый функционал на этих языках даётся примерно одинаковыми затратами. Хотя надо признать - код в gtk-шных приложениях временами выглядит просто удручающе. Объектное программирование на C это Жжж...

anonymous
()
Ответ на: комментарий от jony5

2jony5:

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

Die-Hard ★★★★★
()
Ответ на: комментарий от anonymous

Ну все же ГТК пишут на си и не хотят отступать от правил.

jony5
() автор топика
Ответ на: комментарий от anonymous

>код в gtk-шных приложениях временами выглядит просто удручающе. Объектное программирование на C это Жжж...

ООП - оно в мозгах, а не в языке. более того, гтк написан на Ц не из-за того, что Ц круче варённых яиц, а потому, что Ц - огроменное поле для разработки биндигов и прочих радостей, которые, скажем, КуТе недоступны.

Pi ★★★★★
()
Ответ на: комментарий от troorl

troorl:

> Это ж как не доступны? (:

В рамках Позикса с сишной либой ликуется все, что угодно (особенно ЦеПП) без усилий. А с ЦеПП _переносимым_ образом ничего не линкуется, кроме ЦеПП...

Die-Hard ★★★★★
()
Ответ на: комментарий от Die-Hard

Хотел сказать "не только в кедах пущают", но "не" куда то задевалось.

Похоже /me спать пора - сам не вижу, что несу.

marsijanin ★★
()
Ответ на: комментарий от marsijanin

Уважаемый тов. marsijanin, прекратите высказывать свою ничем не обоснованную позицию и прочий бред. :Е

>и не смотреть на убогость ООП в с++?

Мухаха! Это пять! Автор болен.

>Сделать всё и всех - это ближе к жабе.

Бред. Для плюсов - весьма верно.

>ООП - оно в мозгах, а не в языке.

Мьсе явно не пробовал ооп на сях. :D Хотя с "оно в мозгах" согласен полностью.

Далее уважаемому автору темы.

>Но не могу понять почему, на книжных полках просто завал языков с++ и ужасно мало про "чистый" Си?

Потому-что он прост как валенок. Что-то лучшее, чем K&R написать, по поему твердому убеждению, просто невозможно. Да и не нужно.

Также, пусть тебя не вводит некоторое сходство в названих языков. Это два _совершенно разных_ языка программирования. Не считая "бонуса", что C являтеся почти-что подмножеством C++.

На сях (возможно) стОит писАть разве-что что-то очень низкоуровневое, либо очень простое, где нету необходимости в ооп. Можно и на ++, только в этом случае он все равно -> c.

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

anonymous
()
Ответ на: комментарий от troorl

> Ко многим интерпретируемым языкам есть биндинги.

Через высокие протоколы и мессадж пассинг. Тот же эффект, что с микроядром -- не ТруЪ :-)

Die-Hard ★★★★★
()
Ответ на: комментарий от Die-Hard

>> Ко многим интерпретируемым языкам есть биндинги.

> Через высокие протоколы и мессадж пассинг.

Разве PyQt использует message passing?

tailgunner ★★★★★
()
Ответ на: комментарий от Die-Hard

Но, как показывает практика, эти решения довольно производительны (:

troorl ★★
()
Ответ на: комментарий от anonymous

Можно, кто спорит. Только вот оказывается, что в одном случае лучше было использовать Си чистый, а не С++, во втором вообще Ассемблер, в третьем Лисп и т.д. Универсальных языков (программирования) нет, а С++, стараниями оных своих почитателей в них как раз и метит. Ява, впрочем, тоже.

Боюсь сейчас опять начнётся флейм на тему "чем так плох С++". Хотите - флеймите дальше, только без меня, я спать пошёл.

marsijanin ★★
()
Ответ на: комментарий от anonymous

>>ООП - оно в мозгах, а не в языке.

> Мьсе явно не пробовал ооп на сях. :D Хотя с "оно в мозгах" согласен полностью.

Ну, у тебя-то, похоже, "оно" не в мозгах, а уровнем ниже :-).

Почему-то сейчас принято учить, что для реализации любого паттерна необходим чуть ли не ДСЛ (домаин спец...). Надоели слегка религиозные споры про лябды, ООП и всякие отделения интерфейсов....

Die-Hard ★★★★★
()
Ответ на: комментарий от anonymous

Благодарю, что мне поясняют что с и с++ это разные языки, я это себе хорошо представляю, однако у этих языков одни задачи и народ пишет не них схожие программы, просто кто-то выбирает то или другое. как тинь и янь. Меня же беспокоит следующее в си++: насколько в этом языке можно быть уверенным так же как и в си? такая же согласованность в разных компиляторах, кроссплатформенность и все же почему почти весь софт в nix на си? Почему те же интерпретаторы пишут. опять же не том же си.

jony5
() автор топика
Ответ на: комментарий от jony5

> и все же почему почти весь софт в nix на си?

По историческим причинам, ИМХО. И психологическим тоже.

tailgunner ★★★★★
()
Ответ на: комментарий от Die-Hard

>Только вот оказывается, что в одном случае лучше было использовать Си чистый, а не С++, во втором вообще Ассемблер, в третьем Лисп и т.д. Универсальных языков (программирования) нет,

[|||||] ))) лучше бы чего нового сказал. :)


>Ну, у тебя-то, похоже, "оно" не в мозгах, а уровнем ниже :-).

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

>>>ООП - оно в мозгах, а не в языке.

ООП на плюсах выражается более естественно и красиво чем на чистом Си, вот и все. Никаких споров. :)

anonymous
()
Ответ на: комментарий от jony5

>Благодарю, что мне поясняют что с и с++ это разные языки, я это себе хорошо представляю, однако у этих языков одни задачи и народ пишет не них схожие программы, просто кто-то выбирает то или другое. как тинь и янь.

Что-то я сомневаюсь в твоем :Е

>я это себе хорошо представляю

давай уже все подряд читай, а не выборочно.

anonymous
()
Ответ на: комментарий от anonymous

anonymous (*) (05.08.2007 1:01:17):

> Нельзя же быть таким ранимым.

:-)

Я ж смайл влепил! Извини, если задел...

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

Die-Hard ★★★★★
()
Ответ на: комментарий от klalafuda

> вы видимо никогда не встречали серверного сетевого ПО, спокойно обрабатывающего миллионы весьма нетривиальных транзакций в минуту с требованиями 24x7x386.. :))) угадайте, на чем оно написано? явно не на C и не на Java...

На эрланге, да? ;)

CrazyPit ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.