Skip to content

Commit 6ccfa7a

Browse files
committed
Merge branch 'translate-to-de-newest-posts-until-2-7-0'
2 parents 09d88e7 + 0dbd022 commit 6ccfa7a

7 files changed

+2438
-0
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
---
2+
layout: news_post
3+
title: "Fukuoka Ruby Award 2020 — Einsendungen werden von Matz bewertet"
4+
author: "Fukuoka Ruby"
5+
translator: "Marvin Gülker"
6+
date: 2019-10-16 00:00:00 +0000
7+
lang: de
8+
---
9+
10+
An die Ruby-Enthusiasten:
11+
12+
Die Regionalregierung von Fukuoka (Japan) und „Matz“ Matsumoto laden
13+
Sie zur Teilnahme an dem nachfolgend geschilderten Ruby-Wettbewerb
14+
ein. Wenn Sie ein interessantes Ruby-Programm entwickelt haben, seien
15+
Sie mutig und reichen Sie es ein.
16+
17+
Fukuoka Ruby Award 2020 — Großer Preis — 1 Million Yen!
18+
19+
Einsendeschluss: 11. Dezember 2019
20+
21+
![Fukuoka Ruby Award](http://www.digitalfukuoka.jp/javascripts/kcfinder/upload/images/fukuokarubyaward2017.png)
22+
23+
Matz und eine Gruppe Juroren werden die Preisträger gemeinsam
24+
auswählen; der Große Preis ist mit einer Million Yen (ca. 8.200 €)
25+
dotiert. Frühere Preisträger waren unter anderem Rhomobile (USA) und
26+
das APEC Climate Center (Korea).
27+
28+
[http://myfukuoka.com/category/news/ruby-news/](http://myfukuoka.com/category/news/ruby-news/)
29+
30+
Die zum Wettbwerb eingereichten Programme müssen nicht gänzlich in Ruby
31+
geschrieben sein, sollten aber Gebrauch von Rubys einzigartigen
32+
Charakteristika machen.
33+
34+
Die Projekte müssen allerdings innerhalb der letzten zwölf Monate
35+
entwickelt oder fertiggestellt worden sein, um in Frage zu
36+
kommen. Wenn Sie weitere Informationen benötigen oder etwas einreichen
37+
wollen, besuchen Sie die folgenden Fukuoka-Webseiten:
38+
39+
[http://www.digitalfukuoka.jp/events/215](http://www.digitalfukuoka.jp/events/215) oder
40+
[http://www.digitalfukuoka.jp/uploads/event_detail/file/536/RubyAward_ApplicationForm_2020.doc](http://www.digitalfukuoka.jp/uploads/event_detail/file/536/RubyAward_ApplicationForm_2020.doc)
41+
42+
Richten Sie Ihre Bewerbung an award@f-ruby.com.
43+
44+
„Matz wird Ihren Quellcode intensiv testen und prüfen, daher ist eine Teilnahme
45+
sehr sinnvoll! Der Wettbewerb ist kostenlos.“
46+
47+
Danke!
Lines changed: 328 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,328 @@
1+
---
2+
layout: news_post
3+
title: "Ruby 2.7.0-preview2 veröffentlicht"
4+
author: "naruse"
5+
translator: "Marvin Gülker"
6+
date: 2019-10-22 12:00:00 +0000
7+
lang: de
8+
---
9+
10+
Wir freuen uns, die Veröffentlichung von Ruby 2.7.0-preview2
11+
bekanntgeben zu können.
12+
13+
Diese Vorschau wird veröffentlicht, um bis zur geplanten finalen
14+
Freigabe im Dezember Erfahrungsberichte sammeln zu können. Sie enthält
15+
eine Anzahl neuer Funktionalitäten und Performanzverbesserungen,
16+
namentlich:
17+
18+
* Defragmentierung für den GC _(Campaction GC)_
19+
* Musterabgleiche
20+
* Verbesserungen der interaktiven Kommandozeile _(REPL)_
21+
* Trennung der Positions- und der Schlüsselwortargumente
22+
23+
## Defragmentierender GC
24+
25+
Die neue Version wird einen defragmentierenden GC _(Compaction GC)_
26+
einführen, der fragmentierten Arbeitsspeicherplatz defragmentieren
27+
kann.
28+
29+
Einige Ruby-Programme, die mit mehreren Threads arbeiten, leiden
30+
derzeit unter Speicherfragmentierung. Dies verursacht einen hohen
31+
Speicherverbrauch und eine reduzierte Ausführungsgeschwindigkeit.
32+
33+
Zur Behebung des Problems wird die neue Methode `GC.compact`
34+
eingeführt. Sie defragmentiert den Freispeicher _(Heap)_, indem sie
35+
noch aktive Objekte näher zusammenrückt, sodass weniger Speicherseiten
36+
benötigt werden und der Freispeicher insgesamt besser für
37+
Copy-on-Write geeignet ist. [#15626](https://bugs.ruby-lang.org/issues/15626)
38+
39+
## Musterabgleiche [Experimentell]
40+
41+
Musterabgleiche sind eine häufig genutzte Funktion funktionaler
42+
Programmiersprachen. Mit 2.7.0 werden sie als experimentell in die
43+
Programmiersprache Ruby eingeführt. [#14912](https://bugs.ruby-lang.org/issues/14912)
44+
Ein Musterabgleich untersucht das übergebene Objekt und weist seinen
45+
Wert dann zu, wenn er auf ein bestimmtes Muster passt.
46+
47+
{% highlight ruby %}
48+
case JSON.parse('{...}', symbolize_names: true)
49+
in {name: "Alice", children: [{name: "Bob", age: age}]}
50+
p age
51+
...
52+
end
53+
{% endhighlight %}
54+
55+
Weitere Details können Sie der Präsentation [Musterabgleiche - Neue Funktion in Ruby 2.7](https://speakerdeck.com/k_tsj/pattern-matching-new-feature-in-ruby-2-dot-7)
56+
entnehmen.
57+
58+
## Verbesserung der interaktiven Kommandozeile
59+
60+
Die mitgelieferte interaktive Kommandozeile `irb` _(REPL: Read-Eval-Print-Loop)_
61+
wird mehrzeiliges Editieren unterstützen. Dies wird mithilfe von
62+
`reline`, einer `readline`-kompatiblen reinen Ruby-Bibliothek,
63+
umgesetzt. Darüber hinaus wird `irb` besser mit RDoc integriert: es
64+
wird möglich, die Referenzdokumentation für eine bestimmte Klasse,
65+
ein bestimmtes Modul oder auch eine bestimmte Methode nachzuschlagen.
66+
[#14683](https://bugs.ruby-lang.org/issues/14683),
67+
[#14787](https://bugs.ruby-lang.org/issues/14787),
68+
[#14918](https://bugs.ruby-lang.org/issues/14918)
69+
Schließlich werden von `binding.irb` angezeigte Quellcode-Zeilen und
70+
Ergebnisse von `inspect` farblich hevorgehoben werden.
71+
72+
73+
<video autoplay="autoplay" controls="controls" muted="muted" width="576" height="259">
74+
<source src="https://cache.ruby-lang.org/pub/media/irb_improved_with_key_take2.mp4" type="video/mp4">
75+
</video>
76+
77+
## Trennung von Positions- und Schlüsselwortargumenten
78+
79+
Die automatische Konvertierung zwischen Schlüsselwort- und
80+
Positionsargumenten gilt nun als veraltet und wird mit Ruby 3 entfernt
81+
werden. [[Feature #14183]](https://bugs.ruby-lang.org/issues/14183)
82+
83+
* Wenn bei einem Methodenaufruf ein Hash als letztes Argument
84+
übergeben wird, wenn sonstige Argumente fehlen und wenn die
85+
aufgerufene Methode Schlüsselwortargumente annimmt, dann gibt Ruby
86+
eine Warnung aus. Um das Hash weiterhin als Schlüsselwortargument zu
87+
verwenden, ist es notwendig, den doppelten Auflösungsoperator
88+
_(double splat operator)_ zu benutzen. Nur so kann die Warnung
89+
vermieden und das korrekte Verhalten in Ruby 3 sichergestellt
90+
werden.
91+
92+
{% highlight ruby %}
93+
def foo(key: 42); end; foo({key: 42}) # Warnung
94+
def foo(**kw); end; foo({key: 42}) # Warnung
95+
def foo(key: 42); end; foo(**{key: 42}) # OK
96+
def foo(**kw); end; foo(**{key: 42}) # OK
97+
{% endhighlight %}
98+
99+
* Wenn bei einem Methodenaufruf Schlüsselwortargumente an eine
100+
Methode, die auch Schlüsselwortargumente akzeptiert, übergeben
101+
werden, jedoch nicht genügend Schlüsselwortargumente bereitgestellt
102+
werden, dann werden die übergebenen Schlüsselwortargumente als
103+
finales erforderliches Positionsargument gewertet und eine Warnung
104+
wird ausgegeben. Übergeben Sie das Argument als Hash statt als
105+
Schlüsselwortargumentliste, um die Warnung zu vermeiden und
106+
korrektes Verhalten in Ruby 3 sicherzustellen.
107+
108+
{% highlight ruby %}
109+
def foo(h, **kw); end; foo(key: 42) # Warnung
110+
def foo(h, key: 42); end; foo(key: 42) # Warnung
111+
def foo(h, **kw); end; foo({key: 42}) # OK
112+
def foo(h, key: 42); end; foo({key: 42}) # OK
113+
{% endhighlight %}
114+
115+
* Wenn eine Methode bestimmte Schlüsselwortargumente, nicht aber den
116+
doppelten Auflösungsoperator verwendet, und ein Hash oder eine
117+
Schlüsselwortargumenteliste mit einer Mischung aus Strings und
118+
Symbolen übergeben wird, dann wird das Hash weiterhin aufgespalten.
119+
Zudem wird eine Warnung ausgegeben. Sie müssen für das korrekte
120+
Verhalten in Ruby 3 den aufrufenden Code so ändern, dass zwei
121+
einzelne Hashes übergeben werden.
122+
123+
{% highlight ruby %}
124+
def foo(h={}, key: 42); end; foo("key" => 43, key: 42) # Warnung
125+
def foo(h={}, key: 42); end; foo({"key" => 43, key: 42}) # Warnung
126+
def foo(h={}, key: 42); end; foo({"key" => 43}, key: 42) # OK
127+
{% endhighlight %}
128+
129+
* Wenn eine Methode keine Schlüsselwortargumente akzeptiert, aber mit
130+
solchen aufgerufen wird, werden solche Schlüsselwortargumente
131+
weiterhin ohne Warnung als Hash für ein Positionsargument
132+
interpretiert. Dieses Verhalten wird auch in Ruby 3 weiterhin
133+
beibehalten.
134+
135+
{% highlight ruby %}
136+
def foo(opt={}); end; foo( key: 42 ) # OK
137+
{% endhighlight %}
138+
139+
* Schlüsselwortargumente mit anderen Schlüsseln als Symbolen sind
140+
zulässig, wenn die Methode beliebige Schlüsselwortargumente
141+
akzeptiert. [[Feature #14183]](https://bugs.ruby-lang.org/issues/14183)
142+
143+
{% highlight ruby %}
144+
def foo(**kw); p kw; end; foo("str" => 1) #=> {"str"=>1}
145+
{% endhighlight %}
146+
147+
* <code>**nil</code> kann genutzt werden, um in einer
148+
Methodendefinition ausdrücklich festzulegen, dass die Methode keine
149+
Schlüsselwörter akzeptiert. Der Aufruf einer solchen Methode mit
150+
Schlüsselwortargumenten erzeugt einen ArgumentError. [[Feature #14183]](https://bugs.ruby-lang.org/issues/14183)
151+
152+
{% highlight ruby %}
153+
def foo(h, **nil); end; foo(key: 1) # ArgumentError
154+
def foo(h, **nil); end; foo(**{key: 1}) # ArgumentError
155+
def foo(h, **nil); end; foo("str" => 1) # ArgumentError
156+
def foo(h, **nil); end; foo({key: 1}) # OK
157+
def foo(h, **nil); end; foo({"str" => 1}) # OK
158+
{% endhighlight %}
159+
160+
* Die Übergabe einess leeren doppelten Auflösungsoperators an eine
161+
Methode, die keine Schlüsselwortargumente akzeptiert, führt nicht
162+
länger zur impliziten Übergabe eines leeren Hashes, es sei denn, das
163+
Hash ist wegen eines erforderlichen Parameters notwendig.
164+
In diesem Fall wird eine Warnung ausgegeben. Entfernen Sie den
165+
doppelten Auflösungsoperator, um ein Hash als Positionsargument zu
166+
übergeben. [[Feature #14183]](https://bugs.ruby-lang.org/issues/14183)
167+
168+
{% highlight ruby %}
169+
h = {}; def foo(*a) a end; foo(**h) # []
170+
h = {}; def foo(a) a end; foo(**h) # {} und Warnung
171+
h = {}; def foo(*a) a end; foo(h) # [{}]
172+
h = {}; def foo(a) a end; foo(h) # {}
173+
{% endhighlight %}
174+
175+
## Sonstige bemerkenswerte neue Funktionen
176+
177+
* Ein Methoden-Referenz-Operator, <code>.:</code>, wird als
178+
experimentell eingeführt. [#12125](https://bugs.ruby-lang.org/issues/12125), [#13581](https://bugs.ruby-lang.org/issues/13581)
179+
180+
* Blockparameter werden für abgekürzten Zugriff automatisch nummeriert (experimentell).
181+
[#4475](https://bugs.ruby-lang.org/issues/4475)
182+
183+
* Ruby verfügt bereits über endlose Range-Objekte. Nunmehr werden auch
184+
anfangslose Range-Objekte eingeführt. Diese sind vielleicht nicht so
185+
nützlich wie endlose Range-Objekte, könnten aber für
186+
domänenspezifische Sprachen praktisch sein.
187+
[#14799](https://bugs.ruby-lang.org/issues/14799)
188+
189+
{% highlight ruby %}
190+
ary[..3] # identical to ary[0..3]
191+
rel.where(sales: ..100)
192+
{% endhighlight %}
193+
194+
* `Enumerable#tally` wird hinzugefügt. Die Methode zählt das Vorkommen
195+
jedes Elements.
196+
197+
{% highlight ruby %}
198+
["a", "b", "c", "b"].tally
199+
#=> {"a"=>1, "b"=>2, "c"=>1}
200+
{% endhighlight %}
201+
202+
* Es ist jetzt zulässig, eine private Methode auf `self` aufzurufen.
203+
[[Feature #11297]](https://bugs.ruby-lang.org/issues/11297) [[Feature #16123]](https://bugs.ruby-lang.org/issues/16123)
204+
205+
{% highlight ruby %}
206+
def foo
207+
end
208+
private :foo
209+
self.foo
210+
{% endhighlight %}
211+
212+
* `Enumerator::Lazy#eager` wird hinzugefügt. Diese Methode generiert
213+
einen nicht verzögertern Enumerator (_non-lazy enumerator_) aus
214+
einem verzögerten Enumerator (_lazy enumerator_). [[Feature #15901]](https://bugs.ruby-lang.org/issues/15901)
215+
216+
{% highlight ruby %}
217+
a = %w(foo bar baz)
218+
e = a.lazy.map {|x| x.upcase }.map {|x| x + "!" }.eager
219+
p e.class #=> Enumerator
220+
p e.map {|x| x + "?" } #=> ["FOO!?", "BAR!?", "BAZ!?"]
221+
{% endhighlight %}
222+
223+
## Performanzverbesserungen
224+
225+
* JIT [Experimentell]
226+
227+
* JIT-kompilierter Code wird neu zu weniger optimiertem Code
228+
kompiliert, wenn eine Optimierungsannahme sich als falsch
229+
herausstellt.
230+
231+
* Method-Inlining wird durchgeführt, wenn eine Methode als rein
232+
_(pure)_ gilt. Diese Optimierung ist noch experimentell und
233+
zahlreiche Methoden gelten noch nicht als rein.
234+
235+
* Der Standardwert von `--jit-min-calls` wird von 5 auf 10.000
236+
geändert.
237+
238+
* Der Standardwert von `--jit-max-cache` wird von 1.000 auf 100
239+
geändert.
240+
241+
* `Symbol#to_s`, `Module#name`, `true.to_s`, `false.to_s` und
242+
`nil.to_s` geben jetzt immer einen eingefrorenen String zurück. Der
243+
zurückgegebene String ist für das jeweilige Objekt immer derselbe.
244+
[Experimenell] [[Feature #16150]](https://bugs.ruby-lang.org/issues/16150)
245+
246+
* Die Performanz von `CGI.escapeHTML` wurde verbessert. [GH-2226](https://github.com/ruby/ruby/pull/2226)
247+
248+
## Sonstige bemerkenswerte Änderungen seit 2.6
249+
250+
* Einige Standardbibliotheken werden aktualisiert.
251+
* Bundler 2.1.0.pre.1
252+
* RubyGems 3.1.0.pre.1
253+
* CSV 3.1.2 ([NEWS](https://github.com/ruby/csv/blob/v3.1.2/NEWS.md))
254+
* Racc 1.4.15
255+
* REXML 3.2.3 ([NEWS](https://github.com/ruby/rexml/blob/v3.2.3/NEWS.md))
256+
* RSS 0.2.8 ([NEWS](https://github.com/ruby/rss/blob/v0.2.8/NEWS.md))
257+
* StringScanner 1.0.3
258+
* Es werden auch einige Bibliotheken aktualisiert, die nicht über
259+
eine eigenständige Versionsnummer verfügen.
260+
261+
* Die Nutzung von `Proc.new` und `proc` ohne Block in einer Methode,
262+
die einen Block erwartet, führt nun zu einer Warnung.
263+
264+
* Die Nutzung von `lambda` ohne block in einer Methode, die einen
265+
Block erwartet, erzeugt einen Fehler.
266+
267+
* Die Unicode- und Emoji-Version werden von 11.0.0 auf 12.0.0 angehoben.
268+
[[Feature #15321]](https://bugs.ruby-lang.org/issues/15321)
269+
270+
* Die Unicode-Version wird auf 12.1.0 angehoben, um Unterstützung für
271+
U+32FF SQUARE ERA NAME REIWA zu erhalten. [[Feature #15195]](https://bugs.ruby-lang.org/issues/15195)
272+
273+
* `Date.jisx0301`, `Date#jisx0301` und `Date.parse` implementieren
274+
provisorische Unterstützung für die neue japanische Ära. Dies ist
275+
keine offiziell unterstützte Änderung, sondern provisorisch bis zur
276+
Freigabe von JIS X 0301.
277+
[[Feature #15742]](https://bugs.ruby-lang.org/issues/15742)
278+
279+
* Ruby nutzt jetzt C99, welches der Compiler unterstützen muss.
280+
[[Misc #15347]](https://bugs.ruby-lang.org/issues/15347)
281+
* Details zum genutzten Dialekt: <https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/C99>
282+
283+
Siehe die
284+
[NEWS](https://github.com/ruby/ruby/blob/v2_7_0_preview2/NEWS) oder
285+
die
286+
[Commit-Logs](https://github.com/ruby/ruby/compare/v2_6_0...v2_7_0_preview2)
287+
für weitere Details.
288+
289+
Mit diesen Änderungen wurden [3670 files geändert, 201242 Einfügungen(+), 88066 Löschungen(-)](https://github.com/ruby/ruby/compare/v2_6_0...v2_7_0_preview2) seit Ruby 2.6.0!
290+
291+
Viel Spam bei der Programmierung mit Ruby 2.7!
292+
293+
## Download
294+
295+
* <https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.0-preview2.tar.bz2>
296+
297+
SIZE: 14555229 bytes
298+
SHA1: 7d9eed71115acfc8851747517904c1c6809872a9
299+
SHA256: 417c84346ba84d664a13833c94c6d9f888c89bb9bee9adf469580441eaede30b
300+
SHA512: 7066ececebbbba4b2933ba1a4f70cdef373169910802259a3e52b4fc144ba298f3cffda4be5fe8a7be8ef769ed43076fa046a9ac2c13bb733475b9852112c6f0
301+
302+
* <https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.0-preview2.tar.gz>
303+
304+
SIZE: 16622499 bytes
305+
SHA1: 5e998eb37ef54e650c0206184d56f506359d5477
306+
SHA256: bda4b8dc340fad425c8099400fe3ef8e7393837d7e6e1bfae41843d1d938ebc4
307+
SHA512: dbf05d6ddab59062f507342b25b8c21670b02bdd49e77bda947870607f4bf9049e5e7ddfde6bbce2e1749ca92568da9be3e5f30601b1eb450f10d8add952239a
308+
309+
* <https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.0-preview2.tar.xz>
310+
311+
SIZE: 11874200 bytes
312+
SHA1: 4356e1726027795a5c6b08572bb37bcb5a8c55d6
313+
SHA256: fa39f088331f6d505154aa9d025aab177fdffedfbbabccd900b8c02e745bc077
314+
SHA512: a057a186d85fcdf123abd69d584ef3adb20ad4397521e14306395d34102c3d818fe2d34a6476db01effcde479da9a77076cbb6d30bca40f1471ce3f5d3a995a9
315+
316+
* <https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.0-preview2.zip>
317+
318+
SIZE: 20576618 bytes
319+
SHA1: 891b70ec76e9e776774a49b3ce24832a944422b3
320+
SHA256: 81a240bead4438b064cb4cde562b483b82ec8e414bac057a6df43df5a247545c
321+
SHA512: 1a8d4503374d31abf43182e2af6902ea6e5295f55d539415c8268b1d6a0fa83a975648c225ae986e687d5283dc2d180cf1e608841485506e4b0ac5efc154949a
322+
323+
## Was ist Ruby
324+
325+
Die Programmiersprache Ruby wurde 1993 von Yukihiro „Matz“ Matsumoto
326+
erfunden und wird heute als quelloffene Software entwickelt. Sie läuft
327+
auf verschiedenen Plattformen und wird überall auf der Welt namentlich
328+
für die Webentwicklung genutzt.

0 commit comments

Comments
 (0)