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 ?
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
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
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 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ę.
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.