« Отговор #3 -: Oct 04, 2012, 12:41 »
По принцип аз знам за System programming (Системно програмиране) и Application programming (Приложно програмиране). Ще се опитам с няколко думи и без претенции за пълна прецизност да разкажа...
Системно програмирене е да пишеш програмки, които да си говорят директно с ОС, изискват услуги от нея, управляват ресурсите ѝ. Примери за системен софтуер са основните команди, които пускаш от конзола (coreutils в GNU) - cat, wc, ls, head и т.н., различните сървъри за услуги (уеб сървъри (apache и ко), пощенски сървъри (postfix и ко), СУБД(postrgres и ко) и т.н.), програмирането на ядра и модули за ядра мисля, че също влизаше, програмирането на компилатори и интерпретатори за езици за програмиране, програмки от сорта на mdadm, lmsensors и неща в подобен дух.
За да си говори директно със системата, системният софтуер ползва основно библиотеките за езика си и системните функции (примитиви, ABI) на твоята ОС.
Приложен софтуер е нещо като едно ниво над системния. Например - nautilus, dolphin и ко са файлови мениджъри, които ти използваш, за да си управляваш файловете. Те са направени с удобен интерфейс, ориентиран в услуга на теб, потребителя. На практика те са една приложна обвивка на системни програми като ls, cp, mv, rm и т.н. Системните програми често дефинират API, чрез което приложните програми да могат да се свързват с тях и да ги викат в своя услуга.
Приложен софтуер (application) е твоя уеб браузър, пощенски клиент, phpMyAdmin, графичните инструменти за конфигуриране на хардуер, IDE-тата и още много други.
Има и нещо, наречено middleware, което е по средата между тези две „нива“. За пример дават TCP/IP стека.
Аз не бих посмяла да разделя езиците на системни и приложни. C е типичен пример, тъй като има много системен софтуер, изписан на него, но това не означава, че няма както системен софтуер, написан на друг език, така и приложен софтуер, написан на C. За мен system и application са прилагателни за програмите, не за езиците.
За Python - мисля, че на него съвсем спокойно може да пишеш не само приложен, но и системен софтуер. Пример за системен софтуер, написан на Python, би трябвало да е PyPy.
И, накрая, относно Python за новаци - Python е ООП език. Добре е първо да имаш предства за процедурно програмиране с някой подходящ за това език (типични примери май са C, Pascal, Perl също може да мине), а в последствие да се запознаеш с обектно-ориентирания начин на мислене. Лично мое мнение е, че Python има по-хубава ООП парадигма от Java и C++, така че би трябвало да е добър избор за научаване на ООП.