Monday, May 5, 2014

Personal Notes On Go Programming Language [Unofficial]

Notable Features of Go Programming Language
  • 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