На курсере я могу смотреть курсы от лучших вузов и преподавателей в мире
Там математика уровня старшей школы. Учиться онлайн, конечно, можно: вышеупомянутый МГУ выкладывает свои лекции, как и множество других вузов, но конкретно курсера это плохой пример
а современный вычислительный центр стоит у меня в квартире.
Есть некоторые сомнения в том, что у вас в квартире действительно стоит кластер
Берем любое вещественное число от 0 до 1 и записываем его по основанию 1/b. Получаем натуральное число.
Если вещественное число из промежутка (0; 1) записать по основанию 1/b, у него может быть бесконечное число цифр. Это не будет натуральным числом, так как натуральные числа все конечны
Так что проблема исключения третьего ломает весь аргумент Кантора
В диагональном аргументе Кантора нигде ведь не используется исключённое третье
А почему не надо говорить, что везде диктатура? Британия с массовыми арестами и сроками за комментарии и инициативами по авторизации через паспорт (разумеется, ради защиты детей) - это не диктатура?
Из того, что Британия диктатура, вообще говоря, не следует что везде диктатура
Это не так, есть инструменты (причём довольно удобные) для запуска моделей локально. Локальные модели, конечно, не настолько продвинутые как облачные, но всё ещё довольно сильные. Посмотрите, например, ollama
Приходит человек и начинает уводить дискуссию в сторону
Там не аннотации для OpenAPI в формате Swagger обсуждались, а языковые модели, и почему статьи про них минусуются. Мой тезис -- потому что там разбирают задачи, которые давно автоматизированы в нормальных языках
На моё замечание, что причем тут вообще Питон начинается манипуляция и вброс на вентилятор
Давайте ещё раз: мой тезис в том, что статьи минусуются потому что разбирают решённые в других языках задачи. Я беру ваши аннотации на php и в качестве примера показываю как выглядит решение на питоне. Пример на другом языке нужен чтобы проиллюстрировать, что на других языках эти задачи решаются автоматически.
В реальной жизни я бы в табло за такое зарядил.
О, интернет-боксёр! А я думал они годах в двухтысячных вымерли
Каким боком и зачем ты Питон приплёл в обсуждение? - я так и не получил ответа на вопрос.
Я на этот вопрос уже несколько раз отвечал. Выше попытался разжевать максимально подробно, но если и так будет неясно, то вряд ли я смогу ещё чем-то помочь.
Знаешь, что меня больше всего радует в этих ваших анонимных минусах и слитии кармы? То, что вы нутром понимаете, что ваши знания сегодня стремительно обесцениваются с развитием LLM.
У вас минусы и слитая карма за грубости и неумение вести дискусию. Научитесь аргументированно выражать свою точку зрения, а не:
мне абсолютно по х-м обсуждение других ЯП и ваши детские священные войны
в реальной жизни я бы в табло за такое зарядил.
и с удивлением обнаружите, что карма, даже при высказывании непопулярных мыслей, не идёт вниз
Выживут те, кто будет умнее, гибче, мобильнее.
Я бы заметил, что пишет это php-шник с 25-летним стажем, который не удосужился выучить js, но, боюсь, вы не поймёте иронию ситуации
Вы тут врете, подменяя понятия. Покажите мне как эту задачу автоматически решить средствами PHP
Может, вы забыли, но я комментарий начал с того, что она автоматизируется в нормальных языках. Если в пхп лучший способ описывать схемы это генерить простыни комментов -- это плохой язык.
Я Вас вообще не просил тот код как-то исследовать
Вы точно понимаете как работают публичные обсуждения?
я привёл в пример просто объемный кусок, с котором LLM справляется, но Вы за каким-то членом упомянули Питон, который к теме вообще не относится, набросили на вентилятор, что называется.
Кусок, который давно автоматизирован в других языках. Питон тут как один из примеров.
Это незначительно, отголосок множества промптов.
Не устаёт, внимательна к каждой детали.
Мимо, это - часть техзадания.
Часть техзадания написать
if (button.disabled) {
button.disabled = false;
}
Вместо
button.disabled = false;
?
Это тоже часть ТЗ.
Окей, возражение про ipv6 снимается.
И вы addToRecentIPs никак не прокомментировали.
Итого, LLM написало мне работающую программу.
У вас тезисы гораздо сильнее были, я напомню:
Машина объективно лучше во всём: она не устаёт, она внимательна к каждой детали, она способна переваривать кучу информации.
LLM обнулило все старания людей по части компетенции.
чат появился, который в этом фреймворке лучше самого айтишника разбирается, а код пишет в 1000 раз быстрее
Код уровня полугодовалого джуна, увы, недостаточен, чтобы их подтвердить
И.... к чему это? Я мог бы любой пример сюда скинуть, когда условно текста много и требуется его анализ, но Вы пошли зачем-то умничать рассказывать про "нормальные языки" и Питон.
Кек) Вы приводите в пример задачу, которая решается автоматически, указание на это называете умничанием и удивляетесь, что вас не воспринимают всерьёз.
Что на это скажете?
Давайте смотреть:
backgroundColor === 'orange' ? 6000 : 6000
if (button.disabled) {
button.disabled = false;
}
Поддержка ipv6 очень интересная:
const extractedIPv4 = extractIPv4FromIPv6(ip);
if (extractedIPv4) {
return blacklist.includes(extractedIPv4);
}
Функция addToRecentIPs, кроме нагревания воздуха, не делает ничего. Это не полный список, но анализировать дальше простыни крайне плохого кода не хочется. Это никак не соответствует тезису:
Машина объективно лучше во всём: она не устаёт, она внимательна к каждой детали, она способна переваривать кучу информации.
Если вы подобное тащите в свой проект -- мне искренне жаль ваших коллег
Любые статьи на этом ресурсе про ИИ уходят в минус. Почему так происходит - большой вопрос
Вероятно, потому что большинство таких статей приводят примеры уровня "ИИ сам написал getField/setField, нас всех заменят", и считают, что ручное написание кода оно в этом. О том, что в нормальных языках эти проблемы уже давно решены авторы статей не догадываются. Минусуются они за некомпетентность, а не потому что программисты особо тщеславные.
Давайте на простом примере:
Когда я отписывал код проекта этой галиматьёй несколько лет назад, то просидел две недели по 8-12 часов. У меня таких схем ещё под 50 штук, не считая подсхем. Их нужно все держать в едином формате, проверять на корректность, дополнять и изменять.
Эта задача решается внутри языка с помощью рефлексии/интроспекции. Вот один из ваших объектов описанный в питоне:
Hidden text
from typing import Optional
from datetime import datetime
from pydantic import BaseModel, Field, EmailStr
class Attributes(BaseModel):
"""Объект атрибутов ресурса"""
creator_id: Optional[int] = Field(
default=None,
alias="creator-id",
description="ID пользователя-создателя",
examples=[123],
)
last_name: Optional[str] = Field(
default=None,
alias="last-name",
description="Фамилия пользователя",
examples=["Иванов"],
)
first_name: Optional[str] = Field(
default=None,
alias="first-name",
description="Имя пользователя",
examples=["Иван"],
)
surname: Optional[str] = Field(
default=None,
description="Отчество пользователя",
examples=["Иванович"],
)
phone: Optional[str] = Field(
default=None,
description="Номер телефона в любом допустимом виде, будет записан и отображён как последовательность из 10 цифр",
examples=["9991112233"],
)
phone_formatted: Optional[str] = Field(
default=None,
alias="phone-formatted",
description="Номер телефона отформатированный в международный формат",
examples=["+7 (999) 111-22-33"],
pattern=r"^\+7 \(\d{3}\) \d{3}-\d{2}-\d{2}$",
)
email: Optional[EmailStr] = Field(
default=None,
description="Email пользователя",
examples=["ivan@ivanov.ru"],
)
created_at: Optional[datetime] = Field(
default=None,
alias="created-at",
description="Дата и время создания",
examples=["2024-01-01T12:00:00Z"],
)
updated_at: Optional[datetime] = Field(
default=None,
alias="updated-at",
description="Дата и время обновления",
examples=["2024-01-02T12:00:00Z"],
)
Сгенерировано LLM-кой, кстати. Схема и валидатор напрямую получаются из него:
Теперь редактировать вручную не нужно: валидаторы и схемы генерируются из одного и того же объекта. Схемы автоматически синхронизированы с API, автоматически корректны, и, если вы испольнуете такой способ везде, то автоматически в одном формате.
У питона как бы есть типы, в этом можно убедиться, забыв распарсить строковую "1" в 1 и попытавшись их сложить. Просто типов нет у переменных, переменные тут просто идентификаторы.
Вы говорите о динамических типах питона (которые было бы правильнее называть рантайм тегами, но не суть). Я говорю о тех типах, которые добавляются аннотациями и проверяются тайпчереками типа mypy. Там есть типы у переменных:
x: int = 10
x = "abc"
$ mypy src/test.py
src/test.py:2: error: Incompatible types in assignment (expression has type "str", variable has type "int") [assignment]
Found 1 error in 1 file (checked 1 source file)
Более того, там есть не только численные или строковые типы, но ещё и literal types (типы литералов?). Следующий пример тоже не пройдёт проверку типов, хотя очевидно, что в памяти строки "abc" и "def" представляются одной и той же структурой.
from typing import Literal
x: Literal["abc"] = "abc"
x = "def"
$ mypy src/test.py
src/test.py:4: error: Incompatible types in assignment (expression has type "Literal['def']", variable has type "Literal['abc']") [assignment]
Found 1 error in 1 file (checked 1 source file)
Короче, вы привязываете семантику языка к деталям реализации, а это две разные вещи. Данные одного типа могут храниться по-разному, данные разных типов могут храниться одинаково.
Но речь тут не про это, а про важность понимания типов для обучения.
Я, как человек начинавший с питона, не понимаю откуда вы берёте тезисы про важность типов для обучения. Человек никогда не видевший call/cc, метапрограммирование или макросы будет испытывать не меньшие трудности при их освоении, но из этого не следует, что их нужно давать новичкам.
Python тут не страшное зло, страшное зло тут JS с феерическими и неочевидными правилами преобразований, стимулирующими магическое мышление в такой строгой дисциплине, как программирование.
Чем преобразования джаваскрипта хуже, например, (не менее очевидных, имхо) undefined behavior или правил strict aliasing в си?
Зачем вообще нужна концепция асинхронности? Пусть, скажем, любой сетевой запрос всегда блокирует
Я не знаю. Мне кажется, это костыль, который делается ради оптимизации в языках где не осилили stackful корутины. С точки зрения поведения async + await почти ничем не отличается от spawn + join, но для того, чтобы второе нормально работало (спавнило гринтреды вместо ОСных, переключало контексты и т.п.), нужна поддержка рантайма
когда человек раскрашивает листовую функцию в Async, он этим говорит, что эта функция может занять произвольное количество времени, и это достаточно важный и реалистичный случай, чтобы остальной мир про это знал.
Но ведь он не говорит этим миру ничего нового. При этом требует усилий, например, пройтись по стеку вызовов и там тоже в асинки покрасить. Возможно, есть языки и сценарии, где разделение между async и обычным IO даёт пользователю какую-то информацию, но я пока с таким не сталкивался
Было бы круто, если бы можно было получать какие-то разумные ограничения сверху на вычислительную сложность.
Есть, кстати, Cost-Aware Type Theory. Там, судя по абстракту, что-то такое описывается. Я её, если память не изменяет, где-то около идриса нашёл, но пока не читал.
Я хочу видеть, возвращает ли функция результат сейчас, или её надо подождать, прям в её типах
Async плохо решает эту задачу. Завершения sleep n или даже foldl' (+) 0 [0..10^8] тоже нужно ждать (последнее с поправкой на ленивость), но в типах, если не брать совсем экзотические системы, это не выражается
Эффекты полезно видеть в типах. Особенно в большой кодовой базе.
Я утверждаю, что не все эффекты одинаково полезны, и излишняя гранулярность усложняет написание кода. Async -- один из таких эффектов
Да, PEP вы тот открыли. Теперь прочитайте что в нём написано хотя бы до процитированного вами предложения. Например, про какие-то тайпчекеры, дженерики, тип Sequence[int] и так далее
Всегда пожалуйста! На всякий случай скажу, раз уж вы первый день в интернете: вежливость тут ценится, но благодарить за комментарии всё же не принято
Там математика уровня старшей школы. Учиться онлайн, конечно, можно: вышеупомянутый МГУ выкладывает свои лекции, как и множество других вузов, но конкретно курсера это плохой пример
Есть некоторые сомнения в том, что у вас в квартире действительно стоит кластер
Звучит сомнительно: дуальные числа образуют кольцо. В кольцах нельзя делить на ноль по тем же причинам, что и в обычных числах
Если вещественное число из промежутка (0; 1) записать по основанию 1/b, у него может быть бесконечное число цифр. Это не будет натуральным числом, так как натуральные числа все конечны
В диагональном аргументе Кантора нигде ведь не используется исключённое третье
Из того, что Британия диктатура, вообще говоря, не следует что везде диктатура
Этого недостаточно. Помимо этого нужно доказать, что этого числа нет в изначальном списке
Это не так, есть инструменты (причём довольно удобные) для запуска моделей локально. Локальные модели, конечно, не настолько продвинутые как облачные, но всё ещё довольно сильные. Посмотрите, например, ollama
Там не аннотации для OpenAPI в формате Swagger обсуждались, а языковые модели, и почему статьи про них минусуются. Мой тезис -- потому что там разбирают задачи, которые давно автоматизированы в нормальных языках
Давайте ещё раз: мой тезис в том, что статьи минусуются потому что разбирают решённые в других языках задачи. Я беру ваши аннотации на php и в качестве примера показываю как выглядит решение на питоне. Пример на другом языке нужен чтобы проиллюстрировать, что на других языках эти задачи решаются автоматически.
О, интернет-боксёр! А я думал они годах в двухтысячных вымерли
Я на этот вопрос уже несколько раз отвечал. Выше попытался разжевать максимально подробно, но если и так будет неясно, то вряд ли я смогу ещё чем-то помочь.
У вас минусы и слитая карма за грубости и неумение вести дискусию. Научитесь аргументированно выражать свою точку зрения, а не:
и с удивлением обнаружите, что карма, даже при высказывании непопулярных мыслей, не идёт вниз
Я бы заметил, что пишет это php-шник с 25-летним стажем, который не удосужился выучить js, но, боюсь, вы не поймёте иронию ситуации
Кек))
Не вытянуть дискуссию
Начать грубить
Получить минусов в карму
Пойти жаловаться про затыкание ртов под другими статьями
Может, вы забыли, но я комментарий начал с того, что она автоматизируется в нормальных языках. Если в пхп лучший способ описывать схемы это генерить простыни комментов -- это плохой язык.
Вы точно понимаете как работают публичные обсуждения?
Кусок, который давно автоматизирован в других языках. Питон тут как один из примеров.
Не устаёт, внимательна к каждой детали.
Часть техзадания написать
Вместо
?
Окей, возражение про ipv6 снимается.
И вы
addToRecentIPsникак не прокомментировали.У вас тезисы гораздо сильнее были, я напомню:
Машина объективно лучше во всём: она не устаёт, она внимательна к каждой детали, она способна переваривать кучу информации.
LLM обнулило все старания людей по части компетенции.
чат появился, который в этом фреймворке лучше самого айтишника разбирается, а код пишет в 1000 раз быстрее
Код уровня полугодовалого джуна, увы, недостаточен, чтобы их подтвердить
Кек)
Вы приводите в пример задачу, которая решается автоматически, указание на это называете умничанием и удивляетесь, что вас не воспринимают всерьёз.
Давайте смотреть:
Поддержка ipv6 очень интересная:
Функция
addToRecentIPs, кроме нагревания воздуха, не делает ничего. Это не полный список, но анализировать дальше простыни крайне плохого кода не хочется. Это никак не соответствует тезису:Если вы подобное тащите в свой проект -- мне искренне жаль ваших коллег
Вероятно, потому что большинство таких статей приводят примеры уровня "ИИ сам написал getField/setField, нас всех заменят", и считают, что ручное написание кода оно в этом. О том, что в нормальных языках эти проблемы уже давно решены авторы статей не догадываются. Минусуются они за некомпетентность, а не потому что программисты особо тщеславные.
Давайте на простом примере:
Эта задача решается внутри языка с помощью рефлексии/интроспекции. Вот один из ваших объектов описанный в питоне:
Hidden text
Сгенерировано LLM-кой, кстати. Схема и валидатор напрямую получаются из него:
Теперь редактировать вручную не нужно: валидаторы и схемы генерируются из одного и того же объекта. Схемы автоматически синхронизированы с API, автоматически корректны, и, если вы испольнуете такой способ везде, то автоматически в одном формате.
Вы точно не путаете llm с компилятором?
Владелец биткоина это кто?
Вы говорите о динамических типах питона (которые было бы правильнее называть рантайм тегами, но не суть). Я говорю о тех типах, которые добавляются аннотациями и проверяются тайпчереками типа mypy. Там есть типы у переменных:
Более того, там есть не только численные или строковые типы, но ещё и literal types (типы литералов?). Следующий пример тоже не пройдёт проверку типов, хотя очевидно, что в памяти строки "abc" и "def" представляются одной и той же структурой.
Короче, вы привязываете семантику языка к деталям реализации, а это две разные вещи. Данные одного типа могут храниться по-разному, данные разных типов могут храниться одинаково.
Я, как человек начинавший с питона, не понимаю откуда вы берёте тезисы про важность типов для обучения. Человек никогда не видевший call/cc, метапрограммирование или макросы будет испытывать не меньшие трудности при их освоении, но из этого не следует, что их нужно давать новичкам.
Чем преобразования джаваскрипта хуже, например, (не менее очевидных, имхо) undefined behavior или правил strict aliasing в си?
Во-первых клиенты нейронок совсестимы. Чтобы переехать с закрытой OpenAI в открытую ollama меняется одна строчка:
На
И это если не использовалась либа типа litellm скрывающая эти детали.
Во-вторых см. open-webui
Я не знаю. Мне кажется, это костыль, который делается ради оптимизации в языках где не осилили stackful корутины. С точки зрения поведения async + await почти ничем не отличается от spawn + join, но для того, чтобы второе нормально работало (спавнило гринтреды вместо ОСных, переключало контексты и т.п.), нужна поддержка рантайма
Но ведь он не говорит этим миру ничего нового. При этом требует усилий, например, пройтись по стеку вызовов и там тоже в асинки покрасить. Возможно, есть языки и сценарии, где разделение между async и обычным IO даёт пользователю какую-то информацию, но я пока с таким не сталкивался
Есть, кстати, Cost-Aware Type Theory. Там, судя по абстракту, что-то такое описывается. Я её, если память не изменяет, где-то около идриса нашёл, но пока не читал.
Async плохо решает эту задачу. Завершения
sleep nили дажеfoldl' (+) 0 [0..10^8]тоже нужно ждать (последнее с поправкой на ленивость), но в типах, если не брать совсем экзотические системы, это не выражаетсяЯ утверждаю, что не все эффекты одинаково полезны, и излишняя гранулярность усложняет написание кода. Async -- один из таких эффектов
Тут можно посмотреть, потыкать
Да, PEP вы тот открыли. Теперь прочитайте что в нём написано хотя бы до процитированного вами предложения. Например, про какие-то тайпчекеры, дженерики, тип
Sequence[int]и так далее