Programowanie wieloplatformowe - PowerPoint PPT Presentation

About This Presentation
Title:

Programowanie wieloplatformowe

Description:

Title: Programowanie wieloplatformowe przeno no kodu Author: 112 Last modified by: GE Power Systems Created Date: 10/29/2003 1:41:05 PM Document presentation ... – PowerPoint PPT presentation

Number of Views:82
Avg rating:3.0/5.0
Slides: 22
Provided by: 112119
Learn more at: http://www.granie.org
Category:

less

Transcript and Presenter's Notes

Title: Programowanie wieloplatformowe


1
Programowanie wieloplatformowe przenosnosc kodu
2
Wstep
  •        kiedys programy pisane pod konkretna
    maszyne
  •        system operacyjny wszyty przez producenta
  •        bardziej uniwersalne platformy -gt os
    niezalezny
  •        wreszcie zlecanie zewnetrznym firmom
    pisania OSów
  •        MS-DOS (1981) rok na zlecenie IBM
    (przystosowanie 86-QDOSa)
  •        niedlugo pózniej PC-DOS (IBM) oraz DR-DOS
    (Digital Research)
  •         sukces PC nie byl pewny, MS-DOS mial byc
    raczej niszowym produktem,
  • tymczasem w 1991 w USA bylo 50 mln kopii
  •        Windows 1.0 1984
  •        Windows 3.0 1990
  • dziesiec lat po DOSie Linux (dziecko Linusa
    Torvaldsa), na podobienstwo Unixa, który powstal
    w 1969 r.

3
Wstep, cd.
  •        Potrzeba przenoszenia progów miedzy nimi.
  •        Systemy stworzone do róznych zadan nie
    wymagaja tego, natomiast systemy
  • ogólnego zastosowania jak Windows XP czy
    Linux tak
  •        czemu nie wymieniac najlepszych aplikacji
  •        praktyka pokazuje, ze nie jest to takie
    latwe
  •        na razie wybór OS rzutuje na programy
  •        czesc firm sprzedaje rózne wersje na
    rózne OSy
  •        np. Platnik nie )
  • powody
  •        lekcewazenie grup uzytkowników
    najczesciej zwiazanych z darmowym softem
  •        faworyzowanie monopolisóów
  •        brak fachowej wiedzy
  • A DZIS DO DYSPOZYCJI MAMY SPORO DOBRYCH I
    DARMOWYCH NARZEDZI!

4
Przenoszenie kodu problemy
  •        nawet funkcje standardowe nie gwarantuja
    przeniesienia
  •        rózne wyniki lub brak startu na innym
    OSie
  •        Opisze na C
  •        STL (standard template library)
    rozbudowane, wymagana dobra wydajnosc
  •        duzy naklad pracy, aby twórcy kompilatora
    zaimplementowali
  •        nawet najwieksi twórcy IDE do C - MS,
    Borland rezygnuja z czesci funkcji
  •        czasem istnieja, ale robia co innego
    (obsluga szablonów w VC 6.0)
  • róznica miedzy sztandarowymi komp. Win VC i
    Lin gcc jest bardzo dluga (obsluga plików
    naglówkowych, rozwijanie funkcji inline, szablony
    etc.)

5
Wyniki testu kompatybilnosci
  • Wyniki przeprowadzonego testu kompatybilnosci ze
    standardem
  • zgodnosci nazwa kompilatora
  • 99 Microsoft VC V7 (.NET), included library
    supplied by Dinkumware
  • 97 Microsoft VC V6, added Dinkum C
    Library for VC V3.08
  • 93 Metrowerks CodeWarrior for Windows V8.0,
    included library
  • 89 Sun Forte Developer 7 C V5.4, included
    STLport library (optional)
  • 88 Borland CBuilder V6, included STLport
    library (default)
  • 86 GCC V3.2, included LibStdC library
  • 84 Microsoft VC V6, included library
    supplied by Dinkumware
  • 80 Sun Forte Developer 7 C V5.4, included
    RogueWave library (default)
  • 77 Borland CBuilder V6, included RogueWave
    library (optional)

6
Inne róznice miedzy kompilatorami C
  • - poza zgodnoscia róznice w wydajnosci
  • - przydzial pamieci pod gcc szybciej o rzad
    wielkosci niz w VC
  • - gcc nie monitoruje tak skrupulatnie pamieci
  • - 1 s na Linux, 8 s na Windows
  • - typowy wplyw to ok . 20 czasu programu
  • - szybka grafika 3d lepsza pod Windows

7
Narzedzia i biblioteki ulatwiajace przenoszenie
kodu
  • Jezyki zaprojektowane jako przenosne m.in. Java
  •  
  •        maszyna wirtualna, której funkcje sa
    zaimplementowane niezaleznie dla kazdego OSu
  •        bardzo wolna, o ile nie wykorzystuje sie
    instrukcji udostepnianych przez konkretny OS lub
  • procesor a wtedy strata przenosnosci
  •        minus trzeba zainstalowac MW javy, wiec
    nasz program ma wymagania co do bibliotek
  • nieobecnych w systemie.
  •        Czasem programy zachowuja sie inaczej na
    róznych wersjach MW lub wymagaja
  • dodatkowych bibliotek
  •        Moze kiedys bedzie szybka, na razie za
    uniwersalnosc placimy spadkiem wydajnosci
  • Jest mimo to calkiem dobrym pomyslem

8
Narzedzia i biblioteki ulatwiajace przenoszenie
kodu, cd.
  • biblioteki do znanych jezyków oprogramowania  
  • wxWindows (C, Python, Basic i inne)
  • QT (C)

9
wxWindows wprowadzenie
  •  
  •        wxWindows jest zbiorem bibliotek
  •        calosc zaprojektowana jako system klas
    (latwo rozwijac funkcjonalnosc poprzez
  • dziedziczenie, latwo modyfikowac juz
    istniejace klasy)
  •        po 1 bibliotece na kazdy interfejs
    uzytkownika (windows, GTK, Motif, Mac)
  •        udostepnia pelne API w C oraz
    ograniczone w kilku innych jezykach - Python,
    Basic
  •        praca na plikach
  •        obsluga sieci, w tym socketów
  •        obsluga watków

10
wxWindows wprowadzenie
  •        zawiera podstawowe struktury danych
    string (lancuchy), tablice, listy, tablice
    haszujace
  •        wbudowana obsluga html- a (prosta w
    uzyciu)
  •        wirtualne systemy plików
  •        obsluga OpenGL
  •        duze rozposzechnienie, latwy dostep do
    pomocy i innych zasobów (gt20k stron www)
  •        latwy do nauczenia (wszystko jest pod
    reka - przyklady, sensowny podzial na klasy)
  •        dobrze wspólpracuje z innymi
    technologiami specyficznymi dla platformy (np. z
    MFC w Windowsach)

11
wxWindows wprowadzenie
  •        obsluga drukowania
  •        zintegrowany z systemem debugger
    (specjalna klasa komunikujaca sie z innymi)
  •        wsparcie dla Unicode
  •       minusy
  • - nie pozwala na obsluge wyjatków w ramach
    swoich klas
  • - nie ma szablonów (tylko klase
    pseudoszablonów), choc pozwala korzystac np. z
    szablonów STL

12
wxWindows historia
  •         Minimum historii wxWindows
  • 1992 rok. Julian Smart ( pracujac w Artificial
    Intelligence Applications Institute w University
    of Edinburgh) potrzebuje biblioteki, która dziala
    w windows i na opartych na X uniksowych stacjach
    roboczych.
  • Istniejace rozwiazania sa dla niego zbyt
    drogie. Pisze wxWindows
  • w windows
  • x uniksowy X
  • 1996 lekka stagnacja. Szybki rozwój
    technologii javowych. Pytanie, czy ktos
    potrzebuje
  • bibliotek do C ? Dodatkowo kod byl juz mocno
    pogmatwany (wiele osób go tworzylo). Przepisac
    albo porzucic. Decyzja pisac. Obsluga GTK
  • 1998 port na Macitosha
  • 2000 dodanie wewnetrznej obslugi html-a
  • dzis port na OS/2

13
wxWindows interfejs
 
14
wxWindows klasy
  •         Przykladowe klasy wxWindows
  • wszystkie dziedzicza z wxObject
  •  
  •        Zwiazane z interfejsem graficznym
  • wxBitmap, wxButton, wxBitmapButton, wxBrush,
    wxCheckBox, wxColour(rep. Kolorów), wxComboBox,
    wxDC (Device Context bezp. Operacje na oknach
    wzorowane na rozwiazaniu z Windows), wxFont,
    wxGrid (siatka do tabel), wxListBox, wxMenu,
    wxPoint, wxRect,wxDCClipper, ...
  •  
  •        Zwiazane z plikami
  • wxFile, wxFileStream, wxFFile (buforowany
    dostep), wxFileSystem (ciekawa, pozwala na dostep
    do wlasnego systemu plików niezaleznego od OSu),
    ...

15
wxWindows klasy, cd.
  •         Przykladowe klasy wxWindows, czesc druga
  •        Klasy wspomagajace programowanie i
    algorytmy
  • wxArray, wxArrayString,wxList, wxDatabase
    (reprezentacja bazy ODBC), wxMutex (wsparcie dla
    wielowatkowosci), wxString, wxHashTable, ...
  •        Klasy rózne
  • wxWave (dzwiek), wxFileDialog (menu wybóru
    plików, katalogów) i setki innych
  • W sumie ponad 300 klas, 5000 funkcji, 1,3 MLN
    linijek kodu, wartosc przedsiewziecia w 2001
    oceniana byla przez niezaleznych analityków na
    41,000,000 )

16
wxWindows rózne
  • Licencja
  •      wiele róznych
  •      GPL, freeware, komercjalna
  •      dlatego tez jest tak lubiany i popularny
  •  
  • Ciekawy pomysl z "wielkosciowaniem" okna. Klasa
    wxSizer pozwala na podzial ekranu na czesci
    funkcjonalne. Ulatwia przenoszenie, jesli rózne
    jednostki i wymiary ekranów na róznych
    platformach.
  • Podrecznik do wxWindows ma 1700 stron,
    dokumentacja jest rozprowadzana z programem.
  • STRONA WWW www.wxwindows.org

17
QT opis
  • QT (produkt norweskiej firmy TrollTech)
  •        wxWindows nie jest jedyny
  •      QT jest bardzo popularny pod Linuksem
  •        1550 najtansza, 1-stanowiskowa wersja
    komercjalna
  •        wersje GPL dla Linuxa, Maca i innych,
    ale tylko na tworzenie darmowego softu
  • ( niekomercyjna )
  •        równiez jest to system klas
  •        w przeciwienstwie do wxWindows, gdzie
    nie ma swietnych "wizardów", tutaj sa
  • STRONA WWW www.trolltech.com

18
QT klasy
19
Aplikacje rozwiniete przy uzyciu opisanych
bibliotek
  • wxWindows
  •        StoryLines ( narzedzie do pisania
    scenariuszy, wyglada jak wave-editor edytory
  • okladek)
  •        Audacity audio editor
  •        Intuitive (mixer muzyki, wykorzystuje
    grafike ? 3D)
  •        HelpBlocks (edytor helpa, obsluga htmla)
  •        Ground Control Station for Unmanned
    Planes, Geneva Aerospace
  •        VULCAN - modelowanie 3D dla kopalni
  •        cn3D dla National Center for
    Biotechnology Information (USA), ogladanie
    sekwencji
  • nukleotydów, bialek, a nawet
    calego genomu
  •        Zeemo (wymiana plików p2p)
  •        Flakarchiver - zarzadznie archiwami,
    kompresja i dekompresja
  • Kto jeszcze go uzywa
  • Lockheed-Martin, Netscape, Xerox, NASA, AMD,
    Intel Graphics Lab, Compaq, California Institute
    of Technology, REDSonic, ...

20
Aplikacje rozwiniete przy uzyciu opisanych
bibliotek, cd.
  • QT
  • sporo ogólnodostepnych aplikacji pod Linuksem
    (firma centralnie sie nimi nie chwali)
  • ponadto jest uzywana w
  •        Boeing
  •        Canon
  •        Shell
  •        Sony
  •        NASA
  •        Pioneer
  •        IBM
  •        Siemens

21
PODSUMOWANIE
  •        Programowanie na kilka platform wcale nie
    jest trudne.
  •        Mamy w reku przynajmniej 2 podejscia
    biblioteki do znanych nam jezyków programowania
  • lub caly jezyk prog.
  •        istnieja dobre narzedzia, warto od razu
    zaprojektowac aplikacje jako wielosystemowa
  •        wielkie firmy korzystaja juz z
    proponowanych rozwiazan

Caly wyklad ( slajdy, szerszy opis i w
przyszlosci opracowanie ) znajduje sie w sieci na
stronie www.mardo.prv.pl
Write a Comment
User Comments (0)
About PowerShow.com