SlideShare une entreprise Scribd logo
1  sur  39
Télécharger pour lire hors ligne
Evolution of
Programming Languages
from 1940s to 2100
History of Programmers
• Before 1940s: The first programmers
• The 1940s: Von Neumann, Konard Zuse & PlankalKul
• The 1950s: The First Programming Language
• The 1960s: An Explosion in Programming languages
• The 1970s: Simplicity, Abstraction, Study
• The 1980s: Consolidation and New Directions
• The 1990s: Internet and the Web
• The 2000s: tbd
Early History: The First Programmer
• Jacquard loom of early 1800s
– Translated card patterns into cloth designs
• Charles Babbage’s analytical engine (1830s & 40s)
Programs were cards with data and operations
• Ada Lovelace – first programmer
“The engine can arrange and combine its numerical quantities
exactly as if they were letters or any other general symbols; And in
fact might bring out its results in algebraic notation, were provision
made.”
Jacquard loom of early 1800s Charles Babbage’s analytical engine (1830s & 40s) Ada Lovelace – first programmer
The 1940s: Von Neumann and Zuse
John Von Neumann
led a team that built
computers with stored
programs and a central
processor ENIAC.
Konrad Zuse and Plankalkul
Konrad Zuse began work on Plankalkul (plan
calculus), the first algorithmic programming
language, with an aim of creating the theoretical
preconditions for the formulation of problems
of a general nature.
Seven years earlier, Zuse had developed and
built the world's first binary digital computer,
the Z1. He completed the first fully functional
program-controlled electromechanical digital
computer, the Z3, in 1941.
Only the Z4, the most sophisticated of his
creations, survived World War II.
Machine Code (1940’s)
•Initial computers were programmed in raw machine code.
•These were entirely numeric.
•What was wrong with using machine code? Everything!
•Poor readability
•Poor modifiability
•Expression coding was tedious
•Inherit deficiencies of hardware, e.g., no indexing or floating point
numbers
Pseudocodes (1949)
•Short Code or SHORTCODE - John Mauchly, 1949.
•Pseudocode interpreter for math problems, on Eckert
and Mauchly’s BINAC and later on UNIVAC I and II.
•Possibly the first attempt at a higher level language.
•Expressions were coded, left to right
More Pseudocodes
Speed coding; 1953-4
• A pseudocode interpreter for math on IBM 701, IBM 650.
• Developed by John Backus
• Pseudo ops for arithmetic and math functions
• Conditional and unconditional branching
• Auto increment registers for array access
• Slow but still dominated by slowness of s/w math
• Interpreter left only 700 words left for user program
Laning and Zierler System – 1953
• Implemented on the MIT Whirlwind computer
• First "algebraic" compiler system
• Subscripted variables, function calls, expression translation
• Never ported to any other machine
The 1950s: The First Programming
Language
• Pseudocodes: interpreters for assembly language like
• Fortran: the first higher level programming language
• COBOL: he first business oriented language
• Algol: one of the most influential programming languages ever
designed
• LISP: the first language to depart from the procedural paradigm
• APL: A Programming Language
The 1960s: An Explosion in Programming
Languages
• The development of hundreds of programming languages
• PL/I designed in 1963-4
– supposed to be all purpose
– combined features of FORTRAN, COBOL and Algol 60 and more!
– translators were slow, huge and unreliable
– some say it was ahead of its time......
• Algol 68
• SNOBOL
• Simula
• BASIC
The 1970s: Simplicity, Abstraction, Study
• Algol-W - Nicklaus Wirth and C.A.R.Hoare
– reaction against 1960s
– simplicity
• Pascal
– small, simple, efficient structures
– for teaching program
• C - 1972 - Dennis Ritchie
– aims for simplicity by reducing restrictions of the type system
– allows access to underlying system
– interface with O/S - UNIX
The 1980s: Consolidation and New
Paradigms
• Ada
– US Department of Defence
– European team lead by Jean Ichbiah. (Sam Lomonaco was also on the ADA team :-)
• Functional programming
– Scheme, ML, Haskell
• Logic programming
– Prolog
• Object-oriented programming
– Smalltalk, C++, Eiffel
Functional Programming
• Common Lisp: consolidation of LISP dialects spurred practical use,
as did the development of Lisp Machines.
• Scheme: a simple and pure LISP like language used for teaching
programming.
• Logo: Used for teaching young children how to program.
• ML: (Meta Language) a strongly-typed functional language first
developed by Robin Milner in the 70’s
• Haskell: poly morphicly typed, lazy, purely functional language.
Small talk (1972-80)
•Developed at Xerox PARC by Alan Kay and colleagues (esp. Adele
Goldberg) inspired by Simula 67
•First compilation in 1972 was written on a bet to come up with "the
most powerful language in the world" in "a single page of code".
•In 1980, Smalltalk 80, a uniformly object-oriented programming
environment became available as the first commercial release of the
Smalltalk language
•Pioneered the graphical user interface everyone now uses
•Industrial use continues to the present day
C++ (1985)
•Developed at Bell Labs by Stroustrup
•Evolved from C and SIMULA 67
•Facilities for object-oriented programming, taken partially from SIMULA
67, added to C
•Also has exception handling
•A large and complex language, in part because it supports both procedural
and OO programming
•Rapidly grew in popularity, along with OOP
•ANSI standard approved in November, 1997
Eiffel
Eiffel - a related language that supports OOP
- (Designed by Bertrand Meyer - 1992)
- Not directly derived from any other language
- Smaller and simpler than C++, but still has most of the power
1990’s: the Internet and Web
During the 90’s, Object-oriented languages (mostly C++)
became widely used in practical applications
The Internet and Web drove several phenomena:
– Adding concurrency and threads to existing languages
– Increased use of scripting languages such as Perl and Tcl/Tk
– Java as a new programming language
Java
• Developed at Sun in the early 1990s
with original goal of a language for
embedded computers
• Principals: Bill Joy, James Gosling, Mike
Sheradin, Patrick Naughton
• Original name, Oak, changed for copyright reasons
• Based on C++ but significantly simplified
• Supports only OOP
• Has references, but not pointers
• Includes support for applets and a form of concurrency (i.e. threads)
The future
• In the 60’s, the dream was a single all-purpose language
(e.g., PL/I, Algol)
• The 70s and 80s dream expressed by Winograd (1979)
“Just as high-level languages allow the programmer to escape the intricacies of
the machine, higher level programming systems can provide for manipulating
complex systems. We need to shift away from algorithms and towards the
description of the properties of the packages that we build. Programming
systems will be declarative not imperative”
• Will that dream be realised?
• Programming is not yet obsolete
Currently Trending Programming
Languages
There are several programming languages that are commonly used in the fields of AI, ML, and Cybersecurity. Here are some of the most popular ones:
1. Python: Python is one of the most popular programming languages for AI and ML development due to its simple syntax and readability. It supports a variety of
frameworks and libraries, which allows for more flexibility and creates endless possibilities for an engineer to work with. Some of the most popular Python libraries
for machine learning include: sci-kit image, OpenCV, TensorFlow, PyTorch, Keras, NumPy, NLTK, SciPy, and sci-kit learn123.
2. Java: Java is a general-purpose programming language that is used for creating mobile, desktop, web, and cloud applications. It is also used for developing AI
systems. Java is known for its scalability, security, and cross-platform compatibility2.
3. R: R is a programming language that is used for statistical computing and graphics. It is widely used in data analysis, machine learning, and scientific research. R
has a large number of libraries and packages that make it easy to perform complex statistical analyses3.
4. Julia: Julia is a high-level, high-performance programming language that is designed for numerical and scientific computing. It is used for developing AI and ML
models, as well as for data analysis and visualization3.
5. Lisp: Lisp is a family of programming languages that are used for AI and ML development. Lisp is known for its powerful macro system, which allows developers
to extend the language itself. Lisp is also used for symbolic computing, which is a type of computing that deals with symbols and expressions3.
6. JavaScript: JavaScript is a programming language that is used for creating highly interactive browser-based applications. It is also used for developing AI systems.
JavaScript is known for its flexibility and ease of use2.
7. C++: C++ is a general-purpose programming language that is used for developing AI and ML models, as well as for developing operating systems, system software,
and embedded systems. C++ is known for its speed and efficiency2.
• Here are some PowerPoint presentations that you might find useful:
1. Machine Learning in Cyber Security - This presentation provides a holistic view of machine learning in cybersecurity for better organizational readiness.
2. AI and ML in Cybersecurity - This presentation discusses the limitations of machine learning and issues of explain ability, where deep learning should never be
applied, and examples of how the blind application of algorithms can lead to wrong results.
• Please note that the information provided is current as of January 2024 and may be subject to change.
Comparing the performance of Mojo,
Python, and JavaScript
Comparing the performance of Mojo, Python, and JavaScript in the context of
machine learning.
According to a Medium article, Python and Mojo are two popular programming
languages that have been widely used in various applications, from web
development to machine learning. While both Python and Mojo share some
similarities, they also have notable differences that set them apart. As a developer or
programmer, it’s essential to understand the fundamental differences between these
languages so that you can choose the one that best suits your needs.
Another Medium article compares the performance of JavaScript and Python for
machine learning. The article states that JavaScript’s computational performance is
still much better than Python’s. However, the maturity of the libraries — which
often have underlying modules written in C — means that operations on large
datasets can offer so much more than sheer computational power. But there is still a
place for JavaScript in machine learning.
Programming Languages for Civil
Engineering
• Civil and Structural engineering are fields that require a lot of computational power. Learning to code can
help engineers automate repetitive tasks, improve their workflow, and increase their productivity. According
to The Computational Engineer, the following programming languages are commonly used in the civil and
structural engineering industry 1:
1. Grasshopper: A visual programming language that can be easily adopted by civil and structural engineers. It
is a plugin to a CAD and 3D-modelling software called Rhinoceros. It has a low bar to entry but is powerful
enough to manage most of your workflows, including your Revit workflows.
2. Dynamo: A popular visual programming language for building and civil engineers. It is a plugin for Autodesk
Revit and can be used to automate repetitive tasks and improve workflows.
3. BHoM: A data structure and toolset for building and architecture that can be used to create custom
workflows and automate tasks.
4. C#: A general-purpose programming language that is widely used in the civil engineering industry. It is used
to develop software applications and tools for civil engineering projects.
• These languages have been designed with civil engineering workflows in mind and offer a lower bar to entry
for civil and structural engineers. They are also powerful enough to manage most of your workflows,
including your Revit workflows. If you are new to coding, Grasshopper is a great first language to learn as it
has an easy-to-adopt and debug interface 1.
Never Ever Ending Life History of
Programming Languages
• 18 New Programming Languages to Learn in 2024 | Built In

Contenu connexe

Similaire à Evolution of Programming Languages.pdf

Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)
Dastan Kamaran
 
History of Computer Programming Languages.pptx
History of Computer Programming Languages.pptxHistory of Computer Programming Languages.pptx
History of Computer Programming Languages.pptx
AliAbbas906043
 
Unit 4 Assignment 1 Comparative Study Of Programming...
Unit 4 Assignment 1 Comparative Study Of Programming...Unit 4 Assignment 1 Comparative Study Of Programming...
Unit 4 Assignment 1 Comparative Study Of Programming...
Carmen Sanborn
 
Computer, generations, languages, soft wares
Computer, generations, languages, soft waresComputer, generations, languages, soft wares
Computer, generations, languages, soft wares
kiranmohan42
 

Similaire à Evolution of Programming Languages.pdf (20)

Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)
 
Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)
 
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptxPYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
 
Evalution about programming language part 1
Evalution about programming language part 1Evalution about programming language part 1
Evalution about programming language part 1
 
The History of Programming.pptx
The History of Programming.pptxThe History of Programming.pptx
The History of Programming.pptx
 
History of Computer Programming Languages.pptx
History of Computer Programming Languages.pptxHistory of Computer Programming Languages.pptx
History of Computer Programming Languages.pptx
 
Imperative programming
Imperative programmingImperative programming
Imperative programming
 
Programming language
Programming languageProgramming language
Programming language
 
Introduction to course
Introduction to courseIntroduction to course
Introduction to course
 
Ppl 13 july2019
Ppl 13 july2019Ppl 13 july2019
Ppl 13 july2019
 
Unit 4 Assignment 1 Comparative Study Of Programming...
Unit 4 Assignment 1 Comparative Study Of Programming...Unit 4 Assignment 1 Comparative Study Of Programming...
Unit 4 Assignment 1 Comparative Study Of Programming...
 
System softare
System softareSystem softare
System softare
 
COMP6411.1.history.ppt
COMP6411.1.history.pptCOMP6411.1.history.ppt
COMP6411.1.history.ppt
 
Paradigms
ParadigmsParadigms
Paradigms
 
OBJECT ORIENTED PROGRAMMING.docx
OBJECT ORIENTED PROGRAMMING.docxOBJECT ORIENTED PROGRAMMING.docx
OBJECT ORIENTED PROGRAMMING.docx
 
Computer, generations, languages, soft wares
Computer, generations, languages, soft waresComputer, generations, languages, soft wares
Computer, generations, languages, soft wares
 
Relation between Languages, Machines and Computations
Relation between Languages, Machines and ComputationsRelation between Languages, Machines and Computations
Relation between Languages, Machines and Computations
 
Programming skills
Programming skillsProgramming skills
Programming skills
 
Unit1
Unit1Unit1
Unit1
 
Unit1
Unit1Unit1
Unit1
 

Dernier

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Peter Udo Diehl
 

Dernier (20)

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdf
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty Secure
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 

Evolution of Programming Languages.pdf

  • 2. History of Programmers • Before 1940s: The first programmers • The 1940s: Von Neumann, Konard Zuse & PlankalKul • The 1950s: The First Programming Language • The 1960s: An Explosion in Programming languages • The 1970s: Simplicity, Abstraction, Study • The 1980s: Consolidation and New Directions • The 1990s: Internet and the Web • The 2000s: tbd
  • 3. Early History: The First Programmer • Jacquard loom of early 1800s – Translated card patterns into cloth designs • Charles Babbage’s analytical engine (1830s & 40s) Programs were cards with data and operations • Ada Lovelace – first programmer “The engine can arrange and combine its numerical quantities exactly as if they were letters or any other general symbols; And in fact might bring out its results in algebraic notation, were provision made.”
  • 4. Jacquard loom of early 1800s Charles Babbage’s analytical engine (1830s & 40s) Ada Lovelace – first programmer
  • 5. The 1940s: Von Neumann and Zuse John Von Neumann led a team that built computers with stored programs and a central processor ENIAC.
  • 6. Konrad Zuse and Plankalkul Konrad Zuse began work on Plankalkul (plan calculus), the first algorithmic programming language, with an aim of creating the theoretical preconditions for the formulation of problems of a general nature. Seven years earlier, Zuse had developed and built the world's first binary digital computer, the Z1. He completed the first fully functional program-controlled electromechanical digital computer, the Z3, in 1941. Only the Z4, the most sophisticated of his creations, survived World War II.
  • 7. Machine Code (1940’s) •Initial computers were programmed in raw machine code. •These were entirely numeric. •What was wrong with using machine code? Everything! •Poor readability •Poor modifiability •Expression coding was tedious •Inherit deficiencies of hardware, e.g., no indexing or floating point numbers
  • 8. Pseudocodes (1949) •Short Code or SHORTCODE - John Mauchly, 1949. •Pseudocode interpreter for math problems, on Eckert and Mauchly’s BINAC and later on UNIVAC I and II. •Possibly the first attempt at a higher level language. •Expressions were coded, left to right
  • 9. More Pseudocodes Speed coding; 1953-4 • A pseudocode interpreter for math on IBM 701, IBM 650. • Developed by John Backus • Pseudo ops for arithmetic and math functions • Conditional and unconditional branching • Auto increment registers for array access • Slow but still dominated by slowness of s/w math • Interpreter left only 700 words left for user program Laning and Zierler System – 1953 • Implemented on the MIT Whirlwind computer • First "algebraic" compiler system • Subscripted variables, function calls, expression translation • Never ported to any other machine
  • 10. The 1950s: The First Programming Language • Pseudocodes: interpreters for assembly language like • Fortran: the first higher level programming language • COBOL: he first business oriented language • Algol: one of the most influential programming languages ever designed • LISP: the first language to depart from the procedural paradigm • APL: A Programming Language
  • 11. The 1960s: An Explosion in Programming Languages • The development of hundreds of programming languages • PL/I designed in 1963-4 – supposed to be all purpose – combined features of FORTRAN, COBOL and Algol 60 and more! – translators were slow, huge and unreliable – some say it was ahead of its time...... • Algol 68 • SNOBOL • Simula • BASIC
  • 12. The 1970s: Simplicity, Abstraction, Study • Algol-W - Nicklaus Wirth and C.A.R.Hoare – reaction against 1960s – simplicity • Pascal – small, simple, efficient structures – for teaching program • C - 1972 - Dennis Ritchie – aims for simplicity by reducing restrictions of the type system – allows access to underlying system – interface with O/S - UNIX
  • 13. The 1980s: Consolidation and New Paradigms • Ada – US Department of Defence – European team lead by Jean Ichbiah. (Sam Lomonaco was also on the ADA team :-) • Functional programming – Scheme, ML, Haskell • Logic programming – Prolog • Object-oriented programming – Smalltalk, C++, Eiffel
  • 14. Functional Programming • Common Lisp: consolidation of LISP dialects spurred practical use, as did the development of Lisp Machines. • Scheme: a simple and pure LISP like language used for teaching programming. • Logo: Used for teaching young children how to program. • ML: (Meta Language) a strongly-typed functional language first developed by Robin Milner in the 70’s • Haskell: poly morphicly typed, lazy, purely functional language.
  • 15. Small talk (1972-80) •Developed at Xerox PARC by Alan Kay and colleagues (esp. Adele Goldberg) inspired by Simula 67 •First compilation in 1972 was written on a bet to come up with "the most powerful language in the world" in "a single page of code". •In 1980, Smalltalk 80, a uniformly object-oriented programming environment became available as the first commercial release of the Smalltalk language •Pioneered the graphical user interface everyone now uses •Industrial use continues to the present day
  • 16. C++ (1985) •Developed at Bell Labs by Stroustrup •Evolved from C and SIMULA 67 •Facilities for object-oriented programming, taken partially from SIMULA 67, added to C •Also has exception handling •A large and complex language, in part because it supports both procedural and OO programming •Rapidly grew in popularity, along with OOP •ANSI standard approved in November, 1997
  • 17. Eiffel Eiffel - a related language that supports OOP - (Designed by Bertrand Meyer - 1992) - Not directly derived from any other language - Smaller and simpler than C++, but still has most of the power
  • 18. 1990’s: the Internet and Web During the 90’s, Object-oriented languages (mostly C++) became widely used in practical applications The Internet and Web drove several phenomena: – Adding concurrency and threads to existing languages – Increased use of scripting languages such as Perl and Tcl/Tk – Java as a new programming language
  • 19. Java • Developed at Sun in the early 1990s with original goal of a language for embedded computers • Principals: Bill Joy, James Gosling, Mike Sheradin, Patrick Naughton • Original name, Oak, changed for copyright reasons • Based on C++ but significantly simplified • Supports only OOP • Has references, but not pointers • Includes support for applets and a form of concurrency (i.e. threads)
  • 20. The future • In the 60’s, the dream was a single all-purpose language (e.g., PL/I, Algol) • The 70s and 80s dream expressed by Winograd (1979) “Just as high-level languages allow the programmer to escape the intricacies of the machine, higher level programming systems can provide for manipulating complex systems. We need to shift away from algorithms and towards the description of the properties of the packages that we build. Programming systems will be declarative not imperative” • Will that dream be realised? • Programming is not yet obsolete
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36. Currently Trending Programming Languages There are several programming languages that are commonly used in the fields of AI, ML, and Cybersecurity. Here are some of the most popular ones: 1. Python: Python is one of the most popular programming languages for AI and ML development due to its simple syntax and readability. It supports a variety of frameworks and libraries, which allows for more flexibility and creates endless possibilities for an engineer to work with. Some of the most popular Python libraries for machine learning include: sci-kit image, OpenCV, TensorFlow, PyTorch, Keras, NumPy, NLTK, SciPy, and sci-kit learn123. 2. Java: Java is a general-purpose programming language that is used for creating mobile, desktop, web, and cloud applications. It is also used for developing AI systems. Java is known for its scalability, security, and cross-platform compatibility2. 3. R: R is a programming language that is used for statistical computing and graphics. It is widely used in data analysis, machine learning, and scientific research. R has a large number of libraries and packages that make it easy to perform complex statistical analyses3. 4. Julia: Julia is a high-level, high-performance programming language that is designed for numerical and scientific computing. It is used for developing AI and ML models, as well as for data analysis and visualization3. 5. Lisp: Lisp is a family of programming languages that are used for AI and ML development. Lisp is known for its powerful macro system, which allows developers to extend the language itself. Lisp is also used for symbolic computing, which is a type of computing that deals with symbols and expressions3. 6. JavaScript: JavaScript is a programming language that is used for creating highly interactive browser-based applications. It is also used for developing AI systems. JavaScript is known for its flexibility and ease of use2. 7. C++: C++ is a general-purpose programming language that is used for developing AI and ML models, as well as for developing operating systems, system software, and embedded systems. C++ is known for its speed and efficiency2. • Here are some PowerPoint presentations that you might find useful: 1. Machine Learning in Cyber Security - This presentation provides a holistic view of machine learning in cybersecurity for better organizational readiness. 2. AI and ML in Cybersecurity - This presentation discusses the limitations of machine learning and issues of explain ability, where deep learning should never be applied, and examples of how the blind application of algorithms can lead to wrong results. • Please note that the information provided is current as of January 2024 and may be subject to change.
  • 37. Comparing the performance of Mojo, Python, and JavaScript Comparing the performance of Mojo, Python, and JavaScript in the context of machine learning. According to a Medium article, Python and Mojo are two popular programming languages that have been widely used in various applications, from web development to machine learning. While both Python and Mojo share some similarities, they also have notable differences that set them apart. As a developer or programmer, it’s essential to understand the fundamental differences between these languages so that you can choose the one that best suits your needs. Another Medium article compares the performance of JavaScript and Python for machine learning. The article states that JavaScript’s computational performance is still much better than Python’s. However, the maturity of the libraries — which often have underlying modules written in C — means that operations on large datasets can offer so much more than sheer computational power. But there is still a place for JavaScript in machine learning.
  • 38. Programming Languages for Civil Engineering • Civil and Structural engineering are fields that require a lot of computational power. Learning to code can help engineers automate repetitive tasks, improve their workflow, and increase their productivity. According to The Computational Engineer, the following programming languages are commonly used in the civil and structural engineering industry 1: 1. Grasshopper: A visual programming language that can be easily adopted by civil and structural engineers. It is a plugin to a CAD and 3D-modelling software called Rhinoceros. It has a low bar to entry but is powerful enough to manage most of your workflows, including your Revit workflows. 2. Dynamo: A popular visual programming language for building and civil engineers. It is a plugin for Autodesk Revit and can be used to automate repetitive tasks and improve workflows. 3. BHoM: A data structure and toolset for building and architecture that can be used to create custom workflows and automate tasks. 4. C#: A general-purpose programming language that is widely used in the civil engineering industry. It is used to develop software applications and tools for civil engineering projects. • These languages have been designed with civil engineering workflows in mind and offer a lower bar to entry for civil and structural engineers. They are also powerful enough to manage most of your workflows, including your Revit workflows. If you are new to coding, Grasshopper is a great first language to learn as it has an easy-to-adopt and debug interface 1.
  • 39. Never Ever Ending Life History of Programming Languages • 18 New Programming Languages to Learn in 2024 | Built In