Facebook neden php ile yazıldı

Silikon vadisinde ve diğer yerlerdeki bir web tabanlı bir startup projesi için dil seçilirken, zaman ve para konusunda çok kafa patlatır rakiplerini ve programlama dillerini inceleler o yüzden php, python, ruby gibi startup diller seçilir. 

Mark Zuckerberg bugün (ben bunu yazarken 2017 yılında) Facebook’u  yapıyor olsaydı kuşkusuz birçok başka dil, framework, platform ve mimariyi göz önüne alacaktı.

Başlangıçta PHP’yi seçip seçemeyeceklerini söylemek imkansız. Diğer sosyal ağ şirketleri bugün başlarken belli bir kısmı hala PHP’yi seçiyor. PHP yi seçebilirler, çünkü yapmaları gereken işi yapar ve onu bilen ve onunla üretken olan geliştiricileri işe alabileceklerini bilirler.

image

Başarılı bir projenin programlama dili seçimiyle ilgisi çok az olduğu konusunda bir tartışmalar elbette vardır.

Zuckerberg, Facebook için Wikipedia sayfasında tanımlanan tarihe göre, Ekim 2003’te Facebook’un ilk kodunu yazdı.

2003 yılında başladıklarında j2EE ve PHP haricinde seçebilecekleri karşılaştırma yapabilecekleri bir dil ve framework yoktu.

Framework(ler) NE ZAMAN ÇIKTILAR?

  • Ruby vardı, ancak henüz Rails yoktu (1.0, Temmuz 2004’te tanıtıldı).
  • JSF 1.x veya Spring 1.0 ile Java 1.4 de tanıtıldı.
  • Perl 5.8 vardı, ancak Catalyst framework yoktu (Şubat 2005’te tanıtıldı).
  • Python vardı, ancak Django

    framework

    yoktu (Temmuz 2005’te tanıtıldı).

  • Web programlama için Ajax terimi 2005 yılında üretildi, daha ortada ajax yoktu ancak asekron XML isteklerinin kullanımı hala standart dışıydı, geniş tarayıcı uyumluluğu için kullanılamayacak kadar erken bir tarihti.
  • C # 1.0 ve .NET 1.1 (C # 2.0, Haziran 2006’da piyasaya sürüldü).
  • JavaScript vardı, ancak Node.js yoktu (2009’da geliştirildi) 
  • jQuery yoktu

    (Ağustos 2006’da tanıtıldı)

    ve diğer JS frameworkler yoktu 

  • Amazon EC2, Ağustos 2006’da herkese açıldı
  • Heroku 2007’de kuruldu.
  • Git ilk önce 2009’da herkes tarafından görüldü.

İşin aslı, 2003 de Facebook’un seçtiği PHP, oluşturulduğu tarihte mükemmel bir seçim oldu.

Açıkçası Facebook PHP’yi kullanırken çok başarılı olmuştur.

Mayıs 2013’ten bu makaleye bakın , 

5 Reasons Why the Web Platform War is Over: PHP Won with 75% says Google

Başlangıçta “Facebook’un uygulamalarını neden PHP ile yazdı” sorusuna cevap verdim.

Bazı insanlar “neden bugün Facebook’un tüm kodlarını yeniden yazmaz yada yazmalı ?” diye soruyorlar. 

Node.js veya Go’nun avantajları veya diğer diller ile ilgili bir sürü açıklama mevcuttur.

Eski dili sevmemekten başka bir dilde büyük bir kod tabanını yeniden yazmak için ciddi bir gerekçenin bulunması gerekir.  Bunun yanında onlarca yıllık deneyime dayanan bir çok bilgelik, birikmişlik vardır bunu çöpe atamazsınız.

Ama tabi bunu facebook isterse yapar mı elbette yapar başka bir dile tüm kodları taşır fakat bunun maliyeti ve geliştirme süresinde php tarafındaki bugfix zamanı tartışmalı konudur.

Çünkü bugün facebook 600 milyon satır koda (sadece php kodu değil tüm sistemin kodları) ulaşmıştır.

Bonus :Facebook mimarisi ve hangi teknolojileri kullandıklarını merak edenler buradan bakabilirler.

image

Bir kod sistemini yeniden yazmak ve moda olan yeni bir dile geçmek için zorlayıcı bir sebebiniz olmalıdır. Modayı takip etmek zorunda değilsiniz. 

Yeniden yazmanın maliyetini haklı gösteren bazı işlevsellik veya üretkenlik kazancı elde edeceğinizi göstermek zorundasınız.  

Özetle 

Bir geyik vardır ya forumlarda ve facebook gruplarda görürüz 

-PHP kötü ya, çok kötü bir dil ya php

-yok abi ya kötü olur mu , facebook bile php ile yazılmış kötü olsa yazılır mı ?

buna bir cevap olur bu yazı bence 

Tabi bugün Facebook , HHVM ve diğer 3.parti uygulamaları ile PHP daha verimli oldu. 

(düzenleme (2019) php 7.1 hhvm aynı hıza sahip oldu.)

Benim düşüncem ve görüşüm php esnek bir dil ve size kurallar koymuyor, php programcıları bu yönünü hep istismar etti ve kötüye kullandı o yüzden ortalık  php ile dökümante edilmemiş ne olduğu anlaşılmayan bir sürü spagetti kod ile doldu. 

PHP 5 den sonra ve usulüne uygun php  ile bu sorunlar kısmen giderildi 

Composer ve Sympony framework  ile PHP bir anlam kazandı. Sympony ve ZEND 1 bence mükemmel bir mühendislik ürünüdür.

Php fanı değilim kendine göre çok iyi yönleri olduğu gibi diğer dillere göre de mimari açıdan çok eksikleri var.