Крис Латнер (Chris Lattner), основатель и главный архитектор LLVM, а также создатель языка программирования Swift, и Тим Дэвис (Tim Davis), бывший руководитель AI-проектов Google, таких как Tensorflow и JAX, представили новый язык программирования Mojo, сочетающий простоту применения для исследовательских разработок и быстрого создания прототипов с пригодностью для формирования высокопроизводительных конечных продуктов. Первое достигается благодаря использованию привычного синтаксиса языка Python, а второе за счёт возможности компиляции в машинный код, механизмов безопасной работы с памятью и задействованию средств для аппаратного ускорения вычислений...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=59094
>Интересной особенностью Mojo является возможность указания emoji-символа "🔥" в качестве расширения для файлов с кодом (например, "helloworld.🔥"), помимо текстового расширения ".mojo".Епанный стыд, хочу фейспалм в качестве расширения
У меня на клаве даже шоткат сделан на смайл "фэйспалм" - НАСТОЛЬКО часто приходится сталкиваться с му%%%дазвонами.
Луддиты! Нужно общаться жестами, учиться читать и писать, изучать языки не нужно. Клавиатура занимает много места на экране смартфона, когда можно просто считать гримассу и определить импульсивно-компульсивны
Всмысле? Есть же уже язык для безопасной работы - это Карбон.
А безопасен он тем, что им никто не пользуется? Поддерживаю - безопаснее некуда
Эльбрус момент.
Зря заминусили. На эльбрусы портировать компиляторы та ещё задачка.
ага, нужно ворд и эксель знать, чтобы красивый отчётик о попиле запилить
Mojo тоже никто не пользуется его даже нельзя скачать. В отличии от того же Карбона, который хоть как-то, но скачать и что-то собрать можно.
Нужно больше языков богу языков.
Это питон с сахаром. Как TypeScript для JS, Kotlin для Java
Да, вот чего в питоне не хватает, так это сахара. Он и так уже приторный, аж блевать тянет.
просто ты его абсолютно не знаешь
Это ты зря. Сахарок в виде генераторов, итераторов и лямбда-функций позволяет создавать изящные однострочники. Например, создание матриц (точнее, двухмерных списков), сортировка сложных объектов по ключам, заданных как лябмда-функция. Итераторы так вообще must-have для глубокого понимания работ структур данных.
Однострочники хороши только в терминале. В настоящем программировании их используют только студенты, показать как я могу.
Однострочники читабельность повышают. Они позволяют сделать в одну строку функцию, которая в ином случае разбивалась бы на три и была бы слишком многословной.
Я на питоне профессионально пишу более 10 лет. В топку однострочники, метакалассы и прочую сахаристую магию.
Не повышают.> в одну строку функцию, которая в ином случае разбивалась бы на три и
Три строчки - это много?
Сложность понимания кода складывается из количества условий и операций, а количество строк начинает мешать только если их больше экрана (я не сам придумал, Макконелла почитайте).
>была бы слишком многословнойБыла бы менее красивенькой. Но надежный и простой для понимания код не всегда самый красивенький.
Когда у тебя вся программа состоит из функций, то логичнее организовать функции в некоторые блоки.
lambda: [do_one(), do_two()][1] - это изящно?
Не продали. По сути это Питон с классами или С++ с синтаксисом питона. Зато можно эмодзи в расширение.
>Питон с классамиМасло масляное. У самого обычного Питона классы и так есть.
Chris Lattner и есть бог языков, два его прошлых проекта LLVM и Swift уже стали знаковыми, и Mojo тоже взлетит. А про ".🔥" - это он троллит современное сообщество так, чувак с чувством юмора.
Swift вне apple не взлетел.
не то, что твои языки, да?
Дак и не планировалось.
Планировалось. Его открыли с помпой в стиле аппл. Презентация была, красивые графики и крутые числа.Но люди не поняли
Где? Я ни разу такого бреда не слышал.Он, как и obj-c,сделан для эпла-продукции и активно юзается в продакшене.
Есть какие-то псевдопотуги, года с 2019, но в целом эплу видеть Свифт на винде не особо-то и хочется.
Именно потому что не планировалось, яблоко для него даже отдельный сайт завело - swift.org ?)С которого, кстати, можно скачать инструментарий и для линя и для винды
Просто не взлетел. На несколько лет назад его очень активно даже блохиры во всяких дзенах пиарили. Мол, и быстрый и удобный и простой - ну чем не ЯП будущего
Он просто не был в полной мере открытый на момент релиза.
Т.е сам язык да, даже сборочку для убунты сделали, но foundation был очень порезанный, забагованный и сильно отставал от оригинала для macos.
Относительно недавно они решили начать открывать foundation.
Но думаю он все равно останется нишевым языком.
> в 35 тысяч раз быстрее приложения на Pythonа NodeJS? огласите пожалуйста сразу
Вопрос, который надо задавать, это во сколько миллионов раз медленней питона оно на самом деле. Задвигать про компиляцию в машинный код можно только дошкольникам.
Нода на самом деле не такая уж и медленная, там в основном асинхронщина, и если не считать факториалы, то работать все будет приемлемо.
Python для быстрого создания прототипов отлично подходит и ничто больше ненужно!
Для скриптинга его диалекты (GDScript) тоже отлично подходят.
Вообще-то gdscript довольно далёк от питона, gscript4 несколько напоминает базовый питон, но он скорее как lua и только обёртка над объектами движка афаик. Незнаю, какой ты там скриптинг собрался с подобным делать.
Так это язык не для прототипов, а для конечного продукта. Но если сегодня для конечного продукта используется С++ то с этим языком можно будет минимально изменять прототип поскольку язык похож на Python.
Проще делать сразу на mojo.
для этого уже есть nim, эти хипсторы лучше не сделают
Для создания прототипов отлично подходит и PHP.
php - убожество by design
обязательно обоснуй тезисами 20-летней давности
Обосную тезисами 0-летней давности:
* FPM не умеет в graceful reload до сих пор, поэтому на выбор есть два вкуса субстанции: ждать завершения подключений до талого, или убивать мастера. Заменять мастера как nginx оно не умеет.
* Запуск подпроцессов сделан из рук вон плохо — на линуксе есть хотя бы select, который позволяет нормально читать и писать по пайпам, на винде же — везде велосипеды и костыли (рекомендую посмотреть в symfony/process, но не на ночь).
* Баги в OpCache живут вечно — падение из-за побитого стека при opcache.fast_shutdown=1 как происходило на 5.3, так и проявляется на 8.2.
* Запуск персистентных процессов с ReactPHP приводит к очень интересным проблемам. Например, подключение к MySQL через PDO невозможно инвалидировать, только удалить через GC, когда счётчик ссылок упадёт до нуля. В итоге приходится любоваться ошибками, связанными с тем, что соединение отключилось по тайм-ауту.
* Переход с 7.4 на 8.2 вызвал много проблем тем, что передача null в функции, которые хотят string, теперь deprecated. На самом деле проблем при переходе было ещё больше.
* Генераторы как текли при их появлении, так и текут до сих пор.
* array_map, array_filter и array_reduce не принимают iterable, в итоге передача в них генераторов вызывает падение с TypeError.
* Все классы находятся в одном глобальном пространстве by design, поэтому был придуман костыль с неймспейсами, который не решает проблему модульности. Более того — все анонимные классы на самом деле имеют имя внутри глобального неймспейса, которое генерируется в рантайме.На самом деле проблем больше, но комьюнити их героически решает по мере поступления. Те же PSR-7 и PSR-15 как пример — это вообще должно было быть частью ядра языка, а никак не нашлепкой сбоку.
>на винде же — везде велосипеды и костылиШо-то мне подсказывает,шо для похапе шиндовс - далеко не основная ОС, поведение и производительность под оной малоинтересна в принципе.
Неужели еще остались такие извращенцы?
PHP8 - уже сравнивое с пЫхроном убожество. И все они - сорта ...(С)
Ну так и не нужно отдельного языка для прототипов. Не 90-е на дворе. Достаточно нормальных языков, чтобы писать прототип сразу, из которого хоть что-то переиспользовать по коду, а не просто выбросить всё и переписать.
s/Python/Go/g
что там с мультипотоком? если все как в python, то закапывайте сразу.
> что там с мультипотоком?Его для этого похоже и придумали.
> Mojo leverages MLIR, which enables Mojo developers to take advantage of vectors, threads, and AI hardware units.
Тссс, ты что, хочешь чтобы комментатор читать начал что написано?
Расскажите нам где вы используете мультикор в своей повседневной работе.
велкам ту процессинг любых данных, где асинхронность и мультипоток питона бесполезны практически полностью, только если использовать несколько процессов, что добавляет головной боли. а лезть во внутринности либ на с++ и джаве энтузиазма не добавляет.
>Интересной особенностью Mojo является возможность указания emoji-символа "🔥" в качестве расширения для файлов с кодомОчередные нескучные обои. Лишь бы хайпануть. Только эти обои вредоносные. Неудобно руками эмодзи набирать.
> Неудобно руками эмодзи набирать.Возможно чувака реально задолбали хипстеры и он решил отыграться по полной, посмотреть как они будут в поиске потом пыжиться. Особенно на другом компьютере.
Кого-то не устраивало название "Ржавчина"... Теперь встречаем - язык с оригинальным названием "Моё"!
А имя основного файла программы надо сделать jo.mojo
🔥.🔥
Типичный опеннет это как-то так:
(|)
🔥
Уж никак, ржавОму появилась-таки безопасная конкуренция ?)> Так как синтаксис Mojo основан на языке Python,
> а система типов близка к C/C++Хотя и сомнительная. Всё худшее в кучу сгребли
> а также в 35 тысяч раз быстрее
> CPython 3.10.9 (0.03 сек. против 1027 сек.)
> и в 1500 раз быстрее при
> использовании PYPY (0.03 сек. против 46.1 сек.)Может кто из питонистов объяснить столь монструозные тормоза ?
Ведь сильно тяжёлое на питоне вроде бы в подобия нативных модулей выносят
Смотря что за тесты. Для питона есть математические и прочие вычислительные библиотеки, видимо на этот раз их решили не задействовать чтоб результаты теста были в пользу моджо.
так эти библиотеки не на питоне написаны, суть тестов именно в проверке языка, а не библиотек на C++
Да суть таже. Смотря как тестировать. Это из разаряда Redis/Memcached. Если тестить в один поток - результат один, если во много - результат другой и т.д. Как говорится, важно не что тестируется, а кто тестирует. В данном случае - методика.
> Смотря что за тесты. Для питона есть математические и прочие вычислительные библиотеки,Писаные на си. Ну так, небольшой нюанс, если цель была перфоманс померять.
Zig прямой конкурент С/С++/Rust.
Самобытный язык.Выглядит получше всего на чём я программировал, для системного программирования конкурентов нет.
Тоже сначала про zig вспомнил. Но там на сайте проекта видно, что они ориентируются в первую очередь на бигдейта и машинлёрнинг. Так что не конкуренты.
то есть, не ориентируются совсем, главное бабла срубить
Кстати,неплохие отрасли, в том плане, что для них всё равно требуется оптимизированная технология. Zig подходит под это дело.
> Кстати,неплохие отрасли, в том плане, что для них всё равно требуется оптимизированная
> технология. Zig подходит под это дело.У него прикольно придумано с "препроцессингом" (предвычислениями) на прямо том же самом яп. Если подумать то отдельный ЯП/синтаксис для препроцессора/макросов это малость криво. Одинаковые конструкции и там и там изящнее.
Пока что сырой и медленноватый по сравнению с сями/растом
Импорт в питоне модет быть весьма неторопливым, особенно при самой первой загрузке когда он байткод компилит. В следующий раз подхватится этот байткод, но импорт все равно будет тормозить на больших библиотеках (будет вме инициализироваться и тд). Типичний приемчик когда язык компилируемый сравнивается с языком с динамической прогрузкой.
> Может кто из питонистов объяснить столь монструозные тормоза ?
> Ведь сильно тяжёлое на питоне вроде бы в подобия нативных модулей выносятОдноразовый запуск (байткод, импорты), нативная математика, вместо munpy/pandas/etc, многопоточность, которая, по сути, однопоток.
> интерпретации с использованием JITА сборка интерпретатора без JIT будет возможна?
ЗЫ: недолюбливаю LLVM.
А зачем тебе интерпретатор кроме как для line-by-line дебага? Тут код компилируется в LLVM MLIR(https://mlir.llvm.org/), который на клиенте векторизируется и оптимизируется под клиентскую архитектуру.
Вот вот.
Наверно, затем, что жит == это весьма специфическая штука, не приносящая типичному коду ровно никакой выгоды, зато создающая кучу проблем. Векторизация это охорошо, но даже в программах авторы которых активно топят за компиляцию шлангом и используют шлангоспецифические костыли, гцц в итоге рвёт этот шланг и по размеру файла и по производительности (с пго и лто).
Проблема только в том, что есть куча софта, которые собирается шланогом и ненормально Г(цц)
> Интересной особенностью Mojo является возможность указания emoji-символа "🔥" в качестве расширения для файлов с кодом (например, "helloworld.🔥"), помимо текстового расширения ".mojo".Дальше не читал. Но компилируемый C++ с синтаксисом и хотя бы синтакстческим удобством питона зашёл бы.
Crystal
Это ruby. Nim тогда уж.
Это же Ruby like.
Какие нежные онанимы пошли, эмодзик их напугал. При этом дальше в тексте новости написано практически дословно про> компилируемый C++ с синтаксисом и хотя бы синтакстческим удобством питона
Пришла делегация анонимов на производство, и начала дискуссии, какого цвета должен быть забор.
>привычного синтаксиса языка Pythonкуда катится мир ....
В любой непонятной ситуации переписывай раст на паскале
Всегда так делаю.
> В любой непонятной ситуации переписывай раст на паскалеНо потом то будет контратака: паскаль на расте. Как тебе такое, Элон Маск?!
Раст на Паскале? Так эта, так Раст можно и на Эльбрус запилить :)
406 Not Acceptable
openrestyps: не нужно
Он пока еще пропреитарный
> благодаря использованию привычного синтаксиса языка PythonДальше можно не читать. Сразу аафигенный такой гвоздь в крышку гроба. "Новый" язык.. тьфу!
> Интересной особенностью Mojo является возможность указания emoji-символа "🔥" в качестве расширения для файлов с кодом (например, "helloworld.🔥"), помимо текстового расширения ".mojo".В голове авторов явно мусор.
Это называется прорывные технологии, а если технология стреляет то это ещё называется гениальность.
Скорее это называется банальный троллинг
Точнее, смузитоксикоз:)
> Точнее, смузитоксикоз:)Болезнь 21 века.
Это можно было бы счесть за троллинг, если оно писало вывод компилятора в файл с расширением 💩.
А вот это норм расширение для логов
> Это называется прорывные технологии,Прорывы разные бывают, и не все из них вкусно пахнут.
Ну все теперь в любой теме про Питон можно писать что пора переписывать на Mojo.
При всём при этом, основатели компании денег могут и поднабрать. Сейчас инвесторы очень активно вкладываются туда где AI, питон и "новое поколение основанных на питон языков".
Пузырь доткомов v.3.0.
Любители "пассивного дохода" должны страдать.
> При всём при этом, основатели компании денег могут и поднабрать. Сейчас инвесторы
> очень активно вкладываются туда где AI, питон и "новое поколение основанных
> на питон языков".Как с этим храбрым заявлением согласуются вон те увольнения среди практически всех грандов?
Судя по описанию, это другой способ реализации подхода, используемого в Cython.
> возможность указания emoji-символа "🔥" в качестве расширения для файлов с кодомНу всё, надо брать. А смузи в подарок сразу дают, или по подписке?
Так то тебе и Mojo не дают если лицом не вышел. Поэтому пока там инвайты можно на код для питона точно такое же расширение сделать и радоваться жизни.
Ахаха оно оказывается ещё и по приглашением. Т.е. что проверить все эти ускорения надо получить инвайт? Я считаю это топово. У нас есть супер продукт но попробовать мы его вам не дадим даже за деньги.
> Ахаха оно оказывается ещё и по приглашением. Т.е. что проверить все эти
> ускорения надо получить инвайт? Я считаю это топово. У нас есть
> супер продукт но попробовать мы его вам не дадим даже за
> деньги.Норм. Нужно еще на сайт хвалебных отзывов добавить с улыбающимися лицами, которые уже попробовали.
>преподносится как язык общего назначения, расширяющий возможности языка Python средствами системного программированияТеперь Redox можно переписывать на Mojo. Ну а чё, kernel.🔥 круто же.
Просто Агонь :)
Нужно сравнение с nim, у которого фичей явно больше.
А для использования в AI надо сравнивать с Julia. Питон содержит очень пухлые библиотеки всего чего только можно, но с неродной реализацией. И вот совсем не факт, что если переписать это как есть на Mojo, то производительность сравнится с Julia, где библиотечные реализации изначально свои. И уйти от питонячьих API авторам Mojo не получится. Иначе убьют единственное достоинство - частичную синтаксическую совместимость.
Давно пора уже сделать язык для создания языков а то как-то мало языков
уже есть, лет так 30 уже - это Lexx/Yacc :)
Горшочек не вари..
Racket Scheme.
OCaml, вроде, может в такое. Но это неточно.
"fn", "struc" - похоже для безопасности они просто туда засунули Rust))emoji-символа "🔥" - а кому это нужно?? такое ощущение, что из нас все больше лепят эмоциональных инфантилов.
Ты так пишешь как-будто это что-то плохое. По твоему все должны быть угрюмыми стариками и ходить строем?
Больше вопросов с тем, как открыть файл с таким именем из терминала. Я даже затрудняюсь сказать, работает у меня терминал с эмоджи или нет.
tab с автокомплитом поможет
Я щетаю, что надо и часть синтаксиса того🔢📌Val1👈5
🔢💪🏾myFn(🔢Val)
☑️isVal1
🔢🧻Result
❓Val👈Val1✔️isVal1=♥️
Result👈isVal1❔Val✖️2🔴Val
🤟Result
🔚
Мы пришлём счёт за ремонт глаз.
> Мы пришлём счёт за ремонт глаз.Вы охренели? Это же готовый переводчик с древнеегипетского! Ща он вам декодирует знание древних. Он эту программу небось из бортового компьютера goa'uld'ов с314л. Area 51 ждет его. Если вы не поняли о чем это, вы просто не смотрели Stargate. Там подобных программ - было, так что он немного сбаянил.
Отстаем... оно уже и сейчас можноhttps://devblogs.microsoft.com/wp-content/uploads/sites/33/2...
Я как-то проверял поддержку имён переменных Emoji в C++.
С g++ не работало ❌
А с clang – да ✅
а сейчас как? 🤨
а в каком стандарте завезли поддержку юникода в идентификаторах С++ ?
> из нас все больше лепят эмоциональных инфантилов.А постоянные бугурты тут в комментах это не оно же? Но ведь этому уже более десятка лет.
вы нипанимаете! эта другое!!111
Ждём когда мэ-и-жо добавят в кернел и прилепят к гцц. Будут ли срачи мэ-и-жо вс. сраст?
Нет выбор уже будет понятен когда Mojo победит всех по всем статьям.
Так переможем!
Зная что из себя представляет llvm изнутри, представляю какой помойкой будет его язык.
> Зная что из себя представляет llvm изнутри, представляю какой помойкой будет его
> язык.Что представляет llvm изнутри? Не тролинга ради, его многие хвалят.
Как-бы если ты не курсе, то в двух словах, с точки зрения того что входит в кодовую базу - спагетти умноженное на 18.
Документация - около нулевая, диаграммы - будто пятилетка рисовал (понятно, что автоматические, но тем не менее). Мы его используем, потому что простые вещи позволяет относительно быстро сделать. Но штуки с оптимизацией связанные...это жесть. Будем от него избавляться.
А какие альтернативы? GCC? Судя по тому как часто там впиливают новые языки, все еще хуже.
И правда интересная инфа, есть ли критические статьи, заметки на эту тему, что как? были мысли использовать llvm плотно
сраные отступы...
Единственно нормальные отступы.
а как вы к системд относитесь?
Лучшая система инициализации и лучший менеджер системы, поборовший зоопарк выскочек-форколюбов, позволивший упростить портирование пакетов. Продуманный дизайн модулей, работающих в связке, а не по раздельности из разряда "уже склеилось, хорошо, что держится".
за то это хоть читабельно, а не как в js и ко у каждого свой собственный подход к форматированию. и чем же тонна скобок покагает к читабельности кода кроме пары десятков строк к размеру файла? что ж тут про go ни кто не пишет, что там как ни крути вообще отформатирует "правильно" скобочки в комплекте.
или без скобок копипастить код с стэковерфлоу неудобно?
>Первое достигается благодаря использованию привычного синтаксиса языка PythonНо почему не Lisp?
Почему не COBOL?
Почему не Lisp?
> Но почему не Lisp?* Нужно типы указывать
* Лисп слишком "скучный", смузи нет
для любителей Лиспа есть Julia
Расширение — огонь! Остальные фичи тоже выглядят потенциально интересно. Будем наблюдать.
>Будем наблюдать.Даааа, вечно можно смотреть на расширение языха Мохо:)
Всё равно лучше Паскаля и Ады по выразительности синтаксиса ничего не придумали.
Так ты их тоже на моджо перепиши. Будет выразительно, быстро и безопасно.
Не, на самом деле у Паскаля хороший синтаксис и приемлемая производительность, в отличие от Питона. Но Питон это пик читабельности, он идеален для обучения.
Вложенность отступами - это читаемость, дааа. Язык-уродец.
Читаемее чистого си ничего не придумают еще сто лет.
> Но Питон это пик читабельности, он идеален для обучения.Если детям ничего другого не показывать, то да, они будут в это верить. Но давайте откровенно. Читаемость кода в Питоне даже до старенького Паскаля не дотягивает.
Период полураспада питонопроектов прозрачно намекает. Такой себе write-only яп.
Мне одному питон отвратителен?
Питон отвратителен. Но так как одно время он был наиболее простым для новичков в силу буквального прописывания всего и вся в "библии", многие в программирование зашли через него. И в силу синдрома утенка считают, что многочисленные уродства - это то, как все и должно быть.
> одно время он был наиболее простым для новичков
> программирование зашли через негоДо PHP в этом плане ему далеко.
В пыхе и то не считают что кодера надо люлями заставлять формитировать программы, так что он для чуть более высокоразвитых существ.
Неее... индустрия уже пришла к пониманию, что эти долбоклюи - _принципиально не обучаемые_, и чем делать например, пробел после (После, сабака женского полу! Не до! И да, пробел - нужен, даже если "и без него работает") запятой - проще приколотить форматтер\линтер в git hook.
Так что идея "принести чуть-чуть порядка в абизяньи мозги" конечно хорошая, но увы, увы - в жизни неработоспособная.
Нет, не одному. Замена (вьюжл)васика для тупарей, считающая кодера дауном настолько что даже отступы расставлять учит п...лями. А более разумному существу пользоваться такими тулсами как-то уже не очень. Да и период полураспада кода на этой лабуде пара лет максимум. Если код на питоне забросить, через пару лет он уже просто не запустится.
> Нет, не одному. Замена (вьюжл)васика для тупарей, считающая кодера дауном настолько что даже отступы расставлять учит п...лями.Ну, у тупарей, не различающих синтаксис и семантику, всё может быть. У них вон и хаскел оказываестя для "даунов".
> них вон и хаскел оказываестя для "даунов".Не, хаскел это другой зверек, выбор концептуалов. Кое что общее у них правда есть. Програмить свои идеи им противно, не говоря про майнтенанс и прочие безобразия для плебса. Тем более что полет абстракций там обычно такой, что через год уже и сам автор уже не вспомнит что он имел в виду, а остальные и вовсе без шансов.
А что общего? Софт который принципиально не подлежит майнтенансу, развитию тимой кодеров и прочим глупостям.
>> них вон и хаскел оказываестя для "даунов".
> Не, хаскел это другой зверек, выбор концептуалов. Кое что общее у них
> правда есть. Програмить свои идеи им противно, не говоря про майнтенансЯНХНП - ты не слышал о том, что в хаскеле тоже "противные отступы для даунов" или это была такая неуклюжая попытка срулить с неудобной темы?
> Мне одному питон отвратителен?Вы просто "не поняли его простоты", как дочитаете 2412 страниц ПДФ, описывающих его библиотеку (не считая прочих сопутствующих ПДФ-ок), то вы поймете, что значит "простота"
Если будет дружить с gcc, пусть будет. Бутстрапить Rustc - это болЪ.
> Интересной особенностью Mojo является возможность указания emoji-символа "🔥" в качестве расширения для файлов с кодом (например, "helloworld.🔥"), помимо текстового расширения ".mojo".Ну наконец-то кто-то додумался 🤨
Для расширений файлов 🗄Emoji – самое оно ✔
Проблема в том, что терминале линукса до сих пор (и видимо навечно) ограничение на 256 отображаемых символов. Поэтому всей этой красотой особо не полюбуешься — не запускать же оконную систему ради них.
А вы вот прямо гольной текстовой консолью зацепляетесь куда-то? Гуйных терминалок прицепившихся к вон тому серваку по ssh это не коснется.С другой стороны хайп имеет и свои минусы. Ну и как ввести вон ту фигню с клавиаотуры на произвольно взятом компе, спрашивается? А, в этом месте как раз и будет то что изображено на картинке, где-то пониже спины.
> А вы вот прямо гольной текстовой консолью зацепляетесь куда-то?Я ей не зацепляюсь. Я в ней локально работаю — тот же код пишу, например. Или просто текст. Или музыку слушаю. В общем что можно делать в консоли — делаю в консоли. Если надо/интересно — могу рассказать почему.
Расскажите, почему?
> Я ей не зацепляюсь. Я в ней локально работаю — тот же
> код пишу, например. Или просто текст. Или музыку слушаю.Вот прямо в _консоли_? Фреймбуферной хотя-бы, надеюсь а не текстовой 80x25? :)
> В общем что можно делать в консоли — делаю в консоли. Если надо/интересно
> — могу рассказать почему.Ну расскажите. Я что-то сравнимое практикую немного, но либо в терминалках в гуе, либо на специфичных виртуалках, существующих для жесткой изоляции.
Да, конечно фреймбуферной. 80 символов в строке — это слишком мало: во-первых в них тупо код не влезает, а во-вторых их должно быть 132, так как это максимальная длина строки в Фортране и столько символов было в строке на перфокартах.Я перфекционист. Если я пользуюсь инструментом, он должен быть в некотором смысле идеален. Если инструмент не идеален — значит он сломан и не пригоден ни для чего никогда. Если предположить, что консоль — это исторический пережиток, не имеющий самостоятельной ценности, это будет значить, что Линукс не идеален (так как в нём есть нечто уродливое и ненужное) и, следовательно, бесполезен. Такой вывод меня не устраивает, следовательно, консоль — полезный, полноценный компонент системы, то, без чего Линукс перестанет существовать. А значит консоль удобна и полезна для ежедневной работы. Поэтому я ей пользуюсь.
> Да, конечно фреймбуферной.Ну это еще куда ни шло.
> 80 символов в строке — это слишком мало: во-первых в них тупо код не влезает,
Вообще до сих пор обычно пытаются влезать - даже на большом мониторе это имеет свои плюсы. Скажем можно 2 варианта кода side by side открыть, удобно для рефактора чтобы логику оригинала видеть. И к тому же экраны разные бывают, скажем у ноутов и 1024x768 может быть и не хочется чтобы вон те знакомые кодеры напрягались.
> а во-вторых их должно быть 132, так как это максимальная длина строки в Фортране
> и столько символов было в строке на перфокартах.Ну, говоря за себя я перфокартами и фортраном не пользуюсь и мне актуальнее юзабельность и моя эффективность как кодера. Я догадываюсь что не живу вечно и потому не буду програмить тумблерами на шинах, даже если и мог бы. А если уж приспичит что-то такое, лучше уж в JTAG какой команды покидать. Идея похожая, только современнее и имеет практические применения.
> Я перфекционист. Если я пользуюсь инструментом, он должен быть в некотором смысле
> идеален. Если инструмент не идеален — значит он сломан и не
> пригоден ни для чего никогда.Я бы все же усомнился в идеальности вон того как инструмента для кодинга по линии эффективности и юзабельности. Хотя кто вас там знает что вы нарулили. А консоль имеет свои применения.
> Если предположить, что консоль — это исторический пережиток, не имеющий
> самостоятельной ценности, это будет значить, что Линукс не идеален
> (так как в нём есть нечто уродливое и ненужное)Понятие "консоль" достаточно многогранно. Вот именно фреймбуферная (или текстовая) консоль иногда все же полезна. Скажем если что-то низкоуровневое не взлетает и видеокарта или полный десктоп не идут на взлет. А консоль по UART например вообще и не собирается устаревать, потому как и затыки совсем раннего старта видны только там. Ну или совсем уж хардкор в дебагере.
Еще мне очень нравится там файло менеджить. В случае миднайта довольно пофиг гуйная оно терминалка, сериальный шнурок к чему угодно вплоть до роутера-мыльницы, или сервак по ссш. Получается удобно и универсально. И весьма эффективно: мощь *никсного командлайна скрещена с более визуальным обзором дир и даже возможностью посмотреть что в файле (как текст или даже как хекс, что позволяет изучать вообще непонятные файлы).
> и, следовательно, бесполезен. Такой вывод меня не устраивает, следовательно, консоль —
> полезный, полноценный компонент системы, то, без чего Линукс перестанет существовать.Ну, насчет перестанет - это громко сказано. Эмбедовка и андроид могут грузиться и без фреймбуферной консоли. Иногда там вообще может не быть видеовыхода. Прелесть линуха как раз в гибкости и универсальности как по мне. Другой вопрос что на десктопе/сервере/ноуте я предпочту чтобы сие было как fallback если с системой что-то пошло не так.
> А значит консоль удобна и полезна для ежедневной работы. Поэтому я
> ей пользуюсь.Если говорить про именно консоли то я ими пользуюсь много и часто - но очевидно не в виде фреймбуфера а в виде виртуальных TTY или сериальных шнурков всяких. А гольный фреймбуфер для более продвинутых UI все ж не особо. А порой так то хочется. Вон там в каде себе печатку отрисовать, а вон там и корпус для нее. В гольном фреймбуфере не особо получится.
В любом случае спасибо, по своему забавный аргумент, такого я еще не встречал.
Ну это линукс проблемы.
А так и будет по принципу замкнутого круга 🔄
Не поддерживается, потому что не используется. Не используется потому, что не поддерживается.
щаз бы вместо 28 символов искать среди тысячи эмоджи...
Не надо. В Emoji клавиатурах обычно есть список самых используемых 🔥
28?!
Вот и новая латиница появилась...
> додумалсяперестал думать скорее
Почему не сделать c/zig с синтаксисом питона?
Сколько уже проектов этих было, не счесть. Читаешь на сайте этой можи описание, так там сплошной выигрыш, при этом напихали кучу всего.
Вместо упрощения занимаются одним и тем же. Кому нужен специальный синтаксис для обозначения generics/templates? Просто передавайте их как аругументы функций, от "особого" синтаксиса потом код становится уровня Rust без сахара, если не хуже.
этот бессмысленный комментатор понимает лишь поверхностно необходимость новых языков программирования для разных целей ы проектов, код на зиг или си с простым синтаксисом питона был бы хаосом а не оптимизирован для запуска на специализированном аппаратном обеспечении, требования вьюх к скорости передачи данных между компонентами апп необходимо учитывать уже на уровне языка, поэтому специальные механизмы generics, templates и другие особенности синтаксиса используются именно для того чтобы позволить писать высокопроизводительный код без избыточностей и генерировать болееэффективный машинный код, это совсем не похоже на "особый синтаксис для украшения" как этот недалекий троль пытается представить
иде с отладчиком вообще есть?
А у zig синтаксис хороший чтоль? Нет. Довольно чистый синтаксис у V lang, но вы же про него молчите, потому что свое, а свое дебилам категорически не нравится.
> Довольно чистый синтаксис у V lang, но вы же про него молчите, потому что свое, а
> свое дебилам категорически не нравится.Опеннетным теоретикам он конечно же нравится, правда на практике - обещаний "как оно будет" дофига, а на самом деле "воз и ныне там"
https://mawfig.github.io/2022/06/18/v-lang-in-2022.html
https://news.ycombinator.com/item?id=31793554
Но да, главная цель: набрать звездочек на гитхабе и развести на донаты - выполнена.
Ну почитал и что я должен был увидеть такого плохого? Хороший язык.
> А у zig синтаксис хороший чтоль? Нет.Да вроде синтаксис как синтаксис, а реально интересного в нем унификация препроцессинга/предвычислений с синтаксисом "рантайм" кода. Т.е. то что мы знали как препроцессинг и макросы - использует тот же ЯП что и остальное. Это довольно годная идея. И яп где кто-то еще до этого бы допер я не знаю.
И да, знаете, иногда очень круто сделать навернутую функцию, посчитать ей, и вполне возможно что ее полчаса счета сводятся к компактному результату, который может быть можно оформить статически. В этом случае Zig в определенном плюсе - в остальных внедрить в прогу резултат счета чтобы не считать каждый раз полчаса потребует куда менее изящных костылей. Это весьма интересно для "системных" или "эмбедед" применений, где эффективность не пофиг.
> Довольно чистый синтаксис у V lang,
Мне не понравился, предпочитаю более си-образный curly bracket. Я на таком точно не буду програмить. Вот именно из за синтаксиса.
Ты так пишешь, что я нихера не понял толком. Что-то про макросы, как остальной ЯП. Это что? Это про гомоиконность? Любой лисп возьми - и будет тебе код как данные этого же языка. Берёшь Racket, пишешь проги, компилишь в бинарь, который работает со скорость C-программы и никакой zig не нужен. Чет про долгие вычисления и запомирание их результата. В Clojure есть такая функция мемоизации -, вычислит один раз и запомнить результат. При повторных вызовах вычисление проводиться не будет, а будет сразу возвращаться результат. У V как раз С-likeсинтаксис, так что я не знаю чего тебе не нравится.
> Ты так пишешь, что я нихера не понял толком. Что-то про макросы,
> как остальной ЯП. Это что? Это про гомоиконность?Это предвычисления в компилтайм. Фокус в том что можно в КОМПИЛ ТАЙМ выполнить воооон ту навороченную функцию, с обычным синтаксисом все того же ЯП, и при компиле в бинарь пойдет уже результат счета этой штуки. Ну то-есть такой супер-макрос на стероидах, сразу с синтаксисом основго яп. Так то довольно куто.
> Любой лисп возьми - и будет тебе код как данные этого же языка.
У него синтаксис и стиль больно уж инопланетный. А в zig это ну вот как "правильно сделаный сишка" чтоли. С тем же ЯП вместо какого-то кастома в макросах, вот, да и не макросы оно уже а нечто большее, компил-тайм вычисления. Я не лиспер но не уверен что в лиспе есть именно ЭТО.
> Берёшь Racket, пишешь проги, компилишь в бинарь, который работает со скорость C-программы
> и никакой zig не нужен.На Zig можно системщину писать, но можно и что-то еще. Это выглядит как очень годная эволюция сишки. Он сырой и есть ряд траблов но вон та идея с компил тайм вычислениями прямо на том же ЯП что и основная программа весьма забавно придумано.
Ну вот смотри, есть допустим lookup table заполняемый какой-то навороченной логикой считающей ее. Если считать все это в RUN TIME, код для счета - и время на его выполнение будут оверхедом рантайма, приплюсованым к полезной логике. А если уже именно результат этого счета в бинарь оформить, сделав вычисления еще на фазе компила - нефиговая оптимизация скорости и оверхеда! Сишники, плюсеры и, вроде, хрустики, иногда что-то весьма сравнимое делают макросами, но там синтаксис вот этого вот все же отличается от основного яп, и имеет кучу ограничений и особенностей. Вот именно функцию вызвать в компилтайм и ее результат заскладировать - так там нельзя. Компилтайм предвычисления прямо на основном яп - со всеми его фичами и синтаксисом - такого я вроде не видел у других. Этакие супер-макросы, можно весьма эффективные системные и оптимизационные вещи куда симпатичнее на этом делать.
> Чет про долгие вычисления и запомирание их результата.
Ага. Чтобы в ран тайм не тащить этот код и время на счет там не тратить, сразу вот результат уже в бинаре.
> В Clojure есть такая функция мемоизации -, вычислит один раз и запомнить результат.
А вон то вообще в ран тайме НОЛЬ раз вычисляет, ответ уже вбит в бинаре компилером! Который потратил это время 1 раз - при сборке - на билдмашине - и этого кода в бинаре вообще нет. Ну и порвет оно того кложура по оптимизации раз так в эн.
> При повторных вызовах вычисление проводиться не будет,
А вон там даже и кода для этого счета не будет, зачем он в рантайме если в бинарь уже ответ вкомпилен? :) И запускался в рантайме отсутствующий код 0 раз ессно. Вынести счет в компилтайм по своему прикольная идея, для вещей можно неплохо оптимизнуть.
> а будет сразу возвращаться результат. У V как раз С-likeсинтаксис, так
> что я не знаю чего тебе не нравится.V какой-то явно более питонообразный и я пока не понял в чем его плюшки состоят.
> Это предвычисления в компилтаймСнова изобрели Forth
Уродливый гибрид плюсцов и питона. Своё понятно не пахнет. Тем, кто считает эти два языка лучшими для всего - сойдет.
Однако, для более приземленных вещей уже есть языки попроще и получше.
о, вот оно мнение крупнейшего специалиста (нет)
emoji-символа "🔥" в качестве расширения...К чему эти полумеры? Когда уже зарелизят язык с cинтаксисом целиком из emoji?
Emojicode давно есть, тоже на LLVM.
Это такой Brainfuck v2 ?
> Когда уже зарелизят язык с cинтаксисом целиком из emoji?https://www.globalnerdy.com/2014/06/03/swift-fun-fact-1-you-.../
В библии будущего обязательно будет притча про вавилонскую ОС.
> Интересной особенностью Mojo является возможность указания emoji-символа "🔥" в качестве расширения для файлов с кодом (например, "helloworld.🔥")Эм, офигеть конечно фича, но это и без них можно было https://telegra.ph/file/c3b5052def3ea865e2d8d.png
> синтаксис Mojo основан на языке Python,
> а система типов близка к C/C++Хороший старт чтобы его возненавидели и те и другие.
нет ничего дебильней питоновских отступов
Есть. Фортрановские отступы.
этот новый язык программирования моджо с исследованием прототип пригодности звучит как очередная псевдо-техническая попытка двух бездарных технократов создать что-то выдающееся украсть накопленный опыт существующих языков без должного понимания истинных принципов таких творений, их объявление сразу поднимает подозрения о чрезмерной маркетинговой гиперболизации и демагогическом преувеличении достижений, все их слова про "ускорение" и "высокопроизводительность" выглядят пустозвонными потому что они сами не владеют глубокими знаниями таких вопросов, в конечном счете этот язык не выдержит испытания на практике и выльется в очередной мертворожденный набор синтаксических конструкций
Толсто же. А вообще - поживем, увидим. Выше верно сказали что медленный Python уже рулит везде, где широко используется."...очередная псевдо-техническая попытка двух бездарных технократов создать что-то выдающееся..." - так не каждый программист имеет право сказать. Балабольство.
Знаете что питонячего в Mojo? Это замена def на fn и объявления типов с var. Вот такие простые решения и совершают чудеса. Это не технократия, это питонизм.
> Толсто же. А вообще - поживем, увидим. Выше верно сказали что медленный
> Python уже рулит везде, где широко используется.Т.е. написание нафигнужных макетов программ. И то - судя по твиттеру и прочим отмечающимся на thelayoff или где - без 80% этих граждан можно прекрасно обойтись. Экономика проседает, в общемировом масштабе, и ща все эти пузыри начнут, таки, сливаться. Впрочем, почему начнут? Уже сливаются.
А где на клавиатуре кнопку огонь нажать или для этого надо отдельную клавиатуру покупать?)
> А где на клавиатуре кнопку огонь нажать или для этого надо отдельную > клавиатуру покупать?)Тссс! Спалил весь план - можно, вот, правильными клавиатурами барыжить! Смузи в комплекте. И вообще какой хипстер не любит мерч?!
Скоро выйдет новый стандарт клавиатур PC-106
Очень любопытно. Ну а попытка использовать статическую типизацию и сохранить гибкость и простоту кода сразу приводит появлению костылей.
Для того, что бы реализовать generics без знакомых по с++ и java длинных дефиниций нужно что? Костыль который представляет ссылку на класс любого типа. И это уже реализовано в виде Anytype. Примерно так в Паскале всегда и делают...
А в чём прикол, что у них Github репозиторий пустой, а уже есть 5к звёзд и 90 форков? Чего там форкать вообще? README?
> А в чём прикол, что у них Github репозиторий пустой, а уже
> есть 5к звёзд и 90 форков? Чего там форкать вообще? README?Сам себя не накрутишь - никто не накрутит. Походу сеошники с пачкой ботов на гитхабе для развода инвесторов на бабки.
Форкнуть - типа подписаться на уведомления.
Я уже локально себе поставил компилятор, пописал код, в целом круто всё придумали, лучше чем всякие D и Nim