SlideShare a Scribd company logo
2
Most read
8
Most read
10
Most read
JavaScript for ABAP Programmers
Introduction
Chris Whealy / The RIG
JavaScript’s Name – And the Resulting Confusion…
JavaScript was first developed by Brendan Eich at Netscape in 1995 (in 10 days). Originally this new
scripting language was called “Mocha”.
When Netscape Navigator 2.0 was shipped in September 1995, the language was renamed to
“LiveScript”.
However, when Netscape Navigator 2.0B3 was released on December 4th, 1995, Netscape made a
joint announcement with Sun Microsystems to the effect that Netscape’s new scripting language would
complement Sun Microsystem’s new Web application language Java; therefore, the new scripting
language would be called “JavaScript” – and this has caused no end of confusion ever since…
The bottom line is simply this…

JavaScript is NOT Java!

© 2013 SAP AG. All rights reserved.

2
JavaScript’s Linguistic Heritage
Over the course of the language’s development, various conceptual elements have been borrowed
from other languages to form what is now called JavaScript.

JavaScript

© 2013 SAP AG. All rights reserved.

3
JavaScript’s Linguistic Heritage
Over the course of the language’s development, various conceptual elements have been borrowed
from other languages to form what is now called JavaScript.

JavaScript

© 2013 SAP AG. All rights reserved.

4
JavaScript’s Linguistic Heritage
Over the course of the language’s development, various conceptual elements have been borrowed
from other languages to form what is now called JavaScript.

Scheme

JavaScript

© 2013 SAP AG. All rights reserved.

5
JavaScript’s Linguistic Heritage
Over the course of the language’s development, various conceptual elements have been borrowed
from other languages to form what is now called JavaScript.

Scheme

JavaScript

Perl
© 2013 SAP AG. All rights reserved.

6
JavaScript Standards
JavaScript was standardised by the European Computer Manufacturer’s Association (ECMA) in 1997.
JavaScript used in browsers is now considered to be only one implementation of the ECMA-262
specification.

Edition

Date
1 June 1997
2 June 1998
3 December 1999
4 Abandoned
5 December 2009

5.1 June 2011
6 (Harmony) Work in progress
7 Work in progress

© 2013 SAP AG. All rights reserved.

7
JavaScript Runtime Engines
In order to execute a JavaScript program, a JavaScript Engine is needed.
Multiple implementations of JavaScript engines are available, with the most widely used being:

JavaScript Engine
Rhino (Mozilla)
SpiderMonkey (Mozilla)
Chakra (Microsoft)

V8 (Google)
Nitro (Apple)

© 2013 SAP AG. All rights reserved.

8
JavaScript Runtime: Client Side Implementations
Modern JavaScript engines have been designed to run either from within a web browser or as stand
alone, server-side execution engines.

Browser

JavaScript Engine

Mozilla Firefox

SpiderMonkey (Mozilla)

Microsoft Internet Explorer

Chakra (Microsoft)

Google Chrome

V8 (Google)

Apple Safari

Nitro (Apple)

© 2013 SAP AG. All rights reserved.

9
JavaScript Runtime: Server Side Implementations
There are multiple server-side implementations of JavaScript, many of which are based on Mozilla
Rhino (Java based). When speed is required however, Mozilla SpiderMonkey or the Google V8
engine are used instead.

Server Side Implementation

JavaScript Engine
SpiderMonkey (Mozilla)

HANA XSJS
Accessible via

Chakra (Microsoft)

V8 (Google)
Nitro (Apple)

© 2013 SAP AG. All rights reserved.

10
In A Nutshell – The Main Differences Between ABAP & JavaScript
Understanding the differences between ABAP and JavaScript is fundamental to transferring your
existing programming skills into JavaScript. Some of the main differences are as follows:

ABAP

JavaScript

Strongly typed

Weakly typed

Syntax similar to COBOL

Syntax derived from Java (and C)

Block scope

Lexical scope

No equivalent concept

Functions are 1st class citizens

OO using class based inheritance

OO using referential inheritance

Imperative programming

Imperative or Functional programming

© 2013 SAP AG. All rights reserved.

11

More Related Content

What's hot (20)

Extending Flink SQL for stream processing use cases
Extending Flink SQL for stream processing use cases
Flink Forward
 
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Flink Forward
 
Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...
Claus Ibsen
 
Dynamic Rule-based Real-time Market Data Alerts
Dynamic Rule-based Real-time Market Data Alerts
Flink Forward
 
JavaScript Programming
JavaScript Programming
Sehwan Noh
 
Building a Streaming Microservice Architecture: with Apache Spark Structured ...
Building a Streaming Microservice Architecture: with Apache Spark Structured ...
Databricks
 
Bootstrapping state in Apache Flink
Bootstrapping state in Apache Flink
DataWorks Summit
 
Real-time Stream Processing with Apache Flink
Real-time Stream Processing with Apache Flink
DataWorks Summit
 
Xmpp presentation
Xmpp presentation
javaranger123
 
Introduction to Apache Flink - Fast and reliable big data processing
Introduction to Apache Flink - Fast and reliable big data processing
Till Rohrmann
 
Grafana introduction
Grafana introduction
Rico Chen
 
mastering the curl command line.pdf
mastering the curl command line.pdf
DanielStenberg7
 
Web ARChive (WARC) File Format
Web ARChive (WARC) File Format
Sawood Alam
 
Evening out the uneven: dealing with skew in Flink
Evening out the uneven: dealing with skew in Flink
Flink Forward
 
Data Structures in javaScript 2015
Data Structures in javaScript 2015
Nir Kaufman
 
Practical learnings from running thousands of Flink jobs
Practical learnings from running thousands of Flink jobs
Flink Forward
 
TypeScript Best Practices
TypeScript Best Practices
felixbillon
 
Exactly-Once Financial Data Processing at Scale with Flink and Pinot
Exactly-Once Financial Data Processing at Scale with Flink and Pinot
Flink Forward
 
IPT Chapter 3 Data Mapping and Exchange - Dr. J. VijiPriya
IPT Chapter 3 Data Mapping and Exchange - Dr. J. VijiPriya
VijiPriya Jeyamani
 
Real-Life Use Cases & Architectures for Event Streaming with Apache Kafka
Real-Life Use Cases & Architectures for Event Streaming with Apache Kafka
Kai Wähner
 
Extending Flink SQL for stream processing use cases
Extending Flink SQL for stream processing use cases
Flink Forward
 
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Flink Forward
 
Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...
Claus Ibsen
 
Dynamic Rule-based Real-time Market Data Alerts
Dynamic Rule-based Real-time Market Data Alerts
Flink Forward
 
JavaScript Programming
JavaScript Programming
Sehwan Noh
 
Building a Streaming Microservice Architecture: with Apache Spark Structured ...
Building a Streaming Microservice Architecture: with Apache Spark Structured ...
Databricks
 
Bootstrapping state in Apache Flink
Bootstrapping state in Apache Flink
DataWorks Summit
 
Real-time Stream Processing with Apache Flink
Real-time Stream Processing with Apache Flink
DataWorks Summit
 
Introduction to Apache Flink - Fast and reliable big data processing
Introduction to Apache Flink - Fast and reliable big data processing
Till Rohrmann
 
Grafana introduction
Grafana introduction
Rico Chen
 
mastering the curl command line.pdf
mastering the curl command line.pdf
DanielStenberg7
 
Web ARChive (WARC) File Format
Web ARChive (WARC) File Format
Sawood Alam
 
Evening out the uneven: dealing with skew in Flink
Evening out the uneven: dealing with skew in Flink
Flink Forward
 
Data Structures in javaScript 2015
Data Structures in javaScript 2015
Nir Kaufman
 
Practical learnings from running thousands of Flink jobs
Practical learnings from running thousands of Flink jobs
Flink Forward
 
TypeScript Best Practices
TypeScript Best Practices
felixbillon
 
Exactly-Once Financial Data Processing at Scale with Flink and Pinot
Exactly-Once Financial Data Processing at Scale with Flink and Pinot
Flink Forward
 
IPT Chapter 3 Data Mapping and Exchange - Dr. J. VijiPriya
IPT Chapter 3 Data Mapping and Exchange - Dr. J. VijiPriya
VijiPriya Jeyamani
 
Real-Life Use Cases & Architectures for Event Streaming with Apache Kafka
Real-Life Use Cases & Architectures for Event Streaming with Apache Kafka
Kai Wähner
 

Similar to JavaScript for ABAP Programmers - 1/7 Introduction (20)

Java script
Java script
Daniel Bragais
 
Javascript 01 (js)
Javascript 01 (js)
AbhishekMondal42
 
Javascript
Javascript
Momentum Design Lab
 
chap01 - Introduction to JavaScript first.pptx
chap01 - Introduction to JavaScript first.pptx
rexwilde3095
 
Java script introduction
Java script introduction
Jesus Obenita Jr.
 
Java script
Java script
reddivarihareesh
 
introduction to js
introduction to js
Sireesh K
 
Javascript tutorial
Javascript tutorial
Abhishek Kesharwani
 
WT Module-3.pptx
WT Module-3.pptx
RamyaH11
 
JavaScript Introduction
JavaScript Introduction
Charles Russell
 
INTRODUCTION.docx
INTRODUCTION.docx
KaiSane1
 
JavaScript New Tutorial Class XI and XII.pptx
JavaScript New Tutorial Class XI and XII.pptx
rish15r890
 
Java script Session No 1
Java script Session No 1
Saif Ullah Dar
 
Introduction to JavaScript
Introduction to JavaScript
ApxicTechnologies1
 
JavaScript_ The Backbone of Modern Software and Web Development.pdf
JavaScript_ The Backbone of Modern Software and Web Development.pdf
Delimp Technology
 
Difference between Node.js vs Java script
Difference between Node.js vs Java script
GhulamHussain799241
 
Java script Basic
Java script Basic
Jaya Kumari
 
txWelcome to Javascript Welcome to Javascript.pp
txWelcome to Javascript Welcome to Javascript.pp
vaibhavdtambe2003
 
Java script
Java script
Kumar
 
JavaScript: Implementations And Applications
JavaScript: Implementations And Applications
Pragya Pai
 
chap01 - Introduction to JavaScript first.pptx
chap01 - Introduction to JavaScript first.pptx
rexwilde3095
 
introduction to js
introduction to js
Sireesh K
 
WT Module-3.pptx
WT Module-3.pptx
RamyaH11
 
INTRODUCTION.docx
INTRODUCTION.docx
KaiSane1
 
JavaScript New Tutorial Class XI and XII.pptx
JavaScript New Tutorial Class XI and XII.pptx
rish15r890
 
Java script Session No 1
Java script Session No 1
Saif Ullah Dar
 
JavaScript_ The Backbone of Modern Software and Web Development.pdf
JavaScript_ The Backbone of Modern Software and Web Development.pdf
Delimp Technology
 
Difference between Node.js vs Java script
Difference between Node.js vs Java script
GhulamHussain799241
 
Java script Basic
Java script Basic
Jaya Kumari
 
txWelcome to Javascript Welcome to Javascript.pp
txWelcome to Javascript Welcome to Javascript.pp
vaibhavdtambe2003
 
Java script
Java script
Kumar
 
JavaScript: Implementations And Applications
JavaScript: Implementations And Applications
Pragya Pai
 
Ad

Recently uploaded (20)

Floods in Valencia: Two FME-Powered Stories of Data Resilience
Floods in Valencia: Two FME-Powered Stories of Data Resilience
Safe Software
 
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance
 
ENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdf
ENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdf
Muhammad Rizwan Akram
 
Data Validation and System Interoperability
Data Validation and System Interoperability
Safe Software
 
Supporting the NextGen 911 Digital Transformation with FME
Supporting the NextGen 911 Digital Transformation with FME
Safe Software
 
Enabling BIM / GIS integrations with Other Systems with FME
Enabling BIM / GIS integrations with Other Systems with FME
Safe Software
 
Viral>Wondershare Filmora 14.5.18.12900 Crack Free Download
Viral>Wondershare Filmora 14.5.18.12900 Crack Free Download
Puppy jhon
 
“Addressing Evolving AI Model Challenges Through Memory and Storage,” a Prese...
“Addressing Evolving AI Model Challenges Through Memory and Storage,” a Prese...
Edge AI and Vision Alliance
 
Oracle Cloud Infrastructure Generative AI Professional
Oracle Cloud Infrastructure Generative AI Professional
VICTOR MAESTRE RAMIREZ
 
Artificial Intelligence in the Nonprofit Boardroom.pdf
Artificial Intelligence in the Nonprofit Boardroom.pdf
OnBoard
 
Mastering AI Workflows with FME - Peak of Data & AI 2025
Mastering AI Workflows with FME - Peak of Data & AI 2025
Safe Software
 
Bridging the divide: A conversation on tariffs today in the book industry - T...
Bridging the divide: A conversation on tariffs today in the book industry - T...
BookNet Canada
 
Oracle Cloud Infrastructure AI Foundations
Oracle Cloud Infrastructure AI Foundations
VICTOR MAESTRE RAMIREZ
 
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Alliance
 
Providing an OGC API Processes REST Interface for FME Flow
Providing an OGC API Processes REST Interface for FME Flow
Safe Software
 
PyData - Graph Theory for Multi-Agent Integration
PyData - Graph Theory for Multi-Agent Integration
barqawicloud
 
The State of Web3 Industry- Industry Report
The State of Web3 Industry- Industry Report
Liveplex
 
Kubernetes Security Act Now Before It’s Too Late
Kubernetes Security Act Now Before It’s Too Late
Michael Furman
 
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Safe Software
 
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Safe Software
 
Floods in Valencia: Two FME-Powered Stories of Data Resilience
Floods in Valencia: Two FME-Powered Stories of Data Resilience
Safe Software
 
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance
 
ENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdf
ENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdf
Muhammad Rizwan Akram
 
Data Validation and System Interoperability
Data Validation and System Interoperability
Safe Software
 
Supporting the NextGen 911 Digital Transformation with FME
Supporting the NextGen 911 Digital Transformation with FME
Safe Software
 
Enabling BIM / GIS integrations with Other Systems with FME
Enabling BIM / GIS integrations with Other Systems with FME
Safe Software
 
Viral>Wondershare Filmora 14.5.18.12900 Crack Free Download
Viral>Wondershare Filmora 14.5.18.12900 Crack Free Download
Puppy jhon
 
“Addressing Evolving AI Model Challenges Through Memory and Storage,” a Prese...
“Addressing Evolving AI Model Challenges Through Memory and Storage,” a Prese...
Edge AI and Vision Alliance
 
Oracle Cloud Infrastructure Generative AI Professional
Oracle Cloud Infrastructure Generative AI Professional
VICTOR MAESTRE RAMIREZ
 
Artificial Intelligence in the Nonprofit Boardroom.pdf
Artificial Intelligence in the Nonprofit Boardroom.pdf
OnBoard
 
Mastering AI Workflows with FME - Peak of Data & AI 2025
Mastering AI Workflows with FME - Peak of Data & AI 2025
Safe Software
 
Bridging the divide: A conversation on tariffs today in the book industry - T...
Bridging the divide: A conversation on tariffs today in the book industry - T...
BookNet Canada
 
Oracle Cloud Infrastructure AI Foundations
Oracle Cloud Infrastructure AI Foundations
VICTOR MAESTRE RAMIREZ
 
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Alliance
 
Providing an OGC API Processes REST Interface for FME Flow
Providing an OGC API Processes REST Interface for FME Flow
Safe Software
 
PyData - Graph Theory for Multi-Agent Integration
PyData - Graph Theory for Multi-Agent Integration
barqawicloud
 
The State of Web3 Industry- Industry Report
The State of Web3 Industry- Industry Report
Liveplex
 
Kubernetes Security Act Now Before It’s Too Late
Kubernetes Security Act Now Before It’s Too Late
Michael Furman
 
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Safe Software
 
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Safe Software
 
Ad

JavaScript for ABAP Programmers - 1/7 Introduction

  • 1. JavaScript for ABAP Programmers Introduction Chris Whealy / The RIG
  • 2. JavaScript’s Name – And the Resulting Confusion… JavaScript was first developed by Brendan Eich at Netscape in 1995 (in 10 days). Originally this new scripting language was called “Mocha”. When Netscape Navigator 2.0 was shipped in September 1995, the language was renamed to “LiveScript”. However, when Netscape Navigator 2.0B3 was released on December 4th, 1995, Netscape made a joint announcement with Sun Microsystems to the effect that Netscape’s new scripting language would complement Sun Microsystem’s new Web application language Java; therefore, the new scripting language would be called “JavaScript” – and this has caused no end of confusion ever since… The bottom line is simply this… JavaScript is NOT Java! © 2013 SAP AG. All rights reserved. 2
  • 3. JavaScript’s Linguistic Heritage Over the course of the language’s development, various conceptual elements have been borrowed from other languages to form what is now called JavaScript. JavaScript © 2013 SAP AG. All rights reserved. 3
  • 4. JavaScript’s Linguistic Heritage Over the course of the language’s development, various conceptual elements have been borrowed from other languages to form what is now called JavaScript. JavaScript © 2013 SAP AG. All rights reserved. 4
  • 5. JavaScript’s Linguistic Heritage Over the course of the language’s development, various conceptual elements have been borrowed from other languages to form what is now called JavaScript. Scheme JavaScript © 2013 SAP AG. All rights reserved. 5
  • 6. JavaScript’s Linguistic Heritage Over the course of the language’s development, various conceptual elements have been borrowed from other languages to form what is now called JavaScript. Scheme JavaScript Perl © 2013 SAP AG. All rights reserved. 6
  • 7. JavaScript Standards JavaScript was standardised by the European Computer Manufacturer’s Association (ECMA) in 1997. JavaScript used in browsers is now considered to be only one implementation of the ECMA-262 specification. Edition Date 1 June 1997 2 June 1998 3 December 1999 4 Abandoned 5 December 2009 5.1 June 2011 6 (Harmony) Work in progress 7 Work in progress © 2013 SAP AG. All rights reserved. 7
  • 8. JavaScript Runtime Engines In order to execute a JavaScript program, a JavaScript Engine is needed. Multiple implementations of JavaScript engines are available, with the most widely used being: JavaScript Engine Rhino (Mozilla) SpiderMonkey (Mozilla) Chakra (Microsoft) V8 (Google) Nitro (Apple) © 2013 SAP AG. All rights reserved. 8
  • 9. JavaScript Runtime: Client Side Implementations Modern JavaScript engines have been designed to run either from within a web browser or as stand alone, server-side execution engines. Browser JavaScript Engine Mozilla Firefox SpiderMonkey (Mozilla) Microsoft Internet Explorer Chakra (Microsoft) Google Chrome V8 (Google) Apple Safari Nitro (Apple) © 2013 SAP AG. All rights reserved. 9
  • 10. JavaScript Runtime: Server Side Implementations There are multiple server-side implementations of JavaScript, many of which are based on Mozilla Rhino (Java based). When speed is required however, Mozilla SpiderMonkey or the Google V8 engine are used instead. Server Side Implementation JavaScript Engine SpiderMonkey (Mozilla) HANA XSJS Accessible via Chakra (Microsoft) V8 (Google) Nitro (Apple) © 2013 SAP AG. All rights reserved. 10
  • 11. In A Nutshell – The Main Differences Between ABAP & JavaScript Understanding the differences between ABAP and JavaScript is fundamental to transferring your existing programming skills into JavaScript. Some of the main differences are as follows: ABAP JavaScript Strongly typed Weakly typed Syntax similar to COBOL Syntax derived from Java (and C) Block scope Lexical scope No equivalent concept Functions are 1st class citizens OO using class based inheritance OO using referential inheritance Imperative programming Imperative or Functional programming © 2013 SAP AG. All rights reserved. 11