+ All Categories
Home > Software > Modeling on the Web

Modeling on the Web

Date post: 04-Jul-2015
Category:
Upload: pedro-j-molina
View: 219 times
Download: 3 times
Share this document with a friend
Description:
Modeling Software on the browser provides great benefits like zero deployment and multi-device. However providing modeling infrastructure on the browser require entering in the JavaScript world to create all the infrastructure needed. In this talk, such infrastructure for textual, projectional and diagram DSLs are discused. Session presented at Code Generation 2014.
55
Modeling on the Web Pedro J. Molina, Ahmed Negm, Ruben Jiménez @pmolinam @anegm81 @rubenjmarrufo @icinetic
Transcript
Page 1: Modeling on the Web

Modeling on the Web

Pedro J. Molina, Ahmed Negm, Ruben Jiménez

@pmolinam @anegm81 @rubenjmarrufo

@icinetic

Page 2: Modeling on the Web

Icinetic

• We do MDSD Tools for Developers, Citizen Developers & End-Users

• HQ in Seville, Spain, EU

• Offices in San Francisco, Seattle, Cairo, Seville & Madrid

http://www.icinetic.com/

Page 3: Modeling on the Web

If I want to jump, but I am not trained

What can I do?

Question?

Page 4: Modeling on the Web

A1: Lower the bar

Question?

Page 5: Modeling on the Web

A2: Use High-Tech

Question?

Page 6: Modeling on the Web

Creating applications is getting more and more

complex:

Technologies, frameworks, versions, dependencies, different

screen sizes and aspect ratios, incompatible API &

vendors, platform fragmentation…

How we can help as the MDE community?

Why the metaphor?

Page 7: Modeling on the Web

Types of complexities

•Essential Complexity

•Accidental Complexity

Terms from : “Fred Brooks, 1986, No Silver Bullet”

Complexities on Software

Page 8: Modeling on the Web

Complexity inherent to the system been designed.

“Everything should be made as simple as possible,

but not simpler.” (A. Einstein)

Essential Complexity

Page 9: Modeling on the Web

Accidental Complexity

Any other Extra Complexity arisen from tools, methods,

technologies, etc. used to build the system.

Programming languages, tools, frameworks… computers,

devices introduce many, many Accidental Complexity.

Page 10: Modeling on the Web

From idea usage

Idea design build test debug provision deploy usage

Can we do something to speed up this

delivery critical path?

Accidental Complexities

Page 11: Modeling on the Web

MDE helps to reduce Accidental Complexity.

The ultimate “noble” Quest for MDE

Make life easier!

Page 12: Modeling on the Web

Radarc online

Radarc

Abstraction Level covered by tools

High

Low

TelerikAppBuilder

Xamarin

Visual StudioEclipse

MS Siena

Wizards

Models

Code

Graphical Design

HTML+JS

Native code

Drag&Drop Models

Deployed App

Compiled App

Page 13: Modeling on the Web

• Non coding skills Users

• Amateurs Programmers

• Citizen Developers

• Professional Developers

• Gurus / Hackers

• Code Generation attendees ;-)

• MPS Users };-)

User, a segmentation

Page 14: Modeling on the Web

The App industry is growing. End Users joining.

Consumer

• Mobile apps will be a

$77B business by 2017

Business

• Mobile Business apps will

be worth almost $50B by

2017

• In 2013, an estimated 200

million workers used

mobile business apps

Citizen Developers

• Users operating outside of

the scope of enterprise IT

and its governance who

creates new business

applications for

consumption by others -

Gartner

• In 2014, 25% of new

business applications will

be delivered by Citizen

Developers

Page 15: Modeling on the Web

MDE

• Developers: tendency to craftsmanship / artists / Not seen like an engineer…

• Citizen Developers: benefit directly from automation and complexity hiding

• We are not going to be enough

• MDE is a tool for Lowering the Entry Barrier

• Allowing non programmers to DIY to solve their day to day problems

• Mobility, Ubiquity computers, Different UI, UX, form factors

The role of MDE

Page 16: Modeling on the Web

Last week at /Build Conference

Microsoft presented the line of work they are going to push hard:

Connected Devices

• Same App

• Cross Devices: Tablet / Phone

• Adapted to the context (device, form factor, & user needs)

Trend on Connected Devices

Windows 8.1 Blue

Page 17: Modeling on the Web

Google, Samsung, Microsoft working on:

• Glasses

• Phone

• Tablets

• TVs

• Watches

• Internet of Things

Trend on Connected Devices

Main Features

• Same Services

• Cross Devices

• Contextual

Page 18: Modeling on the Web

My code,

my Treasure,

my IDE?

Where is my IDE now?

It’s going with wind…

to The Cloud!

My code, my Treasure

Page 19: Modeling on the Web

Everything going to The Cloud. Why?

• Zero installation

• Instant updates

• Do it from any device, any time (any browser)

My IDE on The Cloud

Page 20: Modeling on the Web

What is other people doing?

State of the Art

Page 21: Modeling on the Web

Cloud9

Page 22: Modeling on the Web

Eclipse Orion

Page 23: Modeling on the Web

MS Monaco

Page 24: Modeling on the Web

GenMyModel

Page 25: Modeling on the Web

Martin Thiede

http://concrete-editor.org

Presented here a CG2010

Four years ago!

Concrete Editor

Page 26: Modeling on the Web

Rafael Chavez

@abstratt

Cloudfier

Page 27: Modeling on the Web

We decided at Icinetic:

We need to go to the cloud,

the sooner, the better.

Move to the cloud

Page 28: Modeling on the Web

Because

Not Typed

Relaxed syntax error prone

WAT Programming: http://bit.ly/watProg

JavaScript is not my favorite language

[] + []

[] + {}

{} + []

{} + {}

“”

[Object Object]

0

NaN

Page 29: Modeling on the Web

ButIt is the World most ubiquity computer

runtime ever deployed.

And runs fast in all modern browsers!

JavaScript is not my favorite language

Page 30: Modeling on the Web

• Global variables

• with keyword

• eval()

• Type coercion

• Block syntax with no block scope

• Optional semicolons (sometimes, some browsers, but not all)

First Developer Sin: Lack of understanding of its prototypical inheritance

Recommended reading: Douglas Crockford book. “JavaScript: The Good parts”

JavaScript main Sins

Page 31: Modeling on the Web

Typescript typing the un-typed

Type annotations, Generics, modules, classes, interfaces for JS

Hack “typing” to PHP to support a gigantic codebase that has to be maintained.

Dynamic typing languages are good for quick prototyping.

Static typing languages are better for maintaining code.

Compilers provide you a chance to catch some type error before the user see them.

In any case, Unit Testing is A MUST in both code-camps.

Taming the ‘wild’ JavaScript

http://hacklang.org

http://www.typescriptlang.org

Page 32: Modeling on the Web

•Stateless

•Scalable

•Run in any browser

• It is not a desktop frontend (almost!?)

Web

Page 33: Modeling on the Web

•Stateless

•Scalable

•Run in any browser

• It is not a desktop frontend (almost!?)

Web

Page 34: Modeling on the Web

• Looking for

• Textual

• Diagram

• Projectional

• Tabular

• Mixed forms.

Editors for Models

Page 35: Modeling on the Web

• Grammars

• BNF

• Parsers

• Facilities

• Inline errors

• Syntax Coloring

• Code Completion

Textual Editors

Page 36: Modeling on the Web

• Easier to use for non programmers

• The editor follows the form of the model

• Difficult to create non consistent models

• Limited, constrained

Projectional Editors

Page 37: Modeling on the Web

• Graphical editors with a strong

focus on visualization

• Excellent for showing

relationships between objects

Diagram Editors

Page 38: Modeling on the Web

Editors on the Web

Demo Time

D←mo

Page 39: Modeling on the Web

Canvas Surface for drag and drop

controls and UI components

• Shows presentation layouts an

embedding relationships

• Objects can be setup one by one to the

detail with an auxiliary Property Grid

Editor

Designer Editor

Page 40: Modeling on the Web

• Tree Editors

• Table Editors

• Allows to cross two relationships for a set of objects and show or edit a third property in a tabular way

• Custom Editors

• Wizard style or free form of editor are also a good choice when UX is the key issue to address

• Composed Editors

• The previous one shows some paradigms for editor. Combining the previous ones to created compounded

editors allows to create a complex one.

Other Editors

Page 41: Modeling on the Web

Language skills requires time and experience

Level of abstraction of a language is a sword with two edges

• Easy to think in such abstractions

• Removes other details

What happens when we need to go deeper in the details?

• Progressive Modeling

Customizations Cliffs

Page 42: Modeling on the Web

End User

Levels of abstraction for App Design

Power User

Developer

Expert Developer / Architect

Page 43: Modeling on the Web

• Simple Model for End Users

• Powerful for advanced users

• Full expressiveness power for developers: access to full

details

Progressive Modeling

Page 44: Modeling on the Web

Progressive Modeling. Sample

Page 45: Modeling on the Web

Progressive Modeling. Sample

Page 46: Modeling on the Web

Progressive Modeling on

http://radarconline.com (in Private Beta)

All of you invited to try!

Demo Time

D←mo

Page 47: Modeling on the Web

Models everywhere: generation/build pipeline

Metamodel.meta Model.ts

parser.pegjs

Comon-js FormatServer-side

AMD FormatClient/Browser-side

Model.js

parser.js

Model.js

parser.js

Generation

JSON

Model.cs

Parser.cs

Model.java

Lang.gram

Meta-definitons

Page 48: Modeling on the Web

Backend / Cloud

Frontend

• Where to validate?

• XRefs?

• How to propagate?

Models everywhere

Page 49: Modeling on the Web

Generation as a Service• If your IDE is in the cloud,

• If your modeling is the cloud,

• If your code is on the cloud

• IaaS, PaaS, SaaS

Where to put your code generators?

GaaS

Page 50: Modeling on the Web

GaaS

Demo Time

D←mo

Page 51: Modeling on the Web

The world is changing:

• The Cloud is coming & disrupting

• Mobile Devices

• Devices Everywhere

• Citizen Developers creating Apps

Conclusions

So, do we:

• Getting ready for Cloud

• Modeling once on the web

• Tools for Citizen Developers

• Reducing accidental complexity

• Delivering Native Apps cross-devices

Page 52: Modeling on the Web

• If we can Model on the Web

as simple as possible

• An then, get the application running on the device

With Zero Technical Details

• We have removed much of the Accidental Complexity

Conclusions

Page 53: Modeling on the Web

Lowering the Entry Barriers to Build Apps

Conclusions

Page 54: Modeling on the Web

www.icinetic.com

Thank you

Page 55: Modeling on the Web

“Devices everywhere & Platform Fragmentation

have potential

to make MDE inevitable.”

A Prediction


Recommended