Kyubey
@Kyubey

Какой язык подойдёт для бекенда web-приложения?

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

У меня всего несколько требований к языку, на котором я бы хотел писать:
  • Строгая типизация.
  • Быстродействие. Не то, что бы у меня хай-лоад, но я хочу, чтобы быстродействие моего кода больше зависело от меня, нежели от языка.
  • Язык должен быть компилируемого, а не интерпретируемого типа.
  • Он должен быть кросс-платформенным (windows, linux) и не вызывать проблем при работе ни на том, ни на другом.
  • Он не должен тянуть за собой тонны легаси и проприетарщины просто для работы, должен быть более-менее независимым.
  • Этот язык должен быть стабилен (без этого "обновил пакет - исчезла половина фич"), но должен иметь хорошее сообщество и развиваться (иначе в нём придётся разбираться одному, а это немного грустно).
  • Язык должен подходить для веб-разработки - на нём уже есть что-то написанное, есть какие-то общепринятые стандарты разработки, всяческие решения, которые можно брать за основу, уже не говоря о фреймворках, адаптерах и так далее.
  • Хотелось бы, чтобы синтаксис такого языка был логичен и интуитивно понятен, а использование его возможностей не склоняло программиста к костыльно-ориентированному программированию. Желательно, чтобы был ещё и фреймворк, на который можно было бы тоже писать без костылей.
  • Программа, написанная на таком языке, не должна есть много памяти из-за каких-нибудь там виртуальных машин, не должна течь и вообще должна занимать ровно столько памяти, сколько ей нужно.
  • Должно быть более-менее легко производить дебаг, в том числе желательно и удалённый.


Можете вы посоветовать что-нибудь, что будет подходить под все эти пункты? Найдётся ли такой язык и существует ли он вообще хоть где-нибудь? Я знаю (или так или иначе слышал) о многих языках, которые подходят под часть из этих пунктов, но такого, чтобы подходил под все - не вижу.
Это не значит, что я всё знаю и всё видел. Возможно, вам удастся преподнести уже известный мне язык с какой-то новой стороны, поэтому просто попробуйте предложить мне его, описав по пути, чему из списка он удовлетворяет и как. Если вас, конечно, не затруднит.
Вы можете предлагать мне и другие решения, например, стеки.

P.S. Интим и PHP не предлагать
  • Вопрос задан
  • 496 просмотров
Пригласить эксперта
Ответы на вопрос 7
saboteur_kiev
@saboteur_kiev Куратор тега Веб-разработка
software engineer

Язык должен быть компилируемого, а не интерпретируемого типа.
Он должен быть кросс-платформенным (windows, linux) и не вызывать проблем при работе ни на том, ни на другом.

Почему?
Современные интерпретируемые java и python, да и php уже догоняет уже не совсем интерпретируемые, и используют jit компиляцию. По скорости уже вполне норм.

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

Тонны легаси и проприетарщины тянет не язык, а программист.
Судя по вашим требованиям и оверхед подходу к выбору языка, вы только ТЗ будете писать месяцами. А к тому моменту, как вы выпустите в продакшн само прилжение, оно уже станет легаси.

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

А как зависит "течь" от языка? Это зависит от криворукости программиста.

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

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

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

Быстродействие всегда и зависит от программиста..

Вообще, может быть рассмотрите ассемблер? На нем даже веб сервер уже есть написанный, и стандарты в нем есть, и компилируемый, и программа в нем точно занимает ровно столько, сколько вы ей дали.
Ответ написан
@goblinboom
Java,HTML,CSS,Bootstrap
Java
Ответ написан
Комментировать
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
Есть лишь один такой
DLang
vibed.org
Ответ написан
ThunderCat
@ThunderCat Куратор тега Веб-разработка
{PHP, MySql, HTML, JS, CSS} developer
Если коротко:
>>Строгая типизация.
до жопы, ибо с клиента чаще всего приходят нетипизированные данные, их все равно надо валидировать и приводить к нужному типу.
>>Быстродействие.
От задачи к задаче вы получите разное быстродействие на разных языках (сарказм по асм поскипан)
>>Язык должен быть компилируемого, а не интерпретируемого типа.
не совсем ясна мотивация, ну да ладно, хозяин барин...
>>Он должен быть кросс-платформенным
основные грабли кроссплатформенных яп - оконный интерфейс, в вебе будет проще, по этому почти любой современный яп подойдет.
>>Он не должен тянуть за собой[поскипано многабукаф]
Все что-то за собой тянет, и объем тянущегося зависит от возраста/развитости платформы, соответственно смотрите в сторону зеленых новичков, получив в придачу сыроватый функционал и слабо развитое коммюнити/доки.
>>Этот язык должен быть стабилен
стабилен в вашей интерпретации - мертв(ибо без изменеий нет развития), либо противоречит предыдущему пункту. Почти любое серьезное обновление ведет к изменениям в коде(и в частности пропадание/появление старых/новых либ нормальный процесс)
>>Язык должен подходить для веб-разработки
Почти все уже адаптировали под веб, ибо народу всегда интересно завести своего уродца под новую задачу (снова поскипан сарказм про асм)
>>Хотелось бы, чтобы синтаксис такого языка был логичен и интуитивно понятен
Бейсик в руки и вперед... Вы же понимаете что для каждого разработчика эти слова несут совершенно разный смысл, что одному логично и красиво - для другого велосипед на костылях...
>>Программа, написанная на таком языке, не должна есть много памяти из-за каких-нибудь там виртуальных машин
ВМ и прочие накладные расходы присущи своей группе языков, кроме прочего они обеспечивают повышение быстродействия в кроссплатформенной среде, часто превосходя по быстродействию даже компилируемые аналоги без ВМ, тут уже выбор будет прирост производительности/потребление памяти (впрочем, это верно и в целом, все крутится вокруг баланса потребления быстрой памяти и приемлемостью скорости обработки данных при снижении лимита ее потребления).
>>Должно быть более-менее легко производить дебаг
Сложнее найти современный язык без таковой возможности...
Ответ написан
@fman2
Извините, но все ваши требования у вас в голове.
Тот же PHP спокойно живет в Highload. Возьмите какой-нибудь стройки PHP-фреймворк, тот же SF4 и делайте на нем сайт.
Ответ написан
Комментировать
PRAIT
@PRAIT
Golang и .
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы