To explain the tremendous evolution in ICT the last decades, one typically refers to the Law of Moore. Today we’re facing with new languages and methodologies popping up like buzz words. Understanding the evolution of programming and cornerstone concepts will help you to position and value future programming languages and trends.
Software language over the last 50 years, what will be next (by Pieter Zuliani & Joachim Jansen)
1. 5.4 Software language over the last 50 years: what will be next? 1
CONFIDENTIAL Template Innovation Day 2019CONFIDENTIAL
SOFTWARE LANGUAGE OVER THE LAST 50 YEARS:
WHAT WILL BE NEXT?
Pieter Zuliani - Joachim Jansen
COO Pegus Digital - C++ Lead developer
Pieter.zuliani@pegus.digital - Joachim.jansen@pegus.digital
TRACK 5
MyTechnology
2. 5.4 Software language over the last 50 years: what will be next? 2
CONFIDENTIAL
1
2
3
4
5
6
7
CONTENT
Intro – Programming language influence on integrated product development
What is a programming language
History of programming languages
Current usage statistics of programming languages
Pegus Digital Use Cases – Why did we choose a certain technology stack?
The future of programming languages
Conclusion
3. 5.4 Software language over the last 50 years: what will be next? 3
CONFIDENTIAL
PROGRAMMING LANGUAGES - INFLUENCE
ON INTEGRATED PRODUCT DEVELOPMENT
4. 5.4 Software language over the last 50 years: what will be next? 4
CONFIDENTIAL
INFLUENCE ON INTEGRATED PRODUCT DEVELOPMENT
5. 5.4 Software language over the last 50 years: what will be next? 5
CONFIDENTIAL
WHAT IS A PROGRAMMING LANGUAGE
6. 5.4 Software language over the last 50 years: what will be next? 6
CONFIDENTIAL
WHAT IS A PROGRAMMING LANGUAGE
7. 5.4 Software language over the last 50 years: what will be next? 7
CONFIDENTIAL
Programming Language
=
Tool to tell the computer what to do
WHAT IS A PROGRAMMING LANGUAGE
8. 5.4 Software language over the last 50 years: what will be next? 8
CONFIDENTIAL
• Formal language
• Syntax (symbols) + Semantics (meaning)
• Set of instructions
• Various kinds of outputs
• Many different programming languages
WHAT IS A PROGRAMMING LANGUAGE
9. 5.4 Software language over the last 50 years: what will be next? 9
CONFIDENTIAL
Program
(High Level)
Program
(Low Level)
Machine
Code
Machine
WHAT IS A PROGRAMMING LANGUAGE
#include <iostream>
int main() {
std::cout << "Hello World";
}
10. 5.4 Software language over the last 50 years: what will be next? 10
CONFIDENTIAL
Program
(High Level)
Program
(Low Level)
Machine
Code
Machine
WHAT IS A PROGRAMMING LANGUAGE
section .text
global _start:
_start:
mov eax, 4
mov ebx, 1
mov ecx, string
mov edx, length
int 80h
mov eax, 1
mov ebx, 8
int 80h
section .data
string: db 'Hello World', 0Ah
length: equ 13
11. 5.4 Software language over the last 50 years: what will be next? 11
CONFIDENTIAL
Program
(High Level)
Program
(Low Level)
Machine
Code
Machine
WHAT IS A PROGRAMMING LANGUAGE
{
0x86,
0xFF,
0x35,
0x00,
0x00,
0x00,
0xA3,
…
0xC0,
0x00,
0x00,
0x00,
0xC3
}
12. 5.4 Software language over the last 50 years: what will be next? 12
CONFIDENTIAL
Program
(High Level)
Program
(Low Level)
Machine
Code
Machine
WHAT IS A PROGRAMMING LANGUAGE
13. 5.4 Software language over the last 50 years: what will be next? 13
CONFIDENTIAL
HISTORY OF PROGRAMMING LANGUAGES
14. 5.4 Software language over the last 50 years: what will be next? 14
CONFIDENTIAL
HISTORY OF PROGRAMMING LANGUAGES
15. 5.4 Software language over the last 50 years: what will be next? 15
CONFIDENTIAL
• First-generation languages
• A.k.a. machine code
• Binary codes of 0 and 1
• not human-readable
• No need for any translator or converter
• Machine dependent
HISTORY OF PROGRAMMING LANGUAGES
{
0x86,
0xFF,
0x35,
0x00,
0x00,
0x00,
0xA3,
…
0xC0,
0x00,
0x00,
0x00,
0xC3
}
16. 5.4 Software language over the last 50 years: what will be next? 16
CONFIDENTIAL
• Second-generation languages
• A.k.a. assembly languages
• Use mnemonics => more human-readable
• “Low-level” programming language
• Assembler converts into machine code
HISTORY OF PROGRAMMING LANGUAGES
section .text
global _start:
_start:
mov eax, 4
mov ebx, 1
mov ecx, string
mov edx, length
int 80h
mov eax, 1
mov ebx, 8
int 80h
section .data
string: db 'Hello World', 0Ah
length: equ 13
17. 5.4 Software language over the last 50 years: what will be next? 17
CONFIDENTIAL
• Third-generation languages
• Functions, Types, Data structures, Objects, Libraries
• Referred to as “high-level” languages
• A compiler or interpreter translates to assembly language
• Examples: FORTRAN, COBOL, PASCAL, C, C++, Java …
HISTORY OF PROGRAMMING LANGUAGES
#include <iostream>
int main() {
std::cout <<
"Hello World";
}
18. 5.4 Software language over the last 50 years: what will be next? 18
CONFIDENTIAL
• Fourth-generation languages
= Very high-level abstractions in a specific domain
• Database mgmt.
• Table-driven programming
• Automatic Reporting
• GUI Creation
HISTORY OF PROGRAMMING LANGUAGES
19. 5.4 Software language over the last 50 years: what will be next? 19
CONFIDENTIAL
HISTORY OF PROGRAMMING LANGUAGES
Each next generation = more abstractions
Motivation: needed to construct larger, more complex software
Prerequisite: increased computing power
20. 5.4 Software language over the last 50 years: what will be next? 20
CONFIDENTIAL
🏊 DEEP DIVE: EARLY HISTORY
Program
(High Level)
Program
(Low Level)
Machine
Code
Machine
{
0x86,
0xFF,
0x35,
0x00,
0x00,
0x00,
0xA3,
…
0xC0,
0x00,
0x00,
0x00,
0xC3
}
section .text
global _start:
_start:
mov eax, 4
mov ebx, 1
mov ecx, string
mov edx, length
int 80h
mov eax, 1
mov ebx, 8
int 80h
section .data
string: db 'Hello World', 0Ah
length: equ 13
#include <iostream>
int main() {
std::cout <<
"Hello World";
}
21. 5.4 Software language over the last 50 years: what will be next? 21
CONFIDENTIAL
🏊 DEEP DIVE: EARLY HISTORY
Program
(High Level)
Program
(Low Level)
Machine
Code
Machine
1st Gen
• Numerical
representation
for instructions
• Sequences of
instructions
• Specific Machine
2nd Gen
• Human-readable
instructions
• tagging code
sections
• Flow control: loop,
jump
• Machine-independent
3rd Gen
• Libraries
• Functions, types
• Data Structures
(Objects)
• Complex flow
control: If, while,
for
22. 5.4 Software language over the last 50 years: what will be next? 22
CONFIDENTIAL
🏊 DEEP DIVE: EARLY HISTORY
Program
(High Level)
Program
(Low Level)
Machine
Code
Machine
Compiler ($$$) Assembler ($)
23. 5.4 Software language over the last 50 years: what will be next? 23
CONFIDENTIAL
USAGE STATISTICS OF PROGRAMMING LANGUAGES
24. 5.4 Software language over the last 50 years: what will be next? 24
CONFIDENTIAL
MOST USED
25. 5.4 Software language over the last 50 years: what will be next? 25
CONFIDENTIAL
MOST LOVED
26. 5.4 Software language over the last 50 years: what will be next? 26
CONFIDENTIAL
MOST PAID
27. 5.4 Software language over the last 50 years: what will be next? 27
CONFIDENTIAL
PEGUS DIGITAL USE CASES – WHY DID WE CHOOSE
A CERTAIN TECHNOLOGY STACK?
28. 5.4 Software language over the last 50 years: what will be next? 28
CONFIDENTIAL
USE CASES
Monitoring
Signals
▪ Offer existing data as Semantic Data
▪ Modern, standardized API for communication
▪ Human-machine interaction
▪ Machine-machine interaction
29. 5.4 Software language over the last 50 years: what will be next? 29
CONFIDENTIAL
USE CASES
Monitoring
Signals
▪ Modern, standardized API for communication
▪ Human-machine interaction
▪ Machine-machine interaction
▪ Offer existing data as semantic Data
Python
C++
30. 5.4 Software language over the last 50 years: what will be next? 30
CONFIDENTIAL
THE FUTURE OF PROGRAMMING LANGUAGES
31. 5.4 Software language over the last 50 years: what will be next? 31
CONFIDENTIAL
Fifth-Generation: “ultimate” level of abstraction
• Describe problem, not algorithm for solving the problem
• Abstracts away method needed for solving
• Examples: Genetic Programming, Machine Learning (e.g. Neural networks), Constraint-based Programming
Demo 1: Genetic Programming
https://keiwan.itch.io/evolution
https://rednuht.org/genetic_walkers/
Demo 2: Constraint-based Programming (Logic-based)
https://verne.cs.kuleuven.be/idp/server.html
THE FUTURE OF PROGRAMMING LANGUAGES
32. 5.4 Software language over the last 50 years: what will be next? 32
CONFIDENTIAL
CONCLUSION
33. 5.4 Software language over the last 50 years: what will be next? 33
CONFIDENTIAL
• IoT/Industry 4.0 -> More usage of low-level languages
• AI → Increase of Python, R, Lisp, Prolog
• Many languages to choose from
• Choice depends on:
• Target hardware / system
• Existing libraries
• Community support
• Expertise of your team / hiring market
CONCLUSION
34. 5.4 Software language over the last 50 years: what will be next? 34
CONFIDENTIAL
One group, five brands
Our services are marketed through 5 brands each addressing
specific missions in product development.
INTEGRATED PRODUCT DEVELOPMENT
ON-SITE PRODUCT
DEVELOPMENT
DIGITAL PRODUCT
DEVELOPMENT
OPTICAL PRODUCT
DEVELOPMENT