LINUX.ORG.RU

Web on нормальные языки

 , , ,


0

6

Всем привет! Интересуют веб-фреймворки + орм (PGSQL, MongoDB) на чем-то компилируемом. Гуглить по Golang, Rust, Crystal, Nim - я умею. Интересуют вещи на C++, C (Kore.io видел), Dlang, etc.

JVM/.Net не инетресуют.

Есть конкретно API с большой долей нагрузки (минимально на стороне базы при этом) и очень ограниченными API: расшифровать JWT, получить данные с базы, их обработать, записать точечно новые данные, выдать ответ.

Вообще - на сколько это нормальная идея писать API на компилируемом языке и что лучше для этого подходит сейчас?

Обычно, так делают, после прототипизации на чём-то более традиционном, конторы у которых дофига бабла. Ну или борщееды за фан.

pon4ik ★★★★★ ()

Гуглить по Golang, Rust, Crystal, Nim - я умею

Из приведенного живыми являются только Go и Rust.

tailgunner ★★★★★ ()

По теме - анонимус как-то советовал глянуть сюда. Но, учитывая, как часто я имею дело с web, я ессно пилил все микро поделки на питоне. Тем более, есть божественный boost.python, который позволяет быстренько прокинуть мишн критикал api в python.

Писать морду на плюсах или сишечке, надо только если ожидаешь большую нагрузку на морду, и бэк не масштабируется(или уже отмасштабировался но хочется ещё больше) горизонтально. Если нагружен только бэк, а на морду придёт <= <framework name perfromance> запросов в день/час/секунду, то лучше взять специализированный инструмент.

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

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

silver-bullet-bfg ★★ ()
Ответ на: комментарий от silver-bullet-bfg

Божественный - boost.python. Python, он просто Python, удобен, когда удобен.

pon4ik ★★★★★ ()

Я когда-то собирал подборки ссылок на подобные вещи для C++.

Если нужны именно фреймворки, то небольшой перечень здесь: http://eao197.blogspot.com/2014/12/progc-c-web.html Вроде как еще актуальный. Разве что добавился еще и https://cutelyst.org/ на базе Qt.

Если нужны библиотеки, которые позволяют встроить HTTP-сервер в свое приложение, то вот: http://eao197.blogspot.com/2016/04/progc-c-http.html

Только сейчас к нему нужно еще добавить https://www.boost.org/doc/libs/1_67_0/libs/beast/doc/html/index.html (правда брать ее для прикладной разработки могут разве что мазохисты из-за ее низкоуровневости)

а так же, вполне естественно, https://github.com/Stiffstream/restinio Сделано для людей ;)

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

Хм, и чем это отличается от boost.python, за исключением более жёсткого ограничения на стандарт c++, сборки от васяна и того, что придётся тащить что-то ещё в проект?

pon4ik ★★★★★ ()

Ты определись, всё-таки, на нормальных языках, или на C++.

Miguel ★★★★★ ()

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

Например, тот же GitHub API написан на ruby.

blackst0ne ★★★★★ ()

нормальные языки
C++, C (Kore.io видел), Dlang, etc.

Чем упарываешься?

foror ★★★★ ()

на сколько это нормальная идея писать API на компилируемом языке и что лучше для этого подходит сейчас?

нормальная идея - это писать Rest-API на том-же что и весь остальной проект. Думаю вряд-ли у вас мега-нагрузки,всё размётано по серверам/облакам и вы можете себе позволить поддерживать двух-трёх языкий проект:-)

я с удовольствием использовал mongoose https://cesanta.com/docs/overview/intro.html он маленький и простой, наваять бэк-энд на чистом С (тем паче на плюсах), можно быстро и без заморочек.

MKuznetsov ★★★★★ ()
Ответ на: комментарий от silver-bullet-bfg

Тем, что не у всех хватает ума осилить.

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

А, ну джангистам и прочим альтернативно пишущим личностям тут мимо, да

silver-bullet-bfg ★★ ()
Ответ на: комментарий от anonymous

не у всех хватает ума осилить

А что там осиливать? Си прост как полено.

no-such-file ★★★★★ ()

На Haskell сайты пишут. Биндинги к react тоже в наличии.

hateyoufeel ★★★★★ ()

Нормальная идея писать на хоть сколько-нибудь распространённых языках. PHP, Java, C#, Python, Go. Остальное - весьма сомнительно. Если хочется пофаниться, я думаю, на Rust будет прикольно.

Legioner ★★★★★ ()
Ответ на: комментарий от silver-bullet-bfg

И чем Pure C не нормальный язык?

Тем, что сейчас не 80е и даже уже не 90е. Делать на нем прикладуху это точно нужно быть альтернативно одаренным.

Или DLang?

Ну если некрофил, то наверное норм.

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

я с удовольствием использовал mongoose

А теперь сравните с тем же питоном.

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

Если хочется пофаниться, я думаю, на Rust будет прикольно.

На расте пока всё ну очень сырое. Быстрое, но сырое.

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

А теперь сравните с тем же питоном.

нахрена мне питон, если проекты на С и для разных платформ? тренироваться в админстве питона и таскать с собой его зоопарк??

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

Не быстрее базы в которую упрется приложение.

ritsufag ★★★★★ ()

Кстати, не знаю на сколько ты осведомлен, но JVM уже компилируема: https://sites.google.com/a/athaydes.com/renato-athaydes/posts/a7mbnative-imag... И более того https://www.reddit.com/r/java/comments/8s7sr8/interacting_with_c_using_graalvm/ Можешь вычеркнуть из списка недоразумения типа Go.

foror ★★★★ ()
Последнее исправление: foror (всего исправлений: 3)
Ответ на: комментарий от silver-bullet-bfg

на сколько это нормальная идея писать API

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

Чтобы понять, что будет для тебя нормой — нужно понять твою религию. Для кого-то свинину есть — норма, для кого-то нет. Так что сформулируй вопрос так, чтобы были объективные критерии.

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

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

ritsufag ★★★★★ ()

что ты подразумеваешь под API? если у тебя просто сервер на порте сидит и слушает запросы - это одно. если тебе нужен веб со всей его дриснёй - это другое.

Iron_Bug ★★★★ ()

Есть конкретно API с большой долей нагрузки (минимально на стороне базы при этом) и очень ограниченными API: расшифровать JWT, получить данные с базы, их обработать, записать точечно новые данные, выдать ответ.

Пиши в базе, чо.

Есть swift, чем он тебе не нравится?

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

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

Быстрое

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

LjubaSherif ()
Ответ на: комментарий от no-such-file

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

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

По теме - анонимус как-то советовал глянуть сюда.

Плохо советовал. Как только дело доходит до чего-то посложнее «отдал текст» - наступает полная жопа. И жопа у тебя порвётся на натуги на первой мидлваре.

LjubaSherif ()

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

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

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

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

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

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

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

Так это уже знание предметной области, а не языка.

no-such-file ★★★★★ ()
Ответ на: комментарий от Nexmean

Это не сравнение с С/С++, а дерьмо. Ну сравни с жабкой и тебя постигнет неудача, своей ссылкой ты помножил смысл существования раста на ноль. Если жабка быстрее(такая же) и безопаснее, то нахрена тогда нужен раст?

Ах ну и да, раст это набор обёрток вокруг системной лапши на си, при этом у нас даже нету cputime, чтобы оценить оверхед. Ты бери и бенчи не обёртку над C/C++, а реальный код на расте. Ах да, я забыл, такого нету. Ну тогда ничего не поделать.

LjubaSherif ()
Ответ на: комментарий от no-such-file

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

LjubaSherif ()

Потыкай в Dart, мне понравилось

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

Если жабка быстрее(такая же) и безопаснее, то нахрена тогда нужен раст?

Тут во первых IO bound, так что ничего удивительного, что тут жабка почти такая же, во вторых жаба не безопаснее safe Rust'а.

Ах ну и да, раст это набор обёрток вокруг системной лапши на си

Какой ещё набор обёрток? Ты чо несёшь вообще? Весь стек actix'а и код бенчмарка написаны целиком на Rust.

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

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

fixed

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

Если жабка быстрее(такая же) и безопаснее, то нахрена тогда нужен раст?

Написать безопасную ОС и безопасный браузер? Но это уже неточно, если жабка продолжит в том же темпе совершенствовать JVM, то может проще на JVM всё это запилить? На WebAssembly вон уже пилят в ring0...

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

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

ЛОЛ ЧТО? Знание предметной области обязательно всегда. Мы же не про хеловорды говорим, которые и на Си может любой профан шлёпать, как и на любом другом языке. Сегодня область применения Си - это либо системный софт, либо высокоэффективный прикладной. Само собой, что и то и другое предполагает определённые знания и с языком это никак не связано - это знания в предметных областях «системное программирование» и «низкоуровневая оптимизация». Если я захочу писать высокоэффективный софт на другом языке, то мне также понадобятся эти знания и все подробности о том, как хранятся данные, как собирается мусор и т.п. магия с ручным управлением.

no-such-file ★★★★★ ()
Последнее исправление: no-such-file (всего исправлений: 3)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.