LINUX.ORG.RU

Inko Programming Language

 , , , ,


2

4

Решил притащить на обсудить Inko: https://inko-lang.org/

Хз, нужно оно в реальном мире или нет, когда есть python/ruby/elixir.
Но вдруг у кого-нибудь есть умные мысли на этот счёт. :)


Inko is a gradually-typed, safe, object-oriented programming language for writing concurrent programs. By using lightweight isolated processes, data race conditions can not occur. The syntax is easy to learn and remember, and thanks to its error handling model you will never have to worry about unexpected runtime errors.

Inko runs on 64 bits Linux, BSD, Mac OS, and Windows. 32 bits platforms may work, though they are not officially supported at this time.



ps: в тегах питон, руби, эрланг и эликсир потому, что автор считает их основными конкурентами инко. А раст потому, что ВМ написана на нём.

Добавь в теги Rust — виртуальная машина языка на нём написана, если верить стартовой странице.

Virtuos86 ★★★★★ ()

Надеюсь, автору это надо для диплома или чего-то в этом роде. Иначе пускай закапывает, когда надоест играться.
А зачем в лолксы запостил? Без анонимусов скучно будет.

Virtuos86 ★★★★★ ()
Последнее исправление: Virtuos86 (всего исправлений: 1)
Ответ на: комментарий от Virtuos86

Добавь в теги Rust — виртуальная машина языка на нём написана, если верить стартовой странице.

Упёрся в лимит по тегам. :(

blackst0ne ★★★★★ ()
Ответ на: комментарий от Virtuos86

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

Автор делает это не для диплома. Он фултайм-разработчик.

А зачем в лолксы запостил? Без анонимусов скучно будет.

Я не частый постильщик на ЛОРе, поэтому таких нюансов не знаю.

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

blackst0ne ★★★★★ ()
Ответ на: комментарий от blackst0ne

Ага. Ждём, когда народ начнет подтягиваться. Только допиши, откуда Раст взялся в тегах, в ОП никакого упоминания нет, могут завозмущаться.

Virtuos86 ★★★★★ ()

Судя по writing concurrent programs я бы сказал, что это не совсем конкурент python и ruby. Скорее это конкурент erlang.

lucentcode ★★★★★ ()

Выглядит интересно. Ябвыучил. Надеюсь, взлетит и закопает все эти го, пиноты и руби.

Deleted ()
Ответ на: комментарий от Deleted

Ябвыучил

Зачем? Впрочем, ты можешь учить это прямо сейчас.

Надеюсь, взлетит и закопает все эти го, пиноты и руби.

Уже есть Crystal - как-то не особо высоко летает.

tailgunner ★★★★★ ()
Ответ на: комментарий от tailgunner

Зачем?

Хотя да, там же виртуальная машина. Поспешил с выводами.

Deleted ()
Ответ на: комментарий от Virtuos86

откуда Раст взялся в тегах

Как минимум синтаксис очень похож.

RazrFalcon ★★★★★ ()
Ответ на: комментарий от Deleted

там же виртуальная машина

Это виртуальная машина для статического языка, она должна быть относительно легко JIT-уема. Но библиотек от этого больше не станет.

tailgunner ★★★★★ ()
Последнее исправление: tailgunner (всего исправлений: 1)

А раст потому, что ВМ написана на нём.

первая мысль после просмотра хелловорлда на главной - раст напоминает.

MyTrooName ★★★★★ ()
Последнее исправление: MyTrooName (всего исправлений: 1)
Ответ на: комментарий от RazrFalcon

откуда Раст взялся в тегах

Как минимум синтаксис очень похож.

И на Руби. И на Питон.

Virtuos86 ★★★★★ ()
Ответ на: комментарий от Deleted

Хотя да, там же виртуальная машина. Поспешил с выводами.

Без VM и GC никаких питонов оно не закопает, потому что никто на нем писать не будет.

Virtuos86 ★★★★★ ()

интересная вариация на тему руби. посмотреть бы более-менее серьёзные проекты написанные на этом я.п.

etwrq ★★★★ ()
Ответ на: комментарий от etwrq

Сейчас питон выкинут, и проджекты попрут, как грибы.

Virtuos86 ★★★★★ ()
import std::process

let sender = process.channel lambda (receiver) {
  let number = receiver.receive

  # Here the compiler knows that
  # "number" is always an Integer:
  number + 5
}

# This is OK:
sender.send(2)

# This will produce a type error:
sender.send('oops')

# «number» is always an Integer

Вот тут у меня нехорошие подозрения. Не ijk ли это из фортрана, Или просто оно из плюса вычислило тип?

vertexua ★★★☆☆ ()
Последнее исправление: vertexua (всего исправлений: 2)
Ответ на: комментарий от RazrFalcon

Питон знаю хорошо. Раст на него похож отдельными деталями, но по ощущению — неа.

Virtuos86 ★★★★★ ()
Ответ на: комментарий от vertexua

Или просто оно из плюса вычислило тип?

Скорее всего, из литерала «5» и операции «+».

Virtuos86 ★★★★★ ()
Ответ на: комментарий от RazrFalcon

А по синтаксису - да.

Примеры схожести в студию.

O02eg ★★★★★ ()
Ответ на: комментарий от O02eg

Да хоть:

fn func(name: &str) -> i32

vs

def func(name: str) -> int

Ну и форматирование строк. Там прямо в доке указано, что брали из Си и Питона.

RazrFalcon ★★★★★ ()
Последнее исправление: RazrFalcon (всего исправлений: 1)
Ответ на: комментарий от vertexua

Не ijk ли это из фортрана

Это, внезапно, вывод типов.

tailgunner ★★★★★ ()

Ниочем. Наколенная система типов со сваливанием в динамическую типизацию, если вдруг забыл аннотации. Очень мило. Зачем такое вообще делают, когда есть кристал да и тот же раст, загадка.

bread ()

сколько::можно::то @делать?.такие -> уродства !! в_синтаксисе?

system-root ★★★ ()
Ответ на: комментарий от RazrFalcon

Да хоть:

Аннотация типов через двоеточие и стрелку взяты из ML. Остальное вообще есть (почти) во всех языках.
Во что точно из питона взяли, это цикл for с моделью вызова метода iter для получения итератора от объекта и его обходом.

Virtuos86 ★★★★★ ()
Ответ на: комментарий от system-root

Половина перечисленных уродств есть в Ruby, которому > 20 лет. Рубистам нравится.

Virtuos86 ★★★★★ ()
Ответ на: комментарий от Virtuos86

я отказываюсь понимать зачем делать язык, если нет идеи как приблизить изложение текста программы к нативному выражению мыслей человека.
понятно, что есть сложившиеся парадигмы и, например, точка между словами определённый паттерн. но заменить отдельно стоящие спецсимволы зарезервированными словами из понятных глифов какого-нибудь алфавита, а ещё, желательно чтобы они имели смысл на каком-то языке, убрать идиотские подчёркивания — ну в чём проблема?
не говоря уже о чём-то посложнее, например, описать без спецсимволов «указатель»
нафига делать yet another, игнорируя прошлые достижения, да хоть того же питона, которому лет немало.
это всё тлен и итерирование в пустоту.

system-root ★★★ ()
Ответ на: комментарий от system-root

Тут нет золотой средины. Или !@$@% или public static final int.

RazrFalcon ★★★★★ ()
Ответ на: комментарий от RazrFalcon

Или !@$@% или public static final int

понятно, что просто пример, но в том же Го, которому я всего пару часов пока посвятил, public заменили конвенцией написания с заглавной буквы. а языку 10 лет уже. за это время можно чего-то ещё придумать.
если думать.

system-root ★★★ ()
Ответ на: комментарий от system-root

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

Говорят, программы значительно чаще читают, чем что-то в них дописывают. А уж рефакторинг и вообще считай предваряется вдумчивым чтением кода. Так может, нужно не написание программ приближать к нативному выражению мыслей человека, а восприятие программ к физическим возможностям человека? Например, человеку проще читать блок кода, когда он у него весь перед глазами, и не нужно его листать туда-сюда, а для этого синтаксис языка должен быть выразительным и компактным (т.е. стремиться к золотой середине между тем, чтобы синтаксические конструкции состояли из как можно меньшего количества токенов и не превращались в кракозябры). Очевидно, что спецсимволы как минимум уместны там, где позволяют сократить количество токенов для выражения типовых задач. Это ведь вопрос привычки, научиться читать «*» как «указатель», вместо того, чтобы нативно читать «pointer».

Virtuos86 ★★★★★ ()
Ответ на: комментарий от system-root

Что значит «нативное выражение мыслей»? Человеческий язык? Так он для описания алгоритмов очень хреново подходит.

Miguel ★★★★★ ()
Ответ на: комментарий от Virtuos86

Говорят

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

system-root ★★★ ()
Ответ на: комментарий от RazrFalcon

зато взлетели FullHD мониторы, теперь взлетают 4k, дальше можно фантазировать про дополненную реальность, но лучше не ванговать и сделать ставку на 8k. а ведь недавно из интерфейса были только лампочки цветные.

system-root ★★★ ()
Ответ на: комментарий от system-root

зато взлетели FullHD мониторы, теперь взлетают 4k, дальше можно фантазировать про дополненную реальность

... и на них всех отображается текст

tailgunner ★★★★★ ()
Ответ на: комментарий от Miguel

Что значит «нативное выражение мыслей»?

простейший пример это if A in B then C.append(Z) — человеческий язык? нет, но.

system-root ★★★ ()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)