| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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++ чего еще, по сему и создавал этот пост. ООП знаю на достаточном уровне. Паттерны, дизайн, подобное.
Всегда готов |
| Автор: archimed7592 10.4.2008, 09:58 |
| Тогда примерно так: 0. Про С забудьте - это самоубиство. С++ в принципе тоже, но раз Вы рвётесь в бой, то дальнейшие пункты касательно именно С++. 1. Изучить основы языка, синтаксис. Классически советуют Страуструпа. Я не знаю чё посоветовать(из того, что встречал ничего не понравилось), но больше склонюсь к Шилдту. 2. Освоить какой-нибудь фреймворк, причём, немаловажно, чтобы он был кроссплатформенным(если, конечно, твои web-приложения не будут ориентированы на конкретную платформу). Нужен этот фреймворк т.к. в повседневных webdev'овских задачах требуется много того, чего не предоставляет Стандартная библиотека. 3. Ознакомиться со спецификацией CGI. 4. Можно смело начинать писать "гостевую книгу"(или что Вам больше нравится из простенького) на С++. |
| Автор: ВеутовСергей 10.4.2008, 10:05 |
| Для начала мне нужно понять какой компилятор выбрать для начала (пока под винду) С++ мне необходим для таких задач как написания демонов.. хотя много чего перенести с рнр на плечи с++ необходимо |
| Автор: ВеутовСергей 10.4.2008, 10:34 | ||
Задач много, всех и не вспомнишь. К примеру демоны, сервис онлайн служб поддержки, потоковая передача данных (минуя способ Запрос-> ответ), решение мелких задач кассательно файловой системы. Работы много. За совет спасибо |
| Автор: archimed7592 10.4.2008, 13:00 | ||
Ага, поддерживаю... С сайта Microsoft можно скачать бесплатную express версию - для начала вполне хватит.
Насчёт демонов не знаю, зависит от их предназначения, возможно там С/С++ и уместен. Всё остальное целесообразнее будет реализовывать на C#/Java. Дешевле(рабочая сила), проще в поддержке, меньше "неуловимых багов" и т.д. Советую подумать об этом на досуге |
| Автор: ВеутовСергей 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, 16:25 |
С - хотя бы потому что не напишешь "<b>" + str1 + "</b>" и пр. "удобства" этого языка. С++ - потому что |
| Автор: Lazin 10.4.2008, 16:44 |
| для веб приложений главное не скорость, а масштабируемость - добавил сервер, обслуживаешь больше пользователей. а С++ для этого не очень подходит(совсем не подходит) С и подавно |
| Автор: warmonger_ 10.4.2008, 18:10 |
а для чего тогда нужен С++? |
| Автор: archimed7592 10.4.2008, 20:01 |
| Чтобы лабы в универе делать |
| Автор: warmonger_ 10.4.2008, 20:59 | ||
это конечно смешно, но ты правду говориш? мне просто действительно интересно... |
| Автор: 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! Выгравирую эту фразу на золотой табличке и повесь на стену перед собой Добавлено через 1 минуту и 39 секунд Подходит, только достигается это большей кровью, но, раз на идут, то, как правило, осознанно. Добавлено через 2 минуты и 31 секунду Вот гугль на это не пошёл, а у них достаточно нагруженная, многогранная и многопользовательская система |
| Автор: warmonger_ 10.4.2008, 23:25 |
| archimed7592, сэнкс большое. Очень внятный ответ. Да, но человек же не может быть способен знать весь набор правильного инструмента для любого случая. И тут предстоит выбор... |
| Автор: archimed7592 11.4.2008, 01:08 | ||
Ну, во-первых, программисту вообще не нужно этого знать(он может, но не обязан... лучше пусть знает что-то одно, но хорошо). Во-вторых, для выбора достаточно знать лишь поверхностно... так сказать спектр решаемых задач. В-третьих, у любого проекта есть стадия исследования предметной области - на этом этапе можно определиться с инструментом и, либо начать поиск кадров, либо начать "прокачивать" существующие(в т.ч. себя В-четвёртых, если речь о проектах крупного масштаба(бюджет > 100 килобаксов), то я почти уверен, что там будет отдельный человек с огромным опытом, который с закрытыми глазами выберет right tool |
| Автор: Lazin 11.4.2008, 08:36 |
| вообще если человек уже умеет программировать на Perl - PHP, то оч. глупо без особых оснований использовать то что он не знает... на изучение C++(до такого уровня на котором он сможет написать web приложение такой-же сложности как и на PHP) уйдет на порядок больше времени, чем на изучение Perl + изучение Php + реализация на одном из них поставленной задачи этот язык очень сложен, чувак понятия не имеет о многих вещах с которыми ему придется иметь дело, так как до этого программировал только на скриптовых языках |
| Автор: Mephisto 11.4.2008, 10:30 | ||||
Если человек хочет писать демоны под юних, то тогда С и в руки. VS к этому никакого отношения не имеет А для вебдева именно С и нужен. Честно говоря не слышал чтоб кто-то на С++ для веб писал, собенно под юниксом. Под винду вообще ничего не слышал )))) А CGI писаный на С эт милое дело как по мне. Частенько встречается. Добавлено через 4 минуты и 56 секунд
гыгыгы. Очень сомнительно. Встречал проекты в несколько мегабаксов, но небыло ни человека ни райттула. |
| Автор: Mephisto 11.4.2008, 11:01 |
| Объясню немного логику своих рассуждений по сабжу. Естественно смотрю со своей колокольни и совет даю из тех потребностей которые стояли передо мной. Вообще о каком веб девелопменте я говорю... Чисто административные утилиты: Сбор информации о системе: 1) Замер сети по определенным направлениям. Открываешь несколько потоков и посылаешь куда нужно ICMP пакеты, ждешь на них ответы и замеряешь время. 2) Параллельно с первым можно собрать инфу о питании. От чего питается сервак, если упс, то каков заряд аккумулятора и.т.п. 3) Размер свободного жесткого диска, занятость оперативы, загруженность проца, свопа... 4) Опрос таблиц, сколько пакетов прошло из какого направления, по этим данным можно выявить узкое место в маршруте. Сбор информации по определенным утилитам: 5) Сервак БДи. Если настроен кластер, то снимаешь показания о процессах происходящих в бде. Сколько удачных, неудачных попыток синхронизаций. В помощь будет информация из п.1 ОЧЕНЬ ПОЛЕЗНА!!! Это решает 80% проблем для админа БД. 6) Если на серваке крутятся демоны потокового аудио, средств телекоммуникации и.т.п. Сьем данных с демонов и переработка инфы в HTML. Все эти задачи не решаются скриптовыми языками, а вернее решить-то можно, но все-равно из скрипта нужно запустить бинарное приложение и дождаться ответа. Ответ переработать, а это дополнительная трата времени и ресурсов. Если речь идет о банальных веб мордочках, то это средство ему нафиг не нужно, но человек насколько я помню упомянул слово демон... Значит замышляет что-то более-менее серьезное. Насколько я помню демонов нет пд виндой, по сему упоминание VS в этой теме так же не уместно. Да и запутка есть одна. Топикстартер упомянул вообще винду... Вот тут неясно как может идти речь о каких либо серьезных проектах сетевых и винде? |
| Автор: archimed7592 11.4.2008, 11:14 | ||
А что мешает программировать под виндой для линуха? P.S. В Винде есть демоны... Сервисами называются. |
| Автор: Mephisto 11.4.2008, 11:24 |
ага. Только от них толку меньше чем от линуховых как правило. Удобно только в том что среда вкуснее. Под линухой мне за глаза хватает KDevelop, еще б автозавершение кода прикрутить, тогда я б не понял зачем программировать под виндой для линуха, если можно сразу на нем писать. |
| Автор: lihusha 29.6.2008, 01:12 |
| Лафоре читать пробовал ? Разжовывает довольно хорошо |
| Автор: полотенчик 8.5.2009, 03:20 |
| Привет форумчанам! Сори, что поднимаю тухлый топик, но тема уж больно похожая. О себе: высокий, спортивного телосложения PHP, perl на уровне (как у ТС) Хочу: научиться программировать на C++, сначала для фана и собственного развития, а потом глядишь и напишу чего-нить для общества полезное (программу какую опенсурсную). Расходные материалы: ноут с Debian, книжеца Г. Шилдта, всякие компиляторы (качал, когда собирал проги из сурсов), куча разных IDE (накачал, чтобы просто посомотреть), руки, глаза, и пр. переферия. Вопрос: собственно вопрос не сложен, что подскажете новичку, пользоватся IDE, который создает кучу нужных (и непонятных) файлов, или все-таки сначала разобраться в логике, что-где-откуда, и покомпилить пока при помощи текстового редактора+чистого компиллера? Спасибо вам! |
| Автор: александра1987 3.5.2015, 12:17 |
Модератор: Сообщение скрыто. |