Jedna firma z Wall Street našla výpočetní úspěch nikoli na tradiční cestě podnikové Java, ale v nejasném funkčním programovacím jazyce zvaném Caml, který nabídl dokonalý kompromis shody a čitelnosti.
Obchodní firma Jane Street říká, že Caml jí dala výkonnou sadu nástrojů pro vytváření velkých programů, které musí běžet rychle a bez chyb.
"Obrovské množství každodenního programování je analýza případů. Správné nastavení vašich programů je opravdu těžké a každý nástroj, který můžete ze systému získat, aby pomohl zachytit chyby, je užitečný," řekl Yaron Minsky, vedoucí technologické skupiny na Jane Street, mluvící v pátek na vývojové konferenci QCon v New Yorku.
Jane Street je vlastnická obchodní firma, která je největším průmyslovým uživatelem Caml a OCaml na světě, objektově orientovanou verzí Caml.
Všechny obchodní a pomocné systémy Jane Street používají Caml, s výjimkou nějakého kódu C pro nízkoúrovňová systémová rozhraní a některé tabulky skriptů pro podporu analytiků jazyka Visual Basic. Celkově vzato, Caml code zpracovává každý pracovní den v ulici Jane Street asi 20 miliard USD obchodů.
Společnost zaměstnává asi 60 programátorů, kteří buď Caml znali z jejich vysokých škol, nebo byli dost chytří, aby se ho mohli během školení naučit. Využívá ji také dalších 90 neprogramátorů ve společnosti.
Využití Caml Jane Street bylo téměř náhodné, řekl Minsky. Caml je dialekt funkčního programovacího jazyka ML, který je na univerzitách široce používán jako způsob výuky programování, ale dosud nenašel rozšířený úspěch mimo akademickou obec.
Minsky začal na Jane Street, zatímco ještě před deseti lety byl na postgraduální škole. Od doby, kdy se seznámil s Camlem, složil pro společnost řadu experimentálních programů, které byly později vtlačeny do výroby. Najal se také, jakmile dokončil Ph.D. v distribuovaných systémech.
V té době byla Jane Street „těžší pro obchodníky než pro technologie,“ řekla Minsky. Na tabulkách bylo mnoho VB kódu, ačkoli tento přístup pro společnost nebyl příliš škálovatelný, vzhledem k tomu, že neexistuje systém pro správu změn, který by kód aktualizoval na všech počítačích uživatele..
Jak se společnost začala více ponořovat do světa obchodování s počítači, Minsky nasadil Caml na to, co by se stalo základními systémy společnosti.
Jane Street se také zaměřila na Javu, kterou mnoho obchodních firem používá, ale způsob, jakým jsou vytvářeny podnikové programy Java, s jejich dynamickým objektově orientovaným přístupem, jim může ztížit pochopení a důvody, řekl..
Poznamenal, že jeden analytik společnosti rád přezkoumává každý kód, který běží v systému, přestože není programátorem. Prostě se posadí a pracuje skrz kód, dokud nechápe, co se děje. Caml může být snadno srozumitelný, jakmile dostanete syntaxi dolů.
Caml nabízí také některé přirozené výhody. Je to funkční jazyk, takže poskytuje dobrou podporu pro programovací funkce.
„Můžete vytvořit funkci, předat ji jiné funkci a nechat ji vrátit řadu funkcí,“ řekl Minsky. Funkce jsou „hodnoty třídy, které lze předávat jako cokoli jiného“. V mnoha programovacích jazycích nemohou být funkce předávány jako hodnoty, nebo je třeba je předávat ručně.
Hodnoty dat jsou také neměnné ve funkčním programovacím jazyce. To znamená, že programy nefungují „mutací buněk uvnitř vašich datových struktur, ale hodnocením výrazů,“ řekl Minsky.
Caml je staticky typizovaný systém, což znamená, že existuje soubor pravidel o každém datovém typu, se kterým systém pracuje. Zpravidla je snazší zachytit chyby ve staticky zadaných jazycích než u dynamicky zadaných systémů, jako je JavaScript nebo Python. To zrychluje výpočty, protože program předem ví, s jakým druhem dat pracuje.
"Měl jsem hluboce dobré zkušenosti s programováním v tomto stylu, kde pomocí systému typů pomáháte zachytit důsledky vašich změn," řekl Minsky. "Můžete napsat špatný kód v jakémkoli jazyce, ale pokud víte, co děláte, můžete použít typový systém jako součást svého návrhu k výraznému zlepšení správnosti vašich programů."
Zatímco jen málo lidí může mít Caml na svých životopisech, bylo snadné najít kvalitní programátory, řekl Minsky. Ti, kteří znají Caml nebo obecně funkční programování, jsou nad programovacím modelem nadšeni.
Poprvé, když se Minsky snažil najmout programátory, zveřejnil oznámení na konferenci Caml a nakonec z odpovědí najal tři lidi.
Společnost také najímá programátory, kteří neznají žádného Camla, s odůvodněním - úspěšně, zatím - že pokud jsou dost chytří, mohou si vybrat jazyk při tréninku.
V průběhu času společnost použila Caml k vybudování nejen svého základního obchodního systému, ale také knihovny souběžnosti, sofistikovaného systému publikování a odběru a kolekce nástrojů pro automatizaci systému.
Celkově má společnost „obrovský počet systémů udržovaných malým týmem,“ řekl Minsky.
Používání tohoto temného jazyka má řadu nevýhod, řekl Minsky. Jedním z hlavních je nedostatek slušných nástrojů. Minsky borovice pro pokročilé editační nástroje, jako je automatické doplňování, které si uživatelé populárních IDE (integrovaná vývojová prostředí) užívají.
Pro zlepšení záležitostí však společnost vyvinula mnoho vlastních nástrojů, které má otevřené. Společnost také pomohla financovat společnost nabízející komerční podporu Caml nazvanou OCamlPro a laboratoř Caml na Cambridge University.
"Děláme vše, co je v našich silách, abychom tento jazyk posunuli kupředu. Naše 3 miliony řádků kódu neodcházejí. Závisíme na tomto jazyce a komunitě kolem něj," řekl Minsky. "Když používáte menšinovou technologii a jste úspěšní, měli byste být připraveni zaplatit později."
Joab Jackson se zabývá podnikovým softwarem a obecnými technologickými novinkami Informační služba IDG. Sledujte Joab na Twitteru na @Joab_Jackson. E-mailová adresa Joab je [email protected]
Připojte se ke komunitám World World na Facebooku a LinkedIn a přidávejte komentáře k tématům, která jsou na prvním místě.