Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Самый новичковый новичек, или Хочу на небо!


Автор: ВеутовСергей 9.4.2008, 17:55
Осознанно порождаю тему аналогичную с http://forum.vingrad.ru/topic-186943.html, так как не нашел там всей необходимой информации

Кратко: PHP, Perl - программист на достаточном уровне.

Задача: Изучение С для создания приложения для веб.

Вопрос: Кто может изложить путь от разжевывания как что установить 
с соответствующими ссылками; echo 'Hello world, amigos!'; и до глубокого ООП

В наличаи ноутбук Asus, ОС WinXP PE SP 2, две руки, 1 голова с подозрениями на наличаи мозга.

Список литературы с ссылками приветствуется.

Зарание спасибо 


Автор: archimed7592 9.4.2008, 18:23
Начнём с этих тезисов:
1. В С ООП нет, есть он в С++
2. ООП нужно изучать отвязанно от языка(читать Буча). К примеру, тот же ООП есть и в PHP... В С++ у этого ООП просто синтаксис немного иной.
3. Самый главный тезис: С++ нерентабелен для webdev'а. Про С я вообще скромно промолчу.

После этого осталось желание изучать С?

Автор: ВеутовСергей 10.4.2008, 09:36
Я не разбираюсь в ветвлениях языка С / C++ чего еще, по сему и создавал этот пост.
ООП знаю на достаточном уровне. Паттерны, дизайн, подобное.
Цитата

3. Самый главный тезис: С++ нерентабелен для webdev'а
 - если я создал пост, занчит решил это для себя.

 
Цитата

После этого осталось желание изучать С?


Всегда готов smile 

Автор: archimed7592 10.4.2008, 09:58
Тогда примерно так:
0. Про С забудьте - это самоубиство. С++ в принципе тоже, но раз Вы рвётесь в бой, то дальнейшие пункты касательно именно С++.
1. Изучить основы языка, синтаксис. Классически советуют Страуструпа. Я не знаю чё посоветовать(из того, что встречал ничего не понравилось), но больше склонюсь к Шилдту.
2. Освоить какой-нибудь фреймворк, причём, немаловажно, чтобы он был кроссплатформенным(если, конечно, твои web-приложения не будут ориентированы на конкретную платформу). Нужен этот фреймворк т.к. в повседневных webdev'овских задачах требуется много того, чего не предоставляет Стандартная библиотека.
3. Ознакомиться со спецификацией CGI.
4. Можно смело начинать писать "гостевую книгу"(или что Вам больше нравится из простенького) на С++.

Автор: ВеутовСергей 10.4.2008, 10:05
Для начала мне нужно понять какой компилятор выбрать для начала (пока под винду)


С++ мне необходим для таких задач как написания демонов.. хотя много чего перенести с рнр на плечи с++ необходимо

Автор: Alek86 10.4.2008, 10:24
Цитата(ВеутовСергей @  10.4.2008,  10:05 Найти цитируемый пост)
Для начала мне нужно понять какой компилятор выбрать для начала (пока под винду)

я рекомендую Visual Studio
от 2003 и выше
компилятор, соответственно, cl

Добавлено через 2 минуты и 44 секунды
интересно, в каком смысле "C для веба"?
что ты хочешь писать на сях?

Автор: ВеутовСергей 10.4.2008, 10:34
Цитата

интересно, в каком смысле "C для веба"?
что ты хочешь писать на сях?


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


За совет спасибо 

Автор: archimed7592 10.4.2008, 13:00
Цитата(Alek86 @  10.4.2008,  10:24 Найти цитируемый пост)
я рекомендую Visual Studio

Ага, поддерживаю... С сайта Microsoft можно скачать бесплатную express версию - для начала вполне хватит.


Цитата(ВеутовСергей @  10.4.2008,  10:34 Найти цитируемый пост)
Задач много, всех и не вспомнишь. К примеру демоны, сервис онлайн служб поддержки, потоковая передача данных

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

Автор: ВеутовСергей 10.4.2008, 13:14
с тем что я определился вопросов нет так как есть конкретный примеры которые работают.

Возможностей C# я не знаю

По поводу литературы тоже конкретики мало. По поводу компилятора - не нашел.

Будем искать (ц)

Автор: SABROG 10.4.2008, 15:17
Вы тут о CGI разговариваете ? Т.е. Си вместо php/perl/java/и т.д. ?

Неплохой выбор, если знаешь возможности языка и список библиотек, которые помогут в реализации поставленной задачи. Если ни того ни другого не знаешь, то "ШирПотреб" (php и т.д.). Если нет сроков и задача чисто для фана и получения знаний, то это хороший экспириенс.

Навскидку приходят на ум технологии которые придется использовать из Си:
- networking (http, ftp, обычные сокеты) (curl)
- кодировки (utf8, cp1251 и т.д.) (iconv)
- XML (libxml2)
- базы данных (mssql, mysql, postgresql, oracle, sqlite и т.д.) (freetds, libmysql, libpq...)
- регулярные выражения (pcre)
- шифрование (openssl)
- сжатие (zlib)

и наверняка много чего еще...

Автор: warmonger_ 10.4.2008, 15:46
Цитата(archimed7592 @  10.4.2008,  08:58 Найти цитируемый пост)
забудьте - это самоубиство. С++ в принципе тоже

почему?

Автор: archimed7592 10.4.2008, 16:25
Цитата(warmonger_ @  10.4.2008,  15:46 Найти цитируемый пост)
почему? 

С - хотя бы потому что не напишешь "<b>" + str1 + "</b>" и пр. "удобства" этого языка.
С++ - потому что
Цитата(archimed7592 @  10.4.2008,  13:00 Найти цитируемый пост)
Всё остальное целесообразнее будет реализовывать на C#/Java. Дешевле(рабочая сила), проще в поддержке, меньше "неуловимых багов" и т.д. Советую подумать об этом на досуге.

Автор: Lazin 10.4.2008, 16:44
для веб приложений главное не скорость, а масштабируемость - добавил сервер, обслуживаешь больше пользователей.
а С++ для этого не очень подходит(совсем не подходит) С и подавно  smile

Автор: warmonger_ 10.4.2008, 18:10
Цитата(archimed7592 @  10.4.2008,  15:25 Найти цитируемый пост)
С++ - потому что

а для чего тогда нужен С++?

Автор: archimed7592 10.4.2008, 20:01
Чтобы лабы в универе делать smile.

Автор: warmonger_ 10.4.2008, 20:59
Цитата(archimed7592 @ 10.4.2008,  19:01)
Чтобы лабы в универе делать smile.

это конечно смешно, но ты правду говориш?  smile 
мне просто действительно интересно... 

Автор: archimed7592 10.4.2008, 22:59
Эта тема уже до безобразия обсосана. Ну смотри...
1. Толстые клиенты. Здесь просто идёт выбор между C++, Delphi, Java, C# и т.д.
2. Time critical(а точнее resource critical) системы. Хоть для них и важна безсбойность которой проще добиться при помощи Java/C#, не менее важны для них требования к скорости(и др. ресурсам аля память).
3. Low level. Здесь Java с C# немного в пролёте. Ясно и понятно, что дрова или ОС на этих языках - это нонсенс, хоть и есть фанатичные проекты.
4. Middleware - C/C++. Возьми JVM/CLR VM - их тоже нужно на чём-то писать. СУБД. CAD. 3d modelling software. etc.
5. Игры, их движки, rendering engines и другие жоркие на гигаопсы вещи: аналогично - C/C++.

Дальше... Смотрим на отрасль вебдева(а точнее многопользовательских систем, которые вебом не ограничиваются). Есть ряд задач с которыми отлично справляется PHP. Отлично, думает инвестор, зачем мне платить в 10(sic!) раз больше за тот же самый результат? Есть ряд задач для которых больше подходят C#/Java. Когда они перестают справляться нужно спроектировать систему так, чтобы её можно было распараллелить и в сравнении с С++ получают намного большее увеличение производительности добавлением доп. серверов. Дальше идут задачи с которыми справляются только распределённые решения на основе компилируемых языков.

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

The right tool for the right job! Выгравирую эту фразу на золотой табличке и повесь на стену перед собой smile.

Добавлено через 1 минуту и 39 секунд
Цитата(Lazin @  10.4.2008,  16:44 Найти цитируемый пост)
а С++ для этого не очень подходит(совсем не подходит)

Подходит, только достигается это большей кровью, но, раз на идут, то, как правило, осознанно.

Добавлено через 2 минуты и 31 секунду
Вот гугль на это не пошёл, а у них достаточно нагруженная, многогранная и многопользовательская система smile.

Автор: warmonger_ 10.4.2008, 23:25
archimed7592, сэнкс большое. Очень внятный ответ.


Цитата(archimed7592 @  10.4.2008,  21:59 Найти цитируемый пост)
The right tool for the right job!

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

Автор: archimed7592 11.4.2008, 01:08
Цитата(warmonger_ @  10.4.2008,  23:25 Найти цитируемый пост)
Да, но человек же не может быть способен знать весь набор правильного инструмента для любого случая. 

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

Автор: Lazin 11.4.2008, 08:36
вообще если человек уже умеет программировать на Perl - PHP, то оч. глупо без особых оснований использовать то что он не знает...

на изучение C++(до такого уровня на котором он сможет написать web приложение такой-же сложности как и на PHP) уйдет на порядок больше времени, чем на изучение Perl + изучение Php + реализация на одном из них поставленной задачи  smile 

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

Автор: Mephisto 11.4.2008, 10:30
Цитата(ВеутовСергей @  10.4.2008,  11:05 Найти цитируемый пост)
С++ мне необходим для таких задач как написания демонов.. хотя много чего перенести с рнр на плечи с++ необходимо

Если человек хочет писать демоны под юних, то тогда С и в руки. VS к этому никакого отношения не имеет smile
А для вебдева именно С и нужен. Честно говоря не слышал чтоб кто-то на С++ для веб писал, собенно под юниксом. Под винду вообще ничего не слышал ))))
А CGI писаный на С эт милое дело как по мне. Частенько встречается.

Добавлено через 4 минуты и 56 секунд
Цитата(archimed7592 @  11.4.2008,  02:08 Найти цитируемый пост)
В-четвёртых, если речь о проектах крупного масштаба(бюджет > 100 килобаксов), то я почти уверен, что там будет отдельный человек с огромным опытом, который с закрытыми глазами выберет right tool

гыгыгы. Очень сомнительно. Встречал проекты в несколько мегабаксов, но небыло ни человека ни райттула.  smile 

Автор: Mephisto 11.4.2008, 11:01
Объясню немного логику своих рассуждений по сабжу. Естественно смотрю со своей колокольни и совет даю из тех потребностей которые стояли передо мной. smile
Вообще о каком веб девелопменте я говорю...
Чисто административные утилиты:
Сбор информации о системе:
1) Замер сети по определенным направлениям. Открываешь несколько потоков и посылаешь куда нужно ICMP пакеты, ждешь на них ответы и замеряешь время. 
2) Параллельно с первым можно собрать инфу о питании. От чего питается сервак, если упс, то каков заряд аккумулятора и.т.п.
3) Размер свободного жесткого диска, занятость оперативы, загруженность проца, свопа...
4) Опрос таблиц, сколько пакетов прошло из какого направления, по этим данным можно выявить узкое место в маршруте.
Сбор информации по определенным утилитам:
5) Сервак БДи. Если настроен кластер, то снимаешь показания о процессах происходящих в бде. Сколько удачных, неудачных попыток синхронизаций. В помощь будет информация из п.1 ОЧЕНЬ ПОЛЕЗНА!!! Это решает 80% проблем для админа БД.
6) Если на серваке крутятся демоны потокового аудио, средств телекоммуникации и.т.п. Сьем данных с демонов и переработка инфы в HTML. 

Все эти задачи не решаются скриптовыми языками, а вернее решить-то можно, но все-равно из скрипта нужно запустить бинарное приложение и дождаться ответа. Ответ переработать, а это дополнительная трата времени и ресурсов.
Если речь идет о банальных веб мордочках, то это средство ему нафиг не нужно, но человек насколько я помню упомянул слово демон... Значит замышляет что-то более-менее серьезное. 
Насколько я помню демонов нет пд виндой, по сему упоминание VS в этой теме так же не уместно.
Да и запутка есть одна. Топикстартер упомянул вообще винду... Вот тут неясно как может идти речь о каких либо серьезных проектах сетевых и винде?  smile 

Автор: archimed7592 11.4.2008, 11:14
Цитата(Mephisto @  11.4.2008,  11:01 Найти цитируемый пост)
Да и запутка есть одна. Топикстартер упомянул вообще винду... Вот тут неясно как может идти речь о каких либо серьезных проектах сетевых и винде? 

А что мешает программировать под виндой для линуха?

P.S. В Винде есть демоны... Сервисами называются.

Автор: Mephisto 11.4.2008, 11:24
Цитата(archimed7592 @  11.4.2008,  12:14 Найти цитируемый пост)
P.S. В Винде есть демоны... Сервисами называются. 

ага. Только от них толку меньше чем от линуховых как правило. smile Мои виндовые серверные апликухи так и живут. 
Цитата(archimed7592 @  11.4.2008,  12:14 Найти цитируемый пост)
А что мешает программировать под виндой для линуха?

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

Автор: lihusha 29.6.2008, 01:12
Лафоре читать пробовал ? Разжовывает довольно хорошо

Автор: полотенчик 8.5.2009, 03:20
Привет форумчанам!

Сори, что поднимаю тухлый топик, но тема уж больно похожая.

О себе: высокий, спортивного телосложения PHP, perl на уровне (как у ТС)
Хочу: научиться программировать на C++, сначала для фана и собственного развития, а потом глядишь и напишу чего-нить для общества полезное (программу какую опенсурсную).
Расходные материалы: ноут с Debian,  книжеца Г. Шилдта, всякие компиляторы (качал, когда собирал проги из сурсов), куча разных IDE (накачал, чтобы просто посомотреть), руки, глаза, и пр. переферия.

Вопрос: собственно вопрос не сложен, что подскажете новичку, пользоватся  IDE, который создает кучу нужных (и непонятных) файлов, или все-таки сначала разобраться в логике, что-где-откуда, и покомпилить пока при помощи текстового редактора+чистого компиллера?

Спасибо вам! smile 

Автор: александра1987 3.5.2015, 12:17
Модератор: Сообщение скрыто.

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