The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Релиз языка программирования Haxe 4.0

27.10.2019 09:03

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

Язык является expression-ориентированным со строгой типизацией. Поддерживаются приёмы объектно-ориентированного, обобщённого и функционального программирования. Синтаксис Haxe близок к ECMAScript и расширяет его такими возможностями, как статическая типизация, автовывод типов, сопоставление шаблонов, дженерики, основанный на итераторах цикл "for", AST-макросы, GADT (Generalized Algebraic Data Types), абстрактные типы, анонимные структуры, упрощённые определения массивов, выражения для условной компиляции, прикрепление метаданных к полям, классам и выражениям, интерполяция строк ('My name is $name'), параметры типов ("new Main<String>('foo')") и многое другое.


   class Test {
       static function main() {
           var people = [
               "Elizabeth" => "Programming",
               "Joel" => "Design"
           ];
   
           for (name in people.keys()) {
               var job = people[name];
               trace('$name does $job for a living!');
           }
       }
   }

Основные нововведения версии 4.0:

  • Новый синтаксис для указания типа функций "(name:String, age:Int)->Bool" или "(String, Int)->Bool" вместо "String->Int->Bool".
  • Синтаксис стрелочных функций "(a, b) -> a + b" вместо "function(a, b) return a + b".
  • Защита от проблем, связанных с использованием значений Null (экспериментальная функция, включается при желании для определённых полей, классов или пакетов).
  • Ключевое слово "final" для полей классов и локальных переменных, которые являются иммутабельными. "final" также можно использовать для определения функций чтобы запретить их переопределение при наследовании и для классов/интерфейсов, которые не могут быть унаследованы.
  • Поддержка стандарта Unicode для базового типа "String" на всех целей компиляции за исключением Neko.
  • Переписанный с нуля встроенный интерпретатор, который теперь поставляется под именем Eval. Благодаря новому интерпретатору скрипты и макросы выполняются намного быстрее. Поддерживается режим интерактивной отладки.
  • Новая целевая система для компиляции (target) Hashlink - высокопроизводительный runtime, разработанный специально для Haxe, поддерживающий компиляцию в байткод для JIT или C, имеет простую интеграцию с C, а также доступ к низкоуровневым числовым типам и указателям.
  • Реализована новая целевая система JVM, которая позволяет генерировать байткод jvm, пропуская этап компиляции Java-кода через добавление флага "-D jvm" при таргетировании в Java.
  • Возможность inline-развёртывания на месте вызова функций или конструкторов, даже если они не объявлены таковыми.
  • Возможность включения статических расширений при объявлении типа (например "enum") с помощью "@:using(path.ToExtension)".
  • Абстрактные типы теперь поддерживают "set"-версию оператора "@:op(a.b)" для перезагрузки выражений "obj.foo = bar".
  • Синтаксис цикла "for" теперь поддерживает итерацию "ключ-значение": "for (key => value in collection) {}".
  • Поддержка использования xml-like разметки в выражениях: "var a = <hi/>;". Пока эта возможность доступна только для парсинга макросами и находится на этапе дизайна.
  • Синтаксис для опциональных полей в "полной" нотации типов анонимных структур: "{ var ?f:Int; }" (альтернатива "краткой" "{ ?f:Int }").
  • Значения перечислений теперь могут быть значениями по умолчанию для аргументов функции: "function foo<T>(option:Option<T> = None)".
  • Синтаксис "enum abstract Name(BasicType) {}" больше не требует префикса "@:" в "enum".
  • Авто-нумерация для абстрактных перечислений:
    
       enum abstract Foo(Int) {
         var A; // 0
         var B; // 1
       }
       enum abstract Bar(String) {
         var A; // "A"
         var B; // "B"
       }
    
  • Ключевое слово "extern" больше не требует использование префикса "@:".
  • Удалена возможность "implements Dynamic" для доступа к полям класса через строки. Доступно для extern-классов или через реализацию абстрактным типом.
  • Добавлен синтаксис "A & B" для пересечения типов, который на данный момент применяется только для анонимных структур и ограничений параметров типа. Старый синтаксис ограничений удалён.
  • Создание пустых экземпляров "Map" доступно через синтаксис "var map:Map<Int, String> = [];" по аналогии с массивом.
  • Добавлена структура данных "haxe.ds.ReadOnlyArray".
  • Метаданные теперь могут иметь пространства имен ("@:prefix.name function() {...}"). Аналогично с определениями: "#if (some.flag ... #end".
  • Новый протокол сервисов для IDE, используемых в плагине к VSCode.
  • Обновлены внешние определения (extern) для Web APIs и добавлены отсутствующие.


  1. Главная ссылка к новости (https://github.com/HaxeFoundat...)
  2. OpenNews: Увидел свет язык программирования Nim 1.0
  3. OpenNews: Сравнение производительности сетевого драйвера в вариантах на 10 языках программирования
  4. OpenNews: Открыты исходные тексты языка программирования V
  5. OpenNews: Открыты исходные тексты языка программирования Flow9
  6. OpenNews: Выпуск языка программирования Julia 1.1
Автор новости: Рыбла
Тип: Программы
Ключевые слова: haxe, lang
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (149) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 09:45, 27/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +51 +/
    В названии не хватает буквы "р".
     
     
  • 2.7, Аноним (7), 10:47, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это о многом говорит.
     
     
  • 3.105, Аноним (105), 02:04, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +13 +/
    > Это о многом говорит.

    Но в основном о комментаторе.

     
  • 2.13, Bbore (?), 11:19, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Факс или нахер?)))
     
     
  • 3.15, Аноним (15), 12:06, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Второе.
     
  • 2.139, Аноним (139), 19:35, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а что такое хаксеп?
     
     
  • 3.159, Ивал (?), 18:33, 31/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Светлый путь
     
  • 2.160, Azudim (??), 15:15, 03/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Хахе :)
     

  • 1.4, Аноним (4), 10:25, 27/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    И какова же (зявленная) целевая сфера применения? Уэб, ембеддед, аппликатион девелопмент?
     
     
  • 2.5, анономус (?), 10:32, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    насколько я знаю на нёи всякую индюшатину активно пилят
     
  • 2.8, Omnomnom (?), 10:57, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    https://haxe.org/use-cases/
     
  • 2.10, Капитан (??), 10:58, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +9 +/
    https://haxe.org/use-cases/
    В основном веб-сервисы и геймдев (Northgard, Dead Cells). Более строгая система типов в сравнении с надстройками вроде TypeScript, спека без жсных undefined, ===, прототипов и тд.
     
     
  • 3.79, vitalif (ok), 21:27, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > ncannasse
    > Haxe creator, co-founder at Shiro Games (Northgard, Evoland)

    Видимо большей частью хрень, которую сами написали и сами используют для своих игр

    Но по крайней мере да, то, что они это успешно заюзали под игры - уже что-то...

     
     
  • 4.100, Аноним (100), 23:23, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Просто не у всех есть желание и ресурсы пеариться. Язык на самом деле годный. По сути TypeScript для не-хипсторов: больше для реального применения, чем для возюканья с описанием типов (от которых в TS порой глаза на лоб лезут и появляются мысли, что JS-программист это приговор - настолько упороться могут только они и переход на TS ничего в этом не меняет).
     
     
  • 5.128, Георгий (??), 12:56, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Так и не понял, как там делать проекты, чтобы зависимости сами устанавливались, как в pip, maven и т.п. Какая-то путаница там со сборкой проектов и package-менеджерами.
     
  • 2.138, Аноним (138), 18:21, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Если игры можно писать - остальное подтянется
     

  • 1.9, Аноним (9), 10:58, 27/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    >интерполяция строк ('My name is $name'),

    Кто придумал для этого использовать одинарные кавычки вместо обратных, как в JS?

     
     
  • 2.14, Аноним (14), 11:54, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +18 +/
    Haxe:

    1) двойные кавычки — без интерполяции
    2) одинарные кавычки — интерполяция

    JS:

    1) двойные кавычки — без интерполяции
    2) одинарные кавычки — ВНЕЗАПНО тоже без интерполяции, делают ровно ТО ЖЕ, что и двойные
    3) обратные кавычки — интерполяция (пришлось заюзать в спеках ТРЕТИЙ символ, потому что первые ДВА символа оказались заняты для ОДНОГО и того же)

     
     
  • 3.18, Аноним (18), 12:37, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А с чего вы решили что они должны на JS ориентироваться?

    JS: 'foo${n}bar'

    c#: $"Hello, {name}! Today is {date.DayOfWeek}, it's {date:HH:mm} now."

    kotlin: "My Age Is: $age"

    бидон:    
    a = 12
    b = 3
    print(f'12 multiply 3 is {a * b}.')

     
     
  • 4.19, Аноним (18), 12:39, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    сорян, что немного не туда ответил, но считаю, что есть языки программирования, а есть js и php
     
     
  • 5.57, OpenEcho (?), 18:09, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    И на чем же пилит элита програмистов , и при этом достигнув такой же ну или хо... большой текст свёрнут, показать
     
     
  • 6.68, JL2001 (ok), 19:08, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > но нормальный то человек должен понимать, что молоток в руках обезьяны
    > - это оружие, в то время как у других - мощный
    > и удобный инструмент и что проблема не в молотке, а в
    > тех кто его использует.

    если молоток надо постоянно приматывать проволокой и придерживать, но он всё равно норовит тебе свалиться на ногу, или если молоток какой-то песочный или пластилиновый или просто резиновый - то что надо говорить?

     
     
  • 7.77, OpenEcho (?), 21:24, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > если молоток надо постоянно приматывать проволокой и придерживать, но он всё равно
    > норовит тебе свалиться на ногу, или если молоток какой-то песочный или
    > пластилиновый или просто резиновый - то что надо говорить?

    Вы знаете для веба более лучшие инструменты и людей умеющих за разумную плату делать то же что JS & PHP?

    Почему то Гугло карты работающие на JS работают, у вас же тот же инструмент должен вам падать на ногу... может просто вы его не умеете танцевать ?

     
     
  • 8.101, хотел спросить (?), 23:24, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Никто не знает потому что их просто нет JS - говноязык, накаченный стероидам... текст свёрнут, показать
     
     
  • 9.102, Crazy Alex (ok), 23:43, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    GWT Можно в принципе не продолжать, кто с этим непотребством дело имел - те в к... текст свёрнут, показать
     
     
  • 10.152, хотел спросить (?), 03:03, 29/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    От этого Java не стало таким же убожеством как JS Да и бридж весьма неплох, смо... текст свёрнут, показать
     
  • 7.80, Аноним84701 (ok), 21:28, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > или просто резиновый

    Ну, любители странных аналогий могут конечно и обычным стальным молотком (благо, есть резиновые насадки) стучать по плитке, ламинату, дереву, черепице, тонкой жести и т.д – но резиновый, обычно, все же удобнее.


     
     
  • 8.87, JL2001 (ok), 22:17, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    вы описываете киянку, а не молоток и когда у вас молоток превращается в киянку -... текст свёрнут, показать
     
     
  • 9.92, Аноним84701 (ok), 22:38, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Хм, а я думал, что это просто разновидность молотка КИЯ 769 НКА -и мн род -... текст свёрнут, показать
     
  • 6.71, Аноним (71), 20:33, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > другие же, наоборот, поверив в diversity, достигают реальных высот...

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

     
     
  • 7.81, OpenEcho (?), 22:03, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если вы собираетесь всю жизнь кодить только на любимом языке до старости и у вас... большой текст свёрнут, показать
     
  • 6.83, SOska (?), 22:11, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Массой goto... ну че сообщиш торвалдсу что его код уг?
     
     
  • 7.93, OpenEcho (?), 22:40, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Массой goto... ну че сообщиш торвалдсу что его код уг?

    Я не против goto, сам его пользую, т.к. в критических секциях это намного эффективней чем выкручиваться с оверхедами через "правильную" реализацию.

    Я говорил, что видел людей, которые на полном серьезе писали АРМ ГУИ (под дос) для электростанций, что то типа:

    printf("%s\n","someshit");L1:printf("%s","-------");if(i++<x) {goto L1;}else{goto L2;}; other_shit();

    именно так, в одну строчку и были гордые как индюки что они пишут на С-ях...

     
  • 4.21, Аноним (9), 13:25, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    С того, что заевляется, что  Haxe - реализация ECMAScript.
     
     
  • 5.24, Аноним84701 (ok), 14:13, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > С того, что заевляется, что  Haxe - реализация ECMAScript.

    Где и кем заёвляется? Анонимом?
    https://haxe.org/documentation/introduction/language-introduction.html
    > The Haxe Programming Language was designed to be simple yet powerful. Its syntax largely follows the ECMAScript standard, but [b]deviates where necessary[/b].

     
     
  • 6.37, Аноним (9), 16:09, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Вот-тут - absolutely unnecessary.
     
  • 3.22, Аноним (9), 13:26, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    >одинарные кавычки — ВНЕЗАПНО тоже без интерполяции, делают ровно ТО ЖЕ, что и двойные

    Нет, не ровно. В двойных не надо одинарные эскейпить. В одинарных не надо эскейпрть двойные.

     
     
  • 4.28, SOska (?), 15:06, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Нанотехнологии
     
     
  • 5.39, Аноним (9), 16:10, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Что сказать-то хотел?
     
  • 4.61, НяшМяш (ok), 18:46, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Прямо как в баше.
     
     
  • 5.136, Аноним (136), 17:14, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не, в баше же двойные кавычки с интерполяцией, а одинарные без
     
  • 3.121, Аноним (121), 10:13, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > 1) двойные кавычки — без интерполяции
    > 2) одинарные кавычки — ВНЕЗАПНО тоже без интерполяции, делают ровно ТО ЖЕ, что и двойные

    Так известно почему так. Потому что некоторые в HTML-е юзают одинарные, а кто-то двойные. Здесь ' или " равносильны. Вот тебе один кейс, почему так. Не вижу причин для паники

     
     
  • 4.125, КО (?), 10:36, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >Потому что некоторые в HTML-е юзают одинарные, а кто-то двойные.

    А некоторые и те и другие '"' или "'".

     
  • 3.143, Аноним (143), 21:22, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Haxe:
    >
    > 1) двойные кавычки — без интерполяции
    > 2) одинарные кавычки — интерполяция

    То есть ровно наоборот по сравнению с shell, perl, ruby, groovy, php и ещё кучей ЯП? Потрясающее решение!

     

     ....большая нить свёрнута, показать (27)

  • 1.11, Аноним (11), 11:18, 27/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    > поддерживается трансляция в С++
    > имеет простую интеграцию с C

    Может, сразу на C/C++ писать?

     
     
  • 2.12, Аноним (11), 11:19, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • –4 +/
    В том числе и веб на Wt.
     
     
  • 3.109, Аноним (109), 03:55, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Да нет никаких проблем. Делаешь импорт себе APR и начинаешь использовать Memory Pool и Reference count и все отлично. А зачем тащить отдельно какой-то набор библиотек да еще и написанных так себе мне вот не совсем понятно.
     
  • 2.25, Аноним84701 (ok), 14:19, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >> поддерживается трансляция в С++
    >> имеет простую интеграцию с C
    > Может, сразу на C/C++ писать?

    Может, лучше не быть ламером и писать сразу опкоды?


     
     
  • 3.29, SOska (?), 15:07, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да
     

  • 1.16, Аноним (15), 12:07, 27/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чисто академическая ценность?
     
  • 1.17, Аноним (18), 12:21, 27/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Какой смысл транслировать в C#, если можно в il код?
     
     
  • 2.20, Эх (?), 12:52, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Не разбираюсь, но из минусов: нельзя будет делать вставки на шарпе и работать код будет немного медленее без всех оптимизаций, что дает C# компиль. А так, скорее нет смысла все перепиливать для подобного таргета.
     

  • 1.23, Аноним (23), 13:54, 27/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    И какие программы на этом есть в линуксовых репах?
     
  • 1.27, ogmy (ok), 15:04, 27/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +30 +/
    Двадцать лет читаю OpenNet.
    Это занятие уже могло бы детей заводить.
    В 2019 решил завести аккаунт что впервые что то написать.

    С каждым годом сообщество все больше превращается в стадо безмозглых упырей с одной извилиной.
    Хаем все почем зря хотя сами ни хрена не понимаем.
    JS говно, PHP говно, С++ говно, новый язык программирования(технология) говно.
    Зачем конструктивная критика если любой писюн знает волшебное слово!

    Если бы весь мир был бы как текущее сообщество, с таким развитием мы бы до сих пор с палками бегали по лесам.
    Благо не все такие, но адекватные люди просто тонут в море дураков.

    Если вы не писали на языке или не использовали технологию в течении хотя бы пяти лет просто захлопните варежку.
    Вы не понимаете о чем говорите!

     
     
  • 2.30, SOska (?), 15:09, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Если на кажжу технологию и язвк тратить по 5 лет, то жизни не хватит на все ваши новогомнопридумки.
     
     
  • 3.32, вейланд (?), 15:36, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Это никак не мешает захлопнуть варежку.
     
  • 3.35, ogmy (ok), 16:07, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    А как вы хотели потыкать пальцем в С и кричать дерьмо, дерьмо там утечки памят... большой текст свёрнут, показать
     
     
  • 4.63, a3k (?), 18:58, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >А то что PHP самый быстрый скриптовый язык, с наиболее полной поддержкой объектно ориентированного программирования программирования среди всех скриптовых языков.

    Абстрактные классы, Трейты, Анонимные классы вы это видели в Python или Ruby, Perl ..?

    Поспорю. ООП в Python/Ruby более полный и универсальный, вплоть до метаклассов. И CRM на них получается лучше, чем на PHP. Но расплачиваться за это приходится скоростью. Так что тяжело сказать что лучше.

    >JS был создан за 10 дней дерьмо, дерьмо.

    Так даже шутка про "новый фреймворк в вебе каждый день" уже давно не актуальна: стек стабилизировался. Но до местных не доходит.

     
     
  • 5.82, ogmy (ok), 22:11, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Что тут спорить вы никогда не напишите В Python отсутствуют абстрактные классы ... большой текст свёрнут, показать
     
     
  • 6.91, Аноним84701 (ok), 22:30, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > В Python отсутствуют абстрактные классы и интерфейсы.

    Python ABC, начиная с 2.6.
    https://docs.python.org/2/library/abc.html
    > This module provides the infrastructure for defining abstract base classes (ABCs) in Python, as outlined in PEP 3119;
    > ABCs that can be used to test whether a class or instance provides a particular interface, for example, if it is hashable or if it is a mapping.

    .
    > Но из коробки нет и не предполагается.

    Т.е. нужность "import abc" == "из коробки нема" o_O?

     
     
  • 7.95, ogmy (ok), 22:53, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >> В Python отсутствуют абстрактные классы и интерфейсы.
    > Python ABC, начиная с 2.6.
    > https://docs.python.org/2/library/abc.html
    >> This module provides the infrastructure for defining abstract base classes (ABCs) in Python, as outlined in PEP 3119;
    >> ABCs that can be used to test whether a class or instance provides a particular interface, for example, if it is hashable or if it is a mapping.
    > .
    >> Но из коробки нет и не предполагается.
    > Т.е. нужность "import abc" == "из коробки нема" o_O?

    Читать между строк это талант.
    А прочесть комментарий внимательно религии не позволяет ?

     
  • 7.107, a3k (?), 02:06, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    import abc нужен в основном для тех же странных людей, что и functools. Оставляем часть методов нерелизованными -- ура, у нас есть абстрактный класс. Можно кидать NotImplementedError, чтобы точно никто не сделал объект.
     
  • 6.106, a3k (?), 02:04, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >В Python отсутствуют абстрактные классы и интерфейсы.

    Чойта нет? Всё есть. Ты ещё скажи, что в C++ нет интерфейсов.

    Это не проблема языка что для кого-то названия важнее концепций.

    >Попробуйте реализовать паттерн Bridge на чистом Python удобно будет
    >Отделить абстракцию от реализации в языке где нет абстракций.

    В Python/Ruby нет абстракций? Да ты ж наркоман. Ты же вообще на них не писал, да? Тогда к чему был тот опус в начале?

     
     
  • 7.119, ogmy (ok), 09:31, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Для тех кто в танке!

    Цитирую себя же <<<< В Python отсутствуют абстрактные классы и интерфейсы.
    В Ruby аналогично.
    Можно расширить модулями и там и там(Ryby Gem interface,  Python ABC, Zope interface). >>>>

    Прочти ---->>
    http://pythonicway.com/education/python-oop-themes/33-python-abstract-class

    Чойта ?
    http://gramota.ru/slovari/info/bts/

     
     
  • 8.127, a3k (?), 11:56, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ладно, я понял, что ты можешь написать php-скрипт на абсолютно любом ЯП Всё-так... текст свёрнут, показать
     
     
  • 9.129, ogmy (ok), 13:02, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Вопрос не в том как реализовать, а в том что вообще надо реализовывать то что до... текст свёрнут, показать
     
  • 6.113, Sw00p aka Jerom (?), 08:08, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >О каком полном ООП вы говорите

    Твоё ООП - моё кунг-фу, китайская мудрость.

     
  • 4.88, SOska (?), 22:19, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ой я и не говорил что они говно, но вы там сами своим ооп обмазывайтесь
     
  • 3.53, Ordu (ok), 17:42, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Если на кажжу технологию и язвк тратить по 5 лет, то жизни не хватит на все ваши новогомнопридумки.

    И чё с того? Прочитать все книги которые были написаны тоже не удастся, значит ли это, что книги -- гoвнo?

     
     
  • 4.89, SOska (?), 22:22, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Так я так понял опеннетовцы копрофилы, я ничего про говно не говорил
     
     
  • 5.103, Ordu (ok), 01:24, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Если я перефразирую, ты ответишь на вопрос?
     
  • 3.64, a3k (?), 18:59, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Всё очень просто: не нужно -- не учи.
     
     
  • 4.90, SOska (?), 22:23, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    За это тут палками побьют и камнями закидают
     
  • 2.31, JL2001 (ok), 15:34, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Хаем все почем зря хотя сами ни хрена не понимаем.
    > JS говно, PHP говно, С++ говно, новый язык программирования(технология) говно.
    > Если вы не писали на языке или не использовали технологию в течении
    > хотя бы пяти лет просто захлопните варежку.
    > Вы не понимаете о чем говорите!

    я использовал
    js - говно и C++ - говно
    php и python - говно из-за динамической типизации и отступов
    немного богомерзкого C++ для примера https://habr.com/ru/post/472780/


    > Зачем конструктивная критика если любой писюн знает волшебное слово!

    тут видимо должна быть конструктивная похвальба вашими устами этим языкам? ну раз уж вы такой пост осилили и даже зарегались


    зы: вы же знаете про наличие кнопки "сообщить модератору" под каждым пустым и неаргументированным комментом?

     
     
  • 3.33, Аноним (-), 15:46, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > вы же знаете про наличие кнопки "сообщить модератору" под каждым пустым и неаргументированным комментом?

    Нельзя просто взять и удалить 90% комментариев.

     
     
  • 4.43, Michael Shigorin (ok), 16:34, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Можно, можно.  Мало того, в соседней новости про 32-битные PV примерно так только что и произошло.

    2 ogmy: ну напишите Максиму да предложите помочь с модерированием форума -- только имейте в виду, что так жить неудобней: часть вот тех удобрений немедленно будет перенаправлена лично на Вас вне зависимости от.

     
     
  • 5.135, Аноним (143), 15:12, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не переживай, тебя не обделят.
     
  • 4.49, JL2001 (ok), 17:11, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >> вы же знаете про наличие кнопки "сообщить модератору" под каждым пустым и неаргументированным комментом?
    > Нельзя просто взять и удалить 90% комментариев.

    можно
    и таки не 90% а максимум 50%

     
  • 3.38, ogmy (ok), 16:09, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    >> Вы не понимаете о чем говорите!
    > я использовал
    > js - говно и C++ - говно
    > php и python - говно из-за динамической типизации и отступов
    > немного богомерзкого C++ для примера https://habr.com/ru/post/472780/
    >> Зачем конструктивная критика если любой писюн знает волшебное слово!
    > тут видимо должна быть конструктивная похвальба вашими устами этим языкам? ну раз
    > уж вы такой пост осилили и даже зарегались
    > зы: вы же знаете про наличие кнопки "сообщить модератору" под каждым пустым
    > и неаргументированным комментом?

    зы: вы же знаете про наличие кнопки "сообщить модератору" под каждым пустым и неаргументированным комментом?

    Это скорее к вам относится аргументация нулевая!

     
     
  • 4.45, Аноним (45), 16:36, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    В принципе, он прав, наверное любой кто всерьёз писал на любом из этих языков знает, что они овно и почему. Не вижу особого негатива как раз, только вот это нытьё и немного клоунады как у цитируемого тут товарища. Так-то и на angelscript вполне можно писать успешное коммерческое ПО, не вижу никаких проблем с этим. А сабж скорее всего из той же оперы.
     
     
  • 5.131, Leo90 (?), 14:10, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    надо просто ввести критерий говна.
     
  • 3.48, Аноним (11), 17:07, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > habr.com

    Вфы бы еще на вконтакте сослались. Тот случай, когда одно слово перечеркивает смысл.

     
     
  • 4.52, JL2001 (ok), 17:24, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >> habr.com
    > Вфы бы еще на вконтакте сослались. Тот случай, когда одно слово перечеркивает смысл.

    эта статья разбор примера на c++ с разжовыванием
    что вас не устраивает?

    да, хабр уже не торт, но явно не в этой статье

     
  • 2.34, Аноним (34), 15:51, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Предлагаю тебе воспользоваться своим же советом, например.
     
  • 2.50, илья (??), 17:14, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >JS говно, PHP говно, С++ говно

    Но Котлин, c# и rust не говно.

     
     
  • 3.70, аноним3 (?), 19:22, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    они еще только вылезли с пеленок. погоди 2 годков . увидишь как из них полное г сделают. хотя раст уже превращается. и нефиг инструменты обгаживать. сделали сначала плюсы, а потом взялись гадить-добавлять так что из языка превратился в хрен знает что. раст кстати на том же пути. ну нельзя охватить все на свете. инструмент должен быть инструментом, а не комбайном. пусть будет 5-6 языков , но со своей спецификой применения. а то что сейчас делают... плюсам от того , что их так разнесло  лучше не стало. наоборот .
     
     
  • 4.117, Аноним (117), 08:24, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > сделали сначала плюсы, а потом взялись гадить-добавлять так что из языка превратился в хрен знает что

    Никто не мешает пользоваться исключительно первым изданием Страуструпа.

     
  • 3.116, Аноним (117), 08:23, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > c# ... не говно.

    Не могу согласиться с уважаемым коллегой.

     
     
  • 4.120, JL2001 (ok), 09:35, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >> c# ... не говно.
    > Не могу согласиться с уважаемым коллегой.

    а почему?

     
     
  • 5.132, Аноним (117), 14:34, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Потому что .NET и MS.
     
  • 2.54, Anonystmus (?), 17:55, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это всё губительное влияние плохих ребят с ЛОРа...
     
  • 2.55, Аноним (55), 17:58, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Т.е. 20-лет молчал не высказывал своего единственно правильного мнения, из-за того что ты молчал комменты заполонили школьные анонимы и виноваты в этом конечно же анонимы.

    Не верю (с). или это очередной наброс стаканчика или какого-то школьника.

     
  • 2.58, OpenEcho (?), 18:21, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Жаль, что свой трактат написал наверху, не дойдя до вашего...
    Вот только из-за таких адекватных людей хочется приходить на опеннет, но статисика к сожалению говорит о том что сбежавших с каменного века здесь еще навалом.

    Пытаешься поделиться на халяву опытом, за который на работе платят(и очень не плохо), - так еще в "благодарность" обольют грязью...

    Грустно...

     
     
  • 3.59, Аноним (45), 18:29, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    У меня стойкое ощущение, что вы оба обои пришли клоунаду навести. Вот прямо стойкое такое, наверное я уже привык к подобным. Кто-то же ведётся до сих пор, иначе бы не писали.
     
     
  • 4.74, OpenEcho (?), 21:06, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > У меня стойкое ощущение, что вы оба обои пришли клоунаду навести.

    Т.е. то, что написали мы - это клоунада, а те "супер элита" програмистов пишущих на волшебных и безошибочных языках и обсирающих все что не уложилось в их... так называемые "гениальные" головы - это нормальное __человеческое общение__ ?

    > Вот прямо стойкое такое, наверное я уже привык к подобным. Кто-то же
    > ведётся до сих пор, иначе бы не писали.

    Ведуться на что ? Попытаться сделать любое место чище - это за падло?

    Здесь есть толковые люди с которыми интересно пообщаться и мне б лично не хотелось бы чтобы хамы гадили это место... Что посторишь - то пожнешь, а можно просто сидить и подсирать "по приколу"...

     
  • 3.94, ogmy (ok), 22:44, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Да уже хотя бы просто читать новости без этого бреда в комментариях!

    По моему профессиональное сообщество созрело для создания ресурса с самой жесткой модерацией статей и комментариев.

    Хочешь писать статьи и комментировать в определенном разделе, пройди тест на знание этой области.
    А в самых сложных разделах и проверку модератором на подтверждение квалификации.
    Контента будет мало, но он будет на вес золота как и сами люди создающие этот контент.

    А не разбираешься читай и учись молча!

     
     
  • 4.98, Аноним (45), 23:11, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это вы уже совсем толстите. Идите на хабру с её рекламой или на лор с его неадекватными модераторами. Тамошняя аудитория вам будет гораздо ближе, это очевидно.

    А мне вот только на опеннете и помогали ответами по делу, мне кажется не в последнюю очередь это результат того, что нормальные люди будут скорее задерживаться на ресурсе со здоровой атмосферой и отстутствием произвола и фашистских политик (это когда новые правила выдумывают от скуки (и никому о них не сообщают, ими начинают оправдываться уже когда выдадут пермабан по айпи (что тоже противоречит правилам, зхаха)).

     
     
  • 5.141, OpenEcho (?), 20:04, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Присоединяюсь, цензура - это никогда не приводила в итоге к порядку, а наоборот плодила троллей. Хоть обстановка иногда создаваемая некоторыми индивидумами и напоминает дет.сад или пивнушку на отшибе, но цензура - это не выход.

    Имхо лучше:
    "Дай человеку рыбу и накормишь его на три дня.
    Научи человека ловить рыбу и он будет накормлен на всю его жизнь..."

     
  • 4.145, Lefsha (ok), 00:09, 29/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Отличный пример синдрома вахтера Поймите одну простую вещь - точка зрения, что ... большой текст свёрнут, показать
     
     
  • 5.155, ogmy (ok), 13:29, 29/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Спасибо за психологический анализ по комментариям У вам нобелевская по психолог... большой текст свёрнут, показать
     
  • 4.146, Lefsha (ok), 00:16, 29/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Добавлю. Хотя я сам критиковал opennet за отстутствие проброса на https, но говоря объективно
    во всей сети я не знаю ни одного!!! ресурса, который позволяет кому-угодно БЕЗ регистрации писать комментарии и который не превратился в помойку.

    Это к вопросу, что Вам пришлось регистрироваться, чтобы сюда писать...

     
     
  • 5.154, ogmy (ok), 13:01, 29/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А мог писать как Аноним.
    Но решил что так будет лучше.
     
  • 3.114, Sw00p aka Jerom (?), 08:12, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Совет, на анонимов болт забейте.
     
  • 3.149, Michael Shigorin (ok), 01:25, 29/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Пытаешься поделиться на халяву опытом, за который на работе платят
    > (и очень не плохо), - так еще в "благодарность" обольют грязью...

    Дайте-ка я скажу спасибо Вам, ему, Михрютке, persgray и ещё многим-многим здесь, ради которых до сих пор вижу смысл и комментарии смотреть, и тратить время жизни на комодерирование.

    А что есть люди инфантильные, невоспитанные, неустроенные, да просто вот прямщас раздражённые -- ну... беда, но не катастрофа.

     
  • 2.72, Чё (?), 20:37, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Опеннет это небольшой срез рунета. Обгадить что-то, вместо помощи обозвать нубом или жосче, это норма в рунете.
     
  • 2.157, Аноним (157), 13:29, 30/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > JS говно, PHP говно, С++ говно

    эээ... а что тут НЕ ТАК???

     

     ....большая нить свёрнута, показать (52)

  • 1.44, Аноним (44), 16:36, 27/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Вопрос, зачем сабж если есть Rust?
     
     
  • 2.47, Аноним (47), 17:07, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    На нем можно таргет в раст запилить
     
  • 2.66, a3k (?), 19:03, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Rust слишком специфичный. А сабж -- это просто JS, только нормальный.
     
     
  • 3.111, Аноним (111), 06:07, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    JS который генерирует cpp -> нативные бинарники.
     
  • 2.158, ммнюмнюмус (?), 23:22, 30/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем куча спец-языков, когда есть супер-язык, из которого остальные генерятся =)
     

  • 1.46, Аноним (47), 17:06, 27/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Годнота
    использую для пэхэпэ
    Таргет на перл бы запилилли ещё
     
     
  • 2.51, JL2001 (ok), 17:19, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >  использую для пэхэпэ

    вы прогаете на Haxe и компилите в php? можете рассказать почему компилите именно в php и как вообще изначально выбрали Haxe для разработки?

     
     
  • 3.56, Аноним (55), 18:02, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Я не тот Аноним, но предположу что он пишет на нормальном языке из сабжа, а транслирует в лапшичный пхп.
     
     
  • 4.62, JL2001 (ok), 18:54, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Я не тот Аноним, но предположу что он пишет на нормальном языке
    > из сабжа, а транслирует в лапшичный пхп.

    да, я так и думал
    мне интересны причины выбора этого языка для исходников и php для цели исполнения

    предполагаю что у них на php большое и переиспользуемое наследство

     
  • 3.69, Эх (?), 19:15, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тоже другой, но может кому будет интереснен недавний доклад по haxe/php, или слайды из описания ролика полистать:
    https://youtu.be/IeXgTkh9NAs
    Если кратко, то там общий код между php сервером и c#/js клиентами. Остальное перечисление фич языка и особенности реализации трансляции. Почти идентичная презентация на русском здесь:
    https://youtu.be/K-37iSCV13o
     
  • 3.161, Аноним (161), 19:44, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    дак потомучто php это популярный язык - для решения бизнес задач а следовательно зарабатывания денег

    сам пишешь на нормальном статически типизированном языке - а заказчику отдаешь результат в виде php кода

    к тому же из haxe в js можно транслировать -  и шарить некоторую бизнес логику

    т е получется практически фулстек на haxe

     
  • 3.162, Аноним (161), 19:59, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > и как вообще изначально выбрали Haxe для разработки?

    когда были попытки найти бесплатный инструмент для програния под flash платформу на linux
    а там еще появлялся типа adobe air, js и все дела
    а там как раз появился таргет под php - ну и решил а что бы не попробовать
    этот чудесный "один язык для всего"

    успел попрогать под flash, расширения на js под firefox (во времена ), всякую вебню транслируемую в Php

     
     
  • 4.163, Аноним (161), 20:01, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    *расширения на js под firefox (во времена XUL)
     

  • 1.73, Аноним (44), 20:59, 27/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    offtop: смотрю исходники gcc 9.2 и не могу найти место кодогенерации.
    Вопросы:
    - gcc генерирует машинный код или он генерирует ассемблер который скармливает gas?
    - если первое то где в исходниках gcc 9.2 место кодогенерации?
     
     
  • 2.75, Аноним (45), 21:20, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    gimple нашёл?
     
     
  • 3.96, Аноним (44), 23:02, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Да, нашёл, спасибо. gimple я так понимаю строит IR, если так то где именно IR переводиться в машинный код?
     
     
  • 4.99, Аноним (44), 23:12, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У меня такое ощущение, что там из IR создаётся код на ассемблере и потом скармливается gas.
    Исходники по адресу gcc/config/i386/gas.h и т.п. подобный файл намекают на это.
     
  • 4.108, Аноним (108), 02:45, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Код GIMPLE переводится в архитектурно-зависимый RTL. После пары десятков проходов он достаточно прямолинейно конвертируется в код для ассемблера, за вывод отвечают final.c и insn-output.c, генерируемый программой genoutput.c из архитектурно-зависимых определений в config/.
    Читайте документацию: https://gcc.gnu.org/onlinedocs/gccint/RTL-passes.html
     
     
  • 5.134, Olololo (?), 15:01, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Т.е. как я в первом посте и сказал написал, gcc генерирует листинг ассемблера и скармливает его gas.
    Можно было просто ответить - да, и не писать эту простыню.
     
  • 2.78, Ordu (ok), 21:24, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я лет десять не интересовался как работает gcc, и с тех пор я мог всё забыть и перепутать. Но насколько я помню, gcc генерировал промежуточный код, который затем скармливался бэкэнду. Примерно так, как это делает llvm сейчас, только у gcc'шного промежуточного кода вроде не существовало бинарного кодирования, при выводе он кодировался в ascii-представление по типу языка ассемблера. То есть, llvm ничего нового не сделал, он просто чуть больший акцент поставил на промежуточном представлении.

    Ну и собственно, если бы я пытался найти кодогенерацию в gcc, то я первым делом задался бы вопросом что именно я ищу. Потому что если мне интересны те места, где gcc выводит x86_64 или ARM инструкции, то это надо искать в бекэнде, а если мне интересно где gcc генерит промежуточное представление, то наверное надо начать с какого-нибудь фронтенда, там по-любому должны быть вызовы каких-нибудь функций gcc, не зависящих от фронтенда/бекенда, которые создают структуры данных, соответствующие промежуточному представлению. Даже более того, в этом случае я бы начал с чтения документации к gcc, потому что там должно быть что-то (может быть промежь опций компилятора), что позволяет получать это промежуточное представление в текстовом виде, и если найти код выводящий это промежуточное представление, то скорее всего там где-нибудь рядом будет код, создающий это промежуточное представление.

     
     
  • 3.97, Аноним (44), 23:08, 27/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Комментарий большой, но по сути ни о чём и вот почему. Я спросил, где именно кодогенерация, чтобы вам было понятнее я просил где IR переводится в машинный код.
    Про архитектуру компиляторов я прочитал не одну книжку и в курсе про части при построении компиляторов - front-end, optimizer, back-end.
     
     
  • 4.104, Ordu (ok), 01:30, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Я спросил, где именно кодогенерация, чтобы вам было понятнее я просил где IR переводится в машинный код.

    Разве из моего ответа не очевидно, что это не очевидно?

    > Про архитектуру компиляторов я прочитал не одну книжку и в курсе про части при построении компиляторов - front-end, optimizer, back-end.

    И это тоже.

    Я не могу заглянуть в твою голову и увидеть там прочтённые тобой книжки. Я вижу только то, что ты написал. И я вполне могу представить себе человека, который не читал ни одной книжки, который хочет найти генерацию промежуточного кода (сам не понимая того), и который задаст вопрос слово-в-слово такой же, как ты это сделал.

     
     
  • 5.115, Sw00p aka Jerom (?), 08:18, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >Я не могу заглянуть в твою голову и увидеть там прочтённые тобой книжки. Я вижу только то, что ты написал.

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

     
     
  • 6.133, Olololo (?), 15:00, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Для таких дебилов, как ты и тот кому ты отвечал в моей фразе - "gcc генерирует машинный код или он генерирует ассемблер который скармливает gas?" было специально использованно слово - __машинный__.
    Только дебил мог рассказывать про генерацию IR на вопрос про генерацию машинного кода.
    IR != машинный код.
     
     
  • 7.137, Ordu (ok), 18:11, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > было специально использованно слово - __машинный__.

    И что с того? Из использования слово "машинный" каким-то образом вытекает, что ты читал много книжек о компиляции и знаешь про существование аббревиатуры IR? Расскажи мне как я должен был рассуждать, чтобы придти к такому выводу, я всегда готов учиться новому. Как из твоего вопроса вытекает, что ты не ошибаешься в том, что именно тебе нужно из-за непонимания архитектуры gcc? Какие именно буквы должны были навести меня на понимание этого?

    Я использовал словосочетание машинный код ещё тогда, когда я не знал ничего про компиляторы, считал их инструментами для слабаков, и был уверен, что истинный программист должен писать на ассемблере со вставками машинного кода. Я не знал тогда про IR, а если бы узнал, то счёл бы это глупостью снижающей эффективность компиляции, стоящей на пути истинной оптимизации кода и безбожно жрущей процессорные такты. Что в твоём сообщении указывало на то, что ты не видишь мир так, как я видел его 20+ лет назад?

    > Только дебил мог рассказывать про генерацию IR на вопрос про генерацию машинного кода.

    Только дебил мог не понять моё объяснение моей ошибки с первой попытки и после этого продолжать лезть на рожон. Хотя, может я и здесь ошибаюсь, и всё же в твоём первом сообщении есть что-то, раскрывающее глубины твоих знаний, просто не все это видят и я в их числе?

     
     
  • 8.142, Sw00p aka Jerom (?), 20:24, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А чего еще с дебила взять, как не дебильно поставленный вопрос Есть что-то, и о... текст свёрнут, показать
     
     
  • 9.144, Ordu (ok), 23:45, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Не, это совершенно нормальная история для людей Они произносят слова, вкладывая... текст свёрнут, показать
     
     
  • 10.147, Sw00p aka Jerom (?), 00:32, 29/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Для дебилов - да И он проявил это во всей красе Он задался вопросом, а получив... текст свёрнут, показать
     
  • 10.148, Sw00p aka Jerom (?), 00:36, 29/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    5 134, Olololo , 15 01, 28 10 2019 Вот тут его неадекватность и проявилась С... текст свёрнут, показать
     

  • 1.110, Аноним (111), 06:06, 28/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Haxe это как Nim только лучше. У Nim совсем убогая стандартная библиотека, куча ограничений, постоянные грабли с "а данному методу нужен временный объект для результата, по другому кодогенерацию мы не смогли".
     
  • 1.112, Аноним (-), 07:22, 28/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    зачем высокоуровневому языку выглядеть так страшно? В чем тогда профиты использования его вместо более низкоуровневых?

    Лучше бы какой нибудь питон с трансляцией во все подряд сделали

     
     
  • 2.164, Аноним (161), 20:04, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    в haxe решили сделать мудрее - просто добавили трансляцию в  python
    чтобы ты мог писать на нормальном языке и транслировать в свой любимый язык
     
  • 2.165, Аноним (161), 20:10, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    я писал на питоне с 2.4
    думал офигенный язык даже пусть появлялись несовместимости с 2.6, 2.7 - я все равно терпел и писал код переносимым
    но потом появилась третья не совместимая версия а потом еще и еще
    и я в итоге психанул  и ушел на php
     

  • 1.122, JL2001 (ok), 10:13, 28/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    почему они не воспользовались llvm?
    там таргеты кодогенерации не для всего "трансляция в С++, HashLink/C, JavaScript, C#, Java, PHP, Python и Lua, а также компиляция в байт-код JVM, HashLink/JIT, Flash и Neko", но раз создали с нуля свои, то и в llvm создали бы
     
     
  • 2.130, Георгий (??), 13:08, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Когда Haxe зарождался (2005), LLVM еще плюшевый был.
    Emscripten стал известен только в 2011 году, судя по Google Trends (не знаю, когда появился).
     

  • 1.124, Skullnet (?), 10:24, 28/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    По сравнению с Go хороший язык.
     
  • 1.126, Попугай Кеша (?), 10:41, 28/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Был у нас один чудик. 2012-й год. Хвалился Haxe. Умный такой. А по факту - был наркоманом. И еще любил переменные одной буквой называть. Разрабатывал он правда на JS/Node.JS. Видимо боялся, что его заменить могут, поэтому хотел сам разбираться в своем коде.
     
     
  • 2.166, Аноним (161), 20:13, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    haxe это практически java только проще и с выводом типов

    хотя если нахерачить макросов и вставок js - да сложно разобратся будет

     
  • 2.167, Аноним (161), 20:15, 09/11/2019 [^] [^^] [^^^] [ответить]  
  • +/
    с другой стороны - на js можно еще больше лапши наделать

    сам по себе язык не сможет ограничить програмиста - все решает культура и огранизация кода и стандарты принятые в компании

     

  • 1.150, qsdg (ok), 01:31, 29/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Какой язык лучше для кастомных DSL?

    То есть чтобы читалось почти как натуральный язык, но чтобы не нужно было писать свой парсер/транспилятор.

    Я слышал народ юзал Scala, кастомер даже не знал что это язык программирования. Какие ещё есть варианты?

     
     
  • 2.156, Аноним (143), 13:42, 29/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > чтобы читалось почти как натуральный язык

    AppleScript.
    Да, это сарказм.

     

  • 1.151, Аноним (151), 01:49, 29/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    JavaScript каким он должен быть.
     
  • 1.153, Денис Александрович (?), 07:11, 29/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как это я первые 3 релиза пропустил?!
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру