• No results found

CrawLogo: An Experiment in End-User Programming for Web-Enabled Applications

N/A
N/A
Protected

Academic year: 2021

Share "CrawLogo: An Experiment in End-User Programming for Web-Enabled Applications"

Copied!
80
0
0

Loading.... (view fulltext now)

Full text

(1)

Master Thesis

CrawLogo

An Experiment in End-User Programming for

Web-Enabled Applications

Johan Nilsson

2003-12-12

LIU-KOGVET-D--03/16--SE

Supervisor and examiner:

Kevin McGee

Department of Computer and Information Science

Linköping University

(2)
(3)

Abstract

W i th th e r is e o f th e W e b , t h e r e i s m o r e in t e r e s t a m o n g e n d - u s e r s t o c r e a t e d if f e r e n t k in d s o f s o f t w a r e th a t u s e e l e m e n t s f r o m th e W e b o r a ll o w f o r n e t w o r k e d in t e r a c t io n b e t w e e n u s e r s . C u r r e n t ly h o w e v e r , m a n y a v a il a b le t o o l s f o r th is p u r p o s e a r e h a r d t o u s e o r l a c k a s u f f i c i e n t l e v e l o f e x p r e s s iv e n e s s . T o p r o v i d e n e w in s ig h t s o n th e c o n s t r u c t io n o f t o o ls th a t a ll o w e n d -u s e r s t o c r e a t e th e ir o w n W e b -e n a b l e d s o f t w a r e , t h i s th e s i s e x p l o r e s d e s i g n is s u e s a n d c o n s e q u e n c e s o f a p p ly in g th e T u r t l e m e t a p h o r f r o m th e L o g o - p r o g r a m m in g l a n g u a g e t o a n e n d - u s e r p r o g r a m m in g e n v ir o n m e n t f o r W e b - e n a b l e d a p p l i c a t i o n s . In o r d e r t o e x p lo r e th is , C r a w L o g o w a s c r e a t e d – a p r o g r a m m a b l e e n d -u s e r t o o l th a t s u p p o r t s th e c r e a t io n o f W e b - e n a b le d a p p l i c a t i o n s u s in g a T u r t le - l ik e c o n t r o l m e t a p h o r a n d la n g u a g e a d a p t e d f r o m L o g o . A s a p r o o f - o f -c o n c e p t, s e v e r a l W e b - e n a b le d a p p li c a t io n s w e r e c r e a t e d u s in g th is n e w t o o l, in c lu d in g C r a w L o g o P o n g , a s o m e w h a t a lt e r n a t i v e v e r s i o n o f A t a r i’ s c la s s i c P o n g g a m e , a n d a c o l l a b o r a t iv e b r o w s in g e n v ir o n m e n t, in w h i c h u s e r s c a n b r o w s e th e W e b t o g e th e r . T h e r e s u lt in g C r a w L o g o e n v i r o n m e n t a l l o w s f o r c r e a t in g W e b -e n a b l e d a p p li c a t io n s th a t – u s in g m o r e t r a d it io n a l p r o g r a m m in g l a n g u a g e s – w o u ld b e q u it e c o m p le x a n d r e q u ir e d e e p t e c h n i c a l p r o g r a m m in g s k i ll s . F u r th e r , w h i le u t i li z in g a T u r t le - l i k e c o n t r o l m e t a p h o r in C r a w L o g o a ll o w s f o r th e c r e a t i o n o f s o m e n e w ty p e s o f a p p l i c a t i o n s a n d s o m e n e w w a y s o f in t e r a c t in g w i th t h e W e b , it a l s o r a i s e s n e w p r o b l e m s s u c h a s h o w t o s u c c e s s fu lly d e s ig n w i th in th e C r a w L o g o m e t a p h o r a n d h o w t o c r e a t e a m e a n in g fu l r e p r e s e n t a t i o n o f T u r t le - g e o m e t r y - b a s e d n a v i g a t io n o n th e W e b .

(4)
(5)

Acknowledgements

I w o u l d l i k e t o e x p r e s s m y g r a t i tu d e t o a n u m b e r o f p e o p l e f o r th e ir s u p p o r t th r o u g h o u t th e w o r k a n d w r it in g o f t h i s m a s t e r th e s is . F ir s t o f a l l, I p a r t i c u la r ly w o u l d l ik e t o t h a n k m y s u p e r v is o r K e v in M c G e e . I t is h a r d t o im a g in e a n a d v is o r w it h a b e t t e r m i x o f e n c o u r a g e m e n t, k n o w l e d g e a n d in t e r e s t in g i d e a s th a n K e v in M c G e e . A s w e l l a s g u id in g m e th r o u g h th i s w o r k , h e t a u g h t m e a n e w w a y o f th in k in g a n d w r i t in g a b o u t d e s ig n r e s e a r c h , a n d I v a lu e h i s h e l p a n d g u i d a n c e v e r y m u c h . I a l s o w o u l d l ik e t o th a n k m y c o ll e a g u e s J o d y F o o , K a t t i s K a r ls s o n a n d S e b a s t ia n A n d e r s s o n f o r m a k in g th e d a y s a n d n i g h t s in th e in t e r a c t i o n d e s i g n s tu d i o a l o t m o r e f u n . S p e c i a l th a n k s t o J o d y f o r b e in g a l i g h th o u s e in th e s o m e t i m e s f o g g y s e a s o f J a v a . A b i g th a n k s t o M u m a n d D a d , f o r a l l t h e ir s u p p o r t a n d f o r a l w a y s b e in g th e r e . A n d f in a l ly , th a n k y o u F r i d a , f o r p u t t in g u p w i th m e d u r in g t h i s y e a r , p r o v i d in g g r e a t c o m m e n t s a n d id e a s a n d f o r s a y in g " Y o u c a n d o it !” . L in k ö p in g , D e c e m b e r 2 0 0 3 J o h a n N i l s s o n

(6)
(7)

Table of Contents

C H A P T E R 1 I N T R O D U C T I O N ... 1 1 .1 O V E R V IE W O F T H E T H E S IS ...1 1 .2 W H O A R E E N D -U S E R P R O G R A M M E R S ? ...2 1 .3 D IM E N S IO N S O F P R O G R A M M A B IL IT Y ...3 1 .4 W E B - E N A B L E D A P P L IC A T IO N S ...4 1 .4 .1 D ef in itio n : W e b - en a b le d ... 5 1 .4 .2 F in d in g a n d R e tr iev in g In f o r m a tio n ... 5 1 .4 .3 P u b lis h in g a n d S h a r in g In f o r m a tio n ... 6 1 .4 .4 In te r a c tin g W ith O th e r U s e rs ... 7 1 .4 .5 G a m in g ... 7 C H A P T E R 2 S U R V E Y ... 9 2 .1 H O W A R E W E B -E N A B L E D A P P L IC A T IO N S C R E A T E D T O D A Y ? ...9 2 .2 E M P O W E R IN G E N D -U S E R S T O B U IL D S O F T W A R E A P P L IC A T IO N S ...1 0 2 .2 .1 P r og r a m m in g L a n g u a g e D e s ig n ... 1 1 2 .2 .2 P r og r a m m in g E n v iro n m e n t D es ig n ... 1 4 2 .2 .3 A lter n a tiv e A p p r o a c h e s to P r og r a m m in g ... 1 6 2 .3 E X IS T IN G E N D -U S E R T O O L S F O R W E B -E N A B L E D A P P L IC A T IO N S ...1 8 2 .3 .1 F in d in g a n d R e tr iev in g In f o r m a tio n ... 1 8 2 .3 .2 P u b lis h in g a n d S h a r in g In f o r m a tio n ... 1 9 2 .3 .3 In te r a c tin g W ith O th e r U s e rs ... 1 9 2 .3 .4 G a m in g ... 1 9 2 .3 .5 W h a t a b o u t H T M L ? ... 2 0 C H A P T E R 3 P R O B L E M S T A T E M E N T ... 2 1 3 .1 P U R P O S E ...2 2 3 .2 L O G O A N D T H E T U R T L E M E T A P H O R ...2 2

(8)

4 .1 D E V E L O P M E N T T O O L S ...2 5 4 .2 D E S IG N P R O T O C O L ...2 6 C H A P T E R 5 C R A W L O G O ... 2 9 5 .1 E N V IR O N M E N T D E S C R IP T IO N ...2 9 5 .1 .1 G U I a n d W o rk s p a c e ... 3 0 5 .1 .2 C o m m a n d L in e a n d E d ito r ... 3 1 5 .1 .3 L a n g u a g e a n d P rim itiv e s ... 3 2 5 .1 .4 C r a w L og o O b je c ts ... 3 3 5 .2 P U T T IN G IT A L L T O G E T H E R : P R O G R A M M IN G IN C R A W L O G O ...3 8 5 .2 .1 C r e a t in g a n d C o n tro llin g O b je c ts ... 3 8 5 .2 .2 C r e a t in g a n d M a n ag in g P r o c e d u r e s ... 3 9 5 .2 .3 In te ra c tin g W ith O th er U se r s ... 4 1 5 .3 D E M O N S T R A T IO N A L A P P L IC A T IO N S ...4 2 5 .3 .1 C r a w L og o P o n g ... 4 2 5 .3 .2 C o lla b o ra tiv e B r o w s in g ... 4 3 5 .3 .3 Im a g e S lid e sh o w ... 4 5 5 .3 .4 G u e s s W h o ... 4 6 5 .4 U N R E S O L V E D IS SU E S ...4 7 5 .4 .1 G e n e r a l P u r p o s e C o n s tr u c ts ... 4 7 5 .4 .2 E d ito r U s a b ility ... 4 7 C H A P T E R 6 A N A L Y S I S : D E S I G N I N S I G H T S ... 4 9 6 .1 I M P O R T A N T F U N C T IO N A L IT Y ...4 9 6 .2 T U R T L E G O E S C R A W L IN G ...5 0 6 .3 S Y N T O N IC IT Y A N D D E S IG N O F P R IM IT IV E S ...5 1 6 .4 P R O G R A M M A B L E F IL T E R S ...5 3 C H A P T E R 7 C O N C L U S I O N S ... 5 5 7 .1 S U M M A R Y A N D C O N T R IB U T IO N S ...5 6 7 .2 D IR E C T IO N S F O R F U R T H E R R E S E A R C H ...5 7 7 .2 .1 W e b -E n a b le d E n d - U s e r P ro g ra m m in g ... 5 7 7 .2 .2 T o w a rd s a W e b G e o m etry ... 5 8 7 .2 .3 W e b -D r iv e n E m e rg e n t S of tw a r e ... 5 9 7 .3 F IN A L W O R D S ...5 9 C H A P T E R 8 R E F E R E N C E S ... 6 1

(9)
(10)
(11)

Chapter 1

Introduction

E n d -u s e r p r o g r a m m in g t o o ls a i m t o p r o v i d e c o m p u t e r u s e r s t h a t l a c k p r o g r a m m in g e x p e r t i s e w i th th e p o s s ib il i ty t o c r e a t e th e i r o w n s o f t w a r e . W i th th e r i s e o f th e W e b , th e r e is m o r e p o s s ib i l it y a n d in t e r e s t t o c r e a t e a p p li c a t io n s th a t u s e e l e m e n t s f r o m th e W e b o r a ll o w f o r n e t w o r k e d in t e r a c t i o n b e t w e e n u s e r s . A s c h i ld r e n a n d n o n -p r o f e s s i o n a l p r o g r a m m e r s e n j o y m a k in g d if f e r e n t k in d s o f s o f t w a r e , th e y w o u l d p r o b a b ly l ik e t o c r e a t e th e ir o w n W e b - a p p l i c a t i o n s . C u r r e n t ly h o w e v e r , m a n y o f t h e a v a i l a b l e t o o l s f o r t h i s p u r p o s e s u f f e r f r o m d e f i c i e n c i e s s u c h a s s t il l b e in g t o o h a r d t o u s e o r la c k in g a s u f f i c i e n t le v e l o f e x p r e s s i v e n e s s . T h i s th e s i s s e t s o u t t o p r o v i d e n e w in s i g h t s o n th e d e s ig n o f t o o ls th a t a ll o w e n d -u s e r s t o c r e a t e th e i r o w n W e b - e n a b l e d a p p li c a t io n s , a n d in p a r t i c u l a r , e x p lo r e c o n s e q u e n c e s o f a p p ly in g a s p e c t s o f th e “ T u r t le m e t a p h o r ” f r o m t h e L o g o p r o g r a m m in g la n g u a g e t o a n e n d -u s e r p r o g r a m m in g e n v i r o n m e n t f o r W e b - e n a b l e d a p p l i c a t i o n s .

1.1

Overview of the Thesis

In th i s in t r o d u c t o r y c h a p t e r w e lo o k a t s o m e g e n e r a l t o p i c s o f th e f i e l d o f e n d -u s e r p r o g r a m m in g s u c h a s a ) c h a r a c t e r is t i c s o f e n d - u s e r p r o g r a m m e r s a n d b ) d i m e n s io n s o f p r o g r a m m a b i lit y , a n d a l s o c ) w h a t ty p e s o f W e b -e n a b le d a p p li c a t io n s e n d - u s e r s m ig h t w a n t t o c r e a te . T o b e s p e c if i c , f o u r b r o a d c la s s e s o f s u c h a p p li c a t io n s a r e d e s c r ib e d ; f i n d in g a n d r e t r ie v in g i n f o r m a t io n , p u b l is h in g a n d s h a r i n g in f o r m a t io n , in t e r a c t in g w it h o th e r u s e r s , a n d p la y i n g a n d c r e a t i n g g a m e s . A ll o f t h e s e w i ll b e d e s c r ib e d in m o r e d e t a i l b e lo w .

(12)

T h e r e m a in d e r o f t h i s th e s i s is s t r u c tu r e d a s f o ll o w s . T h e s u r v e y in C h a p t e r 2 g i v e s a r e v i e w o f h o w W e b - e n a b le d a p p l i c a t i o n s a r e c o m m o n ly c r e a t e d t o d a y , d i f f e r e n t t e c h n i q u e s t o e m p o w e r e n d -u s e r s t o c r e a t e th e ir o w n s o f t w a r e , a n d w h a t e n d - u s e r t o o l s f o r th e c r e a t i o n o f W e b - e n a b l e d a p p l i c a t i o n s th a t a lr e a d y e x is t s . C h a p t e r 3 p r e s e n t s th e g o a ls a n d p u r p o s e o f th i s th e s i s a n d a ls o p r o v i d e s a b r i e f d e s c r ip t i o n o f t h e L o g o p r o g r a m m in g l a n g u a g e a n d th e T u r t le m e t a p h o r . C h a p t e r 4 d e s c r ib e s th e d e s i g n a n d im p l e m e n t a t io n p r o t o c o l th a t w a s u s e d w h e n d e v e lo p in g C r a w L o g o – a p r o g r a m m a b le e n v ir o n m e n t f o r th e c r e a t i o n o f W e b - e n a b le d a p p li c a t i o n s w i th a T u r t l e - li k e c o n t r o l m e t a p h o r a n d l a n g u a g e a d a p t e d f r o m L o g o . T h e C r a w L o g o e n v i r o n m e n t i t s e lf i s d e s c r ib e d in d e t a i l in c h a p t e r 5 . C h a p t e r 6 p r e s e n t s a n a n a ly s i s o f s o m e o f th e c o n s e q u e n c e s o f a p p ly in g th e T u r t le m e t a p h o r in a W e b -c o n t e x t, f o ll o w e d b y a b r ie f s u m m a r y a n d c o n c lu s io n s in c h a p t e r 7 .

1.2

Who are End-User Programmers?

M a n y p e o p l e e n g a g e in p r o g r a m m in g - l ik e a c t i v i t ie s e v e r y o th e r d a y , o f t e n w i th o u t th in k in g a b o u t w h a t th e y d o in t e r m s o f p r o g r a m m in g . T h e s e a c t i v it ie s c a n in c lu d e m a k in g a g r a p h w i th in a s p r e a d s h e e t -a p p li c a t i o n l i k e M i c r o s o f t E x c e l, c r e a t in g r u le s in a n e - m a i l -c l i e n t f o r h o w m a i l f r o m d i f f e r e n t s e n d e r s w i th d i f f e r e n t s u b j e c t s s h o u l d b e h a n d le d , o r s e t t in g th e V C R t o r e c o r d a T V - p r o g r a m . S o m e t w e n t y y e a r s o f w id e s p r e a d u s e o f a p p li c a t io n - d e v e l o p m e n t e n v i r o n m e n t s s u c h a s s p r e a d s h e e t s , s t a t is t i c a l p a c k a g e s a n d C A D -s y s t e m s s h o w s th a t e n d -u s e r s c a n b e e m p o w e r e d t o c r e a t e th e i r o w n – o f t e n s u r p r i s in g ly s o p h is t i c a t e d – a p p li c a t io n s . W h il e e n d -u s e r p r o g r a m m in g e n v i r o n m e n t s o f t e n l a c k th e e x p r e s s i v e p o w e r o f g e n e r a l p u r p o s e p r o g r a m m in g la n g u a g e s , th e y a ls o l a c k t h e s t e e p le a r n in g c u r v e [4 7 ] . V a r i o u s r e s e a r c h a n d t o o ls h a v e s h o w n th a t e v e n c h il d r e n c a n s u c c e s s fu l ly e n g a g e in p r o g r a m m in g - l ik e a c t i v i t i e s s u c h a s c r e a t in g th e i r o w n g a m e s o r s i m u l a t io n s [1 4 ] [ 3 4 ] [5 0 ] . A n i m p o r t a n t p o in t h e r e i s th a t e n d -u s e r p r o g r a m m e r s a r e n o t p r o f e s s i o n a l p r o g r a m m e r s , b u t th e y a r e a l s o n o t t o b e r e g a r d e d a s n a ï v e , o r n o v i c e u s e r s [4 7 ] . T h e y a r e m u s i c ia n s , p h y s i c i s t s , c h i ld r e n , s tu d e n t s , e c o n o m is t s , d e s ig n e r s o r a n y o n e w h o m ig h t w a n t t o c r e a t e o r c u s t o m iz e th e i r o w n u s e fu l, in t e r e s t in g o r fu n p i e c e o f s o f t w a r e .

(13)

1.3

Dimensions of Programmability

C u r r e n t d e f in it io n s o f p r o g r a m m in g o f t e n s t a t e s o m e th in g l i k e : “ to w r ite a s e r ie s o f i n s t r u c t io n s w h i c h m a k e t h e c o m p u te r p e rf o r m a p a r t i c u la r o p e r a t io n ” [ 9 ] . A s w e w i l l s e e , d e f in i t i o n s l ik e t h i s m ig h t b e s o m e w h a t o b s o l e t e a n d w o u l d e x c lu d e m a n y t o o ls c o m m o n ly r e f e r r e d t o a s “ p r o g r a m m a b l e ” . T h u s , a m o r e c o m p r e h e n s iv e d e f in i t i o n o f p r o g r a m m in g c o u l d b e s t a t e d a s i n s t r u c t in g t h e c o m p u te r t o p e rf o r m a ta s k o r s e r ie s o f ta s k s . A d e t a i le d c o m p il a t i o n o f h is t o r i c a n d r e s e a r c h d e f in it io n s o f p r o g r a m m in g i s p r o v i d e d in [6 ] . In p r o g r a m m a b l e a p p li c a t io n s , th e r e c a n a ls o b e v a r i o u s ty p e s o f p r o g r a m m in g . N a r d i c la s s if ie s p r o g r a m m in g t o o ls a c c o r d in g t o t h e i r d e g r e e o f e x p r e s s iv e n e s s a n d in te r a c t iv e c o n s t r u c t io n [4 7 ], w h e r e e x p r e s s iv e n e s s r e f e r s t o h o w p o w e r f u l a t o o l is in t e r m s o f w h a t it c a n r e p r e s e n t, a n d in t e r a c t iv e c o n s t r u c t io n t o th e e x t e n t t o w h i c h th e t o o l h a s in t e r a c t i v e in t e r f a c e e l e m e n t s s u c h a s i c o n s , b u t t o n s , m e n u s , t o o lb a r s , e t c . R o u g h a s th is t a x o n o m y m ig h t b e , i t p r o v i d e s s o m e s o r t o f c la s s i f i c a t i o n t o o l f o r d if f e r e n t ty p e s o f p r o g r a m m a b le a p p l i c a t i o n s .

Document

Style sheets

Macintosh

”preferences”

HyperCard

buttons

keyboard

macros

spreadsheet

formulas

Parameter

setting:

customization

Behavior

concatenation

Behavior

creation

Traditional

programming

Low

High

Interactive

construction

Expressiveness

DOS/Unix

init files

aliases

Scribe

TeX

Batch

files

4GLs

Stat

packages

spreadsheet

macro lanugages

Visual

programming

Lisp in

Emacs

Lisp in

AutoCAD

HyperTalk

Document

Style sheets

Macintosh

”preferences”

HyperCard

buttons

keyboard

macros

spreadsheet

formulas

Parameter

setting:

customization

Behavior

concatenation

Behavior

creation

Traditional

programming

Low

High

Interactive

construction

Expressiveness

DOS/Unix

init files

aliases

aliases

Scribe

Scribe

TeX

TeX

Batch

files

Batch

files

4GLs

4GLs

Stat

packages

Stat

packages

spreadsheet

macro lanugages

Visual

programming

Lisp in

Emacs

Lisp in

Emacs

Lisp in

AutoCAD

Lisp in

AutoCAD

HyperTalk

F ig u r e 1 : P r o g r a m m a b le s y s te m s o r g a n iz e d b y d e g r e e of in te r a c tiv e c o n s tr u c tio n a n d e x p r e s s iv e n e s s . R e p r in te d w i th p e r m is s io n f r o m [ 4 7 ] , C o p y r ig h t © 1 9 9 3 M a s s a c h u s e t ts I n s ti tu te of T e c h n o lo g y .

(14)

T o e x e m p l i fy , s p r e a d s h e e t s h a v e a h ig h in t e r a c t iv e c o n s t r u c t i o n w h il e m a n y t r a d i t i o n a l t e x tu a l p r o g r a m m in g l a n g u a g e s h a v e a l o w in t e r a c t iv e c o n s t r u c t i o n b u t a r e v e r y e x p r e s s iv e . W it h th e s e d im e n s i o n s o f p r o g r a m m a b i li ty in m in d , t o o ls s u it a b l e f o r e n d -u s e r p r o g r a m m e r s w o u ld p r e f e r a b ly h a v e b o th a h i g h d e g r e e o f in t e r a c t iv e c o n s t r u c t i o n a n d e x p r e s s iv e n e s s . A n o th e r , m o r e p u r p o s e - b a s e d , c l a s s i f i c a t io n o f p r o g r a m m a b le e n v i r o n m e n t s d i v i d e s t o o ls in t o s y s t e m s th a t a t te m p t to t e a c h p r o g r a m m in g f o r it s o w n s a k e , a n d th o s e th a t a t te m p t t o s u p p o r t p r o g r a m m in g i n p u r s u i t o f a n o th e r g o a l [3 2 ] . I n g e n e r a l, e n d -u s e r p r o g r a m m in g t o o l s w o u ld f a l l in th e l a t t e r c a t e g o r y , s in c e th e i r p r i m a r y p u r p o s e o f t e n i s t o e m p o w e r u s e r s in a s p e c if i c t a s k th a t th e y a r e t r y in g t o p e r f o r m . In th e f o l lo w in g s e c t i o n w e w i ll l o o k a t s o m e W e b - r e l a t e d t a s k s w h e r e e n d -u s e r e m p o w e r m e n t w o u l d b e u s e fu l a n d w h a t k in d o f a p p li c a t i o n s e n d -u s e r s m i g h t w a n t t o c r e a t e .

1.4

Web-enabled Applications

T h e W o r ld W id e W e b (W W W o r “ th e W e b ” ) p r o v id e s a v a s t r e s o u r c e f o r f in d in g a n d r e t r i e v in g in f o r m a t io n , s h a r in g f i le s , c o m m u n i c a t in g w it h o th e r p e o p le a n d m u c h m o r e . W i th th e r i s e a n d e v o l v e m e n t o f th e W e b , th e r e is a ls o m o r e p o s s ib i l ity a n d in t e r e s t t o c r e a t e W e b -e n a b le d a p p l i c a t i o n s , a n d ju s t a s c h il d r e n a n d n o n - p r o f e s s io n a l p r o g r a m m e r s e n jo y c r e a t in g , c u s t o m i z in g a n d e x t e n d in g d if f e r e n t k in d s o f s o f t w a r e , th e y p r o b a b ly w o u l d l ik e t o m a k e th e ir o w n W e b -e n a b le d a p p li c a t io n s , w ith th e W e b p r o v i d in g v a r io u s w a y s o f c o ll a b o r a t in g w it h o t h e r s , s h a r in g w o r k a n d r e a c h in g a b r o a d p u b l i c . H o w e v e r , m a n y o f th e c o m m o n ly u s e d t o o ls f o r d o in g th i s a r e c o m p l i c a t e d a n d r e q u i r e d e e p t e c h n i c a l u n d e r s t a n d in g a n d k n o w le d g e o f v a r i o u s p r o g r a m m in g l a n g u a g e s . T o d is t in g u is h b e t w e e n d if f e r e n t u s e s o f W e b - r e la t e d t e r m s , th is s e c t i o n p r e s e n t s a d e f in i t i o n o f h o w t h e t e r m W e b -e n a b le d is u s e d in th i s th e s is . I t a l s o p r o v i d e s a s h o r t r e v ie w ( s e c t i o n s 1 .4 .2 - 1 .4 .5 ) th a t a i m s t o g iv e a n d i d e a ( a n d n o t in a n y w a y a c o m p l e t e l is t ) o f w h a t k in d o f a c t i v it ie s u s e r s a r e e n g a g in g in w h e n u s in g th e W e b a n d d if f e r e n t ty p e s o f W e b - e n a b l e d a p p li c a t io n s e n d -u s e r s m i g h t w a n t t o c r e a t e o r c u s t o m i z e . T h e r e v i e w is d i v id e d in t o a ) f in d in g a n d r e t r ie v in g in f o r m a t io n f r o m th e W e b , b ) p u b l is h in g a n d s h a r in g o f in f o r m a t io n , c ) in te r a c t in g w ith o th e r p e o p le a n d d ) g a m i n g .

(15)

1.4.1

Definition: Web-enabled

T h e t e r m W e b -e n a b le d in th is th e s i s r e f e r s t o a p p l i c a t i o n s th a t h a v e a W e b in t e rf a c e , th a t i s , s o m e w a y t o r e t r ie v e o r o p e r a t e o n c o n te n t f r o m t h e W e b a n d u s e t h e in f r a s t r u c t u r e o f t h e I n te r n e t to a llo w f o r in te r a c t io n w i th o th e r u s e r s . T h u s , t w o v e r y im p o r t a n t p r o p e r t i e s o f a W e b - e n a b l e d a p p l i c a t i o n a r e a ) p e r m a n e n t a c c e s s t o v a s t a m o u n t o f c o n s t a n t ly c h a n g in g a n d in c r e a s in g d a t a , a n d b ) n e t w o r k e d c o n n e c t io n s t o o th e r u s e r s . A s w e w i l l s e e , th e s e p r o p e r t i e s a r e e m p h a s i z e d in m a n y in t e r e s t in g a n d u s e f u l t o o l s a n d a p p r o a c h e s f o r p e r f o r m in g t a s k s o n th e W e b . T h e d e f in i t i o n o f “ W e b - e n a b l e d a p p l i c a t io n s ” s t a t e d a b o v e e x c lu d e s s o m e t y p e s o f a p p li c a t io n s th a t a r e c o m m o n ly in c lu d e d w h e n t a lk in g a b o u t “ W e b a p p li c a t io n s ” , s u c h a s m a n y J a v a a p p l e t s . T h is i s n o t t o s a y th a t n o J a v a a p p le t s c a n b e W e b - e n a b l e d , b u t, in th is d e f in i t i o n , r u n n in g w i th in a W e b p a g e d o e s n o t a u t o m a t i c a l ly m e a n th a t a n a p p l i c a t i o n is W e b - e n a b l e d .

1.4.2

Finding and Retrieving Information

U s in g t h e W e b t o f in d a n d r e t r i e v e in f o r m a t i o n c a n s o m e t i m e s b e d if f i c u lt a n d t i m e -c o n s u m in g , d u e t o th e c o m p l e x i ty in o r g a n iz a t i o n a n d q u a n t ity o f in f o r m a t i o n s t o r e d . T h i s h a s le d t o a lo t o f r e s e a r c h a n d d e v e l o p m e n t o f t o o l s th a t h e lp s u s e r s f in d w h a t th e y w a n t . T h e m o s t c o m m o n w a y o f f in d in g th in g s o n th e W e b is v ia s e a r c h e n g i n e s , s u c h a s G o o g l e 1, A l t a V is t a 2 , a n d A l l T h e W e b 3 . T h e t e r m " s e a r c h e n g in e " is o f t e n u s e d g e n e r i c a lly t o d e s c r ib e b o th c r a w le r -b a s e d s e a r c h e n g in e s a n d h u m a n - in d e x e d d ir e c t o r ie s . T h e la t t e r r e p r e s e n t a v e r y s m a ll p e r c e n t a g e o f s e a r c h e n g in e s ; in f a c t, a l l s e a r c h e n g in e s m e n t i o n e d a b o v e a r e c r a w l e r -b a s e d . T h is m e a n s t h a t th e y a u t o m a t i c a l ly c r a w l th e W e b a n d s t o r e th e i r f in d in g s in la r g e d a t a b a s e s , w h i c h p e o p l e th e n c a n s e a r c h . A l th o u g h s e a r c h e n g in e s a r e v e r y h e l p fu l w h e n l o o k in g f o r in f o r m a t i o n o n th e W e b , it c a n s t i ll b e d i f f i c u l t t o f in d t h e in f o r m a t i o n w a n t e d s in c e a ) i t i s h a r d f o r u s e r s t o a c c u r a t e ly e x p r e s s w h a t th e y w a n t, a n d s e a r c h e n g in e s d o n o t a d a p t th e i r s e a r c h s t r a t e g ie s a c c o r d in g t o d i f f e r e n t u s e r s , a n d b ) m o s t W e b p a g e s a r e i r r e le v a n t t o a 1 h ttp ://w w w .g o o g le .c o m 2 h ttp ://w w w .a lta v is ta .c o m 3 h ttp ://w w w .a llth e w e b .c o m

(16)

p a r t i c u l a r u s e r ’s in t e r e s t s [ 1 0 ] . W e b c r a w le r s ( a ls o r e f e r r e d t o a s a g e n t s , s p id e r s o r r o b o t s ) a i m t o b e u s e f u l f o r u s e r s b y p r o v i d in g p e r s o n a l i z e d a n d c u s t o m iz e d in f o r m a t i o n , a n d c a n b e u s e d f o r , e .g ., d a t a m in in g , v i s u a li z a t io n o r W e b -b r o w s in g a s s i s t a n c e [3 7 ] [ 1 0 ] . W h i l e s e a r c h e n g in e s a n d W e b c r a w le r s c a n b e s e e n a s s t a n d a r d t o o ls f o r f in d in g a n d r e t r i e v in g v a r i o u s k in d s o f in f o r m a t i o n o r f il e s o n t h e W e b , th e r e a r e a l s o t o o ls th a t p r o v i d e a l t e r n a t i v e a p p r o a c h e s t o th e s e t a s k s . S u c h t o o l s in c lu d e C o ll a g e M a c h in e 4 [ 3 3 ] a n d N .A . G .5 . C o l la g e M a c h in e i s a t o o l w h i c h r e t r i e v e s m e d i a e le m e n t s f r o m t h e W e b a n d a r r a n g e s th e m in t o a c o l la g e . B y o r g a n i z in g a n d m a n a g in g th e r e t r ie v e d e le m e n t s in d if f e r e n t w a y s , th e u s e r in f o r m s th e s y s t e m s o f w h a t h e o r s h e is in t e r e s t e d in , a n d th e c o l la g e e v o l v e s o v e r t i m e . N .A . G . c r e a t e s a s i m i la r c o l l a g e , h o w e v e r w i th a u d io f i le s . B a s e d o n u s e r q u e r i e s , N .A . G tu r n s th e p r o c e s s o f s e a r c h in g a n d d o w n lo a d in g m p 3 f il e s in t o a “ c h a o t i c m u s i c a l c o l la g e ” 5 .

1.4.3

Publishing and Sharing Information

T o d a y , a n y u s e r w i th a c c e s s t o a c o m p u t e r a n d a n In t e r n e t c o n n e c t io n c a n b e c o m e a n in f o r m a l o n lin e a u th o r a n d p u b li s h e r . R e c e n t ly , t h e in t e r e s t f o r d o in g th is s e e m s t o h a v e e x p lo d e d w o r l d w i d e w h i c h h a v e g i v e n b i r th t o p h e n o m e n a s u c h a s b l o g s ( W e b l o g s ) a n d W i k is ( o n lin e e d i t a b le e n c y c l o p e d ia s ) . B lo g s a r e W e b p a g e s , in s o m e s e n s e s im il a r t o d ia r ie s , w h i c h l a r g e ly c o n s i s t o f c it a t io n s o r p o in t e r s t o o th e r W e b p a g e s , o f t e n a l o n g w i th s o m e th o u g h t s a n d r e f l e c t i o n s . R e tu r n in g t o th e is s u e o f a u th o r in g , s o m e r e s e a r c h h a s r e a li z e d th e u s e f u ln e s s o f th e p o s s ib il i ty t o in t e r a c t w i th o th e r u s e r s a n d d e v e l o p e d t o o ls f o r d is t r ib u t e d a u th o r in g [2 6 ] . A f r e q u e n t ly p e r f o r m e d a c t iv i ty i s f i le - s h a r in g . T h e b a s is f o r s h a r in g f i le s v i a t h e In t e r n e t is th e f i le t r a n s f e r p r o t o c o l ( F T P ) , t h u s th e p r o t o ty p i c a l o f a f il e s h a r in g a p p l i c a t io n i s a n F T P -c l ie n t, b u t t o d a y m a n y t o o l s a n d o n l in e s e r v i c e s p r o v id e s b u il t - in m e c h a n i s m s f o r th e e x c h a n g e o f f il e s ( e .g . I C Q 6, K a z a a 7, D ir e c t C o n n e c t 8 ) . 4 h ttp ://w w w .c s d l.ta m u .e d u / e c o lo g y / c o m b in F o rm a tio n / 5 N e t w o r k A u r a liz a tio n fo r G n u te lla : h ttp :// tu r b u le n c e .o r g /W o r k s / fr e e m a n / 6 h ttp ://w w w .ic q .c o m 7 h ttp ://w w w .k a z a a .c o m 8 h ttp ://w w w .n e o -m o d u s .c o m

(17)

1.4.4

Interacting With Other Users

W i th m a n y o n lin e p la c e s f o r s o c i a l in t e r a c t i o n , f r o m t e x t -b a s e d n e w s g r o u p s a n d m a i l in g li s t s t o v ir tu a l c i t i e s o r c o m m u n i t i e s w h e r e u s e r s c a n in t e r a c t a n d t a l k t o e a c h o th e r th r o u g h a v a t a r s , th e W e b c a n p la y a n im p o r t a n t p a r t in e n a b l in g p e o p le t o in t e r a c t w i th e a c h o th e r [2 4 ] . T h e r e a r e a ls o m a n y n a t i v e a p p l i c a t i o n s t h a t p r o v id e p o s s ib i l it ie s t o c o m m u n i c a t e a n d in t e r a c t w ith o th e r p e o p l e in t e x t, a u d i o o r v i d e o . T h e s e in c lu d e e - m a i l, c h a t c li e n t s ( e .g . I C Q a n d I R C 9 ) , v a r io u s ty p e s o f v o i c e c o m m u n i c a t i o n t o o ls a n d m o r e a d v a n c e d r e a l - t i m e c o l la b o r a t i o n t o o ls s u c h a s M i c r o s o f t N e t M e e t in g 1 0 a n d G r o o v e 1 1 .

1.4.5

Gaming

T h e c o n v e r g e n c e o f c o m p u t e r - a n d v i d e o g a m e s a n d th e In t e r n e t c o n t in u e s , a n d in t e r e s t f r o m g a m e - d e v e l o p e r s in u s in g t h e In t e r n e t t o a d d t o th e g a m in g e x p e r i e n c e is c o n s t a n t ly g r o w in g . M a n y g a m e s t o d a y – f r o m t e x t -b a s e d M U D s 12 t o 3 D - M M O R P G s 1 3 – u s e th e I n t e r n e t f o r s u p p o r t in g e .g . m u lt ip la y e r m o d e s a n d in - g a m e r e a l- t i m e v o i c e c o m m u n i c a t i o n . F u r th e r , th e r e a r e p r o b a b ly h u n d r e d s o f W e b s i t e s w h e r e a u s e r c a n p l a y a g a m e d i r e c t ly t h r o u g h th e i r b r o w s e r . A s t e c h n o lo g y t o d e v e l o p s u c h g a m e s b e c o m e s e a s ie r t o u s e , m o r e a n d m o r e p e o p l e w i ll b e a b l e t o v is it a s w e l l a s c r e a t in g s u c h s i t e s th e m s e lv e s . 9 h ttp ://w w w .ir c .o r g 10 h ttp ://w w w .m ic r o s o f t .c o m /w in d o w s / n e tm e e tin g / 11 h ttp ://w w w .g r o o v e .n e t 12 M u ltip le U s e r D im e n s io n , M u ltip le U s e r D u n g e o n , o r M u ltip le U s e r D ia lo g u e 13 M a s s iv e M u ltip la y e r O n lin e R o le P la y in g G a m e s

(18)
(19)

Chapter 2

Survey

W e n o w h a v e a n i d e a o f w h a t t y p e s o f W e b - e n a b l e d a p p l i c a t io n s e n d -u s e r s m i g h t w a n t t o c r e a t e . In o r d e r t o u n d e r s t a n d th e c u r r e n t s t a t e o f w o r k th a t h a s b e e n d o n e o n p r o v id in g e n d -u s e r s w i th th e m e a n s t o c r e a t e th e i r o w n W e b - e n a b l e d a p p l i c a t i o n s , th e f o ll o w in g r e v ie w d e s c r ib e s a ) h o w s u c h a p p l ic a t io n s a r e c o m m o n ly c r e a te d t o d a y , b ) v a r i o u s te c h n iq u e s f o r e m p o w e r in g e n d - u s e r s t o b u i ld s o f t w a r e a p p li c a t io n s , a n d c ) e x is t in g e n d - u s e r to o ls f o r c r e a t i n g W e b -e n a b le d a p p lic a t io n s . S in c e a lm o s t n o t o o l s p r o v id e e n d -u s e r s w it h m o r e g e n e r a l m e a n s t o c r e a t e a w id e r a n g e o f d if f e r e n t ty p e s o f W e b - e n a b le d a p p l i c a t i o n s , s e c t io n 2 .3 a c c o u n t s f o r t o o l s th a t s u p p o r t m o r e s p e c if i c a r e a s o f W e b -e n a b l e d a p p l i c a t io n d e v e l o p m e n t, d i v i d e d in t o th e p r e v i o u s ly d e s c r ib e d f o u r c la s s e s o f a p p li c a t io n s th a t e n d -u s e r s m ig h t w a n t t o c r e a t e . In g e n e r a l, w h a t w e s e e i s th a t th e r e a r e s o m e p o w e r f u l a n d s o m e e a s y - t o - u s e t o o ls f o r d e v e l o p in g W e b - e n a b l e d a p p l i c a t i o n s – b u t a lm o s t n o n e t h a t a r e b o th . W e a ls o s e e h o w d i f f e r e n t t e c h n i q u e s c a n m a k e p r o g r a m m in g l a n g u a g e s a n d e n v i r o n m e n t s e a s i e r t o u s e a n d h o w m e t a p h o r s a n d “ in t e ll ig e n t ” e le m e n t s c a n h e l p u s e r s in d i f f e r e n t w a y s w h e n c r e a t in g th e ir o w n a p p l i c a t io n s .

2.1

How are Web-enabled Applications Created Today?

T h e r e is a w i d e r a n g e o f d e v e l o p m e n t t o o l s c o m m o n ly u s e d f o r c r e a t in g W e b - e n a b le d a p p li c a t io n s s u c h a s g a m e s , t o o ls f o r f in d in g o r s h a r in g in f o r m a t io n o r c o m m u n i c a t in g a n d in t e r a c t in g w i th o th e r p e o p l e . T h e n o t io n o f W e b p r o g r a m m in g la n g u a g e s is r e a l ly w i d e a n d

(20)

q u i t e v a g u e b u t u s u a l ly in c lu d e s l a n g u a g e s , p r o t o c o ls a n d t o o l s s u c h a s J a v a a n d J a v a S c r i p t P e r l, P H P , C G I , A S P , X M L , H T M L t o n a m e a f e w . T h e s e t o o ls w i l l n o t b e d e s c r ib e d in d e t a i l h e r e . A m o r e e la b o r a t e d r e v ie w a n d e v a lu a t i o n o f th e m o s t i m p o r t a n t W e b p r o g r a m m in g la n g u a g e s is a v a i la b l e in [6 0 ] . In g e n e r a l, u s in g th e s e t o o l s t o c r e a t e W e b - e n a b l e d a p p l i c a t i o n s s u c h a s v a r io u s k in d s o f g a m e s , a p p li c a t i o n s f o r f in d in g o r s h a r in g in f o r m a t io n o r f o r c o m m u n i c a t in g a n d in t e r a c t in g w ith o t h e r p e o p l e o f t e n r e q u i r e d e e p t e c h n i c a l a n d p r o g r a m m in g k n o w l e d g e . W e n o w tu r n t o l o o k a t w h a t w o r k th a t h a s b e e n d o n e o n p r o v i d in g n o n - p r o g r a m m in g e x p e r t s w i th th e m e a n s t o c r e a t e th e ir o w n s o f t w a r e .

2.2

Empowering End-Users to Build Software

Applications

M a n y r e s e a r c h e r s s u g g e s t th e m a in r e a s o n w h y t r a d i t i o n a l p r o g r a m m in g is h a r d a s th e p r e s e n c e o f a g a p b e t w e e n a u s e r ’s m e n t a l m o d e l o f a p r o b l e m a n d th i s in a f o r m a c c e p t e d b y a c o m p u t e r [6 ] [5 5 ] [4 5 ] [4 9 ] . T o b r id g e th i s g a p a n d m a k e p r o g r a m m in g e a s ie r th e r e a r e b a s i c a l ly t w o w a y s : m o v in g th e s y s t e m c l o s e r t o th e u s e r o r m o v in g th e u s e r c lo s e r t o th e s y s t e m [ 5 5 ] . E n d -u s e r p r o g r a m m in g a i m s t o p r o v i d e c o m p u t e r u s e r s w i th o u t a f o r m a l p r o g r a m m in g b a c k g r o u n d w i th th e p o s s ib i li ty t o c r e a t e th e i r o w n s o f t w a r e b y u t il iz in g v a r io u s t e c h n i q u e s t o m o v e th e s y s t e m c l o s e r t o th e u s e r . D e s ig n e d t o b e e a s y t o l e a r n a n d w r it e , S m a l lT a l k [3 1 ] w a s , t o g e th e r w it h t h e L o g o p r o g r a m m in g la n g u a g e [ 5 0 ] ( d e s c r ib e d in s e c t io n 3 .2 ), a m o n g th e f i r s t e n d - u s e r p r o g r a m m in g la n g u a g e s w h e n i t f ir s t a p p e a r e d in 1 9 7 2 . S m a l lT a l k in c lu d e d a s i m p le y e t h ig h ly e x p r e s s iv e s y n t a x a n d a ls o s e t t h e s t a n d a r d f o r o b j e c t -o r i e n t e d p r o g r a m m in g . T h e e s s e n c e o f e n d -u s e r p r o g r a m m in g i s n i c e ly c a p tu r e d b y A l a n K a y , w h o in th e f o r e w o r d o f [1 6 ] s t a t e s th a t “ O n e s h o u ld n o t h a v e to le a r n a b o u t C a r n o t c y c le s o r o f c o m b u s t io n e n g i n e s / - -/ i n o r d e r to d r i v e a c a r ” , th e p o in t b e in g th a t e n d - u s e r s w h o w a n t t o c r e a t e o r c u s t o m i z e th e i r o w n s o f t w a r e s h o u l d n o t h a v e t o l e a r n a b o u t t e c h n i c a l i t i e s s u c h a s m e m o r y a l l o c a t i o n o r t h r e a d h a n d lin g . M o r e s p e c if i c a lly , m o t i v a t i o n f o r p r o g r a m m a b le a p p l i c a t io n s f o r e n d -u s e r s i s th a t th e y a ll o w a )

(21)

e x p lo r a t io n o f c o n c e p t s n e v e r c o n c e iv e d b y th e s y s t e m d e s ig n e r s [ 2 0 ] a n d b ) th e c r e a t io n o f a p p li c a t io n s in a n e a s y w a y [ 1 9 ] [4 7 ] . A th i r d c e n t r a l id e a i s t o c ) c h a n g e th e r o le o f th e u s e r s f r o m c o n s u m e r s to p r o d u c e r s ; f r o m p a s s i v e a b s o r b e r s o f in f o r m a t i o n t o a c t i v e c r e a t o r s [1 ] [1 8 ] [2 0 ] [ 2 1 ] . S in c e th e r e q u i r e m e n t s o f e n d - u s e r p r o g r a m m in g e n v ir o n m e n t s d i f f e r w i d e ly d e p e n d in g o n th e u s e r s a n d t h e i r p u r p o s e s , th e r e is n o s in g le g e n e r a l m e th o d o r a p p r o a c h o f e n d -u s e r p r o g r a m m in g [2 5 ] . I n s t e a d , th e r e i s a v a r ie ty o f t e c h n i q u e s , w h i c h w e w il l l o o k a t b e l o w . In g e n e r a l, th e s e t e c h n i q u e s a n d th e i r a t t e m p t s t o m a k e th e c r e a t io n o f a p p l i c a t i o n s f o r e n d -u s e r s e a s i e r c a n b e d iv i d e d in t o a ) s im p lif y in g th e p r o g r a m m i n g la n g u a g e , b ) m a k i n g th e p r o g r a m m in g e n v ir o n m e n t m o r e u s a b le a n d c ) in t r o d u c in g “ a lt e r n a t iv e ” p r o g r a m m in g te c h n i q u e s .

2.2.1

Programming Language Design

A u n i v e r s a l c h a r a c t e r is t i c o f p r o g r a m m in g s i tu a t io n s is th a t a p r o g r a m i s r e p r e s e n t e d in s o m e n o t a t i o n [6 ] . A s t r a d it io n a l t e x t -b a s e d p r o g r a m m in g i s h a r d it w o u ld p r o b a b ly b e a b a d i d e a t o e m b e d a l a n g u a g e s u c h a s C / C + + , J a v a o r P e r l in a t o o l f o r n o n - p r o g r a m m in g e x p e r t s . T o m a k e p r o g r a m m in g m o r e a c c e s s ib l e f o r e n d - u s e r s , a t t e m p t s h a v e b e e n m a d e t o s im p l i fy th e l a n g u a g e u s e d in p r o g r a m m a b l e a p p l i c a t i o n s , b y a ) m a k in g p r o g r a m m in g m o r e s i m ila r to w a y s o f e x p r e s s io n th a t p e o p le u s e in n a t u r a l s p o k e n o r w r i t t e n la n g u a g e s a n d b ) d e v e lo p in g “ li g h t w e i g h t ” s c r i p t in g a n d m a c r o la n g u a g e s . W e a l s o l o o k a t s o m e a d v a n t a g e s a n d d r a w b a c k s w i th g e n e r a l p u r p o s e a n d d o m a in s p e c i f i c p r o g r a m m in g l a n g u a g e s .

2.2.1.1

Making the Language More Natural

L e v e r a g in g u s e r s ’ e x i s t in g l a n g u a g e k n o w le d g e h a s b e e n f r e q u e n t ly s u g g e s t e d a s a n e f f e c t i v e s t r a t e g y w h e n d e s i g n in g p r o g r a m m in g l a n g u a g e s f o r c h il d r e n , e n d -u s e r s , o r o th e r s n e w t o c o d in g [8 ] . S in c e n a tu r a l l a n g u a g e ( v o c a l o r w r i t t e n ) m ir r o r s o u r n o r m a l w a y o f in t e r a c t in g w i th o u r e n v i r o n m e n t w e d o n o t h a v e t o le a r n a n e w s y n t a x o r g r a m m a r ; w e a lr e a d y k n o w h o w t o t a l k a n d w r i t e . W h il e i t h a s b e e n a r g u e d th a t in f o r m a l c o n v e r s a t i o n is a “ p a r a d i g m c a s e ” f o r h u m a n c o m p u t e r in t e r a c t io n [4 7 ], r e s e a r c h o n th e u s e o f u n c o n s t r a in e d n a tu r a l la n g u a g e h a s r e p o r t e d n u m e r o u s d i f f i c u lt ie s w i th a c tu a lly i m p l e m e n t in g th i s in t o a s y s t e m . T w o m a j o r o b s t a c le s in c lu d e s e m a n t i c s a n d w o r l d k n o w le d g e [4 0 ] . T h e p r o b l e m o f s e m a n t i c s h a s t o d o w i th th e e x t e n t t o w h i c h “ m e a n in g ” ( t o a w o r d , p h r a s e o r

(22)

s e n t e n c e ) i s a t t a c h e d t o th e c o n t e x t in w h i c h th e c o n v e r s a t i o n t a k e s p l a c e . A n d a s f o r w o r l d k n o w le d g e , m u c h o f w h a t h a p p e n s d u r in g a n y c o n v e r s a t i o n - l ik e a c t iv i ty is d e p e n d e n t o n s h a r e d e x p e r ie n c e s a n d p r e v i o u s k n o w le d g e , a ls o r e f e r r e d t o a s c o m m o n g r o u n d [1 1 ] . M o s t h u m a n s s e e m t o h a v e v e r y l i t t l e c o m m o n g r o u n d w i th c o m p u t e r s . T h e r e a r e s o m e g e n e r a l s u g g e s t i o n s o n h o w p r o p e r t i e s o f n a tu r a l la n g u a g e s c a n b e e m p l o y e d w i th in p r o g r a m m a b le a p p li c a t io n s [4 0 ] [ 8 ] , a n d m a n y d e a l w i th v a r i o u s r e s t r i c t io n s a n d c o n s t r a in t s . A s ju s t p o in t e d o u t , th e r e a r e p r o b le m s w ith u s in g s p o k e n o r w r it t e n E n g li s h a s a p r o g r a m m in g l a n g u a g e , b u t w ith s o m e c o n s t r a in t s , s u c h a s l i m i t e d v o c a b u la r y , s e n t e n c e l e n g th , p r o h ib it io n s o f c o m p l e x c o n s t r u c t i o n s [4 0 ] a n d a s o m e w h a t f o r m a li z e d s y n t a x [8 ] [4 9 ] th e u s e o f a n a tu r a l - lik e la n g u a g e m a y p r o v e b e n e f i c i a r y f o r e n d -u s e r p r o g r a m m in g e n v ir o n m e n t s . S o m e t o o ls ( e .g . M O O S E [ 7 ] , H y p e r T a l k 14 a n d M a c r o m e d i a D i r e c t o r 15 ) h a v e s h o w n h o w th i s a p p r o a c h c a n b e s u c c e s s fu l ly e m p l o y e d . In M a c r o m e d i a D i r e c t o r , f o r in s t a n c e , th e u s e r c a n s w i t c h b e t w e e n a J a v a o r C + + - li k e d o t -s y n ta x a n d a m o r e E n g lis h - lik e w a y o f e x p r e s s io n . T h e f o ll o w in g L in g o -c o d e s h o w s h o w t o m a k e a g r a p h i c a l o b j e c t 5 0 % t r a n s p a r e n t u s in g b o th w a y s :

sprite(8).blend = 50

set the blend of sprite 8 to 50

T h is a l lo w s b e g in n e r s t o c r e a t e th e i r o w n b e h a v i o r s a n d s c r i p t s in a s im p l e w a y , a n d a t th e s a m e t i m e , e x p e r ie n c e d C + + o r J a v a -p r o g r a m m e r s w i ll f e e l a t h o m e , u s in g t h e d o t - s y n t a x .

2.2.1.2

Scripting and Macro Languages

T h e b o u n d a r y b e t w e e n s c r i p t in g l a n g u a g e s a n d t r a d it io n a l o n e s is s o m e w h a t b lu r r y [3 0 ] [ 5 ] b u t b a s i c a lly th e f o r m e r a r e “ l i g h t w e ig h t ” la n g u a g e s , d e s ig n e d f o r q u i c k , s h o r t p r o g r a m s , a n d m e a n t t o b e e a s ie r t o le a r n a n d s im p l e r a n d f a s t e r t o u s e [5 ] . T h e s e p r o p e r t i e s m a k e th e m in t e r e s t in g in th e c o n t e x t o f e n d - u s e r p r o g r a m m in g . S c r i p t in g 14 C re a t e d b y A p p le , s e e ‘ A p p le C o m p u t e r , I n c . H y p e r C a r d U s e r's G u id e ’, 1 9 8 7 15 h ttp ://w w w .m a c r o m e d ia .c o m

(23)

l a n g u a g e s th a t a r e c o m m o n ly u s e d f o r c r e a t in g W e b - a p p l i c a t i o n s in c lu d e C o m p a q ’s W e b L a n g u a g e 1 6 J a v a S c r ip t a n d P e r l . H o w e v e r , th o u g h a l l o f th e s e s t r iv e t o b e e a s y - t o - u s e m e a n s f o r c r e a t in g W e b - a p p l i c a t io n s , th e y a r e s t il l q u it e c o m p le x a n d b y s o m e a r g u e d t o b e n o t r e a l ly w e ll s u it e d f o r n o n - p r o g r a m m in g e x p e r t s [4 1 ] . A n a t t e m p t t o m a k e J a v a S c r i p t m o r e a c c e s s ib le f o r e n d -u s e r s i s b o o k m a r k l e t s 1 7; s m a l l J a v a S c r i p t a p p li c a t io n s th a t a r e c o n t a in e d w i th in a b o o k m a r k , w h i c h c a n b e e d i t e d , s a v e d a n d u s e d in th e s a m e w a y a s n o r m a l b o o k m a r k s . T h e s e a r e v e r y u s e fu l f o r s i m p le t a s k s s u c h a s c h a n g in g th e b a c k g r o u n d c o lo r o f a W e b p a g e , b u t w h e n i t c o m e s t o m o r e c o m p l i c a t e d t a s k s li k e c o u n t in g w o r d s o n a W e b p a g e th e l a c k o f f e e d b a c k a n d li t t le o v e r v ie w in th e U R L - f ie ld o f a b o o k m a r k m a k e s i t h a r d t o c r e a t e b o o k m a r k le t s o f m o r e c o m p l e x n a tu r e . F u r th e r , th e s y n t a x f o r a g i v e n b e h a v io r m a y d i f f e r b e t w e e n d i f f e r e n t W e b b r o w s e r s . A p p li c a t io n s th a t s u p p o r t m a c r o r e c o r d in g p r o v id e u s e r s w i th a w a y t o r e c o r d a s e q u e n c e o f a c t io n s . T h is i s d o n e b y in v o k in g a “ S t a r t R e c o r d in g ” c o m m a n d , p e r f o r m in g a s e r i e s o f a c t i o n s , a n d th e n in v o k in g a “ S t o p R e c o r d in g ” c o m m a n d . T h e u s e r c a n th e n “ r e p l a y ” th e a c t i o n s e q u e n c e w i th a “ R e d o ” c o m m a n d , u s in g a s h o r t c u t s u c h a s a m o u s e c l i c k o r a k e y - p r e s s . B e s id e s r e c o r d in g s e q u e n c e s o f d i r e c t m a n i p u l a t i o n a c t i o n s , m a c r o s c a n a l s o b e p r o g r a m m e d t e x tu a lly . T h e s t r e n g th o f m a c r o s i s th a t th e y r e q u i r e l it t l e t e c h n i c a l k n o w l e d g e – th e u s e r s im p ly r e c o r d s n o r m a l in t e r a c t i o n w it h th e a p p l i c a t i o n . T h e p r i m a r y b e n e f it o f m a c r o s i s th a t th e u s e r c a n a u t o m a t e c o m m o n t a s k s .

2.2.1.3

General Purpose vs. Specific Purpose Languages

W h e n d e v e l o p in g a t o o l in w h i c h u s e r s c a n m a k e th e i r o w n p r o g r a m s , th e r e i s th e o p t io n o f w h e th e r t o b a s e i t o n a n e x i s t in g g e n e r a l p r o g r a m m in g l a n g u a g e , o r t o c r e a t e a n e w , s p e c i a l - p u r p o s e la n g u a g e . T h e o p in i o n s r e g a r d in g th is m a t t e r d i f f e r w i d e ly . S o m e p r e v io u s r e s e a r c h d i s m i s s e s t h e m o r e g e n e r a l - p u r p o s e w a y o f p r o g r a m m in g a n d s u g g e s t s th a t th e o n ly a p p r o a c h th a t w il l s u c c e e d in p r a c t i c e i s d o m a in - s p e c if i c p r o g r a m m in g e n v i r o n m e n t s [5 5 ] . T h i s p o in t o f v ie w 16 F o r m e r ly k n o w n a s W e b L 17 h ttp ://w w w .b o o k m a r k le ts .c o m

(24)

is p r im a r i ly s u p p o r t e d b y th e a r g u m e n t th a t a m o r e s p e c ia l iz e d r e p r e s e n t a t io n m o r e c l o s e ly m a p s t o t h e u s e r s ’ c o n c e p t u a l iz a t i o n o f th e p r o b l e m , th u s h a v in g m o r e p r o b l e m s o lv in g p o w e r [5 5 ] . H o w e v e r , o n e p r o b l e m w i th th is a p p r o a c h is th a t e n d -u s e r s w il l f in d it d if f i c u l t t o b r in g k n o w l e d g e f r o m o n e e n v i r o n m e n t t o a n o th e r , a n d h a v e t o le a r n a n e w s y n t a x o r m e th o d o f in t e r a c t i o n f o r e v e r y n e w t o o l th e y u s e . E is e n b e r g [1 9 ] f o r in s t a n c e , h a s s t a t e d s t r o n g a d v a n t a g e s o f s t a r t in g w i th a “ s t a n d a r d ” l a n g u a g e a n d e x t e n d in g i t f o r u s e w ith in a p a r t i c u l a r d o m a in , a s o p p o s e d t o c r e a t in g a u n iq u e a d h o c la n g u a g e . B e s i d e s im m e d i a t e ly h a v in g a c c e s s t o a v a s t a m o u n t o f g e n e r a l p r o g r a m m in g c o n s t r u c t s , th i s a l s o m e a n s th a t a n y u s e r w h o l e a r n s th e b a s i c s o f f o r in s t a n c e P a s c a l w o u ld q u i c k ly b e a b l e t o g a in p r o f i c ie n c y o f a n y P a s c a l-b a s e d p r o g r a m m a b le t o o l . W h a t c a n b e s e e n a s a th ir d a p p r o a c h t o th e p r o b le m o f w h e th e r t o u s e a g e n e r a l o r a s p e c i f i c la n g u a g e is t o s e t m e a n in g f u l ta s k s w i th i n th e d o m a in o f t h e u s e r ’s i n te r e s t s a s a s t a r t in g p o in t a n d in t h e p r o c e s s o f d e s i g n in g p r o g r a m m in g l a n g u a g e s h a v e th e o v e r r id in g g o a l t o s u p p o r t u s e r s ’ s k il ls a n d in t e r e s ts [4 7 ] [ 1 9 ] . T h u s , r a th e r t h a n s t a t in g th a t o n e a p p r o a c h i s g e n e r a lly p r e f e r a b l e o v e r th e o t h e r , th e s e u s e r s k i l ls a n d in t e r e s t s s h o u l d g u i d e t h e d e s ig n o f b o th f o r m a n d p r o p e r t i e s o f th e l a n g u a g e .

2.2.2

Programming Environment Design

In th e p r e v i o u s s e c t i o n w e l o o k e d a t s o m e im p o r t a n t c o n s i d e r a t io n s r e g a r d in g p r o g r a m m in g la n g u a g e d e s i g n . A l th o u g h th e r e a r e s o m e u s e fu l a n d in t e r e s t in g w a y s t o m a k e th e la n g u a g e o f p r o g r a m m a b le a p p li c a t i o n s s im p l e r , s o m e o f th e s e t o o ls h a v e b e e n c r i t i c i z e d f o r s t il l b e in g t o o h a r d t o l e a r n f o r b e g in n e r s [4 6 ] . A d i f f e r e n t a p p r o a c h i s t o f o c u s o n e n v ir o n m e n t r a th e r t h a n la n g u a g e d e s ig n , w h i c h o f t e n in c lu d e s c o m p r o m i s in g s o m e e x p r e s s i v e n e s s f o r e a s e - o f -u s e , u t i li z in g a v a r ie ty o f m e t a p h o r s a n d g r a p h i c a l in t e r f a c e e le m e n t s . T h is s e c t io n d e s c r ib e s h o w g r a p h i c a l u s e r in t e r f a c e s a n d m e t a p h o r s c a n e m p o w e r u s e r s w h e n in t e r a c t in g w i th a s y s t e m .

2.2.2.1

Graphical User Interfaces

S y s t e m s th a t a r e e a s y t o le a r n a n d u s e o f t e n h a v e a d ir e c t m a n i p u la t io n f r o n t e n d , w h i c h “ s ig n if ic a n t ly r e d u c e s th e a m o u n t o f n e c e s s a r y s c r i p t in g ” [4 6 ] o r p r o g r a m m in g . W h i l e a w e l l d e s i g n e d p r o g r a m m in g l a n g u a g e m a y p r o v id e a g o o d m a t c h b e t w e e n l a n g u a g e p r i m it i v e s a n d o u r

(25)

l a n g u a g e o f th o u g h t , t w o im p o r t a n t b e n e f i t s o f d ir e c t m a n i p u l a t i o n in t e r f a c e s a r e e a s e - o f - l e a r n in g a n d e a s e - o f -u s e [1 9 ] . I t is f o r in s t a n c e b o t h e a s y t o l e a r n a n d e a s y t o r e m e m b e r t h a t a b u t t o n w ith a n i m a g e o f a p e n h a s s o m e th in g t o d o w ith d r a w in g , a n d t h a t a b u t t o n w i th a n i m a g e o f a p r in t e r m e a n s p r in t in g th e d o c u m e n t . T h e r e a r e m a n y p r o g r a m m a b le t o o ls th a t il lu s t r a t e th e b e n e f it s o f g r a p h i c a l u s e r in t e r f a c e s . N o t p r e v i o u s ly r e f e r r e d t o in a n e n d - u s e r p r o g r a m m in g c o n t e x t i s P D P + + [4 8 ], a s y s t e m f o r c r e a t in g a r t if i c ia l n e u r a l n e t w o r k s im u l a t i o n s . T h e s y s t e m i s e a s y e n o u g h f o r n o v i c e u s e r s ( s tu d e n t s o f n e u r a l n e t w o r k s ), w h o v i a t h e g r a p h i c a l in t e r f a c e c a n s e t u p , t r a in a n d t e s t a n e t w o r k w i th o u t h a v in g t o d e a l w i th m u c h o f th e c o m p l e x m a th e m a t i c s a n d a l g o r i th m s o f n e u r a l n e t w o r k s , b u t a t th e s a m e t i m e , it is v e r y p o w e r fu l a n d f le x ib l e e n o u g h f o r r e s e a r c h u s e . T h e m a j o r d i s a d v a n t a g e o f d ir e c t m a n i p u l a t io n in t e r f a c e s h a s b e e n a r g u e d a s th e d if f i c u l ty t o e x p r e s s c o n d it io n a l it y a n d i t e r a t i o n g r a p h i c a l ly [4 6 ] .

2.2.2.2

Metaphors

A s p r e v i o u s ly in d i c a t e d , p e o p l e t e n d t o p e r f o r m b e t t e r a t t a s k s w h e n th e p r o b le m i s f r a m e d w it h in a f a m i l ia r c o n t e x t . T h u s , th e g e n e r a l i d e a o f b a s in g a t o o l a n d th e in t e r a c t i o n w i th th a t t o o l o n a m e t a p h o r i s th a t u s e r s w i ll o f t e n f in d i t e a s i e r t o in t e r a c t w ith th e t o o l, b e c a u s e th e y c a n t a k e a d v a n t a g e o f p r e v i o u s k n o w le d g e a n d e x p e r ie n c e s . F u r th e r , a s a r g u e d b y B l a c k w e ll [6 ] : “ [ I ]f w e c a n e x p lo it c o m m o n a lity b e tw e e n c o n v e n t io n a lly r e c o g n iz e d p r o g r a m m in g a c t iv ity a n d o th e r c o n te x ts o f h u m a n to o l u s e , th is o ff e r s th e o p p o r t u n ity b o th to a p p ly in s ig h ts f r o m th e w o r ld o f p r o g r a m m in g to o th e r f ie ld s of to o l d e s ig n , a n d a ls o to a d o p t c r e a t iv e s o lu t io n s f o r p r o g r a m m in g to o ls th a t h a v e b e e n id e n tif ie d in a ty p ic a l p r o g r a m m in g s it u a t io n s . ” T h i s s u g g e s t s t h a t m e a n in g fu l m e t a p h o r s c a n b e e s p e c i a lly i m p o r t a n t in p r o g r a m m a b le t o o l s f o r n o n - p r o f e s s io n a l p r o g r a m m e r s a n d c h il d r e n , s in c e i t c a n p r o v i d e th e m w i th a m o r e c o n c r e t e w a y o f th in k in g a b o u t o f t e n a b s t r a c t a n d c o m p l e x c o m p u t a t io n a l c o n s t r u c t s . S o m e t o o l s s u c h a s L o g o [ 5 0 ] a n d L i v e W o r l d [ 5 9 ] h a v e u s e d m e t a p h o r s t o m a k e o b je c t s m o r e r e a l f o r th e u s e r . T r a v e r s [5 9 ] f o r in s t a n c e , in t r o d u c e s t h e a n i m a t e m e t a p h o r , u s in g a n i m a t e t e r m s t o d e s c r ib e th e a c t iv ity o f a m a c h in e o r o t h e r n o n - li v in g o b j e c t a n d

(26)

s u g g e s t s th a t p i c t u r in g th e c o m p o n e n t s o f p r o g r a m s a s o b j e c t s th a t c a n h a v e e x p l i c i t g o a l s , a d e g r e e o f a u t o n o m y a n d th e a b il it y t o d y n a m i c a lly r e a c t t o th e ir s u r r o u n d in g s c a n b e u s e fu l t o m a k e th e o p e r a t i o n s o f c o m p le x s y s t e m s s u c h a s c o m p u t e r s m o r e c o m p r e h e n s ib le . I n L o g o , th e u s e r c o n t r o l s a T u r t le t o d r a w g r a p h i c s o r c r e a t e a n im a t i o n s ( T h e L o g o p r o g r a m m in g l a n g u a g e a n d th e T u r t le m e t a p h o r w i ll b e d e s c r ib e d in s e c t io n 3 .2 ) .

2.2.3

Alternative Approaches to Programming

A p p r o a c h e s th a t c a n b e r e g a r d e d a s “ a lt e r n a t i v e ” , w i th r e s p e c t t o t r a d i t i o n a l p r o g r a m m in g , a i m t o f r a m e t h e a c t i v it y o f p r o g r a m m in g in a m o r e in tu i t i v e , u s a b l e o r m o r e e a s i ly g r a s p e d m a n n e r . E x a m p le s o f s u c h a p p r o a c h e s in c lu d e g e s t u r e -b a s e d p r o g r a m m in g [6 2 ], v is u a l p r o g r a m m in g [2 9 ], p r o g r a m m in g b y p h y s i c a l m a n i p u l a t i o n [4 4 ] a n d e v e n u s in g a m i x tu r e o f s e v e r a l d i f f e r e n t c o n c u r r e n t ly a c t iv e p r o g r a m m in g p a r a d i g m s [1 3 ] . T h is s e c t io n d e s c r ib e s a n a p p r o a c h th a t s e e m s e s p e c ia l ly in t e r e s t in g a n d u s e fu l w it h in a W e b c o n t e x t; th e u s e o f i n t e llig e n t e le m e n ts o r a g e n ts t o a id u s e r s in c r e a t in g th e i r o w n s o f t w a r e . F ir s t s o m e g e n e r a l id e a s b e h in d a d d in g in t e l li g e n c e t o p r o g r a m m a b le t o o ls a r e d e s c r ib e d , a n d th e n w e lo o k a t th e P r o g r a m m in g b y E x a m p le p a r a d ig m in p a r t i c u l a r .

2.2.3.1

Adding Intelligence

A s s h o w n b y th e e x t r e m e p r o g r a m m in g ( X P ) p a r a d i g m [3 ], th e p r e s e n c e o f a p a r tn e r 1 8 c a n b e v e r y v a lu a b l e in th e a c t i v i ty o f p r o g r a m m in g . W h i l e o n e u s e r ty p e s , th e o th e r o n e th in k s t a c t i c a lly a b o u t r e l a t e d th in g s a n d h o w w h a t i s c u r r e n t ly b e in g c r e a t e d f i t s w i th th e “ b i g p i c tu r e ” , th i s r e s u l t in g in m u c h h i g h e r w o r k q u a l i ty . A lth o u g h n o t e x p l i c i t ly t r y in g t o f o ll o w th e r u le s a n d p r a c t i c e s o f X P , s im il a r t h o u g h t s h a v e b e e n e x p r e s s e d w i th th e i d e a o f p r o g r a m m in g w it h “ a g e n t s ” . T h e o th e r p a r t o f th e p a i r , in th i s c a s e , i s a p a r t o f th e p r o g r a m m in g e n v ir o n m e n t w i th “ e x p l ic i t g o a ls , a d e g r e e o f a u to n o m y a n d th e a b i lit y to d y n a m ic a lly r e a c t ” t o th e s u r r o u n d in g [5 9 ] . T h e id e a b e h in d u s in g in t e l l ig e n t a g e n t s a s c o l la b o r a t i v e p a r tn e r s in t o o l s i s th a t i t a l lo w s u s e r s t o “ th in k in te r m s o f p u r p o s e a n d f u n c t io n , a n d th u s to u n d e r s ta n d w i th o u t h a v i n g t o k n o w t h e ‘im p le m e n t a t io n d e ta ils ’ o f 18 W h a t B e c k r e fe r s to a s p a ir p r o g r a m m in g .

(27)

th e s y s te m ” [ 5 9 ], i.e ., u s e r s c a n t o a h i g h e r e x t e n t f o c u s o f w h a t i s r e a lly in t e r e s t in g w it h th e t a s k a t h a n d , in s t e a d o f t i m e -c o n s u m in g , b o r in g o r d i f f i c u lt p a r t s . O th e r t o o l s th a t in c lu d e c o m p u t a t i o n a l c o l la b o r a t i v e p a r t n e r s a r e L e t i z i a a n d i t s s u c c e s s o r L e t ’ s B r o w s e [3 7 ] [3 9 ] . L e t i z ia i s a n a g e n t th a t th a t a s s i s t s a u s e r b r o w s in g th e W e b b y in f e r r in g a r o u g h a p p r o x i m a t i o n o f th e u s e r ’ s in t e r e s t s f r o m h is o r h e r p a s t W e b b r o w s in g a c t iv i t i e s . T h i s d if f e r s f r o m m u c h o th e r w o r k o n “ in t e l l ig e n t ” b r o w s in g a id s s u c h a s W e b C r a w l e r s , w h e r e u s e r s o f t e n h a v e t o e x p l i c i t ly s t a t e th e ir in t e r e s t s in f o r m o f r u le s o r k e y w o r d s .

2.2.3.2

Programming by Example

P r o g r a m m in g b y E x a m p l e ( P B E , a ls o c o m m o n ly r e f e r r e d t o a s P r o g r a m m in g b y D e m o n s t r a t io n ) i s a n a p p r o a c h t o e n d - u s e r p r o g r a m m in g th a t c a n b e s e e n a s e l a b o r a t in g o n t h e i d e a s b e h in d e m b e d d in g in t e ll i g e n t e l e m e n t s , v i s u a l p r o g r a m m in g a n d th e u s e o f m a c r o s . T h e g e n e r a l m o t iv a t i o n f o r P B E i s th a t : “ [ I ]f a u s e r k n o w s h o w to p e rf o r m a ta s k o n th e c o m p u te r , th a t s h o u ld b e s u ff i c ie n t to c r e a te a p r o g r a m to p e rf o r m th e ta s k . I t s h o u ld n o t b e n e c e s s a r y to le a r n a p r o g r a m m in g la n g u a g e lik e C o r B A S I C . I n s te a d , th e u s e r s h o u ld b e a b le to in s tr u c t th e c o m p u te r to ‘W a t c h w h a t I d o ’, a n d th e c o m p u te r s h o u ld c r e a te th e p r o g r a m th a t c o r r e s p o n d s to th e u s e r ’s a c t io n s ” (A lle n C y p h e r , in [ 1 6 ] ) . P B E a i m s t o s o lv e t h i s p r o b le m b y c o m b in in g th e s i m p le in t e r f a c e o f m a c r o s w it h th e e x p r e s s i v e n e s s o f a s c r i p t in g l a n g u a g e [ 3 5 ] . T h e r e a r e a n u m b e r o f d if f e r e n t a p p r o a c h e s e n c o m p a s s e d b y P B E , b u t th e y a ll f o c u s o n th e u s e o f c o n c r e te e x a m p le s r a t h e r th a n d e s c r ib in g p r o c e d u r e s a b s t r a c t ly [3 8 ] . A c o m m o n ly n o t e d s h o r t c o m in g o f m a c r o s i s th a t th e y a r e t o o li t e r a l; i f th e r e p e t i t i v e t a s k h a s m in o r v a r i a t io n s th e m a c r o h a s li m i t e d u t il i ty [3 5 ] . F o r e x a m p l e [ ( s c e n a r i o f r o m [1 6 ] ), i f a u s e r s e le c t c e ll s A 1 th r o u g h A 1 5 w it h in a s p r e a d s h e e t, h e o r s h e m a y a c tu a lly w a n t t o s e l e c t th i s m o n th ’s e m p lo y e e s a le s , w h i c h m a y la t e r o c c u p y c e l ls A 1 th r o u g h A 1 6 i f a n e w e m p l o y e e j o in s th e d e p a r t m e n t . T h u s , w h a t P B E a c tu a l ly s e t s o u t t o d o i s in f e r r in g a n d g e n e r a l iz in g u s e r s ’ in te n t io n s f r o m a g i v e n s e t o f e x a m p le s . U n l i k e m a c r o s , h o w e v e r , P B E p r o g r a m s c a n c o n t a in c o n t r o l s t r u c tu r e s s u c h a s i t e r a t i o n a n d c o n d i t i o n a l s [ 3 5 ] .

(28)

A c tu a l ly im p l e m e n t in g th e in t e n t io n - in f e r r in g p a r t is p r o b a b ly t h e m o s t d i f f i c u l t p r o b l e m t o s o l v e , th i s h a v in g r e s u lt e d in m a n y P B E t o o l s b e in g v e r y t a s k s p e c i f i c ( u s e d in r e s t r i c t e d d o m a in s ) . H e n c e , c r i t i c i s m a g a in s t P B E o f t e n t a k e s h o l d o f t h i s p o in t, a r g u in g th a t th is is th e r e a s o n w h y P B E w i l l n o t b e r e p l a c in g t r a d it io n a l p r o g r a m m in g f o r la r g e - s c a l e p r o g r a m s . T h is i s s u e is a d d r e s s e d b y L a u a n d W e ld [3 5 ] , w h o f r a m e P B E a s a m a c h in e l e a r n in g p r o b le m a n d h a v e f o c u s e d o n d e v e l o p in g d o m a in - in d e p e n d e n t m e th o d s f o r p e r f o r m in g g e n e r a l iz a t i o n in a w id e r a n g e o f a p p l i c a t i o n s .

2.3

Existing End-User Tools for Web-Enabled

Applications

T h is s e c t i o n r e v i e w s e x i s t in g t o o l s a n d a p p r o a c h e s th a t in v a r i o u s w a y s e m p lo y th e t e c h n iq u e s d e s c r ib e d in th e p r e v i o u s s e c t i o n s t o e m p o w e r e n d -u s e r s t o c r e a t e d i f f e r e n t ty p e s o f W e b - e n a b le d a p p li c a t i o n s . I n e s s e n c e , w e n o w l o o k in t o w h a t a n s w e r s t o th e q u e s t i o n “ H o w c a n e n d - u s e r s c r e a te t h e i r o w n W e b -e n a b le d a p p li c a t io n s ? ” th a t a r e a l r e a d y p r o v i d e d . A n e x t e n s iv e s u r v e y o f m o r e g e n e r a l p r o g r a m m in g e n v i r o n m e n t s a n d la n g u a g e s f o r n o n - e x p e r t p r o g r a m m e r s is a v a il a b le in [3 2 ] .

2.3.1

Finding and Retrieving Information

C r e a t in g a p p l i c a t i o n s th a t f in d a n d r e t r i e v e in f o r m a t i o n f r o m th e W e b is s t il l s o m e th in g q u it e c o m p le x , a n d n o t m u c h w o r k h a s b e e n d o n e o n p r o v id in g e n d -u s e r s w ith e a s y - t o -u s e m e a n s t o c o n s t r u c t th e i r o w n s e a r c h t o o l s o r W e b c r a w le r s . T h e r e a r e s o m e t o o lk i t s f o r c r e a t in g W e b c r a w l e r s s u c h a s “ T h e W e b C r a w l e r T o o lk i t ” in I B M ’s “ In t e l li g e n t M in e r f o r D a t a ” 1 9, b u t th e s e a r e d ir e c t e d t o w a r d s p r o f e s s io n a l p r o g r a m m e r s . T o o l s li k e W e b S P H I N X [4 2 ] a n d F e e d D e m o n 2 0 h o w e v e r , p r o v id e in tu it iv e G U I s a n d a s i m p li f ie d s y n t a x f o r c r e a t in g s c r i p t s / r u le s w i th w h i c h u s e r s c a n c u s t o m i z e t o o l -b e h a v io r s a n d s e t t in g s t o c r e a t e a p e r s o n a l i z e d W e b c r a w l e r o r n e w s g a th e r in g t o o l . S in c e th e c o m m o n w a y o f in t e r a c t in g w i th t h e W e b is v i a a W e b b r o w s e r , a v e r y n a t u r a l a p p r o a c h w h e n c r e a t in g a W e b p r o g r a m m in g la n g u a g e i s t o e x t e n d a W e b b r o w s e r w it h s o m e k in d o f p r o g r a m m in g c a p a b i l it ie s [4 3 ] . T h is a l lo w s f o r v a r io u s h i g h ly e x p r e s s iv e o p e r a t io n s 19 h ttp ://w w w .s o f t w a r e .ib m .c o m / d a t a / im in e r / 20 h ttp ://w w w .b r a d s o ft .c o m / fe e d d e m o n /

(29)

a n d p r o c e d u r e s t o b e a p p l ie d t o th e c o n t e n t o f a W e b p a g e in o r d e r t o , f o r in s t a n c e v i s u a li z e c o n t e n t o r c o u n t o c c u r r e n c e s o f a p h r a s e .

2.3.2

Publishing and Sharing Information

S o m e w o r k p r o v i d e s m e a n s f o r n o n - p r o g r a m m e r s t o b e a u th o r s a n d p u b l is h e r s o f m e d i a f o r th e W e b , s u c h a s d ig i t a l lib r a r i e s [5 8 ] a n d W i k i s . A lt h o u g h n o t e s p e c i a lly d e s i g n e d w ith c h i ld r e n in m in d , a W i k i i s “ th e s i m p le s t o n li n e d a ta b a s e th a t c o u ld p o s s ib ly w o r k ” 2 1 a n d c o n s is t s o f a s e t o f W e b p a g e s th a t c a n b e f r e e ly e d i t e d b y a n y o n e , u s in g a W e b b r o w s e r . W ik i s e n c o u r a g e s d e m o c r a t i c u s e o f th e W e b a n d p r o m o t e s c o n t e n t c o m p o s it io n b y n o n - t e c h n i c a l u s e r s .

2.3.3

Interacting With Other Users

A s m e n t i o n e d in th e in t r o d u c t io n , th e W e b p r o v i d e s u s e fu l m e a n s f o r e n a b l in g p e o p l e t o in t e r a c t w i th e a c h o t h e r o n lin e . R e c e n t ly , o n l in e m e e t in g s p a c e s h a v e g a in e d in t e r e s t a m o n g r e s e a r c h e r s , e d u c a t o r s a n d b u s in e s s p e o p l e [2 8 ], s o m e th in g th a t h a s l e a d t o f u r th e r d e v e lo p m e n t o f n e w v i r t u a l p la c e s a n d t o o l s f o r in t e r a c t i o n b e t w e e n u s e r s . S o m e e n d - u s e r t o o ls s u p p o r t n e t w o r k in g t a s k s s u c h a s m e s s a g in g a n d n e t w o r k in g . In T o o n T a l k 2 2 [2 9 ], a b i r d c a n f ly t o b i r d n e s t s o n o th e r c o m p u t e r s a n d d e li v e r m e s s a g e s , a n d in N e t L o g o 2 3, a w h o le s c h o o l -c la s s c a n t a k e p a r t in r u n n in g a n d c o n t r o l l in g a n e t w o r k - s i m u la t io n . O th e r t o o ls , s u c h a s M O O S E C r o s s in g [7 ] a n d P e t P a r k [1 7 ] e m p h a s i z e th e im p o r t a n c e o f c o m m u n ity s u p p o r t f o r a p p l i c a t i o n c o n s t r u c t i o n a n d a l l o w u s e r s t o b u il d v i r tu a l e n v i r o n m e n t s , w h e r e th e y c a n m e e t, c o l la b o r a t e a n d in t e r a c t w ith o th e r u s e r s f r o m a l l o v e r th e w o r l d . C o m m o n f o r th e s e t o o l s is th a t th e y e m p o w e r u s e r s b y p r o v id in g a n e a s y - t o - u s e G U I c o m b in e d w ith m e a n in g f u l c o n t r o l m e t a p h o r s .

2.3.4

Gaming

A s f o r c r e a t in g g a m e s , s o m e r e s e a r c h h a s b e e n d o n e o n d e v e l o p in g c o n s t r u c t io n k i t s p r im a r i ly d i r e c t e d t o w a r d s c h il d r e n [4 ] [ 7 ] [1 7 ] th a t a ll o w s f o r e a s y c r e a t io n o f s im u l a t i o n s a n d g a m e s v ia v i s u a l p r o g r a m m in g t e c h n iq u e s a n d r u le s / b e h a v i o r s - s c r ip t in g . M o v in g a w a y f r o m e a s e - o f -u s e t o w a r d s e x p r e s s i v e n e s s , th e r e a r e m o r e a d v a n c e d 21 h ttp ://w ik i .o r g 22 h ttp ://w w w . t o o n t a lk .c o m 23 h ttp :// c c l .n o r th w e s te r n .e d u / n e tlo g o /

(30)

t o o l k it s s u c h a s th e R P G T o o lk i t 2 4 a n d D a r k B A S I C 2 5 . T h e s e t o o l s p r o v id e a “ lo w th r e s h o l d – h i g h c e il in g ” th a t a l lo w s u s e r s t o c o m b in e v a r i o u s “ b lo c k s ” o f f u n c t i o n a l i ty a n d a s t h e y g r o w m o r e e x p e r i e n c e d , c r e a t e th e ir o w n g r a p h i c s o r b e h a v i o r s .

2.3.5

What about HTML?

A s d e s c r ib e d , th e r e a r e a lo t o f t o o l s a n d r e s e a r c h d e d i c a t e d t o w a r d s m a k in g p r o g r a m m in g e a s i e r f o r n o n - p r o g r a m m e r s a n d c h il d r e n , th e w id e s t s p r e a d o f a ll t i m e p r o b a b ly b e in g H T M L . H T M L a l l o w s u s e r s t o c r e a t e v a r io u s k in d s o f W e b -c o n t e n t in n o t i m e , a n d l e a r n in g t h e la n g u a g e ’s s y n t a x i s n o l o n g e r r e q u ir e d th a n k s t o a n a b u n d a n c e o f H T M L c o n s t r u c t i o n k it s ( M a c r o m e d i a ’s D r e a m w e a v e r , A d o b e ’s G o L i v e , o r M i c r o s o f t ’ s F r o n t P a g e t o n a m e a f e w ) . H o w e v e r , H T M L is a m a r k u p la n g u a g e r a th e r th a n a c o m p le t e p r o g r a m m in g l a n g u a g e , a n d i s a s s u c h li m i t e d in e x p r e s s iv e p o w e r a n d m o r e s u it a b l e f o r a u th o r in g c o n te n t f o r th e W e b t h a n p r o v i d in g a t o o l f o r th e c r e a t io n o f m o r e s o p h i s t i c a t e d W e b - e n a b le d a p p li c a t io n s . 24 h ttp ://w w w .r p g t o o lk i t .c o m 25 h ttp ://w w w .d a r k b a s ic .c o m

(31)

Chapter 3

Problem Statement

A s w e s a w in th e s u r v e y , th e r e h a v e b e e n a n u m b e r o f a t t e m p t s t o p r o v i d e e n d -u s e r s w ith in t e r e s t in g a n d “ in t e l l ig e n t ” n e t w o r k a p p l i c a t i o n s – a n d t o m a k e th e c r e a t i o n o f a p p l i c a t i o n s e a s i e r b y s i m p li fy in g th e p r o g r a m m in g l a n g u a g e o r m a k in g th e p r o g r a m m in g e n v ir o n m e n t m o r e u s a b le . S o m e t o o l s p r o v id e in t e r e s t in g in t e r f a c e s f o r r e t r i e v in g a n d o p e r a t in g o n p i e c e s o f in f o r m a t io n f r o m th e W e b , b u t u s e r s a r e o f t e n p r e t ty m u c h l e f t w i th th e b u i l t - in a l g o r i th m s a n d b e h a v i o r s o f th e s y s t e m , a n d th u s , th e s e t o o l s la c k th e e x p r e s s iv e n e s s t o p e r f o r m t a s k s b e y o n d th o s e im a g in e d b y th e d e s ig n e r . I n g e n e r a l, f e w e x is t in g e n d - u s e r t o o l s f o r th e c r e a t i o n o f W e b - e n a b l e d a p p l i c a t i o n s p r o v id e a n e x p r e s s i v e p r o g r a m m in g l a n g u a g e in c o m b in a t i o n w i th a m e a n in g f u l m e t a p h o r a n d e a s e - o f - u s e . In t r o d u c in g th e “ T u r t le ” a s a n o b j e c t t o t h in k a n d p r o g r a m w ith , th e L o g o p r o g r a m m in g la n g u a g e ( fu r th e r d e s c r ib e d in s e c t i o n 3 .2 b e lo w ) s h o w s th a t a t o o l th a t p r o v id e s a m e a n in g fu l c o n t r o l m e t a p h o r a n d t a k e s e x is t in g ( b o d y ) k n o w le d g e in t o a c c o u n t c a n h e l p u s e r s d o p o w e r fu l a n d in t e r e s t in g th in g s w i th th a t t o o l [ 5 0 ] . O r i g in a l ly , L o g o a n d i t s T u r t l e p r o v id e d a n a l t e r n a t iv e w a y t o e x p l o r e a n d c o m p r e h e n d g e o m e t r i c a l c o n c e p t s . T o e m p o w e r u s e r s in a r e a s o th e r th a n g e o m e t r y , p r o p e r t i e s o f L o g o h a v e b e e n e m p l o y e d in t o o l s f o r e .g . m u s i c a l p e r c e p t i o n [2 ], m o d e l in g d e c e n t r a l i z e d s y s t e m s [5 1 ], g a m e d e s i g n 2 6 a n d e x p l o r in g m a th e m a t i c s [1 2 ] . U s in g a s i m i l a r a p p r o a c h , it w o u ld b e in t e r e s t in g t o s e e h o w a s p e c t s o f L o g o c o u ld b e 26 S E E L o g o : h ttp ://w w w .ith a c a .e d u / s e e lo g o /

References

Related documents

We have developed Sensors framework using Android API, which gives latest value of all possible sensors used in mobile phones, and notify end user programming about sensor

Gaze maps in the test data sets was then feed into their corresponding clusters and assigned to the cluster to which it was closest and an activity sequence could then be created

Furthermore, the ground state of the QW is situated approximately 127 meV below the GaAs conduction-band edge, which is energetically too deep to provide an efficient escape route

Spearman ’s analysis for correlation between the Baby Behavior Questionnaire (BBQ) Regularity item and the salivary cortisol evening/morning quotient and Spearman ’s analysis

In the present paper, we have discussed how different errors for bulk and electronic surface regions obtained when using traditional DFT XC functionals influence the accuracy

We investigate cryptography and usability for such an application in the context of JavaScript and XMPP (Extendable Messaging and Presence Protocol), and develop a set of suit-

Visitors will feel like the website is unprofessional and will not have trust towards it.[3] It would result in that users decides to leave for competitors that have a

Considering the security requirements of the CC from the starting of the project makes the implementation of Target of Evaluation (TOE) more structured. Developers