URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 1438
[ Назад ]

Исходное сообщение
"Общий вопрос к людям, имеющим неплохой опыт программирования на C/C++ "

Отправлено michey , 27-Фев-03 11:32 
Начинаю учить C. Или C++. Сам не знаю с чего начать. Вопрос вот какой.
Нужно ли учить С? Может ли C++ полноценно его заменить во всех планах?
Скажем, говорят, что С++ обладает включил в себя все свойства C! Что это значит:? Компилятор C++ поддреживает все программы написанные на С или
же в синтаксисе С++ имеются все операторы и средства, что и в С? Тоесть заменяет ли сегодня язык С++ полностью С во всех планах или же нет?
Помогите определиться?
Нужен ли сегодня С и если да, то зачем?

Содержание

Сообщения в этом обсуждении
"RE: Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено SergeiZz , 27-Фев-03 12:14 
>Начинаю учить C. Или C++. Сам не знаю с чего начать. Вопрос
>вот какой.
>Нужно ли учить С? Может ли C++ полноценно его заменить во всех
>планах?
>Скажем, говорят, что С++ обладает включил в себя все свойства C! Что
>это значит:? Компилятор C++ поддреживает все программы написанные на С или
>
>же в синтаксисе С++ имеются все операторы и средства, что и в
>С? Тоесть заменяет ли сегодня язык С++ полностью С во всех
>планах или же нет?
>Помогите определиться?
>Нужен ли сегодня С и если да, то зачем?

Все-таки есть зависимость от ответа на "Зачем начинаю учить?". Системное
программирование, или прикладное? И так далее. Но во всяком случае
ориентироваться нужно на C++, не забывая при этом про существование
чистого C.

Программу на классическом C всегда (хм-м...) можно компилировать
компилятором C++. Дело не в компиляторе, а в библиотеках. Подавляющее
большиство низкоуровневых библиотек написано на C. Их без труда можно
использовать в программах на C++, но понимать особенности C необходимо.

Конкрктно говоря. Начинают учить язык обычно с ввода/вывода, "Hello,
World!" и всё такое прочее. Так вот, нужно начинать с cout и cin (C++),
а не с printf (С). Но это не значит, что не придёться никогда
использовать sprintf (для преобразования числа в строковое представление,
например), а для этого нужно иметь представление о логике работы
ввода/вывода классического C.

Синтаксис С не целиком, строго говоря, включён в C++. Но это в данном
конексте (первые шаги в программировании) не существенно. Можно считать,
что изучив C++ Вы научитесь понимать программы на классическом C.

Сколько человек программирует на C по сравнению с C++? На C больше.
Но это статистика (бывает ложь невольная, преднамеренная и статистика).
C++, помнится, просочился и в ядро Linux. Кто программирует на C?
Те, кто не хочет, не умеет, или кому нет ни какой необходимости
использовать объектный подход. Нужно ли "молодому бойцу" пытаться с
наскока освоить технологию ООП? Нужно, но не получиться.

Вывод. В своей мере нужно интересоваться и C++, и классическим C. Какова
должнабыть доля каждаго зависит от ответа на упомянутый вопрос "Зачем?".


"RE: Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено Bob , 27-Фев-03 15:28 
Если хочешь стать прикладным программистом, то учи С++.
Если системным - начинай изучать С. Но в этом случае будет полезно выучить еще и assembler. Знание этих двух языков очень здорово помогает в работе.
Кроме того, зная С, освоить С++ очень легко, т.к. С++ является расширением чистого С. Его еще называют "С с классами".
Вот такое мое мнение.

"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено SergeiZz , 27-Фев-03 17:17 
>Кроме того, зная С, освоить С++ очень легко, т.к. С++ является расширением
>чистого С. Его еще называют "С с классами".
>Вот такое мое мнение.

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

>Если системным - начинай изучать С. Но в этом случае будет полезно >выучить
>еще и assembler.
Поддерживаю, только как "Разобравшись в различии С и C++, и научившись писать более-менее сложные программы на C++, но желая заняться системным
програаммированием -- начинай изучать С, Но в этом случае будет полезно
выучить еще и assembler."
Уходя с самого начала от ООП (как технологии), человек многое потеряет,
даже, если применять её не собирается.


"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено pth , 02-Мрт-03 20:19 
> Очень возражаю против Вашего мнения, если конечно речь идёт о технологии
ООП, а не осинтексисе языка.

Абсолютно верно. Сама мысль о том. что можно понять ООП тупо выучив синтаксис ЯП (тем более синтаксис С++) - абсурдна.

P.S. Offtopic www.smalltak.ru - ресурс новый, рускоязычный, но пустой. Не знаете других (желательно русскоязычных - чукча не писатель, чукча читатель технического трепанга)?



"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено Bob , 03-Мрт-03 00:53 
Речь шла о синтаксисе языка, а не о технологии.

"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено SergeiZz , 03-Мрт-03 11:22 
>P.S. Offtopic www.smalltak.ru - ресурс новый, рускоязычный, но пустой. Не
>знаете других
>(желательно русскоязычных - чукча не писатель, чукча читатель технического
>трепанга)?

Вот парочка:
http://uiits.miem.edu.ru/Karpov/Pages/OOP/OopSmalltalk.htm
http://www.math.rsu.ru/smalltalk/Learning/VWTutorial/VWChapt...


"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено Laskaviy , 09-Мрт-03 20:17 
Да че вы репу парите ..
Си и Си++ это 2 совершенно разных языка ..
а народ пля на С++ так пишет .. что и половины его возможностей не использует .. грошь цена таким с++шникам .. бля вот !

"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено SergeiZz , 11-Мрт-03 18:12 
>Да че вы репу парите ..
>Си и Си++ это 2 совершенно разных языка ..
>а народ пля на С++ так пишет .. что и половины его
>возможностей не использует .. грошь цена таким с++шникам .. бля вот
>!

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


"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено Bob , 13-Мрт-03 13:50 
>А вот, что
>программисты,
>особенно "с опытом" не бельмеса не смыслят (в массе, а не в
>частности)
>в объектном подходе -- это я всецело и полностью разделяю Ваше пля-мнение!
>

А нужен ли всем объектный подход?
Если да, то напиши, например, драйвер сетевой карты, используя объектный подход!
Кроме шуток - лично я не знаю, как на C++ писать драйвера/модули ядра. Если поделишься таким материалом - буду очень признателен.


"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено SergeiZz , 14-Мрт-03 09:52 
>А нужен ли всем объектный подход?
Использовать или разбираться в том, что это такое? Фокус в том, что и
использовать-то этотого монстра со временем придётся каждому, даже
писателям драйверов, как не фантастично это звучит. Ненавистная мне
Java появилась на свет в ответ на развитие мобильных средств связи, а
не для Internet, как она используется сейчас. Когда каждый утюг будет
иметь микропроцессор со своей уникальной архитектурой, мы с Вами на C
писать драйверы к нему просто не сможем -- никто не успеет написать
нам достойный компилятор. А мыслить Java-подобную технологию без
объектного подхода мне как-то страшно становится.

>Если да, то напиши, например, драйвер сетевой карты, используя объектный подход!
>Кроме шуток - лично я не знаю, как на C++ писать драйвера/модули
>ядра. Если поделишься таким материалом - буду очень признателен.
Этот вопрос к "Арлекину" -- он умеет (как говорит). Если серьёзно, то
Вы путаете технологию с языком, её поддерживающим. Можно писать
программу, используя ООП, на C. Пример -- как раз GTK и есть. В ней
очень грамотно использован объектный подход, но написана она на C.

Если все согласились, что наша дискуссия не словоблудие, то я повторю
вопрос:
    Почему GTK написана на C?
Потому, что использование C более эффективно? Потому, что C++ умер --
смотрите замечания "Арлекина" где-то далеко ниже? Или по дугой причине?


"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено Арлекин , 14-Мрт-03 14:20 
>>А нужен ли всем объектный подход?
>Использовать или разбираться в том, что это такое? Фокус в том, что

>использовать-то этотого монстра со временем придётся каждому, даже
>писателям драйверов, как не фантастично это звучит. Ненавистная мне
>Java появилась на свет в ответ на развитие мобильных средств связи, а
Ну вот это уж Вы батенька загнули, так загнули.... Может ссылочкой поделитесь, где такая глупость написана ? Или сейчас так учат ?
>
>не для Internet, как она используется сейчас. Когда каждый утюг будет
>иметь микропроцессор со своей уникальной архитектурой, мы с Вами на C
>писать драйверы к нему просто не сможем -- никто не успеет написать
>
>нам достойный компилятор. А мыслить Java-подобную технологию без
>объектного подхода мне как-то страшно становится.
>
>>Если да, то напиши, например, драйвер сетевой карты, используя объектный подход!
>>Кроме шуток - лично я не знаю, как на C++ писать драйвера/модули
>>ядра. Если поделишься таким материалом - буду очень признателен.
>Этот вопрос к "Арлекину" -- он умеет (как говорит). Если серьёзно, то

"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено SergeiZz , 18-Мрт-03 10:17 
>>>А нужен ли всем объектный подход?
>>Использовать или разбираться в том, что это такое? Фокус в том, что
>>и
>>использовать-то этотого монстра со временем придётся каждому, даже
>>писателям драйверов, как не фантастично это звучит. Ненавистная мне
>>Java появилась на свет в ответ на развитие мобильных средств связи, а
>Ну вот это уж Вы батенька загнули, так загнули.... Может ссылочкой >поделитесь,
>где такая глупость написана ? Или сейчас так учат ?
Что Вас удивило? Может быть Вы отсчитываете историю Java с 95-го, а не с
91-го? Ну что ж... Возьмём какой-нибудь учебник потолще... Скажем вот:
Ноутон П., Шилдт Г.
Java 2, СПб.: БХВ, Петербург, 2001, 1072с.
Так... Страница 15 "Создание Java". Да. Три первых абзаца. В 91-м Java
называлась Oak. Javo-й она стала в 95-м. Тогда же изменилась и её
ориентация с мобильных устройств на Internet.
В Internet наверняка тоже можно что-либо найти, на сервере Sun, наверно.
Искать, право, лень. Моё отношение к Java Вы знаете.

"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено Арлекин , 18-Мрт-03 14:30 
>>>>А нужен ли всем объектный подход?
>>>Использовать или разбираться в том, что это такое? Фокус в том, что
>>>и
>>>использовать-то этотого монстра со временем придётся каждому, даже
>>>писателям драйверов, как не фантастично это звучит. Ненавистная мне
>>>Java появилась на свет в ответ на развитие мобильных средств связи, а
>>Ну вот это уж Вы батенька загнули, так загнули.... Может ссылочкой >поделитесь,
>>где такая глупость написана ? Или сейчас так учат ?
>Что Вас удивило? Может быть Вы отсчитываете историю Java с 95-го, а
>не с
>91-го? Ну что ж... Возьмём какой-нибудь учебник потолще... Скажем вот:
>Ноутон П., Шилдт Г.
>Java 2, СПб.: БХВ, Петербург, 2001, 1072с.
>Так... Страница 15 "Создание Java". Да. Три первых абзаца. В 91-м Java
>
>называлась Oak. Javo-й она стала в 95-м. Тогда же изменилась и её
>
>ориентация с мобильных устройств на Internet.
>В Internet наверняка тоже можно что-либо найти, на сервере Sun, наверно.
>Искать, право, лень. Моё отношение к Java Вы знаете.
Меня не удивляет, а заводит Безапеляционная Тупость, а не Ваше отношение - оно мне до известного места.
История явы, молодой человек, отсчитывается с 90-го года, от (Н)еудачного (С)++-го (П)роекта (П)о (У)правлению (Б)ытовыми (П)риборами (прошу заметить - бытовыми приборами, мобильная связь тех лет, которая если Вы помните, не во всякий карман умещалась, даже не упоминается), который и возглавлял сам Ноутон, после чего и сделал яву (один из 5-ти членов Green проекта). Предисловия редакторов, которые знают о языке не больше Вашего, можете оставить себе. Как и соответствующего качества Переводную литературу :)
Нет ничего хуже любой безапеляционности - это граничит с глупостью.
На сем прекращаю ликбез.



"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено SergeiZz , 18-Мрт-03 16:04 
>Меня не удивляет, а заводит Безапеляционная Тупость
Безапеляционная?

>(П)о (У)правлению (Б)ытовыми (П)риборами
>(прошу заметить - бытовыми приборами)
Поймали на слове. Прилипнет же к языку. Откуда и взялась-то "мобильная
связь".

>Как и соответствующего качества Переводную литературу :)
По поводу этой книги согласен -- плохая.

>Нет ничего хуже любой безапеляционности - это граничит с глупостью.
Вы представьте только, что я попытася бы изменить Ваше отношение к ООП!
Вот тогда бы, думаю, мир узнал, что такое безапеляционность ;)



"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено skydion , 20-Мрт-03 21:28 
>А нужен ли всем объектный подход?
>Если да, то напиши, например, драйвер сетевой карты, используя объектный подход!
>Кроме шуток - лично я не знаю, как на C++ писать драйвера/модули
>ядра. Если поделишься таким материалом - буду очень признателен.

Написать можно, но вопрос в том как С++ модуль или клас втыкнуть в
С-ишное ядро??? Надо начинать с ООП подхода ко всей ОС или хотя бы
конкретно к ядру.


"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено баггзи , 20-Мрт-03 22:25 
>Написать можно, но вопрос в том как С++ модуль или клас втыкнуть

>С-ишное ядро??? Надо начинать с ООП подхода ко всей ОС или хотя
>бы
>конкретно к ядру.

да просто. берешь и компилируешь компилятором C++ вместо C. ну и юзаешь расширенные синтаксические возможности. нужно только позаботиться об операторе new - он из встроенной библиотеки берется, а она при компиляции ядра отсутствует. например, определить оператор new у класса CKernelModeClass, а все остальные классы делать его потомком. ну или заюзать грязный компиляторозависимый хак - определить функию __builtin_new (это для g++).

основная проблема внедрения программирования на С++ в ядре - ядро написано довольно-таки криво, и компилятором С++ без исправлений примерно каждой сотой строчки просто не откомпилируется. Но, если создавать отдельные модули ядра, а не задаваться целью собрать все ядро g++'ом, проблема не так уж и страшна.


"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено SergeiZz , 21-Мрт-03 09:20 
>Но, если создавать отдельные модули ядра, а не задаваться
>целью собрать все ядро g++'ом, проблема не так уж и страшна.
Я подозреваю, что Вы умеете граматно писать модули ядра. Стало дико
интересно (без тени иронии): Вы свои модули пишите на чистом C, или
пользуетесь компилятором g++?


"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено баггзи , 21-Мрт-03 09:53 
>Я подозреваю, что Вы умеете граматно писать модули ядра. Стало дико

напрасно. я ламер (с).

>интересно (без тени иронии): Вы свои модули пишите на чистом C, или
>пользуетесь компилятором g++?

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


"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено SergeiZz , 21-Мрт-03 13:51 
>напрасно. я ламер (с).
Вериться с трудом.

>почему бы не использовать дополнительные возможности С++ и
>в системном програмировании? по-моему, единственное препятствие - "так не >принятно".
Есть возражения, хотя душой я с Вами.
Если использовать C++ как улучшенный C, то, как известно, шкурка выделки не стоит. Существует не достаточно много системщиков, сильно страдающих от приколов чистого C. А молодёжь не верит в ООП, и поэтому не влюблена в C++
на столько, чтобы без веских причин перейти на улучшенный C.
Но если речь идёт об ООП, то ситуация совсем другая.
Стало аксиомой (кто это проверял -- не знаю; посмотреть бы соответствующую
докторскую диссертацию...), что ООП программа существенно менее эффективна
(и больше по размеру и медленнее) своего не ООП аналога. Системщиков такая
ситуация сразу отпугивает. Забавно, что со временем они стали вынуждены
применять ООП, но делают это на чистом C (примеры: GTK, GSL -- Gnu
Scientific Library). Забавность эту они и сами понимают: в документации
по GSL в разделе о simulated annealing можно встретить фразу со смыслом
в роде "Эта наша реализация, конечно, маразм, но так получилось потому,
что мы писали на C, а не на C++."


"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено skydion , 22-Мрт-03 14:09 
>в роде "Эта наша реализация, конечно, маразм, но так получилось потому,
>что мы писали на C, а не на C++."

Да, когдато я читал "философскую" книжку Страуструпа по С++. Так он еще тогда,
а это было лет 8-9 назад, высказывал идеии по внедрению ООП подхода в ядре
UNIX систет, а по отношениию к девайсам так был на все 100% за использование
ООП подхода.

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

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


"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено SergeiZz , 24-Мрт-03 09:30 
>причем все эти виртуальные функции и их вызовы разбираються
>еще на стадии компиляции, а не в процессе работы программы.
Насколько Вы уверены в правильности этого утверждения?
Я профан в реализации компилятора, но, насколько мне известно, вызов
виртуальной функции требует от 2-х до 5-ти лишних машинных команд.
И компилятор с этим справиться не может.


"Почитал - и прослезился"
Отправлено LS , 12-Мрт-03 04:01 
одно словоблудие. печально. сам уже довольно долгое время ничего не пишу, а за С (и с думя плюсами тоже) уже лет 6-ть не брался (по серьезному - мелкое не в счет) ...

но даже после такого времени дико слушать эту ересь в ответах вроде "учи сначала си|си++ - потом легче будет". чушь - учиться (особенно без желания) всегда трудно.

может я что и забыл|не_знал, но, что ++ синтаксис простого С совсем не понимает? мож тогда плюсЫ перед С ставить надо было (или минусЫ или по другому язык назвать)? мож компилятор ++ творит коды для инопланетян, а не привычного 386?

или я чего-то не догоняю, но где ответ на основной воппрос:
"То есть заменяет ли сегодня язык С++ полностью С во всех планах или же нет?"

PS к гуру - не оставьте вопрос человека без ответа (сам я квалифицированно ответить не могу) - вопрос хороший и правильно задан.

PPS или ругнитесь, чтоб замолчал :)

PPPS ну вот и я пословоблудил


"2All"
Отправлено LS , 14-Мрт-03 03:24 
2all: не жалею, что "поспособствовал" продолжению треда :)

2Арлекин: исчерпываущий ответ на вопрос, после моего высказывания - не добавить (не могу=не уверен), не убавить (из двух слов одно не уберешь:). правда - спасибо за ответ!

2SergeiZz: не в обиду, но прежде чем отвечать, попробуй понять о чем спрашивают...

2michey: Арлекин ответил.


"2All"
Отправлено SergeiZz , 14-Мрт-03 10:05 
>2Арлекин: исчерпываущий ответ на вопрос, после моего высказывания - не добавить (не
>могу=не уверен), не убавить (из двух слов одно не уберешь:). правда
>- спасибо за ответ!
Это про "Если нужен, то учи."?

>2SergeiZz: не в обиду, но прежде чем отвечать, попробуй понять о чем
>спрашивают...
Согласитесть -- это не всегда легко. А мне это бывает всегда труднее,
чем другим -- природная тупость. Спасибо за замечание. Но, если не сильно
заняты -- черкните тут пару строк о том, что именно я не понял.

>2michey: Арлекин ответил.
michey, если Вы всё ёщё с нами, скажите, ответил ли Арлекин на Ваш вопрос?


"2All"
Отправлено LS , 18-Мрт-03 00:45 
>>2Арлекин: исчерпываущий ответ на вопрос, после моего высказывания - не добавить (не
>>могу=не уверен), не убавить (из двух слов одно не уберешь:). правда
>>- спасибо за ответ!
>Это про "Если нужен, то учи."?
>

это про другое - кого Вы, простите, цитируете? я такой фразы Арлекина не нашел. почитайте внимательней #10 и вдумайтесь (это и есть ОТВЕТ НА ЗАДАННЫЙ ВОПРОС - все остальное треп).

>>2SergeiZz: не в обиду, но прежде чем отвечать, попробуй понять о чем
>>спрашивают...
>Согласитесть -- это не всегда легко. А мне это бывает всегда труднее,
>
>чем другим -- природная тупость. Спасибо за замечание. Но, если не сильно
>
>заняты -- черкните тут пару строк о том, что именно я не
>понял.
>

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

>>2michey: Арлекин ответил.
>michey, если Вы всё ёщё с нами, скажите, ответил ли Арлекин на
>Ваш вопрос?

читай #32 (к сожалению, мы только запутали человека..), хотя он кажется на правильном пути..


PS cм. #26: флейм - это то, что ты устроил из обсуждения вопроса - такие хвосты, без конкретных рекомендаций и ответов никому не нужны (о приимуществах и недостатках ООП+QT+etc - не в этом воросе надо говорить - он не о том).

"ИМХО" можешь трактовать как "мое личное мнение",  "я думаю", "я считаю" итд (богат и могуч русский язык).



"2All"
Отправлено SergeiZz , 18-Мрт-03 10:06 
>>Это про "Если нужен, то учи."?
>
>это про другое - кого Вы, простите, цитируете? я такой фразы Арлекина
>не нашел. почитайте внимательней #10 и вдумайтесь (это и есть ОТВЕТ
>НА ЗАДАННЫЙ ВОПРОС - все остальное треп).
Это не цитата (отсутствует знак ">"). Человек спросил (как я понял),
что учить -- C, или C++. Арлекин заметил, что нужно определиться, зачем.
И указал путь: определись с предметной областью. Это верно и кратко и
совпадает с моим мнением. На вопрос "Нужно ли учить C?" Арлекин допустил
тавтологию с юмористическим оттенком, не ответив. Видимо, он считает
ответ на такой вопрос очевидным. Я указал на отсутствие ответа, а Арлекин
пояснил свою позицию. Все остались довольны. Его ответ "да" на вопрос
о том, может ли C++ полностью заменить C мне кажеться не точным, но
для темы разговора это не существенно, поэтому в дискуссию никто не
вступал -- ограничились двумя короткими замечаниями. Пренебрежение
вопросами вроде "Зачем нужен C, а зачем C++?" очень опасно! Если Вы
считаете иначе (как я подозреваю), то Вы заблуждаетесь. Но обсуждать
это здесь не правильно -- не по теме.

>>заняты -- черкните тут пару строк о том, что именно я не
>>понял.
>>
>выясняйте то, что Вам непонятно, задавая вопросы автору - никто Вам не
>мешает. и после этого отвечайте или молчите (или извиняйтесь, что не
>можете ответить итд)
Так мне-то (как я наивно думаю) всё понятно. И я отвечаю, и автор вопроса
(michey, Вы просто повторили его вопрос) не говорит, что ему мой ответ не
понятен, или он не по теме.

>читай #32 (к сожалению, мы только запутали человека..), хотя он кажется
>на правильном пути..
Да не запутали, а распутали! Впрочем об этом только он сам и может
судить.

>PS cм. #26: флейм - это то, что ты устроил из обсуждения
Флейм -- это совсем другое. Я понимаю, что Вы привыкли видеть вопрос
вида "Как сделать это?" и ответ "Это надо делать так." Когда спашивают
"Помогите определиться" Вы по привычке отвечаете "О чём думать --
всё и так ясно, надо делать так."

>такие хвосты, без конкретных рекомендаций и ответов никому не
>нужны (о приимуществах и недостатках ООП+QT+etc - не в этом воросе
>надо говорить - он не о том).
Кажется, это Вы не поняли вопрос! Человек ещё не знает, что такое ООП,
или, что такое etcaetera. Он как раз и спрашивает, помогите определиться
-- вот и помогаем.

>(богат и могуч русский язык).
Велик могучим русский языка (ИМХО).


"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено Арлекин , 12-Мрт-03 08:44 
>Начинаю учить C. Или C++.
Зачем ?
> Сам не знаю с чего начать.
с предметной области поставленной задачи - может оказаться что там ни С ни ++ не нужны
> Вопрос
>вот какой.
>Нужно ли учить С?
Если нужен С, то нужно
> Может ли C++ полноценно его заменить во всех
>планах?
да
>Скажем, говорят, что С++ обладает включил в себя все свойства C! Что
>это значит:? Компилятор C++ поддреживает все программы написанные на С или
>
>же в синтаксисе С++ имеются все операторы и средства, что и в
>С?
словоблудие
> Тоесть заменяет ли сегодня язык С++ полностью С во всех
>планах или же нет?
>Помогите определиться?
>Нужен ли сегодня С и если да, то зачем?
а ТАК заданные вопросы приводят к длинным и бесполезным тредам.



"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено SergeiZz , 12-Мрт-03 10:25 
>>Начинаю учить C. Или C++.
>Зачем ?
>> Сам не знаю с чего начать.
>с предметной области поставленной задачи - может оказаться что там ни С
>ни ++ не нужны
Поддерживаю.

>> Вопрос
>>вот какой.
>>Нужно ли учить С?
>Если нужен С, то нужно
Нет ответа на вопрос автора темы. Нужен ли C, как определить?

>> Может ли C++ полноценно его заменить во всех
>>планах?
>да
Во всех -- нет. А, в реальности, в большинстве и не заменяет.

>>Скажем, говорят, что С++ обладает включил в себя все свойства C! Что
>>это значит:? Компилятор C++ поддреживает все программы написанные на С или
>>
>>же в синтаксисе С++ имеются все операторы и средства, что и в
>>С?
>словоблудие
Нет ответа на вопрос автора темы. Вопрос задан корректно.

>> Тоесть заменяет ли сегодня язык С++ полностью С во всех
>>планах или же нет?
>>Помогите определиться?
>>Нужен ли сегодня С и если да, то зачем?
>а ТАК заданные вопросы приводят к длинным и бесполезным тредам.
Длинные потоки никто не читает. Если пустые, на Ваш взгляд, беседы
Вам мешают, то укажите авторам на необходимость использования
электронной почты для личной переписки. Бесполезных форумов не бывает!


"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено Арлекин , 12-Мрт-03 14:23 
>>>Начинаю учить C. Или C++.
>>Зачем ?
>>> Сам не знаю с чего начать.
>>с предметной области поставленной задачи - может оказаться что там ни С
>>ни ++ не нужны
>Поддерживаю.
>
>>> Вопрос
>>>вот какой.
>>>Нужно ли учить С?
>>Если нужен С, то нужно
>Нет ответа на вопрос автора темы. Нужен ли C, как определить?
ответ есть выше
>
>>> Может ли C++ полноценно его заменить во всех
>>>планах?
>>да
>Во всех -- нет. А, в реальности, в большинстве и не заменяет.
Вот именно во всех - ДА. А, в реальности, в большнстве и НЕНАДО.
Я никогда не буду вычислять квадратное уравнение на ++се и даже на С не буду, хоть и можно бы хоть на обеих сразу. Вот если делать софт ради Процесса Делания Софта - другое дело. Посетите fido7.cpp.ru (если и ошибся, то чуть-чуть) - там как раз те, кто обсуждает достоинства инкремента итератора перед инкрементом указателя и наоборот. Вас ждет масса впечатлений.
>
>
>>>Скажем, говорят, что С++ обладает включил в себя все свойства C! Что
>>>это значит:? Компилятор C++ поддреживает все программы написанные на С или
>>>
>>>же в синтаксисе С++ имеются все операторы и средства, что и в
>>>С?
>>словоблудие
>Нет ответа на вопрос автора темы. Вопрос задан корректно.
С автора ИМХО достаточно было и до меня.
>
>>> Тоесть заменяет ли сегодня язык С++ полностью С во всех
>>>планах или же нет?
>>>Помогите определиться?
>>>Нужен ли сегодня С и если да, то зачем?
>>а ТАК заданные вопросы приводят к длинным и бесполезным тредам.
>Длинные потоки никто не читает. Если пустые, на Ваш взгляд, беседы
>Вам мешают, то укажите авторам на необходимость использования
Не собираюсь никому ничего указывать. И лично мне ничто не мешает.
>электронной почты для личной переписки. Бесполезных форумов не бывает!
Это - Ваша сугубо личная точка зрения. Ибо конференция деятелей искусств или философов (см. fido7...) есть нечто иное, чем профессиональный форум, если он таковой есть, ИМХО



"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено SergeiZz , 12-Мрт-03 18:01 
>>Во всех -- нет. А, в реальности, в большинстве и не заменяет.
>Вот именно во всех - ДА. А, в реальности, в большнстве и
>НЕНАДО.
>Я никогда не буду вычислять квадратное уравнение на ++се и даже на
>С не буду, хоть и можно бы хоть на обеих сразу.
>Вот если делать софт ради Процесса Делания Софта - другое дело.
>Посетите fido7.cpp.ru (если и ошибся, то чуть-чуть) - там как раз
>те, кто обсуждает достоинства инкремента итератора перед инкрементом указателя и наоборот.
>Вас ждет масса впечатлений.

Почему GTK написана на C, а не на C++?


"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено MrTvister , 12-Мрт-03 19:40 
>>>Во всех -- нет. А, в реальности, в большинстве и не заменяет.
>>Вот именно во всех - ДА. А, в реальности, в большнстве и
>>НЕНАДО.
>>Я никогда не буду вычислять квадратное уравнение на ++се и даже на
>>С не буду, хоть и можно бы хоть на обеих сразу.
>>Вот если делать софт ради Процесса Делания Софта - другое дело.
>>Посетите fido7.cpp.ru (если и ошибся, то чуть-чуть) - там как раз
>>те, кто обсуждает достоинства инкремента итератора перед инкрементом указателя и наоборот.
>>Вас ждет масса впечатлений.
>
>Почему GTK написана на C, а не на C++?

Почему QT написан на С++ а не на С ?


"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено SergeiZz , 14-Мрт-03 10:08 
>Почему QT написан на С++ а не на С ?

Потому, что иначе она не сможет занять то место, на которое претендует.


"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено Арлекин , 12-Мрт-03 19:44 
>>>Во всех -- нет. А, в реальности, в большинстве и не заменяет.
>>Вот именно во всех - ДА. А, в реальности, в большнстве и
>>НЕНАДО.
>>Я никогда не буду вычислять квадратное уравнение на ++се и даже на
>>С не буду, хоть и можно бы хоть на обеих сразу.
>>Вот если делать софт ради Процесса Делания Софта - другое дело.
>>Посетите fido7.cpp.ru (если и ошибся, то чуть-чуть) - там как раз
>>те, кто обсуждает достоинства инкремента итератора перед инкрементом указателя и наоборот.
>>Вас ждет масса впечатлений.
>
>Почему GTK написана на C, а не на C++?
Ответ отчасти в Вашем же собственном - создавать объектную модель такого монстра, отследить все наследования и т.п. - никому небыло  надо тратить время при сомнительных удобствах и определенной громоздкозти кода. ЭТО - первая и главная причина. Внутри ++а можно сделать ВСЕ, что можно сделать на С, я даже работу с .so на нем делал - не самый простой кусочек, но при требуемых на это затратах ЭТО НИКОМУ НЕ НАДО.
С++ сам по себе практически умер, он сам себя съел. JAVA - это и есть тот вполне приемлемый вариант C++, не претендующий на звание языка системного программирования, без "датских заморочек", массы никому особо не нужных фич типа множественного наследования, которые кроме путаницы никакой пользы не несут. ИМХО Страуструп уподобился Энштейну - создал нечто, что в ПОЛНОЙ мере, кроме него самого никто не понимает и, самое главное, НЕ ИМЕЕТ НЕОБХОДИМОСТИ понимать.
Поэтому и пушут на K&R С, и наверное правильно делают, софт типа GTK или ssh, и пишут на JAVA (не только) веб и бизнес-логику. А ++ом вплотную занимаются учителя физкультуры в свободное время (не шутка - на фидо есть такой).

Успехов.



"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено SergeiZz , 14-Мрт-03 10:11 
>>Почему GTK написана на C, а не на C++?
>Ответ отчасти в Вашем же собственном - создавать объектную модель такого монстра,
>отследить все наследования и т.п. - никому небыло  надо тратить
>время при сомнительных удобствах и определенной громоздкозти кода. ЭТО - первая
>и главная причина. Внутри ++а можно сделать ВСЕ, что можно сделать
>на С, я даже работу с .so на нем делал -
>не самый простой кусочек, но при требуемых на это затратах ЭТО
>НИКОМУ НЕ НАДО.
> С++ сам по себе практически умер, он сам себя съел. JAVA
>- это и есть тот вполне приемлемый вариант C++, не претендующий
>на звание языка системного программирования, без "датских заморочек", массы никому особо
>не нужных фич типа множественного наследования, которые кроме путаницы никакой пользы
>не несут. ИМХО Страуструп уподобился Энштейну - создал нечто, что в
>ПОЛНОЙ мере, кроме него самого никто не понимает и, самое главное,
>НЕ ИМЕЕТ НЕОБХОДИМОСТИ понимать.
>Поэтому и пушут на K&R С, и наверное правильно делают, софт типа
>GTK или ssh, и пишут на JAVA (не только) веб и
>бизнес-логику. А ++ом вплотную занимаются учителя физкультуры в свободное время (не
>шутка - на фидо есть такой).
>
>Успехов.

Спасибо за ответ. Вы чётко обозначили свою позицию.


"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено LS , 14-Мрт-03 03:08 
>>Начинаю учить C. Или C++.
>Зачем ?
>> Сам не знаю с чего начать.
>с предметной области поставленной задачи - может оказаться что там ни С
>ни ++ не нужны
>> Вопрос
>>вот какой.
>>Нужно ли учить С?
>Если нужен С, то нужно
>> Может ли C++ полноценно его заменить во всех
>>планах?
>да
>>Скажем, говорят, что С++ обладает включил в себя все свойства C! Что
>>это значит:? Компилятор C++ поддреживает все программы написанные на С или
>>
>>же в синтаксисе С++ имеются все операторы и средства, что и в
>>С?
>словоблудие
непонимание
>> Тоесть заменяет ли сегодня язык С++ полностью С во всех
>>планах или же нет?
>>Помогите определиться?
>>Нужен ли сегодня С и если да, то зачем?
>а ТАК заданные вопросы приводят к длинным и бесполезным тредам.
вытекает из предудущего


"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено LS , 14-Мрт-03 03:12 
>непонимание
вернеее незнание - о чем собственно человек и спрашивал (одно из..)



"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено SergeiZz , 14-Мрт-03 10:18 
>>непонимание
>вернеее незнание - о чем собственно человек и спрашивал (одно из..)

Брадцы, я слишком туп, чтобы догадаться, что вы каждый имеете в виду,
говоря эту фразу. Можно ли одно-единственное предложение сразу добавлять
о том, что именно вы имеете в виду? А то я бедный морщу, морщу лоб, да
бестолку. "Извините..." (цитата из мультфильма).


"RE: Общий вопрос к людям, имеющим неплохой опыт программиров..."
Отправлено SergeiZz , 14-Мрт-03 11:21 
Пардон. LS -- это кажется один и тот же человек.


"Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено SergCh , 14-Мрт-03 07:30 
Лучше, купи книжки (или накачай) и просто ознакомся за день с обоими, а учать их нафиг надо. Пока не будешь их использовать, все равно не выучишь.

Оба языка нужны. Не всегда можно заменить один другим. Но знать +,- и сферы применения надо. А учить синтаксис нафиг надо. Будешь писать проги (кагда определишься с выбором) то и выучишь.

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

ps Это чисто ИМХО



"Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено SergeiZz , 14-Мрт-03 10:23 
>Изучать действительно лучше технологии програмирования (и не только программирования): процедурное, ООП, автоматы,
>клиент-сервер ... . Это тебе даст быть большим виртуозом в написании
>программ, а с помошью какого языка ты будешь выражаться это уже
>не важно (главное эфективно и удобно).
Иметь бы возможность это выделить красным цветом и капителью!

>ps Это чисто ИМХО
Я однажды уже спрашивал, что такое "флейм". Поэтому спрошу: а что значит
"ИМХО".



"Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено Арлекин , 14-Мрт-03 13:58 
>>Изучать действительно лучше технологии програмирования (и не только программирования): процедурное, ООП, автоматы,
>>клиент-сервер ... . Это тебе даст быть большим виртуозом в написании
>>программ, а с помошью какого языка ты будешь выражаться это уже
>>не важно (главное эфективно и удобно).
>Иметь бы возможность это выделить красным цветом и капителью!
>
>>ps Это чисто ИМХО
>Я однажды уже спрашивал, что такое "флейм". Поэтому спрошу: а что значит
>
>"ИМХО".

Если аглицкую аббревиатуру выражения МОЕ ИСКЛЮЧИТЕЛЬНО ЛИЧНОЕ МНЕНИЕ ( IMHO - не силен в буржуйском сленге, в оригинале не способен воспроизвести) транслитерировать то получится руссицизм - ИМХО


"Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено SergeiZz , 14-Мрт-03 16:56 
>Если аглицкую аббревиатуру выражения МОЕ ИСКЛЮЧИТЕЛЬНО ЛИЧНОЕ МНЕНИЕ ( IMHO - не
>силен в буржуйском сленге, в оригинале не способен воспроизвести) транслитерировать то
>получится руссицизм - ИМХО

Теперь многое становится более понятным. Спасибо.


"Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено Ункновн , 14-Мрт-03 19:33 
Всем привет. Люди, вы очень много филосовстуйте на тему - хорошо, что есть С++ или плохо? И чем лучше кодеры те что кодят на старом С, и ничерта не пытаються впереть в С++?... Да, людей, говорящих: блин... я мега кодер С++, и имеющих опыт кодинга - "<года" множество. Мысль, что С++ - ненужен, либо то что он есть - это плохо, либо то, что его невозможно понять - абсурдна... Все сильно зависит ТОЛЬКО от того, что вы хотите написать. КОГО ПРЕТ ПИСАТЬ MICROSOFT WORD 2003 НА ЧИСТОМ WIN32API поднимите руки... уверен таких маньяков будет не много... Люди для этого создали С++, MFC и Виндовз, COM\COM+ и много еще чего. И отказываться от этого - бред. Только полный каматозник пойдет на это. Вы говорите, что Java изжила C++... могу показать большой фак вам (извините за грубость). раз уж спор зашел... Я считаю (может зря), что кодинг под эмулируемую платформу - не кодинг. То, что можно написать на C++ , без особых напрягов, тяжело пишется на чистом С, а уж тем более не реализуемо на Java. Люди, говорящие, что С++ - тяжелый, и его никто не понимает кроме Страуструпа - ЛОМАРЬЕ_Е_Е_Е_. (хотя автор считает что предъубеждения - это очень плохо, хотя дельфи он тоже не любит -)) А те кто освоили VISUAL BASIC или еще хуже Visual Basic Like - JAVA, и ничего больше знать не желают - они не кодеры, не хакеры, не программисты, и уж тем более какой-там уникс, когда человек кроме Java ничего знать не хочет. С++ - можно знать, можно понять.. Для этого следует взять книжки ЧЕТЫРЕ по нему и прочитать их, и проработать, потом кодить под MFC и т.д... Самая лучшая вещь по MFC написаная BHVэшным издательством, за оным огромная благодарность... А начинающим надо для начало знать, что они хотят, и как? (какими усилиями)

"Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено michey , 17-Мрт-03 10:48 
В общем я тут посидел, посмотрел на высказывания и понял вот что:

1) C и ассемблер для системщиков.
2) C++ -для прикладников.

В общем-то на то оно истемное и объектно-ориентированное программирование.
Пока я склонен больше к системному программированию и с помощью системных вызовов Unix. Вот хотелось бы написать свой mc, снифер, а может терминал какой или что-то в этом духе имхо к программированию под Win я пока не особо настроен.

Пошел и купил в Библио-Глобусе книгу - Крнигана и Ритчи по С.
Прочитал.
Что там есть:
1) Функции 2)Массивы 3) Переменные 4)условия и прочий синтаксис.
Я думаю авторы полноценно выложились в этой книги. Тобишь если создатель чего-то не напишет, то маловероятно, что это кто-то иной сделает.!
Синтакис я вроде осознал. Но!
Мне неясно как например написать снифер для Unix?
Беру готовые исходники и нифига не понимаю. Что за функции, что за переменные и т.д.
Что за библиотеки и как их используют.
Где учиться этому. Мне нужно конкретно писать системные проги по *nix-ы.
Вот кто что на эту тему скажет.

Исходя из собственных соображений понимаю, что все реализовано в виде системных вызовов в Unix. С чего копать и где взять все это дело.

Может не особо зацикливаясь на снифере можно написать биллинговую систему ну и такого рода все.

Всем благодарен за помощь в таком нелегком вопросе


"Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено Laskaviy , 17-Мрт-03 12:41 
>В общем я тут посидел, посмотрел на высказывания и понял вот что:
>
>
>1) C и ассемблер для системщиков.
>2) C++ -для прикладников.
>
>В общем-то на то оно истемное и объектно-ориентированное программирование.
>Пока я склонен больше к системному программированию и с помощью системных вызовов
>Unix. Вот хотелось бы написать свой mc, снифер, а может терминал
>какой или что-то в этом духе имхо к программированию под Win
>я пока не особо настроен.
>
>Пошел и купил в Библио-Глобусе книгу - Крнигана и Ритчи по С.
>
>Прочитал.
>Что там есть:
>1) Функции 2)Массивы 3) Переменные 4)условия и прочий синтаксис.
>Я думаю авторы полноценно выложились в этой книги. Тобишь если создатель чего-то
>не напишет, то маловероятно, что это кто-то иной сделает.!
>Синтакис я вроде осознал. Но!
>Мне неясно как например написать снифер для Unix?
>Беру готовые исходники и нифига не понимаю. Что за функции, что за
>переменные и т.д.
>Что за библиотеки и как их используют.
>Где учиться этому. Мне нужно конкретно писать системные проги по *nix-ы.
>Вот кто что на эту тему скажет.
>
>Исходя из собственных соображений понимаю, что все реализовано в виде системных вызовов
>в Unix. С чего копать и где взять все это дело.
>
>
>Может не особо зацикливаясь на снифере можно написать биллинговую систему ну и
>такого рода все.
>
>Всем благодарен за помощь в таком нелегком вопросе

Биллинговую систему .... LOL !!!! :) Ха ха ... аааа !!
Вообще чтоли с головой не то ..


"Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено SergeiZz , 18-Мрт-03 10:24 
>Биллинговую систему .... LOL !!!! :) Ха ха ... аааа !!
>Вообще чтоли с головой не то ..
А если бы он написал "Хочу программировать Международную космическую
станцию" -- Вы бы тоже поняли буквально?
Улыбку это вызывает, конечно. Но заметьте -- устами младенца глаголит
истина: приступая к изучению чего-то огромного, ни в коем случае не
следует ставить узкую и чётко поставленную задачу. Задача должна быть
некорректно поставленной, а планы -- максимально наполеоновскими.


"Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено SergeiZz , 18-Мрт-03 11:35 
>В общем я тут посидел, посмотрел на высказывания и понял вот что:
>
>
>1) C и ассемблер для системщиков.
>2) C++ -для прикладников.
Верно. Системщик должен знать C и C++, а прикладник должен знать C++ и C.

>Пока я склонен больше к системному программированию и с помощью
>системных вызовов Unix. Вот хотелось бы написать свой mc, снифер,
> а может терминал какой или что-то в этом духе
Это ответ на мой вопрос "Зачем?". Выбирая задачу, выбирайте не задачу,
а проблему. Предлагаю метод деления пополам: "Интересуют сетевые
технологии или не сетевые? Сетевые. Сетевые такие или такие." И так далее
но пока только 1-2 шага с возможностью вернуться назад.

>Пошел и купил в Библио-Глобусе книгу - Крнигана и Ритчи по С.
Э, как Вы удачно попали! Книг много, но хороших почти нет. Тщательно
выбирайте, часами стойте у прилавка. Сначала поймите, полистав, чем все
имеющиеся в продаже отличаются друг от друга -- потом только покупайте
одну-две. Ещё совет: мозги любят читать две книги попеременно на разные
темы. Одну и туже залпом -- сильно устают.

>Прочитал.
Просмотрел. Это скорее справочник, чем учебник. Я долго искал учебники
по программированию и понял, что такой зверь в природе не водится: есть
книги, на которых написано, что это учебник, но учебников нет.

>Синтакис я вроде осознал. Но! .....
Поздравляю! У вас так называемый алгоритмический стиль мышления. Но
помните, что способности от природы -- это ещё не всё, что нужно.

>Вот кто что на эту тему скажет.
Так, так, так... Стоп. Только не надо "Скажите тот абзац в книжке и
ту строку в документации, которые, если прочитать, то напишу сниффер."
Если будете так учиться, то станете... не тем, кем хотите стать.
Есть таки такое понятие, как образование. Это на рабоче-крестьянском
так расшифровывается: "Учим то, что никогда, никогда и ещё раз -- никогда
не будем использовать". Испугались? Не бойтесь -- речь не об ООП.
Есть некий объём знаний, который нужно иметь. Какой именно объём и
как его получить/использовать/пополнять расскажу. Но сперва ответьте
чётко, согласны ли Вы с этим абзацем.

Мне ещё требуется уточнение. Вас интересуют в большей степени сетевые
технологии, или другие направления? Или "затрудняюсь ответить" (sic!).

Post scriptum: Народ, нас вернули в тему! Давайте только конкретно,
как человеку изучать системное программирование, первый шаг, второй
шаг. Советы вроде "Прочитай эту книгу" сопровождайте, пожалуйста,
ответом на вопрос "Почему именно эту?".


"Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено Bob , 18-Мрт-03 11:41 
>Пока я склонен больше к системному программированию и с помощью системных вызовов
>Unix. Вот хотелось бы написать свой mc, снифер, а может терминал
>какой или что-то в этом духе
>Мне неясно как например написать снифер для Unix?

Посмотри http://www.samag.ru/ru/articles/last/corrected_article/sniff...
Рассказано, как сделать sniffer под Linux.
http://www.samag.ru/ru/articles/last/corrected_article/scane... - сканер портов TCP протокола. Все комментировано.

Т.к. ты больше склоняешься с сторону системного программирования, могу посоветовать следующие ссылки:
http://www.programme.ru/archive/2001/8/082001_1.phtml - написание драйверов в Linux. Описаны общие принципы. Для начала - то что надо.

http://www.programme.ru/archive/2001/1/012001_1_1.phtml - загрузчик операционной системы. Тоже полезная штука для изучения. Не думаю,что тебе удасться собрать действующую вещь, но принципы загрузки операционки ты поймешь. Потом если заглянешь в ядро Linux, встретишь очень много знакомых мест.

Есть хороший сайт с документацией - www.linuxdoc.ru

Из англоязычных ресурсов - www.phrack.com. Очень много примеров и интересных ссылок.

И конечно, изучай исходные тексты. Как писал Эрик Раймонд, самый лучший способ стать мастером - это учиться у мастеров. Посмотреть, как делают мастера и написать немного самому. Потом прочитать побольше и написать побольше и т.д. Поначалу, конечно, тяжело, но тем самым ты приобретаешь опыт.

Вообщем, перед тобой широкое поле деятельности. Так что дерзай.

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


"Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено SergeiZz , 18-Мрт-03 12:55 
>Посмотри
>http://www.samag.ru/ru/articles/last/corrected_article/sniff...
>Рассказано, как сделать sniffer под Linux.
>http://www.samag.ru/ru/articles/last/corrected_article/scane... -
>сканер портов TCP протокола. Все комментировано.
Это по сути -- хорошо комментированный программный код из реальных
приложений. Тем он и ценен. Тем он и вреден. Важно не ограничиваться
только таким источником, хотя доля подобных источников должна быть
наибольшей.

>Т.к. ты больше склоняешься с сторону системного программирования, могу посоветовать следующие ссылки:
>
>http://www.programme.ru/archive/2001/8/082001_1.phtml - написание драйверов в Linux. Описаны общие принципы. Для начала -
>то что надо.


>http://www.programme.ru/archive/2001/1/012001_1_1.phtml - загрузчик операционной системы. Тоже полезная штука для изучения. Не думаю,что
>тебе удасться собрать действующую вещь, но принципы загрузки операционки ты поймешь.
>Потом если заглянешь в ядро Linux, встретишь очень много знакомых мест.
Присоединяюсь. Даже в man lilo есть интересная информация по начальной
загрузке.

>И конечно, изучай исходные тексты. Как писал Эрик Раймонд, самый лучший способ
>стать мастером - это учиться у мастеров. Посмотреть, как делают мастера
>и написать немного самому. Потом прочитать побольше и написать побольше и
>т.д. Поначалу, конечно, тяжело, но тем самым ты приобретаешь опыт.
Присоединяюсь, но предостерегаю от увлечения только и исключительно
исходными текстами.


"Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено Арлекин , 17-Мрт-03 11:52 
>Всем привет. Люди, вы очень много филосовстуйте на тему - хорошо, что
>есть С++ или плохо? И чем лучше кодеры те что кодят
>на старом С, и ничерта не пытаються впереть в С++?... Да,
>людей, говорящих: блин... я мега кодер С++, и имеющих опыт кодинга
>- "<года" множество. Мысль, что С++ - ненужен, либо то что
>он есть - это плохо, либо то, что его невозможно понять
>- абсурдна... Все сильно зависит ТОЛЬКО от того, что вы хотите
>написать. КОГО ПРЕТ ПИСАТЬ MICROSOFT WORD 2003 НА ЧИСТОМ WIN32API поднимите
>руки... уверен таких маньяков будет не много... Люди для этого создали
>С++, MFC и Виндовз, COM\COM+ и много еще чего. И отказываться
>от этого - бред. Только полный каматозник пойдет на это. Вы
>говорите, что Java изжила C++... могу показать большой фак вам (извините
>за грубость). раз уж спор зашел... Я считаю (может зря), что
>кодинг под эмулируемую платформу - не кодинг. То, что можно написать
>на C++ , без особых напрягов, тяжело пишется на чистом С,
>а уж тем более не реализуемо на Java. Люди, говорящие, что
>С++ - тяжелый, и его никто не понимает кроме Страуструпа -
>ЛОМАРЬЕ_Е_Е_Е_. (хотя автор считает что предъубеждения - это очень плохо, хотя
>дельфи он тоже не любит -)) А те кто освоили VISUAL
>BASIC или еще хуже Visual Basic Like - JAVA, и ничего
>больше знать не желают - они не кодеры, не хакеры, не
>программисты, и уж тем более какой-там уникс, когда человек кроме Java
>ничего знать не хочет. С++ - можно знать, можно понять.. Для
>этого следует взять книжки ЧЕТЫРЕ по нему и прочитать их, и
>проработать, потом кодить под MFC и т.д... Самая лучшая вещь по
>MFC написаная BHVэшным издательством, за оным огромная благодарность... А начинающим надо
>для начало знать, что они хотят, и как? (какими усилиями)
Студенческая бредятина.


"Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено SergeiZz , 18-Мрт-03 10:28 
>Студенческая бредятина.
А вот студенты-то Ваш юмор могут и не понять. Они вот прочитают Ваше номер
15 и подумают, что Вы говорите серьёзно.

"Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено Арлекин , 18-Мрт-03 14:41 
>>Студенческая бредятина.
>А вот студенты-то Ваш юмор могут и не понять. Они вот прочитают
Это проблемы Тех студентов. И когда Такие студенты с Их знаниями в очередное лето придут и предложат свои услуги по написанию "биллинга на С++" я Им в очередной раз предложу отправиться на Горбушку торговать сидюками.
>Ваше номер
>15 и подумают,
Там, за прилавком, пусть и думают - о чем угодно. Из-за прилавка очень хорошо показывать и умные" и продвинутые лица. И времени на создание ++ых шедевров там предостаточно, в отличие от реальных систем, и рынок для впаривания примо под жопой.
> что Вы говорите серьёзно.



"Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено SergeiZz , 18-Мрт-03 15:45 
>И когда Такие студенты с Их знаниями в
>очередное лето придут и предложат свои услуги по написанию "биллинга на
>С++" я Им в очередной раз предложу отправиться на Горбушку торговать
>сидюками.
Теперь понятно, почему в нашей стране граматные и талантливые выпускники
вынуждены торговать с лотка.


"Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено Арлекин , 19-Мрт-03 07:49 
>>И когда Такие студенты с Их знаниями в
>>очередное лето придут и предложат свои услуги по написанию "биллинга на
>>С++" я Им в очередной раз предложу отправиться на Горбушку торговать
>>сидюками.
>Теперь понятно, почему в нашей стране граматные и талантливые выпускники
                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^
>вынуждены торговать с лотка.



"Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено SergeiZz , 19-Мрт-03 13:54 
>     ^^^^^^^^^^^^^^^^^^^^^^^^^
Опять ведь не понял я! Подчёркнуто "в нашей стране граматные и талантливые",
"в нашей стране", или "граматные и талантливые"? Согласитесь: смысл очень
разный. Или Вам так не кажется?


"Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено Арлекин , 19-Мрт-03 14:29 
>>     ^^^^^^^^^^^^^^^^^^^^^^^^^
>Опять ведь не понял я! Подчёркнуто "в нашей стране граматные и талантливые",
>
>"в нашей стране", или "граматные и талантливые"? Согласитесь: смысл очень
>разный. Или Вам так не кажется?
с трех раз угадай


"Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено SergeiZz , 19-Мрт-03 18:25 
>с трех раз угадай
1. "ей стране граматные и тала"?


"Арлекин, ты скучен!"
Отправлено dada , 19-Мрт-03 10:48 
Давай лучше сюда Луговского пригласим, он расскажет, что Си дерьмо, что с плюсами, что без них. И жаба дерьмо. Все дерьмо и все сосет. А рулит ада, ML и прочие языки, про существование многих из которых я лично впервые услышал от него. И будет это на высоком уровне доказывать (не уверен, правда, что он сам в это верит, но доказывает хорошо), и мразями всех тут обзовет ;)

всегда хотел спросить господ, которые пишут на чистом си чиста конкретна реальные системы: вы про stl не слышали, или вас просто прикалывает каждый раз руками реализовывать кривое подобие vector, multiset etc? или у вас просто начальник дурак, ++ использовать не разрешает? так увольняйтесь! :) а он пусть ищет идиотов, готовых за миску риса биллинг хоть на чистом си писать, хоть сразу на ассемблере, хоть сапоги ему чистить и минет делать.

мне нравится возможность писать a=b вместо FuckingAssign(&a,GetSuckersProperty(b.s)), наследование и шаблоны, избавляющие от копипасте двух страниц с изменением двух строчек кода, жесткий контроль типов и user-defined преобразование оных... с какой радости от всего этого нужно отказываться?


"Арлекин, ты скучен!"
Отправлено Арлекин , 19-Мрт-03 12:24 
>Давай лучше сюда Луговского пригласим, он расскажет, что Си дерьмо, что с
>плюсами, что без них. И жаба дерьмо. Все дерьмо и все
Физик он. А слово ФИЗТЕХ, оно много значит :)
>сосет. А рулит ада, ML и прочие языки, про существование многих
>из которых я лично впервые услышал от него. И будет это
>на высоком уровне доказывать (не уверен, правда, что он сам в
>это верит, но доказывает хорошо), и мразями всех тут обзовет ;)
>
>
>всегда хотел спросить господ, которые пишут на чистом си чиста конкретна реальные
>системы: вы про stl не слышали, или вас просто прикалывает каждый
Не только Слышал, но и Делал. И меня не устраивает Ваяние на С++ в десятером за 6 месяцев того, что на  яве я сделаю за 1 месяц один.
>раз руками реализовывать кривое подобие vector, multiset etc? или у вас
>просто начальник дурак, ++ использовать не разрешает? так >увольняйтесь! :) а

К счастью я УЖЕ сам решаю что использовать. И использую ЯВУ вместо С++ в приложениях уровня биллинга - настоящего биллинга, а не подсчета IP-трафика рабочей станции.  И пошлю (и посылаю) любого соискателя работы, кто предложит делать это на С++.
>он пусть ищет идиотов, готовых за миску риса биллинг хоть на
>чистом си писать, хоть сразу на ассемблере, хоть сапоги ему чистить
>и минет делать.
>
>мне нравится возможность писать a=b вместо FuckingAssign
одобрямс
>(&a,GetSuckersProperty(b.s)), наследование и шаблоны, избавляющие от
>копипасте двух страниц с изменением двух строчек кода, жесткий контроль типов
>и user-defined преобразование оных... с какой радости от всего этого нужно
>отказываться?
Я вообще-то совсем не против ООП и не за голый С - я о том, что ++у места не остается в том, что называется бизнес-приложениями, а системный софт
а - никто не будет делать на С++, кроме как в свое удовольствие
б - даже если делать, за системный софт не платят столько, сколько за бизнес.
Я этим ремеслом ЗАРАБАТЫВАЮ ДЕНЬГИ, а не создаю искусство.
Если уж читать, то читай все. :)



"Арлекин, ты скучен!"
Отправлено баггзи , 19-Мрт-03 12:47 
>Не только Слышал, но и Делал. И меня не устраивает Ваяние на
>С++ в десятером за 6 месяцев того, что на  яве
>я сделаю за 1 месяц один.

а нельзя ли поподробнее, что именно, кроме плохого владения С++, мешает использовать его с той же эффективностью, что и Яву?


"Арлекин, ты скучен!"
Отправлено SergeiZz , 19-Мрт-03 13:44 
>а нельзя ли поподробнее, что именно, кроме плохого владения С++, мешает >использовать его с той же эффективностью, что и Яву?
У Java и C++ разные области применения! Цель Java -- сделать программу
переносимой ("написано однажды -- работает везде"). Если требуется написать
сложную специализированную систему, то пишут на C++. Не потому, что на
Java это менее удобно, а потому, что Java приложение в этом случае будет
иметь ту же функциональность, но, просто, при меньшей производительности.

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

P.S.: Почему Вы считаете Арлекина скучным? Для меня откровением стало,
что он Java программист. Разве такой кульбит (после нумера 15) может
быть назван скучным?


"Арлекин, ты скучен!"
Отправлено баггзи , 19-Мрт-03 14:41 
>У Java и C++ разные области применения! Цель Java -- сделать программу
>
>переносимой ("написано однажды -- работает везде"). Если требуется
написать

ой, да кому эта переносимость нужна в бизнес-приложениях, когда заказчик вообще не знает и знать нихочет ничего о платформах, что хочешь - то и ставь... да и у сишного кода переносимость вполне нормальная. вот я и недоумеваю, чем же ява ЛУЧШЕ в бизнес-приложениях? а первоисточник не сознается... :)

>P.S.: Почему Вы считаете Арлекина скучным? Для меня откровением стало,
>что он Java программист. Разве такой кульбит (после нумера 15) может
>быть назван скучным?

потому что по сравнению с выступающими в ru.os.cmp и Луговским он довольно-таки скучен.

Ах! Ар! Ле!
Кину, Арле-кину.... нужно быть смешным для всех....


"Арлекин, ты скучен!"
Отправлено Арлекин , 19-Мрт-03 15:01 
>>У Java и C++ разные области применения! Цель Java -- сделать программу
>>
>>переносимой ("написано однажды -- работает везде"). Если требуется
>написать
>
>ой, да кому эта переносимость нужна в бизнес-приложениях, когда заказчик вообще не
>знает и знать нихочет ничего о платформах, что хочешь - то
>и ставь... да и у сишного кода переносимость вполне нормальная. вот
>я и недоумеваю, чем же ява ЛУЧШЕ в бизнес-приложениях? а первоисточник
>не сознается... :)
Судя по этому тексту Вы не видели ЗАКАЗЧИКов ))))
Когда Вы станете ИТ-директором банка, например, с зоопарком на 3-х платформах, получите годовой бюджет в 100 тысяч зелени, с указанием отбить их за этот же год, Вы ЛИЧНО будете И выбирать платформу, И согласовывать сроки, И посылать подальше ВСЕЗ С++-х писателей.
Это я Вам ну просто гарантирую ))))
>
>>P.S.: Почему Вы считаете Арлекина скучным? Для меня откровением стало,
>>что он Java программист. Разве такой кульбит (после нумера 15) может
>>быть назван скучным?
>
>потому что по сравнению с выступающими в ru.os.cmp и Луговским он довольно-таки
>скучен.
>
>Ах! Ар! Ле!
>Кину, Арле-кину.... нужно быть смешным для всех....



"Арлекин, ты скучен!"
Отправлено SergeiZz , 19-Мрт-03 18:49 
>Судя по этому тексту Вы не видели ЗАКАЗЧИКов ))))
>Когда Вы станете ИТ-директором банка, например, с зоопарком на 3-х
>платформах...
Я видел заказчиков (оговорюсь -- это не бизнес приложения). У них была
малюсенькая кривость, решаемая малюсеньким аплетиком. Состоялся такой
диалог с системным администратором (ИТ директор де факто он же):
"Java решение не реализуемо, потому, что на рабочих станциях Mozilla и
Opera установлены без поддержки Java" -- "??? !!! ?!?!" -- "Мне жалко
тратить 15М дискового пространства на поддержку технологии, единственная
цель которой -- затормозить работу Web браузера."

"Арлекин, ты скучен!"
Отправлено Арлекин , 19-Мрт-03 14:38 
>>Не только Слышал, но и Делал. И меня не устраивает Ваяние на
>>С++ в десятером за 6 месяцев того, что на  яве
>>я сделаю за 1 месяц один.
>
>а нельзя ли поподробнее, что именно, кроме плохого владения С++, мешает использовать
>его с той же эффективностью, что и Яву?
Объем работы. Можно очень классно бегать с кирпичами на 9-й этаж, но краном оно быстрее будет, хоть денег соит и электричество/бензин/соляру) жрет. Только к крану еще чалки и поддоны нужны.

"Арлекин, ты скучен!"
Отправлено баггзи , 19-Мрт-03 14:45 
>>а нельзя ли поподробнее, что именно, кроме плохого владения С++, мешает использовать
>>его с той же эффективностью, что и Яву?
>Объем работы. Можно очень классно бегать с кирпичами на 9-й этаж, но
>краном оно быстрее будет, хоть денег соит и электричество/бензин/соляру) жрет. Только
>к крану еще чалки и поддоны нужны.

так, уже интереснее. а чем, кроме плохого владения языком, вызван объем работы?


"Арлекин, ты скучен!"
Отправлено Арлекин , 19-Мрт-03 14:55 
>>>а нельзя ли поподробнее, что именно, кроме плохого владения С++, мешает использовать
>>>его с той же эффективностью, что и Яву?
>>Объем работы. Можно очень классно бегать с кирпичами на 9-й этаж, но
>>краном оно быстрее будет, хоть денег соит и электричество/бензин/соляру) жрет. Только
>>к крану еще чалки и поддоны нужны.
>
>так, уже интереснее. а чем, кроме плохого владения языком, вызван объем работы?
>
Сколько лично вам надо времени, написать, ну скажем браузер на ++се ? Путь только текстовый. Win, Linux, Solaris.

"Арлекин, ты скучен!"
Отправлено баггзи , 19-Мрт-03 15:11 
>Сколько лично вам надо времени, написать, ну скажем браузер на ++се ?
>Путь только текстовый. Win, Linux, Solaris.

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


"Арлекин, ты скучен!"
Отправлено Арлекин , 19-Мрт-03 15:26 
>>Сколько лично вам надо времени, написать, ну скажем браузер на ++се ?
>>Путь только текстовый. Win, Linux, Solaris.
>
>это был вопрос с подвохом? :) на win - минут 15, не
>больше, причем полноценный, а не "только текстовый". почему? да потому что
>есть готовый объект, его только на экране разместить да строку да
>ввода "хттп://ццц..." приделать. и в любой развитой среде разработки так... а

угу, и упадет он в корку на первом же кривом линке.
Вы лИчно видимо мозилу 3 года рисовали ? ;)

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

Ясно все с мОлодежью. ))

Значится так, господа студенты - убеждать вас в очевидных для себя вещах я не планирую. Придет время, жены, дети, придет ответственность, тогда придет и способность оценивать обстановку не только с точки зрения животного интереса, но и с т/з практической выгоды (и не только собственной, но и хозяина). А пока упражняйтесь в риторике без меня.

ЗЫЖ Сходу никого не отшиваю :), даже "голых" дельфяков - даю машину с 100 Мб доступом, любые книжки и задачку на яве (не тривиальную, но и без заворотов). Если СПОСОБЕН разобраться - за рабочий день нарисуешь, если нет - иди "на Горбыль". А уж выбирать, пардон, буду Я - потом сами поймете и оцените, а может и нет - мне все равно.

Regardas,
Harlequin.


"Арлекин, ты скучен!"
Отправлено баггзи , 19-Мрт-03 15:39 
>угу, и упадет он в корку на первом же кривом линке.
>Вы лИчно видимо мозилу 3 года рисовали ? ;)

не упадет.

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

>Значится так, господа студенты - убеждать вас в очевидных для себя вещах
>я не планирую. Придет время, жены, дети, придет ответственность, тогда придет
>и способность оценивать обстановку не только с точки зрения животного интереса,
>но и с т/з практической выгоды (и не только собственной, но
>и хозяина). А пока упражняйтесь в риторике без меня.

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

самодурство, обычное самодурство...


"Арлекин, ты скучен!"
Отправлено баггзи , 19-Мрт-03 15:39 
>угу, и упадет он в корку на первом же кривом линке.
>Вы лИчно видимо мозилу 3 года рисовали ? ;)

не упадет.

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

>Значится так, господа студенты - убеждать вас в очевидных для себя вещах
>я не планирую. Придет время, жены, дети, придет ответственность, тогда придет
>и способность оценивать обстановку не только с точки зрения животного интереса,
>но и с т/з практической выгоды (и не только собственной, но
>и хозяина). А пока упражняйтесь в риторике без меня.

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

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


"Резюме: нужно изучать яву"
Отправлено NL , 19-Мрт-03 14:55 
О чем вы тут спорите, коллеги ?! Си, Си-плюс-плюс - это уже давно окостеневшые и заржавевшие языки программирования. ЯВА ! Вот что нужно настоящему разработчику! michey, ты слышищь, изучай яву !
и закончим этот спор.

PS ну а сниффер... да нафик он нужен, не берите в голову :-)


"Резюме: нужно изучать яву"
Отправлено SergeiZz , 19-Мрт-03 19:07 
>О чем вы тут спорите, коллеги ?! Си, Си-плюс-плюс - это уже
>давно окостеневшые и заржавевшие языки программирования. ЯВА ! Вот что нужно
>настоящему разработчику! michey, ты слышищь, изучай яву !
>и закончим этот спор.
>
>PS ну а сниффер... да нафик он нужен, не берите в голову
>:-)
Это из "крылья, ноги и хвосты"?
Тогда я добавлю "главное хвост": технологии имеют значение, а не языки
и прочее приходящее. Идеи вечны.

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


"Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено SergeiZz , 18-Мрт-03 10:41 
> Да, людей, говорящих: блин... я мега кодер С++, и имеющих опыт кодинга
>- "<года" множество.
Да ладно опыт -- хоть бы знали что это такое!

>Мысль, что С++ - ненужен, либо то что
>он есть - это плохо, либо то, что его невозможно понять
>- абсурдна... Все сильно зависит ТОЛЬКО от того, что вы хотите
>написать.
Сильно хочу иметь возможность некоторые цитаты выделить красным!
michey, прочитайте всё это ещё раз -- это ответ (частично) на Ваш вопрос!

>А начинающим надо
>для начало знать, что они хотят, и как? (какими усилиями)
Красный цвет в студию!


"Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено michey , 18-Мрт-03 16:50 
Вроде с мета сдвинулись.
Но вопрос по поводу того чего мне изучать отпадает сам собой, если поразмыслить так:

Мне нужно написать сниффер.
Возьмем мой любимый сниффер ettercap (ИМХО это мое мнение и не будем обсуждать его достоинства и недостатки смысл не в этом).
Почему снифер? Прочто это очень хороший пример комплексного программирования под Unix.

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

В общем это прекрасный пример (мое мнение) комплексного программирования под Unix.


Я еще раз хочу обозначить область своих мытаний:

- Научиться программированию под Unix и под сети и графику и прочее -

В общем насколько я понял в Unix это все реализуется спомощью системных вызовов,  а в Windows - с помощью API. Так я мыслю.
В общем кидайте линки, чтобы я понял суть программирования под Unix...
Повторяю под Unix, а не только для Linux.

И еще:
UNIX - НЕ ЗНАЧИТ LINUX!!!
НО LINUX - ЗНАЧИТ UNIX!!!


"Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено Laskaviy , 18-Мрт-03 17:02 
>Вроде с мета сдвинулись.
>Но вопрос по поводу того чего мне изучать отпадает сам собой, если
>поразмыслить так:
>
>Мне нужно написать сниффер.
>Возьмем мой любимый сниффер ettercap (ИМХО это мое мнение и не будем
>обсуждать его достоинства и недостатки смысл не в этом).
>Почему снифер? Прочто это очень хороший пример комплексного программирования под Unix.
>
>Он представляет собой анализатор пакетов - сетевое программирование,
>            
>          псевдографику
>- системное программирование,
>            
>          а
>также работу с файлами, фильтры и т.д.
>
>В общем это прекрасный пример (мое мнение) комплексного программирования под Unix.
>
>
>Я еще раз хочу обозначить область своих мытаний:
>
>- Научиться программированию под Unix и под сети и графику и прочее
>-
>
>В общем насколько я понял в Unix это все реализуется спомощью системных
>вызовов,  а в Windows - с помощью API. Так я
>мыслю.
>В общем кидайте линки, чтобы я понял суть программирования под Unix...
>Повторяю под Unix, а не только для Linux.
>
>И еще:
>UNIX - НЕ ЗНАЧИТ LINUX!!!
>НО LINUX - ЗНАЧИТ UNIX!!!

Да Линух - это линух ... А Юних - это юних ...
Такой спор тут развели, как я погляжу :))
Вот возьму и задам вопрос ..
Хочу выучить Лисп !!! Но с чего начать, с Java или с Ada ????
И почему все думают что С и С++ это что-то похожее ...
В принципе и правильно думают .. у них в названии одна буква совпадает :)))


"Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено SergeiZz , 18-Мрт-03 17:18 
>Вот возьму и задам вопрос ..
>Хочу выучить Лисп !!! Но с чего начать, с Java или с
>Ada ????
Задавайте. Повеселимся в досталь. Только в отдельном потоке, пожалуйста.

>Такой спор тут развели, как я погляжу :))
Как сказал бы Киса Воробъянинов: "Да уж-ж-ш!".

Вопрос по теме: какие вы знаете толковые ресурсы по системному
программириванию для UNIX? Электронные и бумажные. Только укажите,
почему Вы считаете их лучше остальных.


"Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено SergeiZz , 18-Мрт-03 19:17 
>Вроде с мета сдвинулись.
>Но вопрос по поводу того чего мне изучать отпадает сам собой, если
>поразмыслить так: .....
Чтобы послушать 80-й порт, надо написать так...
int s;
struct sockaddr_in a;
s = socket(AF_INET, SOCK_STREAM, 0);
a.sin_family = AF_INET;
a.sin_port = htons(80); // http
a.sin_addr.s_addr = inet_addr("212.46.224.164"); // www.opennet.ru
memset(&(a.sin_zero), '\0', 8);
bind(s, (struct sockaddr *)&a, sizeof(struct sockaddr));
И потом копировать этот кусок во все свои программы. Нужно только знать,
что каждая функция делает. А можно и не знать -- скопировал и всё.
Так можно написать не только сниффер. Программирование -- ремесло
простоё. Образования не требуется.

>В общем это прекрасный пример (мое мнение) комплексного программирования
>под Unix.
Если "берём
http://www.samag.ru/ru/articles/last/corrected_article/sniff...
удаляем все русские буквы, компилируем, запускаем и кричем ра-або-отает",
то все равно, что писать -- хоть ядро.
А пример действительно хороший. Повод изучить спецификации протоколов и
алгоритмы, в них реализованые и идеи, которые заботили людей, эти
протоколы придумавших.

Вам источники для начинающих, продолжающих или заканчивающих?
Вы знакомы с сокетами? Если нет, то вот хороший источник:
http://www.ecst.csuchico.edu/~beej/guide/net/ (46K, кажется)
Достоинства: автор старается быть понятым; чётко прописана необходимая
последовательность действий; подробно обсуждаются "узловые точки".
Недостатки: на английском; только для самых начинающих: показаны
ваши первые клиент и сервер, но, что с ними дальше делать -- тема других
книг.
Второй шаг в этом направлении: книга Снейдера
http://www.books.ru/shop/books/11063 (даже с доставкой на Луну < 200руб.)
Прочитав (а не просто просмотрев) поймёте, о чём я тут ворчал выше.
Достоинства: граматный автор; сильная ориентация на практику.
Недостаток: многие важные моменты освещены недостаточно подробно,
хотя книга и претендует на звание пособия для начинающих. Недостатки
этой книги прекрасно компенсирует первый названный источник.

>В общем кидайте линки, чтобы я понял суть программирования под Unix...
А читать всё подряд, между прочим -- жизни не хватит.


"ну просто праздник какой-то !"
Отправлено NL , 18-Мрт-03 19:17 
>Начинаю учить C. Или C++. Сам не знаю с чего начать. Вопрос
>вот какой.
>Нужно ли учить С? Может ли C++ полноценно его заменить во всех
>планах?
>Скажем, говорят, что С++ обладает включил в себя все свойства C! Что
>это значит:? Компилятор C++ поддреживает все программы написанные на С или
>
>же в синтаксисе С++ имеются все операторы и средства, что и в
>С? Тоесть заменяет ли сегодня язык С++ полностью С во всех
>планах или же нет?
>Помогите определиться?
>Нужен ли сегодня С и если да, то зачем?

Начинаю учить квантовую физику. Или молекулярную биологию. Сам не знаю, что я хочу, все такое вкусное. Вопрос вот какой.
Нужно ли мне учить квантовую физику? А может все же стоит учить молекулярную биологию? Может ли молекулярная биология заменить во всех
планах квантовую физику? Или все-таки квантовая физика круче?
Скажем, говорят, что молекулярная биология обладает свойствами квантовой физики. Я не понял, что это значит? Законы молекулярной биологии подчиняются законам квантовой физики или же квантовая физика лежит в основе молекулярной биологии? То есть заменяет ли сегодня квантовая физика полность молекулярную биологию во всех планах или же нет?
Помогите определиться?
Нужна ли мне квантовая физика и если да, то нахрена? Докажите мне, что молекулярная биолгия мне не нужна.


"ну просто праздник какой-то !"
Отправлено SergeiZz , 18-Мрт-03 19:29 
>... Вопрос вот какой...
Если хотите стать специалистом, а не Левшой-самоучкой с обрывками
фундаментальных знаний, но богатым опытом подвинчивания и подкручивания
разных винтиков и гаечек, то обязаны уметь отвечать на подобные "ненужные"
вопросы.
Конечно, забавно звучит вопрос. Забавно звучит и вопрос "чем хороший
человек отличается от плохого?". Уметь отвечать на такие вопросы --
суперважно.

Вопрос по теме: системное программирование для UNIX изучали? Какой был Ваш
самый первый источник, который Вы сразу поняли доконца?


"ну просто праздник какой-то !"
Отправлено NL , 18-Мрт-03 20:05 
>Вопрос по теме: системное программирование для UNIX изучали? Какой был Ваш
>самый первый источник, который Вы сразу поняли доконца?

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


"кто знает, может я ядро начнут писать на С++? :)"
Отправлено баггзи , 19-Мрт-03 06:12 
class C3comEthernetDriver = public CEthernetDriver ...
class C3com3189tooDriver = public C3comEthernetDriver ...

class CReiserFS = public class CFileSystem;

чем плохой подход?


"это серьезная заявка на Linux++"
Отправлено NL , 19-Мрт-03 10:44 
>class C3comEthernetDriver = public CEthernetDriver ...
>class C3com3189tooDriver = public C3comEthernetDriver ...
>
>class CReiserFS = public class CFileSystem;
>
>чем плохой подход?

а-афигительный подход :-)))


"это серьезная заявка на Linux++"
Отправлено баггзи , 19-Мрт-03 11:02 
>>class C3comEthernetDriver = public CEthernetDriver ...
>>class C3com3189tooDriver = public C3comEthernetDriver ...
>>
>>class CReiserFS = public class CFileSystem;
>>
>>чем плохой подход?
>
>а-афигительный подход :-)))

в ядре стиль программирования чуток устаревший. goto, copy-paste вместо наследования... я понимаю, что создавался линукс тогда, когда С++ еще не совсем придумали, но новое-то можно и с использованием ООП делать.


"о! я начну это продвигать :)"
Отправлено баггзи , 19-Мрт-03 11:07 
перепишу-ка я парочку своих ядреных модулей на С++ :) нехай завидуютЪ.

"сейчас правлю iptables, чтобы он СОБИРАЛСЯ g++'сом"
Отправлено баггзи , 19-Мрт-03 11:53 
>перепишу-ка я парочку своих ядреных модулей на С++ :) нехай завидуютЪ.

постоянно вылазят ошибки на конструкциях типа

struct ipt_natinfo *info = (void*)*target

ну вать машу, кто их ТАК учил программировать?!

хотя было и покруче - арифметика с указателем типа void ;) видимо, автор сего уверен, что void *a; a++ имеет какой-то смысл.


"Эх-ма."
Отправлено michey , 20-Мрт-03 10:31 
Перцы. Я уже дофига ваших высказываний прочитал.
Суть моего вопроса в том, что я хочу понять общий принцип программирования на С/C++ под Unix и необходимо ли для этого и то и другое. Просто в книге Страуструпа прочитал, что С++ включил в себя все, что есть в С и добавил еще дофига всего. Тогда по его словам С вообще не нужен получается.
Вот я спрашиваю ваше мнение по этому поводу.
Скажите на чем написана FreeBSD, Linux? На Асме + С? И если есть там С++, то что написано на нем?
Давайте еще раз:

1) Приспособлен ли С++ к низкоуровневому программированию как С? Если да то насколько и что он не может, чего может С?
2) В чем общий принцип программирования под Unix?
   /* насколько я понял при программировании под  Unix для нас функциями,
   с которыми мы оперируем, являются системные вызовы. Так? Например,
   возьмем сокеты ...
   struct sockaddr_in a;
   s = socket(AF_INET, SOCK_STREAM, 0);
   Что такое socket(); ? Это функция, но явно не из стандартной
   Это что, системный вызов?
   Понимаете о чем я? */

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

В конце концов я конкретно ужел изучил структуру  TCP/IP: arp, rarp,ip,icmp и прочее. Открывал и закрывал файлы на С/С++, складывал и умножал числа, и делал все остальное, что написано в любом учебнике типа
"Учимся программировать на С/С++.
Под конец изучил архитектуру компа и разработку операционных систем Танненбаума. Я просто хочу понять иерархию программирования и как это все устроено.

Заранее всем премногоблагодарен.

  


"Эх-ма."
Отправлено michey , 20-Мрт-03 10:36 
Хочу уже второй месяц купить книгу:
Т.Чан "Системное программирование на С для Unix", но нигде ее нет.
Может кто кинет линк на электронную версию, если таковая существует
или прдаст мне ее или... В общем может кто поможет.
Смотрел во всех электрошопах, библиоглобусе, и т.д.
Видать тираж небольшой.

"Эх-ма."
Отправлено баггзи , 20-Мрт-03 12:30 
Перец!

Тебе нужно решить две проблемы, совсем не программистские.

1) ты не можешь сформулировать или вообще не знаешь, чего хочешь. С и С++ - это инструменты для решения конкретных задач, и если у тебя нет никакой конкретной задачи, то тебе на самом деле НЕ НУЖНЫ ни тот, ни другой. понимаешь? у большинства задачи есть, и поэтому они знают, что им нужно, а что нет. когда ты сформулируешь задачи, то скорее всего сможешь сам понять, что именно тебе нужно для их решения. ну или задать вопрос, на который получишь нормальный ответ.

2) тебе нужно поднять уровень самокритичности. вот ты прочитал пару книг, и кажется, что все понял. а на самом деле случилось хуже, чем если бы ты их не читал, потому что понял ты все неправильно (это видно из твоего постинга, где ты начал пытаться говорить на технические темы).

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

когда справишься с этим, можно приступать к С/С++ и системному программированию, если тебе все еще будет этого хотеться :)


"Эх-ма."
Отправлено SergeiZz , 20-Мрт-03 13:25 
>- не бери на себя ношу, которую не тянешь, если, конечно,
>тебя не устраивает самообман и медленное движение в сторону психушки.
Я пытался предложить ему помочь составить план действий по его
дообразованию. Он считает, что ему это не нужно. Жаль. Способности есть.
Или я не прав?


"Эх-ма."
Отправлено баггзи , 20-Мрт-03 13:39 
>Я пытался предложить ему помочь составить план действий по его
>дообразованию. Он считает, что ему это не нужно. Жаль. Способности есть.
>Или я не прав?

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


"Эх-ма."
Отправлено SergeiZz , 20-Мрт-03 14:04 
>честно говоря, не заметил способностей. "файлы открывать" сейчас учат максимум на первом
>курсе вуза, а остальное, что он тут нес, больше смахивает на
>тяжкий бред.
Да, наверно, так. Я прсто часто вижу тех, кто и не знает, чего хочет.
А тут всё по полочкам -- учим синтаксис, читаем исходные тексты, непонимаем,
что делать дальше... Сейчас вижу -- без личного общения ничего о человеке сказать нельзя принципиально.

"жертвы желания понять"
Отправлено баггзи , 20-Мрт-03 14:51 
он ведь сказал, чего хочет. "хочу понять...." :)

проблема в том, что желание понять - это не задача, потому что нет объективного критерия ее решения. человек, движимый желанием понять, вполне может прочитать книжку по системному программированию и сказать "я ее ПОНЯЛ". и не осознает, что это лишь иллюзия, и дальше запоминания некоторых знакомых слов он не ушел.

поэтому я бы никому не посоветовал задаваться целью что-либо "понять".

вот цель "написать снифер под юникс", "узнать, что такое socket()" и т.п. - реальны и достижимы. и если бы он задал вопрос "как написать снифер под юникс, какой язык и библиотеки использовать" - ему можно было бы помочь.


"смысл программирования"
Отправлено NL , 20-Мрт-03 15:02 
>Суть моего вопроса в том, что я хочу понять общий принцип программирования на С/C++ под Unix

ооой блииин, хочется очень нецензурно выругаться. еще раз, "общий принцип программирования на С/C++ под Unix"... у меня крыша начинает ехать от такого вопроса :-)) прицип программирования, блин. вот озадачил так озадачил. а действительно, что такое "прицип программирования"? уже полдня пытаюсь придумать формулировку и нифига не получается.
michey, а у тебя оказывается изысканное чувство юмора, сдается мне, ты просто глумишься над людьми :-))))


"смысл программирования"
Отправлено баггзи , 20-Мрт-03 15:14 
>ооой блииин, хочется очень нецензурно выругаться. еще раз, "общий принцип программирования на
>С/C++ под Unix"... у меня крыша начинает ехать от такого вопроса

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


"вот что я придумал"
Отправлено NL , 20-Мрт-03 19:19 
в очередной раз все перечитав и посмеявшись от дущи :-)) я, кажется, понял, что же такое принцип программировани. я так понимаю, прицип программирования под Unix - это как создавать приложения под Unix. michey, ты это имел в виду? если да, пиши - расскажу.
по поводу что выбрать С или С++. не будем вдаваться в какие-либо нюансы и тонкости, рассмотрим в общем виде:
1) разработка сетевых приложений: возможно как на С так и на С++
2) разработка GUI: возможно как на С так и на С++, ярчайшие примеры gtk - c и qt - c++
3) разработка прикладных задач: тоже возможно как на C так и на C++, но в данном случае C++ предпостительнее
4) разработка модулей для ядра (драйверов): вот тут уж извените, только C. хотя если хочешь писать модули на С++, обращайся к баггзи, он тебя проконсультирует :-)
Вывод: если ты не собираешься работать с железом на самом низком уровне, то пофих на чем ты будешь писать свои нетленные коды, хоть на С, хоть на С++. просто выбери что то одно, тыкни пальцем в книжку, которая больше нравится, и изучай. не замарачивайся ты, что лучше  а что хуже. Потом, когда начнешь писать большие и сурьезные приложения, поймешь, что здесь надо писать на С а там на С++, а где то в другом месте лучше написать прогу на перле и запускать ее execl'ом.
А сейчас поставь перед собой конкретную задачу, например напиши телнетовский клиент, и задавай нормальные конкретные вопросы ! :-)

"а почему?"
Отправлено баггзи , 20-Мрт-03 19:51 
>4) разработка модулей для ядра (драйверов): вот тут уж извените, только C.

это еще почему?


"а почему?"
Отправлено NL , 21-Мрт-03 12:03 
>>4) разработка модулей для ядра (драйверов): вот тут уж извените, только C.
>
>это еще почему?

ок, поясню. не буду столь категоричным, да, модули можно писать и на С++, не спорю. Что такое модуль ядра, это всего несколько функций: инициализация модуля, выгрузка модуля, чтение/запись, возможно ioctl и еще несколько функций, плюс структура file_operations c указателями на эти функции. Всё. Где тут можно использовать возможности С++ я не вижу.Всё довольно просто и понятно, и _мое_личное_ мнение_ , что использование С++ здесь излишне. Или вы считаете, что работать с inb() outb() лучше с использованием классов? мне кажется нет, это только усложнит разработку.



"а почему?"
Отправлено баггзи , 21-Мрт-03 13:03 
>С++, не спорю. Что такое модуль ядра, это всего несколько функций:
>инициализация модуля, выгрузка модуля, чтение/запись, возможно ioctl и еще несколько функций,
>плюс структура file_operations c указателями на эти функции. Всё. Где тут
>можно использовать возможности С++ я не вижу.Всё довольно просто и понятно,
>и _мое_личное_ мнение_ , что использование С++ здесь излишне. Или вы
>считаете, что работать с inb() outb() лучше с использованием классов? мне
>кажется нет, это только усложнит разработку.

Дополнительные возможности не могут усложнить разработку. По определению.

А "где использовать" - это нужен более конкретный пример, чем абстрактный модуль. Я, например, прекрасно вижу, как использовать ООП в модулях netfilter.


"потому, что эффективность..."
Отправлено SergeiZz , 21-Мрт-03 14:06 
>Я, например, прекрасно вижу, как использовать ООП в модулях netfilter.
Я там где-то выше по лесу что-то писал по этому поводу (недавно).
Вот тут Вы очень правы, по моему: чем сложнее задача, тем больше поводов использовать ООП. Но такой модуль может быть менее эффективным, чем
аналогичный на C. Но, право, кто ж сможет заранее сказать на сколько менее,
и вообще, откуда конкретно взялось это поверье, что ООП менее эффективен
-- не знаю.


"потому, что эффективность..."
Отправлено баггзи , 21-Мрт-03 15:11 
>>Я, например, прекрасно вижу, как использовать ООП в модулях netfilter.
>Я там где-то выше по лесу что-то писал по этому поводу (недавно).
>
>Вот тут Вы очень правы, по моему: чем сложнее задача, тем больше
>поводов использовать ООП. Но такой модуль может быть менее эффективным, чем
>
>аналогичный на C. Но, право, кто ж сможет заранее сказать на сколько
>менее,
>и вообще, откуда конкретно взялось это поверье, что ООП менее эффективен
>-- не знаю.

когда-то, вероятно, это было правдой (я говоро про скорость работы программ). а сейчас попытался эту самую неэффективность выявить, так компилятор, собрака, при -О9 оптимизирует вызов перегруженных операторов лучше, чем я сам бы догадался :)

class cl {
public:
int i;

    cl& operator=(int x){
        i=x;
        printf("%d\n",i);
        return *this;
    }

};


int main(){
cl a;

a=10;
}

так этот говнюк g++ при -О9 это соптимизировал до printf("%d\n",10), никакими следами существования класса в ассемблерном листинге и не пахло... :) все-таки мне кажется, что на сегодня потеря производительности от применения ООП - устаревшая информация.


"kernel++.org..."
Отправлено SergeiZz , 21-Мрт-03 16:01 
>кажется, что на сегодня потеря производительности от применения ООП - >устаревшая информация.
Не пора ли открывать сайт kernel++.org?


"потому, что эффективность..."
Отправлено NL , 21-Мрт-03 16:33 
вооот, вот этот пример как раз и иллюстрирует, что иногда удобнее обходиться без классов. Гораздо лучше написать printf("%d\n",a); ну или если хотите cout<<a<<'\n'; Не потому, что С лучше или хуже, а потому, что чисто физически тук будет быстрее написать прогу, а не заниматься описанием классов и их отладкой. понимаете к чему я веду.

"потому, что эффективность..."
Отправлено баггзи , 21-Мрт-03 16:39 
>вооот, вот этот пример как раз и иллюстрирует, что иногда удобнее обходиться
>без классов. Гораздо лучше написать printf("%d\n",a); ну или если хотите cout<<a<<'\n';
>Не потому, что С лучше или хуже, а потому, что чисто
>физически тук будет быстрее написать прогу, а не заниматься описанием классов
>и их отладкой. понимаете к чему я веду.

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


"потому, что эффективность..."
Отправлено NL , 21-Мрт-03 16:47 
>этот пример илюстрирует качество оптимизации компилятора. ничего больше он иллюстрировать не может,
>потому что писался исключительно с целью показать, что самый извратный ++овый
>код все равно будет превращен в нормальный ассемблерный, поэтому потери эффективности
>не ожидается.

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


"потому, что эффективность..."
Отправлено SergeiZz , 24-Мрт-03 10:37 
>да блин, я говорю, что бывают такие ситуации, когда удобнее обходиться без
>классов, прога пишется быстрее, вот и всё.
Самый сильный пример, помоему, -- sprintf(). Класс string в STL не имеет
конструктора от целого/вещественного числа (часто даже от символа).
Правда реализация фирмы Регью Вейв (лень искать точное англьцкое) имеет
много разных полезных расширений, в том числе и указанные конструкторы.
Дело в общем не в языке (как всегда), а в библиотеках. Вот Java то (по
моему личному мнению) в основном и любят за наличие подходящих библиотек.
Фирма Sun сильно постаралась в этом направлении.

Если быть до конца откровенным, то классы не нужны для решения
квадратного уравнения (яркий пример, принадлежащий Арлекину, между
прочим). Только фокус-то в том, что времена, когда требовалось писать
программу на Fortran/Pascal/C для решения подобных задач, давно позади.
Сейчас действительная потребность в прикладном ПО, которое даже просто
понять не возможно -- мощности одной человеческой головы не хватает.
Наверно, не зря всё больше становится языков с философией "всё есть
класс", Ruby как пример.

>ладно, не буду разводить полемику, а то еще скажите, что я противник
>С++ :-)
Противников (особенно тайных) больше, чем сторонников. И это не только моё
личное ИМХО -- "с ветром не поспоришь".
Мне тоже часто хочеться сказать "блин". Неужели все думают, что подобные
полемики не нужны ("пустые", "флейм", "словоблудие")? Конечно, нет
человека, который посмеет утверждать, что знает, какой язык лучше (даже
для конкретной задачи). Только фокус в том, что мы своим мровоззрением
(философия пошла...) напрямую и очень сильно влияем на тех, кто
разрабатывает для нас новые языки и технологии. И здесь спрос рождает
предложение. Не сможем убедить студентов в необходимости осваивать ООП,
все постепенно окажемся знаете где? Не выясним (каждый для себя посвоему),
что лучше, C++ или Java -- будем иметь "толи сон. то ли бред", а не
языки программирования 3-го тысячелетия.


"потому, что эффективность..."
Отправлено Laskaviy , 21-Мрт-03 18:55 
>>Я, например, прекрасно вижу, как использовать ООП в модулях netfilter.
>Я там где-то выше по лесу что-то писал по этому поводу (недавно).
>
>Вот тут Вы очень правы, по моему: чем сложнее задача, тем больше
>поводов использовать ООП. Но такой модуль может быть менее эффективным, чем
>
>аналогичный на C. Но, право, кто ж сможет заранее сказать на сколько
>менее,
>и вообще, откуда конкретно взялось это поверье, что ООП менее эффективен
>-- не знаю.

ООП не хуже .. а лучше, да еще и более эффективен .. :)
вот к примеру вы тут спорите ... студентов куча ниразу не грамотных ..
А из опыта, кто давно програмирует с DB4 .. посмотрите в какую сторону изменяется их C API :) оно уже ООП стало .. хоть и С :) Воть тяк .. тАвАрищи ..


"ой, изыди :))"
Отправлено баггзи , 21-Мрт-03 19:24 
тут вам не ЛОР!

"потому, что эффективность..."
Отправлено SergeiZz , 24-Мрт-03 10:44 
>вот к примеру вы тут спорите ... студентов куча ниразу не грамотных
Знал я когда-то одного студента, так он... Впрочем, он через мало лет потом
стал ого-го...


"Эх-ма."
Отправлено Bob , 21-Мрт-03 11:00 
>Суть моего вопроса в том, что я хочу понять общий принцип программирования

Общий принцип программирования в UNIX - в текстовом редакторе набираешь исходный текст программы, сохраняешь в файле с расширением .с или .сс, а потом с помощью компилятора получаешь исполняемый модуль (или библиотеку, или драйвер, смотря, что тебе надо).

>   Это что, системный вызов?

Это функция, реализованая в ядре операционной системы.


"Эх-ма."
Отправлено баггзи , 21-Мрт-03 12:00 
>>   Это что, системный вызов?
>Это функция, реализованая в ядре операционной системы.

ну зачем людей обманывать? socket() - функция libc... а уж кого она там вызывает - вопрос другой.


"Эх-ма."
Отправлено Bob , 21-Мрт-03 13:20 
>ну зачем людей обманывать? socket() - функция libc... а уж кого она
>там вызывает - вопрос другой.


Я не о socket(), а о системном вызове вообще.


"Эх-ма."
Отправлено баггзи , 21-Мрт-03 13:36 
>>ну зачем людей обманывать? socket() - функция libc... а уж кого она
>>там вызывает - вопрос другой.
>Я не о socket(), а о системном вызове вообще.

в таком случае ты вместо ответа на заданный вопрос

====
s = socket(AF_INET, SOCK_STREAM, 0);
   Что такое socket(); ?
====

неожиданно решил сам с собой пообщаться вслух на неизвестную тему... :)


"Эх-ма."
Отправлено Bob , 21-Мрт-03 14:35 
>>>ну зачем людей обманывать? socket() - функция libc... а уж кого она
>>>там вызывает - вопрос другой.
>>Я не о socket(), а о системном вызове вообще.
>
>в таком случае ты вместо ответа на заданный вопрос
>
>====
>s = socket(AF_INET, SOCK_STREAM, 0);
>   Что такое socket(); ?
>====
>
>неожиданно решил сам с собой пообщаться вслух на неизвестную тему... :)


Где-то так оно и есть.. :))
А вообще, пусть человек хотя бы определится с платформой. UNIX-ов много, есть коммерческие, есть свободно распространяемые.
На фиг я ему сейчас буду рассказывать про 80-е прерывание Linux, про таблицу sys_call_table и  т.д., а в ответ получу "А мне надо про UNIX вообще, а не про Linux в частности". Получается беспредметный разговор.


"кто знает, может я ядро начнут писать на С++? :)"
Отправлено skydion , 22-Мрт-03 14:23 
>class C3comEthernetDriver = public CEthernetDriver ...
>class C3com3189tooDriver = public C3comEthernetDriver ...
>
>class CReiserFS = public class CFileSystem;
>
>чем плохой подход?

Не, не очень подход :))
Я думаю лучше сделать CEthernetCard в нем несколько функци


"кто знает, может я ядро начнут писать на С++? :)"
Отправлено skydion , 22-Мрт-03 14:27 
>>class C3comEthernetDriver = public CEthernetDriver ...
>>class C3com3189tooDriver = public C3comEthernetDriver ...
>>
>>class CReiserFS = public class CFileSystem;
>>
>>чем плохой подход?
>
>Не, не очень подход :))
>Я думаю лучше сделать CEthernetCard в нем несколько функци
--- сори ---- здесь продолжу

несколько функций можно виртуальных, для доступа к сетевой карте.
К примеру read, write, config ну и еще несколько базовых все иное можно
реализовать в других наследственных класах более расширено :)

К стати как можно редактировать свои статии? а то непускает даже
поле логина?


"kernel++.org???"
Отправлено SergeiZz , 24-Мрт-03 11:11 
>Я думаю лучше сделать CEthernetCard в нем несколько функци
Брадцы! Вы разработку начали, да? Я руками и ногами с вами!
По архитектуре подсистем опыт имеется. Вот, так если начать, то получиться
Linux -- "пишим, как дышим".
Вообще kernel++.org -- это мысль. И хостинг даже на первых этапах можно,
думаю, выклянчить...

>К стати как можно редактировать свои статии? а то непускает даже
>поле логина?
А, так интереснее. Вообще, тут везде столько разных мелких неправильностей,
что это всё имеет ценность "в целом" как культурное образование -- править
его бесполезно.


"kernel++.org???"
Отправлено баггзи , 24-Мрт-03 11:40 
>Брадцы! Вы разработку начали, да? Я руками и ногами с вами!
я не начинал ;)

>По архитектуре подсистем опыт имеется. Вот, так если начать, то получиться
>Linux -- "пишим, как дышим".
>Вообще kernel++.org -- это мысль. И хостинг даже на первых этапах можно,
>
>думаю, выклянчить...

основная проблема - не хостинг, а несколько сот, если не тысяч, часов, которые нужно потратить, прежде чем ядро хотя бы соберется компилятором g++ ;) Там же все хидеры нужно переделывать, чтобы при компиляции каждого файла не вылезало три тысячи синтаксических ошибок...


"kernel++.org???"
Отправлено SergeiZz , 24-Мрт-03 14:54 
>основная проблема - не хостинг, а несколько сот, если не тысяч, часов,
>которые нужно потратить, прежде чем ядро хотя бы соберется компилятором g++
>;) Там же все хидеры нужно переделывать, чтобы при компиляции каждого
>файла не вылезало три тысячи синтаксических ошибок...
Это если действительно просто переписать ядро на улучшенный C, что, положа
руку на сердце, -- никому не нужно (хотя и надо бы, из принципа). Вот, если
создать что-то новое, то -- совсем другой разговор. Ядро++ должно уметь
то, что существующее ядро не умеет и уметь (по крайней мере -- скоро) не
будет. Тут-то и тысячи часов потратить, понятно, не жалко.


"kernel++.org???"
Отправлено NL , 24-Мрт-03 15:09 
Тут-то и тысячи часов потратить, понятно, не жалко.

Простите меня великодушно, а на какие средства вы будете кушать ?



"kernel$$.org???"
Отправлено SergeiZz , 24-Мрт-03 16:38 
>Простите меня великодушно, а на какие средства вы будете кушать ?
Если всё время тратить только на это, то придётся питаться святым духом.
Это однозначно. Надо бы спросить у Мотсумото (автора Ruby) -- на что он
живёт...
Вы предлагаете другое название, kernel$$.org???

"kernel++.org???"
Отправлено баггзи , 24-Мрт-03 15:22 
>создать что-то новое, то -- совсем другой разговор. Ядро++ должно уметь
>то, что существующее ядро не умеет и уметь (по крайней мере --
>скоро) не
>будет. Тут-то и тысячи часов потратить, понятно, не жалко.

так ить бери и пиши патчи, хоть сейчас. но при чем тут С++? :)


"kernel++.org???"
Отправлено SergeiZz , 24-Мрт-03 16:29 
>так ить бери и пиши патчи, хоть сейчас. но при чем тут
>С++? :)
Если патчи -- не причём. Если изменить архитектуру ядра -- причём.


"kernel++.org???"
Отправлено skydion , 25-Мрт-03 22:01 
>>так ить бери и пиши патчи, хоть сейчас. но при чем тут
>>С++? :)
>Если патчи -- не причём. Если изменить архитектуру ядра -- причём.


А я вот тут нашел ради интереса несколько проектов по ООП ОС :)
но как я понял все где-то на уровне философских разработок :)
так что можно начинать bzImage++ :)))


"bzImage++"
Отправлено SergeiZz , 26-Мрт-03 14:56 
>А я вот тут нашел ради интереса несколько проектов по ООП ОС
>но как я понял все где-то на уровне философских разработок :)
Бросьте ка ссылочки. Философские разработки (объектно ориентированное
проектирование) -- по моей части.

>так что можно начинать bzImage++ :)))
Я руками и ногами (головой -- само собой разумеется)!...
Думаю, это должна быть распределённая ОС с поддержкой мобильных агентов на
самом низком уровне...


"bzImage++"
Отправлено skydion , 26-Мрт-03 20:13 
>>А я вот тут нашел ради интереса несколько проектов по ООП ОС
>>но как я понял все где-то на уровне философских разработок :)
>Бросьте ка ссылочки. Философские разработки (объектно ориентированное
>проектирование) -- по моей части.

каталог ОПП ОС http://www.cs.arizona.edu/people/bridges/os/oop.html
ну тут общие вопросы http://www.nondot.org/sabre/os/articles
думаю если поискать то можно еще интересные вещи найти :)


"bzImage++"
Отправлено SergeiZz , 27-Мрт-03 12:11 
>каталог ОПП ОС http://www.cs.arizona.edu/people/bridges/os/oop.html
>ну тут общие вопросы http://www.nondot.org/sabre/os/articles
>думаю если поискать то можно еще интересные вещи найти :)
То, что надо. Особенно первая. Спасибо.


"bzImage++"
Отправлено skydion , 26-Мрт-03 22:37 
вот это надо почитать :))))) http://delan.narod.ru/oop.htm

"bzImage++"
Отправлено SergeiZz , 27-Мрт-03 12:15 
>вот это надо почитать :))))) http://delan.narod.ru/oop.htm
В словаре есть несколько незначительных ошибок в роде "сообщение есть
объект". Но в отсутствии вкуса или стиля не упрекнёшь. Занятный текст.


"С++ намного проще для начинающих"
Отправлено Иванчик , 21-Мрт-03 07:58 
>Начинаю учить C. Или C++. Сам не знаю с чего начать. Вопрос
>вот какой.
>Нужно ли учить С? Может ли C++ полноценно его заменить во всех
>планах?
>Скажем, говорят, что С++ обладает включил в себя все свойства C! Что
>это значит:? Компилятор C++ поддреживает все программы написанные на С или
>
>же в синтаксисе С++ имеются все операторы и средства, что и в
>С? Тоесть заменяет ли сегодня язык С++ полностью С во всех
>планах или же нет?
>Помогите определиться?
>Нужен ли сегодня С и если да, то зачем?


Ответ простой: начинающим НАМНОГО проще программировать на С++.

Если примерно оценить сложность программирования на разных языках, то можно составить примерную пропорцию: если принять Perl за 1, то на С++ написать программу сложнее в 3 раза, а на С раз в 10. Естественно, всё зависит от задачи, но если она более-менее сложная, то примерно так.

Только для этого нужно воспользоваться готовыми средствами С++, в особенности STL.

Например, тебе нужно сложить две строки. В С++ ты интуитивно пишешь
string s = s1 + s1;

В С так не пройдёт!
char *s = NULL;
s = (char *)malloc(strlen(s1) + strlen(s2) + 1);
if (!s)
  return 1;
strcpy(s, s1);
strcat(s, s2);
и потом ещё не забыть в нужном месте вызвать
free(s);
Если забыл вызвать, то пойдёт утечка памяти. Если же вызвал free до того, когда s будет ещё использоваться, то можешь получить Segmentation fault. То же самое получишь, если неправильно посчитал количство символов для malloc.

Да, ты можешь и в С++ сделать присваивание строк точно таким же образом. И даже второй вариант будет быстрее. Только тебе решать, что тебе нужно - максимальная скорость или удобство.

Ещё более впечатляюще будет использование массивов.
В С++ воткнул #include vector и пихай в него свои переменные или пиши на С свои функции для массивов (если есть опыт, то тут можно воспользоваться методом Copy-Paste). Опять же второй вариант можно сделать под себя очень быстрым.

Рекомендую красные книжки Липпман "Основы программирования на С++" и Кёниг "Эффективное программирование на С++".



"Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено skydion , 22-Мрт-03 14:49 
Знаеш я когда-то тоже начинал учить С/С++ я имел несколько книже скорее философских
нежели учебных сидел на 286 компе :))) был у меня компилятор Borland C++ 2.0 на 15-ти
5.25" дисках :) и для того чтобы хоть что-то понять я все сносил с винта объемом 20Мб
ставил Борланд на 15 метров и запускал примерчик с книги "Hello world" вот были времена :)
а с указателями как я натрахался..... пока мне отец не достал какую-то книгу по С и только тогда
я смог сними разобратся, даже в институт к преподам ходил правда к паскалисту :) но и
он нифига несмог обяснить... кароче у меня невозникало таких вопросов как у тебя...
что это, где оно сидит, если надо рыл все хедерные файлы и находил, а по поводу где
функция и что она делает так таких вопросов вообще не возникало есть функция есть ее
результат надо знать больше читай мануал или ифо-файлы благо по glibc их туева хуча.

По поводу С++ я к примеру не жалею что его выучил и что это был мой первый язык.

Вот даже ООП паскаль делают и Дельфи в сторону С++ ползет. Я считаю выучив С++
все другие языки можно выучить очень быстро, будь то Ява, Смаллталк, С или еще
какойто супер пупер язык. В С++ есть 90% того что имеют в себе другие языки. И не
надо делать каких либо извращений для достижения цели.


"Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено SergeiZz , 24-Мрт-03 11:30 
>Вот даже ООП паскаль делают и Дельфи в сторону С++ ползет.
Уточненице: в сторону Java, а не C++.

>Я считаю выучив С++
>все другие языки можно выучить очень быстро, будь то Ява, Смаллталк, С
>или еще
>какойто супер пупер язык. В С++ есть 90% того что имеют в
>себе другие языки.
Слово "очень" перед "быстро" я бы зачеркнул. Всё таки необходимость изучить
новый язык есть необходимость перейти к решению новых задач. При этом,
задачи C++ на несколько порядков сложнее, чем у чистого C.


"Полезная ссылка в нете"
Отправлено newbe , 24-Мрт-03 13:45 
http://lsi.bas-net.by/bsuir/base/node1.html

"Полезная ссылка в нете"
Отправлено SergeiZz , 24-Мрт-03 16:20 
>http://lsi.bas-net.by/bsuir/base/node1.html
Это "Лаборатория идентификации систем ОИПИ НАН Беларуси". Канал слабоват.
Не плохо бы выложить .tar.bz2, В тексте осталось много "следов" LaTeX.
Но содержание, повидимому, заслуживает пристального внимания.

"..."
Отправлено michey , 02-Апр-03 11:29 
Хочу поблагодарить всех за помощь.
Такого кол-ва высказываний и не ожидал даже.
Наверное все вопросы, и не только у меня, возникают из-за
нехватки информации. Хороших книг по пальцам пересчитать,
а те кто действительно знают - умалчивают.
Прочитал на днях книгу Торвальдса "Рассказ нечаянного революционера"
о его жизни и многие другие подробности о том как создавалсь Linux
и другие полезные моменты. Впечатлений немало. Прочел всю книгу
на одном дыхании и без остановки.
В ней он постоянно ссылался на профессора Танненбаума и на его
труды.
В общем купил я его 2 книги:
Архитектура компьютера и Разработка операционных систем.
Ну и для закуски - Дж. Морис Бах "Структура операционной системы Unix".
В общем многое понял. Вот чего господа я хотел услышать от Вас и на что
ответил мне Танненбаум: Смысл примерно таков:
---------------------------------------------------------------
Любой комп представляет собой набор уровней: физический, микроархитек-
турный, уровень архитектуры команд, уровень операционной системы и
уровень языка ассемблера. Говорить о Java не серьезно, поскольку в
любом случае реальная физическая машина будет работать быстрее, чем
виртуальная и с этим не поспоришь.
А вот чтокасается программирования:
Производители предосталяют нам набор комманд микроархитектурного уровня,
который часто путают с уровнем языка ассемблера, собственно им разра
ботчики операционных систем и оперируют.
Далее из этого набор команд, который слушается железо и собирается ядро операционки. Говорить тут о С++ слабоумно. Ассемблер и С в самый раз.
Вообще раз зашел разговор о Java, здесь в самый раз кухонные комбайн или
сотовый телефон. Дак вот все это хозяйство собирается в ядро, "над"
которым можно уже программировать и на С и на С++.
Вся соль состоит в том, что любая операционка согласно POSIX должна
нам предоставить набор системных вызовов для наших дальнейших
извращений, а там что угодно и на чем угодно. В Unix все пучком.
А вот дядя Билли отказался эти системные вызовы выкладывать и сделал
некое подобие назвав Win API, которым программисты и пользуются и поль
зуются настолько, насколько им позволено. И никуда отсель не деться.
А все, что выше: с каждым уровнем делает программирование проще, но
ограничивает свободу действий. Вот такие дела.

"буахахахахаха!!!"
Отправлено баггзи , 02-Апр-03 12:07 
"спасибо всем большое, вы идиоты и слабоумные, а вот как на самом деле надо было ответить на мой вопрос..." :))))) ну и мудак же ты, михей :))

"2 all:"
Отправлено баггзи , 02-Апр-03 12:10 
>"спасибо всем большое, вы идиоты и слабоумные, а вот как на самом
>деле надо было ответить на мой вопрос..." :))))) ну и мудак
>же ты, михей :))

2 Олл: ну теперь-то вы поняли суть программирования под Юникс? :))) в фак! :)


"from S.Z."
Отправлено SergeiZz , 02-Апр-03 16:38 
>>"спасибо всем большое, вы идиоты и слабоумные, а вот как на самом
>>деле надо было ответить на мой вопрос..." :))))) ну и мудак
>>же ты, михей :))
Ну, если старше 18-ти, то н-да... Только мне больше нравиться "чудак".

>2 Олл: ну теперь-то вы поняли суть программирования под Юникс? :))) в
>фак! :)
У каждой медали, как известно, есть три стороны... Не прошёл бы интерес,
когда встретится необходимость в использовании (а не просто запоминании)
полученных знаний; понимание со временем приложиться (будем надеяться).

Про между прочим. Не так-то просто объяснить доходчиво начинающему
смысл термина "философия программных утилит UNIX".
И ещё штришок. Сути программирования не существует, конечно. Но это вовсе
не означает, что искать её не следует. Вот такое моё личное мнение...


"from S.Z."
Отправлено баггзи , 02-Апр-03 17:07 
>Ну, если старше 18-ти, то н-да... Только мне больше нравиться "чудак".

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

>У каждой медали, как известно, есть три стороны... Не прошёл бы интерес,
>когда встретится необходимость в использовании (а не просто запоминании)
>полученных знаний; понимание со временем приложиться (будем надеяться).

а зачем их применять-то? человек искал "суть", и он ее "нашел"... :))))


"о чудаках, сути и поисках"
Отправлено SergeiZz , 02-Апр-03 17:47 
>дело не в том, что он не понимает, и даже не в
>том, что он не понимает, что не понимает. дело в том,
>что он еще и макает в дерьмо людей за то, что
>их мнение не совпадает с его только что сформировавшимися предрассудками. так
>что настаиваю на своей формулировке :)
Ну, не совсем уж так прямо и макает. Скорее так легко побрызгивает. А потом, знаете ли, почитайте диалог с Арлекином. Я и Вы тоже не особенно
прислушивались к чужому мнению, хотя и кажущемуся нам неправильным.
Так, что настаиваю на своём варианте :))

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



"2 all:"
Отправлено starlets , 02-Апр-03 17:41 
nu i rebjata boltovnu razveli ..............
u menja toje vopros est - u vas slishkom mnogo svobodnogo vremeni vidno est ?????!!!!!!!!!!

"2 all:"
Отправлено SergeiZz , 02-Апр-03 18:23 
>nu i rebjata boltovnu razveli ..............
Согласен -- есть маленько. Но мы токма в этом потоке скромно...
Да и вообще -- это автор темы всё подливает масла...

>u menja toje vopros est - u vas slishkom mnogo svobodnogo vremeni
>vidno est ?????!!!!!!!!!!
О, щасс раскажу подробно...
Я дежурю, сидя за Виндовозом с 17-00 до 20-00 два дня в неделю ничего
кроме браузера под рукой не имея. Тихо сходя с ума от безделья, я
принялся читать документацию по одной волновавшей меня проблеме. Одна из
ссылок привела на opennet.ru. Тут заметил прелюбопытнейший трёпум
(извините за резкость; я понимаю, что это "профессиональный форум";
извиняюсь ещё раз, но это моё лично искривлённое болезненно наглое
впечатление). До селе, естественно, я пользовался форумами и списками
рассылки (реже группами новостей), для быстрого поиска решения проблемы,
"которую кто-то уже не раз решил". В гиперподавляющей массе это были
англоязычные форумы, причём специально я ни один не отслеживал, а
пользовался поисковыми системами. Поплавав по opennet.ru, я с интересом
стал сравнивать, то, как это делают "у них", с тем, как это делают "у
нас" (в частности на opennet.ru). Результатом сравнения стало прочное
желание покинуть opennet.ru навсегда (я удалил соответствующие закладки
из браузера с кличем "мне это никогда не понадобиться"). Этот поток,
в общем и целом, -- последнее, что меня здесь интересует. Если мне в
догонку пойдёт "пара ласковых" -- не обижусь, ибо в ваше сообщество я
явно не вписываюсь.
Думаю, я ответил на Ваш вопрос.


"Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено Charlie Root , 04-Апр-03 10:55 
>Нужен ли сегодня С и если да, то зачем?

C - это классика!
Керниган и Ритчи "Язык программирования С" - это гениальное произведение!
Нельзя не знать азбуку и писать.
Писать красиво и гениально - это потом.  Научитесь сначала  у авторитетов.
Вот, например, исходник счётчика, регистрирующего посещения на мои сайты:
(включается через SSI)
main()
{    char        logname[32];
    unsigned long    tmp;
    FILE*        LOG;

    printf("Content-type:text/html;\n\n <!-- -->");
    LOG = fopen("../usr/coolsoft.log", "a");
    fprintf(LOG,"%u\t%s\t%s\n",time(NULL),\
                getenv("REMOTE_ADDR"),\
                getenv("DOCUMENT_URI"));
    tmp = LOG->_offset;
    fclose(LOG);
    if ( tmp > 65000l ) {
    sprintf( logname,"%s%u.log","../usr/",time(NULL) );
    rename("../usr/coolsoft.log",logname);
    }
}
Может ли С++ сократить, оптимизировать, сделать понятнее этот текст?
А, господа? С++ нужен в больших проектах, > 1000 строк кода.
Там, действительно, извилина перегревается.


"Общий вопрос к людям, имеющим неплохой опыт программирования..."
Отправлено sas , 05-Апр-03 14:31 
>>Нужен ли сегодня С и если да, то зачем?
>
>C - это классика!
>Керниган и Ритчи "Язык программирования С" - это гениальное произведение!
>Нельзя не знать азбуку и писать.
>Писать красиво и гениально - это потом.  Научитесь сначала  у
>авторитетов.
>Вот, например, исходник счётчика, регистрирующего посещения на мои сайты:
>(включается через SSI)
>main()
>{ char  logname[32];
> unsigned long tmp;
> FILE*  LOG;
>
>    printf("Content-type:text/html;\n\n <!-- -->");
>    LOG = fopen("../usr/coolsoft.log", "a");
>    fprintf(LOG,"%u\t%s\t%s\n",time(NULL),\
>    getenv("REMOTE_ADDR"),\
>    getenv("DOCUMENT_URI"));
>    tmp = LOG->_offset;
>    fclose(LOG);
>    if ( tmp > 65000l ) {
> sprintf( logname,"%s%u.log","../usr/",time(NULL) );
> rename("../usr/coolsoft.log",logname);
>    }
>}
>Может ли С++ сократить, оптимизировать, сделать понятнее этот текст?
>А, господа? С++ нужен в больших проектах, > 1000 строк кода.
>Там, действительно, извилина перегревается.


Уважаемый Charlie Root!

Я программирую и на С и на С++ и хотел бы показать, что в Вашем коде не все так ладно,
как Вам хочется:

1. Хотя K&R и испоьзуют в "белой" книге "main()" без int, подразумевая его неявно, современный стандарт требует прописывать тип явно:
     int main( void )  или int main( int argc, char* argv[] )

Конечно большинство компиляторов скушает и просто "main()", но распространять устаревший код не совсем правильно  

2. Вы используете  FILE._offset - это непортабельно. Зависит от реализации библиотеки
    Члены FILE    НЕ ДОЛЖНЫ ИСПОЛЬЗОВАТЬСЯ в прикладных программах. Только в коде, реализующем библиотеку. Кстати в "белой" книге есть пример реализации fopen и FILE БЕЗ _offset
(Chapter 8 "Unix System Interface  Section 8.5 page 176 (издание 1988 "The C programming language (ANSI C) Second Edition"))

   Для Ваших целей надо использовать ftell

   Не хочу вступать в дискуссия какой язык лучше, но в С++, используя private и protected, этой ситуации бы не случилось    :)  Конечно с портабельностью С++ среди разных компиляторов тоже есть большие проблемы...

3. Чисто визуально код на мой вкус "перемешан": и вывод информации, и запись в файл, кроме того нет даже самых важных и примитивных проверок

#define REMOTE_ADDR "REMOTE_ADDR"
#define DOCUMENT_URI "DOCUMENT_URI"

#define LOG_DIR  "../usr"
#define LOG_FILE "../usr/coolsoft.log"

#define MAX_LOG_SZ 65000l

#define SINCE_1_1_1970 (long)time(NULL) /* :) just kidding */

void fatal_error( const char* msg )
{
        printf( "<h1>Произошла ошибка: %s</h1>\n", msg );
        perror( msg );
        exit( EXIT_FAILURE );
}

int main( void )
{
    char  logname[32];
    unsigned long tmp;
    FILE*  log;
  
       printf("Content-type:text/html;\n\n <!-- -->");    

    log = fopen( LOG_FILE, "a");
    if ( log == NULL ) fatal_error( "Не могу открыть файл... Выход" );    fprintf(
        log,
        "%lu\t%s\t%s\n", SINCE_1_1_1970,
        getenv( REMOTE_ADDR ),
        getenv( DOCUMENT_URI )
    );
    tmp = ftell( log );
    fclose( log );

       if ( tmp > MAX_LOG_SZ ) {
        sprintf( logname,"%s%lu.log", LOG_DIR, SINCE_1_1_1970 );
               if ( rename( LOG_FILE, logname ) == -1 )
            fatal_error( "Не могу переименовать лог файл... Выход" );
      }

      return EXIT_SUCCESS;
}

Эта версия немного более структурирована я думаю.

Хочется сказать, что сколько программистов, столько и мнений

Я НЕ ПРЕТЕНДУЮ НА ИСТИНУ В ПОСЛЕДНЕЙ ИНСТАНЦИИ!!!

На С++ - полный аналог С кода Имеет плюсы и минусы   :)) Только один примитивный вариант
НЕ ТЕСТИРОВАН так что если я где ошибся просьба камнями больно не бросаться

#include <cstdlib>
#include <cstring>
#include <cerrno>
#include <ctime>
#include <iostream>
#include <fstream>
#include <sstream>

using namespace std;

static const char REMOTE_ADDR[] = "REMOTE_ADDR";
static const char DOCUMENT_URI[] = "DOCUMENT_URI";

static const char LOG_DIR[] = "../usr";
static const char LOG_FILE[] = "coolsoft.log";
static const char ARC_LOG_EXT[] = "log";

static const long MAX_LOG_SZ = 65000l;

static const char ERR_PREFIX[] = "Fatal error:";

void fatal_error( string msg )
{
        cout << ERR_PREFIX << "<h1>: " << msg << "</h1>\n";
        cerr << ERR_PREFIX << errno << "  "
             << ::strerror( errno ) << "\n";
        exit( EXIT_FAILURE );
}

int main() // no void here in C++
{
       cout << "Content-type:text/html;\n\n <!-- -->\n"; // no flushing...

    string log_name = string( LOG_DIR ) + "/" + LOG_FILE;
    ofstream log( log_name.c_str(), ios_base::out | ios_base::ate );
    if ( !log.good() ) fatal_error( "Cannot open log file" );    
    
    log << ::time( NULL )  
             << "\t" << ::getenv( REMOTE_ADDR )
             << "\t" << ::getenv( DOCUMENT_URI )
          << endl;  // flush here  
    streampos pos = log.tellp();
    log.close();

    // And here if somehow streampos will not be long
    // compiler will tell us!!! BIG advantage
    if (  MAX_LOG_SZ > static_cast<long>( pos ) ) {
        stringstream arc_log( ios_base::in );
        arc_log << LOG_DIR << "/" << ::time( NULL ) << ARC_LOG_EXT;
        if ( ::rename( log_name.c_str(), arc_log.str().c_str() ) == -1 )
            fatal_error( "Cannot make archive copy" );
      }

      return EXIT_SUCCESS;
}

Успехов
--- sas

PS И вообще эта дискуссия типа а какой совок в песочнице использовать? Красный, железный или ОГРОМНЫЙ

УЖАС!!!!    :))


"Добавим словечко одно..."
Отправлено SergeiZz , 07-Апр-03 10:41 
Таки выскажусь ещё раз на эту тему.

>И вообще эта дискуссия типа а какой совок в песочнице использовать?
>Красный, железный или ОГРОМНЫЙ
На мой взгляд, именно так и есть, но нужно иметь в виду, что всё сложнее,
чем кажется. Вобщем-то выше много говорилось именно на эту тему.

Я здесь резюмирую моё личное мироощущение.
1) Чем для данной задачи C++ лучше C? По большому счёту, все языки
эквивалентны. Квадратное уравнение едино на чем решать, на Fortran, C,
C++, или Ассемблере. Программы будут отличаться, но это проблема
компилятора, а не языка. (Несколько особняком стоит Java -- это не просто
язык, а технология.) Писать ли данную задачу на данном языке дело вкуса
(грубо говоря, конечно). Говоря односложно: любую программу, в принципе,
можно написать на любом языке.
2) Зачем нужен C++? Чтобы справиться со сложной задачей. Здесь речь
не просто о программе >1000 строк. Скорее о сложности выдумывания, нежели
написания. ООП -- это технология, и, как любая технология, она
рассказывает, что нужно делать, чтобы решить задачу, первый шаг, второй
шаг...
3) Устарел ли чистый C? Ситуация такова, что задачи, для которых
разрабатывался C, стремительно устаревают. Требования к эффективности
снижаются, потребности растут и усложняются. Даже традиционные системные
задачи становится невозможно (а не просто сложно) решать старыми методами.
4) Почему GTK написана на C? Ещё более яркие примеры -- GSL, ORBit. Увы,
чудовищно огромная масса программистов не владеет объектным подходом.
Писать GTK на C++ значит лишить их инструмента, который им необходим.
Я склоняюсь к мысли, что человек, освоивший когда-то C, уже никогда не
сможет освоить ООП. Причём, обратное явно не верно. Хотелось бы ошибаться.
6) Писать ли bzImage++? Я руками и ногами... Только -- в качестве
исполнителя, а не организатора... Я тут, улыбаясь, вставил фразу о
мобильных агентах. У кого из вас в голове сразу затолпились идеи о
путях реализации этого чуда? Уверен, что все скривились. А вот, как
писать класс для сетевой карты, затолпились идеи.
5) Что учить, C или C++? Учитесь программировать. На каком языке не
принципиально, потому что идти нужно от задачи, которую вы ставите перед
собой. Задача сама заставит выбрать нужный язык. Пакость тут в том, что
начинающий не знает ни какие бывают задачи, ни что именно он хочет.