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

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

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

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

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

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

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

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

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

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

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

Итог следующий -- как говорил один замечательный персонаж из моего детства, выступавший под никнеймом Карась, «не надо путать жопу с пальцем».
Re[3]: Системное и прикладное.
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.10.05 20:05
Оценка: 1 (1) +1 :)))
Здравствуйте, sch, Вы писали:

sch>Самое интересное, что я например считаю в голове столбиком


Это действительно интересно. А многие в голове думают, а считают калькулятором или ёкселем.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Системное и прикладное.
От: Andrew.W Worobow https://github.com/Worobow
Дата: 21.10.05 15:14
Оценка: 27 (2)
Здравствуйте, sch, Вы писали:

sch>Давным-давно, когда компьютеры были большими, а деревья маленькими существовали два понятия, ныне практически забытые – системное программное обеспечение и прикладное программное обеспечение.



На самом деле, всё немного не так — тогда когда машины были большими системными програмистами обычно назывались люди занимающиеся обьслуживанием операционных систем... Например таже RSX на PDP'шках генерировалась не меньше рабочего дня... Сейчас бы их назвали системными администраторами... Но в те стародавние времена, они были именно программистами... И 90% вермени они тратили на то, чтобы обьяснить прикладному програмисту почему у него файлы то открываются то нет... А также искали в "сложных" прикладных программах неуловимые ошибки приводящие к аварийному завершению... Ещё их часто доставали продвинутые молодые ученые которые решили воспользоваться компьютеном для решения своих дифиренциальных уравнений....

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

Сейчас такого количества системных программистов уже не надо... А системные администраторы так вообще не умеют программировать...


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

Но зато прикладным программистам, практически не постижимым остаётся диспецеризация, очереди, отложенные процедуры, блокировки, работа с оборудованием, сети, таймеры...

И это нормально, по тому как системщики пищут программы для програмистов, оставаясь на 100% в компьютерной среде. а прикладненики для пользователей частично опереруя понятиями из среды обьека автоматизации...
Не все кто уехал, предал Россию.
Re: Системное и прикладное.
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.10.05 20:05
Оценка: 26 (1) +1
Здравствуйте, sch, Вы писали:

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


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

ЗЫ

Вообще все эти рассуждения — это полнейший бред. Программисты, как и представители любых других проффесий или искуств делятся нмбного более прозаически. Есть программисты от бога которые могут освоить любой язык, любую технлогию. Они продавливают любую сложную задачу и придумывают интересные неординарные решеия. Есть среднячки. Те что неплохо справляются со средними задачами, но порою пасуют перед сложными задачами. Ну, а есть отровенные ламеры (с отдельным подклассом воинствующих ламеров).

Вот и все. А "прикладник"... "системщик" — это все стечение жизненных абстоятельств.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Системное и прикладное.
От: Pavel Dvorkin Россия  
Дата: 25.10.05 06:32
Оценка: 14 (1)
Здравствуйте, sch, Вы писали:

sch>Давным-давно, когда компьютеры были большими, а деревья маленькими существовали два понятия, ныне практически забытые – системное программное обеспечение и прикладное программное обеспечение.


И в те же времена на эту тему было написано довольно неплохое эссе

З А П И С К И П А Р А С И С Т Е М Н О Г О П Р О Г Р А М М И С Т А

http://www.mamb.ru/informal/humor/comphumor/texts/parasyst.koi
With best regards
Pavel Dvorkin
Re: Системное и прикладное.
От: IT Россия linq2db.com
Дата: 10.10.05 17:38
Оценка: +1
Здравствуйте, sch, Вы писали:

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


Это ты вот так запросто взял и поставил знак равенства между системным программированием и C++ и прикладным программированием и Java/.NET?

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


А это к чему Тем более что Карась твой видимо никогда не слышал оригинала, там более хлёсткое сравнение.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re: Системное и прикладное.
От: Кодёнок  
Дата: 10.10.05 18:20
Оценка: +1
Здравствуйте, sch, Вы писали:

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

Также как люди с плохой грамосностью склонны проговаривать слова (са-ба-ка), а люди с абсолютной грамотностью вспоминают, как это слово было написано в какой-нибудь книге (буковки в нарисованные в воображении видят, такие же, как вы сейчас на мониторе видите). Люди с плохой арифметикой когда надо посчитать 34*7 либо тупят и не знают что делать, либо рисуют в воображении процесс вычисления в столбик, сбиваются и заново и т.д.; а люди с хорошей арифметикой (и некоторой математической подготовкой) считают 3*7*10 + 4*7, что с помощью зазубренной таблицы умножения считается в момент.

Вот например сейчас я ступил при вычислении и забыл 4*7, но тут же пришла идея 3*7 + 7, т.е. 28. Замечал за собой и другие приёмы, вроде вместо 28*55 считать 30*55 — 110 = 30*50 + 150 — 110 = 1500 + 40 и т.п. Вот некоторых детей в школе мучают — не соображает мол ничего, а дело всего в освоении десятка шаблонов (приёмов) + запомнить таблицу умножения. Пусть у кого-то любые врожденные способности, но если он занимается рисованием процесса деления в столбик, они ему хрен помогут. Даже если он в пять раз быстрее этот процесс рисует, чем обычные люди.

Я считаю что именно наличие таких шаблонов в мышлении и определяет "склад ума". Там тоже есть что оптимизировать. Это кстати не моя, это старая и не оригинальная уже идея. Просто это всё еще неизведанное по большому счёту. Вроде НЛП чем-то таким занимается, но я не знаком особо (от них много шума и мало чудес ). Главная тут проблема — то, что вам в мозг никто не заглянет, без собственного желания изучить учёные от вас ничего не узнают.

P.S.
Кто я? С математикой и алгоритмами всегда было отлично, не самый из самых, но на олимпиадах по программированию шатался между 5 и 10м местами (три раза всего было) по области (Томской) среди школ, среди учрежд.сред.проф.образ. почему-то всегда первое, очевидно конкуренты послабее Но интерфейсы мои никто не разу не поругал, хвалили. Есть друг-дизайнер, с которым мы всегда можем обсудить юзабилити какой-нибудь системы.
Re[2]: Системное и прикладное.
От: sch  
Дата: 11.10.05 09:49
Оценка: +1
> Вот например сейчас я ступил при вычислении и забыл 4*7, но тут же пришла идея 3*7 + 7, т.е. 28. Замечал за собой и другие приёмы, вроде вместо 28*55 считать 30*55 — 110 = 30*50 + 150 — 110 = 1500 + 40 и т.п. Вот некоторых детей в школе мучают — не соображает мол ничего, а дело всего в освоении десятка шаблонов (приёмов) + запомнить таблицу умножения. Пусть у кого-то любые врожденные способности, но если он занимается рисованием процесса деления в столбик, они ему хрен помогут. Даже если он в пять раз быстрее этот процесс рисует, чем обычные люди.

Самое интересное, что я например считаю в голове столбиком
Posted via RSDN NNTP Server 1.9
Re: Системное и прикладное.
От: nzeemin Россия http://nzeemin.livejournal.com/
Дата: 19.10.05 13:06
Оценка:
Здравствуйте, sch, Вы писали:

sch>Давным-давно, когда компьютеры были большими, а деревья маленькими существовали два понятия, ныне практически забытые – системное программное обеспечение и прикладное программное обеспечение.


Склонен согласиться с VladD2 — "прикладник/системщик — это все стечение жизненных абстоятельств".

Однако, есть в ваших рассуждениях и разумное зерно. Проявляется оно в другом (или — подобном) делении, подчас показывающем себя очень ярко. Это разделение на "server-side men" и "client-side men". (Не помню источник термина, но авторство скорее всего не мое.)

Server-side man'а интересует программирование как таковое, ему интересно создавать большое из небольших частей, реализовать сложную и красивую по своей структуре систему. О том как это будет выглядеть для пользователя он не думает, либо считает что пользователь конечно поймет его замысел и будет легко оперировать используемыми понятиями. SQL/Java/Си — его разговорные языки... Если server-side man берется за пользовательский интерфейс, он строит его строго по имеющейся в программе модели данных.

Client-side man больше интересуется внешними вещами: как будет выглядеть система, каким образом с ней будут работать, каков у нее интерфейс, какая применяется цветовая гамма и как выглядят отчеты, насколько удобно и комфортно работать с системой.

Это действительно два разных способа мышления. Один отталкивается от модели данных, второй — от пользовательского интерфейса.
Себя я определенно отношу ко второму виду.
Re[2]: Системное и прикладное.
От: minorlogic Украина  
Дата: 23.10.05 08:47
Оценка:
Старая мысль про форму и содержание ...
И то и то важно и нужно . Кстати у меня с формами всегда было не супер и оформление кода и интерфейса , зато программная архитектура у меня не подкачала.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Ищу работу, 3D, SLAM, computer graphics/vision.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.