Guide to Static Functions for Apache Spark V3.0.0 Preview Jean-Georges Perrin

Total Page:16

File Type:pdf, Size:1020Kb

Guide to Static Functions for Apache Spark V3.0.0 Preview Jean-Georges Perrin Jean-Georges Perrin MANNING Save 50% on this book – eBook, pBook, and MEAP. Enter mesias50 in the Promotional Code box when you checkout. Only at manning.com. Spark in Action, Second Edition by Jean-Georges Perrin ISBN 9781617295522 565 pages $47.99 Guide to static functions for Apache Spark v3.0.0 Preview Jean-Georges Perrin Copyright 2019 Manning Publications To pre-order or learn more about these books go to www.manning.com For online information and ordering of these and other Manning books, please visit www.manning.com. The publisher offers discounts on these books when ordered in quantity. For more information, please contact Special Sales Department Manning Publications Co. 20 Baldwin Road PO Box 761 Shelter Island, NY 11964 Email: Erin Twohey, [email protected] ©2019 by Manning Publications Co. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by means electronic, mechanical, photocopying, or otherwise, without prior written permission of the publisher. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in the book, and Manning Publications was aware of a trademark claim, the designations have been printed in initial caps or all caps. Recognizing the importance of preserving what has been written, it is Manning’s policy to have the books we publish printed on acid-free paper, and we exert our best efforts to that end. Recognizing also our responsibility to conserve the resources of our planet, Manning books are printed on paper that is at least 15 percent recycled and processed without the use of elemental chlorine. Manning Publications Co. 20 Baldwin Road Technical PO Box 761 Shelter Island, NY 11964 Cover designer: Leslie Haimes ISBN: 9781617297953 Printed in the United States of America 1 2 3 4 5 6 7 8 9 10 - EBM - 24 23 22 21 20 19 contents Static functions ease your transformations 1 1.1 Functions per category 2 Popular functions 2 Aggregate functions 2 Arithmetical functions 2 Array manipulation functions 3 Binary operations 3 Comparison functions 3 Compute function 3 Conditional operations 3 Conversion functions 3 Data shape functions 3 Date and time functions 4 Digest functions 4 Encoding functions 4 Formatting functions 4 JSON (JavaScript object notation) functions 4 List functions 4 Mathematical functions 4 Navigation functions 5 Rounding functions 5 Sorting functions 5 Statistical functions 5 iii iv CONTENTS Streaming functions 5 String functions 5 Technical functions 5 Trigonometry functions 6 UDFs (user-defined functions) helpers 6 Validation functions 6 Deprecated functions 6 1.2 Functions appearance per version of Spark 6 Functions appeared in Spark v3.0.0 6 Functions appeared in Spark v2.4.0 6 Functions appeared in Spark v2.3.0 7 Functions appeared in Spark v2.2.0 7 Functions appeared in Spark v2.1.0 7 Functions appeared in Spark v2.0.0 7 Functions appeared in Spark v1.6.0 7 Functions appeared in Spark v1.5.0 7 Functions appeared in Spark v1.4.0 8 Functions appeared in Spark v1.3.0 8 1.3 Reference for functions 8 abs(Column e) 8 acos(Column e) 8 acos(String columnName) 8 add_months(Column startDate, Column numMonths) 9 add_months(Column startDate, int numMonths) 9 aggregate(Column expr, Column zero, scala.Function2<Column,Column,Column> merge) 9 aggregate(Column expr, Column zero, scala.Function2<Column,Column,Column> merge, scala.Function1<Column,Column> finish) 10 approx_count_distinct(Column e) 10 approx_count_distinct(Column e, double rsd) 10 approx_count_distinct(String columnName) 10 approx_count_distinct(String columnName, double rsd) 11 array(Column... cols) 11 array(String colName, String... colNames) 11 CONTENTS v array(String colName, scala.collection.Seq<String> colNames) 11 array(scala.collection.Seq<Column> cols) 12 array_contains(Column column, Object value) 12 array_distinct(Column e) 12 array_except(Column col1, Column col2) 12 array_intersect(Column col1, Column col2) 12 array_join(Column column, String delimiter) 13 array_join(Column column, String delimiter, String nullReplacement) 13 array_max(Column e) 13 array_min(Column e) 14 array_position(Column column, Object value) 14 array_remove(Column column, Object element) 14 array_repeat(Column e, int count) 14 array_repeat(Column left, Column right) 15 array_sort(Column e) 15 array_union(Column col1, Column col2) 15 arrays_overlap(Column a1, Column a2) 15 arrays_zip(Column... e) 16 arrays_zip(scala.collection.Seq<Column> e) 16 asc(String columnName) 16 asc_nulls_first(String columnName) 16 asc_nulls_last(String columnName) 17 ascii(Column e) 17 asin(Column e) 17 asin(String columnName) 17 atan(Column e) 17 atan(String columnName) 18 atan2(Column y, Column x) 18 atan2(Column y, String xName) 18 atan2(Column y, double xValue) 19 atan2(String yName, Column x) 19 atan2(String yName, String xName) 19 atan2(String yName, double xValue) 20 vi CONTENTS atan2(double yValue, Column x) 20 atan2(double yValue, String xName) 20 avg(Column e) 21 avg(String columnName) 21 base64(Column e) 21 bin(Column e) 21 bin(String columnName) 21 bitwiseNOT(Column e) 22 broadcast(Dataset<T> df) 22 bround(Column e) 22 bround(Column e, int scale) 22 bucket(Column numBuckets, Column e) 23 bucket(int numBuckets, Column e) 23 callUDF(String udfName, Column... cols) 23 callUDF(String udfName, scala.collection.Seq<Column> cols) 24 cbrt(Column e) 24 cbrt(String columnName) 24 ceil(Column e) 24 ceil(String columnName) 25 coalesce(Column... e) 25 coalesce(scala.collection.Seq<Column> e) 25 col(String colName) 25 collect_list(Column e) 25 collect_list(String columnName) 26 collect_set(Column e) 26 collect_set(String columnName) 26 column(String colName) 26 concat(Column... exprs) 27 concat(scala.collection.Seq<Column> exprs) 27 concat_ws(String sep, Column... exprs) 27 concat_ws(String sep, scala.collection.Seq<Column> exprs) 27 conv(Column num, int fromBase, int toBase) 28 corr(Column column1, Column column2) 28 CONTENTS vii corr(String columnName1, String columnName2) 28 cos(Column e) 28 cos(String columnName) 29 cosh(Column e) 29 cosh(String columnName) 29 count(Column e) 29 count(String columnName) 29 countDistinct(Column expr, Column... exprs) 30 countDistinct(Column expr, scala.collection.Seq<Column> exprs) 30 countDistinct(String columnName, String... columnNames) 30 countDistinct(String columnName, scala.collection.Seq<String> columnNames) 30 covar_pop(Column column1, Column column2) 31 covar_pop(String columnName1, String columnName2) 31 covar_samp(Column column1, Column column2) 31 covar_samp(String columnName1, String columnName2) 31 crc32(Column e) 32 cume_dist() 32 current_date() 32 current_timestamp() 32 date_add(Column start, Column days) 32 date_add(Column start, int days) 33 date_format(Column dateExpr, String format) 33 date_sub(Column start, Column days) 34 date_sub(Column start, int days) 34 date_trunc(String format, Column timestamp, format:) 34 datediff(Column end, Column start) 35 dayofmonth(Column e) 35 dayofweek(Column e) 35 dayofyear(Column e) 36 days(Column e) 36 decode(Column value, String charset) 36 degrees(Column e) 36 viii CONTENTS degrees(String columnName) 36 dense_rank() 37 desc(String columnName) 37 desc_nulls_first(String columnName) 37 desc_nulls_last(String columnName) 38 element_at(Column column, Object value) 38 encode(Column value, String charset) 38 exists(Column column, scala.Function1<Column,Column> f) 38 exp(Column e) 39 exp(String columnName) 39 explode(Column e) 39 explode_outer(Column e) 39 expm1(Column e) 40 expm1(String columnName) 40 expr(String expr) 40 factorial(Column e) 40 filter(Column column, scala.Function1<Column,Column> f) 40 filter(Column column, scala.Function2<Column,Column,Column> f) 41 first(Column e) 41 first(Column e, boolean ignoreNulls) 41 first(String columnName) 42 first(String columnName, boolean ignoreNulls) 42 flatten(Column e) 42 floor(Column e) 42 floor(String columnName) 43 forall(Column column, scala.Function1<Column,Column> f) 43 format_number(Column x, int d) 43 format_string(String format, Column... arguments) 43 format_string(String format, scala.collection.Seq<Column> arguments) 44 from_csv(Column e, Column schema, java.util.Map<String,String> options) 44 CONTENTS ix from_csv(Column e, StructType schema, scala.collection.immutable.Map<String,String> options) 44 from_json(Column e, Column schema) 45 from_json(Column e, Column schema, java.util.Map<String,String> options) 45 from_json(Column e, DataType schema) 45 from_json(Column e, DataType schema, java.util.Map<String,String> options) 46 from_json(Column e, DataType schema, scala.collection.immutable.Map<String,String> options) 46 from_json(Column e, String schema, java.util.Map<String,String> options) 46 from_json(Column e, String schema, scala.collection.immutable.Map<String,String> options) 47 from_json(Column e, StructType schema) 47 from_json(Column e, StructType schema, java.util.Map<String,String> options) 48 from_json(Column e, StructType schema, scala.collection.immutable.Map<String,String> options) 48 from_unixtime(Column ut) 48 from_unixtime(Column ut, String f) 49 from_utc_timestamp(Column ts, Column tz) 49 from_utc_timestamp(Column ts, String tz) 49 get_json_object(Column e, String path) 50 greatest(Column... exprs) 50 greatest(String columnName, String... columnNames) 50 greatest(String columnName, scala.collection.Seq<String> columnNames) 51 greatest(scala.collection.Seq<Column> exprs) 51 grouping(Column e) 51 grouping(String columnName)
Recommended publications
  • IEEE Standard 754 for Binary Floating-Point Arithmetic
    Work in Progress: Lecture Notes on the Status of IEEE 754 October 1, 1997 3:36 am Lecture Notes on the Status of IEEE Standard 754 for Binary Floating-Point Arithmetic Prof. W. Kahan Elect. Eng. & Computer Science University of California Berkeley CA 94720-1776 Introduction: Twenty years ago anarchy threatened floating-point arithmetic. Over a dozen commercially significant arithmetics boasted diverse wordsizes, precisions, rounding procedures and over/underflow behaviors, and more were in the works. “Portable” software intended to reconcile that numerical diversity had become unbearably costly to develop. Thirteen years ago, when IEEE 754 became official, major microprocessor manufacturers had already adopted it despite the challenge it posed to implementors. With unprecedented altruism, hardware designers had risen to its challenge in the belief that they would ease and encourage a vast burgeoning of numerical software. They did succeed to a considerable extent. Anyway, rounding anomalies that preoccupied all of us in the 1970s afflict only CRAY X-MPs — J90s now. Now atrophy threatens features of IEEE 754 caught in a vicious circle: Those features lack support in programming languages and compilers, so those features are mishandled and/or practically unusable, so those features are little known and less in demand, and so those features lack support in programming languages and compilers. To help break that circle, those features are discussed in these notes under the following headings: Representable Numbers, Normal and Subnormal, Infinite
    [Show full text]
  • Introduction to Python
    Introduction to Python Wei Feinstein HPC User Services LSU HPC & LONI [email protected] Louisiana State University March, 2017 Introduction to Python Overview • What is Python • Python programming basics • Control structures, functions • Python modules, classes • Plotting with Python Introduction to Python What is Python? • A general-purpose programming language (1980) by Guido van Rossum • Intuitive and minimalistic coding • Dynamically typed • Automatic memory management • Interpreted not compiled Introduction to Python 3 Why Python? Advantages • Ease of programming • Minimizes the time to develop and maintain code • Modular and object-oriented • Large standard and user-contributed libraries • Large community of users Disadvantages • Interpreted and therefore slower than compiled languages • Not great for 3D graphic applications requiring intensive compuations Introduction to Python 4 Code Performance vs. Development Time Python C/C++ Assembly Introduction to Python 5 Python 2.x vs 3.x • Final Python 2.x is 2.7 (2010) • First Python 3.x is 3.0 (2008) • Major cleanup to better support Unicode data formats in Python 3.x • Python 3 not backward-compatible with Python 2 • Rich packages available for Python 2z $ python -- version Introduction to Python 6 IPython • Python: a general-purpose programming language (1980) • IPython: an interactive command shell for Python (2001) by Fernando Perez • Enhanced Read-Eval-Print Loop (REPL) environment • Command tab-completion, color-highlighted error messages.. • Basic Linux shell integration (cp, ls, rm…) • Great for plotting! http://ipython.org Introduction to Python 7 Jupyter Notebook IPython introduced a new tool Notebook (2011) • Bring modern and powerful web interface to Python • Rich text, improved graphical capabilities • Integrate many existing web libraries for data visualization • Allow to create and share documents that contain live code, equations, visualizations and explanatory text.
    [Show full text]
  • Numerical Computation Guide
    Numerical Computation Guide Sun™ Studio 9 Sun Microsystems, Inc. www.sun.com Part No. 817-6702-10 July 2004, Revision A Submit comments about this document at: http://www.sun.com/hwdocs/feedback Copyright © 2004 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, California 95054, U.S.A. All rights reserved. U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its supplements. Use is subject to license terms. This distribution may include materials developed by third parties. Parts of the product may be derived from Berkeley BSD systems, licensed from the University of California. UNIX is a registered trademark in the U.S. and in other countries, exclusively licensed through X/Open Company, Ltd. Sun, Sun Microsystems, the Sun logo, Java, and JavaHelp are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries.All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. Products bearing SPARC trademarks are based upon architecture developed by Sun Microsystems, Inc. This product is covered and controlled by U.S. Export Control laws and may be subject to the export or import laws in other countries. Nuclear, missile, chemical biological weapons or nuclear maritime end uses or end users, whether direct or indirect, are strictly prohibited. Export or reexport to countries subject to U.S. embargo or to entities identified on U.S. export exclusion lists, including, but not limited to, the denied persons and specially designated nationals lists is strictly prohibited.
    [Show full text]
  • Supplementary Materials
    Contents 2 Programming Language Syntax C 1 2.3.5 Syntax Errors C 1 2.4 Theoretical Foundations C 13 2.4.1 Finite Automata C 13 2.4.2 Push-Down Automata C 18 2.4.3 Grammar and Language Classes C 19 2.6 Exercises C 24 2.7 Explorations C 25 3 Names, Scopes, and Bindings C 26 3.4 Implementing Scope C 26 3.4.1 Symbol Tables C 26 3.4.2 Association Lists and Central Reference Tables C 31 3.8 Separate Compilation C 36 3.8.1 Separate Compilation in C C 37 3.8.2 Packages and Automatic Header Inference C 40 3.8.3 Module Hierarchies C 41 3.10 Exercises C 42 3.11 Explorations C 44 4SemanticAnalysis C 45 4.5 Space Management for Attributes C 45 4.5.1 Bottom-Up Evaluation C 45 4.5.2 Top-Down Evaluation C 50 C ii Contents 4.8 Exercises C 57 4.9 Explorations C 59 5 Target Machine Architecture C 60 5.1 The Memory Hierarchy C 61 5.2 Data Representation C 63 5.2.1 Integer Arithmetic C 65 5.2.2 Floating-Point Arithmetic C 67 5.3 Instruction Set Architecture (ISA) C 70 5.3.1 Addressing Modes C 71 5.3.2 Conditions and Branches C 72 5.4 Architecture and Implementation C 75 5.4.1 Microprogramming C 76 5.4.2 Microprocessors C 77 5.4.3 RISC C 77 5.4.4 Multithreading and Multicore C 78 5.4.5 Two Example Architectures: The x86 and ARM C 80 5.5 Compiling for Modern Processors C 88 5.5.1 Keeping the Pipeline Full C 89 5.5.2 Register Allocation C 93 5.6 Summary and Concluding Remarks C 98 5.7 Exercises C 100 5.8 Explorations C 104 5.9 Bibliographic Notes C 105 6 Control Flow C 107 6.5.4 Generators in Icon C 107 6.7 Nondeterminacy C 110 6.9 Exercises C 116 6.10 Explorations
    [Show full text]
  • Introduction to Programming CSC 103
    COURSE MANUAL Introduction to Programming CSC 103 University of Ibadan Distance Learning Centre Open and Distance Learning Course Series Development Copyright © 2016 by Distance Learning Centre, University of Ibadan, Ibadan. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, photocopying, recording or otherwise, without the prior permission of the copyright owner. ISBN: 978-021-592-1 General Editor: Prof. Bayo Okunade University of Ibadan Distance Learning Centre University of Ibadan, Nigeria Telex: 31128NG Tel: +234 (80775935727) E-mail: [email protected] Website: www.dlc.ui.edu.ng Vice-Chancellor’s Message The Distance Learning Centre is building on a solid tradition of over two decades of service in the provision of External Studies Programme and now Distance Learning Education in Nigeria and beyond. The Distance Learning mode to which we are committed is providing access to many deserving Nigerians in having access to higher education especially those who by the nature of their engagement do not have the luxury of full time education. Recently, it is contributing in no small measure to providing places for teeming Nigerian youths who for one reason or the other could not get admission into the conventional universities. These course materials have been written by writers specially trained in ODL course delivery. The writers have made great efforts to provide up to date information, knowledge and skills in the different disciplines and ensure that the materials are user-friendly. In addition to provision of course materials in print and e-format, a lot of Information Technology input has also gone into the deployment of course materials.
    [Show full text]
  • Floating Point Exception Tracking and NAN Propagation
    Floating point exception tracking and NAN propagation By Agner Fog. Technical University of Denmark. © 2018-2020 CC-BY. Last updated 2020-04-27. Abstract The most common methods for detecting floating point errors are based on exception trapping or a global status register. These methods are inefficient in modern systems that use out-of-order parallelism and single-instruction-multiple-data (SIMD) parallelism for improving performance. It is argued that a method based on NAN propagation is more efficient and deterministic. Problems with NAN propagation in current systems are discussed. Examples of implementation in the C++ vector class library and in an experimental instruction set named ForwardCom are presented. The IEEE-754 standard for floating point arithmetic may need adjustment to accommodate the needs of modern forms of parallelism. Contents 1 Introduction ....................................................................................................................... 1 2 Exception trapping ............................................................................................................. 2 3 Using a status register ....................................................................................................... 3 4 Using errno ........................................................................................................................ 3 5 Parallel error detection ...................................................................................................... 3 6 Propagation of INF and NAN
    [Show full text]
  • The Multiple Precision Integers and Rationals Library Edition 1.0
    MPIR The Multiple Precision Integers and Rationals Library Edition 1.0 8 April 2009 This manual describes how to install and use MPIR, the Multiple Precision Integers and Ratio- nals library, version 1.0. Copyright 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. Copyright 2008 William Hart Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with the Front-Cover Texts being \A GNU Manual", and with the Back-Cover Texts being \You have freedom to copy and modify this GNU Manual, like GNU software". A copy of the license is included in Appendix C [GNU Free Documentation License], page 121. i Table of Contents MPIR Copying Conditions ................................. 1 1 Introduction to MPIR .................................. 2 1.1 How to use this Manual ........................................................ 2 2 Installing MPIR........................................ 3 2.1 Build Options ................................................................. 3 2.2 ABI and ISA.................................................................. 8 2.3 Notes for Package Builds ...................................................... 11 2.4 Notes for Particular Systems .................................................. 12 2.5 Known Build Problems ....................................................... 14 2.6
    [Show full text]
  • Julia Language Documentation Release Development
    Julia Language Documentation Release development Jeff Bezanson, Stefan Karpinski, Viral Shah, Alan Edelman, et al. February 02, 2013 CONTENTS 1 The Julia Manual 1 1.1 Introduction...............................................1 1.2 Getting Started..............................................2 1.3 Integers and Floating-Point Numbers..................................4 1.4 Mathematical Operations......................................... 11 1.5 Complex and Rational Numbers..................................... 16 1.6 Strings.................................................. 20 1.7 Functions................................................. 31 1.8 Control Flow............................................... 37 1.9 Variables and Scoping.......................................... 47 1.10 Types................................................... 51 1.11 Methods................................................. 65 1.12 Constructors............................................... 71 1.13 Conversion and Promotion........................................ 78 1.14 Arrays.................................................. 83 1.15 Sparse Matrices............................................. 88 1.16 Modules................................................. 90 1.17 Running External Programs....................................... 92 1.18 Metaprogramming............................................ 97 1.19 Parallel Computing............................................ 104 1.20 Calling C and Fortran Code....................................... 109 1.21 Performance Tips............................................
    [Show full text]
  • Beej's Guide to C Programming
    Beej’s Guide to C Programming Brian “Beej Jorgensen” Hall v0.6.30, Copyright © September 27, 2021 Contents 1 Foreword 1 1.1 Audience ........................................ 1 1.2 Platform and Compiler ................................. 1 1.3 Official Homepage ................................... 2 1.4 Email Policy ...................................... 2 1.5 Mirroring ........................................ 2 1.6 Note for Translators .................................. 2 1.7 Copyright and Distribution ............................... 2 2 Hello, World! 5 2.1 What to Expect from C ................................. 5 2.2 Hello, World! ...................................... 6 2.3 Compilation Details .................................. 7 2.4 Building with gcc ................................... 8 2.5 Building with clang .................................. 8 2.6 Building from IDEs ................................... 8 2.7 C Versions ....................................... 9 3 Variables and Statements 11 3.1 Variables ........................................ 11 3.1.1 Variable Names ................................. 11 3.1.2 Variable Types .................................. 12 3.1.3 Boolean Types .................................. 13 3.2 Operators and Expressions ............................... 14 3.2.1 Arithmetic .................................... 14 3.2.2 Ternary Operator ................................. 14 3.2.3 Pre-and-Post Increment-and-Decrement ..................... 15 3.2.4 The Comma Operator .............................. 15 3.2.5 Conditional
    [Show full text]
  • Python Tutorial by Bernd Klein
    Python Tutorial by Bernd Klein bodenseo © 2021 Bernd Klein All rights reserved. No portion of this book may be reproduced or used in any manner without written permission from the copyright owner. For more information, contact address: [email protected] www.python-course.eu Python Course Python Tutorial by Bernd Klein Strings.......................................................................................................................................10 Execute a Python script ............................................................................................................11 Start a Python program.............................................................................................................12 Loops ......................................................................................................................................136 Iterators and Iterables .............................................................................................................150 Coffee, Dictionary and a Loop ...............................................................................................171 Parameters and Arguments.....................................................................................................226 Global, Local and nonlocal Variables.....................................................................................237 Regular Expressions ...............................................................................................................305 Lambda, filter, reduce
    [Show full text]
  • Introduction to Javascript
    JavaScript (Part 1) “The” language of the Web Enrico Masala Fulvio Corno Applicazioni Web I - Web Applications I - 2019/2020 https://www.codemio.com/2016/09/html5-css3-javascript-cheat-sheets.html 2 Applicazioni Web I - Web Applications I - 2019/2020 Goal • Learn JavaScript as a language • Understand the specific semantics and programming patterns – We assume a programming knowledge in other languages • Updated to ES6 (2015) language features • Supported by server-side (Node.js) and client-side (browsers) run-time environments 3 Applicazioni Web I - Web Applications I - 2019/2020 Outline • What is JavaScript? • History and versions • Language structure • Types, variables • Expressions • Control structures • Arrays • Strings 4 Applicazioni Web I - Web Applications I - 2019/2020 JavaScript – The language of the Web WHAT IS JAVASCRIPT? 5 Applicazioni Web I - Web Applications I - 2019/2020 source: https://octoverse.github.com/#top-languages 6 Applicazioni Web I - Web Applications I - 2019/2020 JavaScript • JavaScript (JS) is a programming language • It is currently the only programming language that a browser can execute natively… • … and it also run on a computer, like other programming languages (thanks to Node.js) • It has nothing to do with Java – named that way for marketing reasons, only • The first version was written in 10 days (!) – several fundamental language decisions were made because of company politics and not technical reasons! 7 Applicazioni Web I - Web Applications I - 2019/2020 JavaScript – The language of the Web HISTORY AND VERSIONS 8 Applicazioni Web I - Web Applications I - 2019/2020 https://www.ecma-international.org/ecma-262/ Brendan Eich 10 yrs Main Also: ES2015 target Also: ES2016 ES9, Also: ES2017 ES10, … 9 Applicazioni Web I - Web Applications I - 2019/2020 https://www.slideshare.net/RafaelCasusoRomate/javascript-editions-es7-es8-and-es9-vs-v8 JavaScript versions • ECMAScript (also called ES) is the official name of JavaScript (JS) standard • ES6, ES2015, ES2016 etc.
    [Show full text]
  • Programming in Python 3
    Programming in Python 3 A Complete Introduction to the Python Language Second Edition Mark Summerfield Upper Saddle River, NJ · Boston · Indianapolis · San Francisco New York · Toronto · Montreal · London · Munich · Paris · Madrid Capetown · Sydney · Tokyo · Singapore · Mexico City Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been printed with initial capital letters or in all capitals. The author and publisher have taken care in the preparation of this book, but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or programs contained herein. The publisher offers excellent discounts on this book when ordered in quantity for bulk purchases or special sales, which may include electronic versions and/or custom covers and content particular to your business, training goals, marketing focus, and branding interests. For more information, please contact: U.S. Corporate and Government Sales (800) 382-3419 [email protected] For sales outside the United States, please contact: International Sales [email protected] Visit us on the Web: informit.com/aw Library of Congress Cataloging-in-Publication Data Summerfield, Mark. Programming in Python 3 : a complete introduction to the Python language / Mark Summerfield.—2nd ed. p. cm. Includes bibliographical references and index. ISBN 978-0-321-68056-3 (pbk. : alk. paper) 1. Python (Computer program language) 2.
    [Show full text]