This message was deleted.
s
This message was deleted.
w
Do you have JavaScript experience?
c
I have done devops for javascript, so i have a basic understanding on how it works, and the use of yarn, and i understand some basic things of the language, but not really coding experience
w
It’s not really my place to offer suggestions, but maybe compare making a change to a JS Quick Start project, and then making the same change in a TS Quick Start project. Get a feel for comparing the two. Try and accomplish the same basic goals and tasks that you might try in Python to make sure you’ll be able to do the same tasks with JS or TS.
s
I always say unless others in your team have more experience in ts or js and everyone is comfortable in python. Write it in python, youll have a better understanding of your infra along with how the components interconnect in your code so you know what effects what. I was the same way with python, i know how to build some functions and execute on it, thats all you really need to start out with. Then as you gain more knowledge of the language you can refactor. Granted we as a team diverted to c# because that is were the majority of the knowledge.
b
i had very little experience with typescript before I started using pulumi but quite a bit of python. I only started using pulumi since it was the primary language in use at a new job i started. i've been doing typescript for over a year now and i absolutely love it. the strict typing is really nice and i'm glad i did it. very anecdotal and subjective, but that was my experience. maybe it helps.
w
My favorite part of working with the TS/JS Pulumi is creating classes like:
Copy code
class MyPrefixAwsProject ComponentResource {
  constructor(name, args, opts) {
    super('myPrefix:aws:project', name, args, opts);
    this.awsProject = new AwsProject(`${name}-project`, {}, {parent: this});
    this.awsProjectResource = new AwsResource(`${name}-project-resource`, {}, {parent: this});
  }
}
The other advice I have for you is to use separate repos for separate concerns. So you could use python for 70% of what you want secured, and then use typescript in a different project for the 30% that is more bleeding edge, or experimental. Just don’t overlap resources, or if you do, make sure to import them.
Then run them in different pulumi projects/stacks
c
One of the bigger points is the awsx leverage, like i see this: https://github.com/pulumi/examples/blob/master/aws-ts-voting-app/index.ts vs https://github.com/pulumi/examples/blob/master/aws-py-voting-app/__main__.py And is where i truly see the value of using TS. Language specific, i think both python and ts can archive the same things, thats not my concern. But if the abstractions of awsx are more valuable that what would take to get used to TS.
g
Note that we’re actively working on multi-language component support (e.g. use EKS or awsx in other languages). Expecting most of that work to land in Q4.