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-методами пока не придумал что делать, пока их классы надо руками писать.

★★

Скажи лучше, Лавсанчег, когда будут нормальные биндинги лишпу к последним культям? А то досктопный софт писать не на чем. Я всё думаю hsqml возродить и на Qt6 портировать ради такого, иначе совсем тухло как-то.

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

Культи написаны на крестах, у них нет нормального ABI, поэтому к ним в принципе делать биндинги это ад и израиль.

Но кроме того, сами подходы использующиеся в культях(особенно в мейнстримных, типа QtWidgets) это устаревшее и неудобное говно. Впрочем, QtQuick, несмотря на несколько большую продвинутость, никуда особенно не годится кроме как для поделок на три кнопки, типа с интерфейсом аля как у мобильных приложений.

Поэтому в целом, Qt и так и так, херота, устаревшая и кривая. И еще лицензии говно.

Рекомендую взять мою либу и из нее дергать Avalonia. Должно работать.

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

Культи написаны на крестах, у них нет нормального ABI, поэтому к ним в принципе делать биндинги это ад и израиль.

Типа, у .net есть нормальный ABI?

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

Да не, он норм, особенно в сравнении с GTK. А других нормальных кроссплатформенных тулкитов у нас нет.

Рекомендую взять мою либу и из нее дергать Avalonia. Должно работать.

Avalonia

Выглядит страшно. Два рантайма вместо одного – это просто какой-то ад. Я боюсь представить, сколько это памяти сожрёт вместе.

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

Типа, у .net есть нормальный ABI?

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

Да не, он норм, особенно в сравнении с GTK. А других нормальных кроссплатформенных тулкитов у нас нет.

GTK это вообще говно дремучее.

Выглядит страшно. Два рантайма вместо одного – это просто какой-то ад. Я боюсь представить, сколько это памяти сожрёт вместе.

Оверхед не сильно большой, особенно по памяти. Всё работает.

Если загрузить вот пример, описанный по ссылке, то htop показывает 215MB RSS и 125MB SHR. Тут сам SBCL отожрал мегабайт 50-60, остальное - .NET плюс ASP .NET MVC. Не сильно чтобы дохера.

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

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

С помощью боли и страданий? Так-то я hsqml тыкал, там без проблем хачкель интегрируется с культями и C++.

GTK это вообще говно дремучее.

Да.

Если загрузить вот пример, описанный по ссылке, то htop показывает 215MB RSS и 125MB SHR. Тут сам SBCL отожрал мегабайт 50-60, остальное - .NET плюс ASP .NET MVC. Не сильно чтобы дохера.

Для считай хелловорлда, который ничего по сути не делает? Это очень дохера.

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

С помощью боли и страданий?

Нет, конечно. Довольно легко было разрабатывать. Если не считать отдельных проблем с линуксом типа сигналов. Боль и страдания это как раз Qt. Потому что C++ и по ряду других причин.

Так-то я hsqml тыкал, там без проблем хачкель интегрируется с культями и C++.

Вот там как раз боль и страдания.

Для считай хелловорлда, который ничего по сути не делает? Это очень дохера.

Это весь дотнет, и весь обвес Asp .Net MVC. А со стороны лиспа, напомню там огромная стандартная библиотека, включая компилятор и прочее.

Отдельные контроллеры и пользовательский код занимают копейки вообще.

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

Боль и страдания это как раз Qt. Потому что C++ и по ряду других причин.

Нативно Qt вполне норм. Т.е. если есть опыт с C++, то это всё довольно хорошо работает.

Вот там как раз боль и страдания.

Кстати, не то чтобы сильно.

А со стороны лиспа, напомню там огромная стандартная библиотека, включая компилятор и прочее.

Зачем огромная стандартная библиотека вся грузится в память ради хелловорлда? Этого можно как-нибудь избежать?

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

Нативно Qt вполне норм. Т.е. если есть опыт с C++, то это всё довольно хорошо работает.

Проблема не в знании C++(к тому же Qt навешивает абстракций поверх C++, которые в язык нормально не ложатся)

Зачем огромная стандартная библиотека вся грузится в память ради хелловорлда? Этого можно как-нибудь избежать?

В реальности никто не пишет хелловорлды, и этот оверхед минимален.

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

Проблема не в знании C++(к тому же Qt навешивает абстракций поверх C++, которые в язык нормально не ложатся)

Это всё фигня. Судя по количеству достаточно годного софта на C++/Qt, это не является настолько большой проблемой, чтобы выкидывать совсем. Но если можно подложить соломки и сравнительно небольшой кровью избавиться от необходимости использовать C++, мне было бы интересно.

В реальности никто не пишет хелловорлды, и этот оверхед минимален.

В реальности существует очень жирная проблема: ты заранее не знаешь, сколько ресурсов будет потреблять твой код, пока не напишешь и не запустишь. Т.е. это можно попытаться предположить по используемым алгоритмам и т.д., но сраная проблема останова не позволяет давать никаких гарантий. С другой стороны, чем больше кода у тебя в принципе (твой код + зависимости + рантайм), тем больше шансов что кто-то где-то выжрет лишний гигабайт. И если не прямо сейчас, то в следующей версии.

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

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

С другой стороны, чем больше кода у тебя в принципе (твой код + зависимости + рантайм), тем больше шансов что кто-то где-то выжрет лишний гигабайт.

Нет, это надо вообще не соображать куда жмешь, либо же не писать на каком-то говноязыке с говнорантаймом, вроде пыхоплеяды(особенно Ruby или Python этим заметны - там оверхед на объекты и на GC итд - невменяемый просто), либо и то и другое(частое сочетание).

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

Все эти поделия на электроне это по сути Google Chrome, со всеми его проблемами(течет памятью итд). Написанный кстати на крестах, кстати. Лучше бы уже переписали на джабе или дотнете, в самом деле. И кодовая база бы упростилась, и производительность повысилась бы, и памяти стало б меньше жрать. Ну и поверх этого - жопоскрипт еще. Зачем это использовать - непонятно. Ну и это вообще, то есть, такой феноменальный треш и угар, что я не знаю зачем это вообще обсуждать и с чем-то сравнивать.

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

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

Поэтому в принципе, чем меньше кода (рантайма, зависимостей), тем лучше.

200мб это крошечное количество памяти, особенно что с учетом того что на таких платформах обычно пишут сервера приложений а не плодят кучу говнопроцессов на каждый чих.

lovesan ★★
() автор топика

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

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

При чем тут F#? Лисп тут не «на дотнете» работает, а через библиотеку интероперабельности.

В Java, кстати, инфраструктура донельзя убогая, она не подходит для чего-то кроме убогой жабы и жабаподобных языков(типа котлина), а интероперабельность с жабомашиной извне практически невозможна.

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

При чем тут F#? Лисп тут не «на дотнете» работает, а через библиотеку интероперабельности.

а какжи великий clr? девелоперз которые его могли уже перевели в менежеры или уволили?

В Java, кстати, инфраструктура донельзя убогая, она не подходит для чего-то кроме убогой жабы и жабаподобных языков(типа котлина), а интероперабельность с жабомашиной извне практически невозможна.

что вы подразумеваете говоря не подходит и убогая? я видел какие-то описания про запуск пхп, жс, питона. Но, честно говоря, языки кроме жабы(котлина) и скалы восновном являются дефективным говном поэтому и идея запускать в жвм всякое барахло или компилять граалем в бинарники стратегически неоч. хороша. Для интероперабельности с Си/Си++ уже сделали целых джве технологии.

Syncro ★★★★★
()

C# официально устарел и отправляется в помойку, т.к. теперь […] Common Lisp. Бедная твоя мамка, такого лося на свою пенсию содержать :( Лишперы - нищета ни на что не способная, лавсан нищета среди лишперов! /theread

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

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

Запустить и написать че угодно можно хоть на брейнфаке. Можно на брейнфаке написать интерпретатора фортрана, на нем интерпретатор жопоскрипта, и на нем компилятор хаскеля. Вопрос - как там с эффективность, поддержкой, отладкой, и вообще, зачем это делать?

В JVM нет ни ‘вычисляемого goto’, ни хотя бы tailcall - какие тут могут быть вообще, например, функциональные языки, или вообще, функциональный подход с такой дырой в виртуальной машине? Второе, в JVM нет концепции тегированных указателей, необходимых для динамических языков. Без этого они все будут тормозить, глючить и жрать память. Третье - нету даже value-типов, т.е. объектов которые бы передавались по значению, кроме встроенных. Это нагружает GC, нарушает локальность памяти и так далее.

Кроме того:

  • Модульность GC это ошибка
  • Нет беззнаковых типов
  • Нет делегатов/указателей на функции/замыканий/функций как first class объектов
  • Практически нулевая возможность интероперабельности, за исключением простенького говна на сишечке
  • JNI это просто неудобное говно, требует сторонний компилятор сишечки
  • JVM не умеет обращаться с указателями напрямую
  • Всратое ООП
  • Нет встроенной поддержки Generics
  • Всратая модель исключений
  • Всратая модель памяти
  • classloader это просто трешак, генерация кода в рантайме не проще чем на сишечке

JIT - выборочный, и иногда VM интерпретирует байткод. Это из сосальников жабомаркетологов звучит как типа «JVM может хитрожопо эвристически оптимизировать байткод набираясь ума по ходу выполнения», но IRL никаких хитрожопых оптимизаций ессно не происходит, а происходит только то что компиляция байткода происходит в куче мест и в рандомное время, вместо «сразу», в результате чего получаем неожиданную производительность в разных местах

А какой прикол представляют из себя synchronized? Ух, и какой адок творится в рантайме для поддержки этого кривого велосипеда, это вообще трешак. Но тут надо, конечно, отдать должное и дебилам из Microsoft, которые посчитали это охерительной идеей и скопировали.

И еще та же HotSpot написана на крестах, и написана как говно(что впрочем обычное дело для продукта на крестах)

Короче даже лень перечислять все, чем убога JVM. Хотел оговориться, «стандартная» JVM но нет, подумал, что в принципе все это касается примерно всех реализаций.

Хуже ли это чем Go? Нет. Хуже ли чем C++? Нет. Хуже чем даже хотя бы .NET? Да. Про сравнения с рантаймами лиспов, я вообще даже не говорю, это другая галактика просто, в сравнении с этим наколеночным говном придуманным для идиотов.

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

Очевидно, нет. Как Java, так и Kotlin, являются убогим говном, и продуктами специально предназначенными для идиотов, что их авторы даже и не скрывают. Ни нормального метапрограммирования, ни чего-то еще более интересного, там нет, и никогда не будет.

Для интероперабельности с Си/Си++ уже сделали целых джве технологии.

Базовая интероперабельность с Си есть в любой сраной скриптоте. Но дальше базовой интероперабельности ты не прыгнешь, и уже даже с C++ начинаются проблемы - чему пример библиотеки ImageMagick - советую погуглить на эту тему.

С другими рантаймами, других языков программирования(того же лиспа), JVM в принципе не совместима(есть некоторые хаки, но в целом - не совместима, ни в одну сторону, ни в другую).

lovesan ★★
() автор топика

А в Java + Spring уже есть и давно:

(ns org.msync.spring-clj.core
  (:require [org.msync.spring-boost :as boost]
            [compojure.core :refer :all]
            [compojure.route :refer [not-found]]
            [clojure.string])
  (:import [java.util.logging Logger]
           [org.springframework.context ApplicationContext]))

(defonce logger (Logger/getLogger (str *ns*)))

(defroutes app
  "Root hello-world GET endpoint, and another echo end-point that handles both GET and POST.
  The :body entry in the request-map comes in either as a map for JSON requests, or as a String
  for other types."
  (GET "/" [:as {query-string :query-string}]
       (str "<h1>Hello World.</h1>"
            (if-not (clojure.string/blank? query-string) (str "We received a query-string " query-string))))
  (GET "/echo/:greeter" [greeter]
       {:status 200
        :headers {:content-type "application/json"}
        :body {:greeting (str "Hello, " greeter)}})
  (POST "/echo/:greeter" [greeter :as request]
        {:status 200
         :headers {:content-type "application/json"}
         :body {:greetings (str "Hello, " greeter)
                :echo (:body request)}})
  (not-found "<h1>Page not found</h1>"))

(defn web-socket-handler [session]
  (pr-str session)
  ;; Use the session as you wish - to create session-specific handlers
  (fn [^String message]
    (str "Hello, " (.toUpperCase message))))

(defn main
  "Set this as your entry-point for the Clojure code in your spring-boot app.
  Gets the ApplicationContext object as an argument - which you are free to ignore or use."
  [^ApplicationContext application-context]

  (.info logger (str "[spring-clj] Initializing clojure app..."))
  (boost/set-handler! app)
  (boost/set-websocket-handler! web-socket-handler))
alex0x08 ★★★
()

Мьсе конечно знает толк:

(use-namespace '(System
                 System.Collections.Generic
                 System.Net.Http
                 System.Threading
                 System.Threading.Tasks
                 System.Web

Тебе бы накал самолюбования и элитарности снизить и выложить куда-нибудь на профильные ресурсы, где дотнетчики тусуются. Авось и взлетит в качестве «Job security».

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

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

Выпендриваться заканчивай и партнеров подельников ищи. Проект-то зачетный но в одиночку не осилишь. Путь к успеху - по образцу Clojure, может даже сам Майкрософт купит.

Лет десять копания в правильном направлении и будет дача на Багамах, с катером.

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

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

По претензиям к возможностям типа указателей: это скорее плюс, т.к. мы не наблюдаем в жаба коде всех этих сегфолтов хитронаписанного кода.

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

Базовая интероперабельность с Си

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

Ни нормального метапрограммирования

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

Хуже ли это чем Go? Нет. Хуже ли чем C++? Нет. Хуже чем даже хотя бы .NET? Да

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

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

Нет, это надо вообще не соображать куда жмешь, либо же не писать на каком-то говноязыке с говнорантаймом, вроде пыхоплеяды(особенно Ruby или Python этим заметны - там оверхед на объекты и на GC итд - невменяемый просто), либо и то и другое(частое сочетание).

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

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

Я не уверен. Стандарты W3C сейчас – ад и говно, не в последнюю очередь стараниями самого Google по выдавливанию конкурентов, но я не уверен, что их можно реализовать сильно эффективнее чем в Blink. От выбора языка вряд ли зависит (если это не пистон).

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

Я тоже так думал. А потом выяснилось, что в современных библиотеках сожрать в 20 раз больше памяти чем размер входных данных чтобы распарсить JSON – это вполне норм явление. Типа, скармливаешь кусок JSON на 15 мегабайт, а памяти жрётся минимум 400 при парсинге. Ну и что ты с этим сделаешь?

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

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

200мб это крошечное количество памяти, особенно что с учетом того что на таких платформах обычно пишут сервера приложений а не плодят кучу говнопроцессов на каждый чих.

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

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

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

С тем, что Microsoft – говноеды, спорить трудно. Но OCaml – довольно неплохой язычок. Никакой элитарности в нём нет даже и близко.

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

Но OCaml – довольно неплохой язычок

навскидку выглядит как обрывок скАлы;), ну ни там нет ничего приличного, кроме паттерн-матчинга который теперь хоть в жабе есть

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

навскидку выглядит как обрывок скАлы;),

Главное, смайликов ставь больше.

ну ни там нет ничего приличного, кроме паттерн-матчинга который теперь хоть в жабе есть

В твоей черепной коробке нет ничего приличного, кроме полостей для изучения вихревых потоков и турбулентности.

Паттерн-матчинг – это как раз самая скучная вещь в окамле. А вот нативная поддержка алгебраических эффектов и дикая система модулей, позволяющая их параметризовать или передавать параметрами – это просто рулез. Серьёзно, такой системы модулей я нигде не видел. В Haskell пытались с Backpack, но не потянули.

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

А вот нативная поддержка алгебраических эффектов и дикая система модулей, позволяющая их параметризовать или передавать параметрами – это просто рулез.

вирхевой поток навеял что-то околоперловое из разряда write-only для самовыражающихся в коде, вы ведь осознаете, что таких держат только что-бы подставлять других разработчиков и разработки?

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

единственное, что я видел на нём в дикой природе - это WeIDu.

так скажем, если бы автор нопейсал его на Perl (что было бы идеально, так как юзкейс 100% располагает), то все ошибки в нём давно бы уже кто-нибудь исправил.

а так это неведома зверушка.

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

единственное, что я видел на нём в дикой природе - это WeIDu.

Это гораздо больше говорит о тебе, чем об OCaml.

Хотя я не спорю, что это далеко не самый популярный язычок, но – блин! – самый известный проект на OCaml – это Coq. И вот вместе их часто применяют.

В остальном, ты мог его видеть в Rust (первые версии компилятора Rust были на OCaml, поэтому Rust «такой»), в Facebook (ReasonML) и ещё в других местах. Короче, применений хватает.

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

А вот нативная поддержка алгебраических эффектов и дикая система модулей, позволяющая их параметризовать или передавать параметрами – это просто рулез.

вирхевой поток навеял что-то околоперловое из разряда write-only для самовыражающихся в коде, вы ведь осознаете, что таких держат только что-бы подставлять других разработчиков и разработки?

Тебя окамлисты подставили? Соболезную.

Я на нём не пишу, мне за Haskell платят. Но тем не менее, от работы с OCaml я бы наверное не отказался. Не вижу в нём ничего сложного. Весьма простой и приятный язычок, особенно в сравнении с монстрами типа C# или C++ (про жабу я молчу).

А write-only – это Java, да.

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

жаба это wite-once как и должно быть, все остальное дефектифная фимозная дрянь, почему нельзя сделать язык просто с нормальным синтаксисом и всеми обязательными фичами типа классов, интерфейсов, исключений, полиморфизма? популярная айтишка развивается лет 40 и чем дальше тем хуже

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

все остальное дефектифная фимозная дрянь

Сделай уже обрезание, как завещал Авраам, и не ной. Разнылся тут со своим фимозом.

почему нельзя просто сделать язык с нормальным синтаксисом

В ML-подобных языках самый крутой синтаксис IMO. Вообще, самый охрененный синтаксис в Agda, но это не совсем язык программирования. То есть, писать софт на Агде можно, но лучше не надо.

обязательными фичами типа классов, интерфейсов, исключений, полиморфизма

Ну, в хачкелле это всё есть. Ты уже осилил хачкель?

популярная айтишка развивается лет 40 и чем дальше тем хуже

Айтишка развивается, а ты деградируешь.

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

В ML-подобных языках самый крутой синтаксис IMO

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

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

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

Мои коллеги отлично понимают Haskell и OCaml. Если твои не понимают, то тебе стоит сменить работу.

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

Чувак, ты ЛОР с унитазом перепутал. Выкинь свой высер в канализацию, смой и не забудь воспользоваться ёршиком.

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

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

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

если бы хачкель с окамлом были кому-то нужны кроме пафосных шестерок у вредителей типа мелкософта они повторили бы судьбу перла.

Сдохли бы, что ли? Потому что перл сдох.

Окамл, кстати, тоже чуть не сдох. Долгое время он был известен как «язык на котором написан Coq». Но в последние годы вроде разработка оживает и за допиливание компилятора наконец взялись нормально.

А с Haskell вообще всё зашибись. Чуть ли не самый популярный функциональный язычок сегодня, примерно на уровне с Erlang/Elixir по популярности.

создавать шедевры write-only.

Ну, короче, ты просто не осилил даже синтаксис хачкелла (хотя он простой как коробка) и ноешь. Я понял. Но ты подумай, ведь проще синтаксиса хачкелла только лишп.

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

впринципе, тем же самым занимаются всякие 1сники, они делают привычные и обычные вещи максимально изощренным и непохожим на мейнстрим способом: пишут код на кирилице, декораторы обозначают символом & вместо @, и так везде

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

Но в последние годы вроде разработка оживает и за допиливание компилятора наконец взялись нормально.

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

на уровне с Erlang/Elixir по популярности

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

Ну, короче, ты просто не осилил даже синтаксис хачкелла

для вас разработка это состязание и возможность самоутверждаться?

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

даже на нормальных языках не перепишешь..

Что такое «нормальные языки» и зачем на них переписывать работающий код?

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

О! Ты знаком с Эрминой?

Вообще, на энларге до жопы всего написано. Крайне удобный язычок для написания сетевого говна и диспатчинга всякой срани в модули на более производительных язычках. @ergo тут пилит довольно крутую штуку для взаимодействия Erlang и golang на одном протоколе. Я всё подумывал попробовать сделать PoC такого же но в Haskell, но у меня времени нет.

для вас разработка это состязание и возможность самоутверждаться?

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

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

Что такое «нормальные языки»

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

Erlang и golang на одном протоколе. Я всё подумывал попробовать сделать PoC такого же но в Haskell

чтобы кому-нибудь мог упасть проект сразу с тремя уродливыми контрпродуктивными технологиями?

Но все твои доводы тут сводятся к «я не понимаю, зачем это нужно, а значит это плохо».

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

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

c синтаксисом позволяющим обходится без линтера и специальных редакторов и позволяющих писать код в соответствии с базовыми принципами разработки ПО как я уже отмечал выже.

Буквально Haskell! У меня тут подсветка синтаксиса и автоформатирование сдохли в емаксе, так я только спустя неделю заметил (у меня монохромная тема).

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

Я пишу код для того, чтобы мне деньги платили. Мне платят их за Haskell, а значит он кому-то нужен кроме меня. Пруф нужности через капитализм!

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

Я пишу код для того, чтобы мне деньги платили. Мне платят их за Haskell,

кажется это работает так: «Вот у нас есть кусочек 50 строк на хачкел/окамл поэтому мы не дегенераты даже если пишем остальные 90% на сишарпе/пхп/пипоне»

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

Я пишу код для того, чтобы мне деньги платили. Мне платят их за Haskell,

кажется это работает так: «Вот у нас есть кусочек 50 строк на хачкел/окамл поэтому мы не дегенераты даже если пишем 90% на сишарпе/пхп/пипоне»

Не, у нас их нет. На пистоне только местами скрипты для запуска тестов и подобного говна. А так в основном хачкель, руст, elm+js для браузера и где-то сишечка для низкоуровневого говна.

Всё ещё не понимаю твою попоболь по поводу этих языков.

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

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

Вот это у вас содомия, как же здорово 😊💥.

Но-но! Никакой содомии! У нас девки-хаскеллистки работают! Всё строго гетеросексуально!

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

ну все что вы перечислили это из разряда самовыражения содомизированных художников(от слова худо) в коде, кроме сишки, языка уровня 50летней давности, которая у вас очевидно что-бы популяризировать руст и остальных уродцев

Syncro ★★★★★
()