Re[3]: Основные минусы плюсов...
От: velkin Земля  
Дата: 26.07.23 22:33
Оценка: +1 :)
Здравствуйте, Константин Б., Вы писали:

КБ>У меня неловкий вопрос. Вот это всё всеръёз было или я слишком тонкий сарказм не уловил?


Я об этом писал в
1. Независимость программ от фреймворков
2. Катастрофа ООП и многомерные модели данных
3. Почему программисты прошлого были умнее

Ещё раз процитирую.

Линус Торвальдс о С++

C++ — кошмарный язык. Его делает ещё более кошмарным тот факт, что множество недостаточно грамотных программистов используют его, до такой степени, что оказывается намного проще выкинуть его как мусор.

Откровенно говоря, даже если нет *никаких* причин для выбора Си, кроме того чтобы держать C++-программистов подальше — то одно это уже будет достаточно веским основанием для использования Си.

Я пришёл к выводу, что *действительно* предпочту выгнать любого, кто предпочтёт вести разработку проекта на C++, нежели на Си, чтобы этот человек не загубил проект, в который я вовлечён.

C++ приводит к очень, очень плохим проектным решениям. Неизбежно начинают применяться «замечательные» библиотечные возможности вроде STL, и Boost, и прочего мусора, которые могут «помочь» программированию, но порождают:

— невыносимую боль, когда они не работают (и всякий, кто утверждает, что STL и особенно Boost стабильны и портируемы, настолько погряз во лжи, что это даже не смешно)

— неэффективно абстрагированные программные модели, когда спустя два года обнаруживается, что какая-то абстракция была недостаточно эффективна, но теперь весь код зависит ото всех окружающих её замечательных объектных моделей, и её нельзя исправить, не переписав всё приложение.

Другими словами, единственный способ иметь хороший, эффективный, низкоуровневый и портируемый C++ сводится к тому, чтобы ограничиться всеми теми вещами, которые элементарно доступны в Си.

А ограничение проекта рамками Си будет означать, что люди его не выкинут, и что будет доступно множество программистов, действительно хорошо понимающих низкоуровневые особенности и не отказывающихся от них из-за идиотской ерунды про «объектные модели».

Когда эффективность является первостепенным требованием, «преимущества» C++ будут огромной ошибкой.


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

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

Фактически я сейчас говорю о позиционировании в маркетинге.

Сегментация: относится к процессу разделения широкого потребительского или делового рынка, обычно состоящего из существующих и потенциальных клиентов, на подгруппы потребителей (известные как сегменты). Либо деление аудитории на более узкие аудитории. Например многие компании, при продаже продукции Apple разделяют аудиторию текстом, давая каждой аудитории то, что им необходимо. Мужчинам — престиж, надежное качество. Девушкам — крутую камеру и красивые селфи.

Таргетирование: относится к выбору сегмента или сегментов, которые станут объектом особого внимания (известные как целевые рынки).

Позиционирование: относится к общей стратегии, которая «направлена на то, чтобы бренд занимал определенную позицию относительно конкурирующих брендов в сознании потребителя»

Математик мог с той же лёгкостью писать формулы на C++ в структурной парадигме программирования, нежели на Python. Но мы можем позиционировать Python как язык для лёгкого написания скриптов. Таким образом мы получаем целевую аудиторию математиков в свои руки.

А про C++ мы скажем, что там всё слишком сложно, нужно сначала выучиться объектно-ориентированному и обобщённому программированию, множеству шаблонов проектирования, и то не факт, что сможешь написать формулу. Так естественная битомолка проигрывает в глазах потребителя.

В C# и Java мы будем рекламировать условно входящие в состав фреймворки. Да, для C++ есть Qt, но там много что ещё есть. В конце концов Qt не идёт в комплекте с C++, а .NET и прочие идут. Вот у нас уже есть целевая аудитория формошлёпов, и C++ опять проиграл.

Или взять веб, очевидно же что веб нужно писать на веб языках, скрипты, все дела. Почему? Да потому, что есть веб сервера написанные на Си, такие как Nginx, Apache, Lighttpd. Подождите, но если сервера написаны на Си, значит можно было бы использовать их сетевую часть для... Нет!!! Не думай, не заканчивай эту мысль. Ты ведь знаешь, что писать сайты на C++ плохая идея, особенно если кто создаст к серверам скриптовый модуль C++.

Вот так у нас появилась целевая аудитория под каждый язык программирования. Каждый язык имеет своё предназначение и это хорошо. Зачем нам универсальный инструмент, в этом нет смысла. Самое главное, что выучить только одну область такую как формошлёпство, веб или даже битомолки проще, чем все сразу. Потому одни языки программирования проще других.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.