Skocz do zawartości

Leaderboard

Popular Content

Showing content with the highest reputation on 20.10.2015 in all areas

  1. Tak może dodam coś na temat Rust, bo wydaje mi się, że jest to jeden z bardziej interesujących języków opracowywanych w ostatnich kilku latach. Killer feature i "materiał eksportowy" w Rust to jest "borrow checker", czyli automatyczny sprawdzacz czasu życia obiektów. Czas życia jest ściśle monitorowany na podstawie tego, kto aktualnie posiada dany obiekt. W jednej chwili tylko jedna rzecz może być właścicielem jakiegoś obiektu, więc nie można sobie np. przekazać tablicy jako argumentu jakiejś funkcji. Trzeba tą tablicę albo "pożyczyć" ("borrow" - wtedy dostęp do niej jest read-only, przez tego co ją pożyczył, i tego, który jest właścicielem, do czasu gdy pożyczenie się zakończy), albo całkowicie "oddać", przy czym wtedy oryginalny właściciel traci dostęp do zasobu i już nie może go używać. To wszystko dzieje się już na etapie kompilacji, a nie działania programu -- jeśli kompilator Rust skompiluje kod, będzie to znaczyło, że przynajmniej istnieje gwarancja na brak ryzyka wystąpienia błędu odczytu pamięci po jej zwolnieniu. Oczywiście temat borrow checkera jest dość obszerny, a powyższy akapit przedstawił jedynie jego prosty zarys, ale może to zachęci kogoś do głębszego zapoznania się z tematem.
    1 point
  2. Dziś Mozilla odwiedziła mój wydział na uczelni i opowiadała m.in. o Ruście. Szczerze mówiąc wiele o tym języku jeszcze nie wiem, ale planuję go opanować (i zorganizować na wydziale warsztaty sprowadzając ludzi z Mozilli, by inni też mieli okazję poznać Rusta ). Z tego co zapamiętałem z prezentacji, to Rust powstał na potrzeby tworzenia bezpiecznego kodu dla Firefoxa (niektóre części kodu przeglądarki już korzystają z Rusta) i Mozilla pracuje nad nowym silnikiem do zrównoleglenia przetwarzania stron internetowych (projekt Servo, który był wyżej wspomniany). Poza wspomnianą ciekawą obsługą pamięcią poprzez mechanizm ownership, bardzo spodobał mi się zerowy narzut na czas wykonania i pamięć (kod kompilowany jest do kodu maszynowego) i możliwość przemiennego wykorzystywania bibliotek napisanych w C++, tzn. można w Ruście korzystać z bibliotek C++ i co ciekawsze - na odwrót także. Jak będę mieć więcej wolnego czasu z ciekawości sprawdzę jak to się sprawuje (chyba, że ktoś mnie tu uprzedzi ), bo zgodność binarna jakby nie patrzeć jest zależna od konkretnego kompilatora.
    1 point
×
×
  • Utwórz nowe...