Why Are You Creating A New Language?: Slow Builds Uncontrolled Dependencies
Why Are You Creating A New Language?: Slow Builds Uncontrolled Dependencies
Why Are You Creating A New Language?: Slow Builds Uncontrolled Dependencies
Slow Builds
Uncontrolled Dependencies
Or in different version
Cluster Computing
problems introduced by multicore processors, networked
systems, massive computation clusters,
the web programming model were being worked around rather
Fundamental concepts
garbage collection
parallel computation
Speed
Concurrency
Features
Less Library
Statically type
be statically typed,
scalable to large systems (as
Java and C++);
No Type Hierarchy
More Productive
be productive and readable,
without too many mandatory
keywords and repetition ("light
on the page" like dynamic
languages);
Garbage Collection
Go is fully garbage-collected
and provides fundamental
support.
Concurrency Support
support for concurrent
execution and communication.
Language Design
Same as C
Besides, changes to improve
conciseness, simplicity, and
safety
Syntax
Optional variable declaration &
initialization through type
inference (x := 0 ~ var x int = 0;
Package management
go get
Distinctive Approach
Interface
An interface system in place of
virtual inheritance, and type
embedding instead of nonvirtual inheritance.
Simple Specification
language specification simple
enough to hold in a
programmer's head
omit features common to
similar languages
Semantics