Challenges

Abstraction

    data abstraction

    procedural abstraction

Scaling issues

    representation

    language design and implementation

    relative youth of the area

Specification issues