URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 120661
[ Назад ]

Исходное сообщение
"Релиз языка программирования Haxe 4.1"

Отправлено opennews , 17-Май-20 11:42 
Доступен релиз инструментария Haxe 4.1, включающего одноимённый мультипарадигменный высокоуровневый язык программирования со строгой типизацией, кросс-компилятор и стандартную библиотеку функций. Проектом поддерживается трансляция в С++, HashLink/C, JavaScript, C#, Java, PHP, Python и Lua, а также компиляция в байт-код JVM, HashLink/JIT, Flash и Neko, с доступом к родным возможностям каждой целевой платформы. Код компилятора распространяется под лицензией GPLv2, а стандартной библиотеки и развиваемых для Haxe виртуальных машин HashLink и Neko под лицензией MIT...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=52974


Содержание

Сообщения в этом обсуждении
"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 17-Май-20 12:32 
Хороший язык. Разрабатывать на нем, конечно же, не буду.

"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 17-Май-20 21:13 
Да и котлин уже есть.

"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 17-Май-20 21:40 
можно на котлине не разрабатывать?

"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 18-Май-20 10:42 
а вот это никак нет

"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 18-Май-20 13:17 
А вот и можно, плюсы уже есть.

"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 18-Май-20 21:44 
Котлин jvm Онли ну ещё за немного жс
Для утомлённых джавой вопщем
Хотя форсят как мульт платформ
А хекс истинный мультиплатформенный яп

"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 17-Май-20 12:38 
Проблему с GIL в Python он решает?

"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 17-Май-20 12:50 
Проблема с GIL только у кодеров, которые не понимают зачем нужен GIL и питон вообще

"Релиз языка программирования Haxe 4.1"
Отправлено Вы забыли заполнить поле Name , 17-Май-20 13:09 
Ну то есть у 90%

"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 17-Май-20 14:00 
Расскажи нам, зачем же нужен GIL? Почему нельзя без GIL обойтись?

"Релиз языка программирования Haxe 4.1"
Отправлено jOKer , 17-Май-20 14:25 
Может быть потому что без GIL весьма велика вероятность возникновения состояния "гонка за ресурсами", а накладные расходы интерпретатора существенно возрастают?

ЗЫ Вообще-то на этот вопрос, в свое время, Гвидо уже ответил весьма и весьма развернуто. Больше читаем, и меньше возмущаемся на формах, приятель. А заодно учимся понимать как могут помочь делу сопрограммы, и почему в бинарных библиотеках ограничения GIL не действуют.


"Релиз языка программирования Haxe 4.1"
Отправлено Вы забыли заполнить поле Name , 17-Май-20 14:56 
> и почему в бинарных библиотеках ограничения GIL не действуют

Пока к питоновским структурам дынных не обращаешься, иначе нужна синхронизация?


"Релиз языка программирования Haxe 4.1"
Отправлено jOKer , 17-Май-20 18:56 
Тут все немного сложнее. Событийно-ориентированного механизма на этом уровне нет. Следовательно, требуется реализовать несколько нитей-тредов и заставить один из них тупо ждать пока бинарная библиотека не отработает.

В момент, когда такой поток делает запрос к бинарной библиотеке он отпускает GIL (глобальная блокировка так же отпускается при переходе потока-владельца в ожидание событий ввода-вывода и каждые 100 тиков проца), и другие нити могут спокойно в это время работать. Когда же от бинарной библиотеки приходит ответ, то нить может сохранить полученный ответ в очереди для использования другими потоками. Конечно, в этот момент /момент сохранения/ так же будут действовать правила GIL, но это будет уже не так важно, потому что тяжелые много-поточные вычисления, реализованные на уровне внешней библиотеки, к этому моменту уже будут завершены.


"Релиз языка программирования Haxe 4.1"
Отправлено анонимут , 17-Май-20 20:12 
Чтобы обойти ущербность Python разрабатывали вложенные интерпретаторы для обхода GIL, но что-то пошло не так. Запустить несколько экземпляров Python интерпретаторов реализуемо. Pandas и Numpy это расширения написанные на C. Me

"Релиз языка программирования Haxe 4.1"
Отправлено jOKer , 17-Май-20 21:37 
> Чтобы обойти ущербность Python разрабатывали вложенные интерпретаторы для обхода GIL,
> но что-то пошло не так. Запустить несколько экземпляров Python интерпретаторов реализуемо.
> Pandas и Numpy это расширения написанные на C. Me

Несколько интерпретаторов... точнее субинтрепретаторы (subinterpreters) появились совсем недавно, в питоне 3.8, и в данный момент их реальное использование, я бы сказал, действительно натыкается на ряд концептуальных проблем (маршалинг штука медленная, а идея общей памяти с указателями пока не имеет своего пепа, насколько мне известно). Так что, ИМХО, фича является скорее эксперементальной, нежели реально работающей в продуктиве. Хотя концепция очень интересная, поскольку субинтерпретаторы легче чем процессы, хотя и тяжелее нитей, в смысле накладных расходов на их запуск.

Но еще раз - это все только-только появилось. Так что кукарекать о том, что "что-то пошло не так" немного рановато))) Хотя те, кто о питоне судит в русле его "ущербности" как раз так и кукарекают.


"Релиз языка программирования Haxe 4.1"
Отправлено анонимут , 19-Май-20 12:14 
Одна из причин ущербности Python это реальная мультипоточность которая может быть только в расширениях, но это уже совсем другой язык C. Синонимы к слову ущербность недостаточность и неполноценность.

"Релиз языка программирования Haxe 4.1"
Отправлено Owlet , 17-Май-20 19:58 
Он позволяет не беспокоиться о состояниях гонки внутри интерпретатора. Использование для этого более гранулярных локов очень сильно затормозило бы однопоточные программы, для которых питон чаще всего и используют. А введение async/await (ну и всякие twisted с greenlet) позволяют и сетевые программы успешно писать.

"Релиз языка программирования Haxe 4.1"
Отправлено topin89 , 17-Май-20 20:36 
> Для чего нужен GIL?

Он нужен для конкурентной многозадачности без сложного кода атомарного доступа к одним и тем же объектам из разных потоков. Это нужно, чтобы банальное присвоение любого объекта не прерывалось на середине. Я не знаю, когда был введён GIL, но судя по патчу для Python 1.4, который его удаляет, в 1996 году он уже стал частью Питона.

Глобальный блокировщик -- идея очень простая, и введена как раз поэтому. Да, она не позволяет работать на множестве ядер, но будем честными, в 1996 году об этом точно никто не задумывался. Я не знаю, когда именно был введён GIL, но первые x86 двухядерные процы появились сильно позже, да и многопроцессорные системы были достаточно редкими, чтобы о них париться.

В ядре линукса было что-то похожее, Big Kernel Lock

> Почему нельзя без GIL обойтись?

Можно. Если есть деньги на развитие и поддержку проекта, то вполне можно заменить мегалок на много атомарных. В Джаве нет. В Шарпе нет. В Linux нет с 2011 года (заметим, спустя шесть лет с выхода многоядерного x86).

Но это сложно, однозначно приведёт огромному количеству сложноуловимых багов и на первых порах сильно просадит однопоток. А на последних сделает добавление новых фич очень затратным делом.

Теперь ответ на вопрос, а какие есть альтернативы в Питоне: многопроцесность. Да, как в хроме, можно запустить питонов по количеству ядер и организовать проброс сообщений между ними через очереди (Queue). В большинстве случаев этого хватает. Тот же flask так делает. Часто сложный, долгий код выносят в C(++), где можно наплодить потоков как душе угодно, если они не меняют в разных потоках переменные питоновского кода.

Кстати, GIL -- это то самое "лучше чем ничего". Года три назад, в PHP многопоток был небезопасен, в JavaScript его не было вовсе, в Lua каком-нибудь и до сих пор нет. В нативных языках типа C(++) или Fortran атомарное присвоение не гарантируется, там проще. В Rust подрублен серьёзный статический анализ. Не знаю, как там в остальных языках.


"Релиз языка программирования Haxe 4.1"
Отправлено Вы забыли заполнить поле Name , 17-Май-20 21:30 
> Кстати, GIL -- это то самое "лучше чем ничего". Года три назад, в PHP многопоток был небезопасен, в JavaScript его не было вовсе

В JavaScript такая же кооперативная многозадачность, чем по сути GIL и является. Ну а node.js в libuv есть пул потоков.

> В нативных языках типа C(++) или Fortran атомарное присвоение не гарантируется, там проще.

В C++ начиная с 11 года стандартизирована модель памяти и есть атомики.


"Релиз языка программирования Haxe 4.1"
Отправлено анонимут , 19-Май-20 12:18 
> Глобальный блокировщик -- идея очень простая, и введена как раз поэтому

От которой постоянно пытаются избавиться

Так Python создавался для обработки текста. И как замена bash скриптам ok. Но писать на нем приложения в десятки тысяч строк идиотизм потому что они рассыпаются из-за обычных опечаток. Или писать миллионы тестов


"Релиз языка программирования Haxe 4.1"
Отправлено Вы забыли заполнить поле Name , 19-Май-20 17:23 
> Так Python создавался для обработки текста.

Откуда инфа? Это про perl.

>  потому что они рассыпаются из-за обычных опечаток

Ну это претензия к любому динамически типизируеимому языку. Да и зависит от связности кода. А по теме есть опциональная проверка типов.


"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 19-Май-20 13:51 
> В Rust подрублен серьёзный статический анализ.

Который предотвращает только data races (подкласс race conditions). Это, конечно, облегчает, но не избавляет от необходимости следить за низкоуровневыми деталями реализации многопоточности.
Для стандартных задач принято использовать либы напр. https://github.com/rayon-rs/rayon и
https://tokio.rs/ | https://async.rs/


"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 18-Май-20 21:45 
Да
Пишеш код на хекс
И компилируеш в jvm таргет

"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 17-Май-20 12:54 
Нахе* нужен! ;)

"Релиз языка программирования Haxe 4.1"
Отправлено Z , 17-Май-20 14:19 
Кому?

"Релиз языка программирования Haxe 4.1"
Отправлено Gogi , 17-Май-20 20:10 
Хипстерам же, ну! Чё б ни изучать, лишь бы не работать. :)

"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 17-Май-20 13:07 
Нет ничего более убогого, чем фигурные скобки в качестве операторных.

"Релиз языка программирования Haxe 4.1"
Отправлено заминированный тапок , 17-Май-20 14:54 
ну как же, есть - отступы

"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 18-Май-20 13:20 
Пора бы уже свести все языки к принудительным отступам со скобками, чтобы все страдали и этот унылый срач закончился.

"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 18-Май-20 20:43 
И никаких Lint. А если бы еще проверяло орфографию в названиях переменных и т.д. - брал бы сразу. Как наделают своих сокращений и завернут в крокодилы/простыни - сиди и думай что сказать то хотели. А так сразу на уровне компиляции по рукам давать.

"Релиз языка программирования Haxe 4.1"
Отправлено Трололо , 23-Май-20 00:44 
Освой уже Go, бро :)

"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 17-Май-20 13:46 
Кто-нибудь юзает? и для каких кейсов

"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 17-Май-20 14:43 
Для игор https://github.com/abagames

"Релиз языка программирования Haxe 4.1"
Отправлено mos87 , 17-Май-20 15:43 
Для ненужна

fxd


"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 18-Май-20 13:21 
Для ненужнов нужна космическая капсула, чтобы выкинуть их всех в космос и они перестами переводить ресурсы на земле.

"Релиз языка программирования Haxe 4.1"
Отправлено mos87 , 18-Май-20 20:04 
> Для ненужнов нужна космическая капсула, чтобы выкинуть их всех в космос и
> они перестами переводить ресурсы на земле.

верно. авторы сабжа займут места в партере.


"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 17-Май-20 15:48 
https://haxe.org/use-cases/
Веб еще норм, особенно если захочешь потом написать мобильное приложение, реюзнув логику / структуры данных клиента/сервера.

"Релиз языка программирования Haxe 4.1"
Отправлено mos87 , 18-Май-20 20:04 
> https://haxe.org/use-cases/
> Веб еще норм, особенно если захочешь потом написать мобильное приложение, реюзнув логику
> / структуры данных клиента/сервера.

не-гумновеб структуры нельзя реюзать??


"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 18-Май-20 20:18 
Узнай что такое структуры данных пожалуйста, вместо триггеринга на слово веб в предложении

"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 17-Май-20 13:52 

final people = [
    "Elizabeth" => "Programming",
    "Joel" => "Design"
];

Выглядит по PHP-шному, где это просто ядерная смесь понятия "массив" и "ассоциативный массив" -- реально бесит в итоге.


"Релиз языка программирования Haxe 4.1"
Отправлено Мока , 17-Май-20 14:11 
Это синтаксис ассоциативного массива (Map<String, String> если точнее), для обычных будет [1, 2, 3] например (Array<Int>)

"Релиз языка программирования Haxe 4.1"
Отправлено КО , 17-Май-20 14:36 
Это пол беды, а вот как он узнает, что "Elizabeth" это name?

"Релиз языка программирования Haxe 4.1"
Отправлено snut , 17-Май-20 14:59 
name это имя переменной о которой знает программист который этот код написал. Не передергивайте

"Релиз языка программирования Haxe 4.1"
Отправлено пох. , 17-Май-20 15:41 
я полагаю, он не передергивает, а реально не понял, что за херня тут написана и где определения этих name и job. А их и нету ;-)

"Релиз языка программирования Haxe 4.1"
Отправлено анонимуслинус , 17-Май-20 16:27 
ну учитывая, что это строгая типизация то вполне справедливое замечание. но видимо этот язык похож этой чертой на питона, где такое норма, но все же действительно странно.

"Релиз языка программирования Haxe 4.1"
Отправлено пох. , 17-Май-20 15:40 
из for name => job  - где name и job - это просто первое что придумал афтырь, очевидно же ж.


"Релиз языка программирования Haxe 4.1"
Отправлено Мока , 17-Май-20 16:47 
Потому что Map это структура ключ-значение. Такой for тоже (key => value), где можно назвать их как удобнее для итерации. Знает, потому что ключ слева, а значение справа =)

"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 17-Май-20 17:17 
А как узнать, что 180 - это количество комментариев на опеннете, а не iq?

Как всегда, либо называть понятным образом переменные, либо добавлять domain level типизацию через инструменты определения пользовательских типов, присутствующие в данном языке.


"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 17-Май-20 17:18 
По пхпшному - это смешать все в кучу. Тут же явно задаётся map string-string.

"Релиз языка программирования Haxe 4.1"
Отправлено Онаним , 17-Май-20 14:13 
"р" в конце не хватает.

"Релиз языка программирования Haxe 4.1"
Отправлено mos87 , 17-Май-20 15:45 
что люди ни делают только бы не почитать пол часа ман перл

"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 17-Май-20 16:11 
У вчерашней школоты не модно жи)

"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 17-Май-20 16:20 
Вменяемые люди, рационально используют свое время

"Релиз языка программирования Haxe 4.1"
Отправлено mos87 , 17-Май-20 18:13 
> Вменяемые люди, рационально используют свое время

покупают поддержку Майкрософт Лангуаге Фор Професионалс Про++ !!!1111 пыщпыщ


"Релиз языка программирования Haxe 4.1"
Отправлено Вы забыли заполнить поле Name , 17-Май-20 17:20 
87 в нике - это год производтсва? тогда не удивлен

"Релиз языка программирования Haxe 4.1"
Отправлено Эксперт , 17-Май-20 17:50 
Что пережитки коммунизма не делают, лишь бы теплое с мягким сравнивать.

"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 23-Май-20 23:17 
> почитать пол часа ман перл
> пережитки коммунизма

Распространенный вариант, когда под одним идиотским комментарием оставили другой идиотский комментарий :)


"Релиз языка программирования Haxe 4.1"
Отправлено MPEG LA , 17-Май-20 18:28 
и что это даст пользователям Haxe?

"Релиз языка программирования Haxe 4.1"
Отправлено Gogi , 17-Май-20 20:12 
Ответ на вопрос, "зачем нужен нахе"? Ответ: нахе-р не нужен.

"Релиз языка программирования Haxe 4.1"
Отправлено коржик , 18-Май-20 09:01 
блин, а смешно, даже немного неловко

"Релиз языка программирования Haxe 4.1"
Отправлено MPEG LA , 18-Май-20 13:12 
> Ответ на вопрос, "зачем нужен нахе"? Ответ: нахе-р не нужен.

мимо, для ответа на этот вопрос перл не нужен.


"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 18-Май-20 01:52 
> ман перл

Эй некрофил, а по теме есть сказать что? А может новость почитать внимательнее и после комментировать? А еще лучше не полениться и вначале хотя бы вики глянуть по haxe?


"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 17-Май-20 23:21 
Сколько максимально можно сделать платформ?

"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 18-Май-20 03:33 
хороший язык, только не понятно как не нем начинать проект. В с++ просто, cmake, main.cpp, в rust тоже всё подробно описано в мануале, а тут?

"Релиз языка программирования Haxe 4.1"
Отправлено Мока , 18-Май-20 07:27 
Здесь у каждой платформы можно прочитать какой сетап:
https://haxe.org/manual/target-details.html
Для большинства достаточно команды типа `haxe --js main.js --main Main`
Для Java/С# можно поставить вспомогательную библиотеку для использования jar/dll либ.
Для C++ вспомогательная часть для компиляции в кучу платформ тоже в либе реализована.
Еще более простое описание, начиная с DE вот на этой странице для части таргетов:
https://haxe.org/documentation/introduction/
Вкратце: поставить хакс, vscode c плагином (https://marketplace.visualstudio.com/items?itemName=nadako.v...), открыть им пустую папку и в палитре команд выбрать "Haxe: Initialize Project".

"Релиз языка программирования Haxe 4.1"
Отправлено Онаним , 18-Май-20 09:02 
Хвост воблы, глаза иволги, вот это всё.

"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 18-Май-20 14:17 
Спасибо за ссылки, сейчас копаюсь как оно в lua транслируется, идея супер у языка

"Релиз языка программирования Haxe 4.1"
Отправлено Аноним , 18-Май-20 10:52 
Молодец. Защитил диплом-то?
А так чего не сделают, что бы C/C++ не изучать.

"Релиз языка программирования Haxe 4.1"
Отправлено Nicolas Cannasse , 18-Май-20 14:06 
Да, себе и другу
https://store.steampowered.com/developer/shirogames
https://store.steampowered.com/developer/MotionTwin

"Релиз языка программирования Haxe 4.1"
Отправлено Im banana man , 18-Май-20 12:53 
Забавный академический язык )