{"id":26706735,"url":"https://github.com/pbalduino/gurusp-talk-20","last_synced_at":"2025-03-27T06:19:02.429Z","repository":{"id":139621427,"uuid":"2854155","full_name":"pbalduino/gurusp-talk-20","owner":"pbalduino","description":null,"archived":false,"fork":false,"pushed_at":"2011-12-21T11:39:52.000Z","size":1100,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"gh-pages","last_synced_at":"2024-04-14T19:08:30.731Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pbalduino.png","metadata":{"files":{"readme":"README.txt","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-11-26T04:33:58.000Z","updated_at":"2014-01-26T11:27:17.000Z","dependencies_parsed_at":"2023-03-11T16:00:16.419Z","dependency_job_id":null,"html_url":"https://github.com/pbalduino/gurusp-talk-20","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pbalduino%2Fgurusp-talk-20","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pbalduino%2Fgurusp-talk-20/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pbalduino%2Fgurusp-talk-20/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pbalduino%2Fgurusp-talk-20/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pbalduino","download_url":"https://codeload.github.com/pbalduino/gurusp-talk-20/tar.gz/refs/heads/gh-pages","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245791952,"owners_count":20672671,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-27T06:19:01.843Z","updated_at":"2025-03-27T06:19:02.417Z","avatar_url":"https://github.com/pbalduino.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":" Ideia original\n\n Plínio Balduino: pensei em fazer assim\n Plínio Balduino: começo contando muito rapidamente a historia do JS\n Plínio Balduino: e na sequencia a definição do JS: que é uma linguagem prototipada, orientada a objetos e funcional\n Igor Hercowitz de França: :)\n Plínio Balduino: mostro o que é uma linguagem prototipada\n Plínio Balduino: e um exemplo em self, que é um dialeto de smalltalk\n Plínio Balduino: mostro um exemplo de orientação a objetos, que a galera está mais do que careca de saber o que é\n Plínio Balduino: e que um objeto em JS é um mero bag de campos\n Plínio Balduino: e mostro um exemplo usando prototipos e OO\n Plínio Balduino: e mostro um exemplo de código funcional em JS\n Plínio Balduino: com um equivalente em Scheme\n Igor Hercowitz de França: :D\n Plínio Balduino: e junto o funcional àquele objeto usado nos exemplos anteriores\n Igor Hercowitz de França: maneiro :D\n Igor Hercowitz de França: quero ver essa apresentacao depois :D\n Plínio Balduino: explico high order functions em JavaScript e como isso é importante para quem usa jQuery\n Igor Hercowitz de França: boua\n Plínio Balduino: depois de alguns exemplos, mostro como *tudo* no jQuery usa programação funcional\n Plínio Balduino: eventos, composites e o cacete\n Plínio Balduino: será que em meia hora dá ou fica pouco?\n Igor Hercowitz de França: acho que voce poderia fazer um comparativo do mesmo codigo usando prototype, OO e funcional (just for fun)\n Plínio Balduino: e como seria isso?\n Igor Hercowitz de França: sei la\n Igor Hercowitz de França: fica a ideia ai :)\n Plínio Balduino: me ajude a pensar nessa parte\n Plínio Balduino: seria baca\n Plínio Balduino: bacana\n Igor Hercowitz de França: estou justamente pensando\n Igor Hercowitz de França: oque seria bacana tb:\n Igor Hercowitz de França: nao sei se daria para demonstrar c um codigo bobo\n Igor Hercowitz de França: mas mostrar a performance entre dos 3 tipos de codigo\n\nOutro diálogo:\nPlínio: foda né?\nó\n2 retorna o que?\nReinaldo: 4\nPlínio: nao\nvc tem essa linha de código:\n2\nessa linha te retorna que valor?\nesquece o código lá de cima\ntodo o seu código agora é isso:\n2\nretorna 2, certo?\nSent at 3:27 PM on Friday\nReinaldo: yep\nPlínio: e a linha abaixo:\n(2)\nretorna quanto?\nReinaldo: 2\nPlínio: ou seja\n(x) retorna o valor de x, ok?\nReinaldo: ok\nPlínio: isso em lisp ou em js\ntanto faz\nse vc escrever\n(2 + 2)\nretorna 4, certo?\nbeleza\nproximo passo\n2 é um valor, ok?\nnada demais nisso\nReinaldo: ok\nPlínio: var x = 2;\nx retorna 2\nx é um valor\ntambem nada demais nisso\nok?\nReinaldo: ok\nPlínio: agora sua cabeça vai doer\nReinaldo: chalenge acept\nPlínio: function x( ){return 4};\nbeleza?\nse eu executar\nx()\nretorna quanto?\nReinaldo: x\nPlínio: function x( ){return 4};\nx retorna quanto?\nou o que\nzzz...\nSent at 3:33 PM on Friday\nReinaldo: x retorna 4?\nPlínio:\n(16:07:47) Plínio Balduino: isso\nfacil, nao?\nReinaldo: então, era o que imaginava\nPlínio: e se eu escrever somente\nx;\nretorna o que?\nReinaldo: setar o valor de entrada da função internamente nessa função\nretorna x\nPlínio: retorna uma função\num objeto do tipo 'function'\nReinaldo: pq ele ta setado ali\nPlínio: se vc digitar isso no console, vai aparecer\n\nx;\n=\u003e function\nx();\n=\u003e 4\nSent at 3:41 PM on Friday\nReinaldo: entendi\nx é o nome da função que seta internamente 4 como X\nSent at 3:45 PM on Friday\nPlínio: na verdade\nx é a variável que contem uma função\nfunction x(){return 4};\n\né um atalho para\n\nvar x = function(){return 4};\nentendeu?\nfunction é um valor como qualquer outro\ncomo se fosse um numero, um array, um boolean\nvar y = 3;\nReinaldo: dentro da var tem uma function?\npqp\npqp\nPlínio: hehehe\nReinaldo: essa foi foda\npqp\nPlínio: lembra do começo da conversa\nonde (4) == 4 ?\nReinaldo: sim\nPlínio: se vc\n(16:07:47) Plínio Balduino: fizer\nvar x = function(a){return a * 2};\nsabendo que (blah) retorna blah\nentao\n(x) retorna uma function, certo?\nReinaldo: sim\nPlínio: então\n(x)(2);\nretorna 4\ncerto?\nReinaldo: ºoº\nvc atribui 2 a função dentro de x\nPlínio: exatamente\nvamos de novo\nfunction x(a){return a * 2};\n\nx(2) é 4, certo?\nReinaldo: ok\nPlínio: function x(a){return a * 2};\né o mesmo que\nvar x = function(a){return a * 2};\ncerto?\nReinaldo: a segunda faz mais sentido mas deve ser sim\nPlínio: beleza\nsão a mesma coisa\nentão, de acordo com a segunda forma, se fizermos\nx(2) é 4, certo?\nReinaldo: sim\nPlínio: x(2) == 4 do primeiro jeito\nx(2) == 4 do segundo jeito\nReinaldo: nossa\nfuncção dentro de var e foda\nPlínio: então\nse (x) == x\nentão\n(x)(2) == 4\ncerto?\n(x)(2) == x(2)\nReinaldo: ok\nsim\nPlínio: se (x)(2) == 4\ne x contem uma função\nReinaldo: =\ndiferente\nPlínio: pq nao fazer assim:\n(function(a){return a * 2})(2)\n(16:07:47) Plínio Balduino: == 4 ?\nReinaldo: (x)(2) == 4?\nPlínio: isso\nReinaldo: em vez de setar essa função a x\nvocê cria ela ja comparando sem o x\nPlínio: exatamente\ncrio uma função anonima\nfunção anonima é a que não é atribuida a variavel nenhum\nela nao ganha um nome\nSent at 4:06 PM on Friday\nPlínio: entendeu?\nReinaldo: sim\nPlínio: louco, nao?\nReinaldo: eu como um leigo estou me perguntando... o pessoal que programa js no dia a dia, sabe disso?\nPlínio: nao\nReinaldo: então vc acabou de fazer alguns slides pra amanhã... parabens\nPlínio: hehehe\nReinaldo: mt foda\n\n Esqueleto da apresentação\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpbalduino%2Fgurusp-talk-20","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpbalduino%2Fgurusp-talk-20","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpbalduino%2Fgurusp-talk-20/lists"}