Notable Features of Go Programming Language
Rob Pike:
- Support for Concurrent Networked programming (designed with modern trends in mind; others - Unicode support) - high level libraries for Concurrent Networked programs - feels like dynamic interpreted languages - even better
- OO? interface? Seems to discourage complexities of OO Java, C++, Design Patterns. One of the design goals - Clutter free - you write code and it does stuffs - removing “incidental complexity”. More suitable to modern developers - Agile development; small teams using open source libraries and frameworks to build great products.
- Interface
- Struct
- Support for Functional programming
- Fast compilation - dependency graph
- Pointers. Allocation - new, make. Systems programming.
- Strongly typed. Less Runtime errors. Efficient.
- Garbage collected.
- Concise syntax
- Readable code
- Type inference
- Semicolon-less etc.
- Data Structures, Built-in Libraries - feels like dynamic interpreted languages.
- Open source projects make languages popular these days. Seems to be good at that too.
- Three design goals - the goods of Strongly typed popular Languages that feels like Dynamic Interpreted Languages with modern requirements in mind so that it is easy to write concurrent and networked programs.
- Rob Pike, Ken Thompson (C, UNIX) in the design team among other notables.
- Modular Code.
- Less is more. You can keep everything in your head. (Lisp philosophy - The whole language is out there all the time.)
- Panic - recover (in place of Exception Handling)
- Concurrency
- Goroutine, Channels (Unix process-pipe, lighter), Mutex lock-unlock, Atomic
ADT
Operator Overloading
OOP
Object-based / Protoype-based Programming
Rob Pike:
- composition and coupling
- interfaces
- concurrency gives us the composition of independently executing computations.
- embedding
References
No comments:
Post a Comment