По идее высокоуровневые приложения на голом С должны быть ад и армагедон. Но нет — они не выглядят так уж слишком страшными, примерно как на Python — без особой разницы.
Здравствуйте, Shmj, Вы писали:
S>По идее высокоуровневые приложения на голом С должны быть ад и армагедон.
Они и есть ад и армагеддон.
S> Но нет — они не выглядят так уж слишком страшными, примерно как на Python — без особой разницы. S>Вот тут много: https://gitlab.gnome.org/GNOME — в ООП-стиле на голом Си.
Это совсем не голый С.
У них активно используется аналог деструкторов через GCC extension: https://blogs.gnome.org/desrt/2015/01/30/g_autoptr/
Что уже крайне сильно меняет расклад.
Вообще в последнее время С потиху превращается в ранний С++.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[2]: Десктопные на голом C не выглядят монструозными
Здравствуйте, CreatorCray, Вы писали:
S>> Но нет — они не выглядят так уж слишком страшными, примерно как на Python — без особой разницы. S>>Вот тут много: https://gitlab.gnome.org/GNOME — в ООП-стиле на голом Си. CC>Это совсем не голый С. CC>У них активно используется аналог деструкторов через GCC extension: https://blogs.gnome.org/desrt/2015/01/30/g_autoptr/ CC>Что уже крайне сильно меняет расклад. CC>Вообще в последнее время С потиху превращается в ранний С++.
Так и что, разве это требует изменения самого языка или компилятора? Использование доп. библиотек с нужным функционалом — никто не запрещает.
Re: Десктопные на голом C не выглядят монструозными
Здравствуйте, Shmj, Вы писали:
S>По идее высокоуровневые приложения на голом С должны быть ад и армагедон.
Задрачиваться на конкретный язык — признак студента первого курса. Язык нужно выбирать тот, который позволяет оптимально (!!!) решить конкретную задачу. Оптимально — как с точки зрения самой задачи так и с со стороны квалификации исполнителя. Все крики что делфи/с/яваскрип/питон/и т.п — говно, а нужно использовать только ххх, как самый кошерный — это маркер профнепригодности.
Re[3]: Десктопные на голом C не выглядят монструозными
Здравствуйте, Shmj, Вы писали:
CC>>У них активно используется аналог деструкторов через GCC extension: https://blogs.gnome.org/desrt/2015/01/30/g_autoptr/ CC>>Что уже крайне сильно меняет расклад. CC>>Вообще в последнее время С потиху превращается в ранний С++.
S>Так и что, разве это требует изменения самого языка или компилятора? Использование доп. библиотек с нужным функционалом — никто не запрещает.
Я для тебя выделил
Re[2]: Десктопные на голом C не выглядят монструозными
Здравствуйте, Shmj, Вы писали:
S>Думаете на высокоуровневом — это же будет намного меньше по объему кода а код будет яснее?
Давай начнём обсуждение с того, сколько ты написал программ с помощью gobject? Вот когда напишешь хоть что-то, тогда поговорим.
Sic luceat lux!
Re[2]: Десктопные на голом C не выглядят монструозными
Здравствуйте, Kernan, Вы писали:
S>>Думаете на высокоуровневом — это же будет намного меньше по объему кода а код будет яснее? K>Давай начнём обсуждение с того, сколько ты написал программ с помощью gobject? Вот когда напишешь хоть что-то, тогда поговорим.
Одну маленькую таки пришлось написать, но для ее написания пришлось перелопатить примерно 50 экранов кода.
Думаю что да, кое-какие ритуалы будут раздражать. Однако же скорость написания будет не многим ниже — видимо те самые 20% о которых говорят, которые добавляют удобные инструменты.
Re[3]: Десктопные на голом C не выглядят монструозными
Здравствуйте, Shmj, Вы писали:
S>Одну маленькую таки пришлось написать, но для ее написания пришлось перелопатить примерно 50 экранов кода.
Примем экран==100 строк. 50 экранов — 5000 строк. Это была студенческая лаба?
S>Думаю что да, кое-какие ритуалы будут раздражать. Однако же скорость написания будет не многим ниже — видимо те самые 20% о которых говорят, которые добавляют удобные инструменты.
У меня сейчас небольшой проект, только начал подбираться к 100KLOC. Пишу месяца три. Стороннего там ничего нет, только своё, на плюсах и его стандартной библиотеке. А, ну ещё там некоторое количество своих библиотек, кочующих из проекта в проект и развивающихся по мере необходимости, которые тоже на плюсах и стандартной библиотеке. Хотя вру — одна стороння либа есть — для разбора JSON. Тоже чисто плюсовая.
Пишу один.
Так вот, на сишечке я бы не стал даже пытаться его сделать — в разумные сроки его просто было бы не сделать. 1) куча бойлерплейта, который не только замедляет написание, но и усложняет восприятие — одно и тоже на плюсах в итоге гораздо быстрее написать рабочее, чем на сишечке; 2) баги, из-за которых либо приложение было бы таким же глючным, как GTKшный софт, либо сроки растянулись бы на годы.
У меня нет никаких голых указателей; я практически не пишу тесты — если что, вылетает исключение, я его ловлю наверху, и смотрю отладчиком, что случилось. Но это довольно редко бывает. Нет указателей — соответственно, нет никаких блуждающих багов, когда что-то куда-то указывает не туда, и там могут лежать как похожие на правду данные, так и левые (которые уже можно было бы заметить) — на сишечке мне пришлось бы написать тестов в несколько раз больше, чем рабочего кода.
Некоторый опыт на сишечке имеется. Я как-то писал на сишечке HTTP-сервер для микроконтроллера, что заняло у меня пару месяцев. Тот проект был очень простым по сравнению с текущим.
Так что ты не думай, гражданин теоретик, а попробуй написать что-то сложнее лабораторки
Re[4]: Десктопные на голом C не выглядят монструозными
Здравствуйте, пффф, Вы писали:
S>>Одну маленькую таки пришлось написать, но для ее написания пришлось перелопатить примерно 50 экранов кода. П>Примем экран==100 строк. 50 экранов — 5000 строк. Это была студенческая лаба?
Мне нужна была только часть функционала. В оригинальном проекте строк около 15 тыс — все изучать не нужно было. Да, небольшой.
П>Некоторый опыт на сишечке имеется. Я как-то писал на сишечке HTTP-сервер для микроконтроллера, что заняло у меня пару месяцев. Тот проект был очень простым по сравнению с текущим.
П>Так что ты не думай, гражданин теоретик, а попробуй написать что-то сложнее лабораторки
Была такая мысль. Пришел сюда чтобы меня отговорили.
Re[4]: Десктопные на голом C не выглядят монструозными
П>У меня сейчас небольшой проект, только начал подбираться к 100KLOC. Пишу месяца три. Стороннего там ничего нет, только своё, на плюсах и его стандартной библиотеке. А, ну ещё там некоторое количество своих библиотек, кочующих из проекта в проект и развивающихся по мере необходимости, которые тоже на плюсах и стандартной библиотеке. Хотя вру — одна стороння либа есть — для разбора JSON. Тоже чисто плюсовая.
П>Пишу один.
100к ?
малАватА будет
cd my_small_project
"C:\Program Files\Git\usr\bin\find.exe" . -type f -name \*.* | "C:\Program Files\Git\usr\bin\xargs.exe" "C:\Program Files\Git\usr\bin\wc.exe" -l
172379 total
только .cpp и .h
Re[5]: Десктопные на голом C не выглядят монструозными
Здравствуйте, Философ, Вы писали:
П>>...100KLOC..., только своё, на плюсах и его стандартной библиотеке....У меня нет никаких голых указателей;
Ф>Как тебе это удалось?
Стандартная библиотека? Не, не слышал.
Хотя, конечно, указатели немножко есть. Иногда что-то опциональное в/из функций передаётся. И то, потому что я ленивый и плохо знаю новые библиотеки языка и с optional лень заморачиваться
Re[5]: Десктопные на голом C не выглядят монструозными
Здравствуйте, so5team, Вы писали:
П>>У меня сейчас небольшой проект, только начал подбираться к 100KLOC. Пишу месяца три.
S>Это 100KLOC самого проекта или же суммарно с вашими готовыми либами и сторонней JSON-библиотекой?
Без.
Для статы использую github.com/AlDanial/cloc, у ней есть опции что эксклюдить из подсчета
Re[6]: Десктопные на голом C не выглядят монструозными
Здравствуйте, пффф, Вы писали:
П>>>У меня сейчас небольшой проект, только начал подбираться к 100KLOC. Пишу месяца три.
S>>Это 100KLOC самого проекта или же суммарно с вашими готовыми либами и сторонней JSON-библиотекой?
П>Без.
Ну ахринеть!
У меня хорошо, если 3KLOC в месяц выходит (не считая тестов).
Re[7]: Десктопные на голом C не выглядят монструозными
Здравствуйте, so5team, Вы писали:
S>>>Это 100KLOC самого проекта или же суммарно с вашими готовыми либами и сторонней JSON-библиотекой?
П>>Без.
S>Ну ахринеть!
S>У меня хорошо, если 3KLOC в месяц выходит (не считая тестов).
Ну, я урезал осетра
Повнимательнее глянул — одна либа таки пробралась, и в стате там обо всех файлах, не только плюсовых. Чисто плюсового около 45KLOC.
Ну, и я люблю писать воздушно — 30% blank Итого чисто кода получается 30KLOC.
Re[3]: Десктопные на голом C не выглядят монструозными
Здравствуйте, Shmj, Вы писали:
S>Так и что, разве это требует изменения самого языка или компилятора?
Конечно!
S> Использование доп. библиотек с нужным функционалом — никто не запрещает.
Это нельзя сделать библиотечно.