opalang - Rapid & Secure Web Development



Similar documents
Modern Web Development From Angle Brackets to Web Sockets

4 Understanding. Web Applications IN THIS CHAPTER. 4.1 Understand Web page development. 4.2 Understand Microsoft ASP.NET Web application development

Internet Technologies_1. Doc. Ing. František Huňka, CSc.

Web Cloud Architecture

CSE 203 Web Programming 1. Prepared by: Asst. Prof. Dr. Maryam Eskandari

Web Development. How the Web Works 3/3/2015. Clients / Server

Syllabus INFO-GB Design and Development of Web and Mobile Applications (Especially for Start Ups)

Software development & technologies in Market Research industry

By : Khalid Alfalqi Department of Computer Science, Umm Al-Qura University

Syllabus INFO-UB Design and Development of Web and Mobile Applications (Especially for Start Ups)

Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence

Web Service Testing. SOAP-based Web Services. Software Quality Assurance Telerik Software Academy

4.2 Understand Microsoft ASP.NET Web Application Development

Trollhättan, Sweden

Avaya Inventory Management System

What is a stack? Do I need to know?

IT3504: Web Development Techniques (Optional)

Whitepapers at Amikelive.com

Class and Office Hours. Course Requirements. Concepts to Learn. CMPUT 499: Introduction

Lesson Overview. Getting Started. The Internet WWW

COURSE SYLLABUS EDG 6931: Designing Integrated Media Environments 2 Educational Technology Program University of Florida

Tech Radar - May 2015

THE ROAD TO CODE. ANDROID DEVELOPMENT IMMERSIVE May 31. WEB DEVELOPMENT IMMERSIVE May 31 GENERAL ASSEMBLY

What s really under the hood? How I learned to stop worrying and love Magento

INTERNET PROGRAMMING AND DEVELOPMENT AEC LEA.BN Course Descriptions & Outcome Competency

Link Analysis Tool Design Description Final Version

Business & Computing Examinations (BCE) LONDON (UK)

Release 1. ICAPRG604A Create cloud computing services

Title: Front-end Web Design, Back-end Development, & Graphic Design Levi Gable Web Design Seattle WA

Using Ruby on Rails for Web Development. Introduction Guide to Ruby on Rails: An extensive roundup of 100 Ultimate Resources

Offerte del 13 giugno 2014

Java Application Developer Certificate Program Competencies

Attacking MongoDB. Firstov Mihail

GUI and Web Programming

IT3503 Web Development Techniques (Optional)

Web Design Specialist

Web 2.0 Technology Overview. Lecture 8 GSL Peru 2014

Google Web Toolkit (GWT) Architectural Impact on Enterprise Web Application

Extending Tizen Native Framework with Node.js

AJAX The Future of Web Development?

Oct 15, Internet : the vast collection of interconnected networks that all use the TCP/IP protocols

MEAN/Full Stack Web Development - Training Course Package

Integration the Web 2.0 way. Florian Daniel April 28, 2009

HYBRID. Course Packet

10CS73:Web Programming

Interested in Expanding your Technical Skills?

After completing SI- 539, students will have a working personal portfolio website in production.

Layers of Caching: Key to scaling your website. Lance Albertson -- Narayan Newton

Web Development Frameworks


Open Source Content Management System for content development: a comparative study

An Oracle White Paper May Oracle Tuxedo: An Enterprise Platform for Dynamic Languages

What about MongoDB? can req.body.input 0; var date = new Date(); do {curdate = new Date();} while(curdate-date<10000)

From Desktop to Browser Platform: Office Application Suite with Ajax

Web Programming Languages Overview

Short notes on webpage programming languages

You ll need to have: It d be great if you have:

Enable Your Automated Web App Testing by WebDriver. Yugang Fan Intel

Web. Programming. Hans- Pe0er Halvorsen, M.Sc. h0p://home.hit.no/~hansha/?page=sojware_development

CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages. Nicki Dell Spring 2014

Architecture Workshop

Interactive Data Visualization for the Web Scott Murray

End User Guide The guide for /ftp account owner

Drupal CMS for marketing sites

Scalable and Efficient Web Application Architectures. Thin-clients and SQL vs. Thick-clients and NoSQL

Web Applications: Overview and Architecture

Brief Description of project: This project will be an interactive Javascript. 1. What do you want to accomplish by doing this project?

Introduction to web development

Information Technology Career Cluster Web Development Course Number: Course Standard 1

Outline. CIW Web Design Specialist. Course Content

Next Generation Lab. A solution for remote characterization of analog integrated circuits

IBM Digital Experience. Using Modern Web Development Tools and Technology with IBM Digital Experience

Release: 1. ICAWEB414A Design simple web page layouts

Technology and Online Computer Access Requirements: Lake-Sumter State College Course Syllabus

How To Write A Web Server In Javascript

Web Pages. Static Web Pages SHTML

Introduction to Cloud Computing. Lecture 02 History of Enterprise Computing Kaya Oğuz

OpenShift on you own cloud. Troy Dawson OpenShift Engineer, Red Hat November 1, 2013

Large-Scale Web Applications

A REST API for Arduino & the CC3000 WiFi Chip

Chapter 13 Computer Programs and Programming Languages. Discovering Computers Your Interactive Guide to the Digital World

Web Designing with UI Designing

RIA Technologies Comparison

WEB& WEBSITE DESIGN TRAINING

Web Development I & II*

MarkLogic Server. Reference Application Architecture Guide. MarkLogic 8 February, Copyright 2015 MarkLogic Corporation. All rights reserved.

Understanding Evolution's Architecture A Technical Overview

Intro to Web Programming. using PHP, HTTP, CSS, and Javascript Layton Smith CSE 4000

Transcription:

opalang - Rapid & Secure Web Development

Syllabus Brief History of Web Development Ideas and Goals The Language itself Community Reason for Development Services and Apps written in OPA Future of OPA OPA vs (OCaml vs. Ruby) Roundup and Conclusion

History of Web Development 1989 HTTP by Roy Fielding and Tim Berners-Lee 1992 the HyperText Markup Language was developed by the World Wide Web-consortium 1993 the Cascading Style Sheet (CSS) was defined for styling and for separating design and content 1995 Brendan Eich released the first Version of Javascript, the first client side scripting language for the Netscape Browser 1998 XML-RPC which progression led to SOAP Between 2000 and 2015 the so called browser-wars took place. new Versions CSS/HTML and Javascript many other improvements and protocols added to browsers

Idea and Goals

solve various problems in web development What do we want? security scalability flexibility

If I were to say what is the biggest problem of the web development today, I would answer without much thinking: a bunch of technologies piled on top of one another ( ), that you need to harness to work together (sometimes against their will).. - Adam Koprowski a core Developer opalang

The Idea choose technologies which work together use only technologies with the same attributes one language for everything (for the developer) flexibility, scalability and safety as main goal

Components of an OPA Application OPA is a full-stack application: server (backend) programming (NodeJS) client (frontend) programming (JavaScript) database programming (MongoDB)

The Language Itself functional static type system type inference pattern matching message passing

Lexical Conventions C/C++/Java/JavaScript-style

Simple Datatypes

Defining Functions

Partial applications Modules

Typing OPA is a statically and strong typed checked language. Expression has one unique type Can only be used as this Return values can be a result or also data-types.

Type Inference solution has the type of [int] because 42 is an Integer (bool, int, int) -> int

Polymorphism well known in functional programming languages Key feature OCaml, Haskell, R even in Ruby 2 Types of Polymorphism in OPA Ad-hoc Polymorphism Parametric polymorphism

Example Polymorphism ( a -> a) a is an type variable if x would be a boolean the a will be instantiate with bool

Pattern & Patternmatching The expression expr is matched against each pattern in sequence

How does it work? Calm down: IT s Demo Time

Community and Surrounding

3 main communities in web development PHP Ruby on Rails Django Server and Client - Javascript (slow?) Hard to Switch old communities - old behaviours

License Problem main criticism was not technology but licensing OPA was released under the Affero GPL (AGPL) license ensures that improvements are also for community every program written in OPA, that links to the runtime, enforces developers to release the source code.

The Solution GPL license with the so-called ClassPath exception, like Java you can link GLP code with any code opening the door to license your application under any license

Alternatives

Reasons for Development web development was not really fun most tutorials and examples are in PHP PHP has an very sluggish development PHP doesn t have the best security history new programming paradigm added (too) late

Reasons for Development Ruby on Rails and Django: good for rapid and agile web development two or more languages to handle (JS, Ruby, Python, CSS, HTML) hard to setup the full-stack (database, application) have to know about MongoDB/ngnix/Apache/Unicorn secure the communication between each layer

after much time and outbursts of anger: Is it flexible? Does it scale? Is it secure? Have we tested it? (no)

Services Written in OPA Hard to detect, end product is Node.js and JavaScript A good way to find projects is Github One example: RiskyBird Online RegEx Editor

OPA vs. OCaml OPA OCAML FUNCTIONAL PATTERN MATCHING TYPER INFERCE POLYMORPH -ISM MODULES TAIL RECURSION AUTO GARBAGE COLLECTION

OPA vs. Ruby OPA RUBY FUNCTIONAL (can be used) PATTERN MATCHING TYPER INFERCE (other Typing System) POLYMORPH -ISM MODULES TAIL RECURSION (but you can do it) AUTO GARBAGE COLLECTION (coming in 2.1)

Future of OPA No informations are given on the web Developer did not answer my e-mail :( we can only guess - hopefully it will be developed further

Roundup OPA - functional language, developed to make web development easy and (more) secure. Single language compiles code to NodeJS, MongoDB and JavaScript Result is a full-stack web application flexible, scalable and secure not community friendly, but functional

Conclusion a new and developer friendly way for web developing robust runtime and perfect cooperation between all layers powerful language (keyword: tail recursion) Focus on your application not the technology