Programming IS(!) Philosophy – Nir Rubinstein

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hi everyone I'm really excited to be here so like Monty painted is to save now for something completely different a bit about myself this is what I studied in university nothing related to computer science whatsoever and I'm working in the company called Epsilon I'm gonna talk about her in a few minutes but when my boss found out which is the CEO of F sorry was like this that's not him by the way so there's this whole notion of when you're doing high performance stuff and in computer science like know all the beats all by its Big O notation complexity data structure and everything and and I come from a kind of a different world but luckily for us this is where I'm poking a company called F starts an Israeli company we're doing mobile attribution measurement and we're handling lots of incoming data points around 80 to 90 billion events per day that's what we're processing and when I joined Empire when my boss was horrendous in his reaction it was just him the CTO and co-founder and myself as the first employee so this was the R&D to people and now we've grown a bit and this is the numbers currently and again they're they're interesting in their own right but what's really interesting is again it's it's a company that deals with massive amounts of data and most of the back end in the after is within an enclosure and I think as we started riding enclosure around seven years ago the idioms of the language and the choice of doing something enlist or enlist mentality really resonate with both me and the CTO and and as we grew older and we bootstrapped more and more developers currently there are around 250 people in epsilon R&D around 150 of those are doing closure on their day to day job and what I'm trying my main job today is helping them be better and I'm always trying to do both the low level stuff and also talk a bit about the approach what you gain and what you lose when you choose some EDM or some programming language and stuff like that so most of my connotations come from what I started which what did I study let's see again so I studied English literature which is text analysis with language tools and I studied cinematography which is text analysis and text is a really really broad term it means everything that you can analyze with language tools so if a text of a book is the actual words on the paper the text of cinematography is missing sand placement of actors in the scene camera angles white balance and stuff like that I studied Latin which is philology which is the study of languages and I studied philosophy which deals a lot with the importance of language so we see a really really common thread amongst all of these and this is a language and what we usually don't think about is rewriting code for a living right so most of the day we're dealing stuff with one programming language or another and what does it mean what does it mean to choose a functional programming language over an object-oriented one over procedural one of what is the green closure or Haskell or AirLand or whatever and this the goal of the talk that I'm going to give today is hopefully enable you when you next come to read code the right code to pair we're on and you pair of spectacles that will let you view the decisions that you make in a different light and the approach that I want to take is through the philosophy or lack of language usually what happens when people correlate philosophy and computer science they usually gravitating towards the realm of philosophy of science but I'm going to talk about the loss of field language and how it correlates to us writing code so a big disclaimer I'm gonna go through lots of stuff and I'm gonna do it pretty fast and I'm only gonna skim the surface I'm not going to teach every one of you hard to be a philosopher philosophy or language and stuff like that but I am gonna touch on major subjects for those of you who are well versed in the subject my apologies in advance I'm going to do a big disservice because I'm skipping a lot of stuff and also I'm doing it with a certain intent I have okay so we'll see what the goal is at the end philosophy of language these are the main principles the main concepts and I'm going to give examples in code because that's what we do right and by giving examples in code hopefully you will see how language of the philosophy of language and code correlate to one another so the first principle of philosophy of language is the principle of compositionality what does it mean it means that when you speak or write or whatever does in order to the sentence and if you flip stuff around they can be flipped around but there's an order of importance like even in mathematics multiplication is higher order than addition or subtraction stuff like that the same way is in all languages okay so this is the first principle of compositionality and you see how it relates directly to our day to day job second thing is a propositional function and a propositional function means that I can introduce some unknown in this case it's an axe and I can later on in my text refer to it it's really really common literature when you introduce something some unknown world or whatever that no one knows yet and it gets depicted or or given content later on in the story and usually in the notion of philosophy of language it has truth value at the end it's what does it correlate to on our day to day job usually with functions that receive some parameters that their values gun is still unknown but later on will populate this value of this is a mind bender this is like the crux of the matter your ephemeral expression and the Equality sign has been abused in programming languages right and usually in regular imperative object-oriented this is an assignment I'm assigning the value 1 into a variable X but in the concept of philosophy of language what I'm trying to do is I'm trying to give a pointer I'm trying to give a symbol then it points to something usually in the real world or in the world that as we perceive it let me give an example if I say the word ball right this is the point of the world ball but there can be many different types of ball right there can be a basketball and football and a racquetball a tennis ball and blah-blah-blah-blah-blah so different types of ball which type of ball am i referring to even if I try to narrow down if I even if I say a basketball there are many different types of basketball so what we see what we see here is a very loose connection between the pointer and the point T and I think this what do we see it we see it with variables in languages that have variables that their value varies over time and I think that if we look at functional programming languages the notion of immutability tries to concrete this relation right X is a 1 and we can do 1 equals x and it's the same thing but on our day to day work on our day not working our day-to-day life language and and the words that we speak often point to a plethora of meaning there is one language that everything there is self referential nothing points to the outside world and because of that it's a pure language which language is it mathematics exactly mathematics why because in mathematics one is one and that's it it points only to itself right it's it's the all child out out of all languages and again philosophy of language deals with two truth conditional theories like this is like the direct relation to what we do in every day boolean algebra and stuff like that well everything there is exist in philosophy of language that sounds a lot like programming right we talked about truth conditionals and variables and pointers and and stuff like that and this is how language to stuff that we do on an everyday basis talk write communicate send an email slap whatever this is how it correlates to our day to day and to programming who is this guy and Sam it's written this guy's Ludwig Wittgenstein there's a really nice quote does anyone know who said those things about him so Ludwig Wittgenstein will go a bit will say who is and why is it relevant to us but the quote that you see underneath him is by his teacher Bertrand Russell okay and if you think about it it's a really amazing thing for a teacher to say about a student so how does Ludwig Wittgenstein relate to what I'm trying to present here about the loss of your language let's talk a bit about Ludwig Wittgenstein it that Cambridge right he what primarily in logic philosophy of mathematics philosophy of mind and philosophy of language let's stop here for a minute logic philosophy of mind mathematics and language if you dealt with all these areas probably there is some common idioms or notions that correlate to each one of them right how does mathematics relate to language how does it relate to cognition to the philosophy of the mind how does everything come together this is what we'll try and speak about here a bit and he published only one book the Tractatus logico-philosophicus 1921 70 pages 75 pages long it took me a year to read it the university is a really really really hard work to read and we're gonna try to sum up the main principles there it's worth noting that later on in life he refuted his earlier work the central tartus but even now there's the Tractatus logico-philosophicus is kind of the crux of the matter and people talk about the philosophy of language so what is it frittatas it's is main body of work and what it try to do is to bring an almost mathematical approach to how we perceive language and analyze language right the name is logical name is Latin for logical philosophical treatise and it's comprised of seven main propositions which we're going to talk about now the first and the second one the world is everything that is the case and what is the case is the existence of states of affairs this is the part where you go and you'll be correct so when when you study philosophy of language and first first lesson philosophy of language are going to into into the room and I see it a lot of people around me and and the professor comes up and she says this and we're going to do some hot stuff not only today the entire semester and and your goal is just you to delve through it you don't need to understand everything just get the general notion try to embrace the spirit in which it was given because the philosophical act which we'll talk about a bit later on is acting and doing and reading and trying to reason about what you just heard in some other manner changed the way you perceive stuff so let's try and do that we don't need to understand everything to the low limit but we'll try to get the general notion of what Wittgenstein try to say I'm doing again a huge disservice by summarizing the propositions but I'm allowed because that's what I do here all right so what are the first a second proposition in essence what is trying to say that the world consists of small logical facts which are almost as he liked to call it to logical atomism in direct relation to atoms right a word is a single logical atom all right up until now fair enough we're good let's talk about the third proposition a logical picture effects is a thought so the world consists of a totality of interconnected atomic facts the proposition make a picture of the world and we cannot say in language what is common in the structure rather it must be shown we cannot step outside of the language so the next evolution again mathematics you have some common numbers or whatever some common parts atoms and then you compose them together decomposing generate something he likes to call a picture of a thought which is an X pression for him okay what the Tractatus always always always states is that one cannot go outside the boundaries of the language the language is what defines not only itself but it defines the way we think about stuff so which concern was a really strong proponent of the notion that we think in words and languages and only those that can be expressed via language are those that exist as a thought or a notion the fourth and fifth proposition a thought is a proposition with a sense and a proposition is a truth function of elementary propositions again it means a whole lot but for our use case it lays the groundwork for truth tables and truth conditionals what does it mean when a picture a connection of logical atoms points sides along or juxtaposed against another picture of logical atoms how do they relate to each other does it create a truth value a false value and stuff like that the sixth proposition the general form of a proposition is the general form of the truth function later on is said in that in the book it goes and says that any logical sentence can be derived from a series of nor operations and austerity of atomic proposition I just found out like a couple of months ago that this is in fact the way that compilers are made right the everything is going through some nor gates until they culminate together to create the actual outcome and this is philosophy of language 1921 right so whatever you learned so far about this so this is how people come of the the the first semester of philosophy of language but we talked and presented some notions and I'll try to push them push the envelope towards the realm of what we do in a day to day programming so if we talk about the first and second propositions which deal with logical atomism defining the small parts that consist that everything consists of is like defining symbols right I even give examples enclosure def X 1 the third proposition which deals with combining some logical atomism into a notion into a thought can be thought of as maybe an entire program but a small if we look at the micro-level you can be a single function the fourth and fifth propositions we deal with truth values and truth tables are this conditionals right and the sixth proposition which deals with nor operations over the entirety of everything can be seen as function composition what didn't I mention how many propositions are there in the rect Atos logic of philosophical 7 there's only six here right maybe we'll talk about the seventh one idea so the primary conclusions from which contains work all of these are his quotes which are really nice the limits of my language mean the limits of my world one cannot go outside of the language to express anything else the boundaries are the language with thinking words we reason with words we communicate with words and our code the the expression there is with world so the limits of the language is the limits of the world pay attention to your nonsense I put it there because it's always nice if we spoke a different language we would perceive a somewhat different world this is really important for me right what happens when we pick programming language a / programming language B why do we do it maybe because it helps us perceive the world or the problem space in a different manner right this is what with instant really believe them and again philosophy is not a theory but an activity that means that I'm blabbering here onstage but at the end I want you at whenever you go back to work and starts writing a new piece of code or reading a new piece of code I want you to try and look at it in some different matter make a conscious decision about the intent that you're giving to the code the expression that you're trying to relate to other people and to the entirety of the software it's got a really really famous paradox it's called the beetle box which is really common in software engineering so the guy catches the beetle puts it in the box come to his friend they told them listen I caught a bill in the box in his friend tells him it's amazing I also got a bit under the box and says yeah let's compare it says minus sixth leg and he says well mine is eight legs mine is dotted well mine is not that at - wings mine as antennas mine don't have antennas and then they both of them go well we're not talking about the same thing right how many times in your day-to-day job you got handed a bag or a task or whatever and someone told you well some fixes do that and you're like what is he talking about so common idioms and common ground to stand upon are really hard to come by that's why whenever that's a that's why partially we're obsessed with naming stuff variables functions models libraries we were obsessed with really defining the problem because again we're not dealing fuel in mathematics the the world that we're living in has referenced reference from one word to something else and we're trying to keep this common to each other this directly correlates to programming language selection because we ask ourselves the following questions can we solve the problem using different languages if so why one not the other and what do we gain or lose right like the common notion that people in Antartica whatever has got 50 different words to depict snow and if I have to do it in English or whatever I'm going to use probably lots of words maybe some language is more suited in handling a specific problem stage than problem space or it in another language this should be one of the most defining criteria in my opinion when selecting a programming language this is the seventh proposition that we're off we cannot speak thereof we must remain silent it's it's kind of it's kind of a joke at the end ER because up until now we always said that we can talk about everything in language and now we said what we cannot speak of we must remain silent but it's almost like the notion the limits of of language the limits of the world is the limits of the language and that's it thank you [Applause] [Music] [Applause] [Music] honestly if we have to have a question why does anyone have question oh yes thank you thanks so much for the talk yeah I wanted to ask as far as the bounds of the language with that language being evolving and this sort of amorphous thing do you think that is only developing more precise words for the same sort of total reality or do you think there's true possibility for growth of language and thus growth of our world the second one and I think I think that to be perfectly honest that's the reason that there are so many programming languages nowadays right if there was some perfect language that can just be enriched and depict everything that we need to deal with we're probably only right in a single language but what I'm trying to say that a language carries with it a certain idiom or or where your thought and when we're doing stuff in Lisp enclosure we're thinking in some manner and when we were doing stuff in JavaScript god forbid routine stuff in another manner right so every language carries its own where you're thinking and I think it's going to evolve even more thank you [Applause] [Music]
Info
Channel: Metosin
Views: 1,763
Rating: 4.7894735 out of 5
Keywords: clojure, programming
Id: S5tYgvnLQdg
Channel Id: undefined
Length: 25min 17sec (1517 seconds)
Published: Mon Sep 30 2019
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.