LINUX.ORG.RU

Новый язык V

 , , , ,


1

6

Что сообщество думает по поводу сегодняшнего релиза нового компилируемого языка с авто транслейтом Си в V
https://github.com/vlang/v
? Конкурент Rust?

★★★★★

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

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

а мне вот его подход в целом нравится.

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

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

А в чём конкретно его «подход»? Инструмент должен приносить какую-то пользу. Новая парадигма, например, может облегчать написание кода (в общем), работу с памятью, работу над проектом в команде, чтение кода (наглядность), его верификацию и т.д. Какой из этих аспектов решается сабжем? В чём польза «совсем как молоток, только не молоток»?

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

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

Чушь полная. Создание языков — работа научно-исследовательская. И тут речь идёт даже не о языках программирования.

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

Создание языков — работа научно-исследовательская.

Вполне. Это никак не противоречит тому, что область тут гуманитарная, а не техническая.

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

Чушь полная

Нет. Язык - это средство передачи информации. Между людьми. В том числе язык программирования. Само программирование - техническая сфера, но язык - гуманитарная.

Создание языков — работа научно-исследовательская

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

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

Язык без классов в 2019м... видимо да очередной Go

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

Однако бывает, что язык создают от нечего делать и по методу пихания в него «всего хорошего» (в представлении автора. Вот вы запихнули бы наследование классов, просто потому что сейчас 2019 год). В этом случае успех маловеррятен.

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

Partisan ★★★★
()

Мое мнение таково (раз спросили): новый ЯП должен быть вот каким:

1) быть максимально Си-подобным (пишу это даже при симпатии к Python), поэтому rustишки и goвняшки идут лесом, я эту синтаксическую самодеятельность неприемлю, и когда моя воля я избегаю таких языков очень яростно

2) поддерживать современные платформы типа уметь прикинуться платформо-независимым байт-кодом, скомпилироваться в JS для браузеров, запуститься на JVM/Mono и прочее подобное + возможность компилироваться в бинарник

3) уметь работать как скрипт в UNIX-подобных системах для пущей универсальности

4) иметь модульность, в плане чтоб не тащить гигантский рантайм ради hello world, а только если надо что-то

5) конечно же работу с памятью типа как в питоне или Qt, короче чтоб не морочить голову разработчику, без падений на корявых указателях, и в то же время не тормозить на чистке периодически, ну вы поняли, я тут не спец, но хочется оптимального подхода, а не крайностей типа как в JVM либо как в C++

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

Язык D в этом плане хорош, но я на нем не пишу. Можно упомянуть сисярп, но по пункту 2 и 4-6 плохо проходит

Вот ради таких языков из 6 пунктов и стоит создавать новое, а не вечные эти поделки и полумеры

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

1) быть максимально Си-подобным (пишу это даже при симпатии к Python), поэтому rustишки и goвняшки идут лесом, я эту синтаксическую самодеятельность неприемлю, и когда моя воля я избегаю таких языков очень яростно

В πзду 1, слишком субъективно на одном только «я привык» без всякой попытки оценки, «rustишки и goвняшки» и так «максимально Си-подобны» по сравнению с лиспами, фортами, хацкелями, уж молчу про наследников APL (всякие k j).

2) поддерживать современные платформы типа уметь прикинуться платформо-независимым байт-кодом, скомпилироваться в JS для браузеров, запуститься на JVM/Mono и прочее подобное + возможность компилироваться в бинарник

В πзду 2, если только это не будет задаваться самим кодом (типа вот этот кусок - для jvm, а этот js, а это нативненькая либка для распоследнего интеля с использованием всего и вся), иначе это поставит крест на оптимизации кода - нахер [двадцать] второй питон?

3) уметь работать как скрипт в UNIX-подобных системах для пущей универсальности

Нерелевантно, вон и для сишки с крестами интерпретаторы есть

5) конечно же работу с памятью типа как в питоне или Qt, короче чтоб не морочить голову разработчику, без падений на корявых указателях, и в то же время не тормозить на чистке периодически, ну вы поняли, я тут не спец, но хочется оптимального подхода, а не крайностей типа как в JVM либо как в C++

В πзду 3, работа с памятью должна быть спецификатором типа (а-ля лайф-там в расте), только не так забористо выглядеть. А поверх уже можно всякие «auto-memory», чтоб компилятор сам пытался определить оптимальный вариант.

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

Всё это должно быть в модулях с возможностью корёжить синтаксис под себя.

7. Для прода: система ограничений для компиляции отдельных модулей - разрешение/запрет на использование любых ресурсов: от конкретных модулей/функций, до использования типов, спецификаторов, модификаторов синтаксиса и т.п., вплоть до размера той или иной памяти.

Да, PL/I первым бейсиком покажется ))

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

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

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

Получается, растишка это платформа моей мячты, но я должен смириться с синтаксисом? Что ж, возможно я на это пойду. Когда-то у меня было неприятие Python, а сейчас у меня с ним многое завязано

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

К твоему описанию частично подходит parasail 1 2 (синтаксис, правда, Ada подобный). На самом деле очень много интересных идей. Но автор, вероятно, посчитал ненужным закидывать обсуждение в рачевню HN. Поэтому, донат собирает V.

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

Go

Очередное глупое высказывание

Именно так бы я и охарактеризовал большинство вскукареков высказываний из Go сообщества. Оно на удивление антиинтеллектуальное.

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

В каком смысле «без классов», т.е. какие проблемы решают классы, которые «классы»? Вот в Julia есть структуры и множественная диспетчеризация из коробки. В каком еще современном ЯП есть multiple dispatch из коробки?

seiken ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Действительно прямо описание D. Очень странно что не пишите на нем тогда. Видимо чего-то не договариваете)

yetanother ★★
()
Ответ на: комментарий от I-Love-Microsoft

смириться с синтаксисом

Обычный, Си-подобный синтаксис.

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

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

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

Ни по одному пункту не подходит.

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

В каком смысле «без классов», т.е. какие проблемы решают классы, которые «классы»?

Реализация DOM и WHATWG стандартов

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

NetSurf работает лучше браузера на расте, лел.

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

Тем временем на расте пишут браузер, а классов в Rust нет.

Можно и на Си реализовать DOM и WHATWG стандарты, вплоть до эмуляции ООП, но выглядеть это будет убого и тупо. На расте, кстати, оно так и выглядит.

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

Язык без классов в 2019м

А зачем они тебе? Чтобы чувствовалась проделанная работа, типа сириус бизнес, абстрактные фабрики фабрик, имена из 20 слов? Это все на самом деле очень специфичные вещи, полезные в узком классе задач. А их везде тянут. «Диды жили в пещерах и носили лохмотья - и я буду.»

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

Куда им до браузеров на Java, которых нет.

На Си и Ржавом тоже нет браузера, так то... Десктопные, полноценные браузеры есть только на Крестах, где есть классы, поэтому веб-стандарты пляшут и будут плясать от классов.

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

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

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

Все же, какая конкретно под-фича классов в языке реализации браузера нужна для реализации веб-стандартов?

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

типа сириус бизнес, абстрактные фабрики фабрик, имена из 20 слов

Откуда вы такие только лезете. Сто лет как нет этих фабрик, давно используется IoC и DI, изучите для общего развития.

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

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

Такого забористого бреда я давно не читал.

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

Я не видел имплементации на крестах, но любому разумному человеку будет понятно, что DOM без костылей ляжет на ЯП с классическим ООП.

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

Такого забористого бреда я давно не читал.

Ну тут нужно не ботанить в ржавый, а мыслить шире, чтобы понять влияние классического ООП на веб-стандарты.

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

То-есть это допущение? Понятно.

Это не допущение, а логическое мышление и опыт работы с веб-стандартами, джаваскриптом, джавой и крестами.

Так что надо, наследование, инкапсуляция, полиморфизм?

Инкапсуляция необязательна. Посмотрите DOM или тот же CSSOM стандарт https://www.w3.org/TR/cssom-1/

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

Это Java что-ли? А как же Smalltalk?

Джава в том числе, Smalltalk не помню уже, было это очень давно и неправда.

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

Ага, компания занимающаяся разработкой браузера активно занималась разработкой языка just for fun. И совершенно случайно оказалось в итоге, что они с его помощью начали писать свой браузер.

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