
Friedrich
03.04.2017
14:44:06
Хе-хе, начали штурмовать багтрекер? :)
https://github.com/penberg/fjord/issues/6

Nikolay
03.04.2017
14:45:36
Но андроид в конечном итоге всё портит

Roman
03.04.2017
14:46:06

Google

Nikolay
03.04.2017
14:46:55
Разницы большой нет, писать на Xamarin Android, Java или Kotlin, у последних двух разве что с библиотеками получше

Evgeniy
03.04.2017
14:47:03
@fvnever Не вспомнил.

Friedrich
03.04.2017
14:47:12
Как же мы там без твоей прохладной истории теперь?

Dmitry
03.04.2017
14:47:38
Но андроид в конечном итоге всё портит
просто я думаю менять свою 950XL и сейчас колеблюсь между седьмым айфоном (есть макбук, небольшой опыт свифта и можно в свободное время писать что-то под него), или подождать S8+ - а там хороший экран и возможность попробовать новую платформу (андроида не было никогда в руках)

Roman
03.04.2017
14:47:54

Evgeniy
03.04.2017
14:47:54
@fvnever Зато я помню, как на дельфи начинал писать!

Friedrich
03.04.2017
14:48:17

Nikolay
03.04.2017
14:48:26
Это было адово
Неделю где-то убил

Friedrich
03.04.2017
14:48:42

Igor
03.04.2017
14:49:02

Google

Friedrich
03.04.2017
14:49:20
Это старье
Окей, что насчёт https://docs.oracle.com/javase/specs/jvms/se8/html/ ?
К сожалению, на 9 ещё не завезли.

Roman
03.04.2017
14:49:48
спасибо

Friedrich
03.04.2017
14:50:02
(но я не помню, менялся ли байткод в 9)

Igor
03.04.2017
14:50:04

Friedrich
03.04.2017
14:50:19
Кажись, VarHandle без изменений байткода реализовали? Кто шарит?

Roman
03.04.2017
14:50:57
как в java реализовано все? либы распространяются в виде jvm байткода же?

Friedrich
03.04.2017
14:51:32
JVM умеет загружать .class-файлы из каталога на диске или из JAR-архивов.

Roman
03.04.2017
14:51:59
zip с *.class файлами?)

Friedrich
03.04.2017
14:52:16
Ну т.е. обычно либа — это JAR с запакованными внутрь class-файлами (и ресурсами, если надо).

Igor
03.04.2017
14:52:16

Friedrich
03.04.2017
14:52:22

Roman
03.04.2017
14:52:52

Friedrich
03.04.2017
14:53:20
"Интринсики" в JVM это волшебные функции, про которые знает JIT и обрабатывает их совсем-совсем особенно.

Roman
03.04.2017
14:53:50

Friedrich
03.04.2017
14:54:01
Я сходу могу только упомянуть MethodHandle из старых JVM. Вызов методов по хендлу там делался очень хитро и оптимизированно, и потому некоторые проверки типов можно было в этих местах пропускать в байткоде.

Igor
03.04.2017
14:54:07

Google

Friedrich
03.04.2017
14:54:39
оу, т.е. компилять в jvm совсем печально?
Нет, нет, там всё нормально. Интринсиков очень мало, и разрабу компилятора редко когда приходится о них заботиться. Компилять в JVM примерно так же комфортно, как в CLI.

Nikolay
03.04.2017
14:54:45

Igor
03.04.2017
14:54:55

Roman
03.04.2017
14:54:58

Friedrich
03.04.2017
14:55:22

Roman
03.04.2017
14:55:35

Friedrich
03.04.2017
14:55:55
Я не писал в JVM компиляторов, но немножко разбираюсь в байткоде, и писал под CLI.
Так что могу примерно прикинуть, насколько оно сложнее или проще.

Nikolay
03.04.2017
14:56:19
Сделайте кто-нибудь поддержку Go в VS :)

Roman
03.04.2017
14:56:24
и Go не язык

Friedrich
03.04.2017
14:56:32
XD

Nikolay
03.04.2017
14:56:44

Roman
03.04.2017
14:56:55
нужен Go? -возьми Hopac
и F#

Igor
03.04.2017
14:57:16
оу, т.е. компилять в jvm совсем печально?
Вообще все с компиляцией норм (плюс куча спекулятивных оптимизация), но если можно еще быстрее, то почему нет?
Классический пример интринсика:
можно заменить целую функцию compareAndSwap() с циклами и проверками
на 1 асемблерную инcтрукцию (если у тебя современный процессор).

Roman
03.04.2017
14:58:12

Nikolay
03.04.2017
14:58:13
У Go свои плюсы есть

Google

Roman
03.04.2017
14:58:41

Friedrich
03.04.2017
14:59:10
Примерно как наш System.Reflection.Emit или Mono.Cecil.

Roman
03.04.2017
15:00:04
xD

Friedrich
03.04.2017
15:00:27

Nikolay
03.04.2017
15:00:38

Roman
03.04.2017
15:02:29
А конкретнее что ужасно?
ужасна мысль возьмем сотню слаборазвитых ребят, и дадим им бэйсик и пусть они сотню раз реализуют одно и то же

Nikolay
03.04.2017
15:03:31
От бейсика там только императивный стиль

Friedrich
03.04.2017
15:04:12
Ребзя, давайте писать на паскале!
Я вчерась прикрутил Avalonia к PascalABC.NET :3
Можно делать на нём кроссплатформенный дотнетовый гуй :3

Nikolay
03.04.2017
15:05:04

Friedrich
03.04.2017
15:05:15
(ну и я теперь представляю, как это делать на F#, что особенно хорошо)
Это только WPF останется гвоздями прибит к C# / VB.NET

Igor
03.04.2017
15:10:09

Friedrich
03.04.2017
15:10:31

Nikolay
03.04.2017
15:10:59
Там довольно интересно сделано

Igor
03.04.2017
15:12:00
Мб современный какой-то форк есть?
Насколько я знаю из живых есть cglib, javassist, Byte Buddy
Но вроде сейчас фрейморки переходят на Byte Buddy ( https://jug.ru/2016/11/hibernate-switches-to-byte-buddy/ )

Google

Friedrich
03.04.2017
15:12:07
На F# я похожие идеи видал в FSharp.Desktop.UI, ну и какая-то более новомодная либа была.
Ну и в Fable что-то похожее сделано (возможно, в виде биндинга к React).

Nikolay
03.04.2017
15:13:34

Friedrich
03.04.2017
15:13:49
Так а в Elm же норм типизация, не?

Nikolay
03.04.2017
15:14:18
А, правда
Бес попутал

Roman
03.04.2017
15:14:28
Кароч мечта сделать компилятор с какой стороны зайти не знаю(

Evgeniy
03.04.2017
15:19:48
@fvnever Кажется, этот человек говорит, что хочет пилить наггум.

Roman
03.04.2017
15:19:58
http://jni4net.com

Friedrich
03.04.2017
15:20:09
https://github.com/codingteam/naggum

Roman
03.04.2017
15:20:23

Friedrich
03.04.2017
15:20:34
У неё фатальный недостаток!

Roman
03.04.2017
15:20:40
О, можно компилить кложу)

Evgeniy
03.04.2017
15:21:04
@neftedollar Ты не хочешь кложур, ты хочешь наггум. :)

Friedrich
03.04.2017
15:21:09
Да!
У нас работает вот такая пурга: http://naggum.readthedocs.io/en/develop/usage.html#example-assembly-definition

Roman
03.04.2017
15:21:28