Лично мне раст куда удобнее, чем плюсы (синтаксис, как минимум), а раз уж речь не про бизнес задачи, то вопрос удобности/приятности стоит довольно высоко. Так что я бы сказал, что проще не парится и писать на расте (имхо).
Возможно, сказывается привычка, но факт остаётся фактом.
Самоуважение есть у всех. Но вот мне полностью всё равно на то, кем(и) был написан язык, если он хороший. Кто бы что не говорил, но котлин реально хороший язык. Да, кому-то он нравится больше или меньше (и причины не важны в нашем контексте. Оправдывать своё мнение перед вами я не намерен), чем иные языки, но он нашёл свою нишу и аудиторию и это факт. Получается, нельзя использовать хороший язык только из-за того, что его создатели ввели санкции на свои ide? Вау, как же пофиг. Язык полностью функционален и работает в России. Если отказываться от языков программирования только из-за действий компании, создавший его, мы себя как раз и будем унижать.
И да, 100% вы используете зарубежные ресурсы, которые ушли из России. Но используете же. Почему? Потому что удобно и привычно. Вот и весь ответ
Фишка в том, что я написал следующее: "**для меня** котлин лучше джавы". Почему? Отдельная тема. Я не пытаюсь переубедить вас в том, что джава лучше. Хотите использовать её - используйте.
Речь про компании правильна, но компания не будет читать книгу по паттернам котлина, когда им с чего-то вдруг упёрлась именно джава (опять же, понятно с чего). Если компания только начала делать продукт, то выбор как раз будет и вопрос "джава или котлин" будет разбираться глубже, чем мы сейчас пишем. Санкции? Очень спорно. Писать код можно в любой ide и чихать хотелось на intelij (классные, но не единственные ide в мире)
Это всё классно, но (моё личное мнение) kotlin куда лучше java, а я хочу писать код на том языке, который, по моему субъективному мнению, лучше. Мне вот как-то всё равно на jetbrains. Они создали язык, который мне понравился, и я им пользуюсь.
И по поводу санкций... А что они ввели, кроме запрета на покупки их ide? Вот тут я не следил и могу ошибаться, извиняюсь
Моя задача в первую очередь была набраться опыта в создании нечто большего, чем обычный пет проект (видимо так себе получилось):)
Проект не рассчитан на бизнес и решение его проблем) конечно, для задач бизнес можно и даже нужно писать веб сервера самостоятельно. Я же создаю этот проект для менее... обеспеченной(?) навыками, знаниями или людьми стартапов или просто для обычных людей, которые не хотят тратить время на изучение, но веб сервер им почему-то нужен. В целом и проекты другие, которым нужен не слишком сложный бэкенд, могут воспользоваться этим.
NGINX безусловно хорошее решение, но это другая ниша. Я с ним и не планировал конкурировать. Писать саму серверную логику в nginx не очень то и удобно (хотя обратный прокси на нём замечательно работает), а у моего предложения как раз на неё идёт упор. Для сложный сценариев я добавил возможность интегрировать плагины, но даже с ними бизнесу (крупному.... хотя кто его знает...) вряд ли потребуется это решение
Плюс вообще не понял, чем этот проект на rust лучше asp net core на c#, который я использую сейчас
Вообще цель проекта - ускорение разработки. Я очень стараюсь сделать написание кода минимальным. Да, своей ценой - изучение нового "языка" (условный, конечно, язык, но не суть), но он должен уменьшить количество этих самых строк кода и не требовать глубокого понимая принципов работы веб серверов, увеличивая абстракцию и скрывая от пользователя детали работы. Т.е. пользователю нужно только объявить маршруты и что веб серверу надо делать при запросе на этот маршрут.
Раст здесь (для пользователя. Понятное дело, что весь проект на нём) нужен только для тех, кому требуются более экзотические задачи или просто те (задачи), которые не даёт решить сам RDL. Сейчас я делаю на этом же проекте веб сервер, который будет выступать в роли "ракетного менеджера" для RDL и позволять публиковать/скачивать плагины. Если всё будет реализовано по плану, это позволит большинству пользователей не писать платины самостоятельно, т.к., вероятно, под их задачу уже будет всё написано ранее (и опубликовано)
Netter - это инструмент для быстрого и лёгкого запуска серверов. Поддерживается конфигурация через кастомный язык Route Definition Language (RDL). RDL позволяет определять возможные маршруты сервера, его TLS конфигурацию, хост (ip) и порт, на котором он будет работать. Вы можете описать логику, которая будет вызываться на каждый запрос по этому маршруту. Уже готова, но пока нет на гитхабе, система плагинов - вы можете писать свои платины (кастомные функции) для RDL на языке Rust; готов крейт, который упрощает разработку плагинов.
Синтаксис языка:
config {
type = "http";
host = "127.0.0.1"; // или ваш айпи
port = 9090;
}; // ';' - обязательно
import "path/to/file.dll" as plug;
// "path/to/file.dll" - ваш путь к динамической библиотеки, собранной вами ранее.
// plug - алиас для плагина. Позволяет вызывать функции из дин. библиотеки с помощью
// plug::func_name(args); или ваш алиас
route "/" GET {
val body = Request.body()?;
// объект Request даёт доступ к функциям этого объекта
// '?' ловит ошибки и переносит их в обработчик ошибок
Response.body(body);
Response.send();
} onError(e) {
Response.body("Error: " + e);
Response.status(500);
Response.send();
}; // onError - локальный обработчик отчик ошибок
// глобальный обработчик. Пишется вверху файла
// global_error_handler(e) { logic };
// (e) или любое другое имя вместо e - алиас к ошибке (т.е. "переменная" в которую сохраняется содержимое ошибки)
RDL имеет строковую типизация - всё = строки (даже цифры без кавычек и true/false. Это тоже переводится в строки под капотом)
Лично мне раст куда удобнее, чем плюсы (синтаксис, как минимум), а раз уж речь не про бизнес задачи, то вопрос удобности/приятности стоит довольно высоко. Так что я бы сказал, что проще не парится и писать на расте (имхо).
Возможно, сказывается привычка, но факт остаётся фактом.
Самоуважение есть у всех. Но вот мне полностью всё равно на то, кем(и) был написан язык, если он хороший. Кто бы что не говорил, но котлин реально хороший язык. Да, кому-то он нравится больше или меньше (и причины не важны в нашем контексте. Оправдывать своё мнение перед вами я не намерен), чем иные языки, но он нашёл свою нишу и аудиторию и это факт. Получается, нельзя использовать хороший язык только из-за того, что его создатели ввели санкции на свои ide? Вау, как же пофиг. Язык полностью функционален и работает в России. Если отказываться от языков программирования только из-за действий компании, создавший его, мы себя как раз и будем унижать.
И да, 100% вы используете зарубежные ресурсы, которые ушли из России. Но используете же. Почему? Потому что удобно и привычно. Вот и весь ответ
Отчасти согласен.
Фишка в том, что я написал следующее: "**для меня** котлин лучше джавы". Почему? Отдельная тема. Я не пытаюсь переубедить вас в том, что джава лучше. Хотите использовать её - используйте.
Речь про компании правильна, но компания не будет читать книгу по паттернам котлина, когда им с чего-то вдруг упёрлась именно джава (опять же, понятно с чего). Если компания только начала делать продукт, то выбор как раз будет и вопрос "джава или котлин" будет разбираться глубже, чем мы сейчас пишем. Санкции? Очень спорно. Писать код можно в любой ide и чихать хотелось на intelij (классные, но не единственные ide в мире)
Это всё классно, но (моё личное мнение) kotlin куда лучше java, а я хочу писать код на том языке, который, по моему субъективному мнению, лучше. Мне вот как-то всё равно на jetbrains. Они создали язык, который мне понравился, и я им пользуюсь.
И по поводу санкций... А что они ввели, кроме запрета на покупки их ide? Вот тут я не следил и могу ошибаться, извиняюсь
Ну и правильно.
Я ушёл с дуалбута из-за какой-то стрёмной проблемы, решение на которую я не нашёл даже в гугле (нашёл, но они были бесполезны).
Дело вкуса) меня лично полностью устраивает винда и мне всё нравится. Кому-то линукс больше нравится. Разницы 0))
Я лично наоборот сделал)
Пользуюсь виндовй, а для всяких необычных задач стоит линукс на виртуалке
Благодарю за совет
Спасибо за комментарий!
Как бы вы предложили отправлять файлы? Принмать файлы с помощью multipart/form-data?
Да, я это заметил. В голове есть структура более правильная. Сейчас планирую написать её заново.
Статья реально плоха, к сожалению(
Моя задача в первую очередь была набраться опыта в создании нечто большего, чем обычный пет проект (видимо так себе получилось):)
Проект не рассчитан на бизнес и решение его проблем) конечно, для задач бизнес можно и даже нужно писать веб сервера самостоятельно. Я же создаю этот проект для менее... обеспеченной(?) навыками, знаниями или людьми стартапов или просто для обычных людей, которые не хотят тратить время на изучение, но веб сервер им почему-то нужен. В целом и проекты другие, которым нужен не слишком сложный бэкенд, могут воспользоваться этим.
NGINX безусловно хорошее решение, но это другая ниша. Я с ним и не планировал конкурировать. Писать саму серверную логику в nginx не очень то и удобно (хотя обратный прокси на нём замечательно работает), а у моего предложения как раз на неё идёт упор. Для сложный сценариев я добавил возможность интегрировать плагины, но даже с ними бизнесу (крупному.... хотя кто его знает...) вряд ли потребуется это решение
Да, я имел ввиду именно веб сервер, извиняюсь)
Вообще цель проекта - ускорение разработки. Я очень стараюсь сделать написание кода минимальным. Да, своей ценой - изучение нового "языка" (условный, конечно, язык, но не суть), но он должен уменьшить количество этих самых строк кода и не требовать глубокого понимая принципов работы веб серверов, увеличивая абстракцию и скрывая от пользователя детали работы. Т.е. пользователю нужно только объявить маршруты и что веб серверу надо делать при запросе на этот маршрут.
Раст здесь (для пользователя. Понятное дело, что весь проект на нём) нужен только для тех, кому требуются более экзотические задачи или просто те (задачи), которые не даёт решить сам RDL. Сейчас я делаю на этом же проекте веб сервер, который будет выступать в роли "ракетного менеджера" для RDL и позволять публиковать/скачивать плагины. Если всё будет реализовано по плану, это позволит большинству пользователей не писать платины самостоятельно, т.к., вероятно, под их задачу уже будет всё написано ранее (и опубликовано)
Добавлял как опция) https не обязателен и по умолчанию всё работает на стандартном http.
Netter - это инструмент для быстрого и лёгкого запуска серверов. Поддерживается конфигурация через кастомный язык Route Definition Language (RDL). RDL позволяет определять возможные маршруты сервера, его TLS конфигурацию, хост (ip) и порт, на котором он будет работать. Вы можете описать логику, которая будет вызываться на каждый запрос по этому маршруту. Уже готова, но пока нет на гитхабе, система плагинов - вы можете писать свои платины (кастомные функции) для RDL на языке Rust; готов крейт, который упрощает разработку плагинов.
Синтаксис языка:
RDL имеет строковую типизация - всё = строки (даже цифры без кавычек и true/false. Это тоже переводится в строки под капотом)
Надеюсь на фидбэк!