If you can't read please download the document
Upload
robert-lujo
View
485
Download
3
Embed Size (px)
DESCRIPTION
LinuxLab, Linux Konferencije Linux korisnika 2011, http://ieee.riteh.hr/node/38. Prezentacija br1: Razvoj softvera: crno/bijeli svijet? pokušaj kritičkog pogleda na razvoj softvera u svijetu i kod nas s praktičnim savjetima.. Primjer: popularnost programskih jezika
Citation preview
2.
3. Arhitekt poslovnih aplikacija 4. Voditelj softv.projekata 5. Softverski ininjer 6. 14 godina profesionalnog iskustva 7. OSS, python, django, C, C#, Java ... 8. @trebor74hr, linkedin,http://robert-lujo.com 9. O emu u priati?
10. problematika nije jednostavna, zahtijeva razliite vjetine i znanja, ininjerske i drutvene, puno je sudionika, puno razliitih sistema i tehnologija 11. ne postoji silver bullet koji bi tojednostavno i brzo rijeio 12. ininjer == dovitljivac 13. vrlo vrlo dinamino 14. Stalna na tom svijetu samo mijena jestPetar Preradovi 15. Razvoj softvera to je in
16. Continuous integration 17. Database evolutionary systems 18. Deploy frequently -> auto-deploy ... Static & Dynamic languages 19. (D)VCS, OOP, SQL dobro se dre 20. web, cloud, html5, jquery, json, RESTful, web api, distributed, SOA 21. mobile, mobile, mobile 22. to nam treba od alata
23. gotove biblioteke
24. vanjske gotovi framework(i)
25. vanjski (polu) gotova rjeenja
26. vanjski
27. (D)VCS 28. build system 29. testing system 30. CI/DB-evolut. system 31. deployment system 32. document system 33. issue tracker 34. A ostalo?
35. Peter Norvig: [Programming] language choice is not as important as all the other choices: if you have the rightoverall architecture , theright teamof programmers, theright development processthat allows for rapid development withcontinuous improvement , then many languages will work for you; 36. ifyou dont have those things youre in troubleregardless of your language choice. 37. Alati
38. get the job done 39. izbor programskog jezika nije jedini izbor 40. tko kae da se rjeenje mora razviti u jednom programskom jeziku/tehnologiji (distrib. sustavi) 41. Standing on the shoulders of giants
42. sposobnostprepoznavanja boljeg od loijeg rjeenja 43. sposobnost razluivanja perspektivnog od odumirueg 44. Objektivnost
45. ne vezati se emocionalno uz tehniku i rjeenja 46. we just had a nice polite discussion about religion. *Then* we started on programming languages. The sparks flew."@voidspace 47. pitati i sluati druge, dozvoliti da vas uvjere 48. zdrava diskusija vodi optimalnom rjeenju 49. Strunost
50. learn a new language every year 51. ali, paljivo odabirati/ulagati svoje vrijeme 52. pratiti i pokuati razumijeti dogaanja i trendove 53. dijeliti znanje 54. premda sve izgleda vrlo dinamino koncepti se rijetko mijenjaju
55. Uinkovitost
56. uiti kroz konkretno iskustvo - LOC ;)
razviti sustav ljudi i tehnike sposoban brzim prilagodbama na nove okolnosti jer
automatizirati sve to se da automatizirati
57. Drati svoj autoritet
58. mi smo kao lijenici: oni opisuju simptome, a mi utvrujemo dijagnozu i propisujemo terapiju 59. Doktore, doktore imam zdravstvenih problema
60. elio bi neku tabletu crvene boje 61. da me sve ne kota vie od 100 kn netko zna lijenika koji bi to tolerirao? 62. oni trebaju opisati to, a mi nudimo rjeenje i procijenjujemo trokove. A kako emo to napraviti? To je naa briga :) 63. stvari nikad nisu jednostavne kao to se ine; ovaj posao je vrlo zahtjevan i osjetljiv 64. Zabavljati se
65. stvarati takvo okruenje, drutveno i tehniko 66. ekstremno? 67. if I stop having fun at my job, Its time to move on 68. praksa pokazuje da u naoj struci fun wins 69. Primjer Popularnost programskih jezika 70. Zavirimo u povijest-programski jezici
72. COBOL 1959 73. BASIC 1964 74. C 1973 75. C++ 1980 76. ObjC 1983 77. Visual Basic 1991 78. Java 1993 79. C# 2001
82. Perl 1987 83. Haskell 1990 84. Python 1991 85. Ruby 1993 86. Lua 1993 87. Javascript 1995 88. PHP 1995 89. Groovy, Scala 2003 90. Clojure 2007 91. Go 2009 92. Zavirimo u povijest -paradigme
93. object oriented (1972 Smalltalk, Java, C++, Python) declarative (1958 Lisp, SQL, XML, xHTML) 94. functional (1958 Lisp, Erlang, Haskell) 95. multiparadigm svi! 96. prethodno navedeno nije precizno! 97. to je popularno?
98. bolje se prije pitati,zatoje neto popularno? 99. zato jer donosinovac 100. community driven
101. lako prilagodljivo na nove okolnosti 102. ini korisnika zadovoljnim (fun wins) -> uinkovitijim big company/ies driven
103. jer je jeftinije odravati sistem u postojeoj tehnologiji nego je prebaciti na novu (bolju) platform driven
104. to je onda popularno? izvor TIOBE indeks 105. Popularnost zadnjih 25 god. izvor TIOBE indeks 106. Statiki / dinamiki 107. LISP, hm?
108. prvi liberal 109. zamiljen kao koncept, a ne kao implementacija 110. oigledno dobar koncept :) 111. if-then-else, homoiconic, garbage collection, dynamic, interpreter, REPL, eval, lists, hashes, structures, lambda, closures, macros 112. nema dobru vibru - Lost In Stupid Parantheses :) 113. inspiracija za puno poznatije i novije: Smalltalk (prvi OOP->Lisp), Python, Ruby, Scala, Groovy, Clojure 114. Onda, koji je najbolji?
Primjer: Erlang 1986,danasdosta popularno za serverska rjeenja za asinkrone web zahtjeve (highly concurrent, websocket, comet) 115. postoji opravdan razlog za popularnost, za svakog od njih postoje podruja ( domain ) gdje su bolji od drugih
s druge strane ako jezik ve imam u prstima , za mene to je velika prednost 116. idealno : i da je pravi jezik za traeno podruje, i da ga imam u prstima 117. I na kraju ...
118.