Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate language choice for sample codelabs #2

Open
vjpai opened this issue Oct 31, 2016 · 1 comment
Open

Investigate language choice for sample codelabs #2

vjpai opened this issue Oct 31, 2016 · 1 comment
Assignees

Comments

@vjpai
Copy link
Owner

vjpai commented Oct 31, 2016

  • Go

    • Pro: great learning tool, easy to install, seamless integration with other Google-based learning experiences (such as kubernetes class), easy to express concurrency
    • Con: Heavily used but not necessarily widely; many users are already experienced with principles of building microservices. No idiomatic way to express async RPCs.
  • Python

    • Pro: Seamless gRPC installation process, possibly the most widely used language in general
    • Con: Like other GIL-based languages, may be overly slow
  • Other choices?

@vjpai vjpai changed the title Language choice for sample codelabs Investigate language choice for sample codelabs Oct 31, 2016
@hsaliak
Copy link
Collaborator

hsaliak commented Nov 1, 2016

@vjpai
For Go i think the 'concurrency baked in' will allow us to cleanly discuss async patterns even though the library does not support them (it does not need to). I would not call this a Con.
Pro: Its fast to compile and easy to set up, so there should be no problem in ensuring that students have the right environment set up.

For Python:
Cons: The generated proto readability is a major Con IMO. It needs to be loaded and introspected in the interpreter if the student wants to understand it a little better.
I do not think speed is a concern for the course however.

Pro over go for the class: Unit testing is easier to set up and run than Go.

Other choices:
Node.js? (I do not know much about this)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants