Size: a a a

Compiler Development

2020 May 10

AT

Alexander Tchitchigi... in Compiler Development
Нет, вот то, что снова стало популярно писать диссертации по языкам программирования — я всецело поддерживаю и одобряю.
источник

AT

Alexander Tchitchigi... in Compiler Development
MaxGraey
Меня больше позабавили бенчмарки, где Bold (LLVM) сравнивается с Java) Ну такое
Если JVM предварительно прогреть и не учитывать время на прогрев, то с ней соревноваться очень непросто...
источник

M

MaxGraey in Compiler Development
Alexander Tchitchigin
Если JVM предварительно прогреть и не учитывать время на прогрев, то с ней соревноваться очень непросто...
Просто до этого рассказывается что все как в Rust и Kappa только лучше, а потом раз и сравнивается с Java =)

> Если JVM предварительно прогреть и не учитывать время на прогрев, то с ней соревноваться очень непросто...

На самом деле просто: https://benchmarksgame-team.pages.debian.net/benchmarksgame/performance/nbody.html

Rust: 5.98 сек
Java: 21.85 сек
источник

AT

Alexander Tchitchigi... in Compiler Development
MaxGraey
Просто до этого рассказывается что все как в Rust и Kappa только лучше, а потом раз и сравнивается с Java =)

> Если JVM предварительно прогреть и не учитывать время на прогрев, то с ней соревноваться очень непросто...

На самом деле просто: https://benchmarksgame-team.pages.debian.net/benchmarksgame/performance/nbody.html

Rust: 5.98 сек
Java: 21.85 сек
А к benchmarkgames как раз была претензия, что они JVM не прогревают. Но я не проверял, исправились ли они за минувшие годы...
источник

M

MaxGraey in Compiler Development
источник

M

MaxGraey in Compiler Development
MaxGraey
источник

А

Алексей in Compiler Development
Alexander Tchitchigin
> already supports inheritance, method overloading and overriding

Почему-то читается как "... is already shit..." Извините, пожалуйста. 😊
Обычный императивный язык
источник

AT

Alexander Tchitchigi... in Compiler Development
Алексей
Обычный императивный язык
Это Rust и Оберон — обычные императивные, а с наследованием и переопределением — уже ОО! 😊
источник

А

Алексей in Compiler Development
Alexander Tchitchigin
Это Rust и Оберон — обычные императивные, а с наследованием и переопределением — уже ОО! 😊
значит не совсем обычные
источник

А

Алексей in Compiler Development
а overloading и в некоторых функциональных имеется
источник

M

MaxGraey in Compiler Development
Пишу один пропозал и у меня вопрос в каких ЯП можно выводить тип дженерика для членов для рекурсивно определенных структур типа:

class Rec<T> {
  prev: Rec
  next: Rec
}

вместо:

class Rec<T> {
  prev: Rec<T>
  next: Rec<T>
}

Знаю что вроде в Java, а где еще?
источник

K

Kakadu in Compiler Development
MaxGraey
Пишу один пропозал и у меня вопрос в каких ЯП можно выводить тип дженерика для членов для рекурсивно определенных структур типа:

class Rec<T> {
  prev: Rec
  next: Rec
}

вместо:

class Rec<T> {
  prev: Rec<T>
  next: Rec<T>
}

Знаю что вроде в Java, а где еще?
А в Java если хочется другой типовой параметр, то надо руками это другой писать?
источник

M

MaxGraey in Compiler Development
Kakadu
А в Java если хочется другой типовой параметр, то надо руками это другой писать?
Ну да
источник

AK

Andrei Kurosh in Compiler Development
MaxGraey
Пишу один пропозал и у меня вопрос в каких ЯП можно выводить тип дженерика для членов для рекурсивно определенных структур типа:

class Rec<T> {
  prev: Rec
  next: Rec
}

вместо:

class Rec<T> {
  prev: Rec<T>
  next: Rec<T>
}

Знаю что вроде в Java, а где еще?
А если есть два отдельных класса, Rec и Rec<T>, что произойдет?
источник

МБ

Михаил Бахтерев... in Compiler Development
Алексей
создатель никак не объяснил например зачем надо всюду копипастить
if err != nil {
  return nil, err
}
Так и не за чем. Есть же panic. Юные падаваны просто не умеют нормально паниковать, поэтому пишут более простые схемы обработки ошибок. Они и в Go так пишут, и в Haskell. Много раз видел. И фишка в Go, что такой младо-падаванский примитивный код, всё равно, остаются адекватно поддерживаемым. В Haskell быстро приходится уходить на Maybe и монады, иначе там всё превращается в трэш и угар. Не все юные падаваны способны его осуществить (вы не забывайте, что Google хочет решать задачу конкретную, а не в красоту языка играть, ему надо, чтобы был массовый писатель на языке, а не десяток элитариев, которых надо хантить по всему миру). А в Go превращается в трэш, но не в угар, и с этим можно жить и работать.
источник

M

MaxGraey in Compiler Development
Andrei Kurosh
А если есть два отдельных класса, Rec и Rec<T>, что произойдет?
Ошибка очевидно. Я хочу уточнить что это для TypeScript и там такое невозможно объявить:
class Foo<T> {}
class Foo {}
источник

МБ

Михаил Бахтерев... in Compiler Development
Алексей
придумайте микросервисы для фронтенда, а я погляжу
http://viewlang.ru/website/1/readme.md.html - вот. Построено на идее микросервисов. Они там поверх QML сделаны, но вообще все сцены строятся на идее потоковой обработки данных разными процессами.
источник

M

MaxGraey in Compiler Development
Михаил Бахтерев
http://viewlang.ru/website/1/readme.md.html - вот. Построено на идее микросервисов. Они там поверх QML сделаны, но вообще все сцены строятся на идее потоковой обработки данных разными процессами.
«Viewlang это единственная на настоящее время декларативно-императивная система программирования трехмерной графики в среде Интернет.»

При этом автор забыл про A-Frame (который все же потом упоминается) а до этого вообще то был и кстати все еще жив VRML (появился в 1994), а потом еще был WPF c ab4d
источник

AK

Andrei Kurosh in Compiler Development
MaxGraey
Ошибка очевидно. Я хочу уточнить что это для TypeScript и там такое невозможно объявить:
class Foo<T> {}
class Foo {}
Имхо это экономия на спичках, снижающая читаемость и повышающая когнитивную нагрузку
источник

M

MaxGraey in Compiler Development
Andrei Kurosh
Имхо это экономия на спичках, снижающая читаемость и повышающая когнитивную нагрузку
Наоборот)
источник