{"id":2226,"date":"2008-01-27T12:47:00","date_gmt":"2008-01-27T12:47:00","guid":{"rendered":"http:\/\/www.b.shuttle.de\/hayek\/Hayek\/Jochen\/wp\/blog-de\/2008\/01\/27\/ruby-mri-wiederverwendbare-software-nih\/"},"modified":"2008-01-27T12:47:00","modified_gmt":"2008-01-27T12:47:00","slug":"ruby-mri-wiederverwendbare-software-nih","status":"publish","type":"post","link":"https:\/\/wp.jochen.hayek.name\/blog-de\/2008\/01\/27\/ruby-mri-wiederverwendbare-software-nih\/","title":{"rendered":"ruby, MRI, wiederverwendbare Software, NIH, &#8230;"},"content":{"rendered":"<p>\t\t\t\tMir scheint da in Ruby \u00fcberhaupt so ein generelles <a href=\"http:\/\/en.wikipedia.org\/wiki\/NIH_(disambiguation)\">NIH-Problem<\/a> zu existieren.<\/p>\n<p>      K\u00f6nnte letztendlich eines der Argumente gegen Ruby sein.<\/p>\n<p>      Aber wie geht der Spruch mit dem Fisch und dem Kopf?<\/p>\n<p>      Habe j\u00fcngst die Erfahrung gemacht, dass man bei <a href=\"http:\/\/en.wikipedia.org\/w\/index.php?title=Matz's_Ruby_Interpreter&amp;action=edit\">MRI<\/a><br \/>\n      auch in Sache <q>POSIX locale<\/q> nicht auf (GNU) libc setzt<br \/>\n      sondern lieber auf <q><a href=\"http:\/\/en.wikipedia.org\/wiki\/Reinventing_the_wheel\">re-inventing the wheel<\/a><\/q>.<br \/>\n      Sei&#8217;s drum!<br \/>\n    <br \/>\nIn den 80-er <em>sprach<\/em> man nicht nur von <q>re-usable software<\/q>,<br \/>\n      sondern man verfolgte den Ansatz auch,<br \/>\n      und man hat Software schlie\u00dflich auch <q>re-used<\/q>.<br \/>\n      Software muss nicht nur <q>re-usable<\/q> <em>sein<\/em>, sie muss auch <q>re-used<\/q> <em>werden<\/em>, sonst hat das Ganz ja wohl kaum einen Sinn.<br \/>\n    <br \/>\nHeute entsteht so manche Software halt im Rahmen von Hochschul-Projekten zur \u00dcbung und mehr oder weniger als <q>proof of concept<\/q>,<br \/>\n      und dann besinnt sich niemand eigentlich besserer L\u00f6sungen.<br \/>\n      Sehr bedauerlich.<br \/>\n      Nein, richtig loben kann ich niemanden daf\u00fcr, dass er f\u00fcr Sprache <q>x<\/q> die <q>n+erste<\/q> <q>regular expression engine<\/q> baut und verbreitet.<br \/>\n      Sch\u00f6n, dass er das kann,<br \/>\n      und wenn man 10 Studenten-Gruppen und ihre L\u00f6sungen zu einem Standard-Problem vergleichen kann,<br \/>\n      dann mag&#8217;s ja noch angehen,<br \/>\n      aber auch die beste dieser L\u00f6sungen muss deswegen noch nicht f\u00fcr Sprache <q>x<\/q> die Standard-L\u00f6sung werden.<br \/>\n      Mir graut davor. Echt.<br \/>\n    <br \/>\nMRI ist in C geschrieben,<br \/>\n      und wird wohl in der Regel mit gcc \u00fcbersetzt,<br \/>\n      und im Umfeld des gcc gibt es passender, performante, ressourcen-schonend und reife L\u00f6sungen,<br \/>\n      die schon so manchen Sturm \u00fcberlebt haben und dabei Qualit\u00e4t bekamen.<br \/>\n      Nicht dass meine heile Nacht-Ruhe davon abh\u00e4ngt, dass mein Ratschlag befolgt wird,<br \/>\n      aber MRI sollte soweit m\u00f6glich auf performante reife <q>Middleware<\/q> setzen<br \/>\n      (niemand w\u00fcrde ernsthaft die echt gro\u00dfen <q>Middlewaren<\/q> in Ruby nachbauen, aber so studienarbeitsgro\u00dfe Teile wohl immer wieder)<br \/>\n      und NIH und <q>Reinventing_the_wheel<\/q> sind Mist.<br \/>\n    <br \/>\nJa, ich habe auch schon mitbekommen, das JRuby auch nicht in C geschrieben ist,<br \/>\n      und dass man auch im JRuby-Umfeld eine gangbare L\u00f6sung braucht.<br \/>\n      Ja. Ist aber nicht mein Problem.<br \/>\n      JRuby ist ja eigentlich nicht schlecht vom Ansatz her &#8211; vielleicht,<br \/>\n      aber wenn einen eine Parallel-\/Alternativ-Implementierung zu heftig sub-optimalen L\u00f6sung dr\u00e4ngt,<br \/>\n      dann ist eine N\u00f6tigung, der ich mich nicht aussetzen will.<br \/>\n      Aber \/ und muss man jetzt wegen JRuby auch im MRI- \/ <q>CRuby<\/q>-Umfeld alles in Ruby schreiben,<br \/>\n      was nicht unbedingt in Ruby geschrieben werden muss, nicht wahr?<br \/>\n    <br \/>\nSo genug f\u00fcr heute \ud83d\ude09\t\t\t\t<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mir scheint da in Ruby \u00fcberhaupt so ein generelles NIH-Problem zu existieren. K\u00f6nnte letztendlich eines der Argumente gegen Ruby sein. Aber wie geht der Spruch mit dem Fisch und dem Kopf? Habe j\u00fcngst die Erfahrung gemacht, dass man bei MRI auch in Sache POSIX locale nicht auf (GNU) libc setzt sondern lieber auf re-inventing the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_share_on_mastodon":"0"},"categories":[352],"tags":[],"class_list":["post-2226","post","type-post","status-publish","format-standard","hentry","category-nicht-zugeordnet"],"share_on_mastodon":{"url":"","error":""},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/paO0l8-zU","jetpack_likes_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/wp.jochen.hayek.name\/blog-de\/wp-json\/wp\/v2\/posts\/2226","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wp.jochen.hayek.name\/blog-de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wp.jochen.hayek.name\/blog-de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wp.jochen.hayek.name\/blog-de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wp.jochen.hayek.name\/blog-de\/wp-json\/wp\/v2\/comments?post=2226"}],"version-history":[{"count":0,"href":"https:\/\/wp.jochen.hayek.name\/blog-de\/wp-json\/wp\/v2\/posts\/2226\/revisions"}],"wp:attachment":[{"href":"https:\/\/wp.jochen.hayek.name\/blog-de\/wp-json\/wp\/v2\/media?parent=2226"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wp.jochen.hayek.name\/blog-de\/wp-json\/wp\/v2\/categories?post=2226"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wp.jochen.hayek.name\/blog-de\/wp-json\/wp\/v2\/tags?post=2226"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}