Gå til innhold

Anbefalte innlegg

Jeg har en vag følelse av at det ikke er spesielt mange som leser dette forumet (eller har problemer med Ruby), så jeg lurer på hvor mange dere er? Og hvorfor syns dere Ruby er bra? Er det bare på grunn av Rails eller liker dere andre ting?

 

Jeg syns Ruby er genialt med tanke på at alt er en klasse! Og at man kan utvide klassene. For eksempel har ikke Array en shuffle-metode for å "randominsere" Array'et, men man kan enkelt lage det selv:

class Array
   def shuffle
       return self.sort_by { rand }
   end

   def shuffle!
       self = suffle
   end
end

 

Så vidt jeg vet kan man ikke gjøre dette i noen andre språk (man kan dog lage en funksjon som tar et Array som parameter, men Ruby's løsningen er bedre)

Lenke til kommentar
Videoannonse
Annonse

Jeg liker Ruby fordi det har en god helhetsfølelse over seg. Jeg vet hvor jeg har alt. I Python må jeg spørre meg om det heter x.length eller len(x) eller module.length(x), i Ruby heter det alltid x.length.

 

I tillegg er jo metaprogrammering artig så lenge det ikke går over styr. Og, i motsetning til Smalltalk (som Ruby jo har mye til felles med), har syntaksen noen snarveier og slikt slik at en del ting blir enklere. Det er rett og slett artig å programmere i Ruby. Det gjelder forøvrig mange andre språk også.

 

class Array
  def shuffle!
      self = suffle
  end
end

Dette funker ikke. Feilmeldingen fra Ruby sier det best:

 

Can't change the value of self

 

Dette, derimot, funker:

 

class Array
 def shuffle() sort_by { rand }; end
 def shuffle!
   replace shuffle
 end
end
x = [*0..10]
puts x.inspect
x.shuffle!
puts x.inspect

Lenke til kommentar

Me sjøl: Helt enig med deg. Ruby er enkelt å huske og morsomt å lære/programmere ;) Har egentlig aldri brukt den Array#shuffle! min, jeg bare tenkte meg hvordan det kunne vært (Shame on me). Men Array#suffle har jeg brukt :)

 

EDIT: Hva bruker dere Ruby til?

Endret av Judofyr
Lenke til kommentar

Et prosjekt jeg har sett nærmere på i det siste er Rubinius. Har ikke kommet opp med noe kode ennå, men vi får se. Det har helt klart potensiale, og hovedutvikleren fikk nylig 1000$ for å arbeide på det, for ikke å snakke om at Ruby-i-Ruby á la Smalltalk er sinnsykt tøft.

 

Ellers bruker jeg Ruby til eksperimentering og diverse programmer jeg trenger.

Lenke til kommentar
  • 2 uker senere...

Det siste halvåret har jeg brukt rundt halvparten av arbeidstiden min på å reimplementere og utvide en PHP-webapplikasjon i Ruby (+Rails). Dette er en "everything and the kitchen sink" applikasjon som brukes til alle tenkelige interne oppgaver. Det mest overaskende for min del er hvor godt Ruby egner seg som bindeledd for alt mellom himmel og jord. Her er noen av systemene som Ruby knytter sammen:

 

- MySQL (skulle helst ha benyttet PostgreSQL, men må foreløpig ta hensys til noen PHP-baserte systemer)

- Oracle (lesetilgang for å generere statistikk og grafer)

- LDAP (for autentisering og brukerinformasjon)

- SNMP (for å omstarte diverse hardware)

- SSH (brukes i flere situasjoner)

- SMTP (sende ut mail om diverse..)

- ImageMagick (generere grafer)

- PHP (gamle applikasjoner som er på vei ut og ikke blir portet over)

- RSH (sender beskjeder til Windows-servere)

Og endel annet som er litt for vrient å forklare på et par linjer.

 

Dette kan man selvfølgelig få til med alle andre språk, men med Ruby har det vært en gledelig smertefri opplevelse.

 

Så ikke bare er Ruby genialt i seg selv, det egner seg også godt når man må kommunisere med "mindre perfekte" systemer. Dette i motsetning til Lisp som også er meget elegant, men (i min meget begrensede erfaring) får problemer med en gang det tvinges til å snakke med fenomenet kjent som "resten av verden".

 

Jeg syns Ruby er genialt med tanke på at alt er en klasse

Jeg ville heller sagt at "i Ruby er alt et objekt". Og ja, det føles så naturlig at tanken på å gå tilbake til et språk hvor dette ikke er tilfellet oppleses som galskap! :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...