Software Modeling and the Future of Engineering (ICMT/STAF Keynote at York)
EmergingTrendsInComputingAndProgrammingLanguages
-
Upload
deepak-shevani -
Category
Engineering
-
view
19 -
download
0
Transcript of EmergingTrendsInComputingAndProgrammingLanguages
![Page 1: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/1.jpg)
Evolution of COMPUTING & ProgramminG
languagesDec 11, 2016
UPES, Dehradun
![Page 2: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/2.jpg)
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
![Page 3: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/3.jpg)
Hello everyone !
I am Deepak ShevaniCurrently working at Flipkart, building next generation e-commerce
platforms. I like presenting & love to mingle with technology enthusiasts.
Contact me : [email protected]
@deepak_shevani
![Page 4: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/4.jpg)
1.HISTORICAL PERSPECTIVE
Understand roots of computing & birth of programming languages
![Page 5: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/5.jpg)
this CHAP ?
he started it all in 60 AD ...
![Page 6: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/6.jpg)
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 !!
![Page 7: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/7.jpg)
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.
![Page 8: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/8.jpg)
1800 years ...... not much progress in the programming world
![Page 9: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/9.jpg)
UNTIL HE CAME
around 1800 ...
![Page 10: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/10.jpg)
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 !!
![Page 11: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/11.jpg)
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
![Page 12: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/12.jpg)
THEN ... ... comes the era of machines that could do calculations
![Page 13: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/13.jpg)
1791to 1871
Portrait from the Illustrated London News, Nov. 4, 1871
![Page 14: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/14.jpg)
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
![Page 15: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/15.jpg)
SOMEONE ... did write software for engine that was only on paper
![Page 16: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/16.jpg)
WORLD's FIRST
COMPUTER PROGRAMMER
![Page 17: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/17.jpg)
... 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
![Page 18: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/18.jpg)
FIRST ALGORITHM !!
![Page 19: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/19.jpg)
~100 years later
... the father is born
![Page 20: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/20.jpg)
ALAN TURING
1912to
1954
![Page 21: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/21.jpg)
![Page 22: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/22.jpg)
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
![Page 23: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/23.jpg)
![Page 24: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/24.jpg)
Colossus !!
![Page 25: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/25.jpg)
A high level programming language, is a coded language used by programmers
to communicate with the computer.
![Page 26: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/26.jpg)
High Level LANGUAGES 1953, FORTRAN
(John Backus - IBM)First really widespread
high level language
1958, ALGOLCommittee Based Language(modern languages take lot
of ideas from ALGOL)
1969-1973, C(Dennis Ritchie, Bell Labs)
most widely used programming language till date
![Page 27: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/27.jpg)
PICK YOURs !!
![Page 28: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/28.jpg)
Which LanguAgeis more powerful ?
This is a meaningless question !!
![Page 29: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/29.jpg)
- 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 !!
![Page 30: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/30.jpg)
GOOD SITES to learn programming
This is a meaningless question !!
![Page 31: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/31.jpg)
TO DOOnline 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
![Page 32: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/32.jpg)
![Page 33: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/33.jpg)
![Page 34: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/34.jpg)
2.TRENDS IN PROG. LANGUAGES
Fast Forward 2016 - let’s understand trends around high level languages today
![Page 35: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/35.jpg)
TIOBE INDEXPopularity of programming languages.
TIOBE stands for - The Importance Of Being Earnest
![Page 36: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/36.jpg)
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.
![Page 37: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/37.jpg)
NOVEMBER -2016
![Page 38: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/38.jpg)
3.CASE STUDY : JAVA
Let us deep dive into Java and new features in Java 8 from the kitty
![Page 39: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/39.jpg)
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
![Page 40: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/40.jpg)
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
![Page 41: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/41.jpg)
QUIZ TIME
1) When did Java go open-source ? (date-year)
![Page 42: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/42.jpg)
QUIZ TIME
1) When did Java go open-source ? (date-year)
Oct 25, 2006
![Page 43: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/43.jpg)
QUIZ TIME
1) When did Java go open-source ? (date-year)
Oct 25, 2006
2) When was internet first put on public domain ?
![Page 44: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/44.jpg)
QUIZ TIME
1) When did Java go open-source ? (date-year)
Oct 25, 2006
2) When was internet first put on public domain ?
1993
![Page 45: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/45.jpg)
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 ?
![Page 46: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/46.jpg)
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 :)
![Page 47: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/47.jpg)
Java 8 : Parallel STREAMSNo more boilerplate code !!
![Page 48: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/48.jpg)
Basic Jargon FIRST
LambdasA 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)
StreamsA 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()
![Page 49: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/49.jpg)
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();
![Page 50: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/50.jpg)
I T E R A T I O N S
// EXTERNAL
for (Item items : items) {
process(item);
}
// INTERNAL
items.forEach(item -> process(item));
![Page 51: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/51.jpg)
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());
}
![Page 52: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/52.jpg)
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());
![Page 53: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/53.jpg)
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());
![Page 54: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/54.jpg)
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
![Page 55: EmergingTrendsInComputingAndProgrammingLanguages](https://reader034.fdocuments.in/reader034/viewer/2022042723/5876fe961a28abf3398b6d57/html5/thumbnails/55.jpg)
THAT'S IT !!Thank you all of you for being wonderful audience