top of page

Folge

14

Was gibt es Neues um Rails, Basecamp und Hotwire?

2. Apr. 2021



David Roetzel, ein erfahrener Software Entwickler, der sich von „Anfang an“ mit Rails beschäftigt hat gibt uns dazu einen Einblick in Rails und auch über die neusten Entwicklungen von Basecamp. Aus der Community haben wir Fragen zu dem Status von Rails / Ruby on Rails bekommen. Rails war „der Hype“ zum Beginn von Web 2.0 – aber wie sieht es jetzt aus ? Und was gibt es neues aus der “Basecamp-Ecke” ?

Höre dies Podcast Folgen auf deiner lieblings Streamingplattform!

Transkript dieser Folge

Ashley: Willkommen zur nächsten Ausgabe des Taktsoft Campus Podcast. Schön, dass Ihr wieder dabei seid um über unsere Podcast Emailadresse Podcast.com haben wir Fragen zu Ruby on Royals bzw zu der aktuellen Bewegung im Basecamp Umfeld bekommen. Dazu habe ich David Rützel eingeladen, um seinen Einblick in dieses Themen zu hören. David ist Software Profi und hat seit vielen Jahren Rails erfolgreich in Projekten eingesetzt. Wenn ihr Themen habt, die gerne in einem Podcast beleuchtet haben möchtet, sendet eine Email an Podcast Text. Ich freue mich auf das Gespräch mit Dave und. Hi, David. Wie geht's dir heute? 
David: Mir geht's gut. Wie geht's dir? 
Ashley: Ja, alles soweit gut. Eine ganz interessante Zeit. Wir haben aus der Community so ein paar Fragen bekommen. So ein paar spezifische Fragen in einem allgemeinen Fragen. Leute haben sich gefragt Mal zum Thema Rails. Was ist denn eigentlich mit Rails? Ich sag mal so das war Web 2:00 null Zeiten 2004. Rails war eigentlich der Hype oder Ruby, Ruby, Ruby und war ein Hype. Zu der Zeit war die Frage dann Das war die erste Frage, was ist dann jetzt eigentlich mit Rails? Gibt es noch? Wird es noch benutzt? Wird es noch eingesetzt? Das war die eine Frage, eine andere ging ein bisschen um. Ich sag mal so bei Skin bzw die Leute auch David Heinemann Hansen gibt es jetzt, weil David hat damals Rails aus Space Camp rausgenommen und als Plattform weiterentwickelt und die Frage war okay, gibt es auch dann neue Sachen aus aus dieser Ecke, neue neue Technologien? Fand ich, fand ich einige ganz interessant. Die, die. Die Fragen, die wir bekommen haben. Ja, und vielleicht waren wir mal mit Rails an. Wie gesagt, ich weiß, du hast dich seit Anfang an beschäftigt. So haben wir uns damals kennengelernt. Ja, 2006. Ja, genau. Und ja. Wie sieht es dann momentan mit Rails aus? Gibt's neue Versionen? Gibt es neue Features? Was? Was gibt es da zu erwähnen? 
David: Ja, eine gute Frage. Um Rails ist es vielleicht zumindest in der Wahrnehmung vieler Leute hierzulande ein bisschen ruhiger geworden, was natürlich bei der Technologie, die jetzt 17 Jahre alt ist, vielleicht auch nicht ganz ungewöhnlich ist. In vielen Medien liest man immer das Neueste und Tollste und die Sachen, die mittlerweile einfach ja ein bisschen älter sind, sich aber wirklich bewährt haben. Davon hört man nicht mehr ganz so viel. Die gute Nachricht ist Rails ist aber immer noch am Leben und wird sehr, sehr aktiv weiterentwickelt. 
Ashley: Aha. 
David: Aktuell ist die Version 6.1 und die Pläne für die Version 7.0 sind auch schon in trockenen Tüchern. Die wird auch nicht mehr allzu lange auf sich warten lassen. Wahrscheinlich. Da es also immer noch eine sehr aktive Gemeinde am Werk, darunter einige wirklich große bekannte Firmen, die mit Rails und durch Rails gewachsen sind, allen voran Shopify Rails User der ersten Stunde, die vor ein paar Jahren großen Börsengang hingelegt haben, wirklich ein Riesenunternehmen sind heutzutage. GitHub kennt natürlich jeder. Ganz klar. Aber auch zum Beispiel Airbnb gehört dazu. 
Ashley: Okay, das wusste ich gar nicht. Interessant. Das heißt wirklich, ich sage mal so, weil früher war ein bisschen dieses Eindruck von Rails, wie gesagt, ein bisschen so, so hip Web 2:00 null. Aber von den Namen, die du gerade gesagt, dass wirklich namhafte Firmen, ich sage mal so Enterprise ready, wenn ich das mal so ausdrücken darf, wäre das so, so, so richtig zu sagen. 
David: Ja, da bin ich vielleicht der falsche Ansprechpartner. Wie du schon gesagt hast, ich bin ja fast von der ersten Stunde mit dabei. Nicht ganz. Ich habe 2005 erst mit Rails angefangen, aber bin dabei geblieben. Ich bin natürlich immer ein bisschen befangen, wenn ich solche Fragen kriege. Aus meiner Sicht natürlich ganz klar. Insbesondere hat es sich scheinbar bewährt für Start ups, die ja, wie soll ich sagen, schnell groß und erfolgreich werden wollen. Da gab es, glaube ich gerade letztes Jahr noch mal eine Erhebung, welche der wertvollsten Startups welche Technologie einsetzen. Und es ist, was am häufigsten tatsächlich genannt wurde, war Ruby on Rails. Wow und Leute Witze gemacht. Wenn man für ein paar Milliarden gekauft werden will, dann sollte man vielleicht Ryan Rails einsetzen. 
Ashley: Dann gründen wir ein Start up und fangen beim RIAS an, wie wir das damals gemacht haben. Gar nicht so schlecht. Ja genau. Und du? Du sagst es, oder? Ich sagte dann Rails damals Hype und jetzt haben wir viel from React und native und so andere Sachen. Die haben wir auch in in früheren Podcast mal wirklich sehr sehr gut durchleuchtet. Ja genau, die Frage oder die zweite Frage aus der Community war, ich sage mal so, die Innovation. Was damals, wo der David noch sein Name, immer David Heinemann Hansen, was er damals mit Riot, wie er das rausgenommen hat, gibt es dann dann andere Beispiele in der jüngeren Vergangenheit, wo wo es auch solche Entwicklung gegeben hat? 
David: Ich denke, da muss man zwei Dinge unterscheiden. Zum einen die Welt der Webentwicklung ist natürlich komplexer geworden. Rails stammt aus einer Zeit, wo man ganz klassisch server seitiges Rendering von HTML Seiten betrieben hat. Und das ist das, was Rails auch immer noch am besten kann. Wenn wir modernere Webentwicklung uns anschauen, haben wir Frameworks wie React und IF und einige andere, die rein Browser seitig funktionieren in JavaScript geschrieben sind in der Regel und die brauchen aber trotzdem in aller Regel immer noch irgendwo ein Server Backend und in vielen Fällen ist das auch Rails. Also selbst in so einer React oder View Welt hat Rails durchaus noch seinen Platz. Nichtsdestotrotz muss man sagen, die Firma, die Hinterrad steckt Basecamp, wo also auch der Erfinder von Rails, der David Heinemann Hanson oder wie die Amerikaner gerne sagen, die HH arbeitet. Ihm gehört die Firma sogar zum Teil. Die sind eine vergleichsweise kleine Firma und die haben ja kleine Entwicklerteams von nur drei Leuten jeweils. Und die sind natürlich sehr darauf bedacht, die maximale Produktivität irgendwie aus diesen kleinen Teams rauszuholen und die sind auf diesen Zug nicht aufgesprungen. Also die machen jetzt kein React oder irgendwas, sondern versuchen wirklich das das maximale aus diesem Prinzip der Server geänderten HTML Seiten rauszuholen. Und das ist tatsächlich im letzten Jahr was ganz interessantes passiert. 
Ashley: Und das wäre. 
David: Basecamp. Die machen so ein Projektmanagement Tool, das heißt auch Basecamp. Die haben ein neues Produkt auf den Markt gebracht. Hey Dotcom ist ein E Mail Service, also vergleichbar mit Gmail, hat aber so ein paar ganz neue Ideen, die ich auch ganz spannend finde. Aber das ist nicht unser Thema heute. Es ist auf jeden Fall ein E Mail Client, der im Webbrowser läuft. Und da erwarten die Leute schon so, dass das wie soll ich sagen, dass sich das schnell anfühlt, dass das wie so eine Desktop Anwendung funktioniert und so was. Und Frameworks wie React oder so was wären die offensichtliche Wahl eigentlich, um so etwas umzusetzen. Das wollten konnten die vielleicht bei Basecamp aber auch gar nicht, weil der Aufwand letztlich sich dadurch fast verdoppelt, weil ich alles auf Server und auf Client Seite im Extremfall sogar doppelt machen muss. Und stattdessen haben die den anderen Weg gewählt und ihren alten bekannten Pfad der Server seitigen HTML Renderings genommen und versucht, durch ein paar ganz intelligente Kniffe da noch das letzte Quäntchen sage ich mal rauszuholen. Die Möglichkeiten also, mit bekannten Vorgehensweisen trotzdem eine recht schnell sich erfüllende Webanwendungen zu schreiben und gleichzeitig auch mobile Apps zu entwickeln. Also die haben auch eine App für Android und iOS, die sich auch letztlich nur aus dieser Web Anwendung speist. 
Ashley: Und welche Technologie, wenn ich das so? Keine Frage. Welche Technologie steckt dahinter? Ich habe verstanden, dass es immer noch Service artige Rendering. Aber gibt es etwas von der technologische Seite? Auch da etwas Neues? 
David: Es gibt ein paar Projekte, die Basecamp dieses praktisch unter einem gemeinsamem Namen zusammengefasst hat. Der Name ist Hot Wire und es ist eine Abkürzung für HTML over the Wire. Ach was, wie gesagt, eine Reihe von Projekten umfasst. Da gibt es zum Beispiel, und das gab es auch vorher schon Stimulus. JS ist ein kleines JavaScript Framework, was es einem ja erleichtert sein JavaScript, was ja bei serverseitig HTML jetzt nicht so umfangreich sein sollte, sonst könnte man ja direkt React oder sowas nehmen, das also zu organisieren. Das Herzstück ist aber eigentlich Turbo und Turbo ist eine Bibliothek, eine Weiterentwicklung von einer existierenden Bibliothek? Turbo Lynx hieß es früher und die Grundidee von Turbo Links und Turbo ist eigentlich schon relativ alt und zum Beispiel bei GitHub auch schon seit ewigen Zeiten im Einsatz. Das ist einfach die Idee, dass ich, wenn ich so eine HTML Seite lade von einem Server, dass ich die nicht vollständig durch den Browser neu anzeigen lassen muss. Das klingt ein bisschen kompliziert, aber die Idee ist ich lade also eine HTML Seite im Hintergrund und ersetze jetzt im laufenden Betrieb die gerade angezeigte Seite bzw nur den gerade angezeigten Bereich der Seite. 
Ashley: Anstatt das komplette Pfeiler sozusagen jedes Mal erneut neu zu rendern, ja wirklich nur das zu nehmen, was gerade was gerade angezeigt wird. 
David: Ganz genau. Es hat eine Reihe von Vorteilen. Es ist in gewisser Weise ein Hack, aber es hat eine Reihe von Vorteilen. Der Browser muss nämlich viel weniger Arbeit leisten. Der muss nicht erneut JavaScript parsen, er muss nicht erneut CSS Regeln auswerten. Und so weiter und so fort. Das heißt ich habe auf dem Netzwerk den genau gleichen Verkehr. Also ich lade die selbe HTML Seite, aber der Browser hat weniger Arbeit, der muss nicht von neuem anfangen, sondern der kann ein bisschen schneller reagieren. Und der Effekt ist, dass der Benutzer nicht eine weiße Seite sieht. Zum Beispiel, das ist der Klassiker Ich navigieren zu einer anderen Seite und mein Browser zeigt mir erst mal ein weißes Fenster. Also das passiert nicht. Die Antwort wirkt schneller, sie ist nicht wirklich schneller, aber sie wirkt schneller. Und was Turbo jetzt macht, ist dieses Prinzip. Also ausweiten auf nicht mehr nur die ganze Seite, sondern auf einzelne Bereiche der Seite, die sogenannten Turbo Frames. Das heißt, ich kann einzelne Bereiche der Seite mir rauspicken und sagen, diese sollen also jetzt neu geladen werden vom Server, und dann ersetzt er mir tatsächlich nur diesen einen kleinen Bereich der Seite. Die Inspiration davon kommt angeblich tatsächlich von den Frames, die man früher in HTML auch hatte. Also eine uralte Idee, die eigentlich nicht mehr wirklich aktuell ist, aber jetzt in diesem Kontext plötzlich doch wieder Sinn macht. Und die andere Sache, die Turbo bietet, ist halt auch Updates, die vom Server irgendwie geschickt werden zu vereinheitlichen. So man also die Möglichkeit hat, durch eine Server Antwort zum Beispiel auch mehrere Bereiche derselben Seite zu aktualisieren. Und das kann auf verschiedenen Wegen passieren. Das kann direkt über eine normale Anfrage passieren. Das kann aber auch über Web Socket zum Beispiel passieren. Und damit kann man halt auch einen sehr hohen Grad der Interaktivität erreichen. Dabei, wie bei allem was Turbo macht, wird ausschließlich HTML übers Netzwerk geschickt. Also keine Jason Nachrichten wie man sie heute oft hat, keine XML Dateien wie man es früher häufig gemacht hat oder so was, sondern einfach nur HTML und das, was jeder Webentwickler sowieso kennen und können sollte. 
Ashley: Es ist ein bisschen, weil es erinnert mich an die 72 Seiten, wo man, ich sage mal so, das dumme Terminal in Anführungsstrichen vorne hat. Ja, aber ich finde diese Idee oder was du sagst, die eigentlich eine altbewährte Technologie oder oder Methode, um das zu machen, aber wirklich knifflig und intelligent ma erweiterten und umgesetzt. Ich denke die Vorteile liegen da da direkt an der Hand und du hast es vorhin das Thema Hey angesprochen. Klar, wir wollen nicht in die Tiefe heute da reingehen, aber wird Hey auf Basis von dieser Hot Wire Technologie dann auch gebaut? 
David: Ja, ganz genau. Die benutzen das wirklich total intensiv da. 
Ashley: Und gibt es dann andere Leute, die auch bereits mit HTML with the Wire. Bzw Produkte gebaut haben oder ist es eher jetzt momentan eher ein bisschen, ich sag mal so Internet und und und diese Reichweite noch nicht da ist. 
David: Also Hot Wire ist um Weihnachten herum erschienen, ist also noch nicht besonders alt. Fertige Produkte sind mir jetzt gerade tatsächlich keine bekannt. Aber es hat sich eine ganz aktive Community drum herum gefunden. Das Spannende an Hot Wire als Technologie sozusagen ist auch, dass es gar nicht Ruby oder Rails spezifisch ist, sondern es sind JavaScript, Bibliotheken und ja, ich sage mal Gerüste für für mobile Apps, die man völlig unabhängig auch von Rails benutzen kann. Es gibt bereits Integrationen, zum Beispiel für das Django Framework, was in Python geschrieben ist. Es gibt Bibliotheken, um das in Go zu nutzen. Ich habe schon Leute das mit Pep nutzen sehen. Und so weiter. Das ist da passiert tatsächlich eine. 
Ashley: Menge, wollte ich gerade sagen, obwohl es eine relativ neue Technologie ist. Man sieht immer, wenn dieses Community aktiviert wird, dass viel passiert, das dann, dann kommt auch nicht der Schwung. Wie du sagst, das ist nicht nicht abhängig ist von Rails. Ja, das wusste ich auch nicht. Das ist. Das ist. Das ist schon interessant. Nein, ich denke, da waren wirklich gute Impulse da. Und auf jeden Fall kann ich mir vorstellen, dass das das Thema hat. Wir vielleicht in einem Jahr reden wir drüber und es ist noch mehr gewonnen, wenn sich jemand zum Thema Hardware jetzt mal informieren will. Du sagst, es gibt eine große Community, da hast du irgendwelche Tipps, wo die Leute hingehen können, um die erste ich sag mal so, ich sag immer, dieser Hello World Anwendung war zu schauen, wie, wie es grundsätzlich funktioniert. 
David: Genau. Da gibt es also die offizielle Website, das ist Hot Wire PDF und da gibt es dann direkt auch ein Screen Cast, den The Edge aufgenommen hat. So hat er damals ja auch Rails bekannt gemacht, das ganz berühmt sein sein Blog, das er in 15 Minuten in Rails programmiert hat und das wollte er jetzt quasi wieder machen. Und da findet man ein Video, wie er ein Chat mithilfe von Hardware implementiert. 
Ashley: Okay, das wäre wirklich dann der erste Punkt, wo ein Entwickler, der sich dafür interessiert, hingehen könnte, um. Um um mehr zu erfahren. Super. Gibt sonst was Neues aus der Ecke, die du gerne erzählen würdest. Oder sind das eigentlich, ich sag mal so, die Fragen, die, die gestellt worden sind aus der Community? Ich glaube, die sind damit erst mal beantwortet. Oder gibt es irgendwelche andere Topics, wo du, wo du sagst okay, da soll man auch hinschauen? 
David: Also wirklich. Gute Frage. Ich gucke mir sehr sehr viel an also Rails ist mein Brot und Butter Geschäft sozusagen und ich bin da voll investiert und deswegen gucke ich mir eine Menge an, was vielleicht nicht ganz so neu ist, was mich aber im Moment ganz gut begeistert. Das ist ein Projekt oder Bibliothek von GitHub, die ja auch schon immer Rails benutzen und die mittlerweile auch extrem aktiv in der Community sind. Die haben auch Core Entwickler oder stellen Core Entwickler von Ruby on Rails und bemühen sich sehr darum, die Entwicklung, die sie machen, nicht neben dem Framework zu machen, sondern in dem Framework zu machen. Also sehr viele Neuerungen, gerade die in Rails sechs reingekommen sind, stammen tatsächlich von GitHub. Eine Sache haben die allerdings nicht bisher integriert bekommen in Rails, und das pflegen sie quasi parallel. Und es ist ein Projekt, das heißt If Component. Und da geht es einfach darum, das zu machen, was quasi React auf Client Seite auch macht, nämlich UI Komponenten zu extrahieren. Und ja, wer sich mal mit React beschäftigt hat, wird sich da direkt zu Hause fühlen. Auch wenn es natürlich eigentlich um etwas ganz anderes geht, weil es jetzt hier plötzlich auf dem Server natürlich passiert, wohingegen das bei React alles im Webbrowser sich abspielt. Aber die Idee ist dasselbe, dass ich also eine Benutzeroberfläche aus. Ja, relativ in sich gekapselt und Komponenten zusammensetzen kann. Und das funktioniert auf dem Server genauso gut, wie es auf dem Client auch funktioniert. Und das ist ganz spannend, vor allen Dingen in Kombination mit modernen CSS Frameworks wie Teil, Wind oder so was. Das schaue ich mir gerade sehr gerne an. 
Ashley: Und ich glaube, ich würde den Thomas und und Ralf, die damals über das Thema Native gesprochen haben bzw der der NEOS. Hartmann hat zum Thema React mit uns mal eine Podcast aufgenommen. Ja, ich würde auf jeden Fall den Link von diesem Podcast zu den hin hinschicken und schauen wie der Reaktion ist auf diese neue Technologien da wird. Das war das war wirklich super und ich glaube wie du glaube, wie du sagst, ist eine Menge passiert im im Web Umfeld Mobil Umfeld und es gibt ein paar Topics, wo man sich damit in der Zukunft denke ich beschäftigen sollte. Ich sage vielen, vielen herzlichen Dank für deine Zeit. Vielen Dank für die interessante, für das interessante Gespräch in die die tolle Information. Ja, und dann hoffe, dass auch die Antworten aus der Community damit beantwortet sind. David Vielen herzlichen Dank! 
David: Ciao und tschüss. 
Ashley: Thanks of Campus Podcast Der Podcast für Software IT Professionals Im Taktsoft Campus Podcast beschäftigen wir uns mit einem breiten Themenspektrum, um euch zu helfen. Praxis Fragen zu Technologie, aber genauso Fragen zur Umsetzung, Prozessen oder Projektorganisation. Danke, dass er dabei wart. Euer Taktsoft Campus Podcast Team.
bottom of page