Programowanie - Google

Programowanie

Z Wikipedii

Skocz do: nawigacji, szukaj

Programowanie to proces projektowania, tworzenia i poprawiania kodu źródłowego programów komputerowych lub urządzeń mikroprocesorowych (mikrokontrolery). Kod źródłowy pisze się z użyciem reguł określanych przez wybrany język programowania. Programowanie wymaga dużej wiedzy i doświadczenia w wielu różnych dziedzinach, jak projektowanie aplikacji, algorytmika czy działanie komputerów. W inżynierii oprogramowania, programowanie (implementacja) jest tylko jednym z etapów powstawania programu.

Między programistami trwają nieustanne debaty, czy programowanie jest sztuką, rzemiosłem czy procesem inżynieryjnym. Bezpośrednią formą sztuki w tej dziedzinie jest demoscena.

Inną debatą dotyczącą tego przedmiotu jest stopień, w jakim język programowania wpływa na formę, jaką przybiera oraz jak funkcjonuje końcowy program. Jest ona analogiczna do hipotezy Sapira-Whorfa w lingwistyce.

Spis treści

[edytuj] Programiści

Zobacz więcej w osobnym artykule: Programista.

Osoba programujÄ…ca komputery nazywa siÄ™ programistÄ… lub potocznie koderem. Ich praca zazwyczaj obejmuje:

[edytuj] Języki programowania

Język programowania wymusza użycie konkretnego stylu programowania (zwanego paradygmatem programowania). Wybór konkretnego języka może zależeć od indywidualnych upodobań, polityki firmy tworzącej oprogramowanie lub ze względu na zadanie, jakie końcowa aplikacja ma realizować. W przypadku większych projektów istotne jest też, jak szybko można znaleźć odpowiednio wykwalifikowane osoby znające konkretny język, czy uda się z nich stworzyć sprawny zespół oraz dostępność kompilatorów/interpreterów.

[edytuj] Historia programowania

Programowanie komputera analogowego ELWAT z końca lat 60. XX wieku, przez łączenie tablicy połączeń.
Programowanie komputera analogowego ELWAT z końca lat 60. XX wieku, przez łączenie tablicy połączeń.

Za najwcześniejszą programowalną maszynę uważa się Krosno tkackie Josepha Marie Jacquarda skonstruowane w 1801 roku. Maszyna korzystała z kart dziurkowanych, na których zapisany był wzór tkaniny do wytworzenia. Zmieniając zestaw kart, można było uzyskać tkaniny z innymi wzorami. Pomysł ten został później podchwycony przez Hermana Holleritha z IBM.

W 1833 roku Charles Babbage zaczyna budowę maszyny analitycznej będącej w istocie mechanicznym, programowalnym protokomputerem, który wyprzedzał swoją epokę. Z powodu trudności konstrukcyjnych wynalazca nie dokończył swojego wynalazku, lecz projekt został opisany przez Adę Lovelace (umożliwiło to zbudowanie repliki urządzenia w czasach obecnych), która napisała także dla niego pierwszy program obliczający liczby Bernoulliego i w ten sposób została pierwszym programistą (a właściwie programistką) w historii.

Wynalezienie architektury von Neumanna umożliwiło przechowywanie programów komputerowych w pamięci operacyjnej komputera razem z danymi. Pierwsze programy musiały być składane bezpośrednio z operacji oferowanych przez konkretną maszynę, często w notacji binarnej. Każdy model używał innego zestawu komend, co ograniczało przenośność. W późniejszych latach zaprojektowano pierwsze asemblery, gdzie programista mógł wpisywać instrukcje w formacie tekstowym z wykorzystaniem zapisu symbolicznego zamiast numeru rozkazu, np. ADD X, TOTAL. W 1954 roku stworzony został pierwszy język programowania wysokiego poziomu, FORTRAN, gdzie programiści mogli bezpośrednio formułować wyrażenia matematyczne w podobnym stylu, do jakiego jesteśmy przyzwyczajeni: y = x^2 + 5*x – 7. Tekst programu, lub inaczej jego źródło, było tłumaczone do postaci zrozumiałej dla maszyny za pomocą specjalnej aplikacji zwanej kompilatorem. W późniejszych latach powstały nowe języki programowania, często zorientowane do tworzenia konkretnych typów aplikacji.

W początkowych latach istnienia komputerów (ok. 1940-1960), programy komputerowe były wprowadzane do pamięci komputera za pośrednictwem kart dziurkowanych lub papierowych taśm. Pod koniec lat sześćdziesiątych pojawiły się pierwsze urządzenia do elektronicznego przechowywania informacji oraz terminale komputerowe, dzięki którym kod źródłowy mógł być wprowadzany bezpośrednio do komputera za pomocą edytorów tekstu.

Wraz z rozwojem Internetu oraz sieci komputerowych pojawiły się narzędzia ułatwiające zespołową pracę nad programami, takie jak systemy kontroli wersji. Kod źródłowy jest tutaj przechowywany na centralnym serwerze, natomiast programiści wysyłają do niego poprawki z własnych kopii lokalnych. Wszystkie zmiany są rejestrowane, a program zarządzający potrafi inteligentnie łączyć ze sobą fragmenty modyfikowane niezależnie przez dwóch programistów, dzięki czemu nie może zaistnieć sytuacja przypadkowego skasowania efektu pracy innego członka zespołu.

Obecnie programowanie jest atrakcyjną karierą w niemal każdym kraju rozwiniętym, ze względu na stale rosnący popyt na nowe aplikacje komputerowe. Niektóre z najbogatszych osób świata są programistami z zawodu, np. Bill Gates (Microsoft), Larry Ellison (Oracle), Larry Page (Google) czy Hasso Plattner (SAP).

[edytuj] Nowoczesne programowanie

Współcześni programiści korzystają z wielu specjalistycznych narzędzi wspomagających tworzenie i zarządzanie złożonymi aplikacjami. Proces tworzenia programu komputerowego zazwyczaj rozpoczyna się od stworzenia analizy wymagań oraz zaprojektowania architektury. Popularnymi technikami modelowania są tutaj OOAD oraz MDA. Unified Modelling Language (UML) jest powszechnie akceptowaną notacją do prezentowania obu z nich.

Dopiero wtedy następuje tworzenie właściwego kodu źródłowego. Przy złożonych aplikacjach korzysta się z zaawansowanych środowisk IDE wyposażonych w szereg dodatkowych menedżerów pokazujących różne informacje o strukturze aplikacji oraz w rozbudowany system wykrywania i usuwania błędów. Popularnymi środowiskami IDE są Visual Studio firmy Microsoft oraz projekt Eclipse nadzorowany przez IBM.

Obecnie istotnym zagadnieniem jest kontrolowanie wersji kodu źródłowego co często realizowane jest w sposób rozproszony przez wielu programistów. Im większy system (np. taki jak system operacyjny: FreeBSD, NetBSD itp.) tym większe znaczenie ma integrowanie wielu zmian oraz zarządzanie nimi (np. śledzenie zmian niezależnie od np. przemieszczania się plików itp.). Do takich systemów zaliczyć można np. CVS, Subversion, svk, GIT i inne. Wiele dużych, komercyjnych środowisk programistycznych zinterowanych jest z system kontroli wersji, do takich zestawów narzędzi zaliczyć można np. Microsoft Visual Studio itp.

Usuwanie błędów z gotowej aplikacji jest ostatnim krokiem rozwoju oprogramowania. Trudność jego realizacji zależy od środowiska, jakości kodu źródłowego oraz wybranego języka programowania.

[edytuj] Zawody programistyczne

Od kilku dekad organizowany jest szereg konkursów programistycznych skierowanych przeważnie do młodych programistów (studentów, uczniów szkół średnich). Pozwalają one na zmierzenie się z różnymi zadaniami algorytmicznymi oraz na wyłapanie utalentowanych młodych ludzi, którzy mogą później stanowić trzon zespołów w największych firmach. W Polsce najbardziej znanym tego typu konkursem jest skierowana do uczniów szkół średnich Olimpiada Informatyczna organizowana przez Ministerstwo Edukacji.

Osobliwą formą zawodów programistycznych są kompoty (od ang. competition) organizowane przez społeczność demosceniczną na zlotach takich jak np. Assembly. Kategorie Demo i intro w głównej mierze skupiają się na konkurencji w umiejętności tworzenia najwydajniejszego kodu lub wykazania niezwykłego programistycznego polotu. Często też mają miejsce kategorie, w których ogranicza się rozmiar kodu np. 4 KB, 8 KB, 64 KB 96 KB itp. W takim przypadku autor lub autorzy próbują zbudować niezwykle urozmaicony i rozbudowany program multimedialny mieszczący się w zadanych ramach.

[edytuj] Zobacz też

Wikibooks
Zobacz publikacjÄ™ na Wikibooks:
Programowanie komputerów

[edytuj] Linki zewnętrzne

Materiały dydaktyczne MIMUW na studia informatyczne I stopnia:

Materiały dydaktyczne MIMUW na studia informatyczne II stopnia:


2 tys. programistów pracuje nad Windows 7
Nad następcą Windows Vista pracuje 25 zespołów, z których każdy liczy sto osób. Jak donosi serwis Computerworld inżynierowie Microsoftu zajmują się równocześnie nad wszystkimi aspektami nowego systemu operacyjnego, począwszy od interfejsu użytkownika, aż po komunikację sieciową.
Karty Radeon HD 4600 już wkrótce
Już niedługo do sprzedaży trafią karty graficzne ATI z serii Radeon HD 4600.
Cordless Desktop Wave dla profesjonalistów
Firma Logitech, znany producent urządzeń peryferyjnych, zaprezentował swój najnowszy zestaw wskazujący - Cordless Desktop Wave Pro.
ICom PrestigeBook 8530 - niedrogi, a taki wydajny
Firma ICom wprowadza na rynek nowy komputer przenośny. Model PrestigeBook 8530 cechuje wysoka wydajność i niewygórowana cena, dzięki czemu jest on obiektem marzeń niejednego gracza.
Włamał się na konta swojego nauczyciela
Do trzech lat więzienia grozi uczniowi z Krosna, który włamał się na konta internetowe swojego nauczyciela – poinformował wczoraj serwis Wirtualne Media.
Linki: Strona g³ówna