После двух месяцев разработки опубликована новая версия статически типизированного языка программирования V (vlang). Основными целями при создании V были простота изучения и использования, высокая читаемость, быстрая компиляция, повышенная безопасность, эффективная разработка, кроссплатформенное использование, улучшенное взаимодействие с языком C, лучшая обработка ошибок, современные возможности и более удобное сопровождение программ. Проект также развивает свою графическую библиотеку и пакетный менеджер. Код компилятора, библиотек и сопутствующих инструментов открыт под лицензией MIT...Подробнее: https://www.opennet.me/opennews/art.shtml?num=60410
>Добавлены флаги "r" и "R" повтора строк, например "'${"abc":3r}' == 'abcabcabc'"О да, самое необходимое и востребованное. Кстати, в питоне можно любые модификаторы прикрутить к строкам, а тут приходится флаги в язык добавлять.
Смысл сравнивать языки с динамической и статической типизацией? Это два взаимодополняющих мира. Тут строка дублируется до компиляции. В Python все модификаторы применяются в рантайме и жрут время при каждом запуске.
Ну, смысл в наглядной демонстрации, зачем ООП (привет ржавчине), и напомнить, почему питон популярен. Не вижу препятствий ни в типе типизации (при чём она тут вообще), ни в компилируемости (питон, между прочим, тоже можно скомпилировать). Надеюсь, не надо объяснять, каким боком ржавчина относится к сабжу?
А зачем ООП?
> А зачем ООП?ООП позволяет без особых затрат и затруднений переопределять стандартное поведение на уровне "объектов", без необходимости переписывать и переусложнять основную кодовую базу вот подобным.
Вот только ООП всегда менее эффективно исполняется, чем лапшакод, потому мы никогда не увидим C++ в ядре линуха.
В ядре куча ООП, о чём ты? Дело тут не в эффективности (она ничуть не уступает в общем случае), а в плохой предсказуемости и перегруженном стандарте с кучей неочевидных возможностей что-нибудь отстрелить.
жаба уже вовсю летит на мусорку, ибо идёт котлин
Как-то очень медленно он идёт.
> Как-то очень медленно он идёт.Всё же быстрее жабы. Касается это и приложений для андройдофонов и даже серваков со свежезапиленным функционалом
Проблема жабы в том, что она, при всей всей своей монструозной гипертрофированности, предлагала слишком малоеА ведь когд-то её всерьёз считали универсальным языком будущего для любого железа
>> Как-то очень медленно он идёт.
> Всё же быстрее жабы.https://github.blog/wp-content/uploads/2023/11/github-top-10...
За 10 лет Жаба съехала со 2 на 4 место.
Котлин где?https://github.blog/wp-content/uploads/2023/11/github-top-la...
Ну чуть-чуть больше Жабы, но меньше shell и с++, а до раста как до луны. 😏
Это вообще-то график не популярности, а только лишь количества новичков. В авторитетном рейтинге TIOBE Котлин уже давно обогнал Раст и прет дальше. Раст кстати теряет свои позиции, впервые такое вижу.
"В авторитетном рейтинге TIOBE ..."🤣🤣🤣
https://opennet.ru/60427-tiobe
Кого там Котлин обогнал? 😏
> В ядре куча ООППокажи код ядра где есть этот ООП.
Ну вообще-то, некоторая пародия на ООП есть. Посмотри на сишные структуры в ядре. Они там и с данными (поля), и с указателями на функции (методы) - инкапсуляция.
> Ну вообще-то, некоторая пародия на ООП есть. Посмотри на сишные структуры в
> ядре. Они там и с данными (поля), и с указателями на
> функции (методы) - инкапсуляция.А... "закат солнца вручную" 😏
Ладно, принимается, Вирт в своей "Oberon System" так же делал.
Вот и ипись с лапшакодом сам. А эффективность - да кого волнует твой четвёртый Пень?
ООП исполняется так, как напишешь.Если на Си ООП задачу переписать на "лапшу", то будет примерно одинаково по быстродействию.
А если писать в параноидальном стиле "ООП ради ООП", то тогда конечно. Разница в том, что чистый Си не даст легко, без раздутия исходника, переуложнить программу излишествами, а С++ и подобные позволит, и легко, и автоматизирует и оптимизирует рутинную работу.Итого, если инструмент "позволяет прострелить ногу", то он сразу типа плохой. ;)
Инструмент позволяет прострелить ногу, но перед этим вывалит столько варнингов, что уже и не захочешь.
> Инструмент позволяет прострелить ногу, но перед этим вывалит столько варнингов, что уже
> и не захочешь.Ну не знаю, где Вы вагоны варнингов берёте.
У нас крайне не одобряется выкладывать в репозиторий проекты и с одним варнигом.Может быть стуация, когда исходник в одном стандарте языка иначально написан, и его собирают в другом стандарте, вопреки указанным параметрам в проекте и мэйкфайле.
Ну, так, это уже переделка проекта.
И раз начали, исправляйте, что б не было предупреждений.
Вы, должно быть, не видели что вытворяют с макросами на Си в попытках изобразить ООП или STL. В негативном смысле, разумеется. Бедность ЯП мотивирует делать код ещё хуже, чем в ЯП с сахароидами.
о, типичный иксперд опеннет. ядра как раз в основном на крестах и пишут
Иксрерт, Линус то в курсе?
... А Си это просто такой ассемблер
Что-то типа .sort() и sorted()?
> питон, между прочим, тоже можно скомпилироватьТолько строки отформатируются всё равно в рантайме.
Bash уже через это проходил и кончилось плохо. На ограниченность и крип(т)овость синтаксиса variable expension, например, смотреть страшно. С другой стороны, там обратная совместимость, что напридумал - взад не воротишь. А автор "языка победы" может ломать синтаксис хоть каждый день, всё равно полковнику^W на нём никто не пишет.
Bash - это язык исключительно для погромистов. Нормальный человек на нем и в страшном сне писать не станет.
Как прораммист (тм) скажу, что на баше что-то сложнее нескольких строк пишут только чудаки. А 'нормальный' человек как раз и берётся писать на всяких помоях т.к. на нормальных ЯП писать не может и кажется что помои как раз что нужно, а всё остальное для яйцеголовых.
А в питон приходится добавлять язык программирования
> Возобновилась разработка простой операционной системы на V - vinix.Но зачем ?
потомучтамагем.
А ты нимагешь на своей игогошечке.
Ну ты же понимаешь, что гошечка для другого ?
>потомучтамагем.етопраильно!
>А ты нимагешь на своей игогошечке.Он - может и немагёт, а так на github-е имеются 8-| ....
А я чо? Я сама офигела! (С) :)
Потому что написать свою операционку - это круто.
Даже если она никому не будет нужна.Это дает кучу опыта, приходится разбираться с море новой информации.
А это интересно (как хобби) и может быть полезно для саморазвития.
Ну и (если сильно повезет) может стать аргументом при рассмотрении твоей вакансии.
Пилите, Шура, пилите, оно полезно для резюме...
Затем же, зачем пишут Ресдох.
V — значит vlang.
Z -- значит zig.
осталось О - "дырка отбублика"-lang
Добавлена поддержка азиатских кодировок - Vasian
а zlang есть?
конечно есть чек zig
Нужно запилить Фау (хотя V можно читать и так) и Зиг.
Специально для немцев запилить язык V2 :)
Так какой бляха язык то учить? Только java начал читать, а тут со всех сторон налетели. Такое ощущение, что каждые N лет, группа вчерашних студентов считает своим долгом создать новый язык
Java и продолжай
Только если для зарплаты в банковской сфере.
Вангую этого ИТТ эксперта по Компьютерным Ай-Ти Технологиям
> Так какой бляха язык то учить? Только java начал читать, а тут
> со всех сторон налетели. Такое ощущение, что каждые N лет, группа
> вчерашних студентов считает своим долгом создать новый языкWelcome to real world!
Scheme
Все. Но V пока не стоит, это экзотика.
учить java в 2023?
А что вместо?
1c!
Все зависит от проекта, куда переходить - того же легаси кода на java и близком к нему C# написано миллионы строк.
>JavaЕсли тебе для зарплаты, то все правильно делаешь. Потом перекатишься на Котлин.
> Такое ощущение, что каждые N лет, группа вчерашних студентов считает своим долгом создать новый языкТак всегда было)
А некоторые начинают еще в университете.
Этим счастливчикам дают курсовую типа "написать новый ЯП и лексический анализатор к нему"
> Основными целями при создании V были простота изучения и использования, высокая читаемость, быстрая компиляция, повышенная безопасность, эффективная разработка, кроссплатформенное использование...Но что-то пошло не так )
А что пошло не так? Язык прост, безопасен, совместим с Си в отличии от других. Все хорошо.
Во всех новостях про V полезно писать, что в нем отключаемый сборщик мусора (GC). Т.е. перед написанием кода нужно решить, будешь ли ты использовать GC или нет (ну, или сразу писать два варианта кода GC и noGC). И после этого использовать только подходящие библиотеки. Ну, или, возможно, у них семантика языка такова, что код с GC и без не различается и тогда удобство GC не используется ваще никак.Короче, очередной экспериментальный язык программирования, который никогда не станет популярным, а потому тратить на него время - просто терять его.
Поддерживаю, пробовал компилить демки - ничего не собирается, всё время breaking change.Пару лет слежу, ничего не меняется.
Цель языка - собирать донаты автору.
> отключаемый сборщик мусораОпыт D ничему не научил, и эти тоже не смогли определиться для чего им нужен язык. Решили ещё раз попробовать отлить серебряную пулю.
А что D? Если не использовать Фобос, то точно можно и без GC вообще. Допустим, кто-то сделает аналог Фобоса, но с ручным управлением.
D нормальный язык. Пруфов не дам, но лично мне - по нраву. Накидать что-то небольшое и по-быстрому - вполне возможно и это будет не питон.
Однако ж, именно c GC-noGC, как по мне, проблема выбора, его включение/отключение - нетривиальна. Но я и не великий программист.
А ты очередной закапыватель.
Мне больше понравилась обработка ошибок в ржавом - функция возвращает перечисление, которое результат или ошибка.
Ну так можно и в других языках сделать.
В других так и делают. Ещё в других ЯП обычно можно кинуть исключение, здесь же приходится прокидывать ошибку через кучу ручных if-ов из глубин ада наверх.
Кидать исключение - это самый смачный говнокод.
Почему?
Потому что гладиолус :)
Ну во вторых потому что это медленно.
Так же, это может быть не перехвачено и вылезти когда не надо или приложение просто закроется с непонятным сообщение или без.
Вообще exception говорит о том что произошла чрезвычайная ситуация которой быть не должно - смотря что вы пишете, в играх такие фокусы недопустимы например.
Любители кидать исключения без параметров это про студентов - нашли в коде - уволили/выпороли/посадили на кол - опционально.
Явный возврат ошибки через expected или неопределенное значение через optional или просто кортеж с параметрами - самое удобное для пользователей вашего кода.
Довольно адский случай который я видел - в boost - алгоритм A* возвращал результат через исключение :)
Конечно. Но ни в чужом коде, ни в примерах я такого приёма не замечал.
Типичные простые сценарии, например, в c/c++ это ptr или nullptr, value или max<type>() или -1. Это, конечно, всё имеет значение только в строго типизированных ЯП. В общем, мало смотришь кода
Я про использование match case в проверке значения, а не варианты значений.
match-case это обычный if-elif блолк, только в другой форме
Так то оно так, но в питон match case завезли только в 3.10. Видимо это не просто if-elif блок.
Фактически просто и есть. В питон этот хлам завезли дрочеры на функциональщиу, польза от него негативная. Вместо нужно было добавить только простые матчеры для if выражений вида { x in A | B | C }, и то они не особо нужны. Дали хипсто гогнокодерам отличный инструмент писать криптокод. В питон давно тащят бесполезный мусор, например, аннотации. Теперь любой джуниор, начитавшить помоев с рекламками PЕP-ов, простую ф-ю на строк 20 делит на кучу однострочных функций с аннотированными типами, интерфейсами ровно с одной реализацией и ещё раскидывает всё это добро по куче файлов.
Вообще удобно, когда понимаешь что возвращает функция - словарь, список или объект какой-то.
Монада Optional - это сейчас во многих языках
Optional это не совсем то. Для нормальных ошибок нужна монада Either.
optional - это когда результат не гарантирован это не про ошибки, например std::expected в С++ 23 - это оно (раньше использовали boost::expected)
Ёлки, этосчитается читаемым?
По сравнению с Растом?
"Это" на 80% похоже на Go, а в отношении его никто не жалуется. Тем более в V пофиксили лапшу с проверками на ошибку.
Тогда сразу лучше взать Go, который хотя бы взлетел и поддерживается баблом. В отношении Go не жалуются потому что можно же его просто обойти стороной и не трогать. Так-то он тоже уродец.
Можно конечно, но суть V как я понял в том что он больше похож на Си, лучше с ним взаимодействует и убрали некоторые недостатки Go. Гошникам перейти на него дело пары дней. В любом случае альтернатива это хорошо.
> Добавлены флаги "r" и "R" повтора строк, например "'${"abc":3r}' == 'abcabcabc'"Фича наглядно показывает, насколько там всё ужасно с проектированием языка. Больше похоже на полигон для тестов, а не на язык
Да, классная фича в смысле показательности: если видишь её в языке, можно сразу закапывать.
Вот на сайте V упоминается "Easy cross compilation". Как там с компиляцией для микроконтроллеров?
Там же написано что кросс-компиляция пока только между Linux и Winodows, что уже неплохо.
Такую фичу обычно называют bare-bones, голое железо, а не кросс-компиляция, которая, позволяет из одной системы в другую.Но этот "Easy" всё равно маркетингом попахивает.
Язык интересный и шансы на успех имеет, популярность растет стабильно. Но эксперименты с мудреным синтаксисом осуждаю, а то того и глядишь превратится во второй Раст.
Эксперименты - это хорошо.
Язык и правда прекрасный, главное со статической типизацией. Вторым растом определенно не станет, тут концепция другая да и несколько иная направленность.
Изучается до нюансов при условии владения С или чем то С-подобным за пару недель, если было знакомство с Go то это еще проще.
Подкупает простота и технологичность установки, компактность, независимость от доступа к инету для установки пакетов и возможность выбирать компилятор (или не выбирать - там приемлемый из коробки уже) - я планирую писать на нем скрипты для администрирования/развертывания.
Минусы - нет нормального визуального отладчика - в Intelij IDEA Community не поддерживается, в VS Code тоже нет
> независимость от доступа к инету для установки пакетовТо есть V ставит пакеты телепатией?
Пакеты можно поставить простым переписыванием папки в папку v/libs с пакетами, это удобно если нет инета например.
А в других языках так нельзя что ли?
Ну скачай, разберись, статейки пачитай, расскажешь нам как что, или только дурацкие вопросы спрашивать умеешь?
Знаю, что такое TOTP и HOTP. Гуглю, что такое POPT. Нахожу верный ответ:P.O.T.P
Power. Of. The. Pussy.
She has a useful tool between her legs and knows how to use it to get what She wants. A sexually confident woman.
видимо очепятка
Персонализированныеванная выдача в действии
Запилю в следующем проекте совместимость с этим как фичу.
Язык хорош - учится легко.
Простой и понятный синтаксис.
Много всяких библиотек уже написано. Бери и делай - что нужно.
А главное - великолепнейший басфактор, обеспечивающий как стабильность на работе, так и повод накинуть зп!
Вообще не показатель. Мне кажется главное в языке - результат в машинном формате. А по простому и понятному синтаксису пока побеждает Питон.
Самый крутой машинный код - у ассемблера.