Здравствуйте, NikeByNike, Вы писали:
NBN>Здравствуйте, gandjustas, Вы писали:
G>>А программа на C++ будет корректировать выделние памяти в зависимости от загруженности компьютера? Конечно нет. NBN>При необходимости? Конечно да!
И каким образом?
G>>И GC не будет. NBN>Потому что не сможет
При необходимости? Конечно сможет, только это не надо никому.
Если память нужна, а её не хватает, то уже надо программу переписывать.
Здравствуйте, COFF, Вы писали:
COF>Здравствуйте, BulatZiganshin, Вы писали:
BZ>>я их и решаю на C++. когда это необходимо. а остальное пишу на хаскеле. учитывая, что >90% кода не нуждается в ассемблерной эффективности, писать всё на С++ — это всё равно что всюду таскать с собой ружьё на случай нападения медведя из ЕР
COF>Вообще, изначально вопрос стоял так — стоит ли учить C++ или C#? Я так понимаю, что все-таки C++?
неправльно понимаешь. C++ это для тех кто хочет заниматься "хардкором" в программировании. Это примерно как в "хардкорных" фильмах про то как четыре негра, размером со шкаф, трахают девушку во все мыслимые и немыслимые отверстия, только в программировании.
Изначально вопрос стоял какой язык учить для дальнейшего развития.
Здравствуйте, gandjustas, Вы писали:
G>Здравствуйте, COFF, Вы писали:
G>Язык C++ не обладает возможностью описать алгоритм на высоком уровне. G>Если не верите, то попробуйте написать алгоритм решения задачи: "вывести на экран все строки текстового файла, в которых более трех слов, отсортированные по алфавиту". G>Причем это долно быть не наколеночное решение, а production-quality код, в котором можно без особых услий убрать условие, или сделать вывод только уникальных строк, или вывод строк через одну.
Здравствуйте, NikeByNike, Вы писали:
NBN>Здравствуйте, BulatZiganshin, Вы писали:
BZ>>читай внимательно. в языках с gc гарантия — на 3x, можно и меньше. в C++ — гарантий никаких, расход может быть каким угодно прсто потому что память усеяна мелкими дырками
NBN>C++ очень универсальный язык Он позволяет писать так как тебе нужно. В частности обеспечить все гарантии по чему хочешь, чем я, кстати, на днях воспользовался.
Я вот тут на днях написал на C# библиотеку для работы с конечными автоматами. Она генерирует в рантайме код автомата по описанию, а потом использует его.
На C++ такое получится?
Здравствуйте, MescalitoPeyot, Вы писали:
MP>Здравствуйте, gandjustas, Вы писали:
G>>Здравствуйте, COFF, Вы писали:
G>>Язык C++ не обладает возможностью описать алгоритм на высоком уровне. G>>Если не верите, то попробуйте написать алгоритм решения задачи: "вывести на экран все строки текстового файла, в которых более трех слов, отсортированные по алфавиту". G>>Причем это долно быть не наколеночное решение, а production-quality код, в котором можно без особых услий убрать условие, или сделать вывод только уникальных строк, или вывод строк через одну.
MP>А чем C# на этой задаче лучше?
Linq + yield
Можете запостить сюда код решения на C++
Здравствуйте, gandjustas, Вы писали:
G>неправльно понимаешь. C++ это для тех кто хочет заниматься "хардкором" в программировании. Это примерно как в "хардкорных" фильмах про то как четыре негра, размером со шкаф, трахают девушку во все мыслимые и немыслимые отверстия, только в программировании.
Здравствуйте, gandjustas, Вы писали:
NBN>>C++ очень универсальный язык Он позволяет писать так как тебе нужно. В частности обеспечить все гарантии по чему хочешь, чем я, кстати, на днях воспользовался. G>Я вот тут на днях написал на C# библиотеку для работы с конечными автоматами. Она генерирует в рантайме код автомата по описанию, а потом использует его. G>На C++ такое получится?
Я тут на днях написал программку которая сейчас находится топе5 продаж.
P.S.
Я не понял — ты хочешь длинной померяться? Так сразу и говори
Здравствуйте, gandjustas, Вы писали:
G>Не надо в качестве примера приводить плохо написанные программы на .NET или java, плохо написанных программ на С++ все равно больше.
Здравствуйте, NikeByNike, Вы писали:
NBN>Здравствуйте, gandjustas, Вы писали:
NBN>>>C++ очень универсальный язык Он позволяет писать так как тебе нужно. В частности обеспечить все гарантии по чему хочешь, чем я, кстати, на днях воспользовался. G>>Я вот тут на днях написал на C# библиотеку для работы с конечными автоматами. Она генерирует в рантайме код автомата по описанию, а потом использует его. G>>На C++ такое получится?
NBN>Я тут на днях написал программку которая сейчас находится топе5 продаж.
Продажи к свойствамя языка никакого отношения не имеют.
NBN>P.S. NBN>Я не понял — ты хочешь длинной померяться? Так сразу и говори
Не хочу меряться, хочу показать что на С++ далеко не все можно сделать с трудозатратами сравнимыми с управляемым языком.
Здравствуйте, niellune, Вы писали:
N>Здравствуйте! Нужен ваш совет)) N>Дело в том что мне нравится язык C++ и меня интересует есть ли сейчас возможность устроиться куда-нибудь на начальную позицию? N>В каких областях сейчас применяется C++?
Везде, куда ни кинь, просто где-то чаще, где-то реже. И положение ещё долго не изменится, хотя история похорон C++ насчитывает едва ли не больше времени, чем история его развиия.
N>Может легче сначала пойти на С#, а потом перейти на С++ или сразу искать вакансии С++ N>Просто мне кажется, что объем знаний С++ требуется гораздо больший, а хочется работать и набираться опыта..
Тут дело вот в чём: на C/C++ так или иначе реализовано практически всё, с чем ты работаешь, от Web-серверов до компиляторов. Но это не означает, что заняв вакансию C++-разработчика тебе понадобится весь тот же багаж знаний, который нужен, скажем, разработчику компилятора. И следовательно, это не означает, что эти самые знания у тебя появятся по ходу работы: работа на С++ тоже может оказаться унылой и монотонной. Больше того, тебе могут запретить использовать даже какие-то аспекты C++ (встречается и такая альтернативная одарённость).
N>У меня есть опыт работы на php, причем не только web, а еще что-то вроде создания системы документооборота) N>Но php мне уже мало и он мне порядком надоел, хочется развиваться дальше.
Развиваться — куда?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, gandjustas, Вы писали:
NBN>>Я тут на днях написал программку которая сейчас находится топе5 продаж. G>Продажи к свойствамя языка никакого отношения не имеют.
Имеют достаточно прямые. На яве и шарпе нельзя написать качественный продукт удовлетворяющий требованиям
NBN>>Я не понял — ты хочешь длинной померяться? Так сразу и говори G>Не хочу меряться, хочу показать что на С++ далеко не все можно сделать с трудозатратами сравнимыми с управляемым языком.
Ага, можно сделать очень клёвую, но никому не нужную феньку (не удовлетворяет клиента) — это да
Здравствуйте, NikeByNike, Вы писали:
NBN>Ага, а в задачу входит создание красивого, быстрого и кроссплатформенного кода и софта — это решаемо _только_ на С++. Даже ущербный С с этим не спрвится.
Любая встравиваемая real-life JVM — это только C.
Телефонный софт (OS, стандартные приложения) — только C.
Здравствуйте, gandjustas, Вы писали:
G>>GC не собирает память пока это никому не мешает, как только заполнится первое поколение — сразу же уберет, а то что не успел удбрать — сложит в другое полколение. G>>Вот так и с дворником — пока мусор никому не мешает, он его убирать не будет, перед тем как кому-то он сможет помешать — сразу же уберет.
Я вчера решил помониторить сборку xmlrpc для .Net (http://www.xml-rpc.net/). В общем, на каждый вызов метода через XML-RPC (метод принимает два параметра и возвращает бинарник на ~200Kb) происходит 3 вызова сборщика мусора (мониторил ProcessExplorer'ом). Я на перформанс даже тестировать не стал...
Здравствуйте, BulatZiganshin, Вы писали:
BZ>в языках без gc расход памяти меньше в краткосрочном плане. а вот когда память выделяется, возвращается, снова выделяется — ты получаешь фрагментированную память и ничего с ней не поделаешь. поэтому для таких программ GC выгодней — есть хоть гарантии что расход памяти будет не более чем в три раза выше, нежели реальное использование. в c++ гарантий никаких
Для избавления от фрагментации памяти примеются специальные аллокаторы/менеджеры с пулами. Например в Delphi, c версии 2006 идет FastMM:
Description:
A fast replacement memory manager for CodeGear Delphi Win32 applications that
scales well under multi-threaded usage, is not prone to memory fragmentation,
and supports shared memory without the use of external .DLL files.
Здравствуйте, BulatZiganshin, Вы писали:
BZ>Здравствуйте, COFF, Вы писали:
COF>>Именно, стали продавать писюки с макос. Называются imac и ibook Их доля хотя сравнительно невелика, но постоянно растет. Маки стали продавать в обычных компьютерных магазинах типа Кея в Питере, раньше такого не было.
BZ>и конечно, в этом виноват C#, а не таланты Джобса
Талантами Джобса Apple сидел на PowerPC пока не стало 100% ясно, что если так будет продолжаться, то они совсем рынок потеряют.
Так что талант тут может и не причем, может просто в этот раз M$ слажал.
Здравствуйте, alsemm, Вы писали:
NBN>>Ага, а в задачу входит создание красивого, быстрого и кроссплатформенного кода и софта — это решаемо _только_ на С++. Даже ущербный С с этим не спрвится. A>Любая встравиваемая real-life JVM — это только C. A>Телефонный софт (OS, стандартные приложения) — только C.
Это далеко не так, хотя этой нечисти там действительно хватает
Здравствуйте, gandjustas, Вы писали:
G>Ну покажите примеры программ на десктопе которые тормозят и жрут память?
О-о-о! Их есть у меня Это чудо называется Creative Docs .NET. После запуска, без открытого документа, мило кушает 192 метра + виртуалки в районе 180 (по показаниям ProcessExplorer'a). Скорость работы с документом тоже потрясная: при скроллинге сперва прокручиваются линейки, а потом, неспешно, за ними ползет содержимое документа. Терпения хватает только на посмотреть. PM 1.7 512Mb NVidia GeForceFX Go5200.
G>Я постоянно пользуюсь двумя десктомпными программами на .NET : paint.NET и Windows Live Writer, ни одна из них не тормозит и не жрет память.
Эти у меня тоже есть, к слову сказать WLW тормоз порядочный при его-то скромном функционале, а Paint.NET'ом я вообще не пользуюсь
Здравствуйте, NikeByNike, Вы писали:
NBN>Здравствуйте, gandjustas, Вы писали:
NBN>>>Я тут на днях написал программку которая сейчас находится топе5 продаж. G>>Продажи к свойствамя языка никакого отношения не имеют. NBN>Имеют достаточно прямые. На яве и шарпе нельзя написать качественный продукт удовлетворяющий требованиям
Черт, а я писал, наверное не так что-то делал.
Здравствуйте, hattab, Вы писали:
H>Здравствуйте, gandjustas, Вы писали:
G>>>GC не собирает память пока это никому не мешает, как только заполнится первое поколение — сразу же уберет, а то что не успел удбрать — сложит в другое полколение. G>>>Вот так и с дворником — пока мусор никому не мешает, он его убирать не будет, перед тем как кому-то он сможет помешать — сразу же уберет.
H>Я вчера решил помониторить сборку xmlrpc для .Net (http://www.xml-rpc.net/). В общем, на каждый вызов метода через XML-RPC (метод принимает два параметра и возвращает бинарник на ~200Kb) происходит 3 вызова сборщика мусора (мониторил ProcessExplorer'ом). Я на перформанс даже тестировать не стал...