URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 134973
[ Назад ]

Исходное сообщение
"Релиз языка программирования V 0.4.8"

Отправлено opennews , 05-Окт-24 18:19 
Состоялся релиз статически типизированного языка программирования V (vlang). Основными целями при создании V были простота изучения и использования, высокая читаемость, быстрая компиляция, повышенная безопасность, эффективная разработка, кроссплатформенное использование, улучшенное взаимодействие с языком C, лучшая обработка ошибок, отключаемый сборщик мусора (GC), современные возможности и более удобное сопровождение программ. Проект также развивает свою графическую библиотеку и пакетный менеджер. Код компилятора, библиотек и сопутствующих инструментов открыт под лицензией MIT...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=61995


Содержание

Сообщения в этом обсуждении
"Релиз языка программирования V 0.4.8"
Отправлено ilyafedin , 05-Окт-24 18:19 
> Создан русскоязычный чат по языку V в Telegram.

Еще один? Был же уже чат с автором языка.


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 23:25 
Это был болгарский чат.

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 05-Окт-24 18:24 
Как там, is upper функция уже умеет определять не только ascii?

"Релиз языка программирования V 0.4.8"
Отправлено koplenov , 05-Окт-24 23:33 
> Как там, is upper функция уже умеет определять не только ascii?

Тут реализации функции: https://github.com/vlang/v/blob/master/vlib/builtin/string.v...
Тут её тесты: https://github.com/vlang/v/blob/master/vlib/builtin/string_t...

если вы не нашли какого-то своего кейса D: - велком создавать ишью/контрибьютить :D


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 05-Окт-24 23:42 
>if s[i] >= `a` && s[i] <= `z` {

Я про это. Функция ограничена латинским алфавитом.


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 05-Окт-24 23:44 
Ладно, справедливости ради, не все компилируемые языки имеют такую функцию вообще.

"Релиз языка программирования V 0.4.8"
Отправлено Walker , 06-Окт-24 05:04 
Golang умеет

"Релиз языка программирования V 0.4.8"
Отправлено koplenov , 06-Окт-24 12:25 
Накидайте тестовые кейсы и желаемое поведение чем трепаться - добавлю

"Релиз языка программирования V 0.4.8"
Отправлено фф , 07-Окт-24 13:01 
is_upper('ф') == false
а судя по коду выдаст true

"Релиз языка программирования V 0.4.8"
Отправлено konart , 09-Окт-24 13:50 
Я в выходные может накину, но вообще общий пойнт в том, что авторам языка в целом надо сначала документально, хотя бы для себя самих, определиться с тем как оно должно быть.
В частности определиться с тем, что вы считаете стройкой и строкой в верхнем регистре.
>if s == '' || s[0].is_digit() // и далее по коду

выглядит странно.

т.е. строка вида "0 ZERO" даст false, хотя тут сплошной верхний регистр, а строка "ZERO 0" вернет true, хотя тут тоже самое по сути.


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 08:16 
Ради торжества справедливости: не всем нравится ICU

"Релиз языка программирования V 0.4.8"
Отправлено bOOster , 09-Окт-24 09:29 
ICU тут причем? Пользуй другую unicode реализацию, дай бох что их штуки 4 чтоле.
Ну или на крайняк дешифровывай UTF-8 тот-же в ручную, своей головой. Если мозгов хватит.

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 05-Окт-24 18:25 
>На V разрабатывается Volt - лёгкий и быстрый сервис обмена сообщений, который наметил взять лучшее от Discord, Telegram, Signal и Slack.

Открыл сайт, там очередная "вебня", ну да "лучшее" они взяли ага щас


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 05-Окт-24 18:40 
Не могли бы расшифровать ваш новояз на человеческий? "Вебня" - это что конкретно?

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 05-Окт-24 21:47 
>"Вебня" - это что конкретно?

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


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 11:08 
Это когда язык нацелен создавать не программы, а сайты.

"Релиз языка программирования V 0.4.8"
Отправлено animechaos , 05-Окт-24 18:52 
Буквально ты смотришь на нативный код, который в запустили через webassembly

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 05-Окт-24 21:09 
> Открыл сайт, там очередная "вебня", ну да "лучшее" они взяли ага щас

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


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 03:33 
>Проблема в том что у большей части переменных напрочь отсутствует аннотация - так что намерений кодера в сорце нет. Значит валидация намерений в компилтайме - отдыхает.

Откройте для себя вывод типов по Хиндли-Милнеру. Захотите попробовать - возьмите Ocaml. Или Haskell, но из-за полиморфизма в последнем, там иногда придётся делать это вручную.


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 07-Окт-24 03:30 
> Откройте для себя вывод типов по Хиндли-Милнеру. Захотите попробовать - возьмите Ocaml.
> Или Haskell, но из-за полиморфизма в последнем, там иногда придётся делать
> это вручную.

Вывод типов это прекрасно, но явная аннотация куда надежнее и работает лучше. А вон то может оказать медвежью услугу, увы и ах.

А все ваши окамы и хаскели - ну, они где-то есть. Но ими для создания real-world проектов никто не пользуется. И стиль програминга - write only. Примерно 0 человек на этом глобусе хотят вкуривать во все эти полеты мысли какого-то Васяна, вгружая половину его бошки со всеми наворотами, чтобы ему патчик на свою проблему прислать.

В этом месте гнедая немного ломает ногу - и НЕХ навсегда остается игрушкой для академически настроенных умов, котрым главное красивые абстракции, и черт с ним с результатом - да и развитием проекта и прочими майнтенансами, экая печальная фигня, и вообще чего пристали, "филин - стратег!"


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 07-Окт-24 10:59 
>Вывод типов это прекрасно, но явная аннотация куда надежнее и работает лучше.

Почему вы свои домыслы за факты выдаёте? Кроме того, вывод типов добрался уже даже до таких консерваторов, таких как Java и C++, не говоря про то, что даже обрезанном Go он есть из коробки.
>вгружая половину его бошки со всеми наворотами, чтобы ему патчик на свою проблему прислать.

А много людей могут патчи в linux прислать? Вот отладить, где там в многопотоке память бьётся? Нет? Как же так?
>Но ими для создания real-world проектов никто не пользуется.

Опять ваши домыслы. В частности на них пишут компиляторы и анализаторы кода. Тот же rust стартовал с кода на ocaml.


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 09-Окт-24 10:33 
> Почему вы свои домыслы за факты выдаёте? Кроме того, вывод типов добрался
> уже даже до таких консерваторов, таких как Java и C++,

Ну да, ну да, похомячить всем хочется. Это правда качество проектов таки - рушит. Ибо ведет к факапам. У какого-нить C++'ера может и хватить ума юзать "auto" только в каком-нибудь итераторе, когда вреда нет. Но не факт что ограничится только этим.

А в вон тех примерах - аннотации намерений кодера нет. А вывод типа это прекрасно, но вообще ни разу не гарантирует совпадений с intent кодера. Значит о том что не совпадает - узнает где-то сильно потом.

> не говоря про то, что даже обрезанном Go он есть из коробки.

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

>>вгружая половину его бошки со всеми наворотами, чтобы ему патчик на свою проблему прислать.
> А много людей могут патчи в linux прислать? Вот отладить, где там
> в многопотоке память бьётся? Нет? Как же так?

Прикинь, даже я присылал, и не только в линух. Довольно часто можно не трейсить многопоток, если я могу воспроизвести проблему и сделать "git bisect". Простота сишки и отсутствие мега-абстракций позволяет быстро въехать в проблему даже стороннему челу, если комиты как и требует Торвальдс - "на экран влазит". Прикинь какая магия! Можно в навороченом проекте загасить баг почти не одупляя в "глобальную" логику и все такое.

А какие-нибудь хаскелисты - часто фигачат в режиме театра 1 актера. Просто наблюдение. Ибо когда вы разогнались с мега-абстракциями, остальным может быть элементарно лень вгружать половину вашей бошки, проще решить проблему иными методами, вплоть до того что накорябать эрзац на чем-то другом может быть быстрее чем въезжать в полет мысли. Он конечно будет гадкий и не masterpiece. Но свою задачу все же решит.

>>Но ими для создания real-world проектов никто не пользуется.
> Опять ваши домыслы. В частности на них пишут компиляторы и анализаторы кода.
> Тот же rust стартовал с кода на ocaml.

Опять же - нишевое разовое маргинальное применение по сути. И вообще-то нормальный яп должен был бы стратовать - с фазы архитектуры. Судя по дикому костылянию синтаксиса на кажлый пук, и продолбу в всех мыслимых аспектах системщины, спустя 15 лет пинков себя пяткой в грудь на тему системности - с этим как-то не задалось. И синтаксис у хруста ну такой себе, скажем прямо. А костыли намекают что фаза архитектуры - продолбана напрочь.


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 10-Окт-24 14:43 
>А вывод типа это прекрасно, но вообще ни разу не гарантирует совпадений с intent кодера. Значит о том что не совпадает - узнает где-то сильно потом.

В Ocaml алгоритм вывод типов предельно понятен, и никакого "сильно потом" нет, и то, как он работает выясняется во время первого знакомства с языком, во время чтения документации. Если в вашем языке что-то намудрили с выводом типов, то вопросы к вашему языку
>если я могу воспроизвести проблему и сделать "git bisect".

Отлично. А теперь отладьте проблему уровня "ноутбук не выходит из сна". У вас есть старые ядра, где это не работает совсем, и новые, где это не работает иногда. Можите вместо сна взять проблему с файловой системой или гибридной графикой, буквально что угодно.
>А какие-нибудь хаскелисты - часто фигачат в режиме театра 1 актера

Хаскелем мир не ограничивается. Опять же, посмотрите на Ocaml, там порог входа существенно ниже.
>Опять же - нишевое разовое маргинальное применение по сути

С каких пор создание компиляторов стало нишевым и маргинальным?
>И вообще-то нормальный яп должен был бы стратовать - с фазы архитектуры.

Архитектуру нужно на чём-то воплощать. И воплотить архитектуру компилятора на Ocaml гораздо проще, чем то же самое, но на c/c++. А вообще, посмотрите на opam, там много применений будет


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 14-Окт-24 06:42 
> В Ocaml алгоритм вывод типов предельно понятен, и никакого "сильно потом" нет,
> и то, как он работает выясняется во время первого знакомства с
> языком, во время чтения документации. Если в вашем языке что-то намудрили
> с выводом типов, то вопросы к вашему языку

Я предпочитаю явную аннотацию типов. Из соображений antibug, чтобы програмер и компилер точно не могли разойтись во мнениях и была явная декларация намерений исключающая разночтения. Двуногие могут быть не выспавшиеся, просто проглючить, их могут отвлечь, и проч. И они иногда могут сделать - нечто странное.

Так что имхо в этом смысле правильные идеи у кого-то типа хрустиков. С let и сопоставлением блоков они немного перестарались, но в целом - видно что они думали как делать относительно безглючный софт.

> Отлично. А теперь отладьте проблему уровня "ноутбук не выходит из сна".

Прикиньте, если раньше выходил а сейчас перестал, bisect и это сможет! И можно сэкономить себе нефигово времени на отношения с хардварными дебагерами и потугами какого-нибудь трейса проприетарной фирмвары (дебагсимволы у вас есть?!)

FYI, я причастен к аннулированию нескольких факапов early boot и даже раскочегарил пару камней с ноля, даже сишный стартап сам себе написал. И тут вы такой рассказываете мне как это все. Прикол!

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

Я бисектом бахнул несколько багов в дровах GPU. Кроме всего прочего. Прогеры были невероятно рады ТАКОМУ подходу, буквально в реальном времени кроили мне фиксы. Так можно за полдня починить какой-нибудь локап GPU. Вообще не парясь трассировкой! Будущее - здесь.

> Хаскелем мир не ограничивается. Опять же, посмотрите на Ocaml, там порог входа
> существенно ниже.

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

>>Опять же - нишевое разовое маргинальное применение по сути
> С каких пор создание компиляторов стало нишевым и маргинальным?

С таких, что так - очень мало кто будет хруст ставить. Хотя иллюстрация на тему эзотерики, конечно, шикарная. Бутстрап тулчейна - реально одно из самых эзотерических действ в програмизме. Только это очень нишевое развлечение. Примерно как подъем камня с ноля своим кодом :)

>>И вообще-то нормальный яп должен был бы стратовать - с фазы архитектуры.
> Архитектуру нужно на чём-то воплощать. И воплотить архитектуру компилятора на Ocaml гораздо
> проще, чем то же самое, но на c/c++.

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

> А вообще, посмотрите на opam, там много применений будет

Опять же - где все это водится в диком виде?


"Релиз языка программирования V 0.4.8"
Отправлено старый пень , 08-Окт-24 12:08 
Да ладно, мой код крутился в поисковике nigma.ru в течении 7 лет, из них 5 лет когда я там уже не присутствовал.
Нормальный такой real world, выполняемая задача защита проекта от ботов и логических ddos.

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

На тему 0 человек, ну ага, hackage эти 0 человек и накидали пакетами....


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 09-Окт-24 10:56 
> Да ладно, мой код крутился в поисковике nigma.ru в течении 7 лет,
> из них 5 лет когда я там уже не присутствовал.

Из этого поста я узнал про существование какого-то "nigma.ru". И это круто, хорошо и правильно - потому что что? Оно кого-то обставило в какой-то номинации? Нечто за этим сайтом взлетело как некий продукт? И почему - в прошедшем времени? Бобик таки - того?

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

> Нормальный такой real world, выполняемая задача защита проекта от ботов и логических ddos.

И это все - дало мастеркласс кому и почему? Или - как обычно, сдохло ибо понимал тот код 1 кодер на весь глобус, а когда ему надоело в рожу тянуть лямку - ему и амба? Я угадал?

> На тему write only, как раз наоборот, чужой код очень легко модифицировать

Если быть вами. А если васяном с улицы - вот вам полкило высоконцептуального брейнфака. И чтобы сделать патч который на другом яп за 5 минут делается, придется сперва нехило повкуривать в абстрации. Дольше чем все написание патчика. Такое комбо - булщит, увы.

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

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

> На тему 0 человек, ну ага, hackage эти 0 человек и накидали пакетами....

Я честно говоря не знаю кто и что куда накидал. На гитхабе вон вообще васяны налили - миллионы домашек. Но не все из них являются серьезными проектами. Процентов 80 даже тупо не компилится, или страдает ломовыми проблемами, от нетлицензиивыпират до концептуального алго с перформансом вида O(n^3), нуачо, на полутора тестовых записях работает же!


"Релиз языка программирования V 0.4.8"
Отправлено старый пень , 09-Окт-24 14:53 
Ну да, взлетело. На этом поисковике натренировалась команда и потом подняла вполне себе успешный проект https://coccoc.com
Во Въетнаме это ведущий поисковик.
Сейчас нигма уже не работает, как бы куча ресурсов имеют свой жизненный цикл.... селяви.

Не угадал, защита от ddos это тупо обслуживающий сервис, и оно вообще не дохло ))

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

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

Серьезные проекты.... 90% пэйперов по алгоритмам за последние 20 лет пишутся на haskell....
Если для тебя алгоритмы это какая то заумная фигня, ну ты наверно не в ту профессию пошел.


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 10-Окт-24 04:05 
> Ну да, взлетело. На этом поисковике натренировалась команда и потом подняла вполне
> себе успешный проект https://coccoc.com
> Во Въетнаме это ведущий поисковик.

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

Со своей стороны я и этот сайт впервые вижу. На этом глобусе несколько миллиардов сайтов и, конечно, среди всего этого великолепия есть сайты на чем угодно. Что сие доказывает я хз. Если это типа-успех вебдева, ну, ок, это успех - по сравнению с чем?

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

Я уже заметил что жизненный цикл проектов на эзотерике - выглядит довольно характерно.

> Не угадал, защита от ddos это тупо обслуживающий сервис, и оно вообще не дохло ))

В смысле не дохло? Проект живой? Где-то применяется? Или выброшен на свалку истории, как обычно у концептуалов с эзотерикой?

> С каких эт пор Васян с улицы с легкостью запатчит код? Может
> у него определенная квалификация должна быть?

Ну я вот как васян с улицы патчил - баги в linux kernel. И хотя я нии...у в глубины подсистем, когда git bisect мне показал патч размером со скрин, и я знаю сишку, отсутствие крутых абстракций позволяет быстро увидеть что не так в небольшом сегменте кода - даже мне. Хоть я и не вхож в те подсистемы. Но если есть пример хорошего кода, плохого кода, и я вижу как сломалось, все сильно упрощается. А простейший фикс это вообще git revert <offending commit>.

Добро пожаловать в дивный новый мир. А с вон тем так, ессно, не прокатит. Там все же придется вгрузить немеряно абстракций в бошку. Что хуже - скорее всего уникальных для именно этого проекта. И это 2 минуты на фикс. И пару недель на въезд в абстракции. Вы уж простите, но за это время я проблемы решу другими способами.

> Нечего там вкуривать, не больше чем на любом другом языке.

А вот фиг. Высокопарные абстракции - это высокопарные абстракции.

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

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

> Серьезные проекты.... 90% пэйперов по алгоритмам за последние 20 лет пишутся на
> haskell....

Эти пэйперы - именно что пэйперы. А реальных живых проектов, которые не на бумаге... эээ... :)

> Если для тебя алгоритмы это какая то заумная фигня, ну ты наверно не в ту профессию пошел.

Во многих местах програмизма алгоритмы - на удивление примитивны. А какие особые алгоритмы в например отображении сайтика юзеру? Де факто половину такого кода даже AI могет сносно нагенерять ;)


"Релиз языка программирования V 0.4.8"
Отправлено старый пень , 10-Окт-24 08:48 
А гугол проиграл в конкуренцию, не смогли они на локальном рынке.
А так да, всего лишь 100 лямов человек, действительно мелочь. Че уж там.

Проект завершил свой жизненный цикл, принес какое то количество денег, опыта и был забыт.

Да да, верю, вот никому не верю а анониму на слово верю что он спокойно походя патчит ядро за пару минут. ))
Ты не реально крут парниша... языком звиздеть и тролить.

Вообще то работает и весьма не плохо.

Реальные проекты.. А что такое реальный проект? Любой код это нагромождение виртуальных замков в голове и набор байтиков в компе, потрогать не получится. Вообще есть, но если тебе поисковик на 100 миллионов пользователей не катит, то я уж не вижу смысла тебе еще что то показывать, заинтересуешься сам поищешь. А пэйперы это новые мысли и подходы к реализации реальных задач которые могут применяться в дальнейшем.

Во многих да, а во многих нет. От доменной области зависит. Без понятия, сайтиками никогда не занимался, как то больше параллельщина всякая встречается последние лет 10. Ну вот из последнего что попалось любопытного
Aleksander Prokopec, Phil Bagwell, Martin Odersky, "Cache-Aware Lock-Free Concurent Hash Tries
на сайтиках такое явно не нужно, а вот когда у тебя 4 - 5 гигабитов запросов c ограничением на время обработки без подобных вещей уже железа не напасешься.

Как там, Васян с улицы быстренько запатчит? А железа то хватит потом на такой патч?
Так что Васян звизди дальше. И учись лучше. Глядишь не будешь бедным и желчным.


"Релиз языка программирования V 0.4.8"
Отправлено старый пень , 10-Окт-24 09:02 
Ну и по моему антидосу, если ты реально не можешь вдуплить что код решающий задачи в 2013 году по защите специфичного веб ресурса (а поисковик это явно не типичный веб сайтик) в 2024 в принципе не может использоваться в связи с весьма глубокими изменениями в вебе, ну я не знаю, можешь считать что проект сдох, по мне так он просто изжил себя.

Хотя если ты не помнишь что такое нигма, ты скорей всего слишком маленький чтоб понять это.


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 10-Окт-24 15:03 
>когда git bisect мне показал патч размером со скрин, и я знаю сишку

Вы сознательно берёте тривиальный случай. Кстати, как вы будете через бисект искать ошибку, которая есть только на проде? Или если проблема воспроизводится за пару часов, а перебрать нужно несколько тысяч коммитов, а потом портировать исправление со старой версии на новую, ибо баг затрагивает далеко не всех пользователей?
>А простейший фикс это вообще git revert <offending commit>.

Этот коммит зачем-то делался. Сомневаюсь, что его автор хотел что-то специально сломать. Особенно будет весело, если проблема в новой подсистеме, а старая подсистема уже удалена.
>Де факто половину такого кода даже AI могет сносно нагенерять

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


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 10-Окт-24 14:49 
>Я так то в курсе что все яп эквивалентны

А вот и нет. Они не взаимозаменяемы. То, что легко делается на Ocaml не получится никогда воплотить на Python, просто из-за различий в семантике этих языков.
>И чтобы сделать патч который на другом яп за 5 минут делается

За пять минут делается, если проблема тривиальна. Я ещё раз рекомендую вам взять любой сложный проект, хоть тот же самый firefox, и отладить любую сложную проблему. Например, firefox падает на x86 в случайных местах. Там же всё просто, по вашим словам
>Взаимосключающие параграфы. Или уж надо разбираться, или уж - легко.

Всему нужно учится. Но после обучения - легко. Вы же не родились умеющим программировать?


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 10-Окт-24 14:52 
>Я честно говоря не знаю кто и что куда накидал. На гитхабе вон вообще васяны налили - миллионы домашек.

Это пакетный менеджер хаскеля, стыдно не знать.


"Релиз языка программирования V 0.4.8"
Отправлено Axel , 07-Окт-24 10:04 
Ещё и верстка плавает. Везде padding разный

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 05-Окт-24 18:25 
Судя по синтаксису это какой-то го у нас дома.

"Релиз языка программирования V 0.4.8"
Отправлено Швондик , 05-Окт-24 21:48 
это смесь паскаля с явой

"Релиз языка программирования V 0.4.8"
Отправлено Андрей , 07-Окт-24 07:51 
Да, это по сути Go с лучшей интероперабельностью с сишкой, причём настолько, что в текущем виде компилятор генерит сишный код и только затем сишным компилятором доводит его до двоичного elf и пр. Вообще кмк - это очень крутая стратегия, ибо язык по сути минимальными усилиями может затягивать в себя все сишные библиотеки и обёртки, притом и сам порождает вполне достойный код. Из минусов и странных замут - это то, что в языке предусмотрено 4 механизма работы с памятью, что очень ломает мозг, т.к. во-первых половина из них нестабильна, а во-вторых не совсем очевидно как будет работать программа в которой разные модули работают с различными механизмами, особенно с учётом того, что для части механизмов работа с памятью ручная, а для другой автоматическая, от чего потенциально есть риск бардака в вопросе того - кто же всё-таки владеет памятью, как долго и на каких основаниях.

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 07-Окт-24 11:44 
>Да, это по сути Go с лучшей интероперабельностью с сишкой, причём настолько, что в текущем виде компилятор генерит сишный код и только затем сишным компилятором доводит его до двоичного elf

Это вообще ничего не говорит про лёгкость совмещения сишного и не сишного кода. Поскольку гораздо важнее модель памяти, количество разных обвязок, представление структур в памяти.
>Вообще кмк - это очень крутая стратегия, ибо язык по сути минимальными усилиями может затягивать в себя все сишные библиотеки и обёртки, притом и сам порождает вполне достойный код.

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

Кроме того, у данного подхода есть и минус - отлаживать придётся сишный код, со всякими промежуточными шагами.
>Из минусов и странных замут - это то, что в языке предусмотрено 4 механизма работы с памятью, что очень ломает мозг, т.к. во-первых половина из них нестабильна, а во-вторых не совсем очевидно как будет работать программа в которой разные модули работают с различными механизмами, особенно с учётом того, что для части механизмов работа с памятью ручная, а для другой автоматическая, от чего потенциально есть риск бардака

Это не просто потенциально, это обнаружится при написании первой же программы, которая будет взаимодействовать с любой сложной структурой данных. Даже без прямого взаимодействия с чужим кодом это с лёгкостью может привести к утечкам(а их уже обнаружено много https://github.com/vlang/v/issues?q=is%3Aissue+memory+leak) и потенциально порче памяти


"Релиз языка программирования V 0.4.8"
Отправлено Вова , 22-Окт-24 23:15 
Если он генерит "промежуточную сишечку", это уже медленный канпелятор! Скорости надо учиться у Паскаля.

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 07-Окт-24 19:29 
го без телеметрийных зондов

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 05-Окт-24 19:07 
Судя по активности https://github.com/spytheman разрабу хорошо платят. Даже в выходные пашет.

"Релиз языка программирования V 0.4.8"
Отправлено Швондик , 05-Окт-24 21:49 
либо просто ещё молодой на энтузиазме

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 00:22 
Не могу сказать конкретно про этого. Но автор языка иногда вбрасывал вакансии на участие в разработке. Хз откуда деньги, но зп обещал.

"Релиз языка программирования V 0.4.8"
Отправлено Швондик , 06-Окт-24 11:16 
походу на крипте чутка бабла поднял

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 18:53 
На сайте 6 спонсоров https://vlang.io/ Так что ничего волшебного тут нет.

"Релиз языка программирования V 0.4.8"
Отправлено Швондик , 06-Окт-24 23:03 
Так намного лучше

"Релиз языка программирования V 0.4.8"
Отправлено Вы забыли заполнить поле Name , 06-Окт-24 14:57 
Опять эксперты заняты любимым делом: считают чужие деньги. Я наоборот рад за людей, что они делают, что нравится, да ещё и денежки на это есть.

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 18:50 
Общество вправе знать, кто заказчик банкета. Вроде все честные люди, а ведут себя как барыги из 90-х.

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 05-Окт-24 19:44 
Очень приятный в использовании, конечно до применения в чем то серьезном еще далеко.
Изучается быстро, выглядит как более совершенный и разумный аналог го.
Парадигма expected optional для обработки ошибок хорошо структурирует код.
Можно использовать автономно в отличие от его корпоративного аналога, который требует интернета для репозитория и отсылки телеметрии.

И вменяемая лицензия кстати :)


"Релиз языка программирования V 0.4.8"
Отправлено koplenov , 05-Окт-24 23:25 
Тут в чатике я как-то расписывал про успешно реализованные проекты на V: https://t.me/vlang_rus/51615

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 02:11 
Есть хоть один энтерпрайз проект? Хелоуворлды с житхаба не интересны.

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 02:14 
Почитал. Какие-то внутренние админки и пет проекты для двух юзеров. Короче песочница и совочки.

"Релиз языка программирования V 0.4.8"
Отправлено koplenov , 06-Окт-24 03:20 
> Короче песочница и совочки.

Нуу, как затащил V в прод, у нас больше года проект на нем работает

админка со сбором статы и скрипты на V сейчас рулят 400хста доменами, полет нормальный

допиливаются фичи и идем к цели в 800 доменов

сейчас 2.8к строк кода бекенда на v
1.6 фронта на ts (генерируется в 17к строк)


пользуются на постоянке четыре чела
я один разраб


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


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 11:21 
Такое обычно на Perl хорошо писать.

У вас есть где-нибудь страница сравнения с perl?


"Релиз языка программирования V 0.4.8"
Отправлено koplenov , 06-Окт-24 12:27 
> У вас есть где-нибудь страница сравнения с perl?

Чего с чем в каких аспектах?

Плотнее это можно обсудить в самом чатике https://t.me/vlang_rus


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 16:00 
На мой телефон не приходят смски, не могу зарегистрироваться в телеграмме.

У вас нет IRC канала? Или хоть xmpp?


"Релиз языка программирования V 0.4.8"
Отправлено koplenov , 06-Окт-24 19:00 
> На мой телефон не приходят смски, не могу зарегистрироваться в телеграмме.
> У вас нет IRC канала? Или хоть xmpp?

тогда давайте пробовать обкатывать сам volt - https://volt.im/s/russians

он не требует номера телефона


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 13:02 
Примерно в таком ключе и планируется использовать - с десяток серверов с синхронным запуском/остановом/управлением прикладного ПО, было до этого автоматизировано при помощи каких то деревенских скриптов, го отпадает по ряду причин, V справится идеально.

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 18:22 
>пользуются на постоянке четыре чела
>я один разраб

Как вам удалось протощить это в прод? Вы единственный разработчик в проекте?
>Как никак, а это кже успех - затащить на прод технологию, которая хорошо себя показала

В чём она себя показала хорошо? Если бы вместо вас пришёл другой человек, и затащил Ocmal/FreePascal/Go/любой другой язык, то это кто-то бы заметил?


"Релиз языка программирования V 0.4.8"
Отправлено koplenov , 06-Окт-24 19:15 
> Как вам удалось протощить это в прод? Вы единственный разработчик в проекте?

да, единственный разработчик(/бекендер/фронтендер)/девопсер на три направления и три проекта

остальные в команде - вебмастера бородатых лет, не программисты


> В чём она себя показала хорошо?

стабильная работа написанного сервиса

сервис также собирал статистику, на которое опиралось руководство в своих отчетах при дальнейшем планировании работы


в разработке нам полностью хватило стандартной библиотеки языка

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

> Если бы вместо вас пришёл другой человек, и затащил Ocmal/FreePascal/Go/любой другой язык, то это кто-то бы заметил?

Если бы этот кто-то другой сделал все необходимое на Ocmal/FreePascal/Go/любой другой язык и оно решало все те же задачи, было бы так же просто разворачиваемо, не требовало много времени - почему нет?

Лично мне про Ocmal/FreePascal/perl было бы интересно послушать в современном мире и вебе
Про go, c#, js, php - нет

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


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 20:44 
>стабильная работа написанного сервиса

Удивительно, ведь V еще только в стадии разработки первой версии.

> достаточно стереотипное (как по мне) представление об их использовании

А какое?

На Free pascal 'е можно web-интерфейс приделать
https://github.com/PierceNg/fpwebview

Можно и для android'a
https://samadhiweb.com/tags/Pascal.html
https://github.com/jmpessoa/lazandroidmodulewizard/
https://habr.com/ru/articles/835244/


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 07-Окт-24 17:06 
> Лично мне про Ocmal/FreePascal/perl было бы интересно послушать в современном мире и вебе

а куда делся пайтон?

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


"Релиз языка программирования V 0.4.8"
Отправлено koplenov , 07-Окт-24 22:40 
> а куда делся пайтон?

тот же джанго - он в вебе новость? по наблюдениям - точно не новость

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

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


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

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

мне понравилось, что из коробки в стандартной библиотеке есть все необходимое для реализации чего-то стоящено,
например, драйверы работы с разными базами данных, встроенная orm, веб сервер, шаблоны, etc


В отличие от вышеупомянутого питона, где для совершения человечных веб запросов уже требуется сторонний модуль наподобие `requests`, в V эти и многи другие приблуды просто есть, и стремяться к описанию "просто работает"

А если чего-то не хватает, и при этом это какая-то типовая задача, можно внести свой вклад в стандартную библиотеку

Как по мне, весомая киллерфича V в том, что его ничего не сковывает в развитие стандартной библиотеке
В отличе от c/c++ где переизобретение "строк" - это норма


тут кстати автор V презентовал язык ребятам из IBM - https://www.youtube.com/watch?v=_dIAcNp9bJs

¯\_(ツ)_/¯


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 08-Окт-24 10:58 
Немного точек над И.., питон не люблю и не использую.

> мне понравилось, что из коробки в стандартной библиотеке есть все необходимое для реализации чего-то стоящено,

Думаю любой "молодой" язык может этим похвастаться, 20/80 в чистом виде, и вот когда в периметре интересов появляется что-то нестандартное с необходимостью подкрутить, где-то что-то очень специфичное, а в стандарте это не предусмотрено, что делать? переписывать функционал стандарта переусложняя проект..

> Как по мне, весомая киллерфича V в том, что его ничего не сковывает в развитие стандартной библиотеке

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

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


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 07-Окт-24 18:16 
> я один разраб
> затащить на прод технологию, которая хорошо себя показала, написать инструментарий, на который можно доказательно-финансово опираться и развивать это дело дальше - достойно

Ну под такими лозунгами можно хоть брейнфак затащить.

В совке кто-то считал достойным железку с завода вынести, а сейчас кто-то считает достойным на деньги работодателя вместо работы играться в доморощенные язычки без экосистемы, сообщества и будущего, тратя на решение простейших задач Nx времени, обеспечивая работодателю проблемы при своём увольнении или банально болезни и гарантируя в итоге ещё Mx трат на переписывание на нормальном ЯП и потери на сопутствующие простои и миграции.

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


"Релиз языка программирования V 0.4.8"
Отправлено koplenov , 07-Окт-24 22:17 
> Ну под такими лозунгами можно хоть брейнфак затащить.

Конечно, только если бы он удобно покрывал все хотелки:

- нужно было ходить в базу (mariadb)
- писать в свою (sqllite3 заюзал)
- исполнять системные команды (через os.execute)
- иметь рестню (vweb покрыл потребности)
- джейсонить (json из стдлибы подошел)
- конфиги вынес в томл файлы (toml из стдлибы подошел)
- с темплейтами тоже удобно работать (embedded_file крута тема)

V это все покрыл своей стандартной библиотекой, без сторонних зависимостей


> Написал я вашему работодателю, Роман, пусть хотя бы в курсе будет на что его деньги уходят

Я тоже умею читать профили, аноним, с нетерпением жду разговоров :3


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 08-Окт-24 18:49 
>V это все покрыл своей стандартной библиотекой, без сторонних зависимостей

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


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 09-Окт-24 11:45 
> Это минус языка, а не плюс. Перегружает стандартную библиотеку и замедляет развитие
> функционала, плюс отсутствие альтернатив.

При том toml как конфиги - ну такое себе. Какой баклан вообще придумал что markup language - отличный выбор для конфига? Может на HTML еще конфиги запилить?


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 08-Окт-24 19:00 
>Конечно, только если бы он удобно покрывал все хотелки:

То что вы описали решается буквально любым языком, хоть php, хоть ocaml, хоть ruby, хоть go, ...


"Релиз языка программирования V 0.4.8"
Отправлено Анонимище , 08-Окт-24 10:04 
>обеспечивая работодателю проблемы при своём увольнении

так в этом и прикол :)


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 02:09 
В го телеметрия включается опционально и эксплицитно. Ты это, конечно же, знаешь, но сознательно опустился до глупой манипуляции.

"Релиз языка программирования V 0.4.8"
Отправлено OpenEcho , 06-Окт-24 05:06 
> его корпоративного аналога, который требует интернета для репозитория и отсылки телеметрии

Даже прям так, - требует? В обоих зайцев не попал... "специалист!"


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 10:54 
Петрович, успокойся. Никто у тебя go не отнимет.

"Релиз языка программирования V 0.4.8"
Отправлено OpenEcho , 06-Окт-24 17:32 
А, это ты Анонимыч, ну пасиб, успокоил, троль дальше...

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 09-Окт-24 11:47 
> Петрович, успокойся. Никто у тебя go не отнимет.

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


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 05-Окт-24 19:57 
> Разрешён возврат работы функции в качестве аргумента другой функции.

вау! это новое слово в науке и технике!
что? то есть как это сейчас не 60-ые?


"Релиз языка программирования V 0.4.8"
Отправлено Ъ , 05-Окт-24 21:27 
по ссылке сходи, речь о функциях возвращающих несколько значений

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 08:40 
Не то что в языке. В MS Excel это всегда было.

"Релиз языка программирования V 0.4.8"
Отправлено Карлос Сношайтилис , 05-Окт-24 22:43 
Первый раз вижу этот язык и зуб не дам, но может имеется ввиду, что при вложенных функциях, результат в виде кортежа распаковывается в отдельные аргументы, а не является одним аргументом-кортежем.

"Релиз языка программирования V 0.4.8"
Отправлено Андрей , 07-Окт-24 08:51 
именно так и есть, по сути это фишка, которую скопировали с Go

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 05-Окт-24 20:26 
Зачем ещё 1 язык программирования?

"Релиз языка программирования V 0.4.8"
Отправлено Продавец , 05-Окт-24 22:39 
Потому что будущее на дворе, дружище! Ну-ка быстренько изучать! Япы которые ты знаешь позволяют отключить ГЦ? Вот и тото-же. Не стоит возиться со всяким старьем

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 03:19 
А кому это реально нужно? Тот же D(better C) уже давным давно есть.

"Релиз языка программирования V 0.4.8"
Отправлено Продавец , 06-Окт-24 12:32 
Это нужно например тем, кто прогает на D со всеми его устаревшими концептами

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 14:56 
И какие именно там устарели?

"Релиз языка программирования V 0.4.8"
Отправлено Продавец , 07-Окт-24 10:48 
Отсутствие всего того, что есть в V, очевидно же

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 08-Окт-24 12:11 
И надо заранее отметить, что отсутствие в V того, что есть в D считаем также устаревшим, а если это будет добавлено, придумаем зачем это старье добавили :-D

"Релиз языка программирования V 0.4.8"
Отправлено koplenov , 05-Окт-24 23:15 
Тут по ссылке кратко чем он отличается отдругих основных языках и что в нем сделано проще и лучше: https://vlang.io/compare

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 19:27 
А какие отличая от Zig в идеологии? Выглядят похоже

"Релиз языка программирования V 0.4.8"
Отправлено нейм , 06-Окт-24 09:46 
Чтобы тебя аишницей не заменили (быстрее, чем могут сейчас). Или индусами/ганийцами. Не знаю, что обиднее, если честно.

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 05-Окт-24 22:09 
Звучала уже где-то история про вавилонский сервер.
Или это был "один сервер то rule them all"?..

Короче, судьба его была сложной: обвязку-таки допилили, а ядро так и не построили. Поэтому пришлось кооперироваться с хоббитом, который построил ядро, но не имел обвязки.
И это ещё когда писалось всё в основном на сях.

А теперь языков много и чё дальше будет -- неизвестно.
Едим попкорн, наблюдаем.


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 05-Окт-24 22:41 
Как там с наследованием, уже добавили?

"Релиз языка программирования V 0.4.8"
Отправлено koplenov , 05-Окт-24 23:20 
> Как там с наследованием, уже добавили?

Тут оно структурное как в go, подробнее по ссылке - https://docs.vlang.io/structs.html#embedded-structs

В сочетании с интерфейсами, весьма неплохая штука


"Релиз языка программирования V 0.4.8"
Отправлено Я , 05-Окт-24 23:01 
unsafe есть? как пометить опасные участки кода? табуляция обязательна? без этого мильены мух не признают

"Релиз языка программирования V 0.4.8"
Отправлено koplenov , 05-Окт-24 23:17 
> unsafe есть? как пометить опасные участки кода?

есть, подробнее про работу с unsafe по ссылке - https://docs.vlang.io/memory-unsafe-code.html


> табуляция обязательна?

неа, не обязательно - это вам не питоны и не го


"Релиз языка программирования V 0.4.8"
Отправлено OpenEcho , 06-Окт-24 05:13 
> неа, не обязательно - это вам не питоны и не го

И с каких это пор табуляция в Го стала обязательной ???


"Релиз языка программирования V 0.4.8"
Отправлено koplenov , 06-Окт-24 12:39 
Речь то шла в целом про форматирование

в Go оно строгое и перенос строки в неположенном месте = ошибка компиляции

пример с if:
скомпилируется - https://go.dev/play/p/eKwLnsRq8us
а это уже нет - https://go.dev/play/p/Go3n6maxG9g

также как и это - https://go.dev/play/p/2G_fIlIJyeo


"Релиз языка программирования V 0.4.8"
Отправлено OpenEcho , 06-Окт-24 17:28 
Товарищ, прочитайте пожалуйста ещё раз, - очень, очень внимательно:

>> табуляция обязательна?
> неа, не обязательно - это вам не питоны и не го

Где вы в слове `табуляция`(!!!) увидели "Речь то шла в целом про форматирование" ?

c := 4 +
                    4
  println(ci)

Сильно похоже на питоновское? А работает...

FYI: https://go.dev/ref/spec#Semicolons


"Релиз языка программирования V 0.4.8"
Отправлено koplenov , 06-Окт-24 18:56 
> unsafe есть? как пометить опасные участки кода? табуляция обязательна? без этого мильены мух не признают

Хорошо, первым проявлю конструктив в разговоре

> unsafe есть?

есть

> как пометить опасные участки кода?

блоком кода unsafe {  } - подробнее по ссылке в первом ответе


"Релиз языка программирования V 0.4.8"
Отправлено OpenEcho , 06-Окт-24 22:35 
Вы же сами, специфически выделили в отдельный вопрос табуляцию !

>> табуляция обязательна?
> неа, не обязательно - это вам не питоны и не го

На что и мой коммент что это не корректно то отношению к Го.
go fmt нафигячит табуляций, да, для того, чтобы у всех был одинаковый стиль и легче сопровождать, понимать чужой код, но это вообще - НЕ ОБЯЗАТЕЛЬНО, так же как и V, C, C++...


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 05-Окт-24 23:27 
раньше компиляторов Си не требовал, а теперь...

"Релиз языка программирования V 0.4.8"
Отправлено Андрей , 07-Окт-24 09:14 
V ? Тот самый V который с сишного бэкэнда начинался и который у них пока является основным ? В остальном он как раньше так и сейчас не требовал сишного компилятора только потому, что в сборке таскал tcc

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 05-Окт-24 23:52 
Ты не ты если не запилишь себе собственный ЯП.

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 01:59 
> Основными целями при создании V были простота изучения и использования, высокая читаемость, быстрая компиляция, повышенная безопасность, эффективная разработка, кроссплатформенное использование, улучшенное взаимодействие с языком C, лучшая обработка ошибок, отключаемый сборщик мусора (GC), современные возможности и более удобное сопровождение программ.

Простота изучения на английском языке. Дожились. В 90-е дети 1-3 классов изучали Лого на русском языке. Веб версия этого языка до сих пор существует. Вот это реально просто и понятно даже ребенку. Потом изучали как правило Паскаль, который далеко не всем был понятен, хоть и простой язык программирования. Но на сегодняшний день самый простой это JavaScript - исторически так сложилось что он явно какими-то лингвистами разрабатывался, а не инженерами. Его и Node,Bun,Dino может, его и браузер может да и некоторые микроконтроллеры могут переварить. Тогда это было не так очевидно - он был не развит. А высокая читаемость это к 1С. Быстрая компиляция это к ассемблеру. Ничего не скажу за все остальное - не знаком с языком. Тем не менее уже описание выглядит красивым набором слов для рекламы.


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 02:18 
И я бы ещё добавил что есть Фортран - говорят хорош для математики. Есть lua - прост, стар и также как js для всего подходит из-за разнообразия дополнений, используется в геймдеве. Есть Action Script с Flash технологией для мультимедийных приложений, да и просто для рисования мультиков. Нынче господа толстосумы вложились в ИИ, т.е. нужно что-то простое для создания ИИ нынче. Такое есть? Я видел анимации некоторых компаний софта по отладке ИИ, которым они называют глубокое обучение, которое реально многослойный персептрон, который и можно визуально отлаживать - рассматривая как идёт обучение и принятие решений на 3D модели. И это все хорошо, а V - для чего?

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 08:49 
Да-да, все хороши. А для всего есть C#.

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 13:40 
>а V - для чего?

Про V написано, что он берёт лучшее, что есть в Go, Rust, Swift, Javascript, при этом лишён их недостатков. А вдруг это правда?


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 14:23 
Зашел на https://vlang.io/ посмотрел и понял что это утверждение не правда. От Javascript он лучшее не взял это уж точно. От Go тоже не похоже. Насчёт других языков - не в курсе.

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 17:51 
>А вдруг это правда?

Неправда. Автор вводит людей в заблуждение. Например, автор утверждает, что у него нет нулевых укаазателей, но у него есть не только нулевые указатели, у него любая переменная может быть null
fn main() {
    x := []&int { len: 10, cap: 0 }
    println(x[4])
}

&nil


"Релиз языка программирования V 0.4.8"
Отправлено Alladin , 06-Окт-24 02:59 
"V удалось запустить на Windows XP."
действительно киллер фича

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 09:16 
Луддиты новомодные япы не юзают, так что на xp эта хрень никому нужна не будет, там небось на c99 до сих пор пограммируют.

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 13:33 
Free Pascal / Lazarus до самых последних версий отлично работают в Windows XP, сам проверял.

"Релиз языка программирования V 0.4.8"
Отправлено koplenov , 06-Окт-24 12:43 
Смотря как посмотреть
Тут я бы отметил что V подходит под описание "просто работает"

Python последних версий не поддерживается
Nodejs последних версий не поддерживается
Go последних версий не поддерживается
список можно продолжать

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


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 18:24 
>Go последних версий не поддерживается
>список можно продолжать

А зачем вам Go последней версии на XP? И почему на XP, а не скажем ME или 95?


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 19:04 
XP до сих пор используется, а у ME и 95 нет поддержки SATA,

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 19:37 
Я видел системы, которые, судя по внешнему виду ещё в досбоксе работают. Так что вопрос по прежнему открыт, зачем нужен современный go в давным давно устаревшей XP

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 20:42 
XP ещё кому-то нужна (у родственников на старом компьютере, драйверы для старого мфу только для XP), а вот Go определённо никому не нужен

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 07-Окт-24 00:19 
Допустим, кто-то до сих пор использует XP. Зачем ему запускать на ней новый софт, безразлично на каком языке? Там же проблемы будут буквально повсюду, вплоть до того, что нужно будет самостоятельно устанавливать новые сертификаты или ограничения в версии directx. И чем дальше, тем проблем будет больше.

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 03:07 
отступы в пять символов - это откуда позаимствовано?

"Релиз языка программирования V 0.4.8"
Отправлено Карлос Сношайтилис , 06-Окт-24 09:27 
My lang, my rules!

(надпись у автора на тачке)


"Релиз языка программирования V 0.4.8"
Отправлено Вова , 22-Окт-24 23:00 
Очевидно же, фортранист покусал :)

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 03:15 
>V 0.4.8

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

Взаимоисключающие пункты
>повышенная безопасность

Каким образом?
>лучшая обработка ошибок

Чем лучше хаскеля/окамла/раста?
>отключаемый сборщик мусора (GC)

Это минус языка, а не плюс. При написании кода изначально надо знать, как будет управление памятью, как минимум для библиотек, так как иначе память будет течь/код просто не соберётся/порча памяти. Кроме того, уже есть D(better C).
>высокая читаемость
>эффективная разработка
>современные возможности и более удобное сопровождение программ.

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

Кортежи не изобретены.
>Исправлена работа дженериков в лямбда выражениях.

Ужас.
>V удалось запустить на Windows XP.

Невероятно важное достижение(нет)

Осуждаю появление очередного языка, без сопутствующей теоретической базы. Есть реально хорошие языки семейства ML, например Ocaml, но нет, продолжают клепать очередной си-подобный язык, без какого-то намёка на прогресс, словно на дворе девяностые.


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 10:58 
Ты душный. На часть вопросов есть ответы в самой новости, кстати.
Ocaml нужен 1,5 человекам. Не удивлюсь, если V обгонит его по частоте использования, если уже не обогнал.

"Релиз языка программирования V 0.4.8"
Отправлено BeLord , 06-Окт-24 14:12 
Твой Ocaml позволит получить на выходе бинарник оптимизированный под конкретный процессор,а не под что-то среднее по больнице?-)

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 18:11 
Не интересовался. Думаю с помощью флага -output-obj можно добится данного эффекта

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 03:27 
https://mawfig.github.io/2022/06/18/v-lang-in-2022.html

"Релиз языка программирования V 0.4.8"
Отправлено koplenov , 06-Окт-24 03:38 
Отличная была статья! А теперь можете првоерить актуальность всего написанного? :3

Два года как никак прошло, подавляющее колличество проблем из таких статей разобрали на ишью и пофиксили


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 04:11 
>Два года как никак прошло, подавляющее колличество проблем из таких статей разобрали на ишью и пофиксили

Не исправили, а поставили заглушки на конкретные проблемы. Допустим, автор утверждает, что в языке нет null
https://vlang.io/compare
>No null (null is only allowed in unsafe code)

Далее, берём вот такой код, и пытаемся его собрать
struct Node {
    val   int
    left  &Node
    right &Node
}

fn main() {
    n := Node { 123, 0, 0 }
    println(*n.left)
}
Код прекрасно собирается, и падает во время выполнения. То есть, автор солгал, говоря что в его языке нет null, он есть.


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 08:23 
Там же написано, есть для unsafe кода. Left и right помести в unsafe.

"Релиз языка программирования V 0.4.8"
Отправлено Карлос Сношайтилис , 06-Окт-24 09:32 
> Там же написано, есть для unsafe кода. Left и right помести в
> unsafe.

Эм, оригинальное понимание.

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

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


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 17:36 
>Left и right помести в unsafe.

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


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 13:51 
>Код прекрасно собирается, и падает во время выполнения.

А как должно быть? Мне кажется, отсутствие null и недопущение неинициализированных переменных/полей структуры - это разные вещи.


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 17:45 
>А как должно быть?

Посмотри на Ocaml/Haskell/Rust/Purescript/... В сиподобных языках есть null, который как вирус может просочится откуда угодно куда угодно.
int * a = null;
В этих языках null отсутствует, в место него есть None. И None можно поместить не куда угодно, а только в специально помеченные переменные. Если у вас
val a : int
то None туда никак не просочится. Если у вас
val a : int option
то у вас там может быть None, а может быть число. И если вы захотите что-то с ним сделать, например сложить, то не сможите просто написать
a + 1
Вместо этого нужно будет проверить, что всё на месте
match a with
| Some a -> a + 1
| None -> 1
Можно будет написать
(Option.value_exn a) + 1
В этом случае, программист явно говорит упасть с исключением. Таким образом, программа не упадёт внезапно с null pointer exception, поскольку компилятор следит, чтобы программист указал явно.
>Мне кажется, отсутствие null и недопущение неинициализированных переменных/полей структуры - это разные вещи.

В примере выше поля инициализируются нулевыми указателями


"Релиз языка программирования V 0.4.8"
Отправлено koplenov , 06-Окт-24 19:28 
код:
```
struct Node {
    val   int
    left  &Node
    right &Node
}

fn main() {
    n := Node { 123, 0, 0 }
    println(*n.left)
}
```

при сборке дает ворнинг:
```
PS C:\Users\koplenov\AppData\Roaming\JetBrains\IdeaIC2024.1\scratches> v .\scratch_4.v
scratch_4.v:8:19: notice: assigning `0` to a reference field is only allowed in `unsafe` blocks
    6 |
    7 | fn main() {
    8 |     n := Node { 123, 0, 0 }
      |                      ^
    9 |     println(*n.left)
   10 | }

```


это один из самых любимых аргументов для напастей других на язык

чуть позже оно будет сыпать ошибкой и при прод сборке будет падать на таком коде


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 19:48 
>при сборке дает ворнинг:

И? В языке есть указатели типа сишных. За несколько лет их немного облагородили, и теперь приложение уже не разваливается на части с ошибкой сегментации, по крайней мере в простых случаях, а притворяется языком типа go с ошибкой времени выполнения.
>это один из самых любимых аргументов для напастей других на язык

В 1984 появился Standard ML, в котором уже был тип option. До SML были предшественники, типа ML или Hope. Сколько там лет прошло, сорок? Почему в 2024 году язык с таким поведением вообще в серьёз рассматривают?
>при сборке дает ворнинг:

И как предупреждение превратит указатель в ссылку?
>чуть позже оно будет сыпать ошибкой

С поломкой текущего кода? Почему изначально нельзя было сделать по нормальному?


"Релиз языка программирования V 0.4.8"
Отправлено koplenov , 07-Окт-24 02:04 
поправлено только что - https://github.com/vlang/v/commit/2b52153c1477bb782645f6c50c...

теперь подобный код не соберется

```
PS C:\Users\koplenov\AppData\Roaming\JetBrains\IdeaIC2024.1\scratches> v -prod .\scratch_4.v
scratch_4.v:8:19: error: assigning `0` to a reference field is only allowed in `unsafe` blocks
    6 |
    7 | fn main() {
    8 |     n := Node { 123, 0, 0 }
      |                      ^
    9 |     println(*n.left)
   10 | }

```

Обновить V можно командой: v up
Он сам себя спулит и локально пересоберет
```
PS C:\Users\koplenov\AppData\Roaming\JetBrains\IdeaIC2024.1\scratches> v up
> Updating V...
> git_command: git pull https://github.com/vlang/v master
> backing up `cmd/tools/vup.exe` to `cmd/tools/vup.exe_old.exe` ...
> V self compiling ...
> V built successfully as executable "v.exe".
> Done recompiling.
> Recompiling vup.v ...
> Current V version: V 0.4.8 9c2a753, timestamp: 2024-10-07 01:56:42 +0300

```


> С поломкой текущего кода?

обычно мы ходим по публичным репам и вносим фикс если это что-то критичное
в остальном vfmt сам поправляет код

но, как вы и сказали, такое и не должно было компилироваться


> Почему изначально нельзя было сделать по нормальному?

полагаю, потому что на то не было запроса, и дальше чем байтерских статей это не уходило


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 07-Окт-24 11:51 
>поправлено только что

Сначала сделали сборник багов, а потом начали затыкать дырки пальцами. Это какая уже по счёту проблема с памятью?
>полагаю, потому что на то не было запроса, и дальше чем байтерских статей это не уходило

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


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 21:58 
> это один из самых любимых аргументов для напастей других на язык
> чуть позже оно будет сыпать ошибкой и при прод сборке будет падать на таком коде

Хех, хочешь я добавлю ещё один аргумент? Код, приведённый выше, должен падать в любой сборке, и не когда-нибудь потом, а начиная с версии 0.0.1, потому что там грубейшая ошибка типизации: в указатель засовывается integer.

Если он не падает, я делаю вывод, что у вас типизация так же необязательна, как и в C? И кому нужен такой язык?


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 03:35 
>Проект также развивает свою графическую библиотеку и пакетный менеджер.

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


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 08:49 
Ну так его и перепишут.

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 03:42 
Хотел найти статью, в которой читал про то, что в v отсутствует нормальное управление памятью, не нашёл, зато на гитхабе большое количество багов с утечкой памяти https://github.com/vlang/v/issues?q=is%3Aissue+memory+leak

"Релиз языка программирования V 0.4.8"
Отправлено koplenov , 06-Окт-24 03:52 
> Хотел найти статью, в которой читал про то, что в v отсутствует
> нормальное управление памятью, не нашёл, зато на гитхабе большое количество багов
> с утечкой памяти https://github.com/vlang/v/issues?q=is%3Aissue+memory+leak

*исправленных в том числе
70 closed
18 open

неплохо же

выявляют баги и правят их


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 04:15 
>*исправленных в том числе

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


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 05:03 
Он всё ещё "компилирует" в Си, как Nim?

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 08:50 
Это главная фича, иначе не был бы быстр.

"Релиз языка программирования V 0.4.8"
Отправлено Hck3r , 06-Окт-24 10:48 
Это не фича, а просто более простой способ сделать более менее быструю работу.
Правда сильно быстрым от этого он не становится как раз

"Релиз языка программирования V 0.4.8"
Отправлено Вы забыли заполнить поле Name , 06-Окт-24 15:11 
Что по отладке? Предлагается отлаживать сгенерированный си код?

"Релиз языка программирования V 0.4.8"
Отправлено Алексей , 06-Окт-24 18:05 
По отладке все печально. Дебагер в наличии но для платной версии IDEA (по крайней мере недавно было так). В платная есть не у всех.

"Релиз языка программирования V 0.4.8"
Отправлено Вы забыли заполнить поле Name , 06-Окт-24 22:36 
> но для платной версии IDEA

В Языке для этого нет средств из коробки?


"Релиз языка программирования V 0.4.8"
Отправлено Алексей , 06-Окт-24 23:33 
Из коробки нельзя. Нужно настраивать. В принципе разобраться можно. Тем более что примеры есть. На рутубе есть видосы как VS Code настроить.

"Релиз языка программирования V 0.4.8"
Отправлено Вы забыли заполнить поле Name , 07-Окт-24 17:00 
> Из коробки нельзя. Нужно настраивать. В принципе разобраться можно. Тем более что
> примеры есть. На рутубе есть видосы как VS Code настроить.

Это какой-то позор если так.


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 10:02 
Это между прочим неплохой вариант, особенно если x86_64, arm, risc-v и т.д., поддерживаемые си, не основная архитектура.

"Релиз языка программирования V 0.4.8"
Отправлено Вы забыли заполнить поле Name , 06-Окт-24 15:04 
> Проект также развивает свой пакетный менеджер.

Это грабли. Как пакетный менеджер будет работать с системными зависимостями? Уже есть nix и guix. Со вторым также можно сделать бутстрапинг своего компилятора.


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 16:05 
Примерно так же, как pip, cargo, conan, cabal, go get, cpan, npm.

Никаких системных зависимостей давно нет, из Линукса сделали windows.


"Релиз языка программирования V 0.4.8"
Отправлено Вы забыли заполнить поле Name , 06-Окт-24 17:22 
> Примерно так же, как pip, cargo, conan, cabal, go get, cpan, npm.

Именно. Для nix и guix есть конвертеры из этих форматов. Зачем еще один, если можно сразу использовать готовый.

> Никаких системных зависимостей давно нет, из Линукса сделали windows.

Они есть, только перечисленные выше пакетные менеджеры их устанавливать не умеют. Эта задача перекладывается на пользователя. С nix или guix таких проблем нет.


"Релиз языка программирования V 0.4.8"
Отправлено YetAnotherOnanym , 06-Окт-24 16:25 
> отключаемый сборщик мусора (GC)

Плохо, штоль? Хорошо!


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 19:20 
А вдруг случайно отключишь и не заметишь?

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 14-Окт-24 10:45 
Таки, если программа будет работать некоторое время, то начнёшь замечать ;)

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 17:48 
fn main() {
    x := []&int { len: 10, cap: 0 }
    println(x[4])
}
Выведет
&nil
Таким образом, в языке не то что присутствуют null pointer, так там вообще в абсолютно любой переменной может лежать null, с вытекающими последствиями

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 19:18 
А это и есть "улучшенное взаимодействие с языком C,"

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 18:14 
>Создан русскоязычный чат по языку V в Telegram.

Это в той самой площадке, где нужно регистрироваться по номеру телефона? А что не вконтакте тогда?


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 20:02 
Говорят секурный. У меня родной человек говорит что другие мессенджеры плохие - у них сообщения не сохраняются когда поменял телефон, контакты теряются. А вот в телеграмме все сохраняется! И сообщения, и контакты! Сразу все подгрузилось! А ещё его разработал человек мира! За свободу так рассказывал! Так рассказывал! Аж во Францию полетел и все там выложил. Секурный говорят мессенджер.

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 12-Окт-24 05:29 
Оставил пару комментариев здравого смысла в телеграмме местных новостей родного города в Украине, так сразу на следующий день полиция возле дома ходила, кого-то искала. У нас она не часто на самом деле - дороги плохие чтобы доехать. Может конечно совпадение, но мне слабо верится что оно. Пришлось телегу удалить. А вообще у нас socksv4 как-то научились перехватывать tor-сети. Смотрю - айпи меняется, а вот некоторые сайты заблокированы. С socksv5 вроде бы всё нормально, хотя из-за кеширования сложно было проверить что это именно оно.

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 22:11 
А кто этот V вообще создал и поддерживает что такой холливар? Я даже и не ожидал что у него хоть какое-то есть сообщество. Сказку про Вавилонскую башню в детстве не читали что-ли? Мне лично не ясно что это и зачем оно нужно? Может хоть создают и поддерживают его где надо?

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 06-Окт-24 23:23 
На данный момент единственный нормальный язык.

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 07-Окт-24 02:39 
Вообще странный язык. Я не нашёл ни доков, ни туториалов (может плохо искал?), но так навскидку глядя на примеры, совершенно непонятно о чём автор думал, когда придумывал синтаксис. Я лично прихожу к выводу, что он придумывал его таким, чтобы он был бы не таким как у всех, и что других соображений, которые могли бы определять каким должен быть синтаксис у него не было.

Например, декларация функции вида

fn foo(arg1, arg2) ret_type {}

Вроде всё ок, но как-то сложилось в такой ситуации писать -> перед ret_type. Зачем его не писать? Может автор хотел символы сэкономить? Возможно в этом есть логика, но дальше мы видим, что присваивание пишется как :=, то есть автор вроде хотел символы экономить, а потом расхотел. Если мы предполагаем, что автор всё ж логически консистентен, то надо делать вывод, что экономия символов не приходила ему в голову. Но тогда вопрос зачем делать не так, как принято, остаётся без ответа.

В декларации переменных, в сравнении с C переставлены местами имя типа и имя переменной, но опять же экономия на ":". То же самое: зачем делать не так, как принято?

При этом, при декларации мутабельной переменной используется ключевое слово mut в начале, а при декларации константной, внезапно, никакого ключевого слова не используется (опять экономия на символах?), в результате чего язык подкладывает программисту грабли, по которым только самые идиотские языки типа js решались ходить: мои локальные константные переменные могут нечаянно совпасть именами с переменными из внешней области видимости.

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

Скажем, с теми же декларациями переменных: есть бонус начинать любой стейтмент с ключевого слова, это резко упрощает парсер. Что для компилятора может быть не очень важно, но это важно для возможности по быстрому на коленке вытачивать тулзы для работы с сорцами. Вот какой-нибудь C++ распарсить -- это ой, даже если я просто хочу выдрать оттуда все заголовки функций, и мне не нужен полный парсер, то это ой. В то же время в паскале или в расте это делается легко и непринуждённо. В V это тоже делается легко, насколько я вижу, но если я хочу что-то поинтереснее? Посчитать размер стекового фрейма функции? О, а вот тут вот я буду вынужден писать парсер, который сможет отличить присвоение переменной от декларации переменной.

На фоне всего этого, довольно занятно разглядывать всё то, что там автор выпилил на своём языке. Безыдейный язык не имеет шансов взлететь. И нет, я могу понять выпиливание собственного языка, с тем чтобы что-нибудь на нём написать и повесить на стенку. Но столько времени вбухивать... Лучше б пошёл почитал что-нибудь про проектирование языков. Я не могу ничего конкретного посоветовать, я лишь поверхностно интересовался, и читал лишь "научпоп" типа там Crafting Interpreters. Но вообще это область, в которой люди PhD защищают, например, теория типов оттуда.

Сначала теория и понимание того, почему существующие языки такие, какие они есть, и только затем проектирование новых прорывных языков. Только так, всё остальное это инженерное фричество.


"Релиз языка программирования V 0.4.8"
Отправлено Продавец , 07-Окт-24 10:52 
Что-то маловато аргументации

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 07-Окт-24 14:46 
Я не видел документации, откуда я возьму аргументацию?

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 07-Окт-24 12:47 
>есть бонус начинать любой стейтмент с ключевого слова, это резко упрощает парсер

Далеко не все парсеры пишутся вручную


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 07-Окт-24 15:06 
Какая разница, как пишется парсер? Если каждый стейтмент начинается с ключевого слова, то это резко упрощает парсер, в том числе и написанный не вручную. Чем раньше парсер может принять решение о том, что именно он парсит, тем проще парсер.

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

И это важно. Попробуй написать программу, которая что-нибудь осмысленное делает с C++ сорцами, продираясь через проблемы типа:

int my_fn(int arg);

и

MyClass my_var(arg);

Когда парсер дошёл до '(', он не знает, что дальше будет, то ли список элементов вида type_name ident, то ли список expression'ов. То есть, парсер должен быть готов распарсить и то, и это, чтобы потом задним числом понять, что же он такое распарсил, и принять решение был ли весь стейтмент декларацией функции или дефиницией переменной. Если же в начале первого стейтмента стояло бы fn, а в начале второго let, то вместо безумно сложного парсера, у тебя было бы два субпарсера, каждый из которых может парсить только один стейтмент, и глядя на ключевое слово ты бы решал, какому из них доверить парсинг данного стейтмента.


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 07-Окт-24 16:19 
>Какая разница, как пишется парсер?

Большая. От этого зависит и произодительность, и сложность обрабатываемых конструкций и так далее. Например ll парсеры не очень дружат с форматами типа xml, кода до последнего непонято, это открывающий тег и самозакрывающий.
>Если каждый стейтмент начинается с ключевого слова

Это разве что первые бейсики с их 10 LET A = 10
>ты даже регекспами можешь очень немалого достичь

Регулярками можно парсить разве что от отчаяния. Например, регулярка будет воспринимать строку как код.
>Если же в начале первого стейтмента стояло бы fn, а в начале второго let, то вместо безумно сложного парсера, у тебя было бы два субпарсера

Это важно только если вы парсер от начала и до конца пишите вручную. Генераторы парсеров всегда выглядят примерно как вы описываете.


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 07-Окт-24 22:40 
О, да ты знаток, я посмотрю? Википедию читал про парсеры и хочешь похвастаться обширностью своих познаний в теории компиляторов?

Ты можешь продолжать, а я пока отвечу на пару моментов

> Это разве что первые бейсики с их 10 LET A = 10

Не совсем. Если ты заглянешь в тот же rust, то там без ключевых слов стейтменты присвоения, и отдельно стоящие выражения которые ради побочных эффектов стоят. Это вроде и отход от упёртого следования принципу, но он а) оправданный подход, который реально экономит место на экране; б) парсеру это не сильно осложняет жизнь, потому что он может увидев стейтмент без ключевого слова, просто парсить выражение с возможностью использования значков =, +=, и тп в нём. И условная грамматика для такого это expr ~ ('=' ~ expr)?

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

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

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

> Это важно только если вы парсер от начала и до конца пишите вручную. Генераторы парсеров всегда выглядят примерно как вы описываете.

Когда закончишь демонстрировать свои обширные познания, я рекомендую от теории перейти к практике, и посмотреть, как контекстная зависимость влияет на количество проблем при создании парсеров. Возьми и попробуй написать парсер C и парсер Pascal, они примерно одинаковые языки по возможностям, но с разными синтаксисами. При этом они достаточно простые, чтобы взяв какой-нибудь генератор парсеров за пару вечеров создать парсер. С паскалем наверное и за вечер можно управиться, даже если не подглядывать в BNF, которым Вирт описывал паскаль. Но ты обязательно попробуй самостоятельно создать парсер, потому что теория без практики -- пустая трата времени. У тебя скорее всего не получится ни за вечер, ни за пять вечеров, но если ты добьёшь до конца эту задачу, то после этого ты сможешь не только теорией из википедии блистать, но будешь реально представлять во что эта теория выливается в реальности.


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 08-Окт-24 20:02 
>>>Если каждый стейтмент начинается с ключевого слова
>>Это разве что первые бейсики с их 10 LET A = 10
>Но _всё_ остальное

А ловко вы в воздухе переобуваетесь.
>Регулярками можно парсить резко и быстро, создавая эти регулярки по ходу дела в текстовом редакторе, и интерактивно применять замены по регуляркам

Сам так делаю, но справедливости ради, это можно делать только в очень ограниченом объёме, и самое главное - визуально отслеживая результат. Если вы регулярно парсите какой-то язык, то самое время найти/написать парсер
>Но ты обязательно попробуй самостоятельно создать парсер, потому что теория без практики -- пустая трата времени

Мне вот интересно, что это у вас за практика такая, что вы не можите различить идут ли два идентификатора подряд или только один.


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 09-Окт-24 02:18 
> А ловко вы в воздухе переобуваетесь.

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

> Если вы регулярно парсите какой-то язык, то самое время найти/написать парсер

Ну это смотря зачем. Если у меня скрипт регулярками справляется, то зачем я буду писать парсер?

> справедливости ради, это можно делать только в очень ограниченом объёме, и самое главное - визуально отслеживая результат.

Это, я думаю, потому что слаще редьки не едал ничего. Попробуй поработать с синтаксисом, который сочинялся с мыслью о том, чтобы парсер был бы попроще. Если попытаться написать ctags для паскаля, то его легко можно уложить в экран bash скрипта, который grep'ом найдёт все декларации, и соберёт из них CTAGS файл. Но для C нужен аж целый отдельный бинарь.

Не, на bash может такое писать не самая удачная идея, лучше всё равно взять python или perl, и если по-хорошему в экран оно наверное не влезет, с обработкой опций командной строки, но я к тому, что это C действительно парсить регулярками -- так себе идея, и почему? Потому что контекстная зависимость. Но если тебе хочется увидеть как можно сделать ещё хуже, то загляни в C++.

> Мне вот интересно, что это у вас за практика такая, что вы не можите различить идут ли два идентификатора подряд или только один.

Я не собираюсь это объяснять. Я предложил уже тебе практическое упражнение, которое это твоё любопытство удовлетворить. Объяснять же человеку, который не хочет понимать -- это так себе удовольствие. Это ты другого кого поищи, кто будет тебе объяснять, пока ты будешь корчить из себя ничего не понимающего идиота.


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 09-Окт-24 16:43 
>Не надо к словам докапываться, попробуй усвоить суть за словами, которую я тебе втолковать пытаюсь.

Суть всегда заключается в словах. И если вы не в состоянии внятно выразить свои мысли, то не перекладывайте задачу на меня, угадать что именно вы имеете в виду. А теперь давайте посчитаем, что может быть без ключевого слова в расте - выражения. А что такое выражение? Присваивание, вызов, макросы(не писал на расте, не могу сказать насколько макросы близки к обычным выражениям и заменяемы), бинарные/унарные операторы, литералы. Тут разве что литералы можно распознать сразу, все остальные конструкции после как минимум одного нетерминала. Даже если парсить в лоб с помощью парсер комбинаторов, можно написать код так, чтобы откат был не к началу выражения, а к первому отличающемуся токену.
>Ну это смотря зачем. Если у меня скрипт регулярками справляется, то зачем я буду писать парсер?

Если это ваш собственный локальный скрипт, то хорошо. А вот если это код будет запускаться у посторонних людей, то они могут долго не понимать, почему синтаксически корректный код не работает.
>Не, на bash может такое писать не самая удачная идея, лучше всё равно взять python или perl, и если по-хорошему в экран оно наверное не влезет, с обработкой опций командной строки, но я к тому, что это C действительно парсить регулярками -- так себе идея, и почему? Потому что контекстная зависимость.

Контекст он всегда есть. Даю вам первую подсказку: на паскале написан простенький кодогенератор, где исполняемый код чередуется с литералами, в которых синтаксически корректный код. И как вы собираетесь регулярками отличать объявление на верхнем уровне, от объявления внутри строки? А если взять язык, допускающий интерполяцию в своих строках полноценных выражений? Когда у вас внутри строки будет выражение, внутри которого рекурсивно будет ещё несколько строк?
>Я предложил уже тебе практическое упражнение, которое это твоё любопытство удовлетворить

У меня уже есть опыт написания парсеров. И с указанными вами трудностями я не встречался ни разу. Вот с конфликтами сдвига/слияния я встречался. С тем, что в языке куча синтаксического сахара, и все эти варианты нужно описать, иначе парсер не будет обрабатывать валидные файлы я тоже встречался.


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 10-Окт-24 02:11 
> Суть всегда заключается в словах.

Нет, слова лишь коммуницируют состояния ума, и коммуникация заключается в манипуляции состоянием ума принимающей стороны, с тем чтобы синхронизировать состояния. Если ты присмотришься повнимательнее, то это работает не только при коммуникации людей, но и при коммуникации устройств.

> не перекладывайте задачу на меня, угадать что именно вы имеете в виду

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

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


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 10-Окт-24 14:30 
>то вспомни вузовский курс философии

Перевод стрелок продолжается, теперь ещё и на философию.
>почему идеальное всегда отличается от реального

Про первые версии бейсиков я уже упоминал. Давайте ассемблер вспомним, там и присваивание начинается с ключевого слова. Давайте лисп вспомним, где весь код предствален в виде sexp. Там тоже по первому атому можно понять что за выражение.
>И если такие проблемы с различением идеального и реального, то я настоятельно рекомендую эти проблемы одолеть

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

Вы не даёте ответов на поставленные вопросы, возможно вы и сами их не знаете, в частости про парсинг регулярками. Точно так же, вы не написали про то, где у вас возникла проблема с посчётом токенов - ни название генератора парсеров, ни описания технологии ll/lr/glr/... Нет никакого смысла философствовать.


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 10-Окт-24 22:16 
> Перевод стрелок продолжается, теперь ещё и на философию.

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

> У ВУЗа есть огромная проблема: ВУЗ просто наваливает кучу теории и предлагает студентам самостоятельно до всего догадываться

Да. Но это не проблема ВУЗа, а его фишка: основная задача ВУЗа научить тебя самостоятельно до всего догадываться. ВУЗы готовят инженеров и учёных, которым по должности положено догадываться самостоятельно, а не ждать, когда им другие всё объяснят.

Это в школе тебе всё будут объяснять, и если ты не поймёшь, то объяснять ещё раз. В ВУЗе тебе дадут азы, и отправят читать литературу. А потом спросят на экзамене, и если ты не усвоил, то пойдёшь на пересдачу, или вообще вылетишь.

Мне эту разницу объясняли в самом начале первого курса в рамках нескольких пар, которые по форме можно было бы назвать лекциями, которыми первокуров пытались перепрограммировать со школьных привычек на вузовские. В твоём ВУЗе ничего такого не было?


"Релиз языка программирования V 0.4.8"
Отправлено AnyNoMouse , 07-Окт-24 14:30 
Авторы почти тысячи языков на этом сайте https://rosettacode.org/wiki/Rosetta_Code не согласны с Вами почти по всем пунктам.

"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 07-Окт-24 15:10 
Большинство из тех языков для меня пустой звук, но те с которыми я знаком, подчиняли синтаксис языка каким-то более глубоким идеям о назначении и способах использования языка, нежели "я хочу не такой как у всех синтаксис". Так что авторы этих языков со мной бы согласились.

"Релиз языка программирования V 0.4.8"
Отправлено Golangdev , 07-Окт-24 11:12 
>  На V разрабатывается Volt - лёгкий и быстрый сервис обмена сообщений, который наметил взять лучшее от Discord, Telegram, Signal и Slack.

Удачи конечно автору, желаю вырасти из пет-проекта во что-то серьёзное...

Но мессенджер пока не взял ничего, а в консоле радостно пишет "socket close", и, как и стоило ожидать, вебсокет перестаёт работать.


"Релиз языка программирования V 0.4.8"
Отправлено SelfPerfection , 07-Окт-24 16:47 
Раньше автор делал https://volt-app.com/

Который позиционировался как альтернативный клиент для слака и других сетей.

Теперь Volt это уже что-то другое.

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


"Релиз языка программирования V 0.4.8"
Отправлено Вова , 22-Окт-24 23:17 
Я бы рекомендовал автору языка сравнивать V не с %%%уергой из подворотен (типа го-растов всяких), а с мэйнстримом - С++, C#, Kotlin, D. Прям отдельную страницу по каждому языку. Начать лучше с D как крутого преемника С++.

"Релиз языка программирования V 0.4.8"
Отправлено Вова , 22-Окт-24 23:49 
Такое ощущение, что синтаксис автор придумывал на ходу (читай "от балды") или "в таком языке это пишется так - ну и я так напишу!". Такой язык не взлетит, он нелепый.

Повальная ШИЗА "not null" - не от большого ума. Её завезли с тех пор, как начали аутсорсить индусне важные вещи. Думали, если программист как m@k@k@ будет прыгать через обруч, везде расставляя "не ноль!", программы будут надёжнее. НЕ БУДУТ! Просто ещё больше будете засирать мозг разрабу на раздумия "а вот тут может быть ноль? А тут?". НИКТО не знает, может ли быть ноль! :) И это вместо  того, чтобы думать собственно о решаемой задаче.
Поверьте, вы не медиум - вы даже не представляете, КАК может быть использован ваш код! А учитывая, что большинство из вас - нубы и "нубы с опытом", вы вряд ли сможете спроектировать библиотеку так, чтобы покрыть ВСЕ случаи! Соотв. там, где ваш зумерский мозг думает "ну вот здесь точно не ноль!", вам подсунут дулю и будут сильно удивлены, почему ваша убогая перделка валится на казалось бы простом кейсе.
Забавно, но "не ноль" - это не "гарантия ненулевого указателя", а просто ТУПОЙ И ЛЕНИВЫЙ разраб вместо проверки на ноль втемяшивает атрибут "эта переменная не должна быть нулём" И ВСЁ! Он сбросил с себя все проверки... НА ВАС - юзера кода! А теперь представляете, СКОЛЬКО вам придётся прыгать, прежде чем вызвать sin(a, rad, b, c, d)? КАЖДЫЙ аргумент должен быть либо помечен "не ноль"(заразное поведение), либо ПРОВЕРЕН на не ноль! Вот тебе и "помощь" - вместо одной строки десять!
Хуже того - "не ноль" - он заразен! Одна паршивая функция, запрятанная в недрах, ОБЯЗЫВАЕТ всю вызывающую цепочку прыгать вокруг её капризов "не хачу ноль!". И все будут прыгать, иначе не сканпелится! *facepalm* Хотя казалось бы, для того и придумали исключения, что ДОПУСТИМО, чтобы в 10 вложенных вызовах мог появится NRE, но который отследят в 11-ом месте и проверят.

Вот так КАЗАЛОСЬ БЫ "правильная идея" портит весь ваш код в заботах о безопасности, хотя просто КВАЛИФИЦИРОВАННЫЙ код был бы намного устойчивее и короче.


"Релиз языка программирования V 0.4.8"
Отправлено Аноним , 17-Ноя-24 23:59 
> Повальная ШИЗА "not null" - не от большого ума.

Хм, не хочу тебя расстраивать, но КАПС не добавляет твоим словам веса)

>  Думали, если программист как m@k@k@ будет прыгать через обруч, везде расставляя "не ноль!", программы  будут надёжнее. НЕ БУДУТ!

Почему? Вполне отличная штука - принимает ли фунция NULL значение или нет.

> Просто ещё больше будете засирать мозг разрабу на раздумия "а вот тут может быть ноль? А тут?".

В смысле? Это же элементарно.
А в хороших языках ты это видишь буквально с первого взгляда на функцию и ее сигнатуру.

> НИКТО не знает, может ли быть ноль! :)

Что значит не знает?
Что это за камака, вместо прогаммера? Ты еще бы написал что он не знает когда возвращать ошибку, а когда нет.

> И это вместо того, чтобы думать собственно о решаемой задаче.

Это программер, он что на MS-DOS работает? Больше одной задачи в голову не влазит?
Ну тогда стоит задуматься о его замене.

> Поверьте, вы не медиум - вы даже не представляете, КАК может быть использован ваш код!

Но обязаны об этом подумать.

> А учитывая, что большинство из вас - нубы и "нубы с опытом", вы вряд ли сможете спроектировать библиотеку так, чтобы покрыть ВСЕ случаи!

Ложная дихотомия - "раз не можно покрыть все случаи - то можно вообще не думать и писать овнокод".
Во-2х в нормальных языках есть проверки инвариантов, есть нормальные enumʼы, возврат ошибок (например Result<Value, Error>).
Это все позволяет легко и непринужденно писать код который покрывает, думаю 80-90%, всех вариантов.

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

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

> Забавно, но "не ноль" - это не "гарантия ненулевого указателя", а просто ТУПОЙ И ЛЕНИВЫЙ разраб вместо проверки на ноль втемяшивает атрибут "эта переменная не должна быть нулём" И ВСЁ!

В смысле не гарантия?
Разве компилятор пропустит туда что-то что может быть нулем?

> Он сбросил с себя все проверки... НА ВАС - юзера кода!

А это твои проблемы. Хочешь использовать мою либу - значит на моих условиях.
Не нравится? GTFO переписывать ее без null проверок.

> А теперь представляете, СКОЛЬКО вам придётся прыгать, прежде чем вызвать sin(a, rad, b, c, d)?

Перед вызовом пишешь что-то вроде
if (a == NULL || rad == NULL, b == NULL, c == NULL, d == NULL) {
   return error;
}
В современных языках это будет еще проще.

> КАЖДЫЙ аргумент должен быть либо помечен "не ноль"(заразное поведение), либо ПРОВЕРЕН на не ноль! Вот тебе и "помощь" - вместо одной строки десять!

По умолчанию все аргументы не NULL. Те которые нужно пометить - это буквально пара символов.
Конкретно в V это знак "?".
Откуда взялся бред про десяток строк, мне неведомо.

> Хуже того - "не ноль" - он заразен! Одна паршивая функция, запрятанная в недрах, ОБЯЗЫВАЕТ всю вызывающую цепочку прыгать вокруг её капризов "не хачу ноль!". И все будут прыгать, иначе не сканпелится! *facepalm*

Именно так. Потому что программист должен понимать как работает код.
Но ты можешь перед вызовом первой функции, которая не принимает optional, сделать проверку и кинуть ошибку.
А дальше оно передается по цепочке, с гарантиями.

> Хотя казалось бы, для того и придумали исключения, что ДОПУСТИМО, чтобы в
> 10 вложенных вызовах мог появится NRE, но который отследят в 11-ом месте и проверят.

Ты можешь писать код как угодно.
И пробрасывать наверх ошибку или кидать глобальную?
Да такой подход тоже существует.

> Вот так КАЗАЛОСЬ БЫ "правильная идея" портит весь ваш код в заботах о безопасности, хотя просто КВАЛИФИЦИРОВАННЫЙ код был бы намного устойчивее и короче.

Это тот где нифига не проверяют ради экономии строчек кода?
Боюсь квалификация такого программиста - мести метлой улицы.



"Релиз языка программирования V 0.4.8"
Отправлено Вова , 23-Окт-24 00:08 
Вот наглядный пример того, что язык - дилетантский:

Vector initialization:
    numbers := [1, 2, 3, 4]

Это что, всё?? Почему нет ЯВНОГО указания, что я создаю переменную? А если я ошибся? А если ранее уже есть подобная переменная? Я же практически пишу наобум "некая переменная = что-то там" - такая расхлябанность допустима для баш-скриптов, но никак не для энтерпрайза!

Add an element to a vector
     numbers << 5

Полная чушь! Во-первых, увлечение "перегруженными сикарашками" - порочная практика из С++. И этот пример показывает почему: да потому что << - это вообще фиг знает что! Почему я должен думать, что << что-то там добавляет?? Я могу даже не знать С++ и его "вывод в поток". Для меня << может быть "сдвинуть массив влево на 5 элементов", т.е. потерять первые 5 ячеек, почему нет?
Во-вторых, как я и сказал, все эти сикарашки могут быть многозначными. Ну кому придёт в голову, что ^ - это степень?? А может это XOR! Или "увеличить на единицу"! Или (как в смоллток) "вернуть значение"?
Видишь, аффтар, как глупо ты рассуждаешь, применяя "всё отовсюду"?
Есть ДЕСЯТКИ порочных практик, которые давно пора забыть.

Reading a file
text := os.read_file(path) or {
    eprintln(err)
}

Сразу видно, передрал Перл! :)) Только если для старика Перлуши эта практика была вынужденно принимаемой, то в новом языке таким "выкрутасам" с or делать нечего, так не пишут! Для ошибок есть исключения - давно принятая практика.
И кстати, почему := , а не = ?? Неужели ты думаешь, что нам в кайф КАЖДОЕ присвоение сопровождать "нажмите шифт, точку с запятой, отпустите шифт, нажмите равно"?!?! Это крайне тупое решение, чем бы оно ни оправдывалось. Присвоение - это РАВНО. Никаких вариантов.

Короче, возьми уже Ди и не майся дурью. :)


"Релиз языка программирования V 0.4.8"
Отправлено Автор Ви , 20-Фев-25 03:23 
> Вот наглядный пример того, что язык - дилетантский:
> Vector initialization:
>     numbers := [1, 2, 3, 4]
> Это что, всё?? Почему нет ЯВНОГО указания, что я создаю переменную? А
> если я ошибся? А если ранее уже есть подобная переменная? Я
> же практически пишу наобум "некая переменная = что-то там" - такая
> расхлябанность допустима для баш-скриптов, но никак не для энтерпрайза!

:= создание
= изменение значения

всё продумано)


"Релиз языка программирования V 0.4.8"
Отправлено Вова , 23-Окт-24 00:24 
my_map := {
    'KEY_1': 0
    'KEY_2': 10
}

println(my_map)

Ну для начала, некоторые называют это hash, другие - dictionary. А почему { a: b } внезапно это map? А если я завтра создам UppercasedMap? Как мне в него присвоить это { a: b } ? Есть какая-то концепция инициализации? Чтобы ЛЮБАЯ map-подобная вещь могла принимать этот инициализатор?

А что должна напечатать println(my_map)? Строку "'KEY_1': 0"? А с какого перепоя? Почему не "KEY_1" => 0 ? Это где-то перегружается? Или вызывается какой-то ToString()? Или это личный хардкодинг внутри println?
Много вопросов и НОЛЬ пояснений (на странице сравнения с С++).

Автору: тут мало фонтанировать свежепридуманным синтаксисом, это как раз любой д__ил может! Ты поясни что под капотом, объясни, почему это круто и нет в других языках.

Для меня пока что это "дипломная работа" студентика, но никак не язык будущего.

К слову, мало заявлять "язык вобрал всё лучшее от {перечисление всех мыслимых доноров}". Это ДЛЯ ТЕБЯ что-то показалось "лучшим" - надо пояснять, что именно ты взял, как реализовал и почему это хорошо. Да, документирование своего "сумрачного гения" - это тоже работа! Причём необходимая, иначе никто просто не поймёт, зачем ЕЩЁ ОДИН язык, которых и так напложено сотни и все они - моральные калеки.
Так что за лопату, дорогой автор! Работы - дохрена.


"Релиз языка программирования V 0.4.8"
Отправлено ivantroff94 , 17-Ноя-24 23:14 
Новичек на форуме да и с V тоже работал мало, подскажите пожалуйтста, это  ваш чат? https://tg-cat.com/@vlang_rus

"Релиз языка программирования V 0.4.8"
Отправлено Автор Ви , 20-Фев-25 03:24 
https://t.me/vlang_rus