Ответы:
С - по сегодняшним меркам - сильно низкоуровневый, поэтому не пригоден для создания массивных приложений со сложной бизнес логикой.
С++ - очень сложен для изучения и освоения, поэтому имеет очень высокий порог вхождения. Тоже по сегодняшним меркам относительно низкоуровневый. Приложения имеют крайне запутанную структуру.
С# - не кроссплатформенный, требует для работы разработанных на нем приложений установки фреймворка. В некоторых случаях возникают проблемы с производительностью приложений, поэтому нет возможности разрабатывать приложения аппаратного уровня.
Преимущества лень писать - лучше всех С#.
Чисто мое мнение, когда я выбирал язык (где-то 1985 год) , выбор был из Паскаля и С.
С - язык для анархистов. В нем можно делать все, но и ошибки должен искать сам.
Паскаль - язык строгий, много ограничений, но благодаря им множество ошибок может найти компилятор.
В дальнейшем я изучил множество языков и люблю строгие языки. Анализируя путь C, C++, C# видно, что в С устали боротся с ошибками и он идет к тем принципам, которые были заложены в 1972 году в Паскале. По мощности современный Паскаль (Дельфи) и C++ одинаковы, равноценны.
Есть хорошая книжка Пратт "Сравнительный анализ языков программирования". Там рассматриваются около 10 языков, в том числе С, С++ и Паскаль.
Есть книга под редакцией Н.Джехани "Языки программирования Ада, Си, Паскаль. Сравнение и оценка". Джехани специалист по АДЕ, но анализ проведен очень профессионально.
Главный недостаток С++ - то, что люди, которые его не знают, считают его низкоуровневым...
Согласен с azlibr.
C/C++ - крайне ненадежные языки, даже для десктопа.
Вот еще интересная статейка:
Питер Мойлан: "Аргументы против Си"
Если нужна кроссплатформенность, то можно использовать PureBasic.
У меня к C только одна претензия - бардак с совместимостью, преобразованием и описание типов. 95% моих проблем упираются только в это. Ну а 5% это конечно высокий порог входа. Впрочем это естественно для любого языка ориентированного не на кухарок.
А почему ни слова о языках для JVM, имеющих нехилое преимущество над всеми остальными в виде абсолютной совместимости с любой платформой? И вовсе необязательно вести речь о самом Java, скорее, о его потомках: изысканном Scala, более доступном Groovy++ или готовящейся отечественной бомбе под названием Kotlin. Уровень абстракции Java позволяет избежать массы рутинной работы в C++, а абстракция потомков Java избавляет и от её собственных рутин. Реально сейчас на JVM просто ренессанс. Поэтому, если не стоит задачи писать драйверы или 3d движок, я бы очень рекомендовал взглянуть на этот мир.
>>C/C++ - крайне ненадежные языки, даже для десктопа.
[ C ] подобные языки (C, C++, VC++) личное неприятие стиля оформления, перегруженность в командах из за наследования совместимости, отсутствие элементарных преобразований информации из за которых нужно искать какой бы модуль подключить или портянку писать или извращаться вырубая проходы в стенах
[ Паскаль ] похоже на дипломную работу студента некоторого примитива вообще нет к примеру узнать символ на дисплее нужно лезть через ассемблер, в read/readln ошибка из за чего приходится использовать переменную и условие корректировки, количество ячеек в создаваемом в "ручную" динамическом массиве ограниченно лонгинтом, в командной строке нужно вручную удалять кавычки, для примитивного редактора ввода вывода экрана (ограничение по цифрам/буквам/манипуляции/подсветки/оформления) (через readkey и keypressed) нужно писать целую портянку (интерфейс + 3 типа доступа к файлам + редактор ввода цифр = 527 строк все TPC.EXE сдох и нужно в TURBO.EXE открывать чтоб там компиляцию запустить) и тд
[ С# ] чуть лучше чем остальные C -ные но грабли поедены шашлем (дает о себе знать наследственность)
[ VB.Net ] компоненты .net корявые/недоделанные из за всяких мелочей приходится портянки писать, нет нужных специфических компонентов (пофайловая обработка архивов (тк архивы >4-6ГБ)) ну много чего нет но воды в коде меньше
[ F# ] недостаточно документирован, перегруженность в командах из за наследования совместимости
[ Masm ] недо макросы, недостаточно документирован, недоработанный интерфейс(пол задачи с одном стиле, пол в другом)
[ Fasm ] недостаточно документирован, недоработанный интерфейс
[ Java ] воды навалом, интерпретатор с русского языка и то приличней выглядит
у борландовских личное неприятие стиля оформления среды
набери в гугле "haskell" и "аспектно-ориентированное программирование"
- - -
и будет тебе счастье :)))
"Нужна критика личная, а также ссылки на авторитетные источники"
а зачем? чтобы создать очередной блог кидателей какашек?
Питер Мойлан: "Аргументы против Си"
Зачем критиковать просто так. Cами изучите несколько языков и узнаете недостатки каждого. Или выберите язык по своему темпераменту.
Люцина (Eduard Sapotski) 27.06.2011, 16:35:55 Сообщить о нарушении История изменений
"С - по сегодняшним меркам - сильно низкоуровневый"
"C++ - Тоже по сегодняшним меркам относительно низкоуровневый."
Да вы говорите такую чепуху! На C и C++ можно вывести текст одной командой, какие они после этого низкоуровневые? Вас надо заставить прошивать микропроцессоры на двоичном коде. Тогда, может быть, вы поймете, что такое низкий уровень...
мне кажется более универсального языка чем C++ сейчас нету, это и есть собственно критика всех остальных
С - по сегодняшним меркам - сильно низкоуровневый, поэтому не пригоден для создания массивных приложений со сложной бизнес логикой. както так
14 лет назад