Size: a a a

2018 April 01

MA

Mike Ananev in fprog_spb
пишем полиморфный файлово-загрузочный стелс lisp
источник

VM

Vyacheslav Mikushev in fprog_spb
Лучше писать на форте. Там всё гораздо понятнее и с ассемблером проще работать. 😁
источник

RR

Rigidus Rigidus in fprog_spb
Без шуток я так и делаю лол
источник

VM

Vyacheslav Mikushev in fprog_spb
Пишешь на форте?
источник

RR

Rigidus Rigidus in fprog_spb
Ага. И даже написал его реализацию на асме
источник

VM

Vyacheslav Mikushev in fprog_spb
Кстати, я и не шутил. 😁 Форт действительно гораздо проще, чем кложа, лисп, си, не говоря о плюсах, джавах и си шарпах. 😁
источник

VM

Vyacheslav Mikushev in fprog_spb
Под лиспом я подразумеваю коммон лисп.
источник

RR

Rigidus Rigidus in fprog_spb
Поэтому я его и выбрал для упражнений по написанию лиспа
источник

MA

Mike Ananev in fprog_spb
в своей практике на кложе я реально столкнулся с одним недостатком, я стал думать на кложе в контексте коллекций кложи. Это стало мешать читать код на других языках например когда читаю код на JS, Java я все время ищу, где самое "ядро" бизнес-логики, где самые важные строчки? И все так растянуто и раскидано по коду и контекст сильно расплывчат, что это начианает очень раздражать. И мне это не нравится, что раздражаюсь, когда надо просто разбираться в коде.
источник

VM

Vyacheslav Mikushev in fprog_spb
Rigidus Rigidus
Поэтому я его и выбрал для упражнений по написанию лиспа
Написать форт на ассемблере, написать лисп на форте, написать форт на лиспе и уйти в бесконечную рекурсию. 😁
источник

A

Andreλ in fprog_spb
Mike Ananev
в своей практике на кложе я реально столкнулся с одним недостатком, я стал думать на кложе в контексте коллекций кложи. Это стало мешать читать код на других языках например когда читаю код на JS, Java я все время ищу, где самое "ядро" бизнес-логики, где самые важные строчки? И все так растянуто и раскидано по коду и контекст сильно расплывчат, что это начианает очень раздражать. И мне это не нравится, что раздражаюсь, когда надо просто разбираться в коде.
Я вот тоже столкнулся с недостатком. Но с другим. Когда компилятор никак не помогает делать большие проекты. У нас проект разбит на отдельные библиотеки. И когда в одной меняют название или сигнатуру функции. Все проекты отлично собираются и падают только в рантайме. Компилятор во время сборки даже не может проверить наличие функции. Из-за этого приходится писать тупейшие тесты на вызов функций((
источник

VM

Vyacheslav Mikushev in fprog_spb
Очень странно. У нас даже на сигнатуры функций ругается.
источник

MA

Mike Ananev in fprog_spb
Если поменяли сигнатуру кложа тоже упадет на этапе компиляции. Если кол-во параметров не изменилось, а изменились типы, то это значит бизнес-логика поехала, а значит надо переписыввать код, который эту либу использует. Поэтому при переписывании вы уже в репле увидите падения. А еще нужны хотя бы элементарные unit-тесты, которые надежно уберегают от этих проблем.
Вы код без тестов поставляете?  

Переимнование или изменение сигнатуры вообще вещь запрещенная, если есть код в проде, который это использовал. Хотите новую сигнатуру? Извольте дать новое имя функции. Изменяете типы входных или выходных данных? То опять же новое имя для функции. По-моему это очевидные правила. А если есть привычка ломать API без оглядки на то, что код либы используется в других проектах, то сорри язык тут не причем.
Более того, в этом случае вы как раз закладываете мину под ноги надеясь на типы, в то время как изменение сигнатуры это 100% изменение бизнес-логики работы.
источник

Y

Yuuri in fprog_spb
Vyacheslav Mikushev
Написать форт на ассемблере, написать лисп на форте, написать форт на лиспе и уйти в бесконечную рекурсию. 😁
"Я, когда молодой и глупый был, интересу ради решил построить себе среду разработки почти с нуля. Разрешил себе использовать только ассемблер. Можно было и в машинных кодах писать - но я уже тогда с алкоголем завязал. На ассемблере написал минимальное ядро Форта, на Форте - простейший интерпретатор Лиспа. На этом Лиспе - компилятор Лиспа посложнее, а на нем уже - компилятор для довольно немалого подмножества Си и для полного Виртовского Паскаля. Все это заняло пару месяцев работы по вечерам. Теперь представь себе, как то же самое (си и паскаль с нуля) можно было бы сделать, если идти классическим путем - начать с компилятора подмножества Си, написанного на ассемблере. Я бы повесился, не завершив и половины."
(предположительно Луговский)
источник

VM

Vyacheslav Mikushev in fprog_spb
Yuuri
"Я, когда молодой и глупый был, интересу ради решил построить себе среду разработки почти с нуля. Разрешил себе использовать только ассемблер. Можно было и в машинных кодах писать - но я уже тогда с алкоголем завязал. На ассемблере написал минимальное ядро Форта, на Форте - простейший интерпретатор Лиспа. На этом Лиспе - компилятор Лиспа посложнее, а на нем уже - компилятор для довольно немалого подмножества Си и для полного Виртовского Паскаля. Все это заняло пару месяцев работы по вечерам. Теперь представь себе, как то же самое (си и паскаль с нуля) можно было бы сделать, если идти классическим путем - начать с компилятора подмножества Си, написанного на ассемблере. Я бы повесился, не завершив и половины."
(предположительно Луговский)
Читал. 😁
источник

RR

Rigidus Rigidus in fprog_spb
Vyacheslav Mikushev
Написать форт на ассемблере, написать лисп на форте, написать форт на лиспе и уйти в бесконечную рекурсию. 😁
После лиспа надо что то хаскельноподобное писать чтобы расширять горизонты
источник

RR

Rigidus Rigidus in fprog_spb
Yuuri
"Я, когда молодой и глупый был, интересу ради решил построить себе среду разработки почти с нуля. Разрешил себе использовать только ассемблер. Можно было и в машинных кодах писать - но я уже тогда с алкоголем завязал. На ассемблере написал минимальное ядро Форта, на Форте - простейший интерпретатор Лиспа. На этом Лиспе - компилятор Лиспа посложнее, а на нем уже - компилятор для довольно немалого подмножества Си и для полного Виртовского Паскаля. Все это заняло пару месяцев работы по вечерам. Теперь представь себе, как то же самое (си и паскаль с нуля) можно было бы сделать, если идти классическим путем - начать с компилятора подмножества Си, написанного на ассемблере. Я бы повесился, не завершив и половины."
(предположительно Луговский)
да, это и было вдохновением
источник

Y

Yuuri in fprog_spb
"На первый день написал Б-г ядро форта", etc.
источник

AN

Aλexander Nihirash in fprog_spb
Mike Ananev
помогите найти ошибку, please!

(model .tiny)
(.code)
(.startup)

:start
 (mov ah 9)
 (lea dx msg)
 (int 0x21)

:exit
 (mov ah 0x4c)
 (int 0x21h)

(def msg "hello clojure$", 0)
Вместо start: используй (label start)
источник

MA

Mike Ananev in fprog_spb
Не, у Него уже в первый день было что-то декларативное..
"Да будет свет, и стал свет" - сплошная декларативщина.
источник