Это может звучать как ересь, но некоторые разработчики сожалеют о своей приверженности JavaScript. Брайан Кардарелла, основатель Dockyard Dockyard в веб -разработке и мобильной разработке, является одним из таких разработчиков.
«Я занимаюсь разработкой программного обеспечения более 30 лет [and] Я видел это несколько раз, когда ваше технологическое решение повлияет на вашу производительность в конце дня, особенно когда сложность приложения растет в масштабе, — сказал Кардарелла новому стеку. — В JavaScript только характер его такова, что очень трудно масштабировать правильно ».
Это несмотря на усилия сообщества, добавил он.
«Сообщество JavaScript проделало героическую работу, чтобы попытаться обойти ограничения JavaScript, и это действительно впечатляет, как эта экосистема развивалась и выросла за последние 10 лет», — сказал он. «Но основная проблема — это то, как JavaScript управляет памятью и что он делает с точки зрения того, как вы создаете приложения — [IT] действительно собирается масштабироваться из -под контроля ».
Кардарелла видел, как предприятия жалуются на развитие, занимая недели или месяцы, чтобы внедрить функции, которые занимали день или два, из -за проблем масштабирования. Тем временем, добавил он, доставка снижается, пока расходы растут.
Кардарелла решил свои собственные проблемы с JavaScript, переключившись на Elixir и основанную на эликсире структуру веб-разработки Phoenix, которая является открытым исходным кодом.
По словам Cardarella, Dockyard является крупнейшим консультантом по эликсиру. Его список клиентов включает Netflix, NASDAQ и Adobe. Феникс был создан Крисом МакКордом прямо перед тем, как начал работать в Dockyard. Он провел шесть лет при поддержке Dockyard, разработав структуру и фронтальную структуру под названием Phoenix Liveview.
Эликсир: функциональный язык
JavaScript-это многопарадигма модель программирования, означающая, что он поддерживает несколько стилей программирования, включая объектно-ориентированное, функциональное и управляемое событиями программирование.
Эликсир, напротив, является функциональным языком программирования. Он меняет функции, а не данные. Вместо того, чтобы изменять данные, функциональная программа просто добавляет больше данных. Это было скорее проблемой, когда вычислитель был дороже.
«Исторически функциональное программирование было менее эффективным», — сказал Кардарелла. Это потому, что он делает копирование памяти или распределение памяти, где новая память создается в функциональном программировании.
«В нем говорится, что любые ценности должны быть скопированы, а затем вы работаете над копией этого исходного значения», — сказал он. «Таким образом, есть затраты на копирование и в более медленные вычислительные дни, эта стоимость была очень, очень очевидной, потому что программы будут работать медленнее, требует большей памяти, потому что у вас есть дублирование определенных значений».
«У Elixir так много данных, показывающих, что он требует меньше людей, имеет меньше затрат, делает действительно, действительно сложные вещи в компьютерных науках легко для достижения, но у нее нет поддержки крупной компании».
— Брайан Кардарелла, основатель Dockyard
Он также обрабатывает коллекцию мусора иначе, чем JavaScript. Вместо одного, глобального коллекционера мусора, который может приостановить все применение, каждый процесс эликсира имеет свою изолированную кучу и коллектор мусора. Это означает, что длительный процесс не выгибает память на неопределенный срок без сбора.
По его словам, результатом является более чистая программа с меньшим количеством побочных эффектов. Это означает, что разработчики могут двигаться быстрее и решать проблемы значительно быстрее, по более низкой цене.
«У Elixir так много данных, показывающих, что ему требуется меньше людей, меньше затрат, делает действительно, действительно сложные вещи в компьютерных науках легко для достижения, но у нее нет поддержки крупной компании», — сказал он. Он указал на тематическое исследование отчета об отбеливателе.
Отчет Bleacher, подразделение Turner Sports, является вторым по величине спортивным веб-сайтом в мире. Он консультировался с решением Erlang, чтобы перемещать рельсы на Феникс.
«Они смогли в основном сократить свою команду до 10% от того, что было ранее, потому что им больше не нужно было так много людей», — сказал Кардарелло.
Согласно тематическому исследованию, они также перешли от 150 производственных серверов до восьми и увидели следующие успехи:
- Способность справляться с восьмикратным трафиком без автомассалирования;
- Задержка 95 -го процентиля падала около 100 мс и не была заметно затронута дорожными шипами из -за появления новостей или других событий;
- Время добавления контента ко всем потокам составило с 30-40 секунд до 3-4 секунд;
- Ресурсные функции, ранее требующие агрессивного горизонтального масштабирования, работали примерно на 1/10 от серверов с низким использованием процессора.
Позднее Warner Media перенесли отчет Bleacher от Elixir, который Cardarella (и этот комментатор Reddit) приписал корпоративной политике.
Тем не менее, Эликсир может разочаровываться для тех, кто привык к JavaScript, сказал Карделла. С одной стороны, синтаксис значительно отличается. Напротив, Руст смог извлечь многие из сообщества JavaScript, потому что есть аспекты его синтаксиса, которые чувствуют себя знакомыми разработчикам JavaScript, добавил он.
Инструменты разработки эликсира
В дополнение к фениксу Framework для веб -разработки, McCord создал Phoenix Liveview, которая была выпущена в версии 1.0 в декабре. Phoenix LiveView использует инструменты HTML-rendered сервера и нативного WebSocket в Phoenix для создания функций в режиме реального времени.
Кардарелла признался в сообщении в блоге, что сначала ему было трудно увидеть ценность LiveView.
«Примерно в то же время я внутренне объявил о намерении от Dockyard дистанцироваться от проекта Ember.js», — написал он. В то время они использовали Phoenix на бэкэнде, но его объявление вызвало некоторую обеспокоенность в компании по поводу его специализации на фронте ».
«Я увидел порядок в производительности разработчика, которая была получена от написания эликсира по сравнению с любым другим языком, который я использовал в своей карьере», — сказал он. «Поэтому я искал эту замену, когда Крис строил ее прямо на моих глазах. К сожалению, это было слишком близко к моему лицу, и я слишком стар, чтобы читать что -то так близко, поэтому я потратил кучу денег, пытаясь собрать эликсир в webassembly».
То, что продало его в LiveView, так это то, насколько легко это создало несколько ключевых вопросов по сравнению с разработкой фронта на основе JavaScript, он продолжил, включая:
- Управление состоянием заявки;
- Сложность с рендерингом на стороне сервера и временем запуска приложения;
- Нет сложного компиляционного трубопровода; и
- Экосистемная стабильность. («По общему признанию, экосистема JS несколько менее волатильна, чем она была в 2018 году», — добавил он.)
Также есть LiveView Native, кроссплатформенная структура с открытым исходным кодом для создания собственных приложений, используя ту же базу кода, что и Phoenix LiveView. Это позволяет разработчикам создавать нативные интерфейсы с одним набором кода эликсира, оптимизируя процесс разработки и обеспечивая более быстрые циклы выпуска.
Если вам интересно, Elixirland опубликовала список инструментов в экосистеме Elixir.
Политика веб -развития
Эликсир — одна из великих неисчислимых историй в технологиях, утверждает кардарелло. Он говорит, что это упускается из виду из -за политических причин, маркетинговых причин, финансовой поддержки или просто потому, что люди хотят копировать крупные компании.
«Как правило, вы думаете, что разработчики программного обеспечения принимают лучшие технологические решения в том, что они делают, и это редко бывает», — сказал он. «Вместо этого мы склонны видеть, что языки и рамки, которые в конечном итоге являются популярными, популярны по причинам, которые не имеют ничего общего с их возможностями,… в то время как что -то вроде эликсира решает все эти проблемы и позволяет увеличить порядки производительности, но он еще не видел массового принятия».
Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Loraine Lawson — ветеран -репортер, который в течение 25 лет освещал технологические проблемы от интеграции данных до безопасности. Прежде чем присоединиться к новому стеку, она работала редактором Banking Technology Site Bank Automation News. Она … читайте больше от Лорейн Лоусон