Georg Heeg eK Baroper Str. 337 D-44227 Dortmund Tel: +49-231-97599-0 Fax: +49-231-97599-20

Post on 02-Feb-2016

38 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

Georg Heeg eK Baroper Str. 337 D-44227 Dortmund Tel: +49-231-97599-0 Fax: +49-231-97599-20. Georg Heeg eK Mühlenstr. 19 D-06366 Köthen Tel: +49-3496-214 328 Fax: +49-3496-214 712. Georg Heeg AG Riedtlistr. 8 CH-8006 Zürich Tel: +41-1-356 3311 Fax: +41-1-356 3312. Email: info@heeg.de - PowerPoint PPT Presentation

Transcript

Georg Heeg eKBaroper Str. 337D-44227 DortmundTel: +49-231-97599-0Fax: +49-231-97599-20

Email: info@heeg.dehttp://www.heeg.de

Georg Heeg AGRiedtlistr. 8

CH-8006 ZürichTel: +41-1-356 3311Fax: +41-1-356 3312

Georg Heeg eKMühlenstr. 19

D-06366 KöthenTel: +49-3496-214 328Fax: +49-3496-214 712

Georg Heeg

Smalltalk Speaks .NETand Gets Mobile

Bled26 August 2003

Overview

• About us• Smalltalk today?• DotNETConnect• Smalltalk gets mobile

About us...

• Founded 1987, head quarter in Dortmund,since 1996 in Zurich, since 1999 in Koethen/Anhalt

• Consulting and training companyconcentrated around Smalltalk

• Hotline Support, Maintenance, Bug-Fixes

• New technologies for VisualWorks

• Technology partner of

Corporate Mission: Make Sophisticated Projectsa Success for the Customer!

Cooperation

• Anhalt University of Applied Sciences in Koethen– Smalltalk as first programming language– Diploma thesis by Dirk Lannatewitz

• Localization UI for VisualWorks• Finished 18 August 2003

– Diploma thesis by Katrin Nörenberg• German version of VisualWorks

Overview

• About us• Smalltalk today?• DotNETConnect• Smalltalk gets mobil

Smalltalk 1972

• Xerox Palo Alto Research Center• Alan Kay, David Robson, Adele Goldberg• Goal: Dynabook

– The personal Computer for everybody• Same size as a book• Same weight as a book• Dynamic• Available every time• Controllable by everybody

Smalltalk 1980

• Smalltalk 80– 1981 first publication in Byte Magazine

• Foundation of object orientation• Window system• Software development using browser• Debugger• Technical base of today’s VisualWorks

Smalltalk end of the 1980ies

• Commercialization– Founding of Smalltalk companies

• 1985 Digitalk• 1987 Georg Heeg• 1988 ParcPlace Systems

– First application projects• The Analyst (Xerox/CIA)• ProfiSee (Ciba Geigy)

Smalltalk early 1990ies

• Large Projects– JP Morgan– Texas Instruments– Daimler Benz– BMW– Deutsche Bank– Deutsche Bahn– UBS– Siemens

• IBM puts out VisualAge to the market place• Smalltalk books are published

Smalltalk 1996-1999

• Java is the new buzz word– …

• Smalltalk projects are put into operation– Users are happy

Smalltalk 1999-2002

• Cincom takes over ObjectStudio and VisualWorks– Founded 1968– About 800 employees– From the beginning managed by Tom Nies– Located in Cincinnati, Ohio

• Consolidation– Long term strategy

• Smalltalk books get out of stock

Smalltalk 2003

• New Smalltalk companies show up• New platforms

– Webserver– .NET

• New markets– mobility

• New Smalltalk books are published

New Book on Smalltalk

GWV Fachverlage

Grundkurs Smalltalk - Objektorientierung von Anfang an

Eine Einführung in die Programmierung

Johannes Brauer

Erscheinungstermin: 12. September 2003

What is special about Smalltalk?

• „Everything is an Object“– „normal“ Objects– Windows– Numbers, strings, characters– Classes– Meta classes– Processes– Stack frames (contexts)

Smalltalk properties

• Every object is unambiguously typed– Instance of a class

• Variables are ungetyped• Information Hiding

– Only access to objects by messages

• Dynamic binding

Smalltalk Theory

• Smalltalk is a modeling language– Smalltalk is able to represent every well

formulated theory concept as a system of classes in a clear way

=>– Smalltalk is able to represent every

computer science theory concept as a system of classes in a clear way

Fear of Smalltalk

• Pretended arguments– Will no exist for a long enough time– Is slow– Is not company strategy

BUT

• Fear is often hazy and unspecific

What are the roots of the fear?

• „Wat de Buer nich kennt, dat fret he nich“ [Low German: “Whatever the farmer does not know, he does not eat.”– More Marketing– More Sales

• Smalltalk is different– Must be different to achieve the Smalltalk goals

• You cannot build airplanes of steel

The fear of Smalltalk is justified

• Intellectual requirements– Classes = concepts– To understand concepts is intellectually

demanding– To develop concepts requires creativity– To dismiss concepts requires inner freedom– To bear criticism must be learned

• and criticism will come!!!

Who has overcome the fear

• Does not want to do anything else• Achieves a productivity, others can only

dream of• Can spread out her/his own ideas• Feels as creator of a virtual world

• … and travels to ESUG every year

Smalltalk is reasonably cheap

• Ideal for Prototyping• Ideal for Extreme Programming• Ideal for Redesign

• From the idea via the prototype to product quality– Without a technology break– In shortest time

• Few Lines of Code• Proximity of concepts and software

– Notions correspond to classes

One Software Base

• From a server to a mobile device– Sun SPARC – HP UX – IBM AIX – SGI Irix– Linux 86 und PPC– Macintosh OS 9 und OS X– Windows 95, 98, ME, NT, 2000, XP, Server und

Desktop– Windows CE 4.x

• Windows Mobile for Pocket PC 2003

• Binary compatible

Smalltalk 2004

• There are two alternatives– All programming is done the old style in low

salary countries• India, Bela Russia, Ukraine• Does know-how get out of our business control?

– Programming is done VERY efficiently• Modeling in SMALLTALK• Only possible if Smalltalk adopts all possible

worlds

Overview

• Bout us• Smalltalk today and tomorrow!• DotNETConnect• Smalltalk gets mobile

Bill Gates about

• „Wir glauben, dass .NET in der Lage ist,– dem einzelnen Anwender ganz neue Möglichkeiten

zu eröffnen,– Unternehmen ungeahnte geschäftliche

Perspektiven zu bieten– und uns allen erneut bewusst zu machen, welch

ungeheures Potenzial im Internet steckt.“

BizTalk Server 2002

What is .NET according to Microsoft Marketing?

• Microsoft Platform for XML-Web Services• Connects in a uniform und personalized

way – Information– Devices– Users

What is .NET technically?

• Development environment for Windows– VisualStudio .NET 2003

• Object oriented execution platform– Common Language Runtime

• Class library– .NET Framework

• ASP .NET, ADO .NET, Windows Forms, …

• Interface for complex High-Level-Transactions – Web-Services

What is .NET

•Microsoft promotes WebServices as Internet based Strategy since 2001

•Actually development gains more importance with the goal:

– Unifies programming• Same features in all languages• Unified API• Unified platform

– Simplifies deployment and maintenance– Security

.NET: Future Platform of Windows World

• Replaces COM, OLE, DDE• Replaces native programming• Unifies programming languages (C++,

Java, VB, …)• .NET simplifies heavily Windows

programming

Architectural Comparison

.NET VisualWorks

OS Platform

CLR

Framework

Data and XML

Web Services

Web Forms

Windows Forms

OS Platform

VM

VisualWorks Basisimage

EXDI/Lens and XML

Opentalk

WebToolkit

Basisimage

Is .NET Planned as One-Way-Road?

• Interfaces mainly serve for integration of Legacy components

• Extensions of existing systems by .NET components is not intended

• Soft pressure towards migration of existing systems into .NET

• A way back is not provided

Java or .NET

• Java tries to dominate the world– Anything else is ignored– All concepts are newly invented and named

differently

• .NET tries to dominate the world– Anything can be integrated in .NET– .NET specifics can only be used from

inside .NET

Smalltalk and .NET (Theory)

• Repetition:– Smalltalk is able to represent every well formulated

theory concept as a system of classes in a clear way– Smalltalk is able to represent every computer

science theory concept as a system of classes in a clear way

=>• Smalltalk is able to represent .NET as a system

of classes in a clear way

Smalltalk and .NET (Marketing)

• All future development of Microsoft will happen in .NET

• Windows is dominant platform for VisualWorks Client Applications

• Windows is a platform for VisualWorks Server Applications

• Thus we consider a preoccupation with .NET as (compellingly) necessary

.NET Integration Options

1. Smalltalk as .NET integrated language

Available as Technology Preview (S#/Smallscript)

2. Conversion of VM to use CLR byte codes

Probably technically not possible

3. Web Services Available since VisualWorks 7.0 as Server and Client

4. Interoperability DotNETConnect

Smallscript alias S#

+high acceptance in Windows community+First Class Citizen- Low acceptance in Smalltalk community- Loss of platform independence- Restriction of the language (.NET makes

all languages being the same)- Quality of development- Breach with existing application base

.NET Integration: Bytecode

• Technically not investigated• Open whether can be put into practice

at all without massive restrictions– static typing of CLR

Web-Services

• Available in VisualWorks since June 2002 • High strategic advantage• Integration on the level of

– Applications– Systems – Enterprises

• Standardized– XML, SOAP, WSDL, UDDI

Web-Services

• Not suitable for integration of – Local components– Client-server– Operating system services

• “Nobody would ever want to print a Word document using Web-Services”

DotNETConnect: Goals

• Smalltalk and .NET coexist side by side• .NET objects will be usable as Smalltalk objects• Light weight solution• Easy to use

– Time to Market– No technical knowledge about .NET required– All properties of Smalltalk are maintained

• Favorable cost-benefit ratio

DotNETConnect: Concepts

• Smalltalk as Client, .NET as Server• Automatic generation of Smalltalk

classes for .NET classes• Separation of .NET generated classes

from communication medium– Web-Services– Managed Extensions for C++– COM– Remoting

• Garbage Collection coupled with .NET

DotNETConnect: Properties

• No adaptation of .NET Components necessary

• Tool based generation of all necessary Components in source code – Complete access on generated Code

• Components for .NET base classes as part of DotNETConnect available– mscorlib, data, xml

DotNETConnect: Architecture

VisualWorks

VisualWorks object stub

VisualWorks connection stub

Registry

.NET

.NET Object

Proxy (C#, C++)

Registry

Communication Channel (DLL, COM, Remoting)

Generated Code installed Component

Stub Classes

• All Stub classes are subclasses of DotNETObject

• Class methods – static methods– Access to static properties – Constructors

• Instance methods– Non static methods– Access to non static properties

Two Stub-Objects with DLL Channel

VisualWorks

aDateTime

objectId

Registry

objectId

objectId

MscorlibStub

aTimeInterval

objectId

MscorlibExternalInterface

.NET

Communication channel

Registry

objectId

objectId

aDateTime

objectId

aTimeInterval

objectId

MscorlibProxy

Example: Stub Method (generated)

AddDays: value"This is generated code for the .NET method:System.DateTime AddDays (System.Double value)"| returnData |returnData := self executionStub

DateTime_AddDays: self objectIdwith: value.

^self register: returnData

Example: Wrapper Method (generated)

DateTime_AddDays: objectID with: value"execution stub method for the .NET Method

System.DateTime AddDays (System.Double value)"| errorCode containerPointer objectPointer |containerPointer := self externalInterface return_type gcMalloc.objectPointer := objectID gcCopyToHeapUnicode.errorCode := self externalInterface DateTime_AddDays: containerPointer

with: objectPointer with: value.

errorCode < 0ifTrue: [self GetLastError signal]ifFalse: [^self getDataFrom: containerPointer]

Marshaling

• Encoding is done using (Unicode-) strings

.NET type marshal key

Byte 01

SByte 02

INT16 03

UINT16 04

INT32 05

UINT32 06

INT64 07

UINT64 08

Single 09

Double 10

Char 11

String 12

Boolean 13

Decimal 14

Object reference 42

data type marshaled data

34 INT16 0334

1.23 Decimal 141.23

true Boolean 13T

‘Paul’ String 12Paul

2003/07/12 DateTime 42<System.DateTime>7b3a7baa-62dc-4d65-a316-74bc01b140ba

Assemby Description (generated)

Method signatures (generated)

Remark

• Returned objects are Stubs of their proper class– Interface types are ignored– There is no casting in Smalltalk

GarbageCollection

• Is performed by Registry objects– One in Smalltalk and one in C++

• Smalltalk Registry object is a WeakDictionary with finalization– Finalization informs .NET

Delivered

• 2 Bundles– GHDotNETConnectDevelopment– GHDotNETConnectRuntime

• 3 DLLs– DotNETBase– DotNETProxy – DotNETReflection

• Special treatment for mscorlib • Documentation

– Concept Guide– User Guide

DotNETConnect: Availibility

• Developed by Georg Heeg eK– Communication layer COM

• No longer planned

– Communication layer DLLs in C++• August 2003

– Communication Layer Remoting• February 2004

• Probably part of Cincom-Smalltalk Version November 2003– Look under preview

DotNETConnect

• Makes .NET Services accessible– Without the constraint to subordinate to .NET

Framework

• Enables to use the same application alternatively to .NET on other platforms– Mac OS/X– Linux

More Interfaces to Come

• Automatic generation of COM interfaces– Currently under development– Will be part of future Cincom Smalltalk

releases

• Java RMI interface– Currently under investigation

Overveiw

• About us• Smalltalk today and tomorrow!• DotNETConnect• Smalltalk gets mobile

Smalltalk Mobile I

Smalltalk Mobile II

Smalltalk Gets Mobile

• Siemens Simpad SLC• skeye.pad SL• Tatung WebPad

Smalltalk Gets Mobile

VisualWorks on Windows CE

• Complete implementation of entire VisualWorks system on Windows CE .NET (alias 4.x)

• Instant mobility for any VisualWorks 7.1 application

• One step towards the dream of the Dynabook– DIN A5 (half letter) size screens

Processors

• x86 e.g. National Semiconductor Geode Processor– Tatung WebPad

• StrongARM Processor– Siemens Simpad SLC– skeye.pad SL

• Currently under development– Intel PXA25x processor family

Currently under Development

• Windows Mobile for Pocked PC – Alias Pocket PC 2003– Based on Windows CE 4.2– Public announcement 23 June 2003

• First devices available– Since End of July 2003– E.g. HP iPAQ 2220

Further plans

• SmartPhone – Currently under market investigation

Availibility

• For tests on Web pads– immediately

• Probably available as part of Cincom Smalltalk November 2003 edition– Look under preview

Deployed Image Adaptations

• During the test phase using VisualWorks 7.1 following adaptations must be loaded as parcels:– DLL&C-Connect adapted to Unicode support– Complete Unicode support at the Image/VM

interface– Special Windows CE classes– Adapted platform recognition

Example Application

• Idea– “Any Business Application for Hoeft&Wessel”– 16 June 2003, 17:19 (= 5:19 p.m.)

• Delivery – 17 June 2003, 18:36 (= 6:36 p.m.)– As-is stocktaking for inventory

• Software presentation– 18 June 2003 in Hanover

Alan Kay‘s Dynabook?

Adele Goldberg(20 February 2003):“This does indeed look like the original Dynabook conception”

Alan Kay‘s Dynabook?

Adele Goldberg(20 February 2003):“The failing is in the Smalltalk, of course, and not the hardware. I still feel we have not figured out how to enable modeling in a direct enough way that non-computer professionals can describe their understanding, find data to test that understanding, and be able to share with others. That was my understanding of the motivation for the Smalltalk projects--modeling as versus programming.”

Georg Heeg eKBaroper Str. 337D-44227 DortmundTel: +49-231-97599-0Fax: +49-231-97599-20

Email: info@heeg.dehttp://www.heeg.de

Georg Heeg AGRiedtlistr. 8

CH-8006 ZürichTel: +41-1-356 3311Fax: +41-1-356 3312

Georg Heeg eKMühlenstr. 19

D-06366 KöthenTel: +49-3496-214 328Fax: +49-3496-214 712

top related