Обновить
-11
Андрей@Octagon77

Пользователь

0,1
Рейтинг
2
Подписчики
Отправить сообщение

Ух ты, заработало, подумал я и ткнул в единственно интересную ссылку - multiprocessing. Не для Android, iOS, WASI сказала она. Вот с этого и надо было начинать экономя время читателей.

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

  • AI - не первый и не единственный повод для замены людей машинами

  • Замена людей машинами любым способом требует много дополнительной энергии

  • Чем больше энергии находится в распоряжении людей, тем больше энергии нужно на их замену машинами

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

Ошибку? По моему чётко доказано, что значение Number.MAX_SAFE_INTEGER - правильное.

Это уже оффтоп, но я выяснял простую и очень практическую вещь - чего ожидать по совокупности всех факторов. Понимая, что никто на практике углубляться в каждую частность не будет. Это наверно не так если под началом 300 человек и можно выделить спецкопателей…

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

За прямоту рук и чтение документации прятаться не получится, руки и глаза одни и те же. И Lua - единственный язык с которым случилась, по моим масштабам, катастрофа. А языки сработавшие так чисто да гладко что я аж удивился - Go, JavaScript, Julia и Racket. Последняя парочка - с учётом того что это не для создания приложений, конечно.

Я сам не знаю как к этому относиться, но получилось так.

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

UPD. Здесь нет никого кто бы занимался собственно языками. Были бы - да, из-за этого хаять Lua было бы нельзя, ибо язык - это одно, а компилятор, библиотеки, документация, инструментарий, сообщество - это другое, и к собственно языку относится только первое. Но на нашем (Хабра, страны если угодно) для любых практических целей важно только второе. Так что хаять не только можно, но и нужно.

А попробовать? Разобраться - не могу рекомендовать, боюсь этим навредить. Я же предупреждал, вот Вам и садись, сегодня - кол, завтра жду родителей.

Чтобы считать числа Фибоначчи в JavaScript пишут типа

  let a = 0n
  let b = 1n

Кстати, откуда Вы взяли про "простой integer"? Знаете кого-то кто способен на глупость такого масштаба? Я ничено подобного не писал...

О чём Вы поёте с голоса нейронки? Какие IEEE 754. где Вы это слово краем уха уловили?

Узнайте же продвинутый факт, может на собесе пригодится. IEEE 754 - это про числа с плавающей точкой, а числа Фибоначчи - целые. Связи - никакой.

Для расчёта чисел Фибоначчи в Lua пишут что-то вроде

local bint = require 'bint'(40000)

Можете считать что я и есть тот самый преподаватель. Теперь объясните как нужно упустить момент чтобы десятитысячное число считалось правильно, а миллионное - нет.

Ваш лучший выбор - ответ "не знаю", это садись - три. А нечнёте нести околесицу - будет садись два.

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

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

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

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

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

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

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

Относительно недавно игрался в отвечальщика на вопрос "какой язык выучить", считал числа Фибоначчи на разных. Неожиданно оказалось довольно поучительно. Так вот, единственным языком из использованных что посчитал неверно - была Lua.

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

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

Попробовал на EndeavourOS, swift не работает, libncurses не может узнать. Потому что ищет "поддерживаемую" ОС:

EndeavourOS is not an officially supported platform, but the toolchains for another platform may still work on it. Please select the platform to use for toolchain downloads:  

0) Cancel 
1) Ubuntu 24.04 
2) Ubuntu 22.04 
3) Ubuntu 20.04 
4) Ubuntu 18.04 
5) Fedora Linux 39 
6) RHEL 9 
7) Amazon Linux 2 
8) Debian GNU/Linux 12 Pick one of the available selections [0-8] : 

а могла-бы искать нужные библиотеки, обсудить каждую с пользователем. Но наверно это тоже было бы напрасно, потому что пакет из AUR сразу

$ swift package init --type executable
Creating executable package: w
Creating Package.swift
Creating .gitignore
Creating Sources/
Creating Sources/main.swift
$ swift run -c release
error: 'w': Invalid manifest (compiled with: ["/usr/lib/swift/bin/swiftc", "-vfsoverlay", "/tmp/TemporaryDirectory.BGL5ZO/vfs.yaml", "-L", "/usr/lib/swift/lib/swift/pm/ManifestAPI", "-lPackageDescription", "-Xlinker", "-rpath", "-Xlinker", "/usr/lib/swift/lib/swift/pm/ManifestAPI", "-swift-version", "6", "-I", "/usr/lib/swift/lib/swift/pm/ManifestAPI", "-package-description-version", "6.0.0", "/home/andy/Projects/LangSel/Swift/w/Package.swift", "-o", "/tmp/TemporaryDirectory.jPCz8n/w-manifest"])
error: link command failed with exit code 127 (use -v to see invocation)
/usr/lib/swift/bin/clang: CPU ISA level is lower than required
error: 'w': Invalid manifest (compiled with: ["/usr/lib/swift/bin/swiftc", "-vfsoverlay", "/tmp/TemporaryDirectory.khPhfN/vfs.yaml", "-L", "/usr/lib/swift/lib/swift/pm/ManifestAPI", "-lPackageDescription", "-Xlinker", "-rpath", "-Xlinker", "/usr/lib/swift/lib/swift/pm/ManifestAPI", "-swift-version", "6", "-I", "/usr/lib/swift/lib/swift/pm/ManifestAPI", "-package-description-version", "6.0.0", "/home/andy/Projects/LangSel/Swift/w/Package.swift", "-o", "/tmp/TemporaryDirectory.wVqXjq/w-manifest"])
error: link command failed with exit code 127 (use -v to see invocation)
/usr/lib/swift/bin/clang: CPU ISA level is lower than required
$ 

Короче, от Apple, заявившей на WWDC что Swift будет кросс-платформенным и вроде успешно сделавшей первый шаг в приведении в порядок системы сборки, ожидал большего.

"Зачем" в заголовке - неудачное слово, оставляет маловато места глупости и подлости человеческой природе. Я бы заменил на "почему".

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

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

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

Что будет с Rust когда поймут, что реакция на "я переписал" - "ну и что"? Когда-то про Java сказали, мне понравилось - программисты бегут не на Java, а от Win32. Сейчас, мне кажется, бегут не на Rust, лучшее что в том мире есть, а от С++ тонущей в собственных экскрементах.

Со стороны тех немногих, что делом заняты - попытки самоспасения. Но тут надо идти ниже радара, а то как с Delphi поступят.

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

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

AI тоже пока не особо талантлив. Важно не только то, что сказано, но и то, что не сказано. Важен язык тела. Важен выбор слов. Важны отсылки, типа

  • Задумался, не решит ли AI джуниорский вопрос окончательно.

  • Зачем, трудиться и стать свободными стало непопулярно?

  • Но хотелось бы цифровой, там не кусаются.

  • Тогда пусть таков и будет весь закон.

Скажет ли AI что радикальная оптимизация затрат было согласована без замечаний? Это и не эзопов язык и не сарказм...

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

Пример такого изложения есть в одном некогда популярном сериале. "Заходил Штирлиц, за спичками".

Конечно. Но статья выходит за пределы перебора форков и переходит к способам послать Мозиллу вообще. И обещает в будущем рассмотреть конкретные варианты.

Не сказали много о чём. Falkon, чутка поменьше память жрёт.

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

А можно оптимизировать так: Молот ведьм, Сумма против язычников, Государь, Книга пяти колец, Lucien Lévy-Bruhl весь чтобы мало не показалось, таро колода Золотой Зари.

The problem of memory leaks is solved. Just use a proper garbage collector, period. If Rust enthusiasts do not like the solution, it is their problem.

I am not sure that the people working on Rust understand that, but the idea beyond Rust is simple - take what we have, ready or not, perfect or not, and use it NOW. That gives us Cargo, nice, and some relatively care and error free zone to be discarded with “unsafe”.

When Rust demands lifetimes in a function definition it is pure madness because the idea of a function or procedure is to create a self contained entity that does not and should not care about the things outside like lifetimes. But since we cannot do better NOW - so be it.

Yes, it is possible to prohibit even more and make the comfort zone smaller but safer and that will be the Rust thinking. But Rust would be less laughable if the direction was changed a bit. Why not implement some mechanism of memory leaks prevention when static analysis detects the possibility and issue a warning? Not an error, a warning. Compilation is prohibitively slow anyway…

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

Термин популяризирован в бизнес-среде фразой «paralysis by analysis» – «парализован анализом»

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

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

Даже Шекспир затронул эту тему. Гамлет знаменит своей склонностью «думать слишком много», откладывая месть и действие – его решимость, по выражению самого автора, «задета бледным налётом раздумий»

И получилось у Гамлета не скажешь что хорошо. Уж не попал ли он в минимум, думаю я, раз кажется что смещение в любую сторону благотворно? Типа и у Конана и у милорда Корвина получилось бы лучше.

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

И получают возможность потратить часа полтора получше чем на смотреть ерунду. Уж не хинт ли это?

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

Может? Должен! Обязан! В ИТ всё возможное и невозможное сделано для того, чтобы так и произошло. Крайний случай - perennial тема Хабра о выборе языка для вкатывания. Чтобы языки сравнить, нужно каждый выучить процентов на 75.

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

Вспомним рассказ о том, как Стив Джобс в своё время настоял на выпуске первого iPhone без долгих исследований рынка

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

Если уж совсем ступор – можно прибегнуть к старому доброму «подкидыванию монетки»

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

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

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

Для кого лучше? Как говорят наши заокеанские партнёры, нет правильного способа делать неправильные вещи. Паралич выбора - это не проблема, это симптом. Либо того, что проблема не решается без выхода за её рамки, либо того, что проблема навязана и/или создана извне. В любом случае - смотрим шире и акуна матата. Тогда любые рекомендации по её решению - способ сделать так, чтобы шире не смотрели…

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

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

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

Вам нужен минимум один год чистого времени, без каких-либо отвлечений. Вообще и совсем.

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

У вас должны сформироваться нейронные связи в мозгу, отвечающие за «связное изложение мысли в виде кода».

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

 программирование это вообще‑то творческий процесс.

И то верно. Из этого следует, что важны эмоциональная вовлечённость и рефлексия, о которых ничего не написано. То есть, с самого начала писать код для чего-то лично нужного и/или интересного, от рисования картинок до игр, размышлять на темы типа "почему не понял сразу", "можно ли было сделать дучше или быстрее", "как так получилось что у меня баг"...

Считаю самый разумный выбор в качестве первого языка это Java.

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

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

Вы надо делать два типа задач:

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

божественный SICP,

Они оба божественные, и на Scheme и на JavaScript? Если в груди горит пламень веры без которого деяния наши были бы преступлением, то напрашивается первым объектом для изучения или EMACS + Racket, или VS Code + Node.js + JavaScript + таки Web технологии...

Если владеете английским

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

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

Или не будете если перешли водораздел иначе. И по началу это выбор - либо писать в стол, либо выставлять себя на посмешище. Наборы в предыдущем абзаце позволяют тренироваться на плагинах к текстовому редактору, как по мне - по (самому) началу так лучше, да и dog fooding. Можно и другие наборы рассмотреть, вот Neovim свежий приглашает скриптовать себя практически на чём угодно.

Концепция менторства, наставничества и всех этих видеокурсов напрямую противоречит идее самообучения

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

должен выработаться навык выражения мысли с помощью кода — ключевой для любого программиста

Когда-то это формулировали чутка иначе - задача программиста состоит в записи результатов изучения предметной области в виде, понятном как человеку, так и машине.

Статья в свое время вызвала живейший интерес и дискуссию

Ну да, ну да. Захотелось прочитать внимательно, пописав код комментарии.

Информация

В рейтинге
4 082-й
Зарегистрирован
Активность

Специализация

Разработчик игр, разгильдяй
Средний
От 1 000 000 ₽
JavaScript
TypeScript
Node.js
React Native