Обновить

Комментарии 18

Тоже повёлся на красивый синтаксис и удобство, а под капотом оказывается не всё так гладко, вот недавняя разгромная статья по этому языку https://mawfig.github.io/2022/06/18/v-lang-in-2022.html

Твоя? Мощно!

Кстати, многие ошибки из статьи уже исправлены

Всё давно исправлено. Актуальность "обзора" нулевая.

Проект очень молодой, в стадии "Beta". Если сейчас погонять примеры из этой статьи, то уже не всё так плохо.
Ну и эта хабростатья вроде про новое интересное. Совсем не обязательно бежать и заменять Vlang'ом Golang и прочее. Где-то оно может и пригодиться. Вполне может прижиться где-нибудь рядом с bash'ем как скриптовой язык.

https://github.com/vlang/v/blob/master/doc/docs.md#cross-platform-shell-scripts-in-v

Посмотрим как будет развиваться.

Делаю обзор на твой обзор - эта статья лишь твое субъективное мнение.

Не особо разгромная если честно. Анонимный чел месяц искал баги в тайп чекере, которые быстро были пофикшены, половину наврал (типа изменяемой string.len).

Сейчас абсолютно все баги из этой статьи пофикшены, полезность в ней нулевая. Но удаляться/обновляться она не будет.

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

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

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

Да я его не обвинял нигде, просто сделал обзор)

А смысл обозревать язык, автор которого постоянно врёт и тупо собирает донаты под обещания?

Ну собрать 30к звёзд на github все таки непросто)

А можно примеры вранья в студию?

Ну я вот ща посмотрел эти три статьи, всё что написано есть в реальности, что не так?

Ага, статья из 2019 от автора "V must die" с причинами типа "V использует libc, git, и электричество. Очень unbiased.

На сегодня кстати ровно 0 из немногих валидных на момент выхода пунктов актуальны.

Нет никакого вранья :)

Нехитрый тест на производительность

V дает результат от 125 до 181 миллисекунд против 28 на Go.

лукавите, в go по умолчанию собирается прод сборка :D

обычная сборка (v .) прошлась за 235мс
продовая сборка (v -prod .) прошлась за 34мс

Для чистоты также не хватает кода на го, предположим что он таков:

package main

import "time"

func main() {
   start := time.Now()

   var sum = 0
   var i = 0
   for i <= 100000000 {
	   sum += i
	   i++
   }

   println(time.Since(start).Milliseconds())
   println(sum)
}

этот код на го на моей машине исполняется (go run main.go) за 36мс

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

Подытожив, код на V отрабатывает не медленнее эквивалента на го, а размер статического бандла меньше на порядок (140кб vs 1.3мб)

Но хорошо, отойдем от синтетики

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

Тут неплоха демка от автора языка для челиков из IBM: https://www.youtube.com/watch?v=_dIAcNp9bJs

Он отмечал, что хочет предоставить разработчикам единый путь для реализации чего-то - чтобы не нужно было искать библиотеку для парсинга json, или искать бекенд фреймворк или orm для чего-то простого - всё из коробки: UI либа, ORM, вебсервер и куча других батареек

Кстати, для VSCode есть плагин, поддерживающий этот язык.

Дап, также недавно вышел плагин языка для идешек от джетов: https://intellij-v.github.io/

Интересно наблюдать за развитием языка - ишью правятся шустро (что быстро опровергает множество статей против "V"), батарейки работают, синтаксис принципиально не усложняют

А вам как? :D

в tinygo тоже примитивный сборщик мусора, по сравнению с языком Go(lang), и размер бинарника тоже в 10 раз меньше. Это не делает tinygo худшей или лучшей версией Go, это версия Go для других целей.
V это экспериментальный язык, в том виде, в котором он есть до сих пор, он непригоден для производства. Хотя идея неплохая. Go не используют там, где могли бы лишь по одной причине: программы на нём работают чуть медленнее, из-за кучи, cборщика мусора и особенностей, заточенных под удобство и скорость написания, а не выполнения. Полагаю, впрочем, что и в языке Go это всё появится, весь этот нечитабельный ужас "аля Rus(t)" для проверки утечек на стадии компиляции, как добавили дженерики (очень долго не хотели добавлять, изначально их не должно быть там). Возможно, название языка будет уже другим.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации