Can someone please explain why the authors of TensorFlow decided on Python? I'm guessing Pytorch followed just because TensorFlow was already in Python. I remember having to do a lot of Python programming in my AI class, so when exactly did that community migrate to Python?
I'm just so confused by this choice of language as a community still
I really appreciate all of the historical answers, and I'm also sorry if I inadvertently trolled ML Twitter, I was genuinely curious about what the decision was like from folks involved (especially since there were several PL people involved)
It sounds like basically historically all languages were bad, and now there are some reasonable languages but they took a while to catch up implementing the things that mattered for adoptability in these domains, and are still catching up
Well, there were some extremely good languages historically but they weren't really scalable outside of research contexts yet
Also industry and the weird notion of approved/supported languages. Also something I dealt with at Amazon, and it was ridiculous. We need to make interop easy enough that this isn't a thing. Language choice should be free and seamless
Everyone says Python is good for interop but I've found it to be an absolute nightmare to interop between OCaml and Python and pass serialized symbolic proof information from OCaml to the Python code, then get back a response
Also everyone saying Python is good for data processing has probably never had to deal with highly structured symbolic data 😟
Also also everyone saying Python is good for building languages and frameworks on top of I am genuinely confused by and conclude you haven't implemented languages in OCaml or Racket before
All of the other points I concede make quite a lot of sense!
• • •
Missing some Tweet in this thread? You can try to
force a refresh
I keep telling myself to blog about the job search process last year, in service of those of you applying next year, but I rarely have the motivation to blog. So I'm going to try to put together a quick Tweet thread and add to it as ideas come to me.🧵
I was applying only for research-focused tenure-track positions. I started thinking about the job search really, really early in grad school, way earlier than most people do, like maybe third year or so. So I felt ready.
And then a pandemic happened.
I guess that's life for you? In any case, the economy collapsed, and that was really terrifying. Schools started to enact hiring freezes. I remember crying to my parents over the summer and saying there would be no more jobs. I felt extra pressure to get my POPL paper in.
I know starting late and delaying the start of the tenure clock is a bit of a hack, but there's something really amazing to be said for actually having time to settle into a new place and very slowly get started without feeling like you're being judged
Also being able to take random days off and explore without missing classes, and being able to have my parents visit without missing classes
Usually the downside of not teaching right away is that you don't get exposed to as many students who are good fits for working with you, but I think I have enough of a social media presence that this hasn't been an issue at all---I have three or four exciting projects going
I think a lot of times I see people trying to wait out a conflict and let it "blow over." I think this is often a mistake. Apologizing and talking it out and repairing damage done if applicable works extremely well in most situations, and it's efficient.
Furthermore, if you wait it out, sometimes the other person gets angrier or moves on by deciding not to forgive you no matter what. Time heals, but only at an individual level. Healing the relationship between two people takes active work.
Getting angrier at the absence of an apology and repair makes sense to me for very large conflicts. Because choosing not to apologize and repair damage often comes across as a signal of bad faith, disinterest, apathy, self-interest, or too much pride.
Software engineering: you have 5 things to do, and they're all possible
Grad school: you have 20 things to do, and you'll probably mess up half of them
Faculty life: you have 100 things to do, but nobody actually expects you to remember to do any of them
You'll forget to do 90 of them, but it's OK, because for 20, your students will email you, and for 60, you can forward it on very confused to your admin, though like 10 you'll genuinely need to remember
But that's OK because you have faculty meetings, and you can take time to organize the things you forgot you had to do during those meetings
Got to actually think about some type theory today
Also some boba
After diving so deep into machine learning for proof assistants recently, I'm extremely grateful to have a type theory student to keep me grounded on the problems that are still fundamentally hard
One weird fact about me is that I can't physically play piano very well (I am uncoordinated and mess up a lot), but I can write piano music, and I can transcribe any song I hear, even if it isn't meant for the piano. My housemate who plays well but can't do that appreciates this
Here's a song I wrote in 2010 for example, but I kept messing up when I tried to play it, so eventually I just took the sheet music I wrote and used it to generate a midi file, which is what is on my SoundCloud: m.soundcloud.com/talia-ringer/t…
Here's the sheet music PDF, if anyone who is actually coordinated wants to play a song I wrote in 2010: drive.google.com/file/d/0B7TVz-…