LINUX.ORG.RU

Перспективные web-технологии

 , , , ,


2

5

Python+Django / Ruby+RoR / Node / PHP?

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

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



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

use strict, Luke
И вывод на принтер уже не в моде, кидай алерты или пиши в консоль

Держи, «модник».

>"use strict";
"use strict"
>if (0 === 0.0){ console.debug("Не-а, это не жесткая типизация!"); }
Не-а, это не жесткая типизация!
undefined

И так, если что: режим strict он все же слегка для другого: Strict mode changes previously accepted «bad syntax» into real errors.

As an example, in normal JavaScript, mistyping a variable name creates a new global variable. In strict mode, this will throw an error, making it impossible to accidentally create a global variable.

И он нифига не заменяет строгую типизацию, - так что расслабься.

И еще: к твоему сведению разницы между утилитой командной строки js и консолью браузера весьма немного, поскольку и оба используют одну и туже либу. Но у js вместо вывода на консоль или алертов применяется print

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

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

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

Python - отличный выбор, который в перспективе позволит найти интересную работу в нестандартных/хайлоад проектах, с развитой инфраструктурой. Когда разберёшься с основами (асинхронная модель, очереди сообщение, воркеры, кэширование, SQL/NoSQL), станет уже всё равно на чём писать и можно будет посмотреть в сторону Golang/Clojure/Erlang. В общем, всё как в известной пасте, да.

anonymous
()

Но вот представте, что вы находитесь в начале пути, что бы вы использовали?

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

Alve ★★★★★
()

Клиентская разработка на основе HTML5, CSS3 и JavaScript API, а также WebMatrix для разработки серверных приложений.

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

Нет, но как показывает практика, проскочить на проекты, где есть всё это проще с питоном, нежели с пыхом или рельсами

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

Это как раз фигня, == вместо === линтовщиком автоматически детектится на раз. В нормальных проектах гайки на стрёмных синтаксисах уже закручены, и вам после первого же коммита прибегут выпрямлять руки. Если сами не догадаетесь по письму из CI быстренько всё исправить.

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

Переписывали одну поделку от горе жаваскриптеров с ноды+монго на торнаду+поцгресс. Нафиг-нафиг.

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

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

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

На ноде нормально. Просто если руки из жопы, то «успех» проявится очень быстро. Видимо вам достался в переделку как раз такой случай.

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

Не надо противопоставлять. Есть 2 типа моделей данных - для бизнес-логики, и для вьюх. Это на некоторых лекциях по БЕМ-у хорошо расписано. Все проблемы возникают тогда, когда нет четкого понимания, что это разные уровни абстракции, и их начинают смешивать. Когда приложение целиком локальное, соблазн особенно велик.

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

Пример не корректный. В js просто нет отдельного типа для целых чисел. А (0 == ") и (0 === ") как раз будут отличаться.

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

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

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

Конечно, не надо. Можно увешаться тремя слоями проверки всех аргументов. Либо упороться как некоторые из местных и считать жабоскрипт stringly typed-языком.

Серьёзно, слабость типизации во всяких <, >, <= и >= хоть раз была полезна кому-нибудь?

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

Не надо противопоставлять.

Надо, потому что

Есть 2 типа моделей данных - для бизнес-логики, и для вьюх

И лучше их не смешивать «в одном флаконе», особенно когда приложение достаточно сложное.

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

Мужик, как ты запарил моск: тебе (вот лично тебе, млять!) что этих примеров я дал мало что бы воскурить что яваскрипт никогда не был ЯП со строгой типизацией?! Или ты это все пишешь что бы все оценили твою noda.js-крутизну? Оценили, не беспокойся, - терминологию знаешь. Так какого тебе еще надо, извиняюсь? В общем, пиши уже по существу дела, ОК? Не согласен с тем что я пишу? Считаешь как и этот смешной школьник, что мне писал, что в js строгая типизация? Ну, так опровергающий мои слова код - в студию! А над своим «синтаксическим сахаром» я и сам как нибудь поработаю. Без тебя. Достал, мля!

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

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

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

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

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

Сомневаюсь. IMHO типизация в основном может бомбануть на присвоениях и арифметике.

А вообще, если нет потребности во всякой вебне, и код чисто серверный, надо иметь серьезные проблемы с головой, чтобы там JS юзать. Просто потому что серверная платформа слишком молодая и библиотеки не айс. В подобном классе будет практичнее выбрать ruby/python.

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

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

как tcp или udp сервер не рекомендуешь node.js ?

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

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

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

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

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

Черевато деформацией мозга.

Чревато говнокодом

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

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

Why not? Когда руки не из жопы, можно радоваться прелестям швабодки без риска скатиться в говнокод. На вебне есть свои плюсы в том, чтобы фигачить фротенд и бакенд на одном языке. Это действительно удобно.

Чревато говнокодом

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

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

Просто отметил что вы оба молодцы.

Да и не один раз. И оба раза ничего кроме пустых слов.

другой с ним воюет кривыми примерами

Давай-ка так: на «кривой»(по твоему) код отвечай патчем. А мы твой патч обсудим. А раз нет кода - балобол. Так вот где-то.

k0valenk0_igor ★★★
()

визитки, бложеги и пр. х - Python, Ruby on Rails, Dart, PHP
high load - Go, Erlang
very high load - Erlang

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

IMHO типизация в основном может бомбануть на присвоениях и арифметике.

Типизация много где может бомбануть. Лично мой опыт подсказывает что больше всего багов сыплется именно на сравнения одного валютного значения с другим, типа «если сумма покупки вкупе с налогом больше/меньше чем <десятичное значение>, то».

И что актуально, эта гадость вылазит потому что у яваскрипта (и не только у него, кстати!) не реализована десятичная арифметика. В принципе. Отсюда разные жизненные ситуации типа "-А давайте, пацаны, будем хранить рублевые значения в копейках! -Как преобразовывать в другие валюты будем? Ну, наши люди в других валютах деньги ведь не хранят, верно? А если хранят... то это их проблемы. И вообще - наши продажники умные, они что-нибудь придумают и как нибудь этим проблемным клиентам все объяснят!".

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

А тем временем правоверные явовцы читают его посты и смеются, потому что знают: в делах подсчета денех ЯП без строгой типизации им ваще не соперник. А если учесть кое-какие нюансы явы, то справедливо будет сказать, что «без строгой статической типизации». И это будет чистая правда, черт ее дери!

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

Просветляйся сам! Если ты не согласен, что яваскрипт ЯП с мягкой типизацией - код опровергающий это в студию! А если согласен, - не отсвечивай. А критиканов на мой пример (тем более что он был для школо, а вовсе не на продакшн!) я и сам себе насобираю.

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

Why not? Когда руки не из жопы, можно радоваться прелестям швабодки без риска скатиться в говнокод. На вебне есть свои плюсы в том, чтобы фигачить фротенд и бакенд на одном языке. Это действительно удобно.

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

ya-betmen ★★★★★
()
Ответ на: комментарий от Vit

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

Я и говорю, говнокод на долгие годы вперёд.

ya-betmen ★★★★★
()
Ответ на: комментарий от k0valenk0_igor

Я бы все-таки не равнял отсутствие полезных типов и отсутствие строгой типизации. Гарантированно поймут неправильно.

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

Я-то как раз не фанат пихать ноду везде, и люблю при случае поржать над феноменами, которые на ней то smtp сервер слепят, то заменитель make. Просто в настоящий момент я вебнёй занимаюсь, и там она действительно начинает рулить и педалить.

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

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

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

Вы тут пол темы

Вообще-то эти пол-темы (два поста ровно, кстати) были не для тебя, а для школьника. И ему, кстати, этих постов вполне хватило. Ровно как хватило и всем остальным, что бы понять о чем шла речь и не поднимать муть из-за несущественных неточностей. Это ты вытащил проблему там где ее не было. Это ты решил «уточнить» пример который вполне выполнил свою задачу - утихомирил невежду, - и вовсе не нуждался в уточнении (особенно если учесть что он был дополнен пруфом) И причем ты сделал это не один раз, а дважды!

путали отсутствие типов и отсутствие строгой типизации

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

И вообще, я уже сказал: считаешь что код в моих постах кривой - приведи свой!

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

Ссылки в профиле. Ну и там ссылки на гитхаб с кучей модулей, если чо.

Даже и не собираюсь лазить по твоим профилям. Пиарься за чужой счет, приятель! Есть пример кода - кидай сюда, в тред. Нет - извини.

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

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

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

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

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

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

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

Еще в фонтелле генерилка фонтов и на сервере и на клиенте работает, один и тот же код.

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

Vit ★★★★★
()
Ответ на: комментарий от ya-betmen

Бывают еще ситуации, когда код очень заковыристый, типа генерилки ttf или deflate/inflate. Отлаживать и бенчмаркать такое в браузере не комфортно совсем - проще нодовскими инструментами. Если придерживаться простых правил, то потом код браузерифицируется полностью автоматически.

Vit ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.