bazillion new technologies
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