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