bazillion new technologies

Download Bazillion New Technologies

If you can't read please download the document

Upload: ayman-mahfouz

Post on 12-Apr-2017

543 views

Category:

Technology


0 download

TRANSCRIPT

Bazillion New Technologies!What Should I Study Next?

Ayman Mahfouz

December 2015

Presenter

Vice President, Engineering at Webalo

Graduate of CS Department 1997

15 years developing enterprise software in the US

PhD in Software Engineering: Requirements-Driven Adaptation of Choreographed Interactions

Why This Topic

Became a manager

Was a developer

Request from students of the department.

Agenda

Programming Languages

Mobile Development

Web Development

Internet of Things

Big Data

Cloud Computing

DevOps

Agenda

Programming Languages

Mobile Development

Web Development

Internet of Things

Big Data

Cloud Computing

DevOps

Languages Multilingual Developers

Source: Developer Insights Report by Application Developers Alliance (research by IDC Research)

Languages Popularity

By activity on GitHub

Languages Popularity

By developer knowledge (IDC survey)

Languages Noteworthy

Go (Google)Efficient compilation, GC, Formal Concurrency

Rust (Mozilla) Safety, Efficient Runtime, No GC, Multi-core

ErlangEvent-driven, real-time

ScalaFunctional, run on the JVM

RStatistical Analysis

Languages JavaScript

Full-stack Client-side

Server-side (Node.js)

Sister LanguagesCoffeScript Cleaner Syntax

TypeScript Superset with types

Dart Compiles to JS

Languages JavaScript Node.js

FeaturesCross-platform runtime

Google v8 JS engine

Event-driven

Non-blocking I/O

Endless packages *.jsPortability: Browserify

Web: Express.js

Build: Gulp & Grunt

Promises and Async: many!

Npm (package manager)

Agenda

Programming Languages

Mobile Development

Web Development

Internet of Things

Big Data

Cloud Computing

DevOps

Mobile Dev Mobile First

Mobile Dev Enterprise Mobility

MDM (Device)Provision, Configure, Track

MAM (App)Control, Config, Monitor

MAS (Security)SSO, VPN, Data Protection

MCM (Collaboration)Sharing, Synchronization

EMM

EM

MAD

Mobile Dev Devices in Enterprise

Mobile Dev Cross Platform

Convert common + write native UIJ2ObjC

PhoneGap / CordovaHTML 5

Plugins for platform services

Ionic for native look

Scripting with native binding (Lua)

VMOracle ADF

Webalo

Separate code for each platform

Mobile Dev Webalo Approach

Shared code yet native look and feel.

Webalo Platform Cross Platform Client Architecture

Agenda

Programming Languages

Mobile Development

Web Development

Internet of Things

Big Data

Cloud Computing

DevOps

Agenda

Programming Languages

Mobile Development

Web Development

Internet of Things

Big Data

Cloud Computing

DevOps

Web Dev Specs

HTML5Video/audio, components, storage, new elements, ...

CSS3Transition, animation, gradients, calc, media queries

ECMA Script 6Classes, types, promises, functional constructs

Web Components Custom elements, shadow DOM, templates, imports

HTTP 2.0 (to replace SPDY)

Web Dev Responsive Design

Handling various screen sizes

Twitter Bootstrap gridsModernizr

Quick Quiz

???

Web Dev Approaches

HistoryRequest-Response (Plain HTTP)

Behavior (JavaScript)

Flash / Applets / SilverLight

Async request-response (AJAX)

DOM manipulation (JQuery)

Templating (Knockout.js, Moustache.js)

WebSockets

Single Page Apps (SPA)

Web Dev Single Page App (SPA)

FeaturesSingle initial load of all resources (No reload or navigation to another page)

Dynamic content fetching (template-based rendering)

Declarative binding

Web Components (custom elements)

Structured (e.g. MVC)

SPA FrameworksAngular.js (All)

Backbone.js

Ember.js (Minimal)

Polymer (Components)

React.js (UI)

Web Dev MEAN Stack

JavaScript on server and client

JSON all the way

Extensive Node.js pluginsSASS for CSS: variables, inheritance, readability

E2E testing (Karma.js, Mocha.js, Jasmine.js)

Need a Break?

Question / Comments

Agenda

Programming Languages

Mobile Development

Web Development

Internet of Things

Big Data

Cloud Computing

DevOps

IoT Overview

BasicsIntegrate physical and digital

Sensors and actuators embedded in physical objects

Network-connected (often via IP)

History1990: Web of information

2000: Web of services

2010: Web of everything

ApplicationsSafety, streamlined commerce, entertainment, education, resource conservation, operational efficiency and personal well-being and many more.

IoT Markets

IoT Applications Consumer

Home automation Nest thermostat

Amazon dash button

Personal health Connected medication bottle

Heart monitor implant

Wearables Wrist bands

Electronic Socks

Mobilitye-Bike

IoT Applications Business

Industrial (Machine KPI)

Healthcare (Patient tracking)

Aviation (Jet engine maintenance)

Energy (Windmill efficiency, light control)

Transportation (Smart trains)

IoT Platforms

IoT Future

Agenda

Programming Languages

Mobile Development

Web Development

Internet of Things

Big Data

Cloud Computing

DevOps

Big Data Overview

Analyze

Very large datasets

PatternsTrendsAssociations

Infer

Predict

Big Data Hadoop

Big Data Hadoop / Yarn

Big Data Streaming

Big Data Streaming

Big Data Spark

General cluster computing framework

Multi-stage in-memory processing

Much faster than Hadoop for some cases

Batch + Streaming (Lambda Architecture)

Big Data Machine Learning

Insights into data using various techniquesSummary statistics

Correlation

Clustering

Regression

Recommendation

Big Data CAP Theorem

Pick two!

Big Data NoSQL CAP

Big Data NoSQL Types

Agenda

Programming Languages

Mobile Development

Web Development

Internet of Things

Big Data

Cloud Computing

DevOps

Cloud Deployment Models

Virtualization

Multi-tenant

QoS

Scalable On-demand

Cloud Service Models

Cloud Providers

Cloud Market Share

Cloud Amazon Web Services

Agenda

Programming Languages

Mobile Development

Web Development

Internet of Things

Big Data

Cloud Computing

DevOps

DevOps Intersection of Dev and IT

DevOps Overview

Name: Development + Operations

What it is: Collaboration between developers and IT operators.

Goal: Establish an environment where builds can happen more frequently, rapidly, and reliably.

Means: Automation (Deployment + Test)

Agile (Communication + Integration + Culture)

Modularity (VM + Containers)

DevOps Tools at a Glance

Setup (Vagrant)

Config Management (Chef, Puppet)

Continuous Integration (Jenkins)

Insights (NewRelic, Loggly, Splunk)

Containers (Docker)

Where to go from here

Manager / Architect

Consultant

Domain Expert

Good Developer

Discussion

[email protected]@webalo.comfacebook.com/amahfouzlinkedin.com/in/[email protected]/AymanMahfouz

123456

Row 710026145

123456

Row 7857465275

123456

Row 7851825223775