metaclass (metaclass) wrote,
metaclass
metaclass

Как изъять фан из программирования?

Ответ прост: сделать его промышленно-надежным. Вкинуть корявые баг-трекеры, инопланетные системы контроля версий, системы управления зависимостями и сборки, юнит-тесты и CI и даже самая маленькая интересная задача превращается в гребаного монстра, на который нужно 20 страниц документации только для того, чтобы можно было поправить мелкий баг.

http://www.reddit.com/r/programming/comments/2bi4yz/just_let_me_code/

PS: там в комментариях еще есть интересно про CI/CD системы.

CD/CI is a good case in point. I've had quite some experience with a lot of difference systems by now, and all of them without exception are a pain to maintain and cost lots of time to use well. I've setup, used & maintained systems based on CC.NET, Hudson+Jenkins, Travis CI & Circle CI. Getting a CI system to really work well costs a lot of time. It's worth it - no question - but it's a huge investment nevertheless. And lots of that investment is ultimately just working around bugs+limitations. Passing around build artifacts is a pain. Managing differing configurations is a pain. This is a solved problem: we have these things called methods that have parameters and even higher-order functions in most programming languages, yet in a CI you tend to need to do lots of messy hackery just to pass around parameters cleanly.


Если бы вы знали, КАК вот это все бесит - это слов нет. Сидишь пишешь на нормальном языке высокого уровня, с нормальными правилами видимости переменных, с всякими проверками компилятора на тему пропущенных переменных и прочим таким.
И тут ХЕРАК, надо делать билд и тесты - переключаешься например на MSBuild или CC.Net - и там нет даже тех мелочей, которые есть в самых наираздинамических из динамических языков - ошибся в одной букве, переменная стала другой - похер, работаем, только с пустым значением. Методов нет, объектов нет, функций нет, переменные все глобальные, причем одна часть из них взята из системного окружения, вторая создается на ходу, третья создается где-то в проекте, импортированном из проекта, импортированном из проекта, импортированном из проекта, импортированном из проекта.
Более ad-hoc говна, чем сборочные системы, сложно себе представить, ибо они все выросли из всякого уебища вроде make-файлов, косоручных бат-sh-cmd-файлов и несут на себе их родовой грех.
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 48 comments
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →