Informatika2-2012/Eloadas13

A MathWikiből
A lap korábbi változatát látod, amilyen Stma (vitalap | szerkesztései) 2012. május 9., 00:23-kor történt szerkesztése után volt.

<-- vissza

Tartalomjegyzék

Körültekintés a nagyvilágban python szemmel

Miért is jó a python

A python alapvető célja a könnyű és széleskörű felhasználhatósága. Megalkotása során nem volt cél az optimalizált program futás vagy a kereskedelmi szoftver kívánalmainak teljesítése.

Így aztán önmagában nem alkalmas bonyolult számításokra vagy ellenőrzött csatornákon elérhető alkalmazások kialakítására.

Ha ezek nem, akkor mire igen: rengeteg felhasználása van

Habár lassabban fut a Java vagy C nyelvnél mégis első esetben 3-5 míg második esetben akár 8-10 szer kevesebb kóddal valósítható meg ugyanaz a program. Ebből következtetve inkább "ragasztó" nyelvnek mondják a python-t. Azaz hogy az időigényes feladatokat ellátó részeket C ill C++ nyelven míg a közöttük kialakított infrastruktúrát python nyelven valósítják meg.

Ebből adódóan:

  • automatizált test, build rendszerek írására tökéletes
  • saját cégen belüli eszközök
  • egyéni segéd programok
  • stb.

Python nyelvben nincs adat védelem. Azaz ha látunk egy komponenst, akkor minden elemét látjuk és módosíthatjuk is. :) Szoktál mondani: "a python felnőtt embereknek találták ki" Ez ugye biztonságkritikus rendszereknél nem jöhet szóba, persze vannak technikák amikkel megfelelő interfészek mögé tudjuk rejteni alkalmazásunkat. Ilyen technika pl. az internet.

Így aztán internetes alkalmazások írására tökéletes. Erre több nagyszerű példát is találunk:

Továbbá JIT nyelv azaz "Just In Time" tehát tökéletes még ismeretlen elemeken működő programok írására. Minta ahogy a JavaScript a webes világ DOM-on való munkára a python a Maya nevű 3D kép és animáció készítő script nyelve.

egy kis önfényezés

Példák

Projekt kezelő rendszer: Trac

A webalkalmazások egyik ékes példája. Célja hogy a szoftver fejlesztést megkönnyítse azzal hogy egy feladat kezelő rendszert adjon a fejlesztők alá, kiegészítve mindenféle csatolható alkalmazással. (Java-s nagy testvére a Jira )

Build rendszerek

A építő rendszerek alapvetően azt a célt próbálják megvalósítani, hogy a fejlesztő válláról levegyék a terhet az automatizálható build (configuráció, fordítás), és deploy (telepítés) feladatokat elvégzésével.

GUI megvalósítások

  • wxPython - GUI toolkit
    • open-source
    • "platform független" (32-bit Microsoft Windows, legtöbb Unix vagy unix-szerű rendszer, és Macintosh OS X.
  • Tkinter - python kapcsoló a Tk GUI-hoz

Játékok

Mindkettő animációk-, rajzok-, képek-, ablakozó rendszerek-, események kezelését valósítják meg. A python kód hordozhatóságára építve a platformfüggetlenség az egyik fő céljuk. Utóbbi már a hordozható érintőképernyővel rendelkező eszközöket is képes kezelni, mint pl. iPad, Android tablet stb.

Egyszerű ablak megjelenítése egy gombbal a közepén.

from kivy.app import App
from kivy.uix.button import Button
 
class TestApp(App):
    def build(self):
        return Button(text='Hello World')
 
TestApp().run()

3D

OpenGL támogatás a PyOpenGL keresztül.

  • Így elérhető az OpenGL által nyújtotta lehetőségek python alatt is.
  • Kompatibilis más GUI rendszerekkel mint a wxPython, pyGTK stb.

Web framework

Nagyon egyszerűen és tisztán használható webalkalmazás keretrendszer, sok-sok hasznos kiegészítővel.

Egyszerű webalkalmazás:

from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
 
class MainPage(webapp.RequestHandler):
    def get(self):
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.out.write('Hello, webapp World!')
 
application = webapp.WSGIApplication(
                                     [('/', MainPage)],
                                     debug=True)
 
def main():
    run_wsgi_app(application)
 
if __name__ == "__main__":
    main()

Server configuráció:

application: helloworld
version: 1
runtime: python
api_version: 1
 
handlers:
- url: /.*
  script: helloworld.py

Web alkalmazás szerver

Zope Egy komplex de jól használható alkalmazás szerver. Webes kezelőfelülettel és sok hasznos eszközzel.

Mit is takar egy alkalmazásszerver kifejezés:

  • olyan szerver ami gyűjtőként foglalja össze a webalkalmazásunkhoz felhasznált szolgáltatásokat
    • webalkalmazások
    • adatbázis szerver
    • stb.

Kialakítása olyan hogy segítse a részegységek közötti kommunikációt.

Web CMS

Plone A Plone a Zope-ra épülő tartalom kezelő rendszer (CMS). A CMS egy wiki-nek kell elképzelni, csak a Plone kicsit komplexebb, saját weblap:

  • saját kinézettel
  • saját funkciókkal
  • saját adatmodellel
  • stb.

Egyéb példák

Python success

Személyes eszközök