The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Релиз языка программирования V 0.4.8"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

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

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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от ilyafedinemail (ok), 05-Окт-24, 18:19   +/
> Создан русскоязычный чат по языку V в Telegram.

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #168

2. Сообщение от Аноним (2), 05-Окт-24, 18:24   +/
Как там, is upper функция уже умеет определять не только ascii?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #41

3. Сообщение от Аноним (3), 05-Окт-24, 18:25   –3 +/
>На V разрабатывается Volt - лёгкий и быстрый сервис обмена сообщений, который наметил взять лучшее от Discord, Telegram, Signal и Slack.

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #6, #7, #18, #59, #182

4. Сообщение от Аноним (4), 05-Окт-24, 18:25   +3 +/
Судя по синтаксису это какой-то го у нас дома.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #22, #178, #201

6. Сообщение от Аноним (2), 05-Окт-24, 18:40   +7 +/
Не могли бы расшифровать ваш новояз на человеческий? "Вебня" - это что конкретно?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #21, #93

7. Сообщение от animechaos (ok), 05-Окт-24, 18:52   +/
Буквально ты смотришь на нативный код, который в запустили через webassembly
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

8. Сообщение от Аноним (8), 05-Окт-24, 19:07   +2 +/
Судя по активности https://github.com/spytheman разрабу хорошо платят. Даже в выходные пашет.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #23, #110

11. Сообщение от Аноним (11), 05-Окт-24, 19:44   +7 +/
Очень приятный в использовании, конечно до применения в чем то серьезном еще далеко.
Изучается быстро, выглядит как более совершенный и разумный аналог го.
Парадигма expected optional для обработки ошибок хорошо структурирует код.
Можно использовать автономно в отличие от его корпоративного аналога, который требует интернета для репозитория и отсылки телеметрии.

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #39, #48, #68

12. Сообщение от Аноним (12), 05-Окт-24, 19:57   –1 +/
> Разрешён возврат работы функции в качестве аргумента другой функции.

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #20, #30

14. Сообщение от Аноним (14), 05-Окт-24, 20:26   +2 +/
Зачем ещё 1 язык программирования?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #27, #36, #86

18. Сообщение от Аноним (-), 05-Окт-24, 21:09   +/
> Открыл сайт, там очередная "вебня", ну да "лучшее" они взяли ага щас

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

20. Сообщение от Ъ (?), 05-Окт-24, 21:27   +1 +/
по ссылке сходи, речь о функциях возвращающих несколько значений
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #78

21. Сообщение от Аноним (21), 05-Окт-24, 21:47   +/
>"Вебня" - это что конкретно?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6

22. Сообщение от Швондик (?), 05-Окт-24, 21:48   +/
это смесь паскаля с явой
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4

23. Сообщение от Швондик (?), 05-Окт-24, 21:49   +5 +/
либо просто ещё молодой на энтузиазме
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #45

25. Сообщение от Аноним (25), 05-Окт-24, 22:09   +/
Звучала уже где-то история про вавилонский сервер.
Или это был "один сервер то rule them all"?..

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

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

Ответить | Правка | Наверх | Cообщить модератору

27. Сообщение от Продавец (?), 05-Окт-24, 22:39   –2 +/
Потому что будущее на дворе, дружище! Ну-ка быстренько изучать! Япы которые ты знаешь позволяют отключить ГЦ? Вот и тото-же. Не стоит возиться со всяким старьем
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #56

28. Сообщение от Аноним (109), 05-Окт-24, 22:41   +/
Как там с наследованием, уже добавили?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #38

30. Сообщение от Карлос Сношайтилис (ok), 05-Окт-24, 22:43   +/
Первый раз вижу этот язык и зуб не дам, но может имеется ввиду, что при вложенных функциях, результат в виде кортежа распаковывается в отдельные аргументы, а не является одним аргументом-кортежем.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #179

34. Сообщение от Я (??), 05-Окт-24, 23:01   +/
unsafe есть? как пометить опасные участки кода? табуляция обязательна? без этого мильены мух не признают
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #37

36. Сообщение от koplenov (ok), 05-Окт-24, 23:15   +/
Тут по ссылке кратко чем он отличается отдругих основных языках и что в нем сделано проще и лучше: https://vlang.io/compare
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #144

37. Сообщение от koplenov (ok), 05-Окт-24, 23:17   –3 +/
> unsafe есть? как пометить опасные участки кода?

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


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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34 Ответы: #71

38. Сообщение от koplenov (ok), 05-Окт-24, 23:20   +/
> Как там с наследованием, уже добавили?

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28

39. Сообщение от koplenov (ok), 05-Окт-24, 23:25   +/
Тут в чатике я как-то расписывал про успешно реализованные проекты на V: https://t.me/vlang_rus/51615
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #49

40. Сообщение от Аноним (40), 05-Окт-24, 23:27   +/
раньше компиляторов Си не требовал, а теперь...
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #181

41. Сообщение от koplenov (ok), 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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #42

42. Сообщение от Аноним (2), 05-Окт-24, 23:42   +1 +/
>if s[i] >= `a` && s[i] <= `z` {

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #41 Ответы: #43

43. Сообщение от Аноним (2), 05-Окт-24, 23:44   +/
Ладно, справедливости ради, не все компилируемые языки имеют такую функцию вообще.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42 Ответы: #67, #76

44. Сообщение от Аноним (44), 05-Окт-24, 23:52   +/
Ты не ты если не запилишь себе собственный ЯП.
Ответить | Правка | Наверх | Cообщить модератору

45. Сообщение от Аноним (2), 06-Окт-24, 00:22   +1 +/
Не могу сказать конкретно про этого. Но автор языка иногда вбрасывал вакансии на участие в разработке. Хз откуда деньги, но зп обещал.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23 Ответы: #94

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

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

Ответить | Правка | Наверх | Cообщить модератору

48. Сообщение от Аноним (49), 06-Окт-24, 02:09   +/
В го телеметрия включается опционально и эксплицитно. Ты это, конечно же, знаешь, но сознательно опустился до глупой манипуляции.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11

49. Сообщение от Аноним (49), 06-Окт-24, 02:11   +/
Есть хоть один энтерпрайз проект? Хелоуворлды с житхаба не интересны.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39 Ответы: #50

50. Сообщение от Аноним (49), 06-Окт-24, 02:14   +/
Почитал. Какие-то внутренние админки и пет проекты для двух юзеров. Короче песочница и совочки.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49 Ответы: #57

51. Сообщение от Аноним (-), 06-Окт-24, 02:18   +/
И я бы ещё добавил что есть Фортран - говорят хорош для математики. Есть lua - прост, стар и также как js для всего подходит из-за разнообразия дополнений, используется в геймдеве. Есть Action Script с Flash технологией для мультимедийных приложений, да и просто для рисования мультиков. Нынче господа толстосумы вложились в ИИ, т.е. нужно что-то простое для создания ИИ нынче. Такое есть? Я видел анимации некоторых компаний софта по отладке ИИ, которым они называют глубокое обучение, которое реально многослойный персептрон, который и можно визуально отлаживать - рассматривая как идёт обучение и принятие решений на 3D модели. И это все хорошо, а V - для чего?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #79, #105

53. Сообщение от Alladin (?), 06-Окт-24, 02:59   +3 +/
"V удалось запустить на Windows XP."
действительно киллер фича
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #82, #101

54. Сообщение от Аноним (54), 06-Окт-24, 03:07   +/
отступы в пять символов - это откуда позаимствовано?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #83, #236

55. Сообщение от Аноним (59), 06-Окт-24, 03:15   +1 +/
>V 0.4.8

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

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

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

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

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #92, #107

56. Сообщение от Аноним (59), 06-Окт-24, 03:19   +2 +/
А кому это реально нужно? Тот же D(better C) уже давным давно есть.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27 Ответы: #98

57. Сообщение от koplenov (ok), 06-Окт-24, 03:20   +2 +/
> Короче песочница и совочки.

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

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

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

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


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


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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50 Ответы: #95, #103, #133, #199

58. Сообщение от Аноним (59), 06-Окт-24, 03:27   +/
https://mawfig.github.io/2022/06/18/v-lang-in-2022.html
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #61

59. Сообщение от Аноним (59), 06-Окт-24, 03:33   +2 +/
>Проблема в том что у большей части переменных напрочь отсутствует аннотация - так что намерений кодера в сорце нет. Значит валидация намерений в компилтайме - отдыхает.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #176

60. Сообщение от Аноним (59), 06-Окт-24, 03:35   +/
>Проект также развивает свою графическую библиотеку и пакетный менеджер.

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #80

61. Сообщение от koplenov (ok), 06-Окт-24, 03:38   –1 +/
Отличная была статья! А теперь можете првоерить актуальность всего написанного? :3

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #58 Ответы: #64

62. Сообщение от Аноним (59), 06-Окт-24, 03:42   +/
Хотел найти статью, в которой читал про то, что в v отсутствует нормальное управление памятью, не нашёл, зато на гитхабе большое количество багов с утечкой памяти https://github.com/vlang/v/issues?q=is%3Aissue+memory+leak
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #63

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

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

неплохо же

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62 Ответы: #65

64. Сообщение от Аноним (59), 06-Окт-24, 04:11   +4 +/
>Два года как никак прошло, подавляющее колличество проблем из таких статей разобрали на ишью и пофиксили

Не исправили, а поставили заглушки на конкретные проблемы. Допустим, автор утверждает, что в языке нет 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, он есть.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #61 Ответы: #77, #106, #145

65. Сообщение от Аноним (59), 06-Окт-24, 04:15   +1 +/
>*исправленных в том числе

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #63

66. Сообщение от Аноним (66), 06-Окт-24, 05:03   +1 +/
Он всё ещё "компилирует" в Си, как Nim?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #81, #87

67. Сообщение от Walker (??), 06-Окт-24, 05:04   +1 +/
Golang умеет
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43 Ответы: #96

68. Сообщение от OpenEcho (?), 06-Окт-24, 05:06   –1 +/
> его корпоративного аналога, который требует интернета для репозитория и отсылки телеметрии

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #91

71. Сообщение от OpenEcho (?), 06-Окт-24, 05:13   +2 +/
> неа, не обязательно - это вам не питоны и не го

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #100

76. Сообщение от Аноним (-), 06-Окт-24, 08:16   +/
Ради торжества справедливости: не всем нравится ICU
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43 Ответы: #213

77. Сообщение от Аноним (77), 06-Окт-24, 08:23   –1 +/
Там же написано, есть для unsafe кода. Left и right помести в unsafe.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #64 Ответы: #84, #126

78. Сообщение от Аноним (78), 06-Окт-24, 08:40   +/
Не то что в языке. В MS Excel это всегда было.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20

79. Сообщение от Аноним (79), 06-Окт-24, 08:49   +1 +/
Да-да, все хороши. А для всего есть C#.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51

80. Сообщение от Аноним (79), 06-Окт-24, 08:49   +/
Ну так его и перепишут.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #60

81. Сообщение от Аноним (79), 06-Окт-24, 08:50   +/
Это главная фича, иначе не был бы быстр.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #66 Ответы: #90, #112

82. Сообщение от Аноним (82), 06-Окт-24, 09:16   –1 +/
Луддиты новомодные япы не юзают, так что на xp эта хрень никому нужна не будет, там небось на c99 до сих пор пограммируют.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53 Ответы: #104

83. Сообщение от Карлос Сношайтилис (ok), 06-Окт-24, 09:27   +1 +/
My lang, my rules!

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #54

84. Сообщение от Карлос Сношайтилис (ok), 06-Окт-24, 09:32   +/
> Там же написано, есть для unsafe кода. Left и right помести в
> unsafe.

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #77

86. Сообщение от нейм (?), 06-Окт-24, 09:46   –1 +/
Чтобы тебя аишницей не заменили (быстрее, чем могут сейчас). Или индусами/ганийцами. Не знаю, что обиднее, если честно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14

87. Сообщение от Аноним (-), 06-Окт-24, 10:02   +/
Это между прочим неплохой вариант, особенно если x86_64, arm, risc-v и т.д., поддерживаемые си, не основная архитектура.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #66

90. Сообщение от Hck3r (?), 06-Окт-24, 10:48   –1 +/
Это не фича, а просто более простой способ сделать более менее быструю работу.
Правда сильно быстрым от этого он не становится как раз
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #81

91. Сообщение от Аноним (2), 06-Окт-24, 10:54   –1 +/
Петрович, успокойся. Никто у тебя go не отнимет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #68 Ответы: #125, #217

92. Сообщение от Аноним (2), 06-Окт-24, 10:58   +1 +/
Ты душный. На часть вопросов есть ответы в самой новости, кстати.
Ocaml нужен 1,5 человекам. Не удивлюсь, если V обгонит его по частоте использования, если уже не обогнал.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #55

93. Сообщение от Аноним (93), 06-Окт-24, 11:08   +1 +/
Это когда язык нацелен создавать не программы, а сайты.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6

94. Сообщение от Швондик (?), 06-Окт-24, 11:16   +/
походу на крипте чутка бабла поднял
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45 Ответы: #136

95. Сообщение от Аноним (93), 06-Окт-24, 11:21   +/
Такое обычно на Perl хорошо писать.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57 Ответы: #97

96. Сообщение от koplenov (ok), 06-Окт-24, 12:25   +2 +/
Накидайте тестовые кейсы и желаемое поведение чем трепаться - добавлю
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67 Ответы: #190, #219

97. Сообщение от koplenov (ok), 06-Окт-24, 12:27   +/
> У вас есть где-нибудь страница сравнения с perl?

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #95 Ответы: #115

98. Сообщение от Продавец (?), 06-Окт-24, 12:32   +/
Это нужно например тем, кто прогает на D со всеми его устаревшими концептами
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #56 Ответы: #109

100. Сообщение от koplenov (ok), 06-Окт-24, 12:39   –1 +/
Речь то шла в целом про форматирование

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #71 Ответы: #124

101. Сообщение от koplenov (ok), 06-Окт-24, 12:43   +1 +/
Смотря как посмотреть
Тут я бы отметил что V подходит под описание "просто работает"

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53 Ответы: #134

103. Сообщение от Аноним (11), 06-Окт-24, 13:02   +1 +/
Примерно в таком ключе и планируется использовать - с десяток серверов с синхронным запуском/остановом/управлением прикладного ПО, было до этого автоматизировано при помощи каких то деревенских скриптов, го отпадает по ряду причин, V справится идеально.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57

104. Сообщение от Аноним (105), 06-Окт-24, 13:33   +/
Free Pascal / Lazarus до самых последних версий отлично работают в Windows XP, сам проверял.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #82

105. Сообщение от Аноним (105), 06-Окт-24, 13:40   +/
>а V - для чего?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51 Ответы: #108, #129

106. Сообщение от Аноним (105), 06-Окт-24, 13:51   +1 +/
>Код прекрасно собирается, и падает во время выполнения.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #64 Ответы: #127

107. Сообщение от BeLord (ok), 06-Окт-24, 14:12   +/
Твой Ocaml позволит получить на выходе бинарник оптимизированный под конкретный процессор,а не под что-то среднее по больнице?-)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #55 Ответы: #131

108. Сообщение от Аноним (-), 06-Окт-24, 14:23   +/
Зашел на https://vlang.io/ посмотрел и понял что это утверждение не правда. От Javascript он лучшее не взял это уж точно. От Go тоже не похоже. Насчёт других языков - не в курсе.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #105

109. Сообщение от Аноним (109), 06-Окт-24, 14:56   +/
И какие именно там устарели?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #98 Ответы: #183

110. Сообщение от Вы забыли заполнить поле Name (?), 06-Окт-24, 14:57   +4 +/
Опять эксперты заняты любимым делом: считают чужие деньги. Я наоборот рад за людей, что они делают, что нравится, да ещё и денежки на это есть.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #135

111. Сообщение от Вы забыли заполнить поле Name (?), 06-Окт-24, 15:04   –1 +/
> Проект также развивает свой пакетный менеджер.

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #118

112. Сообщение от Вы забыли заполнить поле Name (?), 06-Окт-24, 15:11   –1 +/
Что по отладке? Предлагается отлаживать сгенерированный си код?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #81 Ответы: #130

115. Сообщение от Аноним (93), 06-Окт-24, 16:00   +/
На мой телефон не приходят смски, не могу зарегистрироваться в телеграмме.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #97 Ответы: #138

118. Сообщение от Аноним (93), 06-Окт-24, 16:05   +/
Примерно так же, как pip, cargo, conan, cabal, go get, cpan, npm.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #111 Ответы: #123

120. Сообщение от YetAnotherOnanym (ok), 06-Окт-24, 16:25   +/
> отключаемый сборщик мусора (GC)

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #143

123. Сообщение от Вы забыли заполнить поле Name (?), 06-Окт-24, 17:22   –3 +/
> Примерно так же, как pip, cargo, conan, cabal, go get, cpan, npm.

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #118

124. Сообщение от OpenEcho (?), 06-Окт-24, 17:28   +/
Товарищ, прочитайте пожалуйста ещё раз, - очень, очень внимательно:

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

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

c := 4 +
                    4
  println(ci)

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #100 Ответы: #137

125. Сообщение от OpenEcho (?), 06-Окт-24, 17:32   +/
А, это ты Анонимыч, ну пасиб, успокоил, троль дальше...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #91

126. Сообщение от Аноним (59), 06-Окт-24, 17:36   +1 +/
>Left и right помести в unsafe.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #77

127. Сообщение от Аноним (59), 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 и недопущение неинициализированных переменных/полей структуры - это разные вещи.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #106

128. Сообщение от Аноним (59), 06-Окт-24, 17:48   +/
fn main() {
    x := []&int { len: 10, cap: 0 }
    println(x[4])
}
Выведет
&nil
Таким образом, в языке не то что присутствуют null pointer, так там вообще в абсолютно любой переменной может лежать null, с вытекающими последствиями
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #142

129. Сообщение от Аноним (59), 06-Окт-24, 17:51   +/
>А вдруг это правда?

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

&nil

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #105

130. Сообщение от Алексей (??), 06-Окт-24, 18:05   +/
По отладке все печально. Дебагер в наличии но для платной версии IDEA (по крайней мере недавно было так). В платная есть не у всех.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #112 Ответы: #160

131. Сообщение от Аноним (59), 06-Окт-24, 18:11   +/
Не интересовался. Думаю с помощью флага -output-obj можно добится данного эффекта
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #107

132. Сообщение от Аноним (59), 06-Окт-24, 18:14   +1 +/
>Создан русскоязычный чат по языку V в Telegram.

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #148, #232

133. Сообщение от Аноним (59), 06-Окт-24, 18:22   +1 +/
>пользуются на постоянке четыре чела
>я один разраб

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57 Ответы: #141

134. Сообщение от Аноним (59), 06-Окт-24, 18:24   +/
>Go последних версий не поддерживается
>список можно продолжать

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #101 Ответы: #139

135. Сообщение от Аноним (8), 06-Окт-24, 18:50   +1 +/
Общество вправе знать, кто заказчик банкета. Вроде все честные люди, а ведут себя как барыги из 90-х.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #110

136. Сообщение от Аноним (8), 06-Окт-24, 18:53   +/
На сайте 6 спонсоров https://vlang.io/ Так что ничего волшебного тут нет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #94 Ответы: #163

137. Сообщение от koplenov (ok), 06-Окт-24, 18:56   +/
> unsafe есть? как пометить опасные участки кода? табуляция обязательна? без этого мильены мух не признают

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

> unsafe есть?

есть

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #124 Ответы: #159

138. Сообщение от koplenov (ok), 06-Окт-24, 19:00   +/
> На мой телефон не приходят смски, не могу зарегистрироваться в телеграмме.
> У вас нет IRC канала? Или хоть xmpp?

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #115

139. Сообщение от Аноним (151), 06-Окт-24, 19:04   +/
XP до сих пор используется, а у ME и 95 нет поддержки SATA,
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #134 Ответы: #146

141. Сообщение от koplenov (ok), 06-Окт-24, 19:15   +/
> Как вам удалось протощить это в прод? Вы единственный разработчик в проекте?

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

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


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

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

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


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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #133 Ответы: #151, #198

142. Сообщение от Аноним (151), 06-Окт-24, 19:18   +/
А это и есть "улучшенное взаимодействие с языком C,"
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #128

143. Сообщение от Аноним (151), 06-Окт-24, 19:20   +/
А вдруг случайно отключишь и не заметишь?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #120 Ответы: #234

144. Сообщение от Аноним (144), 06-Окт-24, 19:27   +/
А какие отличая от Zig в идеологии? Выглядят похоже
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36

145. Сообщение от koplenov (ok), 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 | }

```


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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #64 Ответы: #147, #154

146. Сообщение от Аноним (59), 06-Окт-24, 19:37   +/
Я видел системы, которые, судя по внешнему виду ещё в досбоксе работают. Так что вопрос по прежнему открыт, зачем нужен современный go в давным давно устаревшей XP
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #139 Ответы: #150

147. Сообщение от Аноним (59), 06-Окт-24, 19:48   +/
>при сборке дает ворнинг:

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #145 Ответы: #174

148. Сообщение от Аноним (148), 06-Окт-24, 20:02   +1 +/
Говорят секурный. У меня родной человек говорит что другие мессенджеры плохие - у них сообщения не сохраняются когда поменял телефон, контакты теряются. А вот в телеграмме все сохраняется! И сообщения, и контакты! Сразу все подгрузилось! А ещё его разработал человек мира! За свободу так рассказывал! Так рассказывал! Аж во Францию полетел и все там выложил. Секурный говорят мессенджер.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #132

150. Сообщение от Аноним (151), 06-Окт-24, 20:42   +/
XP ещё кому-то нужна (у родственников на старом компьютере, драйверы для старого мфу только для XP), а вот Go определённо никому не нужен
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #146 Ответы: #173

151. Сообщение от Аноним (151), 06-Окт-24, 20:44   +1 +/
>стабильная работа написанного сервиса

Удивительно, ведь 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/

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #141

154. Сообщение от Аноним (-), 06-Окт-24, 21:58   +1 +/
> это один из самых любимых аргументов для напастей других на язык
> чуть позже оно будет сыпать ошибкой и при прод сборке будет падать на таком коде

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #145

156. Сообщение от Аноним (-), 06-Окт-24, 22:11   +/
А кто этот V вообще создал и поддерживает что такой холливар? Я даже и не ожидал что у него хоть какое-то есть сообщество. Сказку про Вавилонскую башню в детстве не читали что-ли? Мне лично не ясно что это и зачем оно нужно? Может хоть создают и поддерживают его где надо?
Ответить | Правка | Наверх | Cообщить модератору

159. Сообщение от OpenEcho (?), 06-Окт-24, 22:35   –1 +/
Вы же сами, специфически выделили в отдельный вопрос табуляцию !

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #137

160. Сообщение от Вы забыли заполнить поле Name (?), 06-Окт-24, 22:36   –2 +/
> но для платной версии IDEA

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #130 Ответы: #172

163. Сообщение от Швондик (?), 06-Окт-24, 23:03   +/
Так намного лучше
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #136

166. Сообщение от Аноним (168), 06-Окт-24, 23:23   –3 +/
На данный момент единственный нормальный язык.
Ответить | Правка | Наверх | Cообщить модератору

168. Сообщение от Аноним (168), 06-Окт-24, 23:25   +/
Это был болгарский чат.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

172. Сообщение от Алексей (??), 06-Окт-24, 23:33   +/
Из коробки нельзя. Нужно настраивать. В принципе разобраться можно. Тем более что примеры есть. На рутубе есть видосы как VS Code настроить.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #160 Ответы: #197

173. Сообщение от Аноним (59), 07-Окт-24, 00:19   +/
Допустим, кто-то до сих пор использует XP. Зачем ему запускать на ней новый софт, безразлично на каком языке? Там же проблемы будут буквально повсюду, вплоть до того, что нужно будет самостоятельно устанавливать новые сертификаты или ограничения в версии directx. И чем дальше, тем проблем будет больше.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #150

174. Сообщение от koplenov (ok), 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 сам поправляет код

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


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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #147 Ответы: #188

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

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

fn foo(arg1, arg2) ret_type {}

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

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #184, #189, #191

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #59 Ответы: #185, #207

178. Сообщение от Андрей (??), 07-Окт-24, 07:51   –1 +/
Да, это по сути Go с лучшей интероперабельностью с сишкой, причём настолько, что в текущем виде компилятор генерит сишный код и только затем сишным компилятором доводит его до двоичного elf и пр. Вообще кмк - это очень крутая стратегия, ибо язык по сути минимальными усилиями может затягивать в себя все сишные библиотеки и обёртки, притом и сам порождает вполне достойный код. Из минусов и странных замут - это то, что в языке предусмотрено 4 механизма работы с памятью, что очень ломает мозг, т.к. во-первых половина из них нестабильна, а во-вторых не совсем очевидно как будет работать программа в которой разные модули работают с различными механизмами, особенно с учётом того, что для части механизмов работа с памятью ручная, а для другой автоматическая, от чего потенциально есть риск бардака в вопросе того - кто же всё-таки владеет памятью, как долго и на каких основаниях.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #187, #238

179. Сообщение от Андрей (??), 07-Окт-24, 08:51   +1 +/
именно так и есть, по сути это фишка, которую скопировали с Go
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30

181. Сообщение от Андрей (??), 07-Окт-24, 09:14   +/
V ? Тот самый V который с сишного бэкэнда начинался и который у них пока является основным ? В остальном он как раньше так и сейчас не требовал сишного компилятора только потому, что в сборке таскал tcc
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40

182. Сообщение от Axel (??), 07-Окт-24, 10:04   +/
Ещё и верстка плавает. Везде padding разный
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

183. Сообщение от Продавец (?), 07-Окт-24, 10:48   +/
Отсутствие всего того, что есть в V, очевидно же
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #109 Ответы: #208

184. Сообщение от Продавец (?), 07-Окт-24, 10:52   +/
Что-то маловато аргументации
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #175 Ответы: #192

185. Сообщение от Аноним (59), 07-Окт-24, 10:59   +/
>Вывод типов это прекрасно, но явная аннотация куда надежнее и работает лучше.

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #176 Ответы: #214

186. Сообщение от Golangdev (?), 07-Окт-24, 11:12   +/
>  На V разрабатывается Volt - лёгкий и быстрый сервис обмена сообщений, который наметил взять лучшее от Discord, Telegram, Signal и Slack.

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

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

Ответить | Правка | Наверх | Cообщить модератору

187. Сообщение от Аноним (59), 07-Окт-24, 11:44   +/
>Да, это по сути Go с лучшей интероперабельностью с сишкой, причём настолько, что в текущем виде компилятор генерит сишный код и только затем сишным компилятором доводит его до двоичного elf

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #178

188. Сообщение от Аноним (59), 07-Окт-24, 11:51   +/
>поправлено только что

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #174

189. Сообщение от Аноним (59), 07-Окт-24, 12:47   +/
>есть бонус начинать любой стейтмент с ключевого слова, это резко упрощает парсер

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #175 Ответы: #193

190. Сообщение от фф (?), 07-Окт-24, 13:01   +1 +/
is_upper('ф') == false
а судя по коду выдаст true
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #96

191. Сообщение от AnyNoMouse (?), 07-Окт-24, 14:30   +/
Авторы почти тысячи языков на этом сайте https://rosettacode.org/wiki/Rosetta_Code не согласны с Вами почти по всем пунктам.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #175 Ответы: #194

192. Сообщение от Аноним (-), 07-Окт-24, 14:46   +/
Я не видел документации, откуда я возьму аргументацию?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #184

193. Сообщение от Аноним (-), 07-Окт-24, 15:06   +/
Какая разница, как пишется парсер? Если каждый стейтмент начинается с ключевого слова, то это резко упрощает парсер, в том числе и написанный не вручную. Чем раньше парсер может принять решение о том, что именно он парсит, тем проще парсер.

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

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

int my_fn(int arg);

и

MyClass my_var(arg);

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #189 Ответы: #195

194. Сообщение от Аноним (-), 07-Окт-24, 15:10   +/
Большинство из тех языков для меня пустой звук, но те с которыми я знаком, подчиняли синтаксис языка каким-то более глубоким идеям о назначении и способах использования языка, нежели "я хочу не такой как у всех синтаксис". Так что авторы этих языков со мной бы согласились.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #191

195. Сообщение от Аноним (59), 07-Окт-24, 16:19   +/
>Какая разница, как пишется парсер?

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #193 Ответы: #203

196. Сообщение от SelfPerfection (ok), 07-Окт-24, 16:47   +1 +/
Раньше автор делал https://volt-app.com/

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

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

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

Ответить | Правка | Наверх | Cообщить модератору

197. Сообщение от Вы забыли заполнить поле Name (?), 07-Окт-24, 17:00   +/
> Из коробки нельзя. Нужно настраивать. В принципе разобраться можно. Тем более что
> примеры есть. На рутубе есть видосы как VS Code настроить.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #172

198. Сообщение от Аноним (198), 07-Окт-24, 17:06   +/
> Лично мне про Ocmal/FreePascal/perl было бы интересно послушать в современном мире и вебе

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #141 Ответы: #204

199. Сообщение от Аноним (199), 07-Окт-24, 18:16   +/
> я один разраб
> затащить на прод технологию, которая хорошо себя показала, написать инструментарий, на который можно доказательно-финансово опираться и развивать это дело дальше - достойно

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57 Ответы: #202, #205

201. Сообщение от Аноним (201), 07-Окт-24, 19:29   +/
го без телеметрийных зондов
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4

202. Сообщение от koplenov (ok), 07-Окт-24, 22:17   +/
> Ну под такими лозунгами можно хоть брейнфак затащить.

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

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

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


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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #199 Ответы: #209, #210

203. Сообщение от Аноним (-), 07-Окт-24, 22:40   –1 +/
О, да ты знаток, я посмотрю? Википедию читал про парсеры и хочешь похвастаться обширностью своих познаний в теории компиляторов?

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

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

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #195 Ответы: #211

204. Сообщение от koplenov (ok), 07-Окт-24, 22:40   +/
> а куда делся пайтон?

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

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

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


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

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

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


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

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

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


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

¯\_(ツ)_/¯

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #198 Ответы: #206

205. Сообщение от Анонимище (?), 08-Окт-24, 10:04   +/
>обеспечивая работодателю проблемы при своём увольнении

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #199

206. Сообщение от Аноним (198), 08-Окт-24, 10:58   +/
Немного точек над И.., питон не люблю и не использую.

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #204

207. Сообщение от старый пень (?), 08-Окт-24, 12:08   +/
Да ладно, мой код крутился в поисковике nigma.ru в течении 7 лет, из них 5 лет когда я там уже не присутствовал.
Нормальный такой real world, выполняемая задача защита проекта от ботов и логических ddos.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #176 Ответы: #215

208. Сообщение от Аноним (208), 08-Окт-24, 12:11   +/
И надо заранее отметить, что отсутствие в V того, что есть в D считаем также устаревшим, а если это будет добавлено, придумаем зачем это старье добавили :-D
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #183

209. Сообщение от Аноним (59), 08-Окт-24, 18:49   +/
>V это все покрыл своей стандартной библиотекой, без сторонних зависимостей

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #202 Ответы: #216

210. Сообщение от Аноним (59), 08-Окт-24, 19:00   +/
>Конечно, только если бы он удобно покрывал все хотелки:

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #202

211. Сообщение от Аноним (59), 08-Окт-24, 20:02   +/
>>>Если каждый стейтмент начинается с ключевого слова
>>Это разве что первые бейсики с их 10 LET A = 10
>Но _всё_ остальное

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #203 Ответы: #212

212. Сообщение от Аноним (-), 09-Окт-24, 02:18   +/
> А ловко вы в воздухе переобуваетесь.

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

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

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #211 Ответы: #221

213. Сообщение от bOOster (ok), 09-Окт-24, 09:29   +/
ICU тут причем? Пользуй другую unicode реализацию, дай бох что их штуки 4 чтоле.
Ну или на крайняк дешифровывай UTF-8 тот-же в ручную, своей головой. Если мозгов хватит.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76

214. Сообщение от Аноним (-), 09-Окт-24, 10:33   +/
> Почему вы свои домыслы за факты выдаёте? Кроме того, вывод типов добрался
> уже даже до таких консерваторов, таких как Java и C++,

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

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

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

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #185 Ответы: #227

215. Сообщение от Аноним (-), 09-Окт-24, 10:56   +/
> Да ладно, мой код крутился в поисковике nigma.ru в течении 7 лет,
> из них 5 лет когда я там уже не присутствовал.

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

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

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

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

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #207 Ответы: #220, #228, #229

216. Сообщение от Аноним (-), 09-Окт-24, 11:45   +/
> Это минус языка, а не плюс. Перегружает стандартную библиотеку и замедляет развитие
> функционала, плюс отсутствие альтернатив.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #209

217. Сообщение от Аноним (-), 09-Окт-24, 11:47   +/
> Петрович, успокойся. Никто у тебя go не отнимет.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #91

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #96

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #215 Ответы: #223

221. Сообщение от Аноним (59), 09-Окт-24, 16:43   +/
>Не надо к словам докапываться, попробуй усвоить суть за словами, которую я тебе втолковать пытаюсь.

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #212 Ответы: #222

222. Сообщение от Аноним (-), 10-Окт-24, 02:11   +/
> Суть всегда заключается в словах.

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #221 Ответы: #226

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #220 Ответы: #224, #225, #230

224. Сообщение от старый пень (?), 10-Окт-24, 08:48   +/
А гугол проиграл в конкуренцию, не смогли они на локальном рынке.
А так да, всего лишь 100 лямов человек, действительно мелочь. Че уж там.

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #223

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #223

226. Сообщение от Аноним (59), 10-Окт-24, 14:30   +/
>то вспомни вузовский курс философии

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #222 Ответы: #231

227. Сообщение от Аноним (59), 10-Окт-24, 14:43   +/
>А вывод типа это прекрасно, но вообще ни разу не гарантирует совпадений с intent кодера. Значит о том что не совпадает - узнает где-то сильно потом.

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #214 Ответы: #233

228. Сообщение от Аноним (59), 10-Окт-24, 14:49   +/
>Я так то в курсе что все яп эквивалентны

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #215

229. Сообщение от Аноним (59), 10-Окт-24, 14:52   +/
>Я честно говоря не знаю кто и что куда накидал. На гитхабе вон вообще васяны налили - миллионы домашек.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #215

230. Сообщение от Аноним (59), 10-Окт-24, 15:03   +/
>когда git bisect мне показал патч размером со скрин, и я знаю сишку

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #223

231. Сообщение от Аноним (-), 10-Окт-24, 22:16   +/
> Перевод стрелок продолжается, теперь ещё и на философию.

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #226

232. Сообщение от Аноним (232), 12-Окт-24, 05:29   +1 +/
Оставил пару комментариев здравого смысла в телеграмме местных новостей родного города в Украине, так сразу на следующий день полиция возле дома ходила, кого-то искала. У нас она не часто на самом деле - дороги плохие чтобы доехать. Может конечно совпадение, но мне слабо верится что оно. Пришлось телегу удалить. А вообще у нас socksv4 как-то научились перехватывать tor-сети. Смотрю - айпи меняется, а вот некоторые сайты заблокированы. С socksv5 вроде бы всё нормально, хотя из-за кеширования сложно было проверить что это именно оно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #132

233. Сообщение от Аноним (-), 14-Окт-24, 06:42   +/
> В Ocaml алгоритм вывод типов предельно понятен, и никакого "сильно потом" нет,
> и то, как он работает выясняется во время первого знакомства с
> языком, во время чтения документации. Если в вашем языке что-то намудрили
> с выводом типов, то вопросы к вашему языку

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #227

234. Сообщение от Аноним (234), 14-Окт-24, 10:45   +/
Таки, если программа будет работать некоторое время, то начнёшь замечать ;)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #143

236. Сообщение от Вова (?), 22-Окт-24, 23:00   +/
Очевидно же, фортранист покусал :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #54

238. Сообщение от Вова (?), 22-Окт-24, 23:15   +/
Если он генерит "промежуточную сишечку", это уже медленный канпелятор! Скорости надо учиться у Паскаля.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #178

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #244

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

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #245

242. Сообщение от Вова (?), 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?
Много вопросов и НОЛЬ пояснений (на странице сравнения с С++).

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

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

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

Ответить | Правка | Наверх | Cообщить модератору

243. Сообщение от ivantroff94email (?), 17-Ноя-24, 23:14   +/
Новичек на форуме да и с V тоже работал мало, подскажите пожалуйтста, это  ваш чат? https://tg-cat.com/@vlang_rus
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #246

244. Сообщение от Аноним (-), 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-ом месте и проверят.

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

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

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


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #240

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #241

246. Сообщение от Автор Ви (?), 20-Фев-25, 03:24   +/
https://t.me/vlang_rus
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #243


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру