Veel te veelgestelde vragen

Geplaatst door Danny Lagrouw do, 23 maa 2006 05:55:00 GMT

Vorige week liep ik weer in de val. Omgeven door enthousiaste Java-ontwikkelaars liet ik me ontglippen dat ik enthousiast ben over Ruby en Rails. Sommige Java-ontwikkelaars reageren in zo’n geval uiterst cynisch: ze vinden Ruby vooral een hype. Anderen zijn wel belangstellend, maar lijken haast medelijden met je te hebben. In het uiterste geval wil iemand nog wel beweren dat “Ruby en(!) Rails zeker een niche-plekje zullen vinden, voor het ontwikkelen van standaard websites.” Misschien vind je dat ik me gewoon niet in zo’n discussie moet mengen. Laat de Java’ers maar lekker door-Eclipsen tot ze groen en geel zien van de getters en de setters. Maar nee, dat is mijn eer te na. Ik wil Ruby en Rails promoten in Nederland; dan moet ik ook tegengas kunnen geven. Keiharde argumenten!

Vandaar dat ik een FAQ-lijstje heb gemaakt, met vragen die je vaak om je oren krijgt als je het woord Ruby of Rails in de mond neemt. Ik heb een blog-page voor dit lijstje gemaakt, zodat ik het steeds verder kan in- en aanvullen. Als je zelf munitie bij wilt dragen, of andere vragen hebt: graag! Doe dat via commentaar op deze post, dan zal ik het verwerken in de FAQ.

  • Zijn Ruby en Rails geen hype, die volgend jaar weer voorbij is?
  • Zullen Ruby en Rails wel aanslaan in Nederland?
  • Maar zou je wel een bankapplicatie ontwikkelen met Ruby en Rails?
  • Zijn Ruby en Rails enterprise-ready?
  • We hebben strategisch gekozen voor Java/J2EE. We hebben veel geld geïnvesteerd in Java: opleidingen, infrastructuur… Dat gaan we niet zomaar overboord zetten voor een heel andere omgeving.
  • Ik heb al zoveel ervaring met Java/J2EE; ik heb geen zin om weer een andere taal te leren.
  • Is er wel een goede ontwikkelomgeving voor Ruby en Rails, zoals Eclipse voor Java?
  • Is Ruby/Rails niet net zoiets als PHP, dus voor het bouwen van simpele websites?
  • Achter Java staat een solide bedrijf: Sun. Ruby en Rails zijn open source. Daarmee heb ik geen enkele garantie dat de software geen bugs bevat, ik heb geen mogelijkheid om support te krijgen, ik weet niet of toekomstige versies van de taal backwards compatible zijn, enzovoort.

Geplaatst in ,  | 6 reacties

favoriete nieuwtje in rails edge

Geplaatst door Remco van 't Veer ma, 20 maa 2006 18:08:00 GMT

In de volgende versie van rails (1.1) worden veel nieuwe dingen geïntroduceerd. Zie voor een continue groeiende lijst het blog bericht van Scott Raymond. Er zitten waanzinnige dingen bij en ik hoop snel weer tijd te hebben (ik zit nu in een verhuizing) om met al dat moois te spelen.

M’n favoriet is delegate. Het is zo’n juweeltje, dat zó voor de hand ligt dat ik me meteen af vroeg waarom dat niet gewoon in ruby zit. Voorbeeldje:

Address = Struct.new(:city, :country)
class Person < Struct.new(:name, :address)
  delegate :city, :to => :address
end

remco = Person.new('remco', Address.new('Amsterdam', 'Nederland'))
p remco.city # => "Amsterdam" 

Dus; definieer twee classes Address en Person waar Person een Address bevat en geef in Person direct toegang tot het city attribuut.

Lees verder ››

Geplaatst in ,

RubyEnRails 2006 inschrijving geopend

Geplaatst door Danny Lagrouw zo, 19 maa 2006 11:45:00 GMT

De voorbereidingen voor de RubyEnRails 2006 dag op 18 mei a.s. zijn nog in volle gang. We zijn nog druk bezig om sprekers te vinden c.q. over te halen (suggesties zijn nog welkom). Naast de Workshop On Rails heeft in ieder geval Erik Veenstra toegezegd een sessie te verzorgen, over meta-programmeren met Ruby. De dag wordt gesponsord door Profict en mogelijk een tweede bedrijf.

Hoewel het programma dus nog niet definitief vaststaat, kun je je al wel inschrijven. Dat geeft ons een beter beeld van hoeveel bezoekers we kunnen verwachten. Voor alle duidelijkheid: deelname aan RubyEnRails 2006 is (dankzij de sponsoring) geheel gratis. Er zijn maximaal zo’n 70 plaatsen beschikbaar. Je kunt je inschrijven op http://www.profict.nl/ruby.

Houd voor nadere informatie deze site in de gaten!

P.S. Kom je ook? Plaats dan onderstaand logo op je site:

Geplaatst in , ,  | 5 reacties

Meta-programmeren met Ruby en Erik

Geplaatst door Danny Lagrouw za, 18 maa 2006 01:24:00 GMT

In de wervelende wereld van het webloggen zou je haast vergeten dat er ook nog dingen bestaan als mailinglists en nieuwsgroepen. En juist op het gebied van Ruby is daar vaak interessante informatie te vinden. Door Erik Veenstra (auteur van o.a. RubyScript2Exe) werd ik gewezen op zijn artikel over meta-meta-programmeren in Ruby, op comp.lang.ruby.

Meta-programmeren zou je kunnen omschrijven als ‘het schrijven van programmatuur die nieuwe programmatuur genereert’. Wie heeft nog nooit een programma geschreven dat een bestand wegschreef dat zelf ook weer programmacode bevat? In Ruby kan het bijvoorbeeld zo:

class Meta
  def test
    # laat random_cmd één van de drie expressies bevatten:
    random_cmd = %w(Time.now `dir` 12345)[rand(3)]

    # maak een nieuw bestand aan, testmeta2.rb:
    open('testmeta2.rb', 'w') do |f|

      # schrijf nieuwe programmacode die de expressie
      # print, weg in het bestand:
      f.print "puts #{random_cmd}" 
    end

    # bonus: voer het nieuw verkregen programma uit:
    system('ruby testmeta2.rb')
  end
end

Meta.new.test

Niet echt elegant, maar het toont het principe, het werkt, en het kan zijn nut hebben. Waarom krijgt dit binnen de Ruby-wereld zoveel aandacht?

Lees verder...

Geplaatst in  | Tags ,  | geen reacties

Ruby en de Zeven Deugden

Geplaatst door Michiel de Mare za, 11 maa 2006 08:52:00 GMT

Dit is een Nederlands blog, en wij citeren dan ook graag Nederlandse informatici:

Elegance is not a dispensable luxury but a factor that decides between success and failure.

Edsgar Dijkstra

Zeven fragmenten van Java-code en het alternatief in Ruby:

1. Short circuit bij nil

Java

if(foo != null) { 
  bar(foo); 
} else { 
  bar(""); 
}

Ruby

bar(foo || "")
Lees verder...

Geplaatst in  | 1 reactie

Opa vertelt...

Geplaatst door Michiel de Mare wo, 08 maa 2006 07:32:00 GMT


  def agenda
    (facade.sollicitaties + facade.agendaItems).
      sort_by {|x| x.datumTijd}.
      reject {|x| x.datumTijd - Time.now > 7.days }.
      map {|x| [x.id, x.datumTijd.strftime('%A'), x.onderwerp, x.typeName]}
  end

Maar Opa, hoe deed u dat vroeger dan?

Lees verder...

Geplaatst in  | geen reacties

Ruby is een vlinder

Geplaatst door Danny Lagrouw vr, 03 maa 2006 08:17:00 GMT

Een klacht die je vaak over Ruby hoort is het gebrek aan een geavanceerde ontwikkelomgeving met bijvoorbeeld refactoring tools. Is de acceptatie van een programmeertaal nu afhankelijk geworden van de beschikbaarheid van tools die de edele kunst van het programmeren terugbrengen tot het kiezen van de juiste refactoring uit een menuutje?

In een lang artikel op O’Reilly Ruby betoogt Steve Yegge dat we met geautomatiseerde refactoring een doel voorbij zijn geschoten. Natuurlijk is het mooi en handig, wat bijvoorbeeld Eclipse je op dit gebied biedt (in Java). Maar we zijn vergeten dat refactoring vaak een oplossing is voor een probleem dat we zelf hebben gecreëerd: code smell. Een probleem dat we dus ook vaak al in de kiem hadden kunnen smoren.

Of Ruby en Rails hier voordelen bieden boven andere talen en omgevingen (zoals Java/J2EE) weet ik niet. Veel soorten code smell zijn volgens mij universeel. Ik geloof dat het belangrijk is om dit soort problemen vroeg te herkennen en te voorkomen. En ik denk dat collegiale toetsing, of nog beter, pair programming, daar heel goed bij kunnen helpen.

En die vlinder? Daar zul je toch het oorspronkelijke artikel voor moeten doorlezen…

Geplaatst in ,  | Tags  | geen reacties

De Ontmaskering van with_options

Geplaatst door Michiel de Mare wo, 01 maa 2006 06:38:00 GMT

Als je herhaaldelijk op hetzelfde object verschillende methoden uitvoert die als laatste argument een hash met opties hebben waarvan een of meer steeds hetzelfde zijn (maar niet allemaal, want dan kun je beter steeds dezelfde hash gebruiken) – dan biedt with_options uitkomst.

Lees verder...

Geplaatst in ,  | geen reacties

Zie 1.1 schijnt door de bomen...

Geplaatst door Michiel de Mare di, 28 feb 2006 15:45:00 GMT

Iedereen heeft het al gemeld, dus wij blijven niet achter: Wat is er nieuw in Rails 1.1

Een heleboel! Het leukste? has_many :through!
def Customer
  has_many :payments, :through => :registrations
end
Schitterend!

Verder o.a. integration tests, Ruby javascript templates (RJS), delegations, polymorphic associations, en teveel om op te noemen. Hopelijk komt er snel een nieuwe versie van het Rails-boek!

Geplaatst in  | 2 reacties

I Smell... Victory

Geplaatst door Michiel de Mare di, 28 feb 2006 15:08:00 GMT

Wat ging er mis op de RADRace? Want van een Rails team kun je natuurlijk niets minder verwachten dan een Totale Overwinning. Met de eerste plaats nemen wij geen genoegen, wij gaan voor de 100% implementatie, inclusief unittests, deployment scripts, caching, kiezen van hosting-partij, bedenken en kopen van domeinnaam, ontwerpen van logo, noem maar op. Hoe gaat ons dat volgend jaar wel lukken?

Lees verder...

Geplaatst in  | geen reacties

Oudere artikelen: 1 ... 16 17 18 19 20