Software engineer
  • Haxe как идеальный язык для разработчика full stack. Часть 1. JavaScript

    Дійсно, пропустив реліз флаг. Тепер так:
    nim js -d:nodejs -d:release --opt:size .\main.nim
    Але все одно досить багатенько сгенерувало джаваскрипту, на 1164 рядки.
    Source maps генерувати Nim ще не вміє для дебагу сгенерованого JS? Бачу лише відкритий пул реквест рік тому.
    Жити можна, звичайно. Мова все одно цікава. Але, все ж таки, я б її радив розглядати не як альтернативу JS, а скоріш як альтернативу «системним» мовам (с/c++/objc таргети). А JS, на мій погляд, у Nim більше як бонусом іде. Та це лише імхо.

  • Haxe как идеальный язык для разработчика full stack. Часть 1. JavaScript

    Вы же вырвали фразу из контекста. Там дальше написано, что современный стандарт весьма неплох. Потому что автор не считает, что с js что-то не так.
    Вас, кроме этого, больше ничего не заинтересовало?

  • Язык программирования Zig + язык V

    Да, сейчас их много наплодилось.Мне в предложку гитхаб подсовывает периодически всякое такое.
    Вот еще один новый «системный» язык:

    www.kitlang.org

    Підтримав: minodvesP Vasya
  • Haxe как идеальный язык для разработчика full stack. Часть 1. JavaScript

    Спробував порівняти якість генерації JS коду.

    Приклад с головної сторінки сайту Nim:

    import strformat
    
    type
      Person = object
        name: string
        age: Natural # Ensures the age is positive
    
    let people = [
      Person(name: "John", age: 45),
      Person(name: "Kate", age: 30)
    ]
    
    for person in people:
      echo(fmt"{person.name} is {person.age} years old")
    
    З такими флагами компіляції nim js -d:nodejs .\main.nim
    Генерує мені вихідний .js із 1484 рядками з на вигляд не самим оптимізованим кодом.

    В той час як аналогічний Haxe код:

    class Main {
    	static function main() {
    		final people:Array<Person> = [
    			{name: "John", age: 45},
    			{name: "Kate", age: 30},
    		];
    
    		for (person in people) {
    			trace('${person.name} is ${person.age} years old');
    		}
    	}
    }
    
    typedef Person = {
    	name:String,
    	age:Int
    };
    
    Генерує 16 рядків і жодного оверхеду. Чистий, майже руками написаний JS, який легко читається.

    P.S. Можливо у Nim є якісь флаги для оптимізації?
    --opt:size не допоміг, іншого не знайшов.

  • Haxe как идеальный язык для разработчика full stack. Часть 1. JavaScript

    Дійсно, є така мова. Якщо синтаксис подобається, то безумовно є сенс її розглянути. З хаксом у них багато спільних ідей. Проте, є і різниця — це важливо. Я обрав хакс :)

    Підтримав: minodvesP Vasya
  • Программисты с точки зрения психологии

    Говно уже засохло, а вы его на вентилятор. Не надо так

    Раньше нельзя было постить, я ждал пятницы. Такие правила.

  • Программисты с точки зрения психологии

    А ребятам ниже нравится.

  • Программисты с точки зрения психологии

    Стоит переименовать программистов в программистов-анальников?

  • Haxe как идеальный язык для разработчика full stack. Часть 1. JavaScript

    Я вот про это имел ввиду :)
    haxe.org/...​anual/cr-null-safety.html

  • Haxe как идеальный язык для разработчика full stack. Часть 1. JavaScript

    впечатлило, как в vs code можно дебажить js, когда работал с хаксом, для этих же целей приходилось дёргать хром.

    О, там не только JS. В vscode завезли еще дебаггеры под HashLink и C++!

    и рад, что ребята потихоньку доросли до 4ки

    У них прибавилось хороших разработчиков в штате, так что сейчас взялись основательно и пилят активно. Из последнийх крутых фич: нулл-безопасность и JVM таргет. Да и HashLink за это время выкатили.
    На 4.1, вроде как, тоже большие планы :)

    Підтримали: minodvesP Vasya, Galkin Roman
  • Haxe как идеальный язык для разработчика full stack. Часть 1. JavaScript

    Зайду из далека. Haxe — это тулкит, язык, кроссплатформенная стандартная библиотека и компилятор с ништяками. Все это создавалось для того, чтобы код писался на Haxe, а на выходе мы получали любой другой поддерживаемый компилятором язык.

    В чем это выражается?

    Собственно выражается в его идеи и концепции. Он изначально создан как язык, который будет преобразован во что-то другое.
    Так же как TypeScript создавался для того, чтобы быть преобразованным в JS. Просто у Haxe намного больше поддерживаемых платформ.

    Это повлекло за собой то, что компилятор оптимизирует код в зависимости от выбранного таргета, и генерирует максимально эффективный выхлоп. Стандартная библиотека заточена под каждый таргет отдельно, чтобы было минимум оверхеда при ее использовании и тд и тп.
    Все конструкции и оптимизации на уровне языка пилятся с пониманием того, что этот код потом должен работать эффективно на всех поддерживаемых таргетах.

    Другими словами, это не просто конвертер из одного языка в другой.

  • Haxe как идеальный язык для разработчика full stack. Часть 1. JavaScript

    а им и не нужно, они с выхлопом ScalaJS будут работать из своего JS.

    Вы статью читали? Про хакс прочитали? Мне кажется, что нет. Либо просто издеваетесь.

    фп не заканчивается на том что вы написали.

    Спасибо, я в курсе. Но вы же сами окрестили хакс как ООП байду. Я указал на то, что там присутствует и идеи из ФП, от части...
    Это перерастает в какой-то троллинг.
    И я искренне не понимаю, что вы хотите тут доказать. То, что все не ФП языки говно? Супер, возьмите пирожок с полочки и поцепите себе медаль за победы на фронте срачей ФП vs ООП.
    Мне же эти срачи не интересны.

  • Haxe как идеальный язык для разработчика full stack. Часть 1. JavaScript

    Давайте будем реалистами. JS разработчики не будут писать ни на скале, ни на хаскеле, потому что порог входа там намного выше. Это инструменты для скала и хаскель разработчиков. Как раз для них это оправданый инструмент, кто ж спорит.
    Однако, JS разработчики пишут на TS, который — тот же ООП. Все что я делаю — предлагаю рассмотреть альтернативу.

    К слову, в Haxe все является выражением — это из ФП. Сопоставление с образцом — это из ФП. Перечисляемые типы как форма алгебрагических типов данных — это из ФП.
    Более того, благодаря макросам можно реализовать определенные синтаксические концепции из ФП.

  • Haxe как идеальный язык для разработчика full stack. Часть 1. JavaScript

    Хаскель, скала, ни тем более С++\С# и многие другие из списка не разрабатывались для того, чтобы быть транслированными в JS. То, что их транслируют — это натягивание совы на глобус и эзотерика применимая только в определенных случаях.

    Haxe же изначально проектировался и затачивался под трансляцию в другие языки. К тому же хакс — это не только JS, а и десяток других таргетов. Именно отсюда выражение про лучший язык для фулл стэка: код легко переносится между платформами и разными языками. Пишешь на одном языке, а получаешь: нативные приложения через С++, веб через js и php, андроид через java и тд и тп.

    Задачи можно разные подсовывать и мерять по разному, и получать разный результат. По сему этот бенчмарк говорит только о производительности на конкретной задаче, на конкретном барузере, на конкретном железе.

    Предлагайте задачу, давайте мерять, сравним полученный код.

  • Haxe как идеальный язык для разработчика full stack. Часть 1. JavaScript

    Вибачте, то ви класи і ото всьо не використовуєте у сучасному стандарті, я сподіваюсь? :)

  • Haxe как идеальный язык для разработчика full stack. Часть 1. JavaScript

    В свое время, Google реджектил все заявки от Haxe Foundation на свои JS события. Совпадение? Не знаю, но очевидно, что не хотел конкуреции с Dart.
    У хакса нет MS или Google за спиной, потому продвигать язык самостоятельно им было сложно. Таким образом он остался где-то в тени. Но это не делает его плохим инструментом. Скорее даже наоборот: то, что он очень активно развивается спустя столько лет — только подтверждает его зрелость и серьезность.
    Собственно, я потому и пишу статьи, чтобы его популяризировать.

    Как вам удалось его завезти на проект(или это не прод)?

    Прод и не один :) Язык — это инструмент. JS разработчику писать на Haxe не сложнее чем на TS. У вас без проблем могут писать часть кода на JS, часть на Haxe — технически это не вызывает каких-то проблем.
    Можно даже сказать, что я не особо вижу смысла в вакансиях типа «Haxe разработчик». Потому что если вы пишете веб, то вам нужен именно JS разработчик, а не Haxe. На хаксе он сможет писать и так без проблем. Решающий фактор — это ведь не знания языка, а скорее знания платформы.
    Так что не вижу преград с его интеграцией. Преграда может быть разве что в некомпетентном руководстве.

    ---
    Haxe очень активно используется на проде в играх. Так сложилось исторически. Многие флешеры перешли на него.
    Тот же agar.io написан на OpenFL + Haxe;
    Papers, Please \ Dead Cells \ Evoland \ Northgard — это все тоже на Haxe, игры с большой аудиторией, десктопные платформы, консоли. Список действительно может быть большим, я назвал только то, что вспомнил.

    Используют его и в Slack для некоторых внутренних тулзов.
    Используют в известном 18+ стримминговом вебкам сервисе с милионной аудиторией и тд итп.

  • Haxe как идеальный язык для разработчика full stack. Часть 1. JavaScript

    В хаксе это можно сделать, но на уровне типов через статические расширения: haxe.org/...​/lf-static-extension.html

    Декорирования функций как у TS из коробки нет, но оно однозначно может быть реализовано через макрос. К сожалению, готовых решений не встречал.

  • Haxe как идеальный язык для разработчика full stack. Часть 1. JavaScript

    Жаль, англоязычная аудитория шутку не оценит.
    Но доля лулзов в названии есть, что поделать, не отрицаю :)

    Підтримали: minodvesP Vasya, Andrey
  • Haxe как идеальный язык для разработчика full stack. Часть 1. JavaScript

    Саме так. Окрім JS, Haxe дає можливість писати добре оптимізований платформонезалежний код під десяток мов, без будь-яких VM.
    Також, я писав, що він один із перших, якщо не перший, хто почав компілюватись в JS (2006 рік), тому назвати його «черговим» — м’яко кажучи некоректно.

  • Haxe как идеальный язык для разработчика full stack. Часть 1. JavaScript

    На уровне синтаксиса была добавлена поддержка разметки (в 4 версии), так называемых markup литералов: var v = <test/>. Которые могут быть распарсены в любой необходимый синтаксис макросами.

    Из готовых решений есть, например, вот такое: github.com/haxetink/tink_hxx

    Підтримав: Dmytro Shchurov
← Сtrl 123456...17 Ctrl →