Pull to refresh
4
0
Send message

Согласно статье, преимущество Umka перед Lua - возможность находить ошибки во время компиляции, а не во время выполнения. Хорошо, может ли Umka гарантировать, что Null Pointer Exception(либо его местный аналог), не возникнет из-за забывчивости программиста, без добавления проверок в каждую строку? Проверить, что перечисление исчерпывающее, и не забыт ни один вариант? Гарантировать инварианты у сложных состояний, например, что у пользователя есть номер телефона или электронная почта, но не оба сразу? Типизированные коллекции? Или просто упадёт, как и динамически типизированный язык?

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

В то же время, существует семейство ML-подобных языков - статически строго типизированных типобезопасных функциональных языков, с следующими наиболее известными примерами: Ocaml, StandardML, Haskell, F#. Так же можно вспомнить Rust - язык вобравший в себя много хороших решений из ML-подобных, но сохранивший си-подобный синтаксис. Эти языки, за исключением двух последних, появились примерно в то же время, что и довольно известные Java, JavaScript, Python, и раньше модно-молодёжных Go, TypeScript и Kotlin, однако почему-то оказались обделены вниманием. Полагаю, причина в том, что за ними не стояла мощная корпорация, рекламирующая их из каждого утюга.

Возможности ML позволяют: опускать определение типов для значений, вплоть до того, что система типов выводит тип аргументов и возвращаемого значения у всех функции и локальных переменных, описание сложных типов типа JSON средствами самого языка. И если семантика json общеизвестна, возможно описать семантику языка программирования, и имея на руках только типы распарсеного кода можно узнать, в каких случаях использует оператор расширения, без длительного чтения документации этого языка. Или можно различать на уровне типов данных изменяемы и неизменяемые коллекции. Это делает код во-первых самодокументируемым, во-вторых делает множество некорректных состояний невозможными, что значительно упрощает как ознакомление с чужим кодом, так и написание собственного, в-третьих позволяет писать типобезопасный код без разных компромиссов, с которыми придётся столкнуться в Go, C#, TypeScript, например, без понижающего преобразования. Скомпилировалось - значит работает, данное выражение возникло как раз благодаря тому, что если программа прошла проверку типов, то не придётся несколько дней потратить на отладку даже после большого рефакторинга. Проверка на ошибки становится явной, благодаря чему забыть проверить результат на наличие ошибки не получится.

Семейство ML-подобных языков достаточно велико, в частности существует Gluon - статически типизированный, встраиваемый язык, вдохновлённый Lua, Haskell и Ocaml.

let io = import! std.io
let array = import! std.array
let int = import! std.int
let { Result, ? } = import! std.result

array.functor.map (\i -> 
   io.print (match int.parse i with
   | Ok v -> show (v + 1)
   | Err _ -> "Expected number")) [ "123", "text" ]

Просто убунта — один из популярных дистрибутивов гну/линуксов, вот и периодически попадает в такие новости. Будь популярным гента или никсос — о них бы тоже частенько писали.
Формально доказан анализатор, а не анализируемый софт. Даже если запуск анализатора будет занимать длительное время, его можно запускать для анализа ночных сборок, чтобы не гонять его после каждого коммита.
На данный момент мне действительно кажется, что сложные для понимания алгоритмы полезнее декомпозировать и упрощать, а не применять ещё более сложные инструменты для компенсации своей неспособности разобраться.
Это нужно, чтобы не полагаться на добросовесность разработчиков(вдруг кто-то бекдор послал в виде испралвения?), а так же на то, что разработчики не действовали в спешеке, выспались и так далее.
что-то бы и получилось
Вот именно, что «что-то». Браузер — это довольно крупный проект, и далеко не все вещи реализуются по щелчку пальцев. Да, распределяя средства иначе, они могли бы гораздо активнее развивать servo, но это не значит, что они сохранили бы совместимость со старыми дополнениями. После каждого редизайна довольно много недовольных, считающих, что лучше бы эти силы потратили на что-то другое, но проблема в том, что дизайнер не сможет писать качественный код, он не программист, можно разве что сократить дизайнеров, хотя и тут тоже появятся недовольные, так как всем не угодишь.
Ведь раньше получалось…
Получалось что? Доля фокса начала снижаться практически сразу после выхода хрома, и снижалась она непрерывно, без существенного перелома в пользу лисы. И если проблема скорости была решена, и сейчас нет такого сильного отставания как раньше, то проблема интенсивной пропаганды мало того, что никуда не делась, так ещё и усиливалась. И если до этого в основном этим занимался гугл, то сейчас к этому подключился ещё и мелкософт. И хоть никто с автоматом выбирать браузер не принуждает, то кто-то не разобрался, у кого-то ассоциации изменили, кому-то партнёрский софт поставил, а кто-то просто подсел на другой браузер, и использует его просто по привычке, так как у него там закладки, даже после импорта.
А так — ни того, ни этого, одни минусы в результате «развития».
Сравните скорость тогда и сейчас.
Вот если бы он при этом потреблял ресурсы, как классическая опера 11 и рендерил весь современный веб, включая эксклюзивы хрома (приводили в пример скайп)
Не забывайте, что потребление ресуросов зависит не только от браузера, но и от сайтов.
Я постоянно выношу вкладки в новые окна, а окна на отдельные рабочие столы, чтобы не запутаться во вкладках. На вашем скриншоте мало того, что нужно помнить где какая вкладка, так их ещё и нужно считать каждый раз, чтобы не перепутать 6 и 8 вкладку, что не позволяет с первого раза попасть на нужную, разве что постоянно переключаться по ним взад-вперёд.
Быстро, дёшево, качественно — выбирайте любые два.
Компилятор ругнется через 40 минут
Вы пытаетесь уйти от одной проблемы и тут же натыкаетесь на другую.
Хромуим с нуля может больше суток собираться, так что это не на столько не реалистично.
Присобачил к этому ноуту внешний кулер-турбинку. Иначе температура 100C и досвидос. Просто запускаешь прсмотр видео с youtube и даже с турбиной 87C. Но это скорее BIOS в HP нотуе, который весь под винду заточен.
Что будет, если просто открыть биос и подождать, или же остановить на загрузке GRUB не запуская ядро — тоже будет грется и шуметь или же нет?
На скриншоте эталонный пример, когда у всех вкладок есть иконки, и текст не содержит нескольких пробелов подряд, и надписи достаточной длины, что бывает не всегда.
Что с поддержкой нескольких пользователей? Как состояние по сравнению с GNU/Hurd?
В том, что в Украине тоже существует политическая цензура, и список заблокированного постепенно растёт: ШАРИЙ.NET, Страна.ua, Newsone, 112 Украина и ZIK.
Пометьте, пожалуйста, что команда rm -R ~/.wine удаляет не мусор, а текущий профиль wine, включая установленные через него программы, и возможно ещё и пользовательские данные.
Хороший скрипт потребует значительной работы, поскольку в текущем виде он прибит говздями конкретной версии убунты.
Конечному пользователю известно значение порога? Возможен ли просмотр фотографий без ручного подтверждения пользователя?
Наличие ручной проверки как раз и говорит о том, что посторонние люди имеют доступ к якобы зашифрованным данным. Получается как с Telegram, когда e2e вроде и есть, но в то же время нет. Получается, что данная система: расходует ресурсы смартфона(заряд, вычислительные), дискредитирует шифрование, отправляет пользовательские данные. С Касперским это почему-то в скандал вылилось, а здесь это как плюс преподносят.
Вы ещё умолчали про neuralMatch, который работает непонятно как.
А если нет — то значит пользователи сами заслуживают то, что с ними происходит, так что сами виноваты...
Нельзя проголосовать рублём дважды. А дальше, компании нужно понять, почему её устройства не покупают: то ли у человека денег нет, то ли он не согласен с её политикой.
а также детей (во всех смыслах)

Компания Ap*le участвует в сокращении населения земли! ヽ(`⌒´メ)ノ
1
23 ...

Information

Rating
Does not participate
Registered
Activity