2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Ваш опыт: как Вы пришли к пониманию легенды языков - ЯВУ C?
Сообщение31.12.2024, 21:02 
С Наступающим!
Вышел финальный стандарт языка Си. На нём я думаю подучиться, но у меня есть учебники по предыдущим стандартам, поэтому я в растерянности по поводу того, за что же браться в первую очередь и по какой системе учиться? Спрашиваю на этом сайте, поскольку мне показалось, что у вас богатый опыт, полный мудрости. Подскажите, пожалуйста, на какие части лучше разбить процесс самообучения и как добиться знания Си на экспертном уровне без погружения в ассемблер - интересен опыт каждого! :idea:

-- 31.12.2024, 21:52 --

На данный момент я работаю с C# и буду продолжать, а хобби - Си. Я писал здесь ранее, но утратил доступ к аккаунту.

Мои накопившиеся замечания к языку Си я выразил в своей статье в журнале Самиздат:
Цитата:
1. Его невозможно полностью изучить;
2. Он не работает напрямую так, как написано в коде;
3. Многие его средства неудобны, громоздки, не нужны в большинстве случаев;
4. Некоторые его средства лучше вообще никогда не использовать, потому что они либо устарели, либо ведут к ошибкам;
5. У него нет подробного детального описания того, как всё устроено и работает;
6. В нём постоянно внедряется новый синтаксический сахар, который по сути бесполезен, но маркетинг призывает всех переписывать каждый раз старый сахар на новый;
7. Он не оптимален ни по памяти, ни по быстродействию;
8. Программы на нём тяжело отлаживать и тестировать, потому что используют в массе своей ООП;
9. Чтобы программировать на нём, нужно постоянно покупать новые книги и читать их;
10. Его фреймворки регулярно выкидывают на помойку, что опять ведёт к переписыванию всего и вся;
11. Большинство программистов на нём и слышать не желают про оптимизацию программ и культуру безопасного кодирования, как и про алгоритмы - обычно знания заканчиваются там, где заканчиваются руководства;
12. Его сложность и обилие классов заставляют задумываться над выбором средств реализации чаще, чем сосредотачиваться на алгоритме решения;
13. Для него мало бесплатных дополнений, большинство качественных сопутствующих средств - платны;
14. При постоянно растущей энтропии синтаксиса языка качественный код превращается в кашу;
15. Программисты, привыкшие к упрощениям, начинают бояться сложностей;
16. Обилие обёрток сводит на нет программирование на бумаге.
17. Абстрагированный от железа язык можно развивать до бесконечности.
18. И ещё эта Visual Studio - один сплошной баг с регулярным обновлением.


А ситуация с Си радует - вышли новые iso, misra, POSIX.

 
 
 
 Re: Ваш опыт: как Вы пришли к пониманию легенды языков - ЯВУ C?
Сообщение31.12.2024, 22:27 
Аватара пользователя
Vista7 в сообщении #1668000 писал(а):
Мои накопившиеся замечания к языку Си я выразил в своей статье в журнале Самиздат:
...
2. Он не работает напрямую так, как написано в коде;


:facepalm: Автор явно не понимает всей феерической самопротиворечивости и вытекающей из этого альтернативной одаренности подобных заявлений.

Vista7 в сообщении #1668000 писал(а):
12. Его сложность и обилие классов заставляют задумываться над выбором средств реализации чаще, чем сосредотачиваться на алгоритме решения;


Сомнения зародились намного ранее, но вот здесь они окончательно материализовались в удивленный вопрос :shock: "Чего???" :shock:

Vista7 в сообщении #1668000 писал(а):
18. И ещё эта Visual Studio - один сплошной баг с регулярным обновлением.


Стратегически правильное решение - поместить это последним пунктом. Потому что подобная пионэрская бредятина сразу вызывает реакцию "дальше можно не читать" :facepalm:

Vista7 в сообщении #1668000 писал(а):
А ситуация с Си радует - вышли новые iso, misra, POSIX.


"Взаимоисключающие параграфы"? :shock:

 
 
 
 Re: Ваш опыт: как Вы пришли к пониманию легенды языков - ЯВУ C?
Сообщение31.12.2024, 22:57 
А о чём была тема?

 
 
 
 Re: Ваш опыт: как Вы пришли к пониманию легенды языков - ЯВУ C?
Сообщение31.12.2024, 23:58 
Аватара пользователя
Vista7 в сообщении #1668000 писал(а):
Вышел финальный стандарт языка Си
В каком смысле финальный?
TheRuinedMap, я подозреваю, что там опечатка, и претензии к плюсам. Они от этого не сильно, но становятся адекватнее.
Vista7 в сообщении #1668014 писал(а):
А о чём была тема?
Хороший вопрос. Так о чем?

 
 
 
 Re: Ваш опыт: как Вы пришли к пониманию легенды языков - ЯВУ C?
Сообщение01.01.2025, 01:08 
Лицо синус, глаза - косинус?

 
 
 
 Re: Ваш опыт: как Вы пришли к пониманию легенды языков - ЯВУ C?
Сообщение07.01.2025, 22:45 
п.8 некорректный, т.к. насколько я знаю в С не подвезли ООП.
Вы вообще не путаете C99, C11, C17, C23 и C++98, C++11, C++14, C++17, C++20?

-- 07.01.2025, 22:48 --

Язык трудный, историческая ошибка. Assembler может показаться проще, хотя и переложит на голову работу с элементарными сущностями.

 
 
 
 Re: Ваш опыт: как Вы пришли к пониманию легенды языков - ЯВУ C?
Сообщение30.01.2025, 00:50 
Извините, тут опечатка: список относится к языку C#.

 
 
 
 Re: Ваш опыт: как Вы пришли к пониманию легенды языков - ЯВУ C?
Сообщение30.01.2025, 06:53 
Vista7 в сообщении #1668000 писал(а):
Ваш опыт: как Вы пришли к пониманию легенды языков - ЯВУ C?

С чего вы взяли, что я пришёл? Я никуда не приходил, на си никогда не писал (если не считать студенческих работ) и отлично себя чувствую :D Чего и вам советую.

 
 
 
 Re: Ваш опыт: как Вы пришли к пониманию легенды языков - ЯВУ C?
Сообщение31.01.2025, 14:41 
Цитата:
1. Его невозможно полностью изучить;


Какой-нить Airbus тоже невозможно полностью изучить. Что, в общем-то, не мешает пилотам чаще добираться до пункта назначения.

Цитата:
2. Он не работает напрямую так, как написано в коде;


Достаточно близко, ИМХО. А вообще дилемма, то ли указывать как делать каждый чих, или сразу описать, что надо в результате и не заморачиваться.

Цитата:
3. Многие его средства неудобны, громоздки, не нужны в большинстве случаев;


Так было в прошлом, а сейчас

Цитата:
6. В нём постоянно внедряется новый синтаксический сахар, который по сути бесполезен, но маркетинг призывает всех переписывать каждый раз старый сахар на новый;


Вы определитесь, бесполезен или заменяет громоздкий синтаксис.

Цитата:
4. Некоторые его средства лучше вообще никогда не использовать, потому что они либо устарели, либо ведут к ошибкам;


Ну... язык развивается, старые средства не ведут к ошибкам, они требуют больше внимания к деталям, в результате легче что-то не заметить (ошибиться).

Цитата:
5. У него нет подробного детального описания того, как всё устроено и работает;


Есть стандарт ISO/IEC 20619:2023, другой вопрос, зачем он нужен? Только для mono? Достаточно детальное описание на сайте Microsoft.

Цитата:
7. Он не оптимален ни по памяти, ни по быстродействию;


Большинство интересуют стоимость разработки. В целом при зарплате программиста... ну скажем пускай даже $5000, его месячный оклад почти аренда ста серверов в тот же месяц.

Цитата:
8. Программы на нём тяжело отлаживать и тестировать, потому что используют в массе своей ООП;


Любые сложные программы тяжело отлаживать и тестировать. А верифицированое програмное обеспечение еще тяжелее писать, хотя можно не отлаживать и не тестировать.

Цитата:
9. Чтобы программировать на нём, нужно постоянно покупать новые книги и читать их;


Мне ChatGPT помог почти без опыта писать на нем, а в целом куча док на сайте и на stackoverflow.

Цитата:
10. Его фреймворки регулярно выкидывают на помойку, что опять ведёт к переписыванию всего и вся;


Плата за прогресс... Но в целом я не вижу проблемы: старые проекты живуть на старых, новые начинают на новых... Аналогично можно говорить о новых версиях чего угодно, того же Linux.

Цитата:
11. Большинство программистов на нём и слышать не желают про оптимизацию программ и культуру безопасного кодирования, как и про алгоритмы - обычно знания заканчиваются там, где заканчиваются руководства;


Не обязательно на нём, люди ленивы и не хотят делать больше, чем им платят. Алгоритмы по большей части давно реализованы

Цитата:
12. Его сложность и обилие классов заставляют задумываться над выбором средств реализации чаще, чем сосредотачиваться на алгоритме решения;


Потому что проще, быстрее и надежнее. Никто не мешает самому, по старинку, кирпич за кирпичем, сосредотачиватся на алгоритме решения, а потом осознание: неправильно положил какой-то кирпич. Но чтобы понять, какой именно, надо перебрать их все. Проще все снести и построить заново.

Цитата:
13. Для него мало бесплатных дополнений, большинство качественных сопутствующих средств - платны;


А что тут плохого? Много и бесплатного, и есть платное...

Цитата:
14. При постоянно растущей энтропии синтаксиса языка качественный код превращается в кашу;


Тут скорее сложность проекта

Цитата:
15. Программисты, привыкшие к упрощениям, начинают бояться сложностей;


А зачем искать сложности? В гамаке и в противогазе?

Цитата:
16. Обилие обёрток сводит на нет программирование на бумаге.


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

Цитата:
17. Абстрагированный от железа язык можно развивать до бесконечности.


Можно, а почему нет?

Цитата:
18. И ещё эта Visual Studio - один сплошной баг с регулярным обновлением.


Попробуй решарпер

 
 
 
 Re: Ваш опыт: как Вы пришли к пониманию легенды языков - ЯВУ C?
Сообщение31.01.2025, 17:42 
Vista7 в сообщении #1668000 писал(а):
На данный момент я работаю с C# и буду продолжать, а хобби - Си.
Попробуйте ассемблер. Вдруг вам понравится?

Mihaylo в сообщении #1669029 писал(а):
Язык трудный, историческая ошибка.

Почему ошибка? Замечательная замена ассемблеру для программирования операционных систем.

 
 
 [ Сообщений: 10 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group