Sadašnjost i budućnost programiranja

Preview:

Citation preview

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

Recommended