| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Религиозные войны > неужели с++ настолько плох?( |
| Автор: limelight 4.3.2010, 10:17 |
| http://forum.vingrad.ru/forum/topic-293163/kw-%D0%BB%D0%B8%D1%82%D0%B5%D1%80%D0%B0%D1%82%D1%83%D1%80%D0%B0.html |
| Автор: mrbrooks 4.3.2010, 10:24 | ||
относительно чего? |
| Автор: jhonyxakep 4.3.2010, 11:24 |
| limelight, во 1 это не тема... Во 2 каждый выбирает свой язык, и в 4 наконец наконец |
| Автор: Lazin 4.3.2010, 11:28 |
он никогда не был языком высокого уровня, если на то пошло, я могу его воспринимать как язык низкого уровня - альтернативу Си, но не как альтернативу питону или хаскелю - языкам высокого уровня |
| Автор: andrew_121 4.3.2010, 11:39 |
| limelight, чела просто развели. у Lazin`а есть хобби, вызывать НЕ желание учить с++. таким образом он избавляется от конкурентов. вот |
| Автор: jhonyxakep 4.3.2010, 11:46 | ||
Вообщето это звучит наоборот
|
| Автор: MAKCim 4.3.2010, 13:23 |
| в принципе да, если программа может упасть в корку, то это не ЯП высокого уровня |
| Автор: kemiisto 4.3.2010, 13:43 |
C++ плох безотносительно. Пацанчик, а ты чё такой дерзкий!? |
| Автор: Ozerich 4.3.2010, 13:53 |
| Это не развод, просто человек мнение своё сказал. В целом я согласен, но знание С++ будет полезным всегда |
| Автор: kemiisto 4.3.2010, 14:01 | ||
Это заблуждение. Лишние и бесполезные знания существуют.
|
| Автор: RatHat 4.3.2010, 14:18 |
| трололололололо |
| Автор: Alexeis 4.3.2010, 14:41 |
В этом смысле язык С ни на что не претендует. Поэтому более грамотно использовать связку "С" + язык высокого уровня. На С писать трудно объемные проекты, поэтому хочешь не хочешь начнешь разделять задачи. А вот С++ имеет замашки на высокий уровень, от того трудно остановиться, и можно запросто браться и реализовывать сложные вещи. В результате имеем насилие над языком. Нужно создавать компиляторы исключительно для языка С, чтобы физически не получалось использовать возможности С++ или смешивать С с С++. |
| Автор: jhonyxakep 4.3.2010, 15:06 |
| Автор: Lazin 4.3.2010, 15:10 | ||
ничего подобного, использовать связку - костыль, правильный язык программирования в таком костыле нуждаться не должен. Например OCaml и Haskell - вполне могут соперничать с С++ по производительности генерируемого кода, особенно OCaml. |
| Автор: jhonyxakep 4.3.2010, 15:11 | ||
Lazin, не выражайся.... |
| Автор: Lazin 4.3.2010, 15:22 |
| jhonyxakep, не тупи... |
| Автор: GoldFinch 4.3.2010, 15:56 | ||
для тех задач которые может решить OCaml или Haskell - это может и так. но есть большое количество задач, которые может решить низкоуровневый С++, а эти языки не могут вообще. скажем задачи низкоуровневого системного программирования - взаимодействие с ОС, с памятью. |
| Автор: Lazin 4.3.2010, 16:00 | ||
| примерно пол года назад видел статью о написании модуля ядра на Haskell Добавлено через 1 минуту и 1 секунду
кстати в этом и есть назначение С++, просто его обычно используют для написания прикладного софта, что не очень правильно |
| Автор: Alexeis 4.3.2010, 16:10 | ||
Дело не только в скорости, но и во взаимодействии с устройствами, с драйверами, в конце концов сами драйверы. |
| Автор: W4FhLF 4.3.2010, 16:41 |
| Lazin, а какой прикладной софт ты сегодня можешь написать на OCaml или Haskell? Для них есть библиотеки уровня boost/Qt? Развитые средства программирования, IDE, отладчики? Ну т.е. я правда интересуюсь, ибо не знаю просто. |
| Автор: mes 4.3.2010, 16:45 | ||||
если он не дотягивает до Хаскеля, то это не значит что он не высокоуровневый, тем более что к ЯНУ его отнести гораздо трудней. я думаю, честнее будет сказать, что он ЯноВУ - Язык не очень Высокого Уровня
только вот до Асма С++ далековато, "по модулю" также или даже дальше , чем до вышеупомянутого Хаскеля если говорят что С++ плох , это не говорит о том что дельфи хорош, у него своих проблем по горло чувствую, то сейчас kemiisto закидает меня камнями, но основываясь на своем опыте считаю, что дельфи тоже не очень подходит в качестве 1го языка. *имеется ввиду для тех кто хочет стать программистами, а не для тех кто побочно использует ЯП. |
| Автор: GoldFinch 4.3.2010, 16:45 | ||
ядра какой ОС? сколько строчек? чем отлаживать? |
| Автор: kemiisto 4.3.2010, 16:53 | ||||
Ну, не по горло, конечно, но есть серьёзные недостатки.
Не закидаю. Наоборот, я под этим подписываюсь. Это мой личный опыт. |
| Автор: Lazin 4.3.2010, 17:03 |
красноглазой хз а зачем ее отлаживать? |
| Автор: Lazin 4.3.2010, 17:22 | ||
я использую F#, который является дальнейшем развитием OCaml библиотеки уровня boost - не особо нужны, так как boost, во многом состоит из реализации тех вещей, которые в других языках и так есть, например boost::bind + boost::function - в OCaml/F# - не нужны, так как язык функциональный, boost::variant - не нужно, так как есть discriminated unions, et cetera |
| Автор: JackYF 4.3.2010, 17:51 | ||
|
| Автор: Alca 4.3.2010, 18:27 |
| F# это типа дотнетовская фича? Тока под винду? |
| Автор: kemiisto 4.3.2010, 18:48 |
Под Mono может работает. А вообще не под винду - так просто OCaml. |
| Автор: Alexeis 4.3.2010, 19:00 |
| Почитал про OCaml . Расписывают его хорошо. Поддерживает много платформ. Хочешь интерпретатор, хочешь JIT . Остается выяснить где подвох? Наверное библиотеки неодинаково работают на разных платформах. Или жирок большой имеется. Может Просто мало библиотек для него. Заметил, что он имеет стыковку С. Наверное все стороннее именно так и подключается к нему. Ведь куча кода кода уже есть на С. Вряд ли хотя бы 5% этого есть на OCaml . |
| Автор: GoldFinch 4.3.2010, 19:33 |
| Lazin, пусть даже большинство библиотек в бусте направлены на расширение языка, там остаются библиотеки которые направлены на решение конкретных задач, например Asio и Spirit, и библиотеки которые направлены на оптимальное решение общих задач - скажем быстрый array вместо медленного вектора, прочие легковесные типы данных. Аналог asio в OCaml/F# есть? Чтоб юзало порт завершения под виндой, kqueue под фряхой, и чтоб было удобно пользоваться? |
| Автор: Kakadu 4.3.2010, 20:06 |
| К сожалению, то что OCaml не уступает по уровню С++ - жалкий пиар. Видел заметки в ЖЖ как писали интерпретатор для какой-то абстрактной машины. Вначале Ocaml заработает быстрее, потом С++ соптимизируют. Потом камль. Только камль после этого всего превращается в трудночитаемый язык. Я не против OCaml, я только за. Но надо шашкой не махать. Ведь очень подозрительно, что если программу на функциональном языке, а также на языке со сборкой мусора перевести в итеративные команды процессора, где нет никакой сборки мусора, то получим потери производительности из-за недостаточной гениальности компилятора. |
| Автор: Lazin 4.3.2010, 20:13 | ||
там можно писать асинхронный код так, как будто он синхронный, благодаря такой фиче языка, как computation expressions http://tomasp.net/articles/fsharp-webcast-async.aspx |
| Автор: mes 4.3.2010, 20:16 |
Основной подвох в раскрутке языка.. C++ на руку в свое время сыграло его совместимость с С, после язык спас boost, позволяя поднять его на приемлемый для того времени уровень, сейчас когда конкуренты окрепли (многие на плачевном опыте того С++), имхо нужно поторопится хотя бы с новым стандартом, чтоб поток "кочевников" с языка не стал угрожающим Но к сожалению чтоб победить в сражении тех фич нового стандарта маловато, и только былой "авторитет" может удерживать язык на плаву :(. Tребуется нечто новое, выводящее язык на современный уровень, но пока о таком не слышно :( вот пришлось закончить на грустной ноте .. |
| Автор: Alexeis 4.3.2010, 20:28 |
Я имею ввиду в чем подвох OCaml. Какие его слабые стороны. Фичи как фичи это всегда успеется, но старый друг, лучше новых двух, хотя бы потому что знаешь откуда ждать засады |
| Автор: Lazin 4.3.2010, 20:35 | ||
ну он конечно позаброшен малость, все из-за того, что его редко используют, но не думаю, что реализация хуже чем у delphi а с F# все как раз наоборот, все на очень хорошем уровне |
| Автор: Alexeis 4.3.2010, 20:50 |
| Lazin, ну тут уже кроссплатформенности шиш, кроме того функциональный. Скорее всего даже под CF2.0 не запуститься, а про использование старых наработок можно вообще забыть. Кросплатформенность в современной реалии это очень важно. Кстати вышла бета версия студии от ембаркадеро. Новая студия готовит Mac и Linux на нативном уровне. |
| Автор: Lazin 4.3.2010, 20:59 | ||||||
так это же хорошо версия под Mono есть
ничего подобного, обычный .NET язык, можно делать все тоже самое, что можно делать на C# или Visual Basic
поезд уже ушел а вообще, слабо верится, что оно у них нормально заработает на других платформах |
| Автор: Alexeis 4.3.2010, 21:35 | ||
Обычный .NET язык и не работает под CF2.0. То что заточено под CF2.0 работает и на .NET . Обратное не верно. Например, Microsoft Robotics Studio заточен под CF2.0 и работает под .NET . Также как то что заточено под Mono будет работать и на .NET, но обратное опять же не верно. Получается F# с неуправляемым кодом сможет общаться только через COM. Работа с памятью напрямую не возможна. Придется выкручиваться. Кстати для сравнения Delphi идет на встречу языку С. В нем ввели директиву PointerMath для удобства работы с низким уровнем. И довели до ума дженерики, сделали библиотеку Generics.Collections .NET совместимую. Так что двигаются в правильном направлении. Многое серьезно переработано. Но опять же переносимость будет только при том, что программист ограничиться возможностями библиотеки VCL или будет использовать только платформонезависимые библиотеки, которых весьма не густо. Глядишь к 2012 доведут до ума. |
| Автор: Lazin 4.3.2010, 21:51 | ||||||
F# работает на CF2.0
из F# можно использовать P/Invoke, кстати, интересно, откуда такие выводы?
поздно, засохнет и отвалится |
| Автор: Alexeis 4.3.2010, 21:59 | ||
Предположил. В любом случае ведь использование неуправляемого кода ограничено. |
| Автор: Lazin 4.3.2010, 22:01 |
все также как и в C#, ничем не хуже а не управляемый код использовать и не нужно, если без этого совсем нельзя Добавлено через 2 минуты и 41 секунду единственное, непонятное мне ограничение - отсутствие protected членов класса, причем, если класс пришел извне, то можно от него наследоваться и использовать его protected методы и свойства, но в F# нельзя создать класс с защищенными членами, только с закрытыми, либо открытыми, зачем так сделали - совсем не понятно... |
| Автор: kemiisto 4.3.2010, 22:23 | ||
| Lazin, http://spivey.oriel.ox.ac.uk/corner/Oxford_Oberon-2_compiler правильное применение OCaml. Ахтунг! Школьнег, фапающий на Це++, тебе на заметку:
|
| Автор: Lazin 4.3.2010, 22:37 |
| kemiisto, как язык для обучения студентов, с этим я еще могу согласиться |
| Автор: kemiisto 4.3.2010, 23:02 | ||
И на том спасибо. |
| Автор: Logo 4.3.2010, 23:27 | ||||
На днях чтобы выяснить, на каком языке следует писать GUI программы, прошелся по ярлыкам на рабочем столе с помощью PEiD. Большинство - C++. Из него большинство Microsoft Visual C++ 6.0 |
| Автор: kemiisto 4.3.2010, 23:30 | ||
Что в лоб, что по лбу... |
| Автор: Alexeis 4.3.2010, 23:41 |
Эээ FireFox? VLC? qip? chrome? Total Commander? 7zip ? Чтой-то меня терзают сомнения что речь идет о старом софте Я бы понял если бы речь шла про игры или программы от MS, или там кодеки, драйвера БД. |
| Автор: W4FhLF 5.3.2010, 04:57 |
Ну F# это часть VS и .NET, мощный фреймворк, продвинутый отладчик и среда, тесная интеграция с C#. Чего бы стоил F# без этого всего? Да был бы "ещё одним, в образовательных целях". Реально же мы приходим к тому, что в мире разработки важен не proof-of-concept, а то что за этим стоит. Ну да, замечательный язык Haskell/OCaml(!F#), а как надо написать что-нибудь реальное он сливает связке Visual C++ boost/Qt/etc. |
| Автор: Shaggie 5.3.2010, 08:34 | ||
Обычно не он сливает, а менеджеры проектов... им нужны мейнстримные языки, потому что: 1) их знает каждый человек в большой команде, 2) на них можно нанимать вчерашних студентов/вообще человеков с улицы, 3) в случае ухода ведущего специалиста нет такого страха, что проект придётся целиком с нуля переписывать, кто-нибудь как-нибудь да разберётся. У общепринятых языков есть большая ниша пользователей, сформировавшиеся базы знаний и достаточно чётко очерченные границы возможностей/скорости/риски разработки. Тем не менее, реальные проекты на Haskell (OCaml, или хотя бы D |
| Автор: W4FhLF 5.3.2010, 08:47 |
| Shaggie, ну вот я и говорю, что в реальной жизни дро**ть на красивую концепцию никому невыгодно, надо решать реальные задачи: иметь развитую среду разработки, отлаживать, профилировать, тестировать, анализировать, не изобретать при необходимости велики и так далее. |
| Автор: Lazin 5.3.2010, 09:13 | ||||
спроси у Void-a, я хаскель знаю весьма поверхностно
|
| Автор: Void 5.3.2010, 10:30 | ||
Чуть Haskell, так сразу Void kemiisto, попробуй хоть какой-нибудь. Но об Haskell есть риск сломать голову сразу и надолго. |