Features of Metaphor
Following are the Four Features of the Metaphor Language
- Distributed Runtime Environment
- Contextual Programming
- Support for autonomous executable entities
- Support for Software evolution and re-use
For example (from Victoria's interview with Janice - Dec 1, 2005) if a developer specify a program that a car has 4 wheels, at runtime the executable for each wheel may be loaded in the available LVM (Local Virtual Machine) by the Distributed Runtime Core (DRC). The communications between wheels and the rest of car will be handled by the DRC (even if it is inter process communication or computer to computer communication) without the explicit control by the developer or the network administrator.
- Load Balancing
- Fault Tolerance
- Remote Communications
- Mobility of Services and their containers
- Quality of Service
- Service Level Management
2. Contextual Programming
3. Autonomous Executable Entity
As per Victoria, The application runtime consists of Autonomous Executable Entity interact with their environment and each others asynchronously, respond to external environmental changes and take decisions accordingly. This means that behavior of an Autonomous Executable Entity might differ from environment to environment!
Metaphor focuses on three types of reuse mechanisms.
- Derivation
A new metaphor is created by changing the properties of an existing one.
- Composition / Decomposition
A new metaphor is created by fusion of several existing ones or fission of an existing metaphor (into several metaphors).
- Adaptation
A new metaphor is created for a different domain by morphing certain properties. This differs from derivation in the sense that the two metaphors are properly isomorphic. i.e., It looks similar in structure or appearance however different ancestors.
Fortress builds on these strengths and goes beyond these. It is specifically designed to be an adaptive language which means language features are pushed into libraries rather than warped in compilers. Fortress assumes that parallel processing is the norm, using thousands or millions of threads. Fortress supports source code in three (ASCII, Unicode, Two Dimensional) formats to support mathematical notations.
Multi Core CPUs
Current hurdles for the Intel, Sun, IBM and other Hardware vendors with multi core CPUs will be picking the right memory technologies. "If you can't keep the cores fed fast enough from memory, you haven't gained anything," says AMD chief technology officer Phil Hester. Couple of interesting articles on MIT Technology Review titled Multi Core Mania and Making Multi Core Fly.
Conclusion
Today we have single CPU with 8 cores and 32 parallel threads (Sun UltraSPARC T1) and imagine the state of these technologies after a decade. GRID computing for the common man (a digitally connected world) will be a reality.
With new direction in chip design which focuses on parallel computing (with multi cores) on least expensive hardware, and new programming languages focusing on abstracting away the complexities required for parallel computing will lead to true GRID computing to the common man (a digitally connected world).
- Digitally connected Home appliances (Air Conditioner, Refrigerator, Washing Machines etc)
- Convergence of the Media Centers (Sony® VAIO® VGX-XL1 Digital Living System™)
- Convergence of Apple iPod, Cell Phones, Handheld Devices. I know this will be controversial – However, carrying to many devices doesn’t sound too exciting either.
Imagine the year 2015. Parallel computing with Autonomous Executable Entities will be a reality!
Further Reading
- Janice J Heiss – Envisioning a New Language: A Conversation with Sun Microsystems' Victoria Livschitz
- Alan F Blackwell and T R G Green – Does Metaphor increase Visual Language Usability?
- Peter Norvig – Design Patterns in Dynamic Programming
- Gregory Neverov and Paul Roe – Metaphor: A multi stage Object Oriented Programming Language
- Sun Microsystems – Sun UltraSPARC T1 Processor
- MIT Technology Review - Faster Plastic Circuits
- Sun Microsystems – Fortress: A new Programming Language for scientific computing
- MIT Technology Review – Multicore Mania
- MIT Technology Review – Making Multicore Fly
- MIT Technology Review – Good bye, Gigahertz
- InfoWorld - Sun charges Sun Fire T2000 with UltraSparc