The OpenNET Project / Index page

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

Открыты исходные тексты языка программирования V

24.06.2019 10:32

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

Синтаксис V во многом походит на язык Go с заимствованием некоторых конструкций из Oberon, Rust и Swift. Язык максимально упрощён и, по заявлению разработчика, для изучения базовых основ достаточно 30 минут на изучение документации. При этом язык остаётся достаточно мощным и может применяться для выполнения тех же задач, что и при использовании других языков программирования (например, доступны библиотеки для 2D/3D графики, создания GUI и web-приложений).

К созданию нового языка побудило желание добиться сочетания свойственных языку Go простоты синтаксиса, скорости компиляции, простоты распараллеливания операций, переносимости и сопровождаемости кода с производительностью С/C++, защищённостью Rust и генерацией машинного кода на этапе компиляции Zig. Также хотелось получить компактный и быстрый компилятор, способный работать без внешних зависимостей, избавиться от глобальной области видимости (глобальных переменных) и обеспечить возможность "горячей" перезагрузки кода.

По сравнению с C++ новый язык существенно проще, обеспечивает более высокую скорость компиляции (до 400 раз), практикует приёмы безопасного программирования, избавлен от проблем с неопределённым поведением и предоставляет встроенные средства для распараллеливания операций. По сравнению с Python язык V быстрее, проще, безопаснее и удобнее в сопровождении. По сравнению с Go в V нет глобальных переменных, нет null, все значения переменных всегда обязательно должны быть определены, все объекты по умолчанию являются неизменяемыми (immutable), поддерживается только один вид присвоений ("a := 0"), существенно более компактный runtime и размер итоговых исполняемых файлов, наличие прямой переносимости с Си, отсутствие сборщика мусора, более быстрая сериализация, возможность интерполяции строк ("println('$foo: $bar.baz')").


  fn main() {
	areas := ['game', 'web', 'tools', 'science', 'systems', 'GUI', 'mobile']
	a := 10 
	if true {
		a := 20
	} 
	for area in areas {
		println('Hello, $area developers!')
	}
   }	

Особенности проекта:

  • Компактный и быстрый компилятор, который вместе со стандартной библиотекой занимает около 400 КБ. Высокая скорость компиляции достигается благодаря прямой генерации машинного кода и модульности. Скорость компиляции составляет примерно 1.2 млн строк кода в секунду на одном ядре CPU (отмечается, что в процессе работы V может использовать Си, тогда скорость падает до 100 тысяч строк в секунду). Самосборка компилятора, который также написан на языке V (также имеется эталонный вариант на Go), занимает примерно 0.4 сек. К концу года ожидается завершение работы над дополнительными оптимизациями, которые позволят уменьшить время сборки компилятора до 0.15 сек. Судя по проведённым разработчиком тестам самосборка Go требует 512 Мб дискового пространства и выполняется за полторы минуты, Rust требует 30 Гб и 45 минут, GCC - 8 ГБ и 50 минут, Clang - 90 Гб и 25 минут, Swift - 70 ГБ и 90 минут;
  • Программы компилируются в исполняемые файлы без внешних зависимостей. Размер исполняемого файла простого http-сервера после сборки составляет всего 65 КБ;
  • Производительность скомпилированных приложений находится на уровне сборок программ на языке Си;
  • Возможность бесшовного взаимодействия с Си-кодом, без дополнительных накладных расходов. Из кода на языке V могут вызываться функции на языке Си и наоборот, код на языке V может вызываться в любых языках, совместимых с Си;
  • Поддержка трансляции проектов на C/C++ в представление на языке V. Для трансляции используется парсер от Clang. Не все возможности стандарта Си пока поддерживаются, но текущих возможностей транслятора уже достаточно для перевода на язык V игры DOOM. Транслятор с C++ пока находится на начальной стадии развития;
  • Встроенная поддержка сериализации, без привязки к runtime;
  • Минимизация операций распределения памяти;
  • Обеспечение безопасности: отсутствие NULL, глобальных переменных, неопределённых значений и переопределения переменных. Встроенные средства для проверки выхода за границы буфера. Поддержка обобщённых функций (Generic). Не изменяемые по умолчанию объекты и структуры;
  • Возможность "горячей" перезагрузки кода (отражения изменений в коде на лету без перекомпиляции);
  • Средства для обеспечения многопоточности. Как и в языке Go, для запуска нового потока выполнения используется конструкция вида "run foo()" (по аналогии с "go foo()"). В будущем планируется поддержка goroutines и планировщика потоков;
  • Поддержка операционных систем Windows, macOS, Linux, *BSD. До конца года планируется добавить поддержку Android и iOS;
  • Управление памятью на этапе компиляции (как в Rust), без применения сборщика мусора;
  • Наличие многоплатформенного тулкита для вывода графики, использующего для отрисовки GDI+/Cocoa и OpenGL (в планах поддержка API DirectX, Vulkan и Metal). Имеются средства для работы с 3D-объектами, скелетной анимацией и управления камерой;
  • Наличие библиотеки для формирования графических интерфейсов с родными для каждой ОС элементами оформления. В Windows используется WinAPI/GDI+, в macOS - Cocoa, в Linux - собственный набор виджетов. Библиотека уже используется при разработке Volt - клиента для Slack, Skype, Gmail, Twitter и Facebook; Планируется создание похожего на Delphi приложения для проектирования интерфейса, предоставление декларативного API, похожего на SwiftUI и React Native, и обеспечение поддержи создания мобильных приложений для iOS и Android;
  • Наличие встроенного web-фреймворка, который использован для создания сайта, форума и блога разработчиков проекта. Поддерживается предкомпиляция HTML-шаблонов, без их обработки при каждом запросе;
  • Поддержка кросс-компиляции. Для сборки исполняемого файла для Windows достаточно запустить "v -os windows", а для Linux - "v -os linux" (поддержка кросс-компиляции для macOS ожидается позднее). Кросс-компиляция в том числе работает и для графических приложений;
  • Встроенный менеджер зависимостей, пакетный менеджер и инструментарий сборки. Для сборки программы достаточно запустить "v .", без использования make и внешних утилит. Для установки дополнительных библиотек достаточно выполнить, например, "v get sqlite";
  • Наличие плагинов для разработки на языке V в редакторах VS Code и Vim.

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

Тем временем, в трекере ошибок проекта V было удалено около 10 сообщений с демонстрацией низкого качества кода, например, указано на применение Си-вставок и использование в библиотеке функций для удаления каталога команды rm через вызов os.system("rm -rf $path"). Автор проекта заявил, что он лишь удалил сообщения, опубликованные троллем (при этом изменения, подтверждающие обоснованность критики, остались в истории правок).

  1. Главная ссылка к новости (https://www.reddit.com/r/vlang...)
  2. OpenNews: Открыты исходные тексты языка программирования Flow9
  3. OpenNews: Новая версия языка программирования Nim 0.20
  4. OpenNews: Оценка типичных проблем с безопасностью для различных языков программирования
  5. OpenNews: Компания Apple представила язык программирования Swift 5
  6. OpenNews: Выпуск языка программирования Julia 1.1
Лицензия: CC-BY
Тип: Программы
Ключевые слова: vlang
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (226) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.1, Аноним (1), 10:56, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +32 +/
    Поприветствуем же убийцу всех языков и замену гошке с растом!
     
     
  • 2.5, sndev (ok), 11:05, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +12 +/
    О да. Судя по заявленным возможностям это просто идеальный "конь".

    Но как кто-то уже когда-то тут высказался : "языки с := присвоением - не жильцы" (с) неизвестный автор.

     
     
  • 3.10, asdasdas (?), 11:10, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А auto это нормально?
     
     
  • 4.44, nobody (??), 11:57, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нормально
     
  • 4.116, sndev (ok), 14:57, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • –4 +/
    IMAO - auto это раковая опухоль.
     
     
  • 5.221, kostyarin (ok), 18:13, 25/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    auto == := (c) Well known author (me).
     
  • 4.172, Аноним (172), 21:14, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > А auto это нормально?

    ну можешь писать, никто не мешает

    for (std::vector<std::map<int, std::string>>::const_iterator it = container.begin(); it != container.end(); ++it) { }

     
     
  • 5.213, Vasiao (?), 12:20, 25/06/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это как раз показатель, что С++ с темплейтами ушёл не туда. auto - костыль для того, чтобы подобный неюзабельное дело прятать
     
  • 3.31, Аноним (31), 11:41, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • –6 +/
    И по умолчанию константные переменные сомнительный костыль... Переменные на то и переменные чтобы их менять, их 99% мутируемые, везде писать этот ключ дабы не выстрелить в небо и снаряд не прилетел обратно на тебя?
    ждем дальше плюсы без шаблонов
     
     
  • 4.102, KonstantinB (ok), 14:06, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Наоборот, это хорошо. Если переменная мутабельная, я это явно укажу. А если на самом деле неиммутабельная и компилятор об этом знает, открывается огромный простор для оптимизациию.
     
     
  • 5.103, KonstantinB (ok), 14:07, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Черт, что я написал? Идиот!

    Читать "на самом деле иммутабельная" :)

     
     
  • 6.186, Аноним (186), 23:18, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Если компилятор на совсем идиот, то он и дополнительных подсказок увидит отсутствие записи в переменную и применит всё те же оптимизации. Так что сишно-плюсовый "const" и прочие иммутабельности -- это больше для людей, чем для компьютера.
     
     
  • 7.206, Аноним (206), 10:24, 25/06/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Для этого требуется LTO.
     
  • 7.230, тротилус (?), 00:02, 26/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Это избыточность, необходимая для проверки компилятором корректности использования.
     
  • 4.118, eganru (?), 15:28, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    [i]И по умолчанию константные переменные сомнительный костыль...[/i] - я пишу на Си и по моему опыту большинство локальных переменных константные, большинство указателей restrict и указывают на данные, которые я не буду менять через этот указатель.
     
     
  • 5.169, Аноним (169), 20:39, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Ембедерщик что-ли? Не показатель
     
     
  • 6.182, НяшМяш (ok), 22:28, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Из переменных могут быть разве что счётчики в циклах и временные переменные. Для чего может возникнуть необходимость менять те же указатели?
     
     
  • 7.184, Аноним (169), 23:10, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Менять указатель - тот же обход буфера в цикле через *s++. Если имелось ввиду менять содержимое памяти по указателю - тот же пример. А какие у вас переменные, что вы их не меняете?
     
  • 5.235, Jh (?), 13:17, 01/07/2019 [^] [^^] [^^^] [ответить]  
  • +/
    просто ты латентынй функиональщик.
     
  • 4.163, kiwinix (?), 19:28, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Язык erlang, слышал такой?
    Совсем не мутабельный
     
  • 4.232, Аноним (232), 06:26, 26/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Некоторые языки не оперируют словом переменная.

    Нет спорной терминологии - нет проблем

     
  • 3.32, гошник (?), 11:42, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > языки с := присвоением - не жильцы

    Подозреваю, речь идёт всё же не о присвоении, а о сокращённом объявлении переменной, как в Go.

     
     
  • 4.39, гошник (?), 11:50, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Хотя не, не дочитал пример. Тогда и правда не жилец.
     
     
  • 5.58, Аноним84701 (ok), 12:29, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Хотя не, не дочитал пример. Тогда и правда не жилец.

    doc
    >  Please note the difference between := and =
    > := is used for declaring and initializing, = is used for assigning.

     
     
  • 6.95, гошник (?), 13:43, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Хм. А это тогда как понимать?
    [code]
    a := 10
    if true {
    a := 20
    }
    [/code]
    Как объявление одноимённой переменной с другой областью видимости, которая никак не используется? Отличный пример для новости!
     
     
  • 7.155, Вася Теркин (?), 18:02, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Не вижу никаких проблем. Область видимости для переменной одна и та же. Можешь хоть постоянно использовать := , это не будет ошибкой. Просто визуально в коде не поймешь где переменную объявили.
     
  • 3.222, kostyarin (ok), 18:14, 25/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Тип, при присвоении через := или auto определяется плагином для текстового редактора. Пора уже вылазить из нотпад.экзе.
     
  • 2.6, Аноним (6), 11:05, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да! Слежу за проектом. Всячески желаю успеха и продвижения!
     
     
  • 3.151, Тоже аноним (?), 17:37, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Присоединюсь, шикарный язычина наклевывается.А если прокинут, то что делать будем?
     
     
  • 4.161, Аноним (6), 18:44, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    в вебасембли компилировать)
     
  • 2.166, Аноним (166), 19:54, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Возможность "горячей" перезагрузки кода (отражения изменений в коде на лету без перекомпиляции);

    https://vlang.io/docs#hot

    Hot code reloading
    TODO

     

  • 1.2, A.Stahl (ok), 11:01, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +18 +/
    Написано слишком пафосно.  Философский, блин, камень. Перпетум, бля, мобиле.
    Интересно, кто-то вспомнит об этом языке через 3 года?
    Увидим...
     
     
  • 2.7, powershell (ok), 11:06, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Основная проблема не в том, что слишком пафосно, а в том, что почти ничего из обещанного не реализовано.
    У сообщества случился бомбит, реддит и хакерньюс раскрывают драму.
     
     
  • 3.122, Аноним (122), 15:39, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > бомбит, реддит и хакерньюс

    Звучит, как обострение заболеваний. :)

     
     
  • 4.189, Аноним (186), 23:21, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, "бомбит", "реддит" и "хакерньюсит".
     
  • 3.159, Аноним (159), 18:27, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    ссылочки на самые драматические нити.
    Пока сам я накопал https://github.com/medvednikov/vid
    Красивое описание, скриншотик и 12 коммитов на readme, лол. Больше в дереве сорцев жизни не было обнаружено.
     

  • 1.4, Аноним (4), 11:04, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    закончится алфавит для названий когда?
     
     
  • 2.8, Аноним (8), 11:08, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Юникод длинный.
     
     
  • 3.38, Аноним (38), 11:45, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Предлагаю язык: ↑
     
     
  • 4.71, Аноним (71), 12:48, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    ↑++
     
     
  • 5.78, Аноним (78), 12:58, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Всем известно, что ★ гораздо удобнее.
     
     
  • 6.157, Dnina (ok), 18:10, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Но веб захватили 🐘 с 🐬
     
  • 5.138, Клыкастый (ok), 16:47, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > ↑++

    ⁰C++

     
     
  • 6.162, Аноним (162), 19:23, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > ⁰C++

    °C же. Ты, небось, и C♯ вместо C# пишешь?

     
     
  • 7.205, Клыкастый (ok), 09:56, 25/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >> ⁰C++
    > °C же. Ты, небось, и C♯ вместо C# пишешь?

    C⋄


     
  • 7.231, тротилус (?), 00:05, 26/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Это разные языки
     
  • 4.127, Аноним (127), 16:08, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Уже есть такой, на нём сегу программируют.
     
  • 2.20, VINRARUS (ok), 11:31, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    😎
     
  • 2.84, Аноним (84), 13:08, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Будут двухбуквенные, например, VX ;)
     
     
  • 3.140, Anonymouss (?), 16:50, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ратую за трехбуквенные)
     
     
  • 4.142, Andrey Mitrofanov_N0 (??), 16:59, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Ратую за трехбуквенные)

    На заборе-то вот чего написано, а там ....awk, sed, c++, ibm, roi, и kpi, и сео!...
    ...лежат.

     
  • 4.148, Имя нам Васян (?), 17:28, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    А можно ещё записывать в Шестнадцатеричная система счисления.
     

  • 1.9, Аноним (9), 11:09, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Зачем нужен еще один Паскаль, когда есть Си?
     
  • 1.11, CHERTS (ok), 11:10, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Они бы хоть довели этот V до состояния сборки, а то mkdir code cd code gi... текст свёрнут, показать
     
     
  • 2.14, Лаура Бодевиг (?), 11:23, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +15 +/
    Какой, однако, свежий компилятор...
     
  • 2.15, CHERTS (ok), 11:23, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Под Debian 9 тоже нифига не собирается компилятор

    ./vc -o v .
    Makefile:4: recipe for target 'v' failed
    make: *** [v] Segmentation fault

    Версия gcc новая
    gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1)


    На какой ОС его собирает автор?

     
     
  • 3.17, Лаура Бодевиг (?), 11:26, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Может всё-таки стоит бампнуть версию, не? А то так можно на многое критовать
     
  • 3.62, terryfilch (ok), 12:35, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    https://github.com/vlang/v/issues/486
     
  • 2.18, Аноним (18), 11:26, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    У меня по другому:

    ./vc -o v .
    Makefile:4: recipe for target 'v' failed
    make: *** [v] Ошибка сегментирования (сделан дамп памяти)

    Ubuntu 18.04

     
     
  • 3.23, Клыкастый (ok), 11:35, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    а потому что

    openat(AT_FDCWD, "/home/xxx//code/v//os", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 ENOENT (Нет такого файла или каталога)
    fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(0x88, 0xc), ...}) = 0
    --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x702ae7c7} ---
    +++ killed by SIGSEGV +++
    Ошибка сегментирования

     
     
  • 4.33, Клыкастый (ok), 11:42, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    ну или если пути норм, то access("/usr/local/Cellar/llvm/8.0.0/bin/clang", F_OK) = -1 ENOENT (Нет такого файла или каталога)
     
  • 4.99, Аноним (162), 13:51, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ясно. Выносите.
     
  • 4.133, Аноним (133), 16:19, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А я думал что в лифте о го-шниках неправду пишут, ан нет ...
     
  • 4.135, Аноним (133), 16:31, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    О, да неужели
    '''
    V 0.1.0
    Use Ctrl-D to exit
    For now you have to use println() to print values, this will be fixed soon

    >>>

    '''

     
  • 2.60, Аноним (60), 12:30, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > на свежей Oracle Linux 7
    > gcc version 4.8.5

    Протухла на 6 лет твоя оракла. Небойсь все дыры в одном месте собрали.

     

  • 1.13, Аноним (13), 11:18, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > наличие прямой переносимости с Си
    > отсутствие NULL
     
     
  • 2.26, letsmac (ok), 11:40, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Так это же макрос, который в любом случае приводится к 0 .
     
     
  • 3.196, Аноним (196), 00:59, 25/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ну на самом деле это не ноль, а ноль с типом данных, но это уже в C++.
     
  • 2.176, neanonim (?), 22:07, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    ты себе сам "+" поставил?
    > https://github.com/freebsd/freebsd/blob/master/sys/sys/_null.h

    можешь любой другой ролевантный src открыть

     

  • 1.16, Аноним (-), 11:24, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Хорошая пиар компания совершенно ненужного проекта.
     
  • 1.19, Аноним (19), 11:28, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    > По сравнению с Go в V нет глобальных переменных

    И чем это хорошо ?

     
     
  • 2.97, Аноним (97), 13:47, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Когда в языке нет плохого, это хорошо
     
     
  • 3.199, Аноним (199), 08:43, 25/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Но как жи тагда праграмировать???!!!111
     

  • 1.21, Аноним (21), 11:32, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –12 +/
    Не нужно Во-первых, скорость компиляции мало кого интересует Во-вторых, язык по... текст свёрнут, показать
     
     
  • 2.42, letsmac (ok), 11:54, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >>В-третьих, вместо нормально проработанных эксепшенов

    А есть они где нормальные? Если язык заявлен как не имеющий побочных эффектов - проще результат функции проверять, чем catch  с assert расковыривать.

    >>бесплатно (ОО например)

    ОО уходит в свою нишу и там еме и место.

     
     
  • 3.46, Аноним (21), 12:04, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • –5 +/
    >Если язык заявлен как не имеющий побочных эффектов

    Не заявлен, там есть возможность для сайдэффектов. Вы доку читали?

    >проще результат функции проверять, чем catch  с assert расковыривать.

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

    >ОО уходит в свою нишу и там еме и место.

    Под "нишей" вы понимаете 99% всего ПО?

     
     
  • 4.200, Аноним (199), 08:48, 25/06/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Проще вообще ничего не проверять, а обрабатывать ошибку там, где ее и нужно обрабатывать - на самом верхнем уровне.

    Используйте инструкцию GOTO. Чем Исключения по факту и являются.
    >Под "нишей" вы понимаете 99% всего ПО?

    Долго палец сосали?

     
  • 2.75, Аноним (75), 12:53, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Если осознать что ОО процентах в 90 проектов нафиг не упало, жизнь становится куда легче.
     
     
  • 3.87, Аноним (87), 13:11, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >Если осознать что ОО процентах в 90 проектов нафиг не упало, жизнь становится куда легче.

    99% всего софта используют ОО, но у хомячков опеннета какой-то другой линукс, без ОО

     
     
  • 4.177, neanonim (?), 22:10, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    только ситхи все возводят в абсолют, статистика против вас
     
     
  • 5.198, Аноним (198), 08:31, 25/06/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >статистика против вас

    Какая статистика? Кеды, гном, електрон, линукс - все построено на принципах Объектно-Ориентированного Программирования

     
     
  • 6.201, Аноним (199), 08:50, 25/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >линукс
    >построено на принципах Объектно-Ориентированного Программирования

    А Линус знает?

     
     
  • 7.211, Аноним (198), 11:50, 25/06/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >А Линус знает?

    думаю да, https://www.kernel.org/doc/Documentation/kobject.txt

     
  • 3.192, Аноним (186), 23:30, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да ладно, то же классическое юниксовое "всё есть файл" -- вполне себе ОО с полиморфизмом, где за единым интерфейсом скрыты разные реализации. От записи write(file, buffer, count) вместо file.write(buffer, count) суть не меняется.
     
     
  • 4.202, Аноним (199), 08:51, 25/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >Да ладно, то же классическое юниксовое "всё есть файл" -- вполне себе ОО с полиморфизмом

    Анальный секс тоже.

     

  • 1.22, grayich (ok), 11:33, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    одного меня бесят := ?
     
     
  • 2.24, имя (?), 11:36, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    узнали? согласны?
     
  • 2.25, Аноним (9), 11:37, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Как в колледже преподаватель-паскалист научил, так и пишем.
     
  • 2.27, Аноним (27), 11:40, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    это мне напомнило эпизод из "кремниевой долины" (s3e06), когда ГГ расстался с девушкой только потому, что он было сторонник таба, а она - пробелов =D
     
     
  • 3.174, Аноним (174), 21:27, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не видел ни одного проекта где бы пользовались табуляцией.
    Так же не видел ни одного человека, который по 8 раз на пробел нажимал.
     
     
  • 4.179, neanonim (?), 22:12, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    это потому что ты пишешь на скриптовых языках (я угадал)
     
  • 2.30, ыы (?), 11:41, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а какой смысл вкладывали в такие сложности авторы? может присваивание из двух символов дает +5 к улетности?
     
     
  • 3.41, Annoynymous (ok), 11:52, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    If (a = 5)
     
  • 3.43, Урри (?), 11:55, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Как учил великий Вирт, := - это "присвоить значение". Ибо "=" - это равно. Использовать всем известный математический символ сравнения в качестве присвоения - это вносить путаницу в неокрепшие умы неофитов.

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

     
     
  • 4.49, Аноним (49), 12:15, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Как учил великий Вирт, := - это "присвоить значение". Ибо "=" -
    > это равно. Использовать всем известный математический символ сравнения в качестве присвоения
    > - это вносить путаницу в неокрепшие умы неофитов.

    Так тут всё наоборот.
    Присваивание значения через =
    Объявление "переменных" (которые по умолчанию константы) через :=
    В школе на уроках математики пишем x = 1
    здесь x := 1

     
     
  • 5.54, Аноним (49), 12:24, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Наблюдая афедронную эксплозию у участников секты Вирта, не примену поспособствовать её усилению цитатой документации:

    Please note the difference between := and =
    := is used for declaring and initializing, = is used for assigning.

     
  • 5.55, Ilya Indigo (ok), 12:25, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > В школе на уроках математики пишем x = 1

    Потому что это РАВЕНСТВО, а не присвоение!

     
     
  • 6.57, Аноним (49), 12:28, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >> В школе на уроках математики пишем x = 1
    > Потому что это РАВЕНСТВО, а не присвоение!

    Ну да. При этом в V равенство, а не присвоение :=

     
  • 5.66, Аноним84701 (ok), 12:44, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Объявление "переменных" (которые по умолчанию константы) через :=
    > В школе на уроках математики пишем x = 1
    > здесь x := 1

    Вообще-то равенство - это когда можно написать 1=x без изменения семантики. Такое возможно лишь в некоторых, великих ЯП:
    [code]
    ?- X='hello', 1 + 2 = Y, write(X), 1 + 4 =:= Y + 2.
    hello
    X = hello,
    Y = 1+2
    [/code]

     
     
  • 6.74, Аноним (49), 12:51, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    >> здесь x := 1
    > Вообще-то равенство - это когда можно написать 1=x без изменения семантики. Такое
    > возможно лишь в некоторых, великих ЯП:
    > [code]
    > ?- X='hello', 1 + 2 = Y, write(X), 1 + 4 =:=
    > Y + 2.
    > hello
    > X = hello,
    > Y = 1+2
    > [/code]

    Во. Так мы придём к тому, что бывает сравнение, а бывает декларация.

     
     
  • 7.82, Аноним84701 (ok), 13:03, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    >> Вообще-то равенство - это когда можно написать 1=x без изменения семантики. Такое
    >> возможно лишь в некоторых, великих ЯП:
    >> [code]
    >> ?- X='hello', 1 + 2 = Y, write(X), 1 + 4 =:=
    >> Y + 2.
    >> hello
    >> X = hello,
    >> Y = 1+2
    >> [/code]
    > Во. Так мы придём к тому, что бывает сравнение, а бывает декларация.

    Ну-ну:
    [code]
    ?- 1 + 2 + 4 = X + 4,  1 + 2 = Y,write([X,Y]), Y = X.
    [1+2,1+2]
    X = Y, Y = 1+2.[/code]

     
     
  • 8.88, Аноним (49), 13:16, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    В V сравнение присваивание к чему тут ссылки на Вирта ... текст свёрнут, показать
     
     
  • 9.96, Аноним84701 (ok), 13:44, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Наверное, к чтению перед жмяканием на ответить Школьное и не только написан... текст свёрнут, показать
     
     
  • 10.100, Аноним (49), 14:01, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Вот и я о чём ... текст свёрнут, показать
     
     
  • 11.110, Аноним84701 (ok), 14:27, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ни о чем Тем более, поправляя без понимания смысла Еще раз, для невнимательн... текст свёрнут, показать
     
     
  • 12.112, Аноним (49), 14:41, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Могу ещё раз Тут , то есть в языке V, оператор сравнения ил равенства , как ... текст свёрнут, показать
     
     
  • 13.115, Аноним84701 (ok), 14:54, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Осталось бы прояснить, причем тут изначальное Но мне уже не интересно 8230 ... текст свёрнут, показать
     
     
  • 14.137, Аноним (49), 16:43, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Объяснял же Это декларации В частности, по завершению решения уравнения, в отв... текст свёрнут, показать
     
     
  • 15.152, Аноним (152), 17:40, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А кто не дает Семантически это одно и то же При решении уравнения ответ читает... текст свёрнут, показать
     
     
  • 16.154, Аноним (49), 17:59, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    МарьИванна ставит двойку и заставляет всю тетрадку переписывать А вот с этой ... текст свёрнут, показать
     
  • 5.153, Урри (?), 17:51, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо. Я как то даже не потрудился глянуть в это поделие.
     
  • 2.50, Ilya Indigo (ok), 12:18, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А a == b Вас не бесит?
     
     
  • 3.52, Аноним (49), 12:20, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > А a == b Вас не бесит?

    Для этого есть Source Insight. Вместо != показывает ≠.

     
     
  • 4.85, Ordu (ok), 13:09, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну дык а := ты можешь заменить на ←
     
     
  • 5.93, пох. (?), 13:37, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    если цитирующие доку нам не врут - ← = замена =, а := - =

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

     
     
  • 6.106, Аноним84701 (ok), 14:12, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > выбрать не просто лишний символ, а еще и требующий нажатия shift,
    > мог только прохвессор кислых щей, не пользующийся компьютером в принципе -  каковым Вирт и был) - это уже мелочи.

    Хм, а я-то думал что это из Алгола заимствовано было, а оно во как оказывается.
    Да и Бэкус c Перлисом в качестве кислощейных "прохвессоров" … срывает покровы.
    Чего только не узнаешь на opennetleaks *ушел в потрясенном состоянии*


     
     
  • 7.126, пох. (?), 16:07, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    так алгол и был теоретическим языком для теоретиков - его вообще никто не предпо... текст свёрнут, показать
     
     
  • 8.134, Аноним84701 (ok), 16:27, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Гм-хм Т е Z23 с прилагающимся из коробки ALGOL 60 у вас там не существовал,... текст свёрнут, показать
     
     
  • 9.139, Tita_M (ok), 16:47, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Тут ещё нужно добавить и огромную нужду в статических анализаторах одной из зада... текст свёрнут, показать
     
     
  • 10.147, Аноним84701 (ok), 17:24, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Я вполне еще помню ДОС в виде сравнения с константами и прочим 100500 x , ... текст свёрнут, показать
     
     
  • 11.149, Tita_M (ok), 17:35, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Можно ещё вспомнить стандарт MISRA C для ошибко-устойчивого программирования на ... текст свёрнут, показать
     
     
  • 12.187, пох. (?), 23:19, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    потом на нем пишут что-то стоящее - и вот только потом, когда к языку приобщаютс... текст свёрнут, показать
     
  • 9.185, пох. (?), 23:13, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    у нас тут он точно не существовал, да и вообще существовал неведомо где - я вот ... текст свёрнут, показать
     
  • 7.158, Аноним (158), 18:21, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну пох-то поумнее их всех будет, неучей да самозванцев. Светило и надежда прогрессивной науки, епт.
     
  • 6.109, Аноним (49), 14:24, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > если цитирующие доку нам не врут - ← = замена =, а
    > := - =

    Ну с Паскалем там (по крайней мере, было в 3й версии) сильно хуже, чем в С. Всё ж там капризы только за наши деньги. Но идея в целом понята верно. Почему её не реализовали в других самых лучших редакторах энд девелоперз энверонментз?

     
  • 5.108, Аноним (49), 14:20, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну дык а := ты можешь заменить на ←

    Вот. Если захотеть, можно что угодно заменить по своему вкусу. О чём спорят все эти люди?

     
  • 3.53, grayich (ok), 12:23, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > А a == b Вас не бесит?

    нет

     
     
  • 4.56, Ilya Indigo (ok), 12:26, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ну тогда у Вас просто синдром утёнка.
     
     
  • 5.77, щавель (?), 12:56, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Синдром утенка это === все-таки.
     
  • 5.79, grayich (ok), 12:58, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну тогда у Вас просто синдром утёнка.

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

     
     
  • 6.86, Ordu (ok), 13:10, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    в V := -- это не присваивание, а объявление и присваивание. Аналогичная конструкция в C++ это

    auto a = 1;

    В V, как мы видим, короче. И не на один символ.

     
     
  • 7.190, пох. (?), 23:23, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > В V, как мы видим, короче. И не на один символ.

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

     
  • 5.81, Аноним (49), 13:02, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну тогда у Вас просто синдром утёнка.

    А у меня синдром дока, который не видел доки?

    [CODE]
    num := 777
    s := if num % 2 == 0 {
    'even'
    }
    else {
    'odd'
    }
    println(s) // ==> "odd"
    [/CODE]

     
     
  • 6.91, Ilya Indigo (ok), 13:31, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    > [CODE]
    > num := 777
    > s := if num % 2 == 0 {
    >  'even'
    > }
    > else {
    >  'odd'
    > }
    > println(s) // ==> "odd"
    > [/CODE]

    Вы хотите сказать, что в V оператор равенства == ?

     
     
  • 7.105, Аноним (49), 14:11, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    >> num := 777
    >> s := if num % 2 == 0 {
    >>  'even'
    >> }
    >> else {
    >>  'odd'
    >> }
    >> println(s) // ==> "odd"
    >> [/CODE]
    > Вы хотите сказать, что в V оператор равенства == ?

    В Вашей терминологии, именно так.

    Ну а то, что оператор (что делает?) сравнивает, значит он оператор сравнения; а == означает равенство (значит это знак равенства) -- уже детали.

     
     
  • 8.123, Ilya Indigo (ok), 15:46, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Нашёл https vlang io docs if Вот это самый настоящий бред освободить оператор... текст свёрнут, показать
     
     
  • 9.144, Аноним (49), 17:11, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В ML декларация все переменные константы, тип выводится по Хиндли-Милнеру ... текст свёрнут, показать
     
  • 9.150, Ordu (ok), 17:35, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я понимаю, что в рунете принято критиковать по принципу не читал, но осуждаю , ... текст свёрнут, показать
     
     
  • 10.160, Ilya Indigo (ok), 18:43, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ничего Вы не понимаете Я на работе, у меня нет времени изучать документацию, да... текст свёрнут, показать
     
     
  • 11.178, Ordu (ok), 22:10, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, ну да На работе он Времени у него нет А вот на то, чтобы поcpaться в к... текст свёрнут, показать
     
  • 3.73, Аноним (73), 12:51, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    == пишется быстро, при том, что используется не часто.
    = пишется быстрее чем := и используется часто и без шифта.
    Сами подумайте, что лучше или у вас какая-то другая клавиатура?
     
     
  • 4.76, Аноним (49), 12:54, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > == пишется быстро, при том, что используется не часто.
    > = пишется быстрее чем := и используется часто и без шифта.
    > Сами подумайте, что лучше или у вас какая-то другая клавиатура?

    Ещё бы думать научиться с той же скоростью.

     
  • 4.90, Ilya Indigo (ok), 13:27, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > == пишется быстро, при том, что используется не часто.
    > = пишется быстрее чем := и используется часто и без шифта.
    > Сами подумайте, что лучше или у вас какая-то другая клавиатура?

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

    2 Невообразимо больше времени уходит не на печать кода, а на его чтение и анализ!
    И в первую очередь он должен быть легко читаемым, а не легко печатаемым!

    3 Двоеточие находится рядом с правым шифтом, где и знак равенства, и набирается := без особых проблем.

     
     
  • 5.94, пох. (?), 13:39, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Илюша, научись уже слепой печати.
    "без особых проблем" набирается не то что рядом, а ровно наоборот.

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

     
     
  • 6.121, Ilya Indigo (ok), 15:37, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Илюша, научись уже слепой печати.
    > "без особых проблем" набирается не то что рядом, а ровно наоборот.
    > Но тебе, двумя пальчиками, оно все "без особых проблем".

    Такт я и набираю := слепо не глядя на клаву.
    при этом я слепо набирать текст не могу.

     
  • 6.125, Аноним84701 (ok), 16:03, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > "без особых проблем" набирается не то что рядом, а ровно наоборот.

    Равзе что если кнопочки излишне мелкие.
    Но как раз в RU-раскладке shift и ":" совсем не рядом.  

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

    А сколько надо? Мизинец на shift, указательный на один ряд вверх и в сторону.
    Ну и разница заметна разве что если нужно печатать на скорость, под диктовку, выдавая никак не меньше 300 знаков в минуту.

     
     
  • 7.128, пох. (?), 16:10, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Но как раз в RU-раскладке shift и ":" совсем не рядом.  

    о, программисты на 1С пожаловали. А что, у вас там разьве := ? 8-O

     
     
  • 8.129, Аноним84701 (ok), 16:14, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Странные у вас фантазии Т е вы вроде как владеете слепой печатью нашли чем... текст свёрнут, показать
     
     
  • 9.136, Клыкастый (ok), 16:40, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нет, он просто намекает что когда программист пишед код, у него одна раскладка ... текст свёрнут, показать
     
     
  • 10.141, Аноним84701 (ok), 16:57, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Я ж и говорю про виляни W фантазии и стандартный на опеннете ход -- если нечего... текст свёрнут, показать
     
  • 10.191, пох. (?), 23:27, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    и, похоже, ошибся - этот человек вообще никогда не пишет кода, ни на каком языке... текст свёрнут, показать
     
     
  • 11.195, Аноним84701 (ok), 00:44, 25/06/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если для Вас писать код означает выдавать под диктовку минимум 500 знаков в ми... текст свёрнут, показать
     
     
  • 12.208, пох. (?), 11:00, 25/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    вот и началось верчение ужом Признайтесь уже - не писали и не пишете вы никаког... текст свёрнут, показать
     
     
  • 13.212, Аноним84701 (ok), 11:51, 25/06/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вот и продолжились странные фантазии и стандартные ходы на опеннете Но с инт... текст свёрнут, показать
     
     
  • 14.214, пох. (?), 12:24, 25/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    вы уже забыли с чего началось или делаете вид Помогает - только вот необычные я... текст свёрнут, показать
     
     
  • 15.215, Аноним84701 (ok), 12:52, 25/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Стоило ответить в вашем же стиле и сразу вспомнилась исходная тема Ох Я уже вы... текст свёрнут, показать
     
     
  • 16.216, пох. (?), 13:10, 25/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    надо же, как интересно Вы таки программист на 1С но в варианте для Румынии Бу... текст свёрнут, показать
     
     
  • 17.218, Аноним84701 (ok), 13:41, 25/06/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Надо же, как интересно - опять пошли бурные фантазии Вы таки фантазер на опенне... текст свёрнут, показать
     
     
  • 18.219, пох. (?), 14:00, 25/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    я таки пытаюсь угадать, откуда берутся дятлы, стойко не способные сообразить, ч... текст свёрнут, показать
     
     
  • 19.220, Аноним84701 (ok), 14:36, 25/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Результаты опроса где, о недятел Или опять это знают все -- и все эти сужд... текст свёрнут, показать
     
  • 5.113, Аноним (49), 14:46, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >> == пишется быстро, при том, что используется не часто.
    >> = пишется быстрее чем := и используется часто и без шифта.
    >> Сами подумайте, что лучше или у вас какая-то другая клавиатура?
    > 1 В моём коде я сравниваю куда чаше чем присваиваю!

    Просто первый попавшийся пример:
    [CODE]
    let neg x =
        match x with
        | false -> true
        | true -> false
    ;;
    [/CODE]

    https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D0%BF

     

     ....большая нить свёрнута, показать (75)

  • 1.28, abi (?), 11:41, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Готлин какой-то :)
     
  • 1.29, Аноним (49), 11:41, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > решении задач по упрощению сопровождения разработки

    Что это значит?

     
     
  • 2.35, ыы (?), 11:43, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    для изучения ... достаточно 30 минут ... документации
    любой дежурный оператор сможет поддерживать...через полчаса изучения документации...
     
     
  • 3.51, Аноним (49), 12:19, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Приходилось видеть формулировки "язык общего назначения", или "для того-то". Тут как бы для "переписать всё на V".
     

  • 1.34, гуси (?), 11:43, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +15 +/
    V for Vasyan
     
  • 1.36, Rodegast (ok), 11:44, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Сегодня точно не 1 апреля?
     
     
  • 2.37, ыы (?), 11:45, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    не. но скоро пятница...
     
     
  • 3.47, Аноним (21), 12:04, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пятница начинается в понедельник
     

  • 1.40, Урри (?), 11:51, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    И я покритикую, а то таки пафоса многовато.

    > По сравнению с C++ новый язык ... обеспечивает более высокую скорость компиляции (до 400 раз) ... Скорость компиляции составляет примерно 1.2 млн строк кода в секунду на одном ядре CPU

    Однако "V can also emit C, then the compilation speed drops to ≈100k lines/second/CPU."

    Налицо нечестное сравнение. Либо не сравнивать с С++, либо сравнивать на похожем коде. А то я щас быстренько запилю компилятор ассемблера и напишу, что он работает в миллион раз быстрее компилятора С++. Причем с доказательствами.

     
     
  • 2.48, Аноним84701 (ok), 12:07, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Налицо нечестное сравнение. Либо не сравнивать с С++, либо сравнивать на похожем

    Там много "странностей". Хотя бы:
    > Судя по проведённым разработчиком тестам самосборка Go требует 512 Мб дискового пространства и
    > выполняется за полторы минуты, Rust требует 30 Гб и 45 минут, GCC - 8 ГБ и 50 минут,
    > Clang - 90 Гб и 25 минут, Swift - 70 ГБ и 90 минут;

    Иногда собираю шланг, при этом свободного места на диске 72GB.
    GCC вообще собирается в tmpfs (size=5GB) на 8ГБ ОЗУ, которых хватает и на сборку gcc8 и запущенный жирноли^W браузер …  

     
  • 2.83, Ordu (ok), 13:07, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Налицо нечестное сравнение.

    Какая разница, честное или нет. Этот язык, судя по тому, что говорят, ничего не умеет из описанного. Я могу написать компилятор, который ничего не умеет, и он будет компилировать себя столько времени, сколько требуется на fork+exec+exit.

     
     
  • 3.180, neanonim (?), 22:16, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    что бы транслятор назывался компилятором, он должет превращать высокоуровненый язык в низкоуровненый. добавьте команду world.
     
     
  • 4.181, Ordu (ok), 22:25, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > что бы транслятор назывался компилятором, он должет превращать высокоуровненый язык в низкоуровненый.
    > добавьте команду world.

    Пожалуйста, забери эти терминологические тонкости себе. Мне они не нужны.

     

  • 1.45, еще_адын_ананим (?), 12:01, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    V значит вендетта ?
     
     
  • 2.61, Аноним (97), 12:34, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да, вендетта сишечке
     
  • 2.64, мяя (?), 12:41, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    V значит wip ( https://vlang.io/ )
     
  • 2.117, pda (?), 15:11, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Визитёры. https://ru.wikipedia.org/wiki/V_(мини-сериал,_1983) Для рептилоидов, короче. :)
     

  • 1.59, Ilya Indigo (ok), 12:30, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Если это действительно всё правда, и быстродействие скомпилированного кода не сильно отличается от C, то это лучший ЯП со времён C!
     
     
  • 2.63, _kp (ok), 12:39, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Чудес не бывает. Чаще скорость компиляции увеличивается отключением оптимизации, или злокачественным упрощением языка.

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

     
  • 2.68, Аноним (68), 12:47, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    всё неправда
     

  • 1.65, мяя (?), 12:42, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    > нет null, все значения переменных всегда обязательно должны быть определены
    > Обеспечение безопасности: отсутствие NULL

    Автор вообще понимает для чего нужен NULL? С базами данных он знаком?

     
     
  • 2.67, Аноним (49), 12:46, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >> нет null, все значения переменных всегда обязательно должны быть определены
    >> Обеспечение безопасности: отсутствие NULL
    > Автор вообще понимает для чего нужен NULL? С базами данных он знаком?

    Автор в процессе.
    [CODE]
    mut m := map[string]int{} // Only maps with string keys are allowed for now  
    m['one'] = 1
    println(m['one']) // ==> "1"  
    println(m['bad_key']) // ==> "0"  
    // TODO: implement a way to check if the key exists
    [/CODE]

     
  • 2.69, Ilya Indigo (ok), 12:48, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • –4 +/
    >> нет null, все значения переменных всегда обязательно должны быть определены
    >> Обеспечение безопасности: отсутствие NULL
    > Автор вообще понимает для чего нужен NULL? С базами данных он знаком?

    JSON не то что NULL, он ничего кроме строк не понимает, но это не помешало ему вытеснить XML и стать самым востребованным форматом передачи данных, включая внутри некоторых СУБД.

     
     
  • 3.92, Аноним (92), 13:34, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > JSON не то что NULL, он ничего кроме строк не понимает

    Это вы явно глупость ляпнули.

     
     
  • 4.119, Ilya Indigo (ok), 15:30, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> JSON не то что NULL, он ничего кроме строк не понимает
    > Это вы явно глупость ляпнули.

    Согласен!
    Полез проверять в JS, работает нормально, в PHP:
    https://www.php.net/manual/ru/function.json-encode.php
    > int $options = 0
    > options
    > Битовая маска, составляемая из значений ... JSON_NUMERIC_CHECK ...

    Это оказывается он в PHP так по умолчанию, через жопу работает, а я думал это так везде.

     
     
  • 5.194, Аноним (186), 23:45, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > в PHP ... через жопу работает

    Кто бы мог подумать...

     
  • 3.104, мяя (?), 14:09, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > JSON не то что NULL, он ничего кроме строк не понимает

    Что за бред? JSON естественно текстовый формат, но null он поддерживает.
    > > let number = 1.1, string = "строка", array = [], object = {}, boolean = true, NULL = null;
    > > let data = [number, string, array, object, boolean, NULL];
    > > JSON.stringify(data);
    > < [1.1,"строка",[],{},true,null]

     
     
  • 4.120, Ilya Indigo (ok), 15:32, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Благодарю за поправку!
    В комментарии выше отписал.
     
  • 2.70, ыы (?), 12:48, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +6 +/
    это будет фича новой версии - автор откроет для себя Null и расскажет об этой классной штуке миру.
     

  • 1.72, Аноним (72), 12:48, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Пишу на html, осваиваю javascript. Подскажите, стоит ли изчуать этот язык?
     
     
  • 2.80, _kp (ok), 13:01, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Осваивайте дальше javascrit, всё равно пригодится. Когда освоите глубоко, посмотрите и другие на актуальные, а не экспериментальные средства разработки.
     
  • 2.175, neanonim (?), 21:59, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Пишу на md, осваиваю json. Подскажите, зачем так жить?
     

  • 1.89, Аноним (89), 13:23, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    >> указано на использование для удаления каталога команды rm через вызов os.system("rm -rf $path"), но автор проекта опроверг данные сообщения и заявил, что они опубликованы троллем и не соответствуют действительности (поиск по коду в GitHub также не находит подобные факты использования os.system).

    Все там было:
    https://github.com/vlang/v/commit/b5c3cda33b53b7eee9c2b4f2be657477968355f2#dif

     
  • 1.101, Аноним (101), 14:04, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    С какой-то демонсрацией этот V.
     
  • 1.107, Аноним (107), 14:17, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    ...около 10 сообщений с демонсрацией низкого качества кода...
     
  • 1.114, Аноним (114), 14:46, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я не буду использовать этот язык скорее всего.
     
     
  • 2.131, Аноним (131), 16:17, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Я тоже, давай дружить.
     

  • 1.124, Аноним (124), 15:51, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Крутой язык, давно ждали, а то Rust совсем упоротый!
     
  • 1.130, Аноним (131), 16:15, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну наконец то их открыли.
     
  • 1.132, Аноним (132), 16:17, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Свелосипедили Golang? Мда. Закапывайте.
     
  • 1.143, bOOster (ok), 17:04, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну прям "святой грааль"!!
     
     
  • 2.165, Аноним (165), 19:48, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    У тебя ещё остались командные заклинания? Тогда ты знаешь, что делать.
     
  • 2.188, Аноним (188), 23:19, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нет, грааль - это GraalVM.
     

  • 1.146, Андрей (??), 17:23, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > и обеспечить возможность "горячей" перезагрузки кода.

    Прям by-design. Наконец-то.

     
  • 1.156, Аноним (156), 18:03, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Есть такой старый дядя Вирт, учебники Паскаля в РФ его продавали. Он пару известных языков, компиляторов и ОС написал. В заключение он сделал два вывода:

    1. Чтобы написать что-то простое надо намного больше таланта и времени чем что-то сложное.

    2. Язык программирования, его компилятор, ОС в которой будут выполнятся проги и процессор надо разрабатывать паралельно одной большой командой. Все 4 компонента должны одновременно проектироватся/подгонятся друг под друга.

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

     
     
  • 2.164, Аноним (162), 19:38, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > 2. Язык программирования, его компилятор, ОС в которой будут выполнятся проги и процессор надо разрабатывать паралельно одной большой командой. Все 4 компонента должны одновременно проектироватся/подгонятся друг под друга.

    Ну и где этот его Оберон?

     
     
  • 3.168, Tita_M (ok), 20:13, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Если бы СССР не распался, то скорее всего взлетел бы.
     
     
  • 4.171, Аноним (162), 21:03, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Неа. Практика показывает прямо противоположное: самый успешно взлетевший язык — сишечка, и именно по той причине, что не имеет привязки ни к архитектуре, ни к ОС.
     
     
  • 5.197, Аноним (198), 05:11, 25/06/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >не имеет привязки ... к ОС

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

    Именно потому, что Юникс выстрелил, сишка и выстрелила

     
     
  • 6.209, пох. (?), 11:06, 25/06/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    для тех кто опоздал родиться а книжек нечитатель - оригинальный был на asm pdp9.
    А сишечка была в нем для одной полу-игрушки, space travel, которую немножко заманались кросскомпилять на соседней 11 в обеденный перерыв у соседей, которым она принадлежала. Саму систему на ней переписали сильно позже, и на другой железке, pdp9 не осилила бы.

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

     
  • 3.233, Аноним (233), 16:12, 26/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Оберон это давно пройденный вариант.

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

     

  • 1.167, Retrosharer (?), 19:55, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Уже ведь есть FPC + Lazarus.
    К слову - находящийся на стадии, когда 90% времени тратится на доводку 10% недостающего функционала.
     
  • 1.170, Griggorii_chromium_os_77_git (?), 20:48, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Пишите кто что тяжёлое компилировал гигов так в пятьдесят , то за сколько собралось ? Ну и железо какое.
     
  • 1.173, Аноним (173), 21:23, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Отличный язык. Мне нра.
     
  • 1.183, Аноним (198), 22:37, 24/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    тем временем автора хацкнули через дырки в его языке и окружении: https://christine.website/blog/OVE-20190623-0001
     
     
  • 2.193, пох. (?), 23:32, 24/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > тем временем автора хацкнули через дырки в его языке и окружении: https://christine.website/blog/OVE-20190623-0001

    ниоткрываетца.

    кажется, чувак не сдаст свой курсовик в срок.

     
     
  • 3.203, Andrey Mitrofanov_N0 (??), 09:14, 25/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> тем временем автора хацкнули через дырки в его языке и окружении: OVE-20190623-0001
    > ниоткрываетца.
    > кажется, чувак не сдаст свой курсовик в срок.

    Чегой-та?  Раздел "работа на будущее", или как там его, с настоящим CVE- будел смотреться даже _лучше_, солиднее и настоящее.

     

  • 1.204, DIO (?), 09:15, 25/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    был правильный и хороший язык - FORTH но милионы мух не могут ... и если бы его развитие... а пролог...
    понастальгировали :)
     
     
  • 2.207, Аноним (206), 10:46, 25/06/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    FORTH это такой LISP наоборот?
     
  • 2.210, пох. (?), 11:08, 25/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    эмм... язык-то конечно был хороший, но дурдом и так переполнен - а вы еще хотите добавить туда поехавших на почве программирования на форте и прологе ;-)

     

  • 1.217, arisu (ok), 13:32, 25/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    очередной автор не понял, зачем нужна избыточность, и радостно избавился от терминатора. молодец, люблю таких: сразу ясно, что глубже изучать смысла нет.
     
     
  • 2.228, kostyarin (ok), 18:32, 25/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Его звали Джон Конор.
     

  • 1.229, Аноним (229), 19:21, 25/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Необходимо создать языки y и z для полной совместимости)
     
  • 1.234, Какаянахренразница (ok), 20:20, 30/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    В общем и целом, его довольно бодренько пилят. Всё ещё неюзабельно (я не могу собрать на нём кастомный модуль), но с каждым днём всё ближе к цели.
     
  • 1.236, Аноним (236), 15:05, 03/07/2019 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • +/
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

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