devnews.pl

Main Menu

  • Informacje
    • Systemy i przeglądarki
    • Gadżety
  • Narzędzia
  • Frontend
  • Backend
  • QA
  • Języki programowania

logo

devnews.pl

  • Informacje
    • Systemy i przeglądarki
    • Gadżety
  • Narzędzia
  • Frontend
  • Backend
  • QA
  • Języki programowania
Bez kategoriiJęzyki programowania
Home›Bez kategorii›Ruby 3.0 Preview z nowymi funkcjami i lepszą wydajnością

Ruby 3.0 Preview z nowymi funkcjami i lepszą wydajnością

By Bernadeta Zapała
6 października 2020
298
0
Share:

Ruby powstał w 1993 roku, obecnie jest rozwijany jako projekt open source. Korzysta z niego wielu programistów na całym świecie, przede wszystkim do tworzenia stron internetowych. Wrzesień zakończył się ważnymi informacjami dla nich. Twórcy tego języka wydali pierwszą wersję Ruby 3.0 Preview, a także przedstawili informację o planowanym wydaniu oficjalnej wersji w grudniu. Wersja Preview posiada wiele nowych funkcji i ulepszeń wydajności. Jej celem jest większa szybkość, poprawność oraz współbieżność. I od tego zaczniemy.

Ractor – “rubinowy aktor”

Ractor to model-aktor, podobny do współbieżnej abstrakcji. W Ruby 3.0 Preview jest w fazie eksperymentalnej, więc przy tworzeniu Ractora pojawi się ostrzeżenie. Ractor zapewnia wykonywanie równoległe, jednak bez obaw o bezpieczeństwo wątków. Są one bezpieczne, ponieważ ractory nie mogą wspólnie korzystać z normalnych obiektów.

Ograniczenie współużytkowania obiektów jest możliwe przez wprowadzenie do składni Ruby kilku uwag. Ponadto komunikację Ractorów wspiera przekazywanie wiadomości. Poniżej znajduje się przykładowy program, obliczający równolegle liczby pierwsze. Warto zauważyć, że posiada ona dwa Ractory, a także daje wynik nawet dwa razy szybciej od programu sekwencyjnego.

require 'prime'
# n.prime? with sent integers in r1, r2 run in parallel
r1, r2 = *(1..2).map do
  Ractor.new do
    n = Ractor.recv
    n.prime?
  end
end

# send parameters
r1.send 2**61 - 1
r2.send 2**61 + 15

# wait for the results of expr1, expr2
p r1.take #=> true
p r2.take #=> true

RBS w Ruby 3.0 Preview

Przede wszystkim RBS jest językiem opisującym strukturę programów Ruby. Opisuje typy i definicje klas, a także ich metody, zmienne instancji czy relacje dziedziczenia / mieszania. Celem RBS jest wspieranie typowych wzorców w programach Ruby. Ponadto zezwala na pisanie zaawansowanych typów jak np. metody przeciążenia.

Ruby 3.0 Preview dostarcza specjalny gem rbs, dzięki któremu prostsza jest analiza i przetwarzanie definicji typów napisanych w RBS. Kompilator Just In-Time zwiększa prędkość kompilacji programu o 50 – 500% , w zależności od obciążenia.

Pozostałe nowe funkcje

Wśród innych funkcji, na które warto zwrócić uwagę, jest:

  • przypisanie w prawo
  fib(10) => x
  p x #=> 55
  • znajdź wzorzec
  case ["a", 1, "b", "c", 2, "d", "e", "f", 3]
  in [*pre, String => x, String => y, *post]
    p pre  #=> ["a", 1]
    p x    #=> "b"
    p y    #=> "c"
    p post #=> [2, "d", "e", "f", 3]
  end
  • definicja nieskończonej metody.
  def square(x) = x * x
  • wbudowano Hash#except
  h = { a: 1, b: 2, c: 3 }
  p h.except(:a) #=> {:b=>2, :c=>3}
  • Widok pamięci – funkcja eksperymentalna – nowy zestaw C-API do wymiany nieprzetworzonego obszaru pamięci (tablica numeryczna czy obraz bitmapowy) między bibliotekami rozszerzeń.

Co dalej, w Ruby 3.0 Preview 2?

W kolejnym wydaniu wersji preview twórcy chcą włączyć profilowanie typów. Jest to statyczna funkcja analizy typów. W teorii Profiler ma wykonywać dany program, a następnie obserwować jakie typy są przekazywane i zwracane przez metody.

TagsProgrammingRubyRuby on RailsSoftware DevelopmentWeb Development

Share:

  • Systemy i przeglądarki

    Firefox 81 dostępny z nowym motywem Alpenglow

  • BackendFrontendNarzędzia

    RedwoodJS – nowa platforma webowa JavaScript

  • Patch Tuesday
    Systemy i przeglądarki

    Październikowy Patch Tuesday – cyberbezpieczeństwo

  • 13 kwietnia 2021

    TypeScript 4.3 beta z oddzielnymi typami zapisu

  • 7 kwietnia 2021

    Billboard.js 3.0 z nowym typem świecy

  • 2 kwietnia 2021

    Silnik V8 9.0 beta udostępniony

  • 1 kwietnia 2021

    ReacType 6.0 z nowym dashboardem

  • 29 marca 2021

    Udostępniono Android 12 Developer Preview 2

  • 24 marca 2021

    Git 2.31 dostępny z konserwacją w tle

  • 19 marca 2021

    Relay Hooks – nowy zestaw interfejsów API

  • 18 marca 2021

    Deno 1.8 ze wsparciem interfejsu API WebGPU 

  • 16 marca 2021

    React Native 0.64 z silnikiem Hermes na iOS

  • 9 marca 2021

    Windows Terminal Preview 1.7 z lepszym zarządzaniem oknami

  • 3 marca 2021

    Vite 2.0 wydane z nowymi wtyczkami

  • 25 lutego 2021

    ReacType 5.0 – zmiany we wprowadzaniu komponentów

  • 23 lutego 2021

    Dapr v.1.0 gotowy do fazy produkcji

  • 22 lutego 2021

    ReScript 9.0 z zewnętrzną konfiguracją stdlib

  • 22 lutego 2021

    One UI 3.1 z ciekawymi nowościami dla urządzeń Samsunga

  • 22 lutego 2021

    Windows Terminal Preview 1.6 z nową sekcją ustawień

  • 15 lutego 2021

    Visual Studio Code 1.53 z ulepszeniami debugowania

  • 8 lutego 2021

    Edge 89 beta, Edge Dev 90 i nowości na kanale Canary

  • 2 lutego 2021

    Firefox 85 i Firefox Nightly – nowe wersje przeglądarki Mozilli

  • 29 stycznia 2021

    Billboard.js 2.2.0 z nowymi funkcjami wykresów

  • 26 stycznia 2021

    Kendo UI R1 2021 – nowości dla bibliotek

  • 21 stycznia 2021

    Narzędzie Vno – połączenie Vue i Deno

  • 19 stycznia 2021

    GitHub Enterprise Server 3.0 RC – kandydat do wydania

  • 15 stycznia 2021

    TypeScript 4.2 Beta z ulepszeniami typów krotek

  • 13 stycznia 2021

    Styczniowy Patch Tuesday z luką 0-day

  • 11 stycznia 2021

    Safari Technology Preview 118 dostępne dla programistów

  • 8 stycznia 2021

    Microsoft Launcher na Androida z usprawnionym dotykiem

  • 7 stycznia 2021

    WebStorm 2020.3.1 dostępny dla urządzeń z Apple Silicon

  • 22 grudnia 2020

    ReScript 8.4 z przypiętymi zależnościami

  • 14 grudnia 2020

    Edge 88 beta i przeglądarka na kanale Canary dostępne!

 

 

Jesteśmy pasjonatami najnowszych technologii w świecie programowania. Zbieramy dla Was informacje i porady z całego świata, które sprawią, że Twoja praca stanie się jeszcze bardziej efektywna.

Obserwuj nas codziennie, aby być na bieżąco oraz śmiało udostępniaj nasze posty.

Zespół DevNews

Kategorie

  • Backend
  • Bez kategorii
  • Frontend
  • Gadżety
  • Informacje
  • Języki programowania
  • Narzędzia
  • QA
  • Systemy i przeglądarki

OBSERWUJ NAS

KONTAKT

Chcesz się z nami skontaktować?

Napisz do nas wiadomość: kontakt@devnews.pl

www.devnews.pl | DEVNEWS 2020 | Newsy i ciekawostki ze świata IT