ARM vs x86: Pathfinding benchmark of C++, D, Go, Nim, Ocaml, Common Lisp, Racket, C#, Java, Haskell, F#, Rust and Dart

Porównanie wydajności róƶnych języków programowania i ich implementacji na platformach x86 i ARM przy pomocy algorytmu wyszukiwania najdłuƶszej ścieƶki. Pomiędzy językami są lekkie zmiany w algorytmie, więc nawet pomijając QoI cięƶko je porównywać (chociaƶ C++ i D w ścisłej czołówce mnie cieszą)

Miałem ostatnio za zadanie napisać konwersję z i do base64 w dowolnym języku programowania. Oczywiście uznałem to za fantastyczną okazję, by pobawić się D i napisać całość bez uƶywania jawnych pętli.

https://gist.github.com/KrzaQ/51d2a72448dacaf36ed0

Poza fatalną nazwą, bardzo przyjemny język. Mam nadzieję, ƶe mój kod w C++17 będzie bliƶszy temu.

  • Odpowiedz
Ostatnio zacząłem ciut bawić się D. Język wydaje się fantastyczny. Najpierw napisałem prostą appkę do pracy, teraz coś, czego od dawna mi brakowało (albo nie umiałem znaleźć): online formatowarkę kodu C++. Wszystko w D (ze wsparciem vibe.d).

Póki co, muszę stwierdzić, ƶe o ile język jest super, tak jak społeczność, to dokumentacja... odbiega od tego do czego przyzwyczaił mnie Qt, msdn, czy ruby.

Kod: https://github.com/KrzaQ/cppformat (nie ma tego wiele, to jest wrapper
Bardzo zgrabnie kod wyglada - niektore featury D trafiaja do C++ - chociazby auto, w C++17 maja (w koncu!) byc moduly i koncepty. Inne wygladaly fajnie na poczatku (makra) ale w C++ masz ulepszone templaty i constexpr obecnie.
  • Odpowiedz
Akurat w pracy muszę napisać prosty skrypcik do automatyzacji kilku testów. Uznałem, ƶe zobaczę jak to będzie wyglądać w D. Póki co mam wraƶenie, ƶe D to połączenie moich ulubionych cech ruby i C++. UFCS, wygodne lambdy, wywoływanie funkcji bez nawiasów jeśli nie ma argumentów ⟶ ogromna wygoda pisania (i czytania - imo) kodu. A do tego wbudowane w język zajebiste scope guardy.



auto
```**```
tmpDir = std.process.execute([
```_```
"mktemp"
```_```
,
@kuhar: extension methods to w csharpowa nomenklatura na UFCS :P

Wracając do pytania: @sylwke3100: D nie ma nic, czego w C++ nie zrobisz, ale ogółem daj wraƶenie jakby był "C++ done right", czyli bez wymuszonej kompatybilności z kodem C i wynikającymi z tego problemami i decyzjami.
  • Odpowiedz