Мои 5 копеек:
M>Здравствуйте, Lorenzo_LAMAS, Вы писали: M>1. С++ — это кошмар. Писать на нём не стоит ни при каких обстоятельствах. Есть исключения, но нужно стараться избегать всегда. Причины: M> А) разделение на .h и .cpp — это не от хорошей жизни. Читаемость программы ухудшается.
Дык можно и не разделять
M> Б) всё время приходится думать о памяти. Причём если о ней не думать специально, то программа будет работать медленнее, чем аналог на С#.
Если тебе нравятся когда думают за тебя (как ява и шарп) — пользуйся сторонними библиотеками. практически все что можно обернуть уже "обернуто" — только пользуйся.
и вообще чем память в яве/шарпе хуже лучше чем в сях? нисмотря ни на что это таже самая память!
M> B) IntelliSence работает кое-как. А без него я уже и жить не могу. Те, кто пишет в emacs — это либо мазохисты, либо студенты.
в 2003 студии все ок с ним. я работал в IDях явовских где CodeCompletion мог довести до белого каления своими тормозами. Особенно в IDиях написанных на яве
M> Г) COM и CORBA — это отстой. И Java и .NET имеют намного более удобную компонентную модель.
с++ и сом — разные вещи. корба имеет к сям такое же отношение как и ява
M> Д) WinAPI — один из самых отвратных api, который я когда-либо видел.
где тут про с++?
M> Е) Работа со строками — это .............. Поубивал бы.
Блин, а CString на что придумали?
Вообще странно читать про C++ые отличия от явы и шарпа, когда все что есть в тех языках полезного (сборщик мусора, строки да все что угодно) есть и для сей с не меньшим удобством! вообще разница только одна (только ее никто не желает видеть) — Си это просто язык, а ява и шарп — язык с инфраструктурой (с готовыми модулями на все случаи жизни). Все!!!! причем для сей этих модулей есть и больше и лучше!
Здравствуйте, Mishka, Вы писали:
M>Фиг с OS/2, мы для NHS писали, так у них до сих пор половина вещей на фортране написана. Менять не будут, поскольку уж быстро шибко всё бегает
Вот видишь! Ты и сам всё прекрасно понимаешь.
Будучи pro, ты с принципом KISS знаком, конечно же. Но это только лишь техническая сторона вопроса, финансовая же сторона — дело совершенно другое, суеты и шума чурающееся.
Поначалу я, помню, сильно удивлялся, беседуя с их среднего уровня боссами, как же так, ведь можно пару миллионов сэкономить. Мне с понимающей улыбкой было сказано, что, мол, не суетись, цена вопроса такова, что очередь его рассмотрения наступит примерно через пару лет. А вы пока всё как следует проверьте.
У меня опыт писания на Java/C++, и не один год, если это важно.
И то и другое нравится вполне, но больше нравится С++.
В Java не все так замечательно, в основном из-за GC, не даром народ извращается со всякими recycle-ами (лично видел в коде Cocoon-а).
Коробит еще, что все RuntimeException-based ексепшены можно не декларировать в throws(...).
Да и еще чудеса всякие есть не сильно симпатичные.
C++ нравится больше может из-за того, что я с него начинал.
В том, что есть разделение на cpp/h не вижу ничего плохого, наоборот: глядя в h вижу только интерфес не загроможденный деталями реализации, если охота ковыряться, ныряю в cpp.
В C++ порог вхождения выше чем в Java, думать больше и лучше надо, пусть не всегда о предеметной области. Но это только на пользу мозгам.
Уродцев наплодить можно как на Java так и на C++. На C++ уродец конечно ужаснее выглядит
PS А что все кто в России за 800$ работает глупые на самом деле?
Здравствуйте, Mishka, Вы писали:
M>Здравствуйте, Lorenzo_LAMAS, Вы писали:
L_L>>Да мне это не было интересно. Ты так и не понял.
M>Я понял, что разговариваю с недавним выпускником универа, работающим программистом С++, где-то может быть за 800 баксов и думающим, что он умён, но почему-то всё ещё беден.
M>Ты защищаешь язык С++, а я говорю, что он отстой. Ты не можешь привести контрпримеров, поскольку больше ни на чём не писал, а у меня есть опыт работы с разными средствами разработки, и потому если бы ты был мудр, то постарался бы меня понять, с чего это я вдруг влез в этот флейм.
Здравствуйте, Mishka, Вы писали:
M>SUN — даже не знаю как её назвать, кроме Solaris и спецификации Java, ничего особенного они не производят, и потому терпят постоянные убытки.
А они разве деньги не от продажи серваков получают?
И разве терпят убытки?
(это вопрос, а не наезд)
... << RSDN@Home 1.1.3 stable >>\n Это не наезды, это вопросы. И вообще, над ламерами смеяться грешно.
(ц не наезд, це вопрос ничего не понимающего второкурсника)
А почему нужно думать над такой фигнёй, как утечка памяти, если есть возможность думать над более интересными вещами?
... << RSDN@Home 1.1.3 stable >>\n Это не наезды, это вопросы. И вообще, над ламерами смеяться грешно.
Здравствуйте, Mishka, Вы писали:
M>Позволь предположить — ты недавний выпускник универа, пишущий на С++, и занимающийся только им. Ты также любишь Linuх, и открытые проекты. Ты мечтаешь всю жизнь писать на С++, и до сих пор пытаешься ответить на вопрос "почему я такой бедный, если я такой умный". Угадал?
[flame]Неужели мне грозит то же самое?..[/flame]
... << RSDN@Home 1.1.3 stable >>\n Это не наезды, это вопросы. И вообще, над ламерами смеяться грешно.
L_L>>Да, потому что в C++ ты ДОЛЖЕН думать.
A>(ц не наезд, це вопрос ничего не понимающего второкурсника) A>А почему нужно думать над такой фигнёй, как утечка памяти, если есть возможность думать над более интересными вещами?
По той же причине, по которой ты штаны застегиваешь после WC
Здравствуйте, alsemm, Вы писали:
A>По той же причине, по которой ты штаны застегиваешь после WC
А если есть возможность автоматизировать процесс?
ИМХО, если в реале обвешиваться автозастёгивательницами проблематично, то в РС всё решается увеличением объёма оперативы...
... << RSDN@Home 1.1.3 stable >>\n Это не наезды, это вопросы. И вообще, над ламерами смеяться грешно.
Здравствуйте, Astaroth, Вы писали:
A>Здравствуйте, alsemm, Вы писали:
A>>По той же причине, по которой ты штаны застегиваешь после WC A>А если есть возможность автоматизировать процесс? A>ИМХО, если в реале обвешиваться автозастёгивательницами проблематично, то в РС всё решается увеличением объёма оперативы...
Не все приложения для PC пишутся. MIDLet-ы вот на java пишут, но тем не менее про память думать приходится. Мне встречался код просто унизанный вызовами System.gc(), потому что людям память нужна сдесь и сейчас а не завтра и потом.
Вообще говоря, не все приложения это ширпотреб, есть вещи типа OC, IDE, компиляторов, VM-ов, браузеров и прочей дряни которая как писалась на C /С++, так и дальше на них писаться будет.
Здравствуйте, LaptevVV, Вы писали:
LVV>Не правда ваша! Предметная область и 30 лет назад была предметной областью, однако ОО тогпа не было. А сейчас и там, где ОО не нужна — его (ее?) туды присобачивают!
Дык и я об этом.. Не было бы предметной области, куда бы ты ООП присобачивал?
Здравствуйте, alsemm, Вы писали:
A>MIDLet-ы вот на java пишут, но тем не менее про память думать приходится. Мне встречался код просто унизанный вызовами System.gc(), потому что людям память нужна сдесь и сейчас а не завтра и потом.
Дык.
Сделайте так, чтобы в С++ можно было тихо прибить все утечки одним вызовом — и всё будет отлично
ИМХО, вызов System.gc() отвлекает от написания чего-то более серьёзного заметно меньше, чем постоянное слежение за тем, чтобы не утекала память.
Может я, конечно, чего и недопонимаю, но прочтя всю ветку, я не увидел ни одного фундаментального "лучше" относительно C++. Были, правда, фундаментальные "быстрее", но ведь это вроде разные вещи...
Это не наезды, это вопросы. И вообще, над ламерами смеяться грешно.
Здравствуйте, Astaroth, Вы писали:
A>Здравствуйте, alsemm, Вы писали:
A>>MIDLet-ы вот на java пишут, но тем не менее про память думать приходится. Мне встречался код просто унизанный вызовами System.gc(), потому что людям память нужна сдесь и сейчас а не завтра и потом.
A>Дык. A>Сделайте так, чтобы в С++ можно было тихо прибить все утечки одним вызовом — и всё будет отлично
Может тебе тогда уж сразу компонент TProgrammer предоставить ?
A>ИМХО, вызов System.gc() отвлекает от написания чего-то более серьёзного заметно меньше, чем постоянное слежение за тем, чтобы не утекала память.
Нет уж дудки, если после того как все написано, приходится впихивать System.gc() чтоб полегчало (не факт, что полегчает), то это едва-ли лучшая альтернатива явного управления памятью.
A>Может я, конечно, чего и недопонимаю, но прочтя всю ветку, я не увидел ни одного фундаментального "лучше" относительно C++. Были, правда, фундаментальные "быстрее", но ведь это вроде разные вещи...
Не лучше и не хуже. Для каждого языка задчки свои найдутся.
M>Я понял, что разговариваю с недавним выпускником универа, работающим программистом С++, где-то может быть за 800 баксов и думающим, что он умён, но почему-то всё ещё беден.
Ну насмешил
Обычно в таком тоне говорят low-кодеры покинувшие страны соцлагеря в надежде работать на птичьих правах в EU/USA.
Если ехать за границу, то уж ни как не в UK и не USA, а в Japan и не на долбаные 80K/yr, а на нормальные деньги
В Москве имея 2-3K в месяц вполне можно обзавестись хорошей подругои, хорошо попивать хорошую водку, жить в родной стране и радоваться жизни, а ехать на 50-80K/yr да еще и в долбаные страны без всякой экзотики как в японии, а так, эмигрантишкой в европке — это из серии "я типа самый умный, всех перехитрю"
За границей имеет смысл не програмить, а либо делать совместный с Россией бизнес либо делать науку.
Проблема-то простая — в Москве купив например машинку за 10-15К я чувствую себя не на самом дне, в штатах же на такую б/у-шку разве что латиносы позарятся.
Положение в обществе это ведь дело относительное
Так что умным себя не считай — глуп и беден ты, но не переживай, если еще не стар — на родину всегда можно вернуться
Здравствуйте, itman, Вы писали:
I>Java vs C++, пардон, задолбали уже апологеты джавы доказывать, что джава может быть быстрее, чем плюсы. I>Вот, например, типичный образец I>http://www.sys-con.com/story/?storyid=45250
Сама постановка вопроса не верна. Java и C++ — это языки программирования. Быстрее они быть не могут. Конкретные компиляторы — да. Но не языки.
В принципе если взять медленные плюсовые компиляторы и сравнить их с последними версиями хор-спота, то при определенных условиях можно получить выигрыш в скорости. Так же выигрыш можно получить если сравнивать отдельные классы. На С++ есть много бездарно реализованных классов.
В целом лучшие компиляторы С++ порождают более быстрый код. Но разница в 2-3 раза. Не более. Так что она с лихвой может быть компенсирована увеличением качества алгоритмов. Возможности по оптимизации в С++ несомненно больше. В прочем, это не бесплатно. Сложность отладки и сопровождения тоже денег стоят.
I>Во-первых, ежу понятно, что JIT да еще и с профайлером может иногда работать быстрее, чем скомпилированный, но непрофилированный и слабо оптимизированный C код!!! Нативный код, ё-моё, не хухры-мухры. Особенно в простых случаях. Но нет же это преподносится, как "открытие". Вот бы посмотреть на результаты на фоне работы Garbage Collector'а Вот тогда мы похохочем...
Как раз проблема в том, что лучшие оптимизирующие компиляторы пораждают очень качественный код и джит из-за своей рантймности и откровенно более слабой команды его разработки проигрывает в этом деле. ЖЦ занимает сущие копейки на большинстве задач. А вот связанные с ним потери вроде write barrier-а могут очень нихило замедлять код часто изменяющий ссылки на объекты. В новой версии дотнета проблема почти решена. Но в современном дотнете и в яве она остается. Другое дело, что в реальном коде чтеи обычно значительно превосходит запись. И проблема сглаживается.
I>ПЫСЫ: кстати, меня подобными результатами "пытал" недавно мой друг — любитель Джавы, так я первый попавшийся код почти сходу прооптимизировал так, что он стал в 1.5 раза быстрее работать.
1.5 даже напрягаться не не нужно. Ты вот попробуй за 3 выйди.
... << RSDN@Home 1.1.4 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Посмотрел внимательно на тесты. Как я и говорил меряют скорость разный по реализации классов. Т.е. меряют алгоритмы, а сравнивают языки!
Простой пример. Есть два теста где хотспот резко вырвался вперед — это вызов метода и Hash.
Ну, вызов метода — это просто чушь, так как реально его замерить невозможно. В простых случаях оптимизация ломает все результаты, а в сложных вызов метода ни на что не влияет.
Возмем второй тест — Hash. Под ним как не странно скрывается поиск (лукап) текстовой строки в некой коллекции.
Так вот в Яве в качестве коллекции был выбран класс HashMap, а в С++ hash_map. Как реализован hash_map .
Далее измерялось полное время работы приложения, в том числе и перевод целых всроки. Ну, и ничего умнее чем использовать sprintf для перевода числа в строку не нашлось.
... << RSDN@Home 1.1.4 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Lorenzo_LAMAS, Вы писали:
L_L>Ок. Ты — как испорченный телефон. Тогда теперь моя очередь:
Mishka конечно не прав переходя на личности. Но вот я могу без обиняков ответить на твои вопросы:
L_L>Тебе сколько лет?
30
L_L>Сколько лет ты писал на С++ ?
10
L_L>Что написал?
Два относительно сложных проекта.
L_L>Работало?
Да.
L_L>Если нет, то почему?
Работало но какой цено? Чтобы контролировать память пришлось написать собственную систему контроля памяти. Тандем КОМ, С++ и ВынАПИ привел к тому, что найти концы стандартными средствами было невозможно. Ни баундчекеры, ни встроенная в МС ЦРТ ликаловка не спасали. А программисты то над проектом работали довольно опытные и высокоскильные.
Дале компонентная модель. В С++ ее нет. Приходится использовать КОМ, а КОМ в С++ — это трах. Чтобы сделать примитивные вещи нужно быть гуру.
Далее библиотеки. Есть 20 разных способов решить многие задачи, но почти каждый имеет свои проблемы. Стандартов практически нет. Даже СТЛ и та только сейчас подошла к какой-то зрелости. А ведь языку уже 15 лет!
Далее отладка. Малейшая неточность может привести к суровой многодневной отладке. Начинашь боясться всего писать в ифах константы слева, оборачивать все подряд, ну, и т.е. И все равно дипобезопасность храмает. Без приведений типов не обойтись, и каждое из них может привести к ошбке.
В общем, и так до потери пульса. И после этого всего ты получаешь интсрумент в котором все гладко, разумно и просто. Все проблемы С++ растворяются и ты пожешь наконец-то расслабиться и начать писать код решающий задачу.
... << RSDN@Home 1.1.4 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, alsemm, Вы писали:
A>В C++ порог вхождения выше чем в Java, думать больше и лучше надо, пусть не всегда о предеметной области. Но это только на пользу мозгам.
Вот это и наталкивает на размылшение о молодости (не обижайся я не наезжаю). Просто видавим виды тренировать мозги уже не очень охота. Для меня как раз самым плохим в С++ является распыление сил. Программируя на С++ моя производительность падает в 20 раз. А производительность кода почти не падает. Правда я Яве предпочитаю дотнет. Но не суть.
A>PS А что все кто в России за 800$ работает глупые на самом деле?
Согласен. Плохой критерий.
... << RSDN@Home 1.1.4 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.