Programowanie komputerowe, znane również jako kodowanie, jest procesem tworzenia oprogramowania.
Czym dokładnie jest oprogramowanie i jak jest tworzone?
Czym jest oprogramowanie?
Oprogramowanie jest zestawem instrukcji dla komputera do wykonania.
To trochę jak przepis kulinarny:
- Wbij jajko do miski
- Wbij jajko
- Postaw patelnię na średnim ogniu
- Posmaruj patelnię
- Wlej jajka na patelnię
- I tak dalej
Zamiast manipulować składnikami, komputery manipulują danymi.Instrukcje wewnątrz oprogramowania wyglądają bardziej tak:
- Wczytaj pewne dane
- Wczytaj inne dane
- Przekształć te dwa bity danych w dane wynikowe
- Wyślij dane wynikowe do monitora w celu wyświetlenia
- Wyślij dane wynikowe przez Internet
- I tak dalej
Instrukcje te są zwykle nazywane kodem źródłowym.Kod źródłowy to po prostu zestaw pisemnych instrukcji, które komputer może zrozumieć.
Jak wygląda kod źródłowy?
Kod nie jest pisany w językach naturalnych, takich jak angielski.
Oto mały program napisany w języku zwanym Ruby:
require 'open-uri'require 'json'FRONT_PAGE_URL = 'https://reddit.com/r/all.json'front_page = JSON.load(open(FRONT_PAGE_URL).read)top_post = front_pageputs 'The top post on reddit is:'puts top_postputs top_post
Ten program wyświetla aktualny top post na reddicie, jak poniżej:
The top post on reddit is:One of my favourite things about working in the ski fieldshttp://i.imgur.com/hWwlWgI.jpg
Tutaj jest dokładnie ten sam program, napisany w podobnym języku zwanym Python:
import urllib, jsonFRONT_PAGE_URL = "https://reddit.com/r/all.json"front_page = json.loads(urllib.urlopen(FRONT_PAGE_URL).read())top_post = front_pageprint "The top post on reddit is:"print top_postprint top_post
Tutaj jest ten sam program w inaczej wyglądającym języku o nazwie Clojure:
(require ')(def front-page-url "https://reddit.com/r/all.json")(let ))] (println "The top post on reddit is:") (println (get top-post "title")) (println (get top-post "url")))
Jak widać, języki programowania bardzo różnią się od języków naturalnych.Języki naturalne są wieloznaczne, mają wiele różnych warstw znaczeniowych – sarkazm, innuendo i tego typu rzeczy.To jest świetne, jeśli komunikujesz się z człowiekiem, ale komputery nie rozumieją nic z tego.
Komputery biorą wszystko dosłownie.Jeśli zapytasz komputer, czy liczba jest nieparzysta czy parzysta, zawsze odpowie „tak”.”Nawet nie żartuję – oto kod Ruby:
puts (5.odd? or 5.even?)
Ten kod wyświetla „true”, co jest technicznie poprawne.Liczba pięć jest albo nieparzysta albo parzysta, ale nie o to mi chodziło.
To coś więcej niż tylko pisanie kodu
Pisanie kodu to tylko jedna część tworzenia oprogramowania.
Duże kawałki oprogramowania – jak Windows, OS X, czy gry dla dużych budżetów – składają się z milionów i milionów linii kodu.Kiedy ma się tak dużo kodu, trzeba zaplanować, jak kod zostanie napisany i jak różne jego części będą ze sobą współpracować.Ten rodzaj planowania nazywa się projektowaniem lub architekturą.W dużych projektach dużo czasu spędza się na projektowaniu i architekturze, zanim kod zostanie napisany.
Kolejną dużą częścią tworzenia oprogramowania jest testowanie.To, że kod został napisany, nie oznacza, że jest poprawny.Aby uniknąć tych problemów, profesjonalni programiści mają różne sposoby na testowanie swojego kodu.
Jest jeszcze debugowanie, czyli proces badania, diagnozowania i naprawiania problemów w kodzie źródłowym.