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
170
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:

  • FrontendNarzędzia

    Sencha Ext.NET – szybkie aplikacje internetowe dla ASP.NET

  • Microsoft Launcher na Androida
    Narzędzia

    Microsoft Launcher na Androida z usprawnionym dotykiem

  • Narzędzia

    Moment.js przechodzi w tryb utrzymania

  • 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!

  • 9 grudnia 2020

    Chrome 88 Beta z nowościami w WebXR

  • 9 grudnia 2020

    Snowpack 3.0 RC z eksperymentalnymi funkcjami

  • 4 grudnia 2020

    Android Studio Arctic Fox – nowe wydanie narzędzia Google

  • 4 grudnia 2020

    The Hack Summit 2020 – konferencja IT Security

  • 2 grudnia 2020

    PowerToys 0.27 z poprawkami błędów

  • 2 grudnia 2020

    Aleph.js alfa z funkcją importowania map

  • 27 listopada 2020

    Cypress 6.0 zwiększa zakres możliwości obsługi sieci

  • 26 listopada 2020

    Firefox 83 przyspiesza i wprowadza tryb HTTPS-Only

  • 25 listopada 2020

    Electron 11.0 z obsługą Apple Silicon

  • 25 listopada 2020

    Prettier 2.2 z obsługą najnowszego TypeScript 4.1

  • 24 listopada 2020

    Tailwind CSS 2.0 z narzędziami kontroli tekstu

  • 20 listopada 2020

    Angular 11 – stabilne wydanie platformy

  • 19 listopada 2020

    Chakra UI React v1 wydany z ulepszeniami

  • 19 listopada 2020

    Chrome 87 z szybszym startem i zmianami w kartach

  • 18 listopada 2020

    Silnik WebKit w przeglądarce Safari 14

  • 17 listopada 2020

    Poznańska konferencja POZITIVE TECHNOLOGIES 2020 platformą wymiany wiedzy i doświadczeń najlepszych specjalistów IT

  • 16 listopada 2020

    Babylon.js 4.2 z edytorem cząsteczek i Babylon React Native

  • 13 listopada 2020

    Apple Silicon M1 i MacBooki – spotkanie One More Thing

  • 12 listopada 2020

    .NET 5.0 Microsoftu z poprawioną wydajnością

  • 12 listopada 2020

    Windows Terminal 1.5 Preview z nowymi funkcjami

  • 10 listopada 2020

    GIMP 2.99.2 – pierwszy krok do głównej wersji

  • 6 listopada 2020

    iOS 14.2 dostępny z nowymi emotikonami

 

 

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