Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Python - na uzlazu ili silazu?

984 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Python - na uzlazu ili silazu?

  1. 1. python - na uzlazu ili silazu?
  2. 2. <ul>Robert Lujo, Zagreb Arhitekt poslovnih aplikacija Voditelj softv.projekata Softverski inžinjer 14 godina profesionalnog iskustva OSS, python, django, C, C#, Java ... @trebor74hr, linkedin http://robert-lujo.com </ul>
  3. 3. u jednoj rečenici po meni python je ... <ul>popularni open source dinamički jezik opće namjene s visokom razinom apstrakcije, specifičnom i vrlo čistom sintaksom i bogatim skupom programskih paketa </ul>
  4. 4. popularan, hm? <ul><li>gledano na svjetskoj razini, DA
  5. 5. gledano kroz vrijeme, DA, sve popularniji
  6. 6. u Hrvatskoj, paaaa, ne baš :(
  7. 7. ali u zadnjih mjeseci mu pada popularnost? ili? </li></ul>
  8. 8. popularan? trebam li ja to pratiti? <ul><li>da </li><ul><li>jer je važno znati trendove i gdje se stvari kreću
  9. 9. je li perspektivno ulagati svoje vrijeme u ovladavanje te tehnologije i korištenju iste
  10. 10. hoću li lako naći suradnike, one koji će to održavati, prodati tvrtci koja će imati udio u razvoju
  11. 11. jer velike tvrtke stoje iza toga </li></ul><li>ne </li><ul><li>jer za mene za konkretan slučaj brzo i učinkovito rješava problem
  12. 12. jer već imam izgrađenu infrastrukturu u toj tehnologiji
  13. 13. jer “vidim” vrijednost u tome
  14. 14. jer se zabavljam koristeći
  15. 15. jer nisam jedini koji ovako razmišlja (community)
  16. 16. jer velike tvrtke stoje iza toga </li></ul></ul>
  17. 17. python trend, TIOBE
  18. 18. python trend, google insights, #swdev
  19. 19. python trend, indeed.com, poslovi
  20. 20. statistika u ovom slučaju <ul><li>problem 1: nije točna :)
  21. 21. problem 2: ni ne može biti točna
  22. 22. služi u indikativne svrhe
  23. 23. relativni odnosi i odnosi kroz vrijeme su važniji i “teži” od apsolutnih
  24. 24. za bolji uvid u pravo stanje </li><ul><li>potrebno više različitih izvora
  25. 25. korištenje prilagođenih metodologija
  26. 26. na različitim temeljima </li><ul><li>volumen pretraživanja
  27. 27. broj oglasa za posao
  28. 28. broj novih OSS programskih paketa
  29. 29. broj pitanja na forumima i sličnim site-ovim (npr. stackoverflow) </li></ul><li>znati i pratiti pozadinu stvari </li></ul></ul>
  30. 30. što je to “popularno”? <ul><li>popularno == koristi se u velikoj mjeri
  31. 31. bolje se prije pitati, zašto je nešto popularno?
  32. 32. zato jer donosi novac
  33. 33. “ community driven” </li><ul><li>brzo rješava problem u traženom području (domena)
  34. 34. lako prilagodljivo na nove okolnosti
  35. 35. čini korisnika zadovoljnim (“fun wins”) -> učinkovitijim </li></ul><li>“ big company/ies driven” </li><ul><li>jer je velika tvrtka uložila velike novce i onda to gura, gura i gura
  36. 36. jer je “jeftinije” održavati sistem u postojećoj tehnologiji nego je prebaciti na novu (bolju) </li></ul><li>“ platform driven” </li><ul><li>primjer: java – android, iOS – ObjectiveC, Lua </li></ul></ul>
  37. 37. statically typed, dynamically typed
  38. 38. vrijeme “ugnježđivanja” <ul><li>programski jezici i sw. tehnologije imaju vrijeme “ugnježđivanja”
  39. 39. što dulje traje to će dulje trajati potreba za održavanjem i razvojem razvijenih sustava
  40. 40. duljina trajanja je nepredvidiva i ovisi o velikom broju čimbenika
  41. 41. dan danas se traže COBOL programeri za stare sustave
  42. 42. “if it ain't broke, don't fix it”
  43. 43. pogledajmo primjer na grafu ... </li></ul>
  44. 44. java, c, c++
  45. 45. java, vrlo neobično ...
  46. 46. onda, kakav je zaključak? <ul><li>važno je osluškivati
  47. 47. no to nikako ne smije biti osnovni poticaj za korištenje ili odustajanje (primjer Java)
  48. 48. svako vrijeme donosi svoje probleme, što znači da se i tehnika mora prilagođavati
  49. 49. vrste problema se nerijetko vraćaju i “starije” tehnologije s dobrim konceptima ponovno oživljavaju (primjer Lisp)
  50. 50. moj osobni osjećaj je da Pythonu raste “popularnost” te je u tijeku vrijeme “ugnježđivanja” </li></ul>
  51. 51. neki poznatiji python projekti <ul><li>Ubuntu, Red Hat Linux, Gentoo Linux imaju instalacijske i/ili administracijsko/upravljačke GUI alate napisane u pythonu
  52. 52. addons.mozilla.org (django)
  53. 53. groups.google.com
  54. 54. BitTorrent client
  55. 55. Mercurial
  56. 56. Bitbucket.com
  57. 57. Dropbox (ne u potpunosti)
  58. 58. Google Application Engine – prvi jezik
  59. 59. skriptni jezik za prog. za 2D i 3D animaciju i modeliranje kao što su Maya, modo, Blender, GIMP, Inkscape, Scribus, Paint Shop Pro </li></ul>
  60. 60. pravilo palca <ul><li>Svaki jezik/sw.tehnologija je nastala s razlogom </li><ul><li>postojao je niz problema određene vrste koju postojeća rješenja nisu optimalno rješavale – izmislilo se bolje rješenje </li></ul><li>postoji opravdan razlog za popularnost, za svakog od njih postoje područja ( domain ) gdje su “bolji” od drugih </li><ul><li>važno je znati koja su to područja! </li></ul></ul>
  61. 61. python je jak u ... <ul><li>brzina osposobljanja za rad: instalacija, paketi, help, community, nije potreban IDE, REPL ...
  62. 62. brzina učenja
  63. 63. vrlo jasan i čitljiv kod
  64. 64. brzina izrade prototipa
  65. 65. vrlo visoka izražajna snaga jezika
  66. 66. multi-paradigm: procedural, OO, functional
  67. 67. “ battery included” - std lib, pypi 17.000
  68. 68. jednostavnost slaganja sustava: paketi, moduli, virtualenv
  69. 69. neovisnost o trećim stranama (99% paketa u upotrebi je OSS) </li></ul>
  70. 70. python problemi <ul><li>brzina </li><ul><li>problem koji se vrlo često može zanemariti
  71. 71. sporiji dijelovi se prebace u C/C++ </li></ul><li>GIL – Global Interpreter Lock </li><ul><li>problemi nemogućnosti podržavanja “native multithreading-a”
  72. 72. py core team odlučio – alternativa je multiprocessing </li></ul><li>python 2 ili python 3? </li><ul><li>2 -> 3 “backward incompatible” skok
  73. 73. vrlo hrabro, no pažljivo smišljeno
  74. 74. još nije krenulo, no nazire se “val” </li></ul><li>strogost u napretku jezika </li><ul><li>po meni su dosadašnje odluke dobre
  75. 75. hoće li se dogoditi niz “krivih” odluka u budućnosti? </li></ul><li>konkurencija sličnih ili “jačih” po nekim područjima: Ruby, Javascript, Scala.. .
  76. 76. rješenja na neke od ovih problema, druge implementacije Python-a: PyPy, JPython, IronRuby </li></ul>
  77. 77. python se najčešće upotrebljava za <ul><li>premda je jezik opće namjene, ipak je težište na </li><ul><li>scripts & shell applications
  78. 78. web applications
  79. 79. protocol based applications & distributed apps
  80. 80. sistemske i konfiguracijske aplikacije
  81. 81. embedded systems
  82. 82. scientific
  83. 83. educational
  84. 84. prototyping </li></ul></ul>
  85. 85. python manja upotreba <ul><li>python se manje upotrebljava za: </li><ul><li>GUI aplikacije – premda sve više, posebno za linux (QT, wx, gtk)
  86. 86. aplikacije visokih performansi – premda se znaju upotrebljavati u kombinaciji s C/C++ modulima
  87. 87. enterprise systems </li></ul><li>to ne znači nužno da je u tim područjima slabiji, nego jednostavno manje “popularan” </li></ul>
  88. 88. python moduli, statistika pypi http://www.algorithm.co.il/blogs/programming/python/python-module-usage-stats/
  89. 89. python, da napokon vidimo kôd <ul><li>kratka radionica (<10 min) </li><ul><li>hello world
  90. 90. klasa Osoba
  91. 91. REPL
  92. 92. debugger
  93. 93. standard libs </li><ul><li>help </li></ul><li>3rd party libs </li><ul><li>pypi & pip </li></ul><li>doctest </li></ul></ul>
  94. 94. <ul>moje viđenje </ul><ul><li>zbog svojih jedinstvenih osobina Python-u je zagarantirana svijetla budućnost
  95. 95. vjerojatno neće biti jedan od vodećih jezika, no u područjima ispod “haube” će uvijek biti konkurentan
  96. 96. neki “veliki” ga vole (google, mozilla)
  97. 97. vole ga u znanstvenim i edukacijskim krugovima
  98. 98. i još jednom: </li><ul><li>sve to zajedno nije toliko važno
  99. 99. ako za vas Python (ili bilo što drugo) najbolje rješava problem, to bi trebao biti najvažniji kriterij </li></ul></ul>
  100. 100. kraj <ul>[email_address] @trebor74hr http://robert-lujo.com Pitanja? Hvala na strpljenju! </ul>

×