Re[5]: Десктопные на голом C не выглядят монструозными
От: CreatorCray  
Дата: 02.02.23 21:31
Оценка:
Здравствуйте, Философ, Вы писали:

П>>У меня нет никаких голых указателей;

Ф>Как тебе это удалось?
С++ же
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[3]: Десктопные на голом C не выглядят монструозными
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 02.02.23 22:03
Оценка: 1 (1) +1
Здравствуйте, Shmj, Вы писали:

S>Одну маленькую таки пришлось написать, но для ее написания пришлось перелопатить примерно 50 экранов кода.

Ну и как? Взбодрился после такого? Я вот часто работаю с гстример где эта мерзость по легаси причинам и по причинам переносимости существует, и вот каждый раз когда приходится с этим работать мне просто разрывает одно место...
S>Думаю что да, кое-какие ритуалы будут раздражать.
Более чем, ты даже не представляешь как они будут раздражать, но это ты не залезаешь ещё дальше в glib. Весь gobject это тонны болерплейта и только 5-6 строк кода которые тебе нужны.
S>Однако же скорость написания будет не многим ниже — видимо те самые 20% о которых говорят, которые добавляют удобные инструменты.
Я думаю с QT было бы быстрее и вероятнее всего на 40% ниже.
Sic luceat lux!
Re[5]: Десктопные на голом C не выглядят монструозными
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 02.02.23 22:06
Оценка: +1
Здравствуйте, Философ, Вы писали:

Ф>Как тебе это удалось?

Смарт поинтеры, контейнеры, array вместо chat*, ну ты понял. Чтобы использовать голые указатели в С++ надо серьёзно обосновать свой выбор.
Sic luceat lux!
Re[5]: Десктопные на голом C не выглядят монструозными
От: Michael7 Россия  
Дата: 02.02.23 23:45
Оценка:
Здравствуйте, reversecode, Вы писали:

R>cd my_small_project

R>"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
R>172379 total
R>только .cpp и .h

Позанудствую

-type f -name \*.* намекает, что вообще все файлы. Может конечно у тебя там ничего другого, кроме cpp и .h и нет, но это тоже надо суметь.
Re[6]: Десктопные на голом C не выглядят монструозными
От: reversecode google
Дата: 03.02.23 01:28
Оценка: :)
tokei-i686-pc-windows-msvc.exe my_small_project
===============================================================================
 Language            Files        Lines         Code     Comments       Blanks
===============================================================================
 C Header              489        31351        26965          439         3947
 C++                   351       141269       132324         1501         7444
===============================================================================
 Total                 840       172620       159289         1940        11391
===============================================================================
Re[2]: Десктопные на голом C не выглядят монструозными
От: vaa  
Дата: 03.02.23 02:34
Оценка:
Здравствуйте, mike_rs, Вы писали:

_>Здравствуйте, Shmj, Вы писали:


S>>По идее высокоуровневые приложения на голом С должны быть ад и армагедон.


_>Задрачиваться на конкретный язык — признак студента первого курса. Язык нужно выбирать тот, который позволяет оптимально (!!!) решить конкретную задачу. Оптимально — как с точки зрения самой задачи так и с со стороны квалификации исполнителя. Все крики что делфи/с/яваскрип/питон/и т.п — говно, а нужно использовать только ххх, как самый кошерный — это маркер профнепригодности.


А как же general purpose(оно же универсальные ЯП)? ХабраБлогеры C к универсальным относят.

PS повторюсь. лучший не тот который лучше к задаче, т.к. это инструмент, и если я не умею им пользоваться,
то лучше я сделаю как умею(Парадокс Блаба)
конечно приятно владеть лучшим из инструментов, но на это нужно время и должны быть перспективы применения. путь одиночек.
тот же C# вполне себе середина, пусть и не золотая. можно и шашкой помахать и на еду заработать. последнее время появляется много готовых компонентов, фрэймворков и технологий очень неплохого качества.
как пример https://devblogs.microsoft.com/dotnet/announcing-the-dotnet-community-toolkit-810/
модель до появления фрэймворка могла весить за 100LOC. теперь это 10LOC. Конечно до clojure далеко(рекордсмены по краткости).
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[5]: Десктопные на голом C не выглядят монструозными
От: CreatorCray  
Дата: 03.02.23 04:14
Оценка:
Здравствуйте, reversecode, Вы писали:

R>"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

R>172379 total

Так оно посчитает и пустые строки и комменты и строки на которых есть просто тупо скобка.
Скачай тот же SourceMonitor — он куда честнее это всё покажет.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[2]: Десктопные на голом C не выглядят монструозными
От: Pzz Россия https://github.com/alexpevzner
Дата: 03.02.23 11:35
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>У них активно используется аналог деструкторов через GCC extension: https://blogs.gnome.org/desrt/2015/01/30/g_autoptr/


Местами может и используется, но совсем не "активно".
Re[3]: Десктопные на голом C не выглядят монструозными
От: пффф  
Дата: 03.02.23 11:36
Оценка: +1
Здравствуйте, Pzz, Вы писали:

CC>>У них активно используется аналог деструкторов через GCC extension: https://blogs.gnome.org/desrt/2015/01/30/g_autoptr/


Pzz>Местами может и используется, но совсем не "активно".


Немного произвольно потыкал — везде g_autoptr. Ну, если это "не активно"...
Re: Десктопные на голом C не выглядят монструозными
От: Pzz Россия https://github.com/alexpevzner
Дата: 03.02.23 11:38
Оценка: -1
Здравствуйте, Shmj, Вы писали:

S>По идее высокоуровневые приложения на голом С должны быть ад и армагедон. Но нет — они не выглядят так уж слишком страшными, примерно как на Python — без особой разницы.


А на чем они не ад и армагедон? Существующие тулкиты, все двое, Qt и GTK, подразумевают ад и армагедон, к какому языку их не приладь.
Re[2]: Десктопные на голом C не выглядят монструозными
От: Pzz Россия https://github.com/alexpevzner
Дата: 03.02.23 11:42
Оценка:
Здравствуйте, mike_rs, Вы писали:

_>Задрачиваться на конкретный язык — признак студента первого курса. Язык нужно выбирать тот, который позволяет оптимально (!!!) решить конкретную задачу. Оптимально — как с точки зрения самой задачи так и с со стороны квалификации исполнителя. Все крики что делфи/с/яваскрип/питон/и т.п — говно, а нужно использовать только ххх, как самый кошерный — это маркер профнепригодности.


Ну в целом, тенденция нонешнего времени заключается в том, что в больших проектах понамешано разных языков, в диапазоне от Си до Хаскеля, вот именно с такой мотивацией.

В результате, когда надо внести какое-то изменение, приходится искать человека в группе, у которого соответствующий компонент мало того, что входит в тематику этого человека, так еще и написан на понятном ему языке. Что не способствует, конечно, эффективности решения насущных вопросов.
Re[4]: Десктопные на голом C не выглядят монструозными
От: Pzz Россия https://github.com/alexpevzner
Дата: 03.02.23 11:47
Оценка:
Здравствуйте, пффф, Вы писали:

П>Так вот, на сишечке я бы не стал даже пытаться его сделать — в разумные сроки его просто было бы не сделать. 1) куча бойлерплейта, который не только замедляет написание, но и усложняет восприятие — одно и тоже на плюсах в итоге гораздо быстрее написать рабочее, чем на сишечке; 2) баги, из-за которых либо приложение было бы таким же глючным, как GTKшный софт, либо сроки растянулись бы на годы.


Ну в общем и целом, во всех моих крупных сишных проектах сначала закладывается инфраструктура, которая упрощает общие вещи — логи, автоматизация управления памятью, строки/вектора, а потом становится все равно, на чем писать, и код пишется по сути решаемой проблемы, а не для борьбы с языком.

П>Некоторый опыт на сишечке имеется. Я как-то писал на сишечке HTTP-сервер для микроконтроллера, что заняло у меня пару месяцев. Тот проект был очень простым по сравнению с текущим.


Странно как-то. 100 тысяч строк ты пишешь за 3 месяца, а я за полтора года. Но при этом HTTP-сервер ты пишешь за два месяца, а я за неделю напишу (если на Си).
Re[6]: Десктопные на голом C не выглядят монструозными
От: Pzz Россия https://github.com/alexpevzner
Дата: 03.02.23 11:48
Оценка:
Здравствуйте, Kernan, Вы писали:

K>Смарт поинтеры, контейнеры, array вместо chat*, ну ты понял. Чтобы использовать голые указатели в С++ надо серьёзно обосновать свой выбор.


chat* — это указатель на чатики?
Re[6]: Десктопные на голом C не выглядят монструозными
От: Pzz Россия https://github.com/alexpevzner
Дата: 03.02.23 11:51
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Так оно посчитает и пустые строки и комменты и строки на которых есть просто тупо скобка.

CC>Скачай тот же SourceMonitor — он куда честнее это всё покажет.

А зачем? Они ж линейно связаны. Коэффициент зависит от стиля. Можно просто экспериментально выяснить свой коэффициент, а дальше ограничиваться wc
Re[5]: Десктопные на голом C не выглядят монструозными
От: пффф  
Дата: 03.02.23 12:10
Оценка: +1
Здравствуйте, Pzz, Вы писали:

Pzz>Ну в общем и целом, во всех моих крупных сишных проектах сначала закладывается инфраструктура, которая упрощает общие вещи —


логи — много где — не нужны. Вот сейчас — мне не нужны
автоматизация управления памятью — в C++ — искаропки
строки/вектора — в C++ — искаропки
дофига всего остального, что используется, например, у меня в текущем проекте — set/map/unordered_*, всякие алгоритмы — в C++ — искаропки


Pzz>а потом становится все равно, на чем писать, и код пишется по сути решаемой проблемы, а не для борьбы с языком.


Да вот нифига, на сишечке всё равно приходится бороться с ней


П>>Некоторый опыт на сишечке имеется. Я как-то писал на сишечке HTTP-сервер для микроконтроллера, что заняло у меня пару месяцев. Тот проект был очень простым по сравнению с текущим.


Pzz>Странно как-то. 100 тысяч строк ты пишешь за 3 месяца, а я за полтора года. Но при этом HTTP-сервер ты пишешь за два месяца, а я за неделю напишу (если на Си).


Ничего странного. Написал строки, затем текстовые макроподстановки, потом сам сервер. Потом — сайт на сишечке. Шаблоны страниц — в виде текста с макросами (иначе не влезало и/или было слишком геморно). Дизайн — тоже сам. Иконки кое-какие нарисовал. Проверил всё под хром/ие/файрфокс, поправил, что где не работало. Потом сдал всё это заказчику и получил бабос. Всё — за два месяца. При том, что это был Turbo C, а целевая платформа — 186ой с каким-то мизером памяти, как оперативки, так и ПЗУ. Ты ещё помнишь, что такое near/far указатели?

Ну и про 100KLOC я конечно подзагнул немного
Re[6]: Десктопные на голом C не выглядят монструозными
От: Pzz Россия https://github.com/alexpevzner
Дата: 03.02.23 13:05
Оценка:
Здравствуйте, пффф, Вы писали:

Pzz>>Странно как-то. 100 тысяч строк ты пишешь за 3 месяца, а я за полтора года. Но при этом HTTP-сервер ты пишешь за два месяца, а я за неделю напишу (если на Си).


П>Ничего странного. Написал строки, затем текстовые макроподстановки, потом сам сервер. Потом — сайт на сишечке. Шаблоны страниц — в виде текста с макросами (иначе не влезало и/или было слишком геморно). Дизайн — тоже сам. Иконки кое-какие нарисовал. Проверил всё под хром/ие/файрфокс, поправил, что где не работало. Потом сдал всё это заказчику и получил бабос. Всё — за два месяца. При том, что это был Turbo C, а целевая платформа — 186ой с каким-то мизером памяти, как оперативки, так и ПЗУ. Ты ещё помнишь, что такое near/far указатели?


Я для такого написал полноценный TCP/IP стек. Но вот именно HTTP-сервера у меня не было. HTTP в те времена еще не был изобретен.
Re[7]: Десктопные на голом C не выглядят монструозными
От: пффф  
Дата: 03.02.23 13:11
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Я для такого написал полноценный TCP/IP стек. Но вот именно HTTP-сервера у меня не было. HTTP в те времена еще не был изобретен.


TCP/IP был в SDK контроллера, под Turbo C, потому на сишечке и пришлось писать. Не помню почему, но TC++/BC++ не заводилось с SDK, или ещё какие-то проблемы были, уже запамятовал. А, да, я ещё тогда мучал сорцы cfront'а неделю, хотелось на плюсиках, хоть на совсем старых, писать, но не срослось
Re[5]: Десктопные на голом C не выглядят монструозными
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 03.02.23 14:22
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Ну в общем и целом, во всех моих крупных сишных проектах сначала закладывается инфраструктура, которая упрощает общие вещи — логи, автоматизация управления памятью, строки/вектора, а потом становится все равно, на чем писать, и код пишется по сути решаемой проблемы, а не для борьбы с языком.


А потом приходишь на другой проект — там своя другая инфраструктура, свои строки, вектора. А потом на другой — и там всё свой. И в третьем своё. И в каждом свои особенности и баги.
Re[6]: Десктопные на голом C не выглядят монструозными
От: Pzz Россия https://github.com/alexpevzner
Дата: 03.02.23 14:38
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>А потом приходишь на другой проект — там своя другая инфраструктура, свои строки, вектора. А потом на другой — и там всё свой. И в третьем своё. И в каждом свои особенности и баги.


Ну да. В C++ все абсолютно то же самое.
Re[7]: Десктопные на голом C не выглядят монструозными
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 03.02.23 14:47
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Ну да. В C++ все абсолютно то же самое.


stl же! Моя базовая библиотека OpenCV была переписана с С на С++, у неё были строки свои, умные указатели свои и т.д. Теперь это std::string, std::shared_ptr, std::vector. Мой клиентский код отчасти поэтому стал компактней. По факту же, он стал во много-много раз компактнее и понятней за счёт переписывания базовых классов матриц/векторов/точек/прямоугольников/etc на плюсы. Код перестал быть приседаниями с памятью, а стал отражать предметную область. И при этом он стал даже быстрее работать! Даже этот же код, переписанный на Питон выглядит хуже.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.