quinta-feira, 11 de novembro de 2010

"The Social Network" - linguagem usada para o Facebook

Resumo do filme
O filme fala sobre um jovem universitário de Harvard, Mark  Zuckerberg, que sempre quis pertencer a uma rede social, pois nunca foi um rapaz com muitos amigos e achava que com uma rede social poderia fazer novas amizade.
Após discutir com a sua namorada sobre o tema, vai para casa e cria uma pequena rede social ligada ao servidor da universidade, FaceMash, com o objectivo de comparar fotos das raparigas da universidade, e fotos delas mas modificadas por ele. Este, em apenas 2h tem 22 mil visitas, mas passado 4h descobrem que ele entrou na rede da Universidade e é expulso, sendo acusado de infringir regras de segurança na Internet, de privacidade, ... 
Vendo que teve sucesso, três estudantes de Harvard, Divya Narendra, Cameron Winklevoss e Tyler Winklevoss, decidiram convidar Mark para  entrar num projecto, a criação de uma rede social, HarvardConnection, para a universidade. Mark aceita o projecto mas não o realizou. Mais tarde desenvolveu com a ajuda financeira de um  amigo  Eduardo Saverin uma rede social. E em apenas 1 meses fez 2 mil linhas de código para o inicio do "The Facebook".
Pouco depois Zuckerberg, Dustin Moskovitz e Chris Hughes juntaram-se para expandir para universidades e escolas.
No final do ano lectivo, Mark e Dustin mudaram-se para Palo Alto, Califórnia, com Andrew que tinha conseguido um estágio de verão na Electronic Arts. Eles alugaram uma casa perto da Universidade de Stanford, onde se juntaram a Adam D'Angelo e Sean Parker.
Com ajuda de Sean Parket, o fundador de Napster, acabou por ter uma empresa para continuar a melhorar o Facebook.
Andrew McCollum decidiu deixar a Electric Arts para ajudar todo o tempo no desenvolvimento do Facebook e do site "irmão" Wirehog. Divya Narendra, Cameron Winklevoss e Tyler Winklevoss, proprietários do site HarvardConnection, posteriormente chamado ConnectU, entraram com uma acção judiciaria contra o Facebook reclamando a propriedade intelectual, Mark Zuckerberg teria utilizado código fonte ilegalmente do HarvardConnection, do qual ele tinha acesso. Mark depois acabou por pagar uma indemnização aos irmãos Winklevoss.
 Facebook torna-se o revolução da comunidade, Mark decide alargar os horizontes e expandir por mais países, e evoluindo cada pormenor que se lembrava. Em apenas 5 anos consegue mais de 500 mil amigos.
Tornando-se assim o bilionário mais novo do mundo.
...

Linguagem de programação usada no Facebook
Mark para criar o Facebook usou uma linguagem própria utilizado nas fanpage, o FBML Facebook Markup Language, basicamente são tags especiais que podem ser inseridas no código HTML. Essas tags permitem incluir uma grande variedade de complementos às páginas sem as complicações do HTML padrão.
O principal motivo para a utilização das tags do FBML é a integração com os serviços oferecidos pelo site, como a implementação de campos de comentários, botões de "Like", murais e tudo mais que há no Facebook.
É claro que o Facebook não foi só criado com as funções HTML, pois nem todas as funções funcionam com as fanpage, assim as tags especiais não dão hacks. 


A infraestrutura de software que Mark usou pode ser vista como a de um site LAMP (é um acrónimo para a combinação: Linux, Apache, MySQL, PHP, Perl ou Python), mas com melhorias e extensões de vários serviços.  
Mark utiliza o Memcached, que é no momento um dos softwares mais famosos na Internet, como uma camada de cache entre aplicação web e banco de dados.
PHP é uma linguagem interpretada e por isso o seu código quando executado é relativamente lento quando comparado com código que executa inicialmente. O HipHop converte PHP em código C++ que pode ser então compilado e apresentar um desempenho melhor. Isso permitiu que Mark aproveitasse muito melhor os seus servidores web já que dependem demais de PHP para servir conteúdo.
Para armazenar e recuperar fotos de alto desempenho, Mark utilizou o Haystack, que armazena em quatro diferentes resoluções e executa tarefas como por exemplo a remoção de foto, a actualização ou o acesso.  
Mark também utilizou o BigPipe, que é um sistema dinâmico que serve para páginas web. Ele é capaz de dividir uma página em secções (chamadas “pagelets“) e servi-las em paralelo com desempenho ideal.
Por exemplo, a janela de chat é carregada separadamente, o "feed" de notícias é carregado separadamente, e assim por diante. Esses “pagelets” podem ser carregados em paralelo, que é de onde vem as melhorias de desempenho, e os utilizadores recebem um site que funciona mesmo se uma parte dele for desactivada ou estiver com defeitos.
O Facebook para pesquisar Inbox usa a Cassandra que é um sistema de armazenamento distribuído baseado no projecto do BigTable. Que é um destaque do movimento NoSQL.
Mark usou o Scribe, que é um sistema de logging flexível, que o Facebook usa para uma infinidade de propósitos internos. Ele foi criado para ser capaz de registar todas as acções ocorridas no Facebook, e automaticamente lida com novas categorias de acções registadas conforme aparecem.
O Hadoop é uma implementação open source de MapReduce que permite a execução de cálculos numa quantidade execiva de dados. O Facebook usa-o para análise de dados da sua rede. O Hive é uma interface de acesso ao Hadoop através de consultas SQL, facilitando o seu uso, que também foi aplicado dentro do Facebook.
Mark usou diferentes linguagens para os seus diferentes serviços. PHP é usada para front-end, Erlang é usada para Chat, Java e C++ são usados em diversas áreas. Thrift é um framework cross-language desenvolvido internamente que junta todas as diferentes linguagens, permitindo que elas conversem entre si. Isso facilita muito o desenvolvimento das cross-language no Facebook.
Mark usou o Varnish (que é um acelerador HTTP, que pode agir como uma alteração de estado da carga e também realiza cache de conteúdo para servi-lo rapidamente) para servir fotos, lidando com milhões de requisições todos os dias.
Mark usou vários sofwares e varias linguagem, para realizar o Facebook, foi um longo trabalho que teve bom resultado é por isso que, hoje, é o bilionário mais novo do mundo.

16 comentários:

  1. Parabens pelo artigo...
    show de bola...

    ResponderEliminar
  2. Nossa...desculpe-me, mas você se baseou em quais fontes para descrever tudo isso? Mark? :-D

    ResponderEliminar
  3. De onde veio essas informações??

    ResponderEliminar
  4. Obrigada a todos que comentaram...
    Parte desta informação é obio que fui eu que fiz, como por exemplo, o resumo da obra. Mas o linguagem utilizada no Facebook foi auxiliado do site:
    http://oneideluiz.wordpress.com/2011/05/06/explorando-o-software-por-tras-do-facebook/

    ResponderEliminar
  5. parabéns ótimo trabalho estava querendo pesquisar alguns programas que foram usados no facebook para estuda-los.

    esta de parabéns !

    ResponderEliminar
  6. esse rosa acabou com meu olho , mas a materia me ajudou

    ResponderEliminar
  7. Uma porcaria... De onde vc tirou que o cara inventou uma linguagem de programação pra fazer o site??? Vc é completamente louca ou mega desinformada, pra uma jornalista falta muito... Se orienta!!!

    ResponderEliminar
    Respostas
    1. TAS-TE A PASSAR? uma porcaria?
      Eu coloquei as minhas fontes num comentario
      TA BEM
      e eu não inventei nada, apenas escrevi este artigo tomando em conta a fonte
      GENTE ESTUPIDA NÃO COMENTE OK!!
      e mais, eu não sou jornalista, so realizei este artigo por causa de uma disciplina
      ACERIO HÁ COM CADA GENTE QUE SO SABE DIZER MAL DOS OUTROS SEM SABER NADA.

      Eliminar
  8. Nossa, realmente muito bom seu artigo, e está de acordo com a fonte mesmo. Parabéns =D

    ResponderEliminar
  9. Claudia Valente e Guerreia muito obrigado por postar este artigo estava a dias procurando algo que falasse sobre as plataformas usadas pelo facebook e achei aqui Deus lhe abençoe e não de ouvidos a pessoas invejosas e estupidas pergunte se eles tem um artigo similar ao seu para vermos se sabem mais.

    ResponderEliminar
  10. Mark fez a parte de PHP o front end sozinho, depois ele contratou programadores...
    Ele não domina todas essas linguagens... não acredito que ele seja tão bom programador assim... ele fala muito em entrevistas que "...gosta mesmo é programar...", pessoas que falam assim geralmente não são tão boas em programação.

    ResponderEliminar
    Respostas

    1. Quais são suas fontes para o comentário de que Mark Zuckerberg não é bom em programação?

      Desde que eu tenho acompanhado o trabalho de Mark.. ele é um incomparável profissional programador.

      Além do mais, o facebook tem feito um ótimo trabalho desenvolvendo linguagens de programação.

      Eliminar
  11. Não é qualquer um que é bom programador.
    Estou a terminar licenciatura em programação e sei que não é fácil, mas há pessoas inteligentes que consegues aprender e perceber muitas linguas de programação. Acho que nem todos conseguem ser como o Mark, o que não significa que seja impossível ele ser assim tão inteligente.
    Tudo é feito quando ha gosto e vontade.

    ResponderEliminar