��Sada anjost i budu nost programiranja

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

Transcript of ��Sada anjost i budu nost programiranja

Page 1: ��Sada anjost i budu nost programiranja

Sadašnjost i budućnost programiranja

Ivan Kardum

Ekobit d.o.o.

Page 2: ��Sada anjost i budu nost programiranja

Sadržaj

• Kratka povijest vremena

• Trendovi u programiranju

• Razvoj softvera (!= programiranje)

• Trendovi razvoja softvera

Page 3: ��Sada anjost i budu nost programiranja
Page 4: ��Sada anjost i budu nost programiranja
Page 5: ��Sada anjost i budu nost programiranja
Page 6: ��Sada anjost 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 anjost 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 anjost i budu nost programiranja

Trendovi programskih jezika

Page 9: ��Sada anjost 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 anjost i budu nost programiranja

Što je to bolji programski kod?

10

Page 11: ��Sada anjost 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 anjost 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 anjost i budu nost programiranja

Pogledajmo širu sliku

Page 14: ��Sada anjost 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 anjost 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 anjost i budu nost programiranja

Koji su to trendovi razvoja softvera?

Pogledajmo u budućnost

Page 17: ��Sada anjost i budu nost programiranja

Pogledajmo u budućnost

Page 18: ��Sada anjost i budu nost programiranja

Oblak – cloud computing

Page 19: ��Sada anjost 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 anjost i budu nost programiranja

Tko/što su korisnici softvera budućnosti?

20

Page 21: ��Sada anjost 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 anjost 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