WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Ruby on Rails (https://www.wn.se/forum/showthread.php?t=20308)

Jawn 2007-03-29 18:25

Någon som har provat det?
har hört att det är ungefär 5 x snabbare o programmera i än PHP.

eliasson 2007-03-30 06:50

Citat:

Originally posted by Jawn@Mar 29 2007, 18:25
Någon som har provat det?
har hört att det är ungefär 5 x snabbare o programmera i än PHP.

Jag har bara hört posetiva saker om RoR men när jag ser på syntaxen så kräks jag nästan men jag får säga att det verkar vara otroligt smidigt och man skriver generellt mindre kod vad jag läst på exempel, t ex:

PHP
Kod:

for ($i = 0; $i < 3; $i++) { // Do this }
RoR
Kod:

3.times { // Do this }

DeSoto 2007-03-30 07:49

Det går inte att jämföra RoR och PHP. Rails är ett ramverk byggt på språket Ruby, medan PHP är ett språk. Vill man jämföra så bör man isfåfall jämgöra RoR med t.ex. CakePHP eller Symfony.

Kaffe 2007-03-30 08:52

Citat:

Originally posted by Jawn@Mar 29 2007, 17:25
Någon som har provat det?
har hört att det är ungefär 5 x snabbare o programmera i än PHP.

Som DeSoto säger, det är lite grann som att jämföra äpplen och apelsiner. Eller frön och blommor. Eller nötfärs och ko.

Ruby on Rails är ett litet unikum. Ett ramverk med mycket strikta konventioner. Det finns faktiskt ett (flera) liknande projekt: CakePHP (är det enda jag nämner).

Det som är bra, och viktigt, med påtvingande konventioner är att när det gäller många andra ramverk måste man själv hitta på dem. Man måste, i ett större projekt, dokumentera det och när allt kommer till krita så kommer du, när du väl måste öppna upp applikationen ett år senare bekanta dig med koden, även fast det är kodat i ett ramverk. Men med strikta konventioner så vet du alltid hur saker och ting är utformade. Det du i så fall behöver dokumentera är undantagen. Det är där produktiviteten sitter.

Sedan, så är ju Ruby ett språk som verkligen fått ett avstamp i och med Ruby on Rails. Det är inte överraskande att .NET utvecklarna börjat snegla på det och hämtar tips därifrån.

Standout 2007-03-30 14:46

Jag har arbetat med PHP i omkring sju år. För knappt ett år sedan gick jag över till Ruby on Rails och gillar det skarpt. Jag undviker PHP så mycket som möjligt nuförtiden. Enkelheten och den snabba utvecklingen är ett stort plus, plus att det är skönt med en gemensam nämnare när man byter från projekt till projekt. Det får du dock med exempelvis CakePHP också.

Nackdelen med RoR är väl att det är lite långsammare i produktionsläge än PHP, samt att det kan vara lite klurigt att installera och sätta upp en produktionsserver första gången.

grazzy 2007-03-30 15:33

Citat:

Ursprungligen postat av eliasson
Citat:

Ursprungligen postat av Jawn
Någon som har provat det?
har hört att det är ungefär 5 x snabbare o programmera i än PHP.

Jag har bara hört posetiva saker om RoR men när jag ser på syntaxen så kräks jag nästan men jag får säga att det verkar vara otroligt smidigt och man skriver generellt mindre kod vad jag läst på exempel, t ex:
PHP
Kod:

for i = 0; i 3; i++ { // Do this }
RoR
Kod:

3.times { // Do this }

Dåligt exempel? Det finns ju massa dold funktionalitet i php-loopen som kanske eller kanske inte finns i RoR-koden? Tex så kan du själv påverka pekaren i phpkoden, du kan iterera med i som index (kan du troligen i ror också, men det är inte lika tydligt). Etc etc.

Vill inte ge mig in i en bättre / sämre diskussion men det där var ett konstigt exempel då for-loopar är en mycket grundläggande funktion i alla programmeringsspråk just pga dess egenskap. Det du jämför med känns mest som en "do"-loop.

Antar att jag får bassning för detta nu från nån ruby-guru :P

Spindel 2007-03-30 16:08

Själv har jag fått upp ögonen för frameworket Django som slår RoR på fingrarna rent prestandamässigt. Sedan har Django ett automatiserat admin-system (som givetvis går att modifera) för modellerna man skapar. Dessutom slipper man pyssla med sql-kommandon eftersom man i API:et kan skriva "manage.py syncdb" och vips så skapas sql-tabellerna efter hur du har designat modellerna.

Dessutom tycker jag syntaxen i Django är mer skonsamma än syntaxen i RoR.

Edit: För att inte glömma att dokumentationen över Django är överlägsen smörjan RoR har. Dessutom finns det en Django-bok _gratis_ på nätet.

Kaffe 2007-03-30 17:24

Citat:

Originally posted by Spindel@Mar 30 2007, 15:08
Själv har jag fått upp ögonen för frameworket Django som slår RoR på fingrarna rent prestandamässigt. Sedan har Django ett automatiserat admin-system (som givetvis går att modifera) för modellerna man skapar. Dessutom slipper man pyssla med sql-kommandon eftersom man i API:et kan skriva "manage.py syncdb" och vips så skapas sql-tabellerna efter hur du har designat modellerna.

Dessutom tycker jag syntaxen i Django är mer skonsamma än syntaxen i RoR.

Edit: För att inte glömma att dokumentationen över Django är överlägsen smörjan RoR har. Dessutom finns det en Django-bok _gratis_ på nätet.

Tog upp Django i en tråd en gång: här, men har inte hunnit titta mycket mer på det.

Django är skrivet i Python, vilket är värt att belysa lite extra eftersom det i regel benämns som ett betydligt kraftfullare och flexiblare språk än PHP eller Ruby. Själva språket Python är i sig väldigt snabbt, även om snabbheten absolut inte är A och O i en applikation.

Jawn 2007-03-30 18:13

Känns ju nästan lite löjligt o göra om en enkel for loop, man kanske ska hålla sig till gamla goda php ändå då man har all kontroll själv även om det kanske tar lite längre tid o skriva.

MattiasA 2007-03-30 19:21

Med RoR så känns det inte som man programmerar "på riktigt"

palmik 2007-04-02 02:06

Citat:

Originally posted by MattiasA@Mar 30 2007, 19:21
Med RoR så känns det inte som man programmerar på riktigt

Ruby som språk känns väll mycket "finare" än php (om det nu var php du jämförde med).

Jag tycker inga av språken som används vid webbutveckling känns som att programmera "på riktigt" :). Detta beror ju på vad man är van vid innan (plc, signalbeh, fortran och såna där lågnivåspråk i mitt fall) ... all programmering är såklart programmering.

totoo 2007-04-02 04:12

jag är fortfarande sugen att höra mer saker i prestandadebatten ror-php-asp

Jag är en sån som har bestämt mig för att php ska ha bäst prestanda.. :) Jag vill inte ha fel.. heja php!

Kaffe 2007-04-02 11:16

Citat:

Originally posted by totoo@Apr 2 2007, 03:12
jag är fortfarande sugen att höra mer saker i prestandadebatten ror-php-asp

Jag är en sån som har bestämt mig för att php ska ha bäst prestanda.. :) Jag vill inte ha fel.. heja php!

Inte för att jag vill vara den som sticker hål på din bubbla. Men generellt sett har jag blivit indoktrinerad med följande:

ASP.NET > Ruby on Rails > PHP

Återigen är det dock en liten "Äpplen och Apelsiner"-jämförelse eftersom ASP.NET och Ruby on Rails är ramverk. Egentligen skall man ju alltså jämföra:

C#/VB/C++ (m fl) > Ruby > PHP

Vilket leder oss till den enkla slutsatsen att PHP inte har en suck i sammanhangen. Så till vida vi inte håller oss till webbaserade applikationer och ramverk då ASP.NET är (enligt personlig preferens) ett av de sämre och mer otympliga ramverken. Jag har gått en två-årig utbildning där jag lärde mig att hata det.

Sedan är det fritt fram för Ruby on Rails och några PHP ramverk att damma av knogjärnen.

antealin 2007-04-10 16:48

Citat:

Ursprungligen postat av grazzy
Citat:

Originally posted by -eliasson@Mar 30 2007, 06:50
Citat:

Ursprungligen postat av Jawn
Någon som har provat det?
har hört att det är ungefär 5 x snabbare o programmera i än PHP.

Jag har bara hört posetiva saker om RoR men när jag ser på syntaxen så kräks jag nästan men jag får säga att det verkar vara otroligt smidigt och man skriver generellt mindre kod vad jag läst på exempel, t ex:
PHP
Kod:

for i = 0; i 3; i++ { // Do this }
RoR
Kod:

3.times { // Do this }


Dåligt exempel? Det finns ju massa dold funktionalitet i php-loopen som kanske eller kanske inte finns i RoR-koden? Tex så kan du själv påverka pekaren i phpkoden, du kan iterera med i som index (kan du troligen i ror också, men det är inte lika tydligt). Etc etc.
Vill inte ge mig in i en bättre / sämre diskussion men det där var ett konstigt exempel då for-loopar är en mycket grundläggande funktion i alla programmeringsspråk just pga dess egenskap. Det du jämför med känns mest som en do-loop.
Antar att jag får bassning för detta nu från nån ruby-guru

Vill bara säga att det är minst lika tydligt att iterera med ett index i Ruby:

Kod:

3.times {|i| puts i } # skriver ut i 3 gånger
Kod:

5.upto(50) {|i| puts i } # Skriver ut alla tal mellan 5 och 50
Kod:

(5..50).each {|i| puts i } # Skriver ut alla tal mellan 5 och 50
Eller om vi har en array:

Kod:

arrayen = ["foo", "bar", "baz"]
arrayen.each_with_index do |value,i|
 puts "#{i}:\t#{value}"
end

Och så här ser PHP-versionen ut:
Kod:

$arrayen = array("foo", "bar", "baz");
for($i=0; $i < count($arrayen); $i++)
 echo $i . ":\t" . $arrayen[$i] . "\n";

Det tar ett tag att vänja sig vid Rubys syntax, men när man väl lärt sig den är den underbar. Man kan koncentrera sig på vad man ska göra istället för att skriva en massa kod som man inte borde behöva skriva. Det är skönt :)


Alla tider är GMT +2. Klockan är nu 22:48.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson