LINUX.ORG.RU

ЯП похожие на Golang

 , , ,


0

6

Ничего нового не завозили пока? Интересуют:

  • Предельная простота, чтобы легко читалось и писалось;
  • Как и в Go, функции - first class citizens, чтобы не требовалось по каждому чиху классов пихать; перегруженность многоуровнево-вложенными директориями a-la Java в одном проекте тоже не желательна;
  • Статическая типизация: более строгая чем в Go. Generics? В анус interface{}? Аннотации как в Java или хотя бы типобезопасность тегов в структурах;
  • Разрешить горутинам общаться только через каналы;
  • Добавить таки конструкторы вместо паттерна «конструктор»;
  • Возможно, не использовать сборку мусора;
  • Мелкие фиксы: унификация new/make, инициализации новой переменной (var vs. :=) и т.д.
  • Немногословность: «func Do» / «func do» предпочтительней «public function Do» / «private function do», а «{}» лучше «begin ... end».
  • Не хотеть ставить ";" в конце каждой линии, как будто комп и так распарсить не способен;
  • Компилятор: быстрый, программы - нежручие;
  • Если это что-то совсем новое, можно вместо поддержки тысячи платформ - WebAssembly, который через 4 месяца в браузерах выйдет из под флага, а далее проследует и на мобильные платформы.

Есть что-то такое, что подпадает под критерии? Возможно, немейнстримовое и непопулярное - не важно (хотя труп насиловать в полном одиночестве не хотелось бы).



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

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

Они, кстати, и компиляцию в WebAssembly давно пилят. Не знаю, правда, насколько оптимальный код будет получаться: пока в WASM нет обещанных GC примитивов, стало быть придётся к каждой программе прилагать сборщик мусора.

Но какой-то он не сильно простой. Просто ещё один C-подобный ЯП, где есть всё. Чем он проще какого-нибудь C#, скажем?

MadDeer
() автор топика
Ответ на: комментарий от foror

Announcement где-то был, обещали к марту публичный запуск. Ссылку искать лень, где-то на HN проскальзывала. На офф. сайте говорят о первом квартале 2017 года.

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

Уже есть такая, Vim называется.

Понятно, вопросов больше не имею.

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

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

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

То ты просто жабаскрипт плохо знаешь.

Я его знаю достаточно, чтобы не писать подобный код и давать нормальные линки http://es6console.com/iv7tw3ol/ Еще бы на какой-нибудь радикал загрузил скриншот...

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

Держите меня семеро, хочу в образовательных целях простейший ЯП запилить. Скорее, с Go подобным синтаксисом.

Сильно упорото будет вообще не компилить код, не проходящий под требования gofmt (типа, используешь не табы, а пробелы - ошибка компиляции)? А под требования линтера?

Стоит ли копировать синтакс Go?

func (t *Type) String() string {
	if condition {
		...
	}
	return ...
}

Или скомбинировать его с Python?

func (t *Type) String() string:
	if condition:
		...
	return ...

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

anonymous
()

ocaml.

Простой. Функции есть. Статическая строгая типизация. Параллелизм и конкаренси на lwt монадах, алгебраических эффектах и reagents. Синтаксис вообще отличный, очень лаконичный, никаких скобок, begin_end'ов, но и не чувствителен к отступам. Компилируется в нативный код, есть js бэкенд (даже два). Разве что multicore пока не завезли в основную ветку, но тыкать уже можно. Рантайм офигенный, очень быстрый, компилятор кошерный, особенно после появления flambda, задержки у сборщика мусора мизерные, меньше, чем у Go заметно.

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

Чтоб проще копипастить куски кода и делать кодогенерацию, вестимо.

Разумный довод. Но с другой стороны уменьшит кол-во индусов для данного ЯП.

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

Если пишешь в образовательных целях зачем задаваться подобными мелочами? Или хочешь как Линус затем всех обрадовать своим поделием?

foror ★★★★★
()

Nim можно посмотреть

vega
()

Scala, хоть под ряд требований и не подходит (вроде быстрого компилятора).

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

Сори, пропустил. Хотя вроде в обратнуб сторону читал.

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

Он в первую очередь не подходит по «Предельная простота, чтобы легко читалось и писалось» =).

Не такой он и страшный, если привыкнуть. Ну и по соотношению «мусора» к полезному коду весьма неплох. Правда автор хочет сильно многого: и отсутствие сборки мусора и предельную простоту.

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

Не такой он и страшный, если привыкнуть.

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

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

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

А чем это принципиально отличается от функций?

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

А чем это принципиально отличается от функций?

Это принципиально влияет на читабельность кода для всех, кроме автора этого кода. В отличие от очередного goatse оператора, по названию функции можно догадаться что именно она делает. Если конечно код писал вменяемый человек и не «под себя», но это уже отдельная проблема.

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

Если конечно код писал вменяемый человек и не «под себя», но это уже отдельная проблема.

Дык, вменяемый человек и с операторами злоупотреблять не будет. А с ними можно всё-таки лаконичнее записать и «типа ДСЛ» изображать.

Проблема в том, что они плохо гуглятся, но опять же, если оператор из библиотеки, то в доку заглянуть не особо сложно. Хуже с «общеупотребительными» штуками когда не знаешь языка, но это повод восполнить пробел.

Я так понимаю, что тебе и макросы не по нраву?

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

ocaml
Рантайм офигенный

В каком смысле? В отрицательном: там нет даже точных наносекунд, а только недавно реализованное субсекундное время (в double)!

anonymous
()
6 октября 2017 г.
Ответ на: комментарий от ritsufag

Слышал когда-нибудь платоновский миф о пещере? Вот ты сейчас прекрасно его олицетворяешь. Потому как вообще не понимаешь, что такое написание кода для которого исползуют С, зачем язык спроектирован так, как спроектирован. Но при этом обсираешь и говоришь что знаешь как лучше.

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

10.11.2016 19:39:44
06.10.2017 13:22:20

Маня не выдержала и порвалась на ровном месте, ведь там написано ТАКОЕ!

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

Плюсую этого анонима. OCaml + Async + Batteries.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.