|
Water is an excellent language for use in introductory computer science and programming courses.
1. Target
- Leading-edge educators who want to teach Web services and distributed programming
- Educators who teach HTML and would like to provide a gentle path to programming
- Educators who teach computer science using Scheme or Smalltalk
Looking for a more practical language that is easier for students to learn.
- Educators who teach computer science using Java
Looking for less complex language, but still want to teach useful skills
2. Advantages
- Practical programming language
Learn real-world skills with Web services, XML, and distributed programming
- Simple, clean, consistent language
Teach critical thinking and good programming skills, not a specific language
- Familiar syntax
Extends HTML to dynamic programming
- Smooth learning curve
Start immediately with static HTML and gradually learn programming concepts
- Multi-paradigm language
Supports Object-oriented, Functional, Procedural, and Declarative
3. Development environment
- Instant deployment
Every time a student runs their code, it is instantly available for others to see
- Zero-administration thin-client
- Instant feedback with fully integrated and interactive development environment
- Multiple views of objects
Object inspector, rendered HTML, and XML
- Easy stepping and debugging (stack trace)
- Creates programs that can be instantly published on the Web
- Graphical object inspector
- Supports incremental design and implementation
- Testing and documentation supported by the language
- Development environment implemented in 1 page of Water code
- Easily supports team and shared development in a classroom
Students can develop and deploy on their machine, as well as on a shared machine
4. Language features
- Both strong typing and weak typing
- Has standard object-oriented, event-driven UI framework (the browser)
- No confusing distinction between classes and instances (Prototype-based object system)
- Automatic memory management (Garbage collection)
- Exception handling
- Uniform representation of data, presentation, and logic
- Useful standard types: dates, regular expression
- Wide range of use
Same language across many areas: web, multimedia, 2D, 3D, ...
5. Advanced language features
- Can implement control structure abstractions
- Anonymous methods
- Nested function definitions and global definitions
- Closures
6. Availability
- Cross-platform: PC, Mac, Unix
- Free development environment
- Free deployment for educational use
- Many examples available (50+ examples)
- Community of users at waterlanguage.org
- Commercially supported by Clear Methods
|