Cyfrowy idealizm? O podobieństwach pomiędzy projektowaniem wizualnym, paradygmatem programowania obiektowego oraz Platońskim idealizmem.

Podobne dokumenty
Modelowanie i Programowanie Obiektowe

Programowanie obiektowe - 1.

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Podstawy Programowania Obiektowego

3. Spór o uniwersalia. Andrzej Wiśniewski Andrzej.Wisniewski@amu.edu.pl Wstęp do filozofii Materiały do wykładu 2015/2016

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Programowanie obiektowe W1 Wprowadzenie. Dr hab. inż. Lucyna Leniowska, prof. UR Zakład Mechatroniki, Automatyki i Optoelektroniki

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego:

Filozofia przyrody - Filozofia Eleatów i Demokryta

Programowanie obiektowe

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Modelowanie diagramów klas w języku UML. Łukasz Gorzel @stud.umk.pl 7 marca 2014

ZARZĄDZANIU. Wykład VI. dr Jan Kazimirski

Filozofia człowieka. Fakt ludzki i jego filozoficzne interpretacje

Dlaczego matematyka jest wszędzie?

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Filozofia, Historia, Wykład IV - Platońska teoria idei

Zaawansowane programowanie w C++ (PCP)

Programowanie Obiektowe

Programowanie obiektowe

Rok akademicki: 2012/2013 Kod: ZIE s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Programowanie Obiektowe i C++

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Filozofia, Historia, Wykład V - Filozofia Arystotelesa

Elementy filozofii i metodologii INFORMATYKI

Filozofia, Pedagogika, Wykład III - Filozofia archaiczna

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Wykład 1. Projektowanie efektywnych algorytmów przetwarzania danych w sieciowych systemach usług, rzeczy i multimediów.

Podstawy modelowania programów Kod przedmiotu

Wprowadzenie do systemów informacyjnych

Autor: Bączkowski Karol Promotor: dr inż. Paweł FIGAT

Paweł Kurzawa, Delfina Kongo

KARTA KURSU. Programowanie obiektowe

Technologie i usługi internetowe cz. 2

Charakterystyka oprogramowania obiektowego

Programowanie i projektowanie obiektowe

Informatyka (10) dr inż. Katarzyna Palikowska Katedra Transportu Szynowego i Mostów p. 4 Hydro

hierarchie klas i wielodziedziczenie

Zaawansowane programowanie w C++ (PCP)

DIETRICH VON HILDEBRAND CZYM JEST FILOZOFIA? Tłumaczenie. Paweł Mazanka Janusz Sidorek. Wydawnictwo WAM

Filozofia, ISE, Wykład V - Filozofia Eleatów.

ZAJĘCIA ARTYSTYCZNE KLASA 3 GIM

Style programowania - krótki przeglad

PRZEWODNIK PO PRZEDMIOCIE

Podstawy Języka Java

Rysunek 1: Przykłady graficznej prezentacji klas.

FILOZOFIA MUZYKI WEDŁUG PLATONA I BOECJUSZA

Krakowska Akademia im. Andrzeja Frycza Modrzewskiego. Karta przedmiotu. obowiązuje studentów, którzy rozpoczęli studia w roku akademickim 2012/2013

Podejście obiektowe - podstawowe pojęcia

Programowanie obiektowe

Projektowanie logiki aplikacji

Filozofia przyrody, Wykład V - Filozofia Arystotelesa

Zaawansowane programowanie w języku C++ Programowanie obiektowe

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Programowanie Obiektowe i C++ Marcin Benke

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

Dziedziczenie. Tomasz Borzyszkowski

Technologie obiektowe

Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne

Modelowanie danych, projektowanie systemu informatycznego

Wzorce projektowe i refaktoryzacja

Programowanie obiektowe

Programowanie obiektowe Object-Oriented Programming. Automatyka i Robotyka II stopień ogólnoakademicki

Technologie informacyjne - wykład 12 -

Diagramy klas. dr Jarosław Skaruz

Polimorfizm. dr Jarosław Skaruz

Filozofia, ISE, Wykład III - Klasyfikacja dyscyplin filozoficznych

Andrzej L. Zachariasz. ISTNIENIE Jego momenty i absolut czyli w poszukiwaniu przedmiotu einanologii

Języki programowania wprowadzenie

Języki programowania deklaratywnego

Mechanizm dziedziczenia

Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18

Języki Programowania. Prowadząca: dr inż. Hanna Zbroszczyk. tel: Konsultacje: piątek:

Św. Augustyn, Wyznania, przekład Z. Kubiak, Znak, Kraków 1997

Programowanie obiektowe. Wykład 4

1. Mapowanie diagramu klas na model relacyjny.

Trochę historii filozofii

Programowanie obiektowe 2 - opis przedmiotu

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Programowanie obiektowe. Wprowadzenie

ZAGADNIENIA NA KOLOKWIA

Programowanie obiektowe

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

KARTA KURSU. Student zna podstawy analizy, projektowania i programowani obiektowego oraz podstawy języka C++.

Wykład 9: Polimorfizm i klasy wirtualne

Materiały do zajęć VII

Programowanie obiektowe Wykład 1. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20

Programowanie obiektowe

KARTA KURSU (realizowanego w module specjalności)

Narzędzia myślenia Słowa - wyobrażenia - pojęcia Wiesław Gdowicz

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Język Java część 2 (przykładowa aplikacja)

Języki i paradygmaty programowania. I. Wprowadzenie

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) stacjonarne (stacjonarne / niestacjonarne)

Filozofia, Socjologia, Wykład II - Podział filozofii. Filozofia archaiczna

Transkrypt:

Dr Jakub Jernajczyk Akademia Sztuk Pięknych im E. Gepperta we Wrocławiu Cyfrowy idealizm? O podobieństwach pomiędzy projektowaniem wizualnym, paradygmatem programowania obiektowego oraz Platońskim idealizmem. 1

Wybrana literatura problemu: 1994: B. Stroustrup, Język C++ 2000: D. Rayside, G. T. Campbell, An Aristotelian Understanding of Object-Oriented Programming 2002: R. Janusz, Program dla Wszechświata. Filozoficzne aspekty języków obiektowych 2006: R. Giguette, Building objects out of Plato: applying philosophy, symbolism, and analogy to software design 2008: J. Jernajczyk, Elementy filozofii w sztuce mediów dyskretnych [maszynopis] 2016: W. Tylman, Computer Science and Philosophy: Did Plato Foresee Object-Oriented Programming? 2

Główne cechy paradygmatu programowania obiektowego: hermetyzacja (enkapsulacja, kapsułkowanie) definiowanie abstrakcyjnych typów obiektów klasy (zazwyczaj) dziedziczenie nadklasy i podklasy hierarchia klas klasy podstawowe i pochodne metody wirtualne, polimorfizm 3

klasa OKRĄG : FIGURA promień klasa FIGURA Rysuj () ObliczPole () kolor pozycja Przesuń (cel) ZmieńKolor (rgb) virtual Rysuj () = 0 virtual ObliczPole () = 0 klasa KWADRAT : FIGURA bok Rysuj () ObliczPole () Obróć (kąt) 4

B. Stroustrup, Język C++ Jeśli myślisz o tym jako o osobnej idei, to uczyń z tego klasę. Jeśli myślisz o tym jako o osobnym elemencie, to uczyń z tego obiekt pewnej klasy. Język C++ zaprojektowano jako dobre narzędzie budowy wielu różnych systemów i do bezpośredniego wyrażania wielu różnych idei. 5

Platon, Timaios, 52 istnieje jeden rodzaj rzeczy, niezmienny, niezrodzony i nieginący, który ani w siebie nie przyjmuje niczego skądinąd, ani sam w nic innego nigdzie nie przechodzi, niewidzialny i w żaden sposób niedostrzegalny oglądać go może tylko myśl rozumna. I drugi rodzaj rzeczy, nazywany tak samo i podobny do tamtego, spostrzegalny, zrodzony, zmienny ustawicznie, który powstaje w pewnym miejscu i znowu stamtąd przepada uchwycić go potrafi mniemanie i spostrzeżenie. 6

Paradygmat programowania obiektowego a Platońska teoria idei (form): klasy jako idee oraz obiekty jako rzeczy wielość i zmienność rzeczy/obiektów a niezmienność i jedność idei/klas Pojęcie «klasy» w programowaniu obiektowym jest Platońskie w tym sensie, że w kontekście działania programu klasy istnieją przed obiektami (tak jak idee preegzystują względem rzeczy materialnych) oraz są używane jako wzory do wytwarzania obiektów. (Rayside & Campbell, 2000) 7

Hierarchiczna struktura rzeczywistości u Platona: świat pierwszych i najwyższych zasad (Jedno i Diada) świat idei: liczby i figury idealne idee najogólniejsze metaidee idee szczegółowe świat bytów matematycznych świat zmysłowy Analogia do hierarchii klas poziom niższy nie może istnieć bez wyższego; można usunąć to co zależne, ale nie odwrotnie. 8

Metafizyka Arystotelesa: parze klasa obiekt lepiej odpowiadać może para forma synolon (konkretne połączenie formy i materii) Możemy powiedzieć, że klasy w programowaniu obiektowym są Arystotelesowskie w takim sensie, że programista w obszarze danego zagadnienia ogarnia najpierw elementy jednostkowe (obiekty) a dopiero potem opracowuje zawierające je pojęcia abstrakcyjne (klasy). (Rayside & Campbell, 2000) 9

Dwa modele programowania obiektowego: oparte na klasach (C++, C#, PHP, Java) bliższe Platonowi oparte na prototypach (JavaScript, Python) bliższe Arystotelesowi 10

Mechanizm dziedziczenia a system Plotyna: wyłanianie się (emanacja) kolejnych poziomów bytu (hipostaz) z zasady najwyższej (Jednego) Jedno to coś absolutnie prostego, co jest racją bytu tego co złożone i mnogie. Prostota Jednego nie jest uboga Jedno jest nieskończoną mocą. Wszystkie byty są bytami dzięki jedności (Enneady, VI, 9, 1) j. j. j. Jedno Umysł Dusza byty fizyczne Uwaga: Umysł i Dusza nie są tu tożsame z ludzkim umysłem oraz duszą; dla Plotyna oznaczają one odrębne poziomy bytu. 11

Podział języków obiektowych (jeden z wielu możliwych): brak wspólnego korzenia dla wszystkich klas/obiektów np. C++, PHP istnieje jeden korzeń nadklasa dla wszystkich klas/obiektów np. C#, Java, Ruby 12

Podobieństwa do idealizmu i obiektowości na poziomie narzędziowym: przed-filozoficzne, praktyczne intuicje: wzór i obraz, oryginał i kopie, matryca graficzna i odbitki, formy przemysłowe, schematy wizualne narzędzia cyfrowe do projektowania i edycji grafiki: tworzenie ogólnych wzorców oraz zależnych od nich instancji możliwość modyfikacji struktury wewnętrznej wzorców przykładowe narzędzia: Adobe After Effects, Toom Boom Harmony, Adobe Premiere, SketchUp, Adobe Director prezentacja środowiska Adobe Flash (obecnie Animate) 13

Omówienie rozważanych analogii w środowisku Adobe Flash (Animate): enkapsulacja zamykanie w symbolach własności i zachowań dualizm symboli i ich instancji (w analogii do par: klasa obiekt, idea rzecz) wiele instancji tego samego symbolu (różnice zewnętrzne) zależność instancji od symboli (istnienie oraz zmiana cech wewnętrznych) mechanizmy dziedziczenia (powielanie symboli) dwa podejścia: Platońskie (projektowanie symboli) i Arystotelesowskie (przekształcanie na symbole) 14

Dyskusja dotycząca możliwych źródeł rozważanych analogii: bezpośrednia i świadoma inspiracja inspiracja nieuświadomiona (Platonizm obecny w kulturze) całkowicie przypadkowa zbieżność podobnych koncepcji oddziaływanie podobnych przed-naukowych koncepcji na różne dziedziny ludzkiej aktywności, w różnych okresach 15