Czy jest potrzeba aż frameworka do trywialnego zadania?

  1. PHP: Tworzymu plik index.php: <? echo "

    Witaj Świecie

    "; ?>
  2. Ruby: plik index.rb <% puts “

    Hello World

    ” %>

Ad 1)
W PHP aby uruchomić przykład (1) nikt nie każe mi instalować CakePHP czy Symphony i tworzyć widoku. po prostu wrzucam do katalogu publicznego w Apache’u

Ad 2)
Czy do takich małych zadań jak w przykładzie (2) jest potrzebny aż cały framework Ror?
Gdzie umieszczam plik? W jakim katalogu na serwerze np Webrick?
Czy konieczne jest instalowanie aż całego frameworka?
Czy można w rubim pisać skrypty www (np forum) bez użycia jakiegokolwiek frameworka ?

pozdrawiam

Skorzystaj z mikro frameworka jak sinatra.

No ale w sumie nie musisz calego RoR instalowac, To korzystac z Erb w przykladzie, musisz go wiec dodac i kilka innych rzeczy, troche wiedzy musies zmiec o tym wiec latwiej ci bedzie zapoznac sie z sinatra.

Sam Apache nie będzie w stanie uruchomić napisanej przez Ciebie aplikacji w PHP - służy do tego mod_php. W Rubim na podobnej zasadzie działa mod_passenger - może on uruchamiać dowolną aplikację Rack. Oznacza to mniej więcej tyle, że nikt nie każe Ci instalować Railsów do wykonania tak prostego zadania (są prostsze frameworki), a jeśli chcesz to możesz napisać taką aplikację w racku w jednej linijce:

run lambda { |env| [200, {}, "<h1>Hello World</h1>"] }

Do takich małych zadań nie jest potrzebny cały framework (np. RoR) jednak coś jest potrzebne. Co - to już zależy od Ciebie, np. spójrz na Sinatrę lub Ramaze. Możesz też odpalić np. super-minimalną aplikację z wykorzystaniem Rack’a. Główna różnica pomiędzy PHP a Ruby (jeśli chodzi o to pytanie) polega na tym, że PHP domyślnie jest używane do pisania aplikacji WWW (nikt nie zastanawia się np. jak działa mod_php) natomiast Ruby jest językiem ogólnego zastosowania (niekoniecznie webappy). Dlatego w PHP aplikacja jest domyślnie web-aplikacją (wyżej wspomniane mod_php) natomiast w Ruby nie - i musisz wybrać i serwer (Webrick, Mongrel, Thin, Apache + Passenger etc.) i interfejs (obecnie standardem jest wyżej wspomniany Rack - na nim oparte są wszystkie frameworki).

Przy okazji “Hello world” z wykorzystaniem “Rack’a” i serwera Mongrel wygląda tak:

[code=ruby]require ‘rubygems’
require ‘rack’

class HelloWorld
def call(env)
[200, {“Content-Type” => “text/html”}, “Hello Rack!”]
end
end

Rack::Handler::Mongrel.run HelloWorld.new, :Port => 9292[/code]

Jak chcesz bardzo w stylu PHP, to zawsze możesz pójść drogą Ruby::CGI. Zrobiłem tak jeden mikroprojekt, dzięki czemu zrozumiałem dlaczego ten sposób jest tak mało popularny w środowisku :wink:

Ha Ha Ha! Wielkie dzięki. Zachłyśnięty tutorialami i zapewnieniami w ksiązkach że język ruby jest bardziej zwięzły (mniej kodu niż java, php, c/c++) po przykładzie “hello word” z wykorzystaniem racka. Ubawiłem się na dobre :slight_smile: moze w interpreterze Rubiego wystarczy wpisać puts ‘coś tam’. Dobra nie czepiam się. Demonstracja możliwości RoR’a mnie powaliła więc poświęcę trochę czasu na lekturę i zabawę. Martwi mnie jedynie wydajność serwisów na bazie RoR i pojawiający się efekt białego ekranu po wpisaniu adresu url. Wielkie dzięki za szybką reakcję.

A jak będzie wyglądał kod wyświetlający “Hello World” pod wskazanym adresem napisany w Javie, C czy C++?

http://canrailsscale.com/

Właśnie przeglądam sobie Sinatrę i jestem pod wrażeniem jego prostoty. Hello World:

[code=ruby]require ‘sinatra’

get ‘/’ do
“Hello world”
end[/code]
A potem tylko:

ruby app.rb

Zdecydowanie świetne narzędzie jeśli chce się zacząć przygodę z web-developmentem w Rubim.
W szczególności pozwala przyswoić sobie separację widok-kontroler.