22
Sadašnjost i budućnost programiranja Ivan Kardum Ekobit d.o.o.

Sadašnjost i budućnost programiranja

Embed Size (px)

Citation preview

Page 1: Sadašnjost i budućnost programiranja

Sadašnjost i budućnost programiranja

Ivan Kardum

Ekobit d.o.o.

Page 2: Sadašnjost i budućnost programiranja

Sadržaj

• Kratka povijest vremena

• Trendovi u programiranju

• Razvoj softvera (!= programiranje)

• Trendovi razvoja softvera

Page 3: Sadašnjost i budućnost programiranja
Page 4: Sadašnjost i budućnost programiranja
Page 5: Sadašnjost i budućnost programiranja
Page 6: Sadašnjost i budućnost programiranja

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

Page 7: Sadašnjost i budućnost programiranja

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

Page 8: Sadašnjost i budućnost programiranja

Trendovi programskih jezika

Page 9: Sadašnjost i budućnost programiranja

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

Page 10: Sadašnjost i budućnost programiranja

Što je to bolji programski kod?

10

Page 11: Sadašnjost i budućnost programiranja

Any fool can write code that a

computer can understand.

Good programmers write code that

humans can understand.

Martin Fowler

Page 12: Sadašnjost i budućnost programiranja

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

Page 13: Sadašnjost i budućnost programiranja

Pogledajmo širu sliku

Page 14: Sadašnjost i budućnost programiranja

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

Page 15: Sadašnjost i budućnost programiranja

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

Page 16: Sadašnjost i budućnost programiranja

Koji su to trendovi razvoja softvera?

Pogledajmo u budućnost

Page 17: Sadašnjost i budućnost programiranja

Pogledajmo u budućnost

Page 18: Sadašnjost i budućnost programiranja

Oblak – cloud computing

Page 19: Sadašnjost i budućnost programiranja

Cloud Computing = Software as a Service + Platform as a Service + Infrastructure as a Service + Data as a Service

Oblak – cloud computing

Page 20: Sadašnjost i budućnost programiranja

Tko/što su korisnici softvera budućnosti?

20

Page 21: Sadašnjost i budućnost programiranja

• 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

Page 22: Sadašnjost i budućnost programiranja

"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