SlideShare una empresa de Scribd logo
1 de 42
© Acism Software Private Limited
Technology Roundup
Historical Perspective
to Understand
New Age Technologies
Better
Ashish Belagali,
Acism Software Private Limited,
Pune
http://www.acism.com
@Ashish1IT
© Acism Software Private Limited
Agenda

The rise of Programming Languages

Paradigms

Takeaways
© Acism Software Private Limited
The Rise of Programming Languages
© Acism Software Private Limited
FORTRAN (1956)

Developed at IBM

Proposal by John W Backus to develop high
level language for mainframe (against
Assembly)

Reduced lines of code by a factor of 20
© Acism Software Private Limited
ALGOL (1958)

The dawn of structured programming (as
against goto spaghetti code)

Developed jointly by a committee of European
and American scientists at a meeting at Zurich
© Acism Software Private Limited
LISP (1958)

History
− Invented by John McCarthy while he was at MIT
− First implemented by Steve Russel on IBM 704
computer
− First LISP compiler written in LISP in 1962

Interchangeability of data and code

Connection with AI
© Acism Software Private Limited
COBOL (1960)

Proposed to Pentagon in 1959

Max use of English, machine independent

Almost dead before it was born
© Acism Software Private Limited
Imperative
Low
level
FORTRAN
1956
Assembly
COBOL
1960
LISP
1958
Structured
ALGOL
1958
© Acism Software Private Limited
Basic (1964)

Beginner's language – aimed at students from
non-computer background

Developed by John Kemeny and Thomas Kurtz

Based on Fortran II and ALGOL 60

Grew in minicomputer and microcomputer era

Lost to C and C++ in the era of Shrink-wrap
applications (later half of 1980s)

Revived again in VB and VB.Net
© Acism Software Private Limited
SIMULA (1967)

Stands for Simula 1 and Simula 67

Developed at Norwegian Computing Center at
Oslo, by Ole-Johan Dahl and Kristen Nygaard

Superset of ALGOL 60

Simula 67 the first Object Oriented language

Introduced objects, classes, inheritance and
subclasses, virtual methods, coroutines,
discrete event simulation and garbage
collection
© Acism Software Private Limited
Pascal (1970)

Designed by Niklaus Wirth to honor French
mathematician Blaise Pascal

Based on ALGOL 60 and enabled
programmers to define their own complex data
types
− Records, enumerations, subranges, dynamically
allocated variables with associated pointers and
sets

Allows nested procedure definition

Object Pascal powers Delphi IDE
© Acism Software Private Limited
Prolog

Designed by Alain Colmerauer with Philippe
Roussel

A logic programming language – associated
with artificial intelligence and computational
linguistics

Completely declarative

specify rules and make queries

EU AI researchers favored Prolog (while
American AI researchers favored LISP)
© Acism Software Private Limited
Imperative
Declarative
Low
level
FORTRAN
1956
Assembly
COBOL
1960
LISP
1958
Structured
Object
oriented
Pascal
1970
BASIC
1964
Prolog
1972
SIMULA
1967
ALGOL
1958
© Acism Software Private Limited
C (1973)

Created at Bell labs by Dennis Ritchie and Ken
Thomson

Low level and a high level language

Portable – Write Once Compile Anywhere
(WOCA)

Unix kernel reimplemented
© Acism Software Private Limited
Ada (1980)

Extends from Pascal

Strong typing (variable ranges), modularity
mechanisms (packages), runtime checks,
parallel processing, exceptions, generic
dispatch

Ada 95 added object orientation

Designed for developing very large software
systems

Strong compile time, run time checks, memory
management type-safe

© Acism Software Private Limited
Objective C (1983)
Developed by Brad Cox and Tom Love at their
company StepStone
Adding Smalltalk style messaging to C
© Acism Software Private Limited
C++ (1983)

Developed by Bjarne Stroustrup starting 1979

Standardized in 1998

Superset of C language

Enhancing C language with Simula-like
features
© Acism Software Private Limited
Imperative
Declarative
Low
level
FORTRAN
1956
Assembly
COBOL
1960
LISP
1958
C
1973
Structured
C++
1983
Object
oriented
Pascal
1970
Ada
1980
BASIC
1964
Prolog
1972
Objective C
1983
SIMULA
1967
ALGOL
1958
© Acism Software Private Limited
Matlab (1984)

Developed by Cleve Moler at Univ of New
Mexico - started in early 1970s

Intention was to give students access to
LINPACK and EISPACK without learning
FORTRAN

Mathworks company was formed in 1984

4th
Generation language

Mathematical computations

Image processing
© Acism Software Private Limited
Perl (1987)

Derived ideas from unix shell scripting, awk and
sed

Started the trend of dynamic languages
– Powerful text processing
– Loose typing

Widely used in CGI scripting prior to PHP
© Acism Software Private Limited
Haskell (1990)

Functional programming language – following a
start in 1985 (Miranda)

Originated by a committee formed in 1987 at
Portland, Oregon

Functions do not have side effects
− distinct construct for side effects orthogonal to
functions

Lazy evaluation, pattern matching, list
comprehension, type classes & type
polymorphism
© Acism Software Private Limited
Visual Basic (1991)

Language and IDE

Rapid Application Development (RAD)

Easy to learn, Drag and Drop

Final release in 1998, unsupported since 2008
© Acism Software Private Limited
Python (1991)

Developed by Guido Van Russon as a hobby

Readability, Fewer LOC

Supports multiple programming paradigms

Object oriented

Functional

Procedural

Dynamic types and automated memory
management

JVM variant Jython
© Acism Software Private Limited
Ruby (1995)

Developed by Yukihiro Matsumoto

Purely object oriented

Supports multiple programming paradigms

Functional

Object oriented

Imperative
© Acism Software Private Limited
PHP (1995)

Rasmus Lerdorf began to maintain his
personal homepage

There was no intent to write a programming
language

Dynamic, easy-to-use

Perl-like variables, form handling and HTML
embedding

Object orientation added in v5

No written specification existed till 2014. The
effort is now on.
© Acism Software Private Limited
Imperative
Declarative
Low
level
FORTRAN
1956
Assembly
COBOL
1960
LISP
1958
C
1973
Structured
C++
1983
Object
oriented
Pascal
1970
Ada
1980
BASIC
1964
VB
1991
Functional
Perl
1987
DynamicProlog
1972
Matlab
1984
Python
1991
Ruby
1995
PHP
1995
Objective C
1983
SIMULA
1967
ALGOL
1958
Haskell
1990
© Acism Software Private Limited
Java (1995)

Created by James Gosling at Sun
Microsystems

Write Once Run Anywhere (WORA)

Secure, configurable security

Java applets for web

Semi-interpreted, Java Virtual Machine (JVM)

Performance: JIT

Automatic memory management

Technologies: Applets, Servlets, JSP, Swing
© Acism Software Private Limited
Javascript (1995)

Designed by Brendan Eich at Netscape

Prototype-based scripting language, with
dynamic typing and first-class functions

Multi-paradigm

Object oriented

Imperative

Functional
© Acism Software Private Limited
Imperative
Declarative
Low
level
FORTRAN
1956
Assembly
COBOL
1960
LISP
1958
C
1973
Structured
C++
1983
Object
oriented
Pascal
1970
Ada
1980
JVM
languages
BASIC
1964
VB
1991
Functional
Perl
1987
DynamicProlog
1972
Matlab
1984
Python
1991
Ruby
1995
Javascript
1995
PHP
1995
Objective C
1983
Java
1995
SIMULA
1967
ALGOL
1958
Haskell
1990
© Acism Software Private Limited
.Net Framework (2002)

Common Language Runtime (CLR) Rivals JVM
− Managed vs native code
− Ahead of time compilation using native image
generator

Collection of languages:VB.Net, Fortran.Net,
C#

.Net Compact framework for Windows mobile
© Acism Software Private Limited
Scala (2003)

Designed by Martin Odersky

Previously he was in the Java compiler team

Both Object oriented and Functional

Statically typed, smaller in size
© Acism Software Private Limited
Imperative
Declarative
Low
level
FORTRAN
1956
Assembly
COBOL
1960
LISP
1958
C
1973
Structured
C++
1983
Object
oriented
Pascal
1970
Ada
1980
JVM
languages
.Net
2002
BASIC
1964
VB
1991
Haskell
1990
Functional
Perl
1987
DynamicProlog
1972
Matlab
1984
Python
1991
Ruby
1995
Javascript
1995
PHP
1995
Scala
2003
Objective C
1983
Java
1995
SIMULA
1967
ALGOL
1958
© Acism Software Private Limited
Paradigms
© Acism Software Private Limited
Object Oriented Programming

Based on objects containing data fields

Use encapsulation and data hiding

Can be further classified into

Class based (object blueprint)

Prototype based (object cloning)

Separation of concerns such as Aspect oriented
© Acism Software Private Limited
Dynamic Languages

Loose typing (duck typing)

Evolved as scripting languages – quick and
dirty

Mostly interpreted languages

Fast programming cycle

Compiler advantage lost
© Acism Software Private Limited
Domain Specific Languages

Declarative languages

Useful, still not general purpose (Turing-
complete)

Examples

Markup languages: HTML, MXML, XSL etc

Yacc input language

Make or Ant specification language

Hybrid (also have imperative part)

SQL

Regex
© Acism Software Private Limited
Functional Programming

Computation is evaluation of mathematical
functions

Functions are without side effects

Even logging – but some of these exceptions are
often admissible

Many popular languages –not labeled as
functional– can be used in functional
programming style
© Acism Software Private Limited
JVM Languages

Produce Java bytecode, targeted to run on
Java Virtual Machine

JVM handles security, memory management

Also, can use Java's library

Java 6 onwards dynamic languages can run
faster
© Acism Software Private Limited
4th
Generation Languages

Background

2GL – Assembly

3GL – C, C++, Java, Javascript, C# etc

4GL language operate with large collection of
information rather than bits and bytes

DB management, report generation,
mathematical optimizations, GUI development or
web development

Libraries like 4GL features are developed with
most popular 3GL languages. Also some
advanced 3GL languages include some 4GL
© Acism Software Private Limited
Visual Programming

Visual representation of the flow

Typically at a high level

Examples

Case tools

Business process modeling

Scratch
© Acism Software Private Limited
Takeaways

Business inclinations, developer preferences
go into a language.

Good developers know at least 5 languages

Current trends

Mixing of paradigms

4GL, Visual
© Acism Software Private Limited
Thank You
Ashish Belagali,
Acism Software Private Limited,
Pune
http://www.acism.com
@Ashish1IT

Más contenido relacionado

Similar a Technology Roundup - Programming Languages & Paradigms

2 evolution of the major
2 evolution of the major2 evolution of the major
2 evolution of the majorMunawar Ahmed
 
Programing paradigm & implementation
Programing paradigm & implementationPrograming paradigm & implementation
Programing paradigm & implementationBilal Maqbool ツ
 
all languages in computer programming
all languages in computer programmingall languages in computer programming
all languages in computer programminghamza239523
 
History of Computer Programming Languages.pptx
History of Computer Programming Languages.pptxHistory of Computer Programming Languages.pptx
History of Computer Programming Languages.pptxAliAbbas906043
 
Programming Language Evolution
Programming Language EvolutionProgramming Language Evolution
Programming Language EvolutionKushan Dananjaya
 
Computer Programming Language
Computer Programming LanguageComputer Programming Language
Computer Programming LanguageRishabhParmar23
 
The History of Programming.pptx
The History of Programming.pptxThe History of Programming.pptx
The History of Programming.pptxsheillakontor
 
2015 bioinformatics python_introduction_wim_vancriekinge_vfinal
2015 bioinformatics python_introduction_wim_vancriekinge_vfinal2015 bioinformatics python_introduction_wim_vancriekinge_vfinal
2015 bioinformatics python_introduction_wim_vancriekinge_vfinalProf. Wim Van Criekinge
 
2 evolution of the major programming languages
2 evolution of the major programming languages2 evolution of the major programming languages
2 evolution of the major programming languagesjigeno
 
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptxPYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptxshalini s
 

Similar a Technology Roundup - Programming Languages & Paradigms (20)

Evolution of Computer Languages
Evolution of Computer LanguagesEvolution of Computer Languages
Evolution of Computer Languages
 
Programming
ProgrammingProgramming
Programming
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
2 evolution of the major
2 evolution of the major2 evolution of the major
2 evolution of the major
 
Evolution of Programming Languages.pdf
Evolution of Programming Languages.pdfEvolution of Programming Languages.pdf
Evolution of Programming Languages.pdf
 
Evolution of Programming Languages.pdf
Evolution of Programming Languages.pdfEvolution of Programming Languages.pdf
Evolution of Programming Languages.pdf
 
Evalution about programming language part 1
Evalution about programming language part 1Evalution about programming language part 1
Evalution about programming language part 1
 
Compilers
CompilersCompilers
Compilers
 
Programing paradigm & implementation
Programing paradigm & implementationPrograming paradigm & implementation
Programing paradigm & implementation
 
all languages in computer programming
all languages in computer programmingall languages in computer programming
all languages in computer programming
 
History of Computer Programming Languages.pptx
History of Computer Programming Languages.pptxHistory of Computer Programming Languages.pptx
History of Computer Programming Languages.pptx
 
Programming Language Evolution
Programming Language EvolutionProgramming Language Evolution
Programming Language Evolution
 
Computer Programming Language
Computer Programming LanguageComputer Programming Language
Computer Programming Language
 
The History of Programming.pptx
The History of Programming.pptxThe History of Programming.pptx
The History of Programming.pptx
 
P1 2018 python
P1 2018 pythonP1 2018 python
P1 2018 python
 
Presentation1
Presentation1Presentation1
Presentation1
 
2015 bioinformatics python_introduction_wim_vancriekinge_vfinal
2015 bioinformatics python_introduction_wim_vancriekinge_vfinal2015 bioinformatics python_introduction_wim_vancriekinge_vfinal
2015 bioinformatics python_introduction_wim_vancriekinge_vfinal
 
2 evolution of the major programming languages
2 evolution of the major programming languages2 evolution of the major programming languages
2 evolution of the major programming languages
 
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptxPYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
 
P1 2017 python
P1 2017 pythonP1 2017 python
P1 2017 python
 

Más de Ashish Belagali

Turbo Charge Software Development with Xsemble
Turbo Charge Software Development with XsembleTurbo Charge Software Development with Xsemble
Turbo Charge Software Development with XsembleAshish Belagali
 
Make software like they make cars!
Make software like they make cars!Make software like they make cars!
Make software like they make cars!Ashish Belagali
 
Xsemble - Make software like they make cars!
Xsemble - Make software like they make cars!Xsemble - Make software like they make cars!
Xsemble - Make software like they make cars!Ashish Belagali
 
Kommbox - Your Communication Box on the Cloud
Kommbox - Your Communication Box on the CloudKommbox - Your Communication Box on the Cloud
Kommbox - Your Communication Box on the CloudAshish Belagali
 
New Opportunities Created By New Xsemble Technology
New Opportunities Created By New Xsemble TechnologyNew Opportunities Created By New Xsemble Technology
New Opportunities Created By New Xsemble TechnologyAshish Belagali
 
Kommbox - Work Collaboration for Organizations
Kommbox - Work Collaboration for OrganizationsKommbox - Work Collaboration for Organizations
Kommbox - Work Collaboration for OrganizationsAshish Belagali
 
Achieving Success with IT Projects
Achieving Success with IT ProjectsAchieving Success with IT Projects
Achieving Success with IT ProjectsAshish Belagali
 
The Importance of Multi-disciplinary Approach
The Importance of Multi-disciplinary ApproachThe Importance of Multi-disciplinary Approach
The Importance of Multi-disciplinary ApproachAshish Belagali
 
Kommbox - Collaborative Project Management Tool
Kommbox - Collaborative Project Management ToolKommbox - Collaborative Project Management Tool
Kommbox - Collaborative Project Management ToolAshish Belagali
 
Xsemble: Visual Assembly of Software
Xsemble: Visual Assembly of SoftwareXsemble: Visual Assembly of Software
Xsemble: Visual Assembly of SoftwareAshish Belagali
 
The Irresistible Charms of Java
The Irresistible Charms of JavaThe Irresistible Charms of Java
The Irresistible Charms of JavaAshish Belagali
 
Communication Process Consultancy
Communication Process ConsultancyCommunication Process Consultancy
Communication Process ConsultancyAshish Belagali
 
Kommbox: Getting Started and Basic Administration Guide
Kommbox: Getting Started and Basic Administration GuideKommbox: Getting Started and Basic Administration Guide
Kommbox: Getting Started and Basic Administration GuideAshish Belagali
 
Kommbox: Minding Your Business Communications
Kommbox: Minding Your Business CommunicationsKommbox: Minding Your Business Communications
Kommbox: Minding Your Business CommunicationsAshish Belagali
 
Benefit thru-communication-improvement
Benefit thru-communication-improvementBenefit thru-communication-improvement
Benefit thru-communication-improvementAshish Belagali
 
On the Slicing and Dicing of Business Communication
On the Slicing and Dicing of Business CommunicationOn the Slicing and Dicing of Business Communication
On the Slicing and Dicing of Business CommunicationAshish Belagali
 
Tutorial #3: Kommbox Email Integration
Tutorial #3: Kommbox Email IntegrationTutorial #3: Kommbox Email Integration
Tutorial #3: Kommbox Email IntegrationAshish Belagali
 
Tutorial #2: Kommbox Administration
Tutorial #2: Kommbox AdministrationTutorial #2: Kommbox Administration
Tutorial #2: Kommbox AdministrationAshish Belagali
 

Más de Ashish Belagali (20)

Turbo Charge Software Development with Xsemble
Turbo Charge Software Development with XsembleTurbo Charge Software Development with Xsemble
Turbo Charge Software Development with Xsemble
 
Make software like they make cars!
Make software like they make cars!Make software like they make cars!
Make software like they make cars!
 
Xsemble - Make software like they make cars!
Xsemble - Make software like they make cars!Xsemble - Make software like they make cars!
Xsemble - Make software like they make cars!
 
Kommbox - Your Communication Box on the Cloud
Kommbox - Your Communication Box on the CloudKommbox - Your Communication Box on the Cloud
Kommbox - Your Communication Box on the Cloud
 
New Opportunities Created By New Xsemble Technology
New Opportunities Created By New Xsemble TechnologyNew Opportunities Created By New Xsemble Technology
New Opportunities Created By New Xsemble Technology
 
Kommbox - Work Collaboration for Organizations
Kommbox - Work Collaboration for OrganizationsKommbox - Work Collaboration for Organizations
Kommbox - Work Collaboration for Organizations
 
Achieving Success with IT Projects
Achieving Success with IT ProjectsAchieving Success with IT Projects
Achieving Success with IT Projects
 
The Importance of Multi-disciplinary Approach
The Importance of Multi-disciplinary ApproachThe Importance of Multi-disciplinary Approach
The Importance of Multi-disciplinary Approach
 
Kommbox - Collaborative Project Management Tool
Kommbox - Collaborative Project Management ToolKommbox - Collaborative Project Management Tool
Kommbox - Collaborative Project Management Tool
 
Xsemble: Visual Assembly of Software
Xsemble: Visual Assembly of SoftwareXsemble: Visual Assembly of Software
Xsemble: Visual Assembly of Software
 
The Irresistible Charms of Java
The Irresistible Charms of JavaThe Irresistible Charms of Java
The Irresistible Charms of Java
 
10Xofy Your Business
10Xofy Your Business10Xofy Your Business
10Xofy Your Business
 
Kommbox User Guide
Kommbox User GuideKommbox User Guide
Kommbox User Guide
 
Communication Process Consultancy
Communication Process ConsultancyCommunication Process Consultancy
Communication Process Consultancy
 
Kommbox: Getting Started and Basic Administration Guide
Kommbox: Getting Started and Basic Administration GuideKommbox: Getting Started and Basic Administration Guide
Kommbox: Getting Started and Basic Administration Guide
 
Kommbox: Minding Your Business Communications
Kommbox: Minding Your Business CommunicationsKommbox: Minding Your Business Communications
Kommbox: Minding Your Business Communications
 
Benefit thru-communication-improvement
Benefit thru-communication-improvementBenefit thru-communication-improvement
Benefit thru-communication-improvement
 
On the Slicing and Dicing of Business Communication
On the Slicing and Dicing of Business CommunicationOn the Slicing and Dicing of Business Communication
On the Slicing and Dicing of Business Communication
 
Tutorial #3: Kommbox Email Integration
Tutorial #3: Kommbox Email IntegrationTutorial #3: Kommbox Email Integration
Tutorial #3: Kommbox Email Integration
 
Tutorial #2: Kommbox Administration
Tutorial #2: Kommbox AdministrationTutorial #2: Kommbox Administration
Tutorial #2: Kommbox Administration
 

Último

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 

Último (20)

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

Technology Roundup - Programming Languages & Paradigms

  • 1. © Acism Software Private Limited Technology Roundup Historical Perspective to Understand New Age Technologies Better Ashish Belagali, Acism Software Private Limited, Pune http://www.acism.com @Ashish1IT
  • 2. © Acism Software Private Limited Agenda  The rise of Programming Languages  Paradigms  Takeaways
  • 3. © Acism Software Private Limited The Rise of Programming Languages
  • 4. © Acism Software Private Limited FORTRAN (1956)  Developed at IBM  Proposal by John W Backus to develop high level language for mainframe (against Assembly)  Reduced lines of code by a factor of 20
  • 5. © Acism Software Private Limited ALGOL (1958)  The dawn of structured programming (as against goto spaghetti code)  Developed jointly by a committee of European and American scientists at a meeting at Zurich
  • 6. © Acism Software Private Limited LISP (1958)  History − Invented by John McCarthy while he was at MIT − First implemented by Steve Russel on IBM 704 computer − First LISP compiler written in LISP in 1962  Interchangeability of data and code  Connection with AI
  • 7. © Acism Software Private Limited COBOL (1960)  Proposed to Pentagon in 1959  Max use of English, machine independent  Almost dead before it was born
  • 8. © Acism Software Private Limited Imperative Low level FORTRAN 1956 Assembly COBOL 1960 LISP 1958 Structured ALGOL 1958
  • 9. © Acism Software Private Limited Basic (1964)  Beginner's language – aimed at students from non-computer background  Developed by John Kemeny and Thomas Kurtz  Based on Fortran II and ALGOL 60  Grew in minicomputer and microcomputer era  Lost to C and C++ in the era of Shrink-wrap applications (later half of 1980s)  Revived again in VB and VB.Net
  • 10. © Acism Software Private Limited SIMULA (1967)  Stands for Simula 1 and Simula 67  Developed at Norwegian Computing Center at Oslo, by Ole-Johan Dahl and Kristen Nygaard  Superset of ALGOL 60  Simula 67 the first Object Oriented language  Introduced objects, classes, inheritance and subclasses, virtual methods, coroutines, discrete event simulation and garbage collection
  • 11. © Acism Software Private Limited Pascal (1970)  Designed by Niklaus Wirth to honor French mathematician Blaise Pascal  Based on ALGOL 60 and enabled programmers to define their own complex data types − Records, enumerations, subranges, dynamically allocated variables with associated pointers and sets  Allows nested procedure definition  Object Pascal powers Delphi IDE
  • 12. © Acism Software Private Limited Prolog  Designed by Alain Colmerauer with Philippe Roussel  A logic programming language – associated with artificial intelligence and computational linguistics  Completely declarative  specify rules and make queries  EU AI researchers favored Prolog (while American AI researchers favored LISP)
  • 13. © Acism Software Private Limited Imperative Declarative Low level FORTRAN 1956 Assembly COBOL 1960 LISP 1958 Structured Object oriented Pascal 1970 BASIC 1964 Prolog 1972 SIMULA 1967 ALGOL 1958
  • 14. © Acism Software Private Limited C (1973)  Created at Bell labs by Dennis Ritchie and Ken Thomson  Low level and a high level language  Portable – Write Once Compile Anywhere (WOCA)  Unix kernel reimplemented
  • 15. © Acism Software Private Limited Ada (1980)  Extends from Pascal  Strong typing (variable ranges), modularity mechanisms (packages), runtime checks, parallel processing, exceptions, generic dispatch  Ada 95 added object orientation  Designed for developing very large software systems  Strong compile time, run time checks, memory management type-safe 
  • 16. © Acism Software Private Limited Objective C (1983) Developed by Brad Cox and Tom Love at their company StepStone Adding Smalltalk style messaging to C
  • 17. © Acism Software Private Limited C++ (1983)  Developed by Bjarne Stroustrup starting 1979  Standardized in 1998  Superset of C language  Enhancing C language with Simula-like features
  • 18. © Acism Software Private Limited Imperative Declarative Low level FORTRAN 1956 Assembly COBOL 1960 LISP 1958 C 1973 Structured C++ 1983 Object oriented Pascal 1970 Ada 1980 BASIC 1964 Prolog 1972 Objective C 1983 SIMULA 1967 ALGOL 1958
  • 19. © Acism Software Private Limited Matlab (1984)  Developed by Cleve Moler at Univ of New Mexico - started in early 1970s  Intention was to give students access to LINPACK and EISPACK without learning FORTRAN  Mathworks company was formed in 1984  4th Generation language  Mathematical computations  Image processing
  • 20. © Acism Software Private Limited Perl (1987)  Derived ideas from unix shell scripting, awk and sed  Started the trend of dynamic languages – Powerful text processing – Loose typing  Widely used in CGI scripting prior to PHP
  • 21. © Acism Software Private Limited Haskell (1990)  Functional programming language – following a start in 1985 (Miranda)  Originated by a committee formed in 1987 at Portland, Oregon  Functions do not have side effects − distinct construct for side effects orthogonal to functions  Lazy evaluation, pattern matching, list comprehension, type classes & type polymorphism
  • 22. © Acism Software Private Limited Visual Basic (1991)  Language and IDE  Rapid Application Development (RAD)  Easy to learn, Drag and Drop  Final release in 1998, unsupported since 2008
  • 23. © Acism Software Private Limited Python (1991)  Developed by Guido Van Russon as a hobby  Readability, Fewer LOC  Supports multiple programming paradigms  Object oriented  Functional  Procedural  Dynamic types and automated memory management  JVM variant Jython
  • 24. © Acism Software Private Limited Ruby (1995)  Developed by Yukihiro Matsumoto  Purely object oriented  Supports multiple programming paradigms  Functional  Object oriented  Imperative
  • 25. © Acism Software Private Limited PHP (1995)  Rasmus Lerdorf began to maintain his personal homepage  There was no intent to write a programming language  Dynamic, easy-to-use  Perl-like variables, form handling and HTML embedding  Object orientation added in v5  No written specification existed till 2014. The effort is now on.
  • 26. © Acism Software Private Limited Imperative Declarative Low level FORTRAN 1956 Assembly COBOL 1960 LISP 1958 C 1973 Structured C++ 1983 Object oriented Pascal 1970 Ada 1980 BASIC 1964 VB 1991 Functional Perl 1987 DynamicProlog 1972 Matlab 1984 Python 1991 Ruby 1995 PHP 1995 Objective C 1983 SIMULA 1967 ALGOL 1958 Haskell 1990
  • 27. © Acism Software Private Limited Java (1995)  Created by James Gosling at Sun Microsystems  Write Once Run Anywhere (WORA)  Secure, configurable security  Java applets for web  Semi-interpreted, Java Virtual Machine (JVM)  Performance: JIT  Automatic memory management  Technologies: Applets, Servlets, JSP, Swing
  • 28. © Acism Software Private Limited Javascript (1995)  Designed by Brendan Eich at Netscape  Prototype-based scripting language, with dynamic typing and first-class functions  Multi-paradigm  Object oriented  Imperative  Functional
  • 29. © Acism Software Private Limited Imperative Declarative Low level FORTRAN 1956 Assembly COBOL 1960 LISP 1958 C 1973 Structured C++ 1983 Object oriented Pascal 1970 Ada 1980 JVM languages BASIC 1964 VB 1991 Functional Perl 1987 DynamicProlog 1972 Matlab 1984 Python 1991 Ruby 1995 Javascript 1995 PHP 1995 Objective C 1983 Java 1995 SIMULA 1967 ALGOL 1958 Haskell 1990
  • 30. © Acism Software Private Limited .Net Framework (2002)  Common Language Runtime (CLR) Rivals JVM − Managed vs native code − Ahead of time compilation using native image generator  Collection of languages:VB.Net, Fortran.Net, C#  .Net Compact framework for Windows mobile
  • 31. © Acism Software Private Limited Scala (2003)  Designed by Martin Odersky  Previously he was in the Java compiler team  Both Object oriented and Functional  Statically typed, smaller in size
  • 32. © Acism Software Private Limited Imperative Declarative Low level FORTRAN 1956 Assembly COBOL 1960 LISP 1958 C 1973 Structured C++ 1983 Object oriented Pascal 1970 Ada 1980 JVM languages .Net 2002 BASIC 1964 VB 1991 Haskell 1990 Functional Perl 1987 DynamicProlog 1972 Matlab 1984 Python 1991 Ruby 1995 Javascript 1995 PHP 1995 Scala 2003 Objective C 1983 Java 1995 SIMULA 1967 ALGOL 1958
  • 33. © Acism Software Private Limited Paradigms
  • 34. © Acism Software Private Limited Object Oriented Programming  Based on objects containing data fields  Use encapsulation and data hiding  Can be further classified into  Class based (object blueprint)  Prototype based (object cloning)  Separation of concerns such as Aspect oriented
  • 35. © Acism Software Private Limited Dynamic Languages  Loose typing (duck typing)  Evolved as scripting languages – quick and dirty  Mostly interpreted languages  Fast programming cycle  Compiler advantage lost
  • 36. © Acism Software Private Limited Domain Specific Languages  Declarative languages  Useful, still not general purpose (Turing- complete)  Examples  Markup languages: HTML, MXML, XSL etc  Yacc input language  Make or Ant specification language  Hybrid (also have imperative part)  SQL  Regex
  • 37. © Acism Software Private Limited Functional Programming  Computation is evaluation of mathematical functions  Functions are without side effects  Even logging – but some of these exceptions are often admissible  Many popular languages –not labeled as functional– can be used in functional programming style
  • 38. © Acism Software Private Limited JVM Languages  Produce Java bytecode, targeted to run on Java Virtual Machine  JVM handles security, memory management  Also, can use Java's library  Java 6 onwards dynamic languages can run faster
  • 39. © Acism Software Private Limited 4th Generation Languages  Background  2GL – Assembly  3GL – C, C++, Java, Javascript, C# etc  4GL language operate with large collection of information rather than bits and bytes  DB management, report generation, mathematical optimizations, GUI development or web development  Libraries like 4GL features are developed with most popular 3GL languages. Also some advanced 3GL languages include some 4GL
  • 40. © Acism Software Private Limited Visual Programming  Visual representation of the flow  Typically at a high level  Examples  Case tools  Business process modeling  Scratch
  • 41. © Acism Software Private Limited Takeaways  Business inclinations, developer preferences go into a language.  Good developers know at least 5 languages  Current trends  Mixing of paradigms  4GL, Visual
  • 42. © Acism Software Private Limited Thank You Ashish Belagali, Acism Software Private Limited, Pune http://www.acism.com @Ashish1IT