Недавно в рамках эксперимента для статьи писал на чистом C. Несмотря на то, что пришлось реализовать большую и толстую функцию, мне понравилось. Потом попробовал пересесть на основной проект, целиком написанный на С++. Ну... ощущения, скажем так, не самые приятные. Но, по порядку.
Сначала, после того как пересел на pure C, было не по себе от отсутствия привычной парадигмы классов. Все-таки привык я к ООП, которым в чистом С и не пахнет даже. Есть только основная функция, можно определить свои функции и определить структуры как типизованные блоки памяти. И все. Никаких методов и чего-то вроде этого. Сначала такая ограниченность вызывает прострацию. Но совсем ненадолго — сказались школьные годы за Turbo Pascal и бейсиком еще на ZX Spectrum. Втянулся я легко, даже довольно быстро разобрался, как правильно определить указатель на свою структуру и выделить под нее память из кучи (malloc-ом). Минусы, конечно, тоже есть, например, иногда сильно не хватало С++-шаблонов, особенно в местах, где надо было просто поменять тип аргумента.
Потом мне понадобилось сесть снова за основной проект, написанный целиком на С++. Чтож... печально. Ощущения, ну... если переход на С был похож на натягивание тесной одежды (которая потом разнашивается), то тут было больше похоже на закутывание в одеяния, размера на 3 большие, чем надо. Какие-то методы, какие-то классы, какие-то шаблоны, абстракции, наследования... бррр. Я теперь смотрю на свой код как на излишне усложненный всякими наследованиями, полиморфизмом и прочими прибамбасами.
В последнее время все больше начал задумываться над разделением проектов на модули с выбором соответствующего языка для реализации. Использовать соответствующие приборы для разных задач, не пытаясь варить, жарить, парить, забивать гвозди и пилить дерево одной лишь сковородой или кастрюлей. Единственный минус, не, скорее ограничение основное на такие подходы — такие решения и проекты требуют документирования. Качественного. С отдельным пунктом «Выбор языка реализации» по каждому модулю с описанием причин такого выбора.
PS: А может, ну его нафиг, да и оставаться быдлокодером?