Системное и прикладное.
От: sch  
Дата: 10.10.05 07:44
Оценка: 5 (2) +3 -1 :)))
Давным-давно, когда компьютеры были большими, а деревья маленькими существовали два понятия, ныне практически забытые – системное программное обеспечение и прикладное программное обеспечение.

Вот как определяет эти термины wikipedia:

«Систе́мное програ́ммное обеспечение — это набор программ, которые управляют компонентами вычислительной системы, такими как процессор, коммуникационные и периферийные устройства, а также которые предназначены для обеспечения функционирования и работоспособности всей системы.»

«Большинство из них отвечают непосредственно за контроль и объединение в единое целое различных компонентов аппаратного оборудования вычислительной системы.»

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

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

Я видел много классных системных программистов, и видел не меньше классных прикладных программистов. И вот что я скажу про них.

Системный программист отлично разбирается в алгоритмах и математической базе. Он знает наизусть если не весь ISO\IEC 14882, но хотя бы основные пункты. Он может очень быстро и качественно реализовать почти любой кусок программы, который реально обрабатывает информацию, но практически не в состоянии написать конечный код -- то, что видит пользователь. GUI, сделанные системными программистами тяжеловесны и неудобны и не дай бог вам придется работать с БД, написанным системным программистом.

Прикладные программисты – класс для меня совершенно закрытый. Я не могу вычислить первопричины, под воздействием которых субъект X начинает писать классное прикладное ПО. Но такие программисты есть. Чаще всего они – антиподы системных программистов, этим все сказано.

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

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

Итог следующий -- как говорил один замечательный персонаж из моего детства, выступавший под никнеймом Карась, «не надо путать жопу с пальцем».
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.