Interessante Keynote über Scala

Ein Blick in die Zukunft: Wie Scala im Jahr 2018 Mainstream geworden ist…

Die Keyno­te der Sca­la­days 2013, ge­hal­ten von Rod John­son, ist in­zwi­schen on­line an­seh­bar. Aus­ge­hend von der Frage, mit wel­chen Pro­gram­mier­spra­chen man auch Ge­dich­te schrei­ben kann, stellt er sich die Frage, wie 2018 Scala eine Main­stream-Spra­che ge­wor­den ist (bzw. was die Ent­wick­lung hier­für be­güns­ti­gen würde). Dabei stellt er ei­ni­ge in­ter­es­san­te Über­le­gun­gen über Vor- und Nach­tei­le von Mäch­tig­keit und Kom­le­xi­tät von Pro­gram­mier­spra­chen an, aber al­lein die Ge­dich­te ma­chen den Vor­trag se­hen­wert.

Es gibt tat­säch­lich einen Perl Poe­try Con­test, in dem Ge­dich­te in Perl ge­schrie­ben wer­den. John­son ver­such­te sich ein­lei­tend ana­log in einem Ge­dicht in Scala. Das bringt ihn zu der Frage, daß dies ja nicht in jeder Spra­che mög­lich sei; mit Java bei­spiels­wei­se wäre so etwas un­mög­lich.

An­hand ver­schie­de­ner Bei­spie­le, Zi­ta­te und wei­te­rer Pro­gram­mier­spra­chen dis­ku­tiert er die Vor- und Nach­tei­le der Mäch­tig­keit von Spra­chen. Letzt­lich läßt es sich auf das „Spi­der­man-Prin­zip“ her­un­ter­bre­chen: Mit gro­ßer Macht kommt große Ver­ant­wor­tung. Mäch­ti­ge Spra­chen er­lau­ben es, sehr ele­gant und les­bar auf den Punkt zu kom­men – aber man kann sie eben auch miß­brau­chen (sei es zu Ge­dich­ten oder zu voll­kom­men un­le­ser­li­chem Code).

Scala at­tes­tiert er eine große Zu­kunft, in­ter­es­san­ter­wei­se ins­be­son­de­re im Busi­ness- und En­t­er­pri­se-Be­reich. Meine per­sön­li­che Ein­schät­zung wäre ge­we­sen, daß ins­be­son­de­re Star­tups und junge Fir­men sich auf neue Tech­nik wie Scala stür­zen, aber mög­li­cher­wei­se hat John­son hier einen bes­se­ren Über­blick.

Im Kon­text der Kom­ple­xi­tät von Scala er­teilt er den funk­tio­na­len Pu­ris­ten eine deut­li­che Ab­sa­ge; dies ist sei­ner Mei­nung nach ein ähn­li­cher Miß­brauch der Spra­che, Scala sei schlie­ß­lich als Hy­brid kon­zi­piert. Im glei­chen Zug pran­gert er an, daß häu­fig in der Sca­la-Com­mu­ni­ty eine „ob­jekt­ori­en­tiert schlecht, funk­tio­nal gut“-Hal­tung herr­sche, mit der ins­be­son­de­re An­fän­ger ab­ge­kan­zelt wür­den.

Mit etwas Sorge be­trach­tet er die sei­ner Mei­nung nach zu ra­san­te Wei­ter­ent­wick­lung der Spra­che. Dies macht es Neu­ein­stei­gern immer schwie­ri­ger, aber auch die Ent­wick­lung ro­bus­ter Com­pi­ler und Tools wird da­durch er­schwert. Eine nicht un­ver­nünf­ti­ge An­re­gung finde ich den Vor­schlag, ab einem ge­wis­sen Punkt ein „Scala Sta­ble“ mit einem ab­ge­han­ge­nen Set an Sprach­fea­tures und ein „Scala Aca­de­mic“ mit den neu­es­ten Ex­pe­ri­men­ten zu haben – ähn­lich wie bei Li­nux-Dis­tri­bu­tio­nen Pro­gram­me von „tes­ting“ nach „sta­ble“ wan­dern, könn­ten so pra­xis­er­prob­te Funk­tio­nen nach einer Vor­lauf­zeit in den Com­pi­ler für die brei­te Masse wan­dern.

Po­si­tiv be­wer­tet er hin­ge­gen die Ent­wick­lung der ge­sam­ten Tool­chain (Com­pi­ler, IDE-Sup­port, etc.): Es gäbe zwar noch immer ei­ni­ges zu tun, aber es ginge zügig voran.

Alles in allem zeich­net er ein prag­ma­ti­sches Bild: Es macht kei­nen Sinn, eine Bi­blio­thek in Scala neu zu er­stel­len, wenn es eine ent­spre­chen­de er­prob­te Ja­va-Bi­blio­thek gäbe; sinn­vol­ler sei es viel­mehr, hier­auf auf­zu­set­zen und Schnitt­stel­len mit Sca­la-Fee­ling zu er­stel­len. Neuen Nut­zern muß der Weg etwas mehr ge­eb­net wer­den, so­wohl in Bezug auf Hal­tung der Com­mu­ni­ty als auch mit der Flut an neuen Fea­tures, wel­che ne­ben­bei auch dafür sorgt, daß Tu­to­ri­als und Bü­cher bei­na­he ra­scher ver­al­tet sind als sie ge­schrie­ben wer­den kön­nen. Aber all diese Hür­den sind lös­bar, und 2018 sieht er Scala als Main­stream-Spra­che, die Java nicht ver­drängt, aber als eben­bür­ti­ger Part­ner er­gänzt (womit sich seine Ein­schät­zung mit der mei­nen deckt).

(via OIO Blog)