2. AGENDA
Historical Perspective
✣ Birth of computing
✣ History of languages
✣ High Level Languages
++++++++++++++++
Fun Quiz
Recent Trends in Languages
✣ TIOBE index
✣ In vogue - Go, Java, React, Python, C#
✣ Preparing for the future !!
++++++++++++++++
Demo Q&A
Slides will be uploaded at http://www.slideshare.net/dshevani
3. Hello everyone !
I am Deepak Shevani
Currently working at Flipkart, building next generation e-commerce
platforms. I like presenting & love to mingle with technology enthusiasts.
Contact me : aum2deepak@gmail.com
@deepak_shevani
6. Hero of Alexandria
✣ c. 10 AD – c. 70 AD
✣ greek mathematician & engineer
✣ Thomas Edison of the ancient world
✣ active in Alexandria, Roman Egypt (60-70 AD)
✣ prolific writer as well as inventor
✣ first vending machine
✣ first steam engine - Aeolipile
✣ mechanical puppet theater
could be rewired
first recorded programmable thing !!
7. Hero of Alexandria
Invented first “programmable puppet theater"
.... An upper bin is filled
with grain or sand, which gradually
filters through a small hole into the
lower chamber, causing the weight
resting above it to descend with it,
drawing up the cord that is wrapped
around the wheel’s axle to rotate.
10. Joseph Marie Jacquard
... invented Jacquard loom & demonstrated
in 1801, that created patterns on rugs and
mats. This simplified textile manufacturing
by introducing punched cards arranged in
a sequence to manifest into a pattern.
This played important role in invention of
other programmable machines !!
11. Joseph Marie Jacquard
✣ 7 July 1752 – 7 August 1834
✣ Jacquard power looms
✣ french weaver and merchant
✣ contributed to programmable loom
✣ called loom programmers
✣ patterns were punched and imprinted
14. Charles Babbage (1840)
✣ asked parliament 1M pounds for business
✣ first person in computer business
✣ dreamed of calculation engine
✣ invented Analytical Engine
✣ philosopher, mathematician, engineer
✣ never finished both of them :)
At each increase of knowledge, as well as on the
contrivance of every new tool, human labour becomes
abridged.
Charles Babbage
17. ... Ada Lovelace, has been called the
world's first computer programmer.
Her notes on Babbage's analytical
engine include what is recognised as the
first algorithm intended to be carried
out by a machine. When such a machine
was actually built, her algorithm ran
on it !!
Note : She published her notes on analytical engine in 1842
22. Alan Turing, was highly influential in
the development of theoretical computer
science. He formalized concepts of
algorithms and computation with Turing
Machine. He is widely considered as
FATHER OF COMPUTER SCIENCE
25. A high level programming language,
is a coded language used by programmers
to communicate with the computer.
26. High Level LANGUAGES
1953, FORTRAN
(John Backus - IBM)
First really widespread
high level language
1958, ALGOL
Committee Based Language
(modern languages take lot
of ideas from ALGOL)
1969-1973, C
(Dennis Ritchie, Bell Labs)
most widely used programming
language till date
29. - New Languages are influenced from
other languages, concepts & ideas
- Java is influenced from Eiffel, C++
SmallTalk, Objective C etc
- Sponsorship, Company Backing helps
- Programming is creative activity
and language must be treated as tool
OBSERVATIONS !!
31. TO DO
Online Programming
Portals - CodeChef, ACM
ICPC, HackerRank,
HackerEarth
Choose college projects with
an opportunity of mixing
theory with practicals
Interact with industry experts to
learn exiting business problems
in various domains and trying
to solve it using tech
32.
33.
34. 2.
TRENDS IN PROG. LANGUAGES
Fast Forward 2016 - let’s understand
trends around high level languages today
35. TIOBE INDEXPopularity of programming languages.
TIOBE stands for - The Importance Of Being Earnest
36. The TIOBE Programming Community
index is an indicator of the popularity of
programming languages. Updated once a
month. The ratings are based on the
number of skilled engineers world-wide,
courses and third party vendors. Popular
search engines such as Google, Bing,
Yahoo!, Wikipedia, Amazon, YouTube and
Baidu are used to calculate the ratings.
38. 3.
CASE STUDY : JAVA
Let us deep dive into Java and new
features in Java 8 from the kitty
39. Birth OF JAVA [1995]
✣ 16 million internet users worldwide
✣ Birth of e-Commerce companies
■ __a___ and __a_
✣ Birth of internet companies
■ _a___
✣ Demo of WebRunner at TED conference
✣ Debut of
■ Java 1.0a2
■ Hotjava
H A P P Y B I R T H D A Y J A V A
40. Birth OF JAVA [1995]
✣ 16 million internet users worldwide
✣ Birth of e-Commerce companies
■ Amazon and eBay
✣ Birth of internet companies
■ Yahoo
✣ Demo of WebRunner demo at TED
✣ Debut of
■ Java 1.0a2
■ Hotjava
H A P P Y B I R T H D A Y J A V A
42. QUIZ TIME
1) When did Java go open-source ? (date-year)
Oct 25, 2006
43. QUIZ TIME
1) When did Java go open-source ? (date-year)
Oct 25, 2006
2) When was internet first put on public domain ?
44. QUIZ TIME
1) When did Java go open-source ? (date-year)
Oct 25, 2006
2) When was internet first put on public domain ?
1993
45. QUIZ TIME
1) When did Java go open-source ? (date-year)
Oct 25, 2006
2) When was internet first put on public domain ?
1993
3) When was Java Coffee logo introduced ?
46. QUIZ TIME
1) When did Java go open-source ? (date-year)
Oct 25, 2006
2) When was internet first put on public domain ?
1993
3) When was Java Coffee logo introduced ?
2003
GREAT - Let’s move on :)
47. Java 8 : Parallel STREAMS
No more boilerplate code !!
48. Basic Jargon FIRST
Lambdas
A lambda is anonymous function. A function is a
computation that may take some arguments and
may return some value. Lambdas enable functions to
passed around and stored like values (smells like
functional programming, yeah)
Syntax of lambda expression
( [optional arguments] ) -> body
( Person p1, Person p2 ) -> p1.name() == p2.name()
**** Types can be inferred (parameters, return type)
Streams
A Stream is an abstract concept that represents
multiple values. It may or may not be collection.
It may or may not be a sequence. It may or may
not be an iterator. It is something that would
allow sequential as well as parallel processing :)
Stream<T> is opened using
Collections.stream(), Collection.parallelStream()
IntStream.range(), Stream.of(), Arrays.stream()
BufferedReader.lines(), CharSequence.chars()
49. E X A M P L E S H O U L D M A K E I T C L E A R
SomeList<Employee> employees = ….
double highestPaid =
employees.stream()
.filter(e -> e.getDepartment().equals(‘Search’)
.map(e -> e.getSalary())
.max();
50. I T E R A T I O N S
// EXTERNAL
for (Item items : items) {
process(item);
}
// INTERNAL
items.forEach(item -> process(item));
51. W I T H O U T S T R E A M S ( Java 7)
List mobileTransactions = new Arraylist<>();
for(Transaction t: transactions){
if(t.getType() == Transaction.MOBILE){
mobileTransactions.add(t);
}
}
Collections.sort(mobileTransactions, new MobilesComparator());
List transactionIds = new ArrayList<>();
for(Transaction t: mobileTransactions){
transactionsIds.add(t.getId());
}
52. U S I N G S T R E A M S ( Java 8)
List transactionsIds = transactions.stream()
.filter(t -> t.getType() == Transaction.MOBILE)
.sorted(comparing(Transaction::getValue)
.reversed())
.map(Transaction::getId)
.collect(toList());
53. U S I N G P A R A L L E L S T R E A M S
List transactionsIds = transactions.parallelStream()
.filter(t -> t.getType() == Transaction.MOBILE)
.sorted(comparing(Transaction::getValue)
.reversed())
.map(Transaction::getId)
.collect(toList());
54. Credits
Special thanks to all the people who made and
released these awesome resources for free:
✣ Presentation template by SlidesCarnival
✣ Photographs by Unsplash
✣ Paper texture by GraphicBurguer