prošlost, sadašnjost i budućnost iz perspektive islamske religije
Sadašnjost i budućnost programiranja
Transcript of Sadašnjost i budućnost programiranja
Sadašnjost i budućnost programiranja
Ivan Kardum
Ekobit d.o.o.
Sadržaj
• Kratka povijest vremena
• Trendovi u programiranju
• Razvoj softvera (!= programiranje)
• Trendovi razvoja softvera
Rani programski jezici
6
Classic C
Simula
Pascal
Algol68
BCPL
Fortran
Lisp
COBOL
Algol60
PL\1
1950s: 1960s: 1970s:
Crveno == u komercijalnoj upotrebi
Žuto == u ranoj fazi
Modern programming languages
7
Object Pascal
C++
Java95
C# Ada98
C++98
Java04
C++0x
Python Lisp Smalltalk
Fortran77
Ada
Eiffel Simula67
COBOL89
PHP
C89
Pascal
PERL Visual Basic
COBOL04 Javascript
Trendovi programskih jezika
Zašto nastaju novi programski jezici?
• Različita područja • Niti jedan jezik nije najbolji za sve
• Programeri imaju različite sposobnosti • Niti jedan jezik nije najbolji za svakoga
• Mijenjaju se zahtjevi i problemi • Računala se koriste za nove potrebe
• Računala se mijenjaju • Karakteristike hardvera zahtijevaju nove mogućnosti programskih jezika
• Spoznaje o programiranju se mijenjaju • Znamo kako pisati bolji kod
9
Što je to bolji programski kod?
10
Any fool can write code that a
computer can understand.
Good programmers write code that
humans can understand.
Martin Fowler
Trendovi u programiranju
1. Skriptni multiplatformiski jezici (JavaScript) 2. Deklarativno programiranje 3. Automatizirano testiranje (unit testing, UI testing, load testing) 4. Decupling (odvajanje odgovornosti) 5. Code review / pair programming 6. „No code is an island” - System „citizenship”. 7. Energija više nije besplatna – vrijeme autonomije 8. Asinkrono programiranje 9. Open source 10. Korištenje Frameworka
Pogledajmo širu sliku
ALM – Application Lifecycle Management
• Razvoj softvera je timski sport
• Upravljanje životnim ciklusima aplikacije od početnih ideja do faza održavanja aplikacije u produkciji
• Aktivnosti i alati usmjereni na razvojni proces softvera u cjelini
• Razvoja softvera iz perspektive poslovnog procesa i u skladu sa poslovnom strategijom
Najvažnija potreba softverskog razvoja:
Povećanje predvidivosti kvalitetne isporuke, na vrijeme i u budžetu.
49% 28% 23% 2000
Propali Uspjeh upitan Uspjeli
Projekti rijetko uspijevaju
Budžet probijen prosječno za: 45%
Proboj rokova prosječno za: 63%
Prosječno isporučeno funkcionalnosti: 67% Standish Group
Koji su to trendovi razvoja softvera?
Pogledajmo u budućnost
Pogledajmo u budućnost
Oblak – cloud computing
Cloud Computing = Software as a Service + Platform as a Service + Infrastructure as a Service + Data as a Service
Oblak – cloud computing
Tko/što su korisnici softvera budućnosti?
20
• Svaki vlasnik računala, tableta, mobitela
• Pametni televizori
• Automobili
• Kućanski aparati (pećnice, perilice rublja, veša)
• Kućanski sustavi (struja, grijanje, voda, plin)
• Školski udžbenici
Broj korisnika softvera budućnosti?
> 100 000 000 000 000
"In science, if you know what you are doing, you
should not be doing it. In engineering, if you do not
know what you are doing, you should not be doing it. "
Richard Hamming, The Art of Doing Science and
Engineering