Building Vaadin Applications With Pure Scala

Size: px
Start display at page:

Download "Building Vaadin Applications With Pure Scala"

Transcription

1 Building Vaadin Applications With Pure Scala Henri Kerola Vaadin Expert at Vaadin Ltd

2 ?

3 Vaadin is a UI framework for rich web applications

4

5 java html

6

7

8

9

10

11 Internet Explorer Chrome Firefox Safari Opera ios Android

12 No browser plugins Nothing to install

13 Scala

14 Scala A programming language created by Martin Odersky Runs on JVM and fully compatible with Java OO + FP

15 Statically typed Type inference val hello = "Hello World!" // type is String val hello: String = "Hello World!" var i = 3 // type is Int i = "hi!" // doesn t work

16 Compact public class Person { private final String name; private final int age; class Person(val name: String, val age: Int) public Person(String name, int age) { this.name = name; this.age = age; public String getname() { return name; public int getage() { return age;

17 Compact List<Person> persons =... List<Person> adults = new ArrayList<Person>(); for (Person person : persons) { if (person.getage() >= 18) { adults.add(person); val persons =... val adults = persons.filter(_.age >= 18)

18 OK, you can use Vaadin Framework with Scala, but...

19 class MyApplication extends Application { def init() { setmainwindow(new Window) val button = new Button("Click", new Button.ClickListener { def buttonclick(event: Button#ClickEvent) { getmainwindow.shownotification("button clicked!") ) getmainwindow.addcomponent(b)

20 Java style API Listeners as anonymous inner classes Verbose

21 Scaladin

22 Pure and compact Scala API for Vaadin Framework

23 By wrapping Vaadin API

24 Wrapping package vaadin.scala class Button extends AbstractField { val p = new com.vaadin.ui.button def disableonclick: Boolean = p.isdisableonclick def disableonclick_=(disableonclick: Boolean) = p.setdisableonclick(disableonclick) val button = new Button button.disableonclick = true val bisableonclick = button.disableonclick

25 com.vaadin.ui vaadin.scala AbstractComponent AbstractComponent AbstractField AbstractField AbstractSelect AbstractSelect Table Table

26 final Table table = new Table(); table.setsizefull(); table.setimmediate(true); table.setselectable(true); table.setcontainerdatasource(createcontainer()); table.addlistener(new ValueChangeListener() ); public void valuechange(valuechangeevent e) { System.out.println("Table" + e.getproperty() + "clicked!"); val table = new Table { table.sizefull() table.immediate = true = true table.selectionmode = SelectionMode.Single = table.valuechangelisteners container = createcontainer += { e => valuechangelisteners println("table " + e.property += { e: => ValueChangeEvent + " clicked!") => println("table " clicked!") + e.property + " clicked!")

27 val layout = new VerticalLayout { sizefull() VerticalLayout layout = new VerticalLayout(); layout.setsizefull(); final Button edit = new Button("Edit row"); final Table table = new Table(); table.setsizefull(); add(new Table { sizefull() valuechangelisteners += { edit.enabled = value.isdefined, ratio = 1) val edit = add(button("edit"), alignment = BottomRight) table.addlistener(new ValueChangeListener() public void valuechange(valuechangeevent event) { edit.setenabled(table.getvalue()!= null); ); layout.addcomponent(table); layout.setexpandratio(table, 1); layout.addcomponent(edit); layout.setcomponentalignment(edit, BOTTOM_RIGHT);

28 Example

29

30

31 Tools Scala 2.9 (and Java) Eclipse and Scala IDE Scaladin JDD ja Vaadin 6.8.4

32 Tools SBT (Simple Build Tool) Akka

33 Questions?

Scala. Introduction. Scala

Scala. Introduction. Scala Scala Introduction 1 Scala Scala was proposed by Professor Martin Odersky and his group at EPFL in 2003 to provide a highperformance, concurrent-ready environment for functional programming and object-oriented

More information

Object-oriented programming

Object-oriented programming Object-oriented programming HelloWorld The following code print Hello World on the console object HelloWorld { def main(args: Array[String]): Unit = { println("hello World") 2 1 object The keyword object

More information

Kotlin for Android developers

Kotlin for Android developers ROME - APRIL 13/14 2018 Kotlin for Android developers Victor Kropp, JetBrains @kropp Kotlin on JVM + Android JS In development: Kotlin/Native ios/macos/windows/linux Links Kotlin https://kotlinlang.org

More information

You can do better with Kotlin. Svetlana Isakova

You can do better with Kotlin. Svetlana Isakova You can do better with Kotlin Svetlana Isakova Kotlin Programming Language - modern - pragmatic - Android-friendly Official on Android Not only Android Pragmatic - tooling - Java interop From has good

More information

Scala. ~ a tragedy in two parts ~ the tragedy being we aren t using it all the time

Scala. ~ a tragedy in two parts ~ the tragedy being we aren t using it all the time e Scala ~ a tragedy in two parts ~ the tragedy being we aren t using it all the time w g I The Scala Language Praise for Scala j s gi can honestly say if someone had shown me the Programming in Scala...

More information

From Scala to Typesafe. Martin Odersky November 4 th 2011 Venture Ideas Symposium

From Scala to Typesafe. Martin Odersky November 4 th 2011 Venture Ideas Symposium From Scala to Typesafe Martin Odersky November 4 th 2011 Venture Ideas Symposium Context The world of mainstream business application software is changing: Moore s law now achieved by increasing # of cores

More information

A Whirlwind Tour of Scala. Kevin Kilroy October 2014

A Whirlwind Tour of Scala. Kevin Kilroy October 2014 A Whirlwind Tour of Scala Kevin Kilroy October 2014 A Brief History of Scala... Created in 2001 by javac author 1995 created Pizza with 1998 created GJ with 1999 Joined EPFL Created Funnel 2001 Scala 2003

More information

Lecture 09: Introduction to Scala

Lecture 09: Introduction to Scala Lecture 09: Introduction to Scala Computer Science Department, University of Crete Multicore Processor Programming Based on slides by D. Malayeri, S.D. Vick, P. Haller, and M. Madsen Pratikakis (CSD) Scala

More information

Introduction Haim Michael. All Rights Reserved.

Introduction Haim Michael. All Rights Reserved. Architecture Introduction Applications developed using Vaadin include a web application servlet based part, user interface components, themes that dictate the look & feel and a data model that enables

More information

Rich Web Applications in Server-side Java without. Plug-ins or JavaScript

Rich Web Applications in Server-side Java without. Plug-ins or JavaScript Rich Web Applications in Server-side Java without twitter: #vaadin @joonaslehtinen Plug-ins or JavaScript Joonas Lehtinen, PhD Vaadin Ltd - CEO joonas@vaadin.com ? Vaadin is a UI framework for desktop-like

More information

CS205: Scalable Software Systems

CS205: Scalable Software Systems CS205: Scalable Software Systems Lecture 4 September 14, 2016 Lecture 4 CS205: Scalable Software Systems September 14, 2016 1 / 16 Quick Recap Things covered so far Problem solving by recursive decomposition

More information

First Programming Language in CS Education The Arguments for Scala

First Programming Language in CS Education The Arguments for Scala First Programming Language in CS Education The Arguments for Scala WORLDCOMP 2011 By Dr. Mark C. Lewis Trinity University Disclaimer I am writing a Scala textbook that is under contract with CRC Press.

More information

Scala: Byte-code Fancypants. David Pollak JVM Language Summit 2009

Scala: Byte-code Fancypants. David Pollak JVM Language Summit 2009 Scala: Byte-code Fancypants David Pollak JVM Language Summit 2009 http://github.com/dpp/jvm_summit_2009 About DPP Author Beginning Scala BDFL Lift Wrote some spreadsheets What is Scala? A pile of short-cuts

More information

THE NEW ERA OF WEB DEVELOPMENT. qooxdoo. Andreas Ecker, Derrell Lipman

THE NEW ERA OF WEB DEVELOPMENT. qooxdoo. Andreas Ecker, Derrell Lipman THE NEW ERA OF WEB DEVELOPMENT qooxdoo Andreas Ecker, Derrell Lipman The Ajax Experience, 25-27 July 2007 1 Introduction Client-side JavaScript framework Professional application development Comprehensive

More information

Yann

Yann Scala Who am I? Yann Simon @simon_yann Why Scala? Fear to lose job? Java can be pain #1 public String createinvoicename( Date invoicedate, String invoiceid, String userid, String firmid, boolean directinvoice,

More information

Rich Web Applications in Server-side Java without. Plug-ins or JavaScript

Rich Web Applications in Server-side Java without. Plug-ins or JavaScript Rich Web Applications in Server-side Java without twitter: #vaadin @joonaslehtinen Plug-ins or JavaScript Joonas Lehtinen, PhD Vaadin Ltd - CEO joonas@vaadin.com ? Vaadin is a UI framework for desktop-like

More information

G Programming Languages - Fall 2012

G Programming Languages - Fall 2012 G22.2110-003 Programming Languages - Fall 2012 Week 13 - Part 1 Thomas Wies New York University Review Last lecture Object Oriented Programming Outline Today: Scala Sources: Programming in Scala, Second

More information

Philipp Wille. Beyond Scala s Standard Library

Philipp Wille. Beyond Scala s Standard Library Scala Enthusiasts BS Philipp Wille Beyond Scala s Standard Library OO or Functional Programming? Martin Odersky: Systems should be composed from modules. Modules should be simple parts that can be combined

More information

Notes from a Short Introductory Lecture on Scala (Based on Programming in Scala, 2nd Ed.)

Notes from a Short Introductory Lecture on Scala (Based on Programming in Scala, 2nd Ed.) Notes from a Short Introductory Lecture on Scala (Based on Programming in Scala, 2nd Ed.) David Haraburda January 30, 2013 1 Introduction Scala is a multi-paradigm language that runs on the JVM (is totally

More information

Scaling Up & Out. Haidar Osman

Scaling Up & Out. Haidar Osman Scaling Up & Out Haidar Osman 1- Crash course in Scala - Classes - Objects 2- Actors - The Actor Model - Examples I, II, III, IV 3- Apache Spark - RDD & DAG - Word Count Example 2 1- Crash course in Scala

More information

A First Object. We still have another problem. How can we actually make use of the class s data?

A First Object. We still have another problem. How can we actually make use of the class s data? A First Object // a very basic C++ object class Person public: Person(string name, int age); private: string name; int age; We still have another problem. How can we actually make use of the class s data?

More information

Informatik II. Tutorial 6. Mihai Bâce Mihai Bâce. April 5,

Informatik II. Tutorial 6. Mihai Bâce Mihai Bâce. April 5, Informatik II Tutorial 6 Mihai Bâce mihai.bace@inf.ethz.ch 05.04.2017 Mihai Bâce April 5, 2017 1 Overview Debriefing Exercise 5 Briefing Exercise 6 Mihai Bâce April 5, 2017 2 U05 Some Hints Variables &

More information

...something useful to do with the JVM.

...something useful to do with the JVM. Scala Finally... ...something useful to do with the JVM. Image source: http://www.tripadvisor.com/locationphotos-g187789-lazio.html Young Developed in 2003 by Martin Odersky at EPFL Martin also brought

More information

CS 2340 Objects and Design - Scala

CS 2340 Objects and Design - Scala CS 2340 Objects and Design - Scala Objects and Operators Christopher Simpkins chris.simpkins@gatech.edu Chris Simpkins (Georgia Tech) CS 2340 Objects and Design - Scala Objects and Operators 1 / 13 Classes

More information

Founder & CEO

Founder & CEO X Vaadin @joonaslehtinen Founder & CEO Introduction to Vaadin Framework User interface framework for rich web applications User Interface Components Developer Rich Productivity UX java html Desktop

More information

Taming the Spaghetti: Rich Web Applications With Errai. Christian Sadilek Lincoln Baxter III JBoss / Red Hat

Taming the Spaghetti: Rich Web Applications With Errai. Christian Sadilek Lincoln Baxter III JBoss / Red Hat Taming the Spaghetti: Rich Web Applications With Errai Christian Sadilek (@csadilek) Lincoln Baxter III (@lincolnthree) JBoss / Red Hat Another Java Web Framework? Photo by: darkuncle From: Flickr What

More information

Scalable Performance for Scala Message-Passing Concurrency

Scalable Performance for Scala Message-Passing Concurrency Scalable Performance for Scala Message-Passing Concurrency Andrew Bate Department of Computer Science University of Oxford cso.io Motivation Multi-core commodity hardware Non-uniform shared memory Expose

More information

Scala: why do I care?

Scala: why do I care? Scala: why do I care? Asheville Coders League, August 28, 2013 Havoc Pennington typesafe.com twitter.com/havocp github.com/havocp This Talk A sample of Scala... May be easier to understand if you know

More information

mgwt Cross platform development with Java

mgwt Cross platform development with Java mgwt Cross platform development with Java Katharina Fahnenbruck Consultant & Trainer! www.m-gwt.com Motivation Going native Good performance Going native Good performance Device features Going native Good

More information

Informatik II (D-ITET) Tutorial 6

Informatik II (D-ITET) Tutorial 6 Informatik II (D-ITET) Tutorial 6 TA: Marian George, E-mail: marian.george@inf.ethz.ch Distributed Systems Group, ETH Zürich Exercise Sheet 5: Solutions and Remarks Variables & Methods beginwithlowercase,

More information

GWT integration with Vaadin. Peter expert & trainer

GWT integration with Vaadin. Peter expert & trainer GWT integration with Vaadin Peter Lehto @peter_lehto expert & trainer Vaadin & GWT GWT Transport mechanisms Web components with Polymer QA Vaadin Connectors Vaadin & GWT Server driven UI framework with

More information

SCALAMODULES A Scala DSL to ease OSGi development Heiko Seeberger, WeigleWilczek

SCALAMODULES A Scala DSL to ease OSGi development Heiko Seeberger, WeigleWilczek SCALAMODULES A Scala DSL to ease OSGi development Heiko Seeberger, WeigleWilczek WHAT S SCALA? mature object-functional statically typed lightweight WHAT S SCALA? expressive concise pragmatic interoperabel

More information

Scala : an LLVM-targeted Scala compiler

Scala : an LLVM-targeted Scala compiler Scala : an LLVM-targeted Scala compiler Da Liu, UNI: dl2997 Contents 1 Background 1 2 Introduction 1 3 Project Design 1 4 Language Prototype Features 2 4.1 Language Features........................................

More information

In this tutorial, we are going to learn how to use the various features available in Flexbox.

In this tutorial, we are going to learn how to use the various features available in Flexbox. About the Tutorial Flexbox (flexible box) is a layout mode of CSS3. Using this mode, you can easily create layouts for complex applications and web pages. Flexbox layout gives complete control over the

More information

1B1b. Classes in Java Part III. Review. Static. Static (2) Example. Static (3) 1B1b Lecture Slides. Copyright 2004, Graham Roberts 1

1B1b. Classes in Java Part III. Review. Static. Static (2) Example. Static (3) 1B1b Lecture Slides. Copyright 2004, Graham Roberts 1 1B1b Classes in Java Part III Review We have seen that classes: declare instance variables. declare methods. may have constructors. Now want to start filling in further details. 1 2 Static Why are some

More information

Eclipse + Html: A Journey

Eclipse + Html: A Journey Eclipse + Html: A Journey Kris De Volder , Pivotal Software Martin Lippert , Pivotal Software 1 Outline Goal Motivation Case Studies The Journey API Comparison

More information

Bibliography. Analyse et Conception Formelle. Lesson 5. Crash Course on Scala. Scala in a nutshell. Outline

Bibliography. Analyse et Conception Formelle. Lesson 5. Crash Course on Scala. Scala in a nutshell. Outline Bibliography Analyse et Conception Formelle Lesson 5 Crash Course on Scala Simply Scala. Onlinetutorial: http://www.simply.com/fr http://www.simply.com/ Programming in Scala, M. Odersky, L. Spoon, B. Venners.

More information

2/26/2017. DataFrame. The input data can be queried by using

2/26/2017. DataFrame. The input data can be queried by using Spark SQL is the Spark component for structured data processing It provides a programming abstraction called s and can act as distributed SQL query engine The input data can be queried by using Ad-hoc

More information

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Copyright 2012, Oracle and/or its affiliates. All rights reserved. 1 Jump-Starting Lambda Stuart Marks @stuartmarks Mike Duigou @mjduigou Oracle JDK Core Libraries Team 2 What is Lambda? Essentially an anonymous function allows one to treat code as data provides parameterization

More information

Scala. Fernando Medeiros Tomás Paim

Scala. Fernando Medeiros Tomás Paim Scala Fernando Medeiros fernfreire@gmail.com Tomás Paim tomasbmp@gmail.com Topics A Scalable Language Classes and Objects Basic Types Functions and Closures Composition and Inheritance Scala s Hierarchy

More information

Model Solutions. COMP 103: Test May, 2013

Model Solutions. COMP 103: Test May, 2013 Family Name:............................. Other Names:............................. ID Number:............................... Signature.................................. Instructions Time allowed: 45 minutes

More information

Goals for Today. CSE1030 Introduction to Computer Science II. CSE1030 Lecture #9. Review is-a versus has-a. Lecture #9 Inheritance I

Goals for Today. CSE1030 Introduction to Computer Science II. CSE1030 Lecture #9. Review is-a versus has-a. Lecture #9 Inheritance I CSE1030 Introduction to Computer Science II Lecture #9 Inheritance I Goals for Today Today we start discussing Inheritance (continued next lecture too) This is an important fundamental feature of Object

More information

CS/ENGRD 2110 SPRING Lecture 5: Local vars; Inside-out rule; constructors

CS/ENGRD 2110 SPRING Lecture 5: Local vars; Inside-out rule; constructors 1 CS/ENGRD 2110 SPRING 2017 Lecture 5: Local vars; Inside-out rule; constructors http://courses.cs.cornell.edu/cs2110 Announcements 2 1. Writing tests to check that the code works when the precondition

More information

Axiomatic Rules. Lecture 18: Axiomatic Semantics & Type Safety. Correctness using Axioms & Rules. Axiomatic Rules. Steps in Proof

Axiomatic Rules. Lecture 18: Axiomatic Semantics & Type Safety. Correctness using Axioms & Rules. Axiomatic Rules. Steps in Proof Lecture 18: Axiomatic Semantics & Type Safety CSCI 131 Fall, 2011 Kim Bruce Axiomatic Rules Assignment axiom: - {P [expression / id]} id := expression {P} - Ex: {a+47 > 0} x := a+47 {x > 0} - {x > 1} x

More information

Java For Loop Tutorial Pdf Netbeans 7.2

Java For Loop Tutorial Pdf Netbeans 7.2 Java For Loop Tutorial Pdf Netbeans 7.2 Modular Application Development for the Java Desktop NetBeans Platform for Beginners aims to give you a complete and thorough discussed in chapter 7, illustrated

More information

Collections Algorithms

Collections Algorithms Collections Algorithms 1 / 11 The Collections Framework A collection is an object that represents a group of objects. The collections framework allows different kinds of collections to be dealt with in

More information

16A CSS LAYOUT WITH FLEXBOX

16A CSS LAYOUT WITH FLEXBOX 16A CSS LAYOUT WITH FLEXBOX OVERVIEW Flexbox terminology Flexbox containers Flow: Flow direction and text wrap Alignment on main and cross axes Specifying how items in a flexbox "flex" Changing the order

More information

Six Things Groovy Can Do For You

Six Things Groovy Can Do For You Six Things Groovy Can Do For You By Alan Green, Senior Consultant Cirrus Technologies Pty. Ltd. Abstract Groovy is a scripting language for the Java Virtual Machine, due for a 1.0 release in late 2005.

More information

Comet and WebSocket Web Applications How to Scale Server-Side Event-Driven Scenarios

Comet and WebSocket Web Applications How to Scale Server-Side Event-Driven Scenarios Comet and WebSocket Web Applications How to Scale Server-Side Event-Driven Scenarios Simone Bordet sbordet@intalio.com 1 Agenda What are Comet web applications? Impacts of Comet web applications WebSocket

More information

Object Orientation. A Crash Course Intro

Object Orientation. A Crash Course Intro Object Orientation A Crash Course Intro What is an Object? An object, in the context of objectoriented programming, is the association of a state with a set of behaviors. State: its fields, or member variables

More information

Programming in Scala Mixin inheritance Summer 2008

Programming in Scala Mixin inheritance Summer 2008 Programming in Scala Mixin inheritance Summer 2008 1 The very short history of multiple inheritance C++ had multiple inheritance Java removed it Mostly due to diamondinheritance problem. Should alice behave

More information

Multi-catch. Future Features. Sometimes we need to handle more than one exception in a single catch block:

Multi-catch. Future Features. Sometimes we need to handle more than one exception in a single catch block: 1 Multi-catch Sometimes we need to handle more than one exception in a single catch block: try { // some code } catch (e: ExceptionA ExceptionB) { log(e); throw e; } Note that this is not proposing general

More information

Kotlin for Android Developers

Kotlin for Android Developers Kotlin for Android Developers Learn Kotlin the easy way while developing an Android App Antonio Leiva This book is for sale at http://leanpub.com/kotlin-for-android-developers This version was published

More information

Practical Scala. Dianne Marsh Emerging Technology for the Enterprise Conference 03/26/2009

Practical Scala. Dianne Marsh Emerging Technology for the Enterprise Conference 03/26/2009 Practical Scala Dianne Marsh Emerging Technology for the Enterprise Conference dmarsh@srtsolutions.com 03/26/2009 Outline for Discussion Motivation and migration Demonstrate key implementation details

More information

CMP-326 Total 120 Points Final Fall 2012

CMP-326 Total 120 Points Final Fall 2012 1. (20 Points) Given the following binary tree containing int s: a. (10 Points) What is the output of the following recursive method if it is initially called with the root node as a parameter: public

More information

Configuring an Android Device for inet Guardian

Configuring an Android Device for inet Guardian Configuring an Android Device for inet Guardian Edge IT Ltd Piecing Together the IT Puzzle 2016 Edge IT Ltd 1 Configuring a Device for inetguardian inetguardian has been tested on the following devices

More information

Scala Java Sparkle Monday, April 16, 2012

Scala Java Sparkle Monday, April 16, 2012 Scala Java Sparkle Scala Scala Java Scala "Which Programming Language would you use *now* on top of JVM, except Java?". The answer was surprisingly fast and very clear: - Scala. http://www.adam-bien.com/roller/abien/entry/java_net_javaone_which_programming

More information

1B1b Classes in Java Part I

1B1b Classes in Java Part I 1B1b Classes in Java Part I Agenda Defining simple classes. Instance variables and methods. Objects. Object references. 1 2 Reading You should be reading: Part I chapters 6,9,10 And browsing: Part IV chapter

More information

Lessons Learned from Adopting Clojure

Lessons Learned from Adopting Clojure Lessons Learned from Adopting Clojure Jay Fields @thejayfields DRW Trading #yow13 why I hate all programming languages - Matt Foemmel 5 years ago 5 years ago 5 years ago 5 years ago 3-4 years 5 years ago

More information

Object Oriented Programming

Object Oriented Programming Object Oriented Programming Debapriyo Majumdar Programming and Data Structure Lab M Tech CS I Semester I Indian Statistical Institute Kolkata August 7 and 14, 2014 Objects Real world objects, or even people!

More information

Kotlin for Android Developers

Kotlin for Android Developers Kotlin for Android Developers Learn Kotlin the easy way while developing an Android App Antonio Leiva This book is for sale at http://leanpub.com/kotlin-for-android-developers This version was published

More information

Google Web Toolkit (GWT)

Google Web Toolkit (GWT) Google Web Toolkit (GWT) What is GWT? GWT is a development toolkit for building and optimizing complex browser-based applications You can develop all code, both client and server in Java (or with a different

More information

Web Database Programming

Web Database Programming Web Database Programming Web Database Programming 2011 Created: 2011-01-21 Last update: 2014-01-14 Contents Introduction... 2 Use EasyDataSet as Data Source... 2 Add EasyDataSet to web page... 3 Make Database

More information

Scala Where It Came From Where It is Going

Scala Where It Came From Where It is Going Scala Where It Came From Where It is Going Scala Days San Francisco Martin Odersky Scala Where It Came From Scala Days San Francisco Martin Odersky Scala is going nowhere Scala is a gateway drug to Haskell

More information

State of jquery Fall John Resig

State of jquery Fall John Resig State of jquery Fall 2010 John Resig State of the Project New Releases jquery 1.4.3 / jquery 1.4.4 Official Plugins: jquery Templating jquery Data Linking jquery Mobile jquery 1.4.3 JSLint Modularity

More information

Abstract class & Interface

Abstract class & Interface Islamic University of Gaza Faculty of Engineering Computer Engineering Department Computer Programming Lab (ECOM 2124) Lab 3 Abstract class & Interface Eng. Mohammed Abdualal Abstract class 1. An abstract

More information

Week 16: More on Collections and Immutability

Week 16: More on Collections and Immutability Week 16: More on Collections and Immutability Jack Hargreaves jxh576@cs.bham.ac.uk Febuary 9, 2012 1 Collections API Last week we looked at Collection, List, Set and Map the basic data type interfaces

More information

INTRODUCTION COS MOBILE DEVELOPMENT WHAT IS ANDROID CORE OS. 6-Android Basics.key - February 21, Linux-based.

INTRODUCTION COS MOBILE DEVELOPMENT WHAT IS ANDROID CORE OS. 6-Android Basics.key - February 21, Linux-based. 1 COS 470 - MOBILE DEVELOPMENT INTRODUCTION 2 WHAT IS ANDROID Linux-based Java/Kotlin Android Runtime (ART) System Apps SMS, Calendar, etc. Platform Architecture 3 CORE OS Linux (64 bit) Each app is a

More information

Lobby Troubleshooting

Lobby Troubleshooting Introduction / Table of Contents This document was created to provide you with easy steps to troubleshoot issues within the lobby. Click on the links below to find the resolution to your problem. If you

More information

(800) Toll Free (804) Fax Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days

(800) Toll Free (804) Fax   Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days Course Description This course introduces the Java programming language and how to develop Java applications using Eclipse 3.0. Students learn the syntax of the Java programming language, object-oriented

More information

Ajax and Web 2.0 Related Frameworks and Toolkits. Dennis Chen Director of Product Engineering / Potix Corporation

Ajax and Web 2.0 Related Frameworks and Toolkits. Dennis Chen Director of Product Engineering / Potix Corporation Ajax and Web 2.0 Related Frameworks and Toolkits Dennis Chen Director of Product Engineering / Potix Corporation dennischen@zkoss.org 1 Agenda Ajax Introduction Access Server Side (Java) API/Data/Service

More information

This tutorial gives you a basic coverage of concepts of Vaadin and makes you comfortable to use it in your software development projects.

This tutorial gives you a basic coverage of concepts of Vaadin and makes you comfortable to use it in your software development projects. i About the Tutorial Vaadin is an open source technology to create rich internet web content. It is based on Java and supports Java Script and Ajax. This can be extended with Google Web Tool to support

More information

DAD Lab. 1 Introduc7on to C#

DAD Lab. 1 Introduc7on to C# DAD 2017-18 Lab. 1 Introduc7on to C# Summary 1..NET Framework Architecture 2. C# Language Syntax C# vs. Java vs C++ 3. IDE: MS Visual Studio Tools Console and WinForm Applica7ons 1..NET Framework Introduc7on

More information

2 years without Java or reload Android development with Kotlin.

2 years without Java or reload Android development with Kotlin. 2 years without Java or reload Android development with Kotlin KirillRozov@EPAM Who am I? Team Lead in EPAM More than 6 years in Android development Kotlin Evangelist Co-organizer GDG Minsk, Android Academy

More information

CS506 Web Programming and Development Solved Subjective Questions With Reference For Final Term Lecture No 1

CS506 Web Programming and Development Solved Subjective Questions With Reference For Final Term Lecture No 1 P a g e 1 CS506 Web Programming and Development Solved Subjective Questions With Reference For Final Term Lecture No 1 Q1 Describe some Characteristics/Advantages of Java Language? (P#12, 13, 14) 1. Java

More information

Java Programming. Manuel Oriol, March 22nd, 2007

Java Programming. Manuel Oriol, March 22nd, 2007 Java Programming Manuel Oriol, March 22nd, 2007 Goal Teach Java to proficient programmers 2 Roadmap Java Basics Eclipse Java GUI Threads and synchronization Class loading and reflection Java Virtual Machines

More information

Getting Started with Kotlin. Commerzbank Java Developer Day

Getting Started with Kotlin. Commerzbank Java Developer Day Getting Started with Kotlin Commerzbank Java Developer Day 30.11.2017 Hello! Alexander Hanschke Hello! Alexander Hanschke CTO at techdev Solutions GmbH in Berlin Hello! Alexander Hanschke CTO at techdev

More information

PESIT Bangalore South Campus

PESIT Bangalore South Campus INTERNAL ASSESSMENT TEST II Date : 20-09-2016 Max Marks: 50 Subject & Code: JAVA & J2EE (10IS752) Section : A & B Name of faculty: Sreenath M V Time : 8.30-10.00 AM Note: Answer all five questions 1) a)

More information

Xtend Programming Language

Xtend Programming Language Xtend Programming Language Produced by: Eamonn de Leastar (edeleastar@wit.ie) Department of Computing and Mathematics http://www.wit.ie/ Agenda Subtitle Excellent Xtend User Guide (Version 2.6) API Docs

More information

Using GWT and Eclipse to Build Great Mobile Web Apps

Using GWT and Eclipse to Build Great Mobile Web Apps Using GWT and Eclipse to Build Great Mobile Web Apps Chris Ramsdale Product Manager, GWT and Google Plugin for Eclipse Feedback: http://goo.gl/mn6y4 Twitter: #io2011 #gwt Why Are We Here? 3 The Problems

More information

Object-Oriented Databases db4o: Part 2

Object-Oriented Databases db4o: Part 2 Object-Oriented Databases db4o: Part 2 Configuration and Tuning Distribution and Replication Callbacks and Translators 1 Summary: db4o Part 1 Managing databases with an object container Retrieving objects

More information

USER GUIDE PowerPhoto CRM

USER GUIDE PowerPhoto CRM USER GUIDE PowerPhoto CRM 2013 2015 Contents CONFIGURING POWERPHOTO Add, Remove, Set Default, Set Record Image, Thumbnail & View Text Display Original File Save Original File Resize Photo Resize Height

More information

Microservices. Webservices with Scala (II) Microservices

Microservices. Webservices with Scala (II) Microservices Microservices Webservices with Scala (II) Microservices 2018 1 Content Deep Dive into Play2 1. Database Access with Slick 2. Database Migration with Flyway 3. akka 3.1. overview 3.2. akka-http (the http

More information

Buy a Feature: an Adventure in Immutability and Actors. David Pollak BayFP August 22, 2008

Buy a Feature: an Adventure in Immutability and Actors. David Pollak BayFP August 22, 2008 Buy a Feature: an Adventure in Immutability and Actors David Pollak BayFP August 22, 2008 David Pollak Not strict, but pretty lazy Lead developer for Lift web framework Scala since November 2006, Ruby/Rails,

More information

C30b: Inner Class, Anonymous Class, and Lambda Expression

C30b: Inner Class, Anonymous Class, and Lambda Expression CISC 3115 TY3 C30b: Inner Class, Anonymous Class, and Lambda Expression Hui Chen Department of Computer & Information Science CUNY Brooklyn College 12/6/2018 CUNY Brooklyn College 1 Outline Discussed Concept

More information

Kotlin, Start? Start! (pluu) Android Developer GDG Korea Android Organizer

Kotlin, Start? Start! (pluu) Android Developer GDG Korea Android Organizer Kotlin, Start? Start! (pluu) Android Developer GDG Korea Android Organizer Agenda Kotlin Overview Kotlin?? Basic fun main(args: Array): Unit { println("hello, world!") Basic Function Keyword

More information

Step 4 Part F - How to Download a Video on YouTube and Delete a Video

Step 4 Part F - How to Download a Video on YouTube and Delete a Video Step 4 Part F - How to Download a Video on YouTube and Delete a Video When you finish Edit your Video on your YouTube account and save it or save as new Video, you may want to Download it to your computer.

More information

CS/ENGRD 2110 FALL Lecture 5: Local vars; Inside-out rule; constructors

CS/ENGRD 2110 FALL Lecture 5: Local vars; Inside-out rule; constructors 1 CS/ENGRD 2110 FALL 2016 Lecture 5: Local vars; Inside-out rule; constructors http://courses.cs.cornell.edu/cs2110 References to text and JavaSummary.pptx 2 Local variable: variable declared in a method

More information

Real World Scala and Wicket

Real World Scala and Wicket Real World Scala and Wicket Jan Kriesten - Agenda 2 Introduction Functional IModel Don t Repeat Yourself / traits The Lazy Programmer Q & A, References Introduction About 4 Small company located in Hamburg

More information

Exercise 6 Multiple Inheritance, Multiple Dispatch and Linearization November 3, 2017

Exercise 6 Multiple Inheritance, Multiple Dispatch and Linearization November 3, 2017 Concepts of Object-Oriented Programming AS 2017 Exercise 6 Multiple Inheritance, Multiple Dispatch and Linearization November 3, 2017 Task 1 Consider the following C++ program: class X X(int p) : fx(p)

More information

But before understanding the Selenium WebDriver concept, we need to know about the Selenium first.

But before understanding the Selenium WebDriver concept, we need to know about the Selenium first. As per the today s scenario, companies not only desire to test software adequately, but they also want to get the work done as quickly and thoroughly as possible. To accomplish this goal, organizations

More information

Simplifying Asynchronous Code with

Simplifying Asynchronous Code with Simplifying Asynchronous Code with Scala Async PHILIPP HALLER The Problem Asynchronous code Using an API that requires you to register callbacks? Then you re writing asynchronous code! Problem: callbacks

More information

4. Web-based Switch Configuration

4. Web-based Switch Configuration 4. Web-based Switch Configuration Management Options Connecting using the Web User Interface Logging onto the Web Manager Smart Wizard Web User Interface (Web UI) Management Options The Switch provides

More information

Interactive webmaps with ArcGIS. Kristel Meikas, AlphaGIS

Interactive webmaps with ArcGIS. Kristel Meikas, AlphaGIS Interactive webmaps with ArcGIS Kristel Meikas, AlphaGIS Agenda Overview of ArcGIS tools and resources Introduction to ArcGIS APIs In depth with Flex maps In depth with JavaScript maps ArcGIS Server Publish

More information

Scala for Sling. Building RESTful Web Applications with Scala for Sling. LOGO SPEAKER S COMPANY

Scala for Sling. Building RESTful Web Applications with Scala for Sling.  LOGO SPEAKER S COMPANY Scala for Sling Building RESTful Web Applications with Scala for Sling http://people.apache.org/~mduerig/scala4sling/ Michael Dürig Day Software AG 10080 LOGO SPEAKER S COMPANY AGENDA 2 > Introduction

More information

Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Copyright 2014, Oracle and/or its affiliates. All rights reserved. 1 Introduction to Lambda Stuart W. Marks Principal Member of Technical Staff Oracle JDK Core Libraries Team Twitter: @stuartmarks What is a Lambda? A lambda is a function. A function is a computation that

More information

Writing Browser Extensions in Kotlin. Kirill Rakhman busradar.com

Writing Browser Extensions in Kotlin. Kirill Rakhman busradar.com Writing Browser Extensions in Kotlin Kirill Rakhman (@Cypressious) busradar.com KotlinJS No longer expiremental since 1.1.0 Can run anywhere where JS runs Can call JS Websites NodeJS Browser Extensions

More information

Week 5-1: ADT Design

Week 5-1: ADT Design Week 5-1: ADT Design Part1. ADT Design Define as class. Every obejects are allocated in heap space. Encapsulation : Data representation + Operation Information Hiding : Object's representation part hides,

More information

KF5008 Program Design & Development. Lecture 1 Usability GUI Design and Implementation

KF5008 Program Design & Development. Lecture 1 Usability GUI Design and Implementation KF5008 Program Design & Development Lecture 1 Usability GUI Design and Implementation Types of Requirements Functional Requirements What the system does or is expected to do Non-functional Requirements

More information

Person class. A class can be derived from an existing class by using the form

Person class. A class can be derived from an existing class by using the form Person class //Person.java - characteristics common to all people class Person { Person(String name) { this.name = name; void setage(int age) { this.age = age; void setgender(gender gender) { this.gender

More information