Почему Ruby имеет направляющие, в то время как Python не имеет никакой центральной платформы?

Конечно, вы можете реализовать эти вещи с помощью socket.io и express.

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

Простое приложение реального времени с использованием socket-io

Пример кода: -

на стороне сервера:

//-----------------Dependencies------------------
var app     =     require("express")();
var pgsql   =     require("pg");
var http    =     require('http').Server(app);
var io      =     require("socket.io")(http);
//------------------------------------------------

const con = new pgsql.Pool({
 user: 'postgres',
 host: 'localhost',
 database: 'fbstatus',
 password: 'postgres',
 port: '5432'
});

app.get("/",function(req,res){
 res.sendFile(__dirname + '/index.html');
});

http.listen(3000, function(){
 console.log('listening on *:3000');
});

// Connect to Postgres
con.connect(function(err, client) {
 if(err) {
  console.log(err);
 }

io.sockets.on('connection', function (socket) {

 // Listen for all pg_notify channel messages
 client.on('notification', function(msg) {
  console.log(msg);
  socket.emit('update', msg);
 });

 // Designate which channels we are listening on. Add additional 
 channels with multiple lines.
 client.query('LISTEN notification_events');
 });
});

На стороне клиента: -




  

real time data recieved from server

When you insert a new row into database, the below p tag content will be changed

8
задан Dan Rosenstark 2 January 2009 в 22:53
поделиться

11 ответов

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

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

35
ответ дан 5 December 2019 в 04:29
поделиться

Реальный технический ответ - то, что существует три основных подхода к веб-разработке в Python: каждый основан на CGI, где приложение создается точно так же, как старое одноразовое приложение Perl для пробежки CGI или FastCGI, например, Trac; затем существует Zope, который является сверхспроектированной платформой bizarro с ее собственным понятием DB, странным дезинформированным понятием разработки программного обеспечения через сеть, и т.д. (но Plone все еще довольно популярен); и затем существует Django (и Turbogears, и т.д.), который ведется той же just-the-tools-needed философией как направляющие (можно обсудить, кто стал там первым или кто сделал это лучше). Много людей, вероятно, согласилось бы, что подход Django/Rails/CakePHP лучше, чем более старые подходы, но как более старый язык Python имеет платформы намного более прежней версии, которые все еще пытаются развиться и остаться релевантными. Эти платформы будут держаться, потому что уже существует закрытие сделки разработчика для них. Например, задним числом многие люди, вероятно, сказали бы, что Zope (особенно ZODB) был ужасной ошибкой, но Zope 3 намного лучше, чем Zope 2, и уже существуют целые компании, созданные вокруг технологий Zope.

7
ответ дан 5 December 2019 в 04:29
поделиться

Я не думаю, что правильно характеризовать направляющие как 'единственную' 'центральную' платформу Ruby.

Другие платформы для Ruby включают Merb, Кемпинг и Ramaze.

... какой вид делает недействительным вопрос.

7
ответ дан 5 December 2019 в 04:29
поделиться

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

Таким образом, вопрос действительно, "Почему David Hansson решал записать направляющие в Ruby, а не Python?"

5
ответ дан 5 December 2019 в 04:29
поделиться

Помните, что Ruby существовал в течение долгого времени перед направляющими был создан. Согласно Википедии, Ruby был создан в середине 90-х; направляющие не приходили до 2004. Ruby является просто языком, который David Hansson принял решение использовать для направляющих.

И да, я сказал бы, что Ruby к направляющим, как Python Django.

5
ответ дан 5 December 2019 в 04:29
поделиться

Я соглашаюсь с Ned. Я держал пари, что больше чем 90% установок Ruby не ни для какой другой цели, чем рабочие направляющие. Направляющие доминируют над Ruby - нет никакого отдельного приложения, которое доминирует над Python, главным образом потому что сообщество Python является несколько более многочисленным, чем сообщество Ruby.

5
ответ дан 5 December 2019 в 04:29
поделиться

Рубин был бы менее популярным без направляющих? абсолютно.

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

Да ведь исторически, это происходило с Ruby? Поскольку DHH выбрала Ruby после проведения его собственного исследования.

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

2
ответ дан 5 December 2019 в 04:29
поделиться

Я должен был бы согласиться, что Django является в основном "Направляющими для Python", эквивалентного. Почему это занимало много времени? Простой ответ является слишком многими опциями.

В Python существует много систем запроса/ответа, URL rewriters, ORMs, обрабатывая языки по шаблону, и т.д. что Вы могли создать веб-стек в десятках различных конфигураций. На самом деле это точно, что делают Опоры и TurboGears, обеспечивают надежный, предсказуемый стек для создания веб-приложений MVC.

Что сделал Django по-другому был, они инкапсулировали все. Вместо того, чтобы идти путем компонентов, они создали одну непрерывную систему. Они создали свой собственный ORM, свой собственный шаблонный язык, свою собственную систему промежуточного программного обеспечения, и т.д. Их обоснование состояло в том, что не было никакой объединенной системы как это для Python.

2
ответ дан 5 December 2019 в 04:29
поделиться

Python не является пони с одним приемом. Поэтому нет никакой единственной "центральной платформы" для него. Многие люди сначала слышали о Python как "другой хороший язык OO" или посредством одного из многого использования, в которое он был помещен.

Честно говоря, Ruby не является пони с одним приемом также. Просто, что многие люди рассматривали направляющие как "приложение-приманку", заставил их смотреть на previously-not-well-known язык. Я подозреваю, что многие люди никогда не слышали о Ruby перед направляющими, но это ни в коем случае не единственная вещь, которую может сделать Ruby.

1
ответ дан 5 December 2019 в 04:29
поделиться

Если Вы следили за новостями, Вы считали, что Merb и Rails объединятся. Это - хорошее перемещение, по моему скромному мнению. Я думаю, что это из-за общей цели, которую имеют разработчики: Они хотят простую платформу для webdev, который идет с a ИЛИ картопостроителем, маршрутизацией, шаблонным языком, и т.д. который соответствует большинству задач..

0
ответ дан 5 December 2019 в 04:29
поделиться

Ознакомьтесь с этой статьей о , почему мы никогда не увидим Python-on-Rails . Автор приводит некоторые из основных причин, почему в Python никогда не было и никогда не будет центральной структуры. Я мог бы добавить, что у Java его тоже нет, и по тем же причинам.

По словам автора, Rails строго привязан к своей «реализации», которой является Ruby. Rails был принят многими разработчиками, и Ruby был лишь их частью. Rails отлично работает на Ruby (или Ruby wanna-bes, как Groovy), но, что более важно, как говорят многие другие ответы, Rails проложил путь к принятию Ruby.

Вот почему Rails-for-Python не работа, или хотя бы то, что у людей есть сосредоточился на Rails не верный. Дело не в реализация или качество рамки, это о схеме принятие. Речь идет о размещении каркас впереди, а реализация в спину - даже если это были не разработчики Rails намерения (хотя, может быть, они умно, и это было их намерением).

По сути, невозможно собрать группу людей, любящих язык, вокруг единой структуры. Что касается Java, то хотя Spring очень любят, это не Rails с точки зрения популярности в сообществе Java.В зрелом сообществе у разработчиков есть свои представления о том, какие метафоры работают, а какие не работают в рамках. Это является причиной того, что Rails ведет к Ruby, а не наоборот (обычно, в большинстве случаев, не во всех случаях).

0
ответ дан 5 December 2019 в 04:29
поделиться