LINUX.ORG.RU

Lisp Asp .Net MVC

 , , , ,


2

7

C# официально устарел и отправляется в помойку, т.к. теперь веб-фреймворк Asp .Net Core MVC доступен из Common Lisp.

Можно так писать:

;; Asp.Net MVC controller
(define-dotnet-callable-class (example-controller
                               (:base-type . ControllerBase))
    ()
  ;; Echo the 'Hello' message to client
  (:method index :string ((name :string))
    (format nil "Hello~:[~;, ~:*~a~]!" name)))

https://github.com/Lovesan/bike/blob/master/examples/aspnet-mvc.lisp

На линуксе работает на SBCL и на CCL, проверял.

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

Также, пока bike не поддерживает аттрибуты, но это наверное добавлю позже.

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

★★

Ответ на: комментарий от lovesan

То что ты про них не знаешь, показывает уровень твоей эрудиции(=плинтус)

То, что ты про них знаешь, показывает уровень твоей шизы. Ибо об этом знаешь только ты.

slew
()
Последнее исправление: slew (всего исправлений: 1)

https://github.ink/atlas-engineer/nyxt Это веб-браузер с клавиатурным управлением, разработанный для хакеров.

Вдохновленный Emacs и Vim, он имеет знакомые сочетания клавиш ( Emacs , vi , CUA ) и бесконечно расширяем в Lisp.

Forum0888
()
Последнее исправление: Forum0888 (всего исправлений: 3)
Ответ на: комментарий от Forum0888

веб-браузер с клавиатурным управлением, разработанный для хакеров

То есть пользовательская база сопоставима по размерам с командой, разрабатывающей этот браузер?

бесконечно расширяем в Lisp

Это только Вселенная сама по себе бесплатно расширяется, а ПО должен кто-то «расширять». А зачем кому-то бесплатно расширять вселенную размером с физическую точку, когда рядом есть полноразмерные вселенные Хрома и ФФ, которые можно еще расширить уже написанными доброхотами аддонами? Поэтому у меня байка про новое расширяемое ПО вызывает только ухмылку.

Virtuos86 ★★★★★
()
Ответ на: комментарий от lovesan

Нет беззнаковых типов

Это плюс.

Нет делегатов/указателей на функции/замыканий/функций как first class объектов

В Scala есть, используй ее, если нужно ФП.

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

А JPython, JRuby, Scala и так далее через астрал обращаются к библиотекам на Java? Для нативщины есть JNI.

Всратое ООП

Вполне хватает для всего.

Нет встроенной поддержки Generics Всратая модель исключений

Используй Scala, там это все есть.

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от Werenter

Нормальные анонимусы это что-то нездоровое, потому что зачем человеку сознательно ущемлять себя в правах по сравнению с регистрантами, если он ведет себя, как они? Срущие анонимы как раз адекватны, понятно, за что они платят неудобствами пользования ЛОР’ом.

Virtuos86 ★★★★★
()

C# официально устарел и отправляется в помойку, т.к. теперь веб-фреймворк Asp .Net Core MVC доступен из Common Lisp.

А на сколько сейчас вообще актуален asp net? Сам на нем никогда не писал, последний раз слышал о том как выбирают эту платформу для какого-то нового проекта году в 2014ом.

Aswed ★★★★★
()
Ответ на: комментарий от lovesan

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

Aswed ★★★★★
()
Ответ на: комментарий от Aswed

Как будто в шизоаквариум заглядываешь

Я не он но…
Ты же старый лось конь, так? Всякие массовые статистики тебя если и интересуют, то только чтобы казаться «в теме». Понимаю. Ну давай посмотрим на статистику Stackoverflow. Или Tiobe. Потом подумаем, «почему так». Но ты думать не привык. Ты в своём уётном болоте, которое знаешь, или думаешь, что знаешь, как 90% этого форума. Да чего мелочиться, просто 90% пиплов!

А я немного накину, «почему». Потому, что лисперы вымирают. Решили головастых прикупить. И прикупили в MS Research. Вот весь выхлоп хорошего, годного, научного матана подхода и протаскивают в Dotnet. Да, с 14 года мы только сейчас видим конкретную заинтересованность массами. А что ты хотел в такой бюрократии, как IT?

anonymous
()
Ответ на: комментарий от anonymous

Горение ровное, яркое, без всполохов. Приятно наблюдать. Жаль по теме сказать ничего не можете, только ссыкливо сидеть за анонимной учёткой.

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

Obezyan
()
Ответ на: комментарий от Obezyan

Что ты собрался дискутировать? Ну давай я расскажу тебе притчу.

Ты моряк, плаваешь по многим странам (и в Web и в FP и в OOP с embed тебя видели). Приходя в порт и начав разговарить с жителями на их языке ты можешь поддерживать беседу et cetera.

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

Дальше больше. Применяя знания под ту или иную деятельность, мы применяем чаще всего один и тот же подход, используя микроскоп. Это не плохо и не хорошо. Мы такие. Очень мало людей с опытом нескольких парадигм (и не на словах) и то, чтобы перестроиться, надо время и усилия. Чаще всего мы «забиваем» на качество и просто добиваемся результата кратчайшим путём, копируя и вставляя ;)

Теперь дальше. Подёргам Мамку за сиську ты выяснил, что результат аозможно один, а путей его достичь много. Ты теперь резко, бешенно стал называть себя ОрХиТеКтОрОм, что бы это не значило.

А каждый «порт» развивается. Не ссы, не сколько в ввысь, нет,горизонтально. Знать надо много. И как Дойль писал, если твой мозг не пользуется знаниями, то они выпадают из черепной коробки за ненадобностью.

И получается, что зная (типа слышал), как ты там писал, больше 10 ЯП, ты средний специалист по палате, который просто Ленина видел.

Яркий пример любителей Сишки, Java и других сортов. Возьмём строки. Возьмём объединение строк. Что там наделали индусы в Dotnet с этим? Как борются с наследием K&R?

masterOf
()
Ответ на: комментарий от masterOf

Что ты собрался дискутировать? Ну давай я расскажу тебе притчу.

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

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

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

Вы можете знать один ЯП от и до, но знание только его деформирует ваше отношение к реальности, вы как лошадь в шорах, где шоры это ваш ЯП. Оглянитесь на себя, вы же никогда не станете писать на другом ЯП как бы ни оправдано было его использование под конкретную подсистемы не было бы. До тех пор пока не придёт архитектор и не скажет,а вот тут будет кусок на Go, вот тут на JS, а вот здесь - Kafka. А Lisp можете в рамках этой задачи запихать себе в жопку т.к. он не удовлетворяет требованиям проекта. Ферштейн о чем я?

Obezyan
()
Ответ на: комментарий от Obezyan

А почему на JS? А почему на Go?

Ты же сам закрылся и не понимаешь, чем интересен релиз Lovesan.
А интересен он тем, что затрагивает два мира - CL и Dotnet. И это прекрасно!

Вы можете знать один ЯП от и до, но знание только его деформирует ваше отношение к реальности,

я в былые времена тут проверял на знание JS великих ОрХиТеКтОрОв, ага. При этом реально пацаны делали устройства и варились по 7-10 лет. Архитектор не мог прочесть JS код без отладчика и REPL в три строки на знание асинхронности.

Ты же мне даже не ответишь, что там происходит в мире, допустим, SQL. Что предоставляет та или иная версия того же Postgres или MS, что не мешает тебе на уровне второкурсника или как ты пишешь, архитектора, написать простенький запрос и бить себя в грудь, доказывая, что ты мамкин аналитик. Так и с другими ЯП, что ты пишешь, засовывая в попец то, чем ты не умеешь работать.

НИ ОДИН ЯП ТАК ПОКА НЕ МОЖЕТ, НИ ОДИН! https://youtu.be/YaWVHyIBVeI?t=84

anonymous
()
Ответ на: комментарий от anonymous

А почему на JS?

потому что на фронтенд.

А почему на Go?

потому что надо быстро, бинарным протоколом и на двух видах систем (windows, linux). Ну это все частности.

Ты же сам закрылся и не понимаешь, чем интересен релиз Lovesan.

Не интересен, а скорее забавен, как Лавсанчик не понял почему его предшественники забросили rndzl. Да, он сделал свой велосипед в попытке дотянуться до широких возможностей .net инфраструктуры, но в итоге получилось эталонное ненужно. Можно было бы его похвалить за то что он осилил написать свое подглядывая в rndzl если бы не тот апломб с котором он принялся обсуждать окружающих и другие ЯП. Итог закономерен.

Архитектор не мог прочесть JS код без отладчика и REPL в три строки на знание асинхронности.

Это не архитектор, это выебщик который занял позицию архитектора, такие в любую систему пихают Kafka по-умолчанию. Настоящий архитектор не только проектирует, но и пишет самые проблемные части вместе с синьорами, помогая определить лучший метод реализации конкретной задачи (у хорошего синьора обычно затык не как реализовать, а какой из 5 способов реализации тут будет лучше). Потому архитектор не может не читать те языки которые используются в проекте.

Ты же мне даже не ответишь, что там происходит в мире, допустим, SQL.

Если честно, то ничего хорошего. Да, sql оправился от nosql хайпа, Maria DB пытается догнать Postgres поглядывая в MySQL, а Postgres активно занимает ниши nosql в облаках, например на Amazon. Но это все бег по кругу, да, добавляются новые виды работы с временными рядами и прочее но это все мелочи под конкретные задачи финтеха и блокчейна. Прям чтобы революция - такого за последние лет 5 я не назову.

Obezyan
()
Ответ на: комментарий от anonymous

НИ ОДИН ЯП ТАК ПОКА НЕ МОЖЕТ, НИ ОДИН! https://youtu.be/YaWVHyIBVeI?t=84 (Ъ: в Лисп программах вы можете писать Лисп программы, дед не знает в каких языках еще такое возможно)

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

#include <iostream>

int main()
{
    std::cout << "#include <iostream>" << std::endl << std::endl;
    std::cout << "int main()" << std::endl << '{' << std::endl;
    std::cout << "\tstd::cout << \"Hello World!\" << std::endl;" << std::endl;
    std::cout << "\treturn 0;" << std::endl << '}' << std::endl;
    return 0;
}
temp ➤ g++ makeHW.cxx -o makeHW && ./makeHW > hw.cxx && g++ hw.cxx -o hello-world && ./hello-world 
Hello World!
necromant ★★
()
Ответ на: комментарий от Obezyan

А чего нет? ИМХО, надо говнецом поливать, чтобы удобрённая почва дала поросль. Да пусть один из ста начнёт проявлять интерес к семейству LISP - уже Богоугодно. Так кому, как не Лавсанычу это делать? Тезис «сперва добейся» выполнил, принёс на всеобщее оборзениезрение…

Dotnet оброс при переписке на core довольно качественной экосистемой и батарейками качеством выше по больнице для кодеров начально-среднего уровня. Бери да методы дёргай. Мало того, если это делать в IDE, то вообще знать надо только умный сленг, чтобы казаться «своим». Документация даже на русском достаточна для решений большинства задач. Многие вещи они переписали хорошо, кхм. А на непонятный Web был запилен TS…

…CL - зверь отдельный. ИМХО, ЯЩИТАЮ царствующим во вселенной LISP. Даже логотип у него логичный зачётный . Любая разработка с ним связанная (а особенно выпущенная РАБОЧАЯ версия), даёт over дофига к возможности удобрять и ЛОР и остальные площадки, неся просветление в массы.

Я когда-то писал, могу повториться: мы все рабы задач. Индустрия даёт на откуп сборку кубиков. Всё. Остальное - СЛОЖНААААА!!!

Надо делать усилия над своей ленью, уметь учиться и оставаться при этом ребёнком, подвергающим всё критике, старея… Это могут… Да единицы. Изучение Haskell, Lisp, лучших представителей индустрии, а Dotnet я считаю таковым, даёт на выходе человека, который ВОЗМОЖНО! когда-то может решить нетривиальное. Но этот путь сложен. Он тернист. ОН ВЫЗЫВАЕТ УВоЖЕНИЕ, как минимум.

Ну, и в конечном итоге он закономерно даёт нам Лавсана ;) Плохо что-ли? Хорошо!

Я его понимаю, потому что сам пару раз пытался глухому напеть https://www.youtube.com/watch?v=SFH2Xou9ZPI ;) А теперь, через десять лет пацаны выросли и немного приобщились. Процентов двадцать теперь с умным видом вещает. У многих даже каналы на тыртубе. Вот только они всё равно даже не в середине пути (иначе их каналы были бы не популярны).

anonymous
()
Ответ на: комментарий от anonymous

Я с вами полностью согласен в том что Lisp рано закапывать и те концепции которые в нем заложены стоило бы давать общим курсом большинству программистов других ЯП. Это поставило бы их мозги на место при решении определённого круга задач.

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

Obezyan
()
Ответ на: комментарий от Obezyan

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

Ахах! Так ты попался, родной. Это троллинг от него. Лавсан его как раз уважает.

anonymous
()
Ответ на: комментарий от anonymous

Ахах! Так ты попался, родной.

Это вряд ли. Поймать архитекта может только другой архитект, за редким исключением.

Это троллинг от него. Лавсан его как раз уважает.

Вы так и не поняли - моя претензия как раз в том что он не признает другие ЯП считая всех остальных непостигшими дзен идиотами, что выглядит несколько самоуверено.

Точно также тут есть Java программисты которые считают все остальные языки дефективными. И то и другое - шоры на глазах из-за проф деформации работы с одним-двумя ЯП на протяжении многих лет.

Obezyan
()
Ответ на: удаленный комментарий

Лисп даёт понимание что задачу можно решить ещё одним способом, другим. А вот будет он лучше или нет зависит от конкретной задачи. Эта мысль действительно так сложна для понимания?

Про питон: я практически не встречаю вариантов его использования в вебе тк в большинстве задач он медленнее того же php, но он просто очень удобен для математики и анализа, на нем можно буквально думать, быстро накидывая гипотезы, жонглируя данными в pandas и ища закономерности в seaborn и тд. Для меня питон это научный режим в калькуляторе так сказать. Можно быстро прикинуть хер к носу что куда и как.

Obezyan
()
Ответ на: комментарий от Obezyan

Вы так и не поняли - моя претензия как раз в том что он не признает другие ЯП считая всех остальных непостигшими дзен идиотами, что выглядит несколько самоуверено.

Нене. Тут надо немного абстрактнее смотреть. Вот Haskell Curry -> каррируем помаленьку, а вот John McCarthy -> логика. Потом пробежала алгебра с Category theory и всё заверте…

Так вот этот разрыв, который дают математики - он бешенный. Есть они и остальные. Особенно там, где абстракции. Конечно, мы можем накинуть на вентилятор, что добавил Alan Kay… Но смысл?

А менять поведение работающей программы…

anonymous
()
Ответ на: комментарий от anonymous

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

Obezyan
()
Ответ на: комментарий от Obezyan

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

Но есть задачи, где этот вариант не проходит. Где нужны как раз умки. Так вот Lisp позволяет навернуть то, что другие или нет или очень сложно. Вот только Lisp - ктулху, даже логотип намекает. Он заставляет смотреть не то, чтобы презрительно, но явно свысока на тех, кто даже не знает, что вычислит их компилятор первым в уравнении ;) UB в твоей работающей программе. А lazy штангисты, жонглируя с бесконечностью вообще при встрече руки не подают. Это ведь неспроста? ;)

anonymous
()
Ответ на: комментарий от anonymous

Большая ошибка думать что в Lisp есть высшая математика и больше нигде её нет. Например, все разы когда мне требовалось поработать с конечным полями вычетов и числами большой размерности (в эллиптических кривых) я раз за разом брал Python, потому что там это удобнее и быстрее. При этом я знаю Lisp, это не какое-то сакральное знание, второй язык после Basic который я узнал.

Поэтому весь вот этот псевдоэлитарный флёр о Lisp на меня не действует, скорее говном воняет, сорян. Да, есть годные концепции, но я адепт забивания гвоздей молотками, а не микроскопами.

Obezyan
()
Последнее исправление: Obezyan (всего исправлений: 1)
Ответ на: комментарий от Obezyan

Мы не про вышку, а подход. Начало, так сказать. И эти звери сильно отличаются. Мозг по другому работает, что я знаю не по наслышке (замеряли). Решения строятся по другому. Задейтсвованы другие участки мозга. Да, автодополнение и подсказки оказывается очень плохо влияют на когнитивные процессы, только тсс.

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

masterOf
()
Ответ на: комментарий от masterOf

Проблема стандартных задач и Лиспа только в одном, числе рабов.

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

Зачем делать апи по OAuth2 авторизации на Лиспе если тоже самое в 3 раза быстрее можно сделать на любом другом современном ЯП. По требованиям задачи в этом случае Lisp не даст ничего кроме чесания эго разработчика. И такого плана задач подавляющее большинство. Это причина почему лисперы сейчас в красной книге.

Obezyan
()
Ответ на: комментарий от masterOf

Lovesan может себя так вести.

Он собсно и ведёт себя как виндовый дотнет миддл словивший передоз лиспа.

А ты - PHP макака.

Я этого и не отрицаю :) Так больнее для окружающих, они ловятся на «ну что может знать этот пхпшник, ух, сейчас я его своим компилируемым языком..», кек.

Obezyan
()
Последнее исправление: Obezyan (всего исправлений: 1)
Ответ на: комментарий от Obezyan

Не скатывайся. Эти все, не побоюсь, задачи - тривиальны. Думать не надо. У GPT спросил, он накалякал, ты вставил. Всё. Решения. Что тут сложного? Только горизонтальные знания. Надо и на дуде и на гармошке.

А вот когда начинаешь «а что, если», тогда кабзда. Нет батареек, нет готовых псевдорешений. Ты первый, кто делает сайт, например. И тут твой инструмент показывает свою корявость. Это и к Haskell относится, например. Если начинаешь ехать по кочкам мира, то код превращается в говно, что бы там адепты не писали. Лисп более универсален потому, что, ёмана, логичен.

masterOf
()
Ответ на: комментарий от masterOf

Не скатывайся. Эти все, не побоюсь, задачи - тривиальны.

И их 99%. Прежде чем продолжить обсуждать 1% предъявите единорожий рог (не путать с дикпиком). Потому что только единороги могут обсуждать свой радужный однопроцентный мир напрочь игнорируя реальность.

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

Obezyan
()
Ответ на: комментарий от Obezyan

Ёмана, так мир как раз - это связка c#/TS. Ваще похер на всё.

А Haskell в комиляторах и парсерах прелесть. И идея конвеера композиций в виде спирали близка. А CL - это для логики. Чаще всего любой код, который выбивается из проторенного стандартом Dotnet. К сожалению, это очень многое.

а не функции высших порядков.

Тут классика в eval данных, которые не данные. В LISP всё упирается в фантазию и наличие маны для магии.

masterOf
()