211service.com
Sekret rozwoju Twittera
Na Targi Web 2.0 Dzisiaj w San Francisco Alex Payne z Twittera omówił szczegóły techniczne języka programowania, który, jak ma nadzieję, pomoże jego firmie poradzić sobie ze wzrostem ruchu, którego doświadczyła w ciągu ostatnich kilku lat. Firma pozostawia za sobą język programowania, który sprawiał jej wiele bólu w przeszłości, i zamiast tego przyjmuje nowy i nieco niejasny język o nazwie Scala.
Trochę tła: Twitter, usługa, która pozwala ludziom publikować 140-znakowe wiadomości do znajomych i opinii publicznej, została uruchomiona w 2006 roku i szacuje się, że obecnie ma około ośmiu milionów unikalnych użytkowników. Gdy dana osoba publikuje krótką wiadomość na Twitterze, usługa publikuje ją w Internecie i wysyła do telefonów komórkowych i aplikacji Twittera. Koncepcja jest prosta, ale pod maską technologia jest bardziej skomplikowana.
Popularny internetowy język programowania Ruby on Rails jest odpowiedzialny za wygląd interfejsu użytkownika Twittera, a także wielu innych stron internetowych. Ponieważ interfejs użytkownika, znany jako frontend, opierał się na Ruby, sensowne było używanie Rubiego do operacji zaplecza, takich jak kolejkowanie wiadomości. Jednak wraz ze wzrostem popularności Twittera zbudowany przez Ruby back-end nie był w stanie obsłużyć potoku wiadomości, które pojawiły się na jego drodze – sytuacja, która spowodowała nagłą popularność Wieloryb nieudany , komunikat o błędzie, który Twitter wysyła do użytkowników w przypadku awarii usługi.
Więc zespół Twittera zwrócił się do Drabina , język programowania z jego pochodzenie w pracy przez Marcin Oderski , profesor at EPFL w Lozannie w Szwajcarii, około 2003 roku. Podczas swojej prezentacji Payne, który również pisze książkę o tym języku, wyjaśnił, że Scala ma wiele zalet innych języków, ale bez wad. Niektóre z cech, które sprawiają, że Scala jest tak atrakcyjna dla Twittera, to fakt, że jest on w stanie efektywnie obsługiwać współbieżne przetwarzanie – czyli oddzielne instrukcje, które muszą jednocześnie korzystać z zasobów systemu. Jest to przydatne, gdy wiadomości od milionów ludzi muszą zostać natychmiast wysłane na różne urządzenia na całym świecie.
Jest również elastyczny dla programistów, mówi Payne. Jeśli programista chce większej struktury, Scala oferuje strukturę, ale jeśli chce więcej programowania swobodnego, również na to pozwala. Co ważne, dla Payne'a i inżynierów z Twittera Scala to nowy, ekscytujący i piękny język, który utrzymuje zaangażowanie zespołu. Programiści wciąż mogą poczuć, że przyczyniają się do rozwoju czegoś nowego i świeżego. Nie dotyczy to bardziej znanych języków, takich jak Java czy C++.
Scala nie jest idealna, zauważa Payne, ale jej zalety znacznie przewyższają jej wady. Najbardziej rażącą wadą jest to, że jest nieco trudny do nauczenia, ponieważ ma mnóstwo funkcji i składni, z którymi niektórzy programiści mogą nie być zaznajomieni, mówi. Dodatkowo jest stosunkowo nowy, co oznacza, że nie ma udokumentowanych osiągnięć. Ale Payne mówi, że on i Twitter są gotowi zaryzykować, ponieważ język sprawdził się już w wielu przypadkach testowych.
W tej chwili usługa Twittera jest hybrydą języków programowania, mówi Payne. Interfejs użytkownika działa na Ruby on Rails, co jest dobre dla osób, które klikają strony internetowe, mówi. Ale do końca roku Twitter ma nadzieję, że będzie miał zestaw usług na zapleczu, które są w całości napisane w Scali. Planem firmy jest upewnienie się, że wszystkie usługi innych firm, które łączą się z Twitterem za pośrednictwem interfejsu programowania aplikacji (API), przechodzą przez kod Scala, całkowicie omijając Ruby on Rails. Kiedy mówisz o kilku programach, które szybko uderzają w API, Payne mówi: Odkryliśmy, że możemy lepiej zoptymalizować rzeczy… używając Scali.