Autor Wątek: Język D  (Przeczytany 54688 razy)

Offline nembutal

  • Użytkownik

  • +1
# Listopad 20, 2012, 14:36:44
Rozbawiłeś mnie, prawie spadłem z krzesła. C++ to jeden z najgorzej zaprojektowanych języków, właśnie ten język można porównać do chwasta. I to takiego, który rośnie wszędzie sam z siebie.
C++ zaprojektowany został chyba ze 30 lat temu. A ciągle ludzie wybierają go z własnej nieprzymuszonej woli (co oczywiście staje się kłopotliwe bo są nowe platformy, które do tego nie zachęcają). Jeżeli to nie świadczy o dobrym designie języka to ja nie wiem co może świadczyć. Poczekamy, zobaczymy, gdzie obecne nowe wynalazki będą za ok. 20 lat.
Oczywiście dyskusja staje się subiektywna np. dla mnie chwastem jest C# - serwowanym w wielkiej znanej restauracji, polanym wyśmienitym sosem i posypanym toną cukru, ale ciągle chwastem.

A co do "powagi" Stroustrupa - mało chyba wiesz o językach. Rationale pisane jest bardzo często.
Który jeszcze z nowych języków ma coś w stylu "The Design and Evolution of C++"?

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Kos

  • Użytkownik
    • kos.gd

  • +2
# Listopad 20, 2012, 14:51:56
@up jak nie lubisz czegoś w C#, to sam powinieneś rozumieć, że jakość języka (jakkolwiek rozumiana) i jego market share to dwie różne rzeczy.

C++ się nie wybiera do nowych projektów bo ma dobry design (no big deal, wiele języków ma dobry design, często przy mniejszym nakładzie archaizmów sprzed 30 lat), tylko dlatego, że jest sprawdzony, dobrze działa, jest rozwijany, ma biblioteki, ma narzędzia, można zatrudnić ludzi którzy go dobrze znają.

Offline 11

  • Użytkownik

# Listopad 20, 2012, 14:53:35
Który jeszcze z nowych języków ma coś w stylu "The Design and Evolution of C++"?
Chociażby Ada 2005/2012.
W książce "The D programming language" Alexandrescu również przedstawia rationale dla składników języka D.



Offline Paweł

  • Użytkownik

# Maj 17, 2013, 23:02:10
A możesz w kilku(nastu) zdaniach streścić?

Offline Avaj

  • Użytkownik

  • +1
# Maj 17, 2013, 23:20:36
http://dconf.org/talks/evans_1.pdf tu są slajdy

TL;DR:

"Rozważaliśmy język jako skryptowy do gry, rozważaliśmy Lua, C#, C++ ładowany z DLLki. W końcu zdecydowaliśmy się na D i fajnie to wyszło, mamy fajne ficzery. Niestety garbage collector ssie więc z niego praktycznie nie korzystaliśmy".

Offline Avaj

  • Użytkownik

  • +1
# Maj 31, 2013, 10:58:33
Wyszła nowa wersja kompilatora DMD - 2.063.

Do pobrania: http://dlang.org/download.html

Changelog z bugfixami i uzasadnieniem zmian: http://dlang.org/changelog.html

Offline timus

  • Użytkownik

# Kwiecień 13, 2015, 15:28:34
Trochę odkopuje, no ale trudno.

Przez ostanie dni postanowiłem rzucić okiem na ten język, początkowo bylem nastawiony sceptycznie, naukę zacząłem od przeczytania "Programming in D" pana Ali Çehreli i dość się zdziwiłem ponieważ sam język okazał się bardzo ciekawy i dziwi mnie fakt, że jest tak mało popularny. Według mojej opinii bije na głowę c++ i jego przestarzała koncepcje używania preprocessora.

Z tego co wyczytałem z poprzednich postów to ludzie narzekaj na brak dobrego IDE dla D. Ja osobiście wybrałem Visual Studio 2013 Community + Visual D, ta kombinacja daje mi obsługę debuggera i pełny intelisense. Oczywiście istnieją również pluginy do innych IDE jak Eclipse, XamarinStudio/MonoDevelop czy nawet Code::Blocks. Jak ktoś woli to można również autocomplete podpiąć pod VIM, Emacs czy SublimeText.

Za jakiś czas na warsztacie powinien pojawić się mój pierwszy projekt gry w D, wtedy będę mógł więcej powiedzieć o praktycznej stronie języka.

Offline Xirdus

  • Redaktor

# Kwiecień 13, 2015, 15:52:14
Gdzieś czytałem, że D się nie przyjął, bo mimo że jest bezsprzecznie lepszy od C++ pod każdym względem, to jednak jest za mało lepszy żeby opłacało się przepisywać wszystko i przebranżowić wszystkich.

Offline Kos

  • Użytkownik
    • kos.gd

# Kwiecień 13, 2015, 16:11:11
D jest teraz pewnie całkiem dojrzałym językiem, ale zaczynał jako taki trochę "playground do pisania kompilatorów" i było wtedy ogromnym ryzykiem zaczynać w nim projekt. Do tego bałagan z licznością bibliotek "standardowych".
Mam nadzieję że teraz jest lepiej...

Zobacz też na Go - ta sama 'nisza' językowa (w cudzysłowiu, bo to jest nisza pełna pajęczyn C i C++), ale dramatycznie inne podejście do języka. Jest minimalistyczny, jest bardziej opinionated niż D, narzuca konkretny styl pisania i - co najważniejsze - od dnia zero ma bardzo dobre toole. Debugowanie jest lewe, ale cała reszta wzorowa. (No i megakorporację za plecami, co też buduje zaufanie...)

Przykład z toolami: na wczesnym etapie rozwoju, jak Go miał jeszcze łamiące zmiany w języku, to zamiast utrzymywać kompatybilność, dostawałeś narzędzie do automatycznego przepisywania kodu na nową składnię.
Drugi przykład: instalowanie bibliotek. W C++ to piekło, w Go jest "go get github.com/user/foolib".

Nie chcę robić offtopu o Go, tylko próbuję pokazać co język potrzebuje mieć (poza ficzerami językowymi) żeby wyrobić sobie miejsce.

Offline timus

  • Użytkownik

# Kwiecień 13, 2015, 17:16:56
@Xirdus
Ale do Indie w sam raz :D

@Kos
O Go wiem tyle, że jest, postaram się rzucić okiem w wolnym czasie.
Co do biblioteki podstawowej to z tego co mi wiadomo w D są 2: jedna do pierwszej wersji języka a druga do obecnej 2 wersji.
Toole jakieś też są np.:
  • Visual D ma konwerter C++ na D(Wiadomo programisty nie zastąpi, ale znacznie przyśpieszy konwertowanie),
  • Kilka genratorów bindingów C++/Objective-C/C do D,
  • Menadżer paczek pozwalający łatwo ściągać libki/moduły wystarczy wklepać "dub install --local <package name>"

Trochę się zdziwiłem bo jest sporo dostępnych wrapperów/bindingów do D m.in. OpenSSl, Allegro, SDL2, OpenGL, GTK+, Qt, itp
« Ostatnia zmiana: Kwiecień 13, 2015, 19:15:51 wysłana przez timus »

Offline Xender

  • Użytkownik

# Kwiecień 13, 2015, 22:49:19
Porywam wątek celem wykolejenia! :P

D kompiluje się do LLVM?
Jest Emscriptenowalne?

Jak D się integruje z Pythonem?

Bo C/C++ się integruje np. poprzez Cythona...
Teoretycznie, bo jak próbowałem skompilować PySFML, to coś nie szło.

A jakby D się integrowało jakoś ładnie, to bym się zainteresował...

Offline Xirdus

  • Redaktor

# Kwiecień 13, 2015, 23:02:13
Z pobieżnego googlowania:

D kompiluje się do LLVM?
Tak, chociaż są pewne małe problemy na Windowsie

Jest Emscriptenowalne?
Nie za bardzo.

Jak D się integruje z Pythonem?
Nie potwiedzam, nie zaprzeczam - ale pierwsze strony wyników dla paru zapytań nie napawają optymizmem.

Offline timus

  • Użytkownik

# Kwiecień 13, 2015, 23:04:44
D kompiluje się do LLVM?
Jest Emscriptenowalne?
LDC to kompilator D wykorzystujący backend LLVM, wiec powinno dać rade. Nawet komuś się udało: http://forum.dlang.org/thread/kujd8q$1rio$1@digitalmars.com

Jak D się integruje z Pythonem?
Z tego co widzę to ktoś już napisał wrapper cpyhtona: https://github.com/ariovistus/pyd warto rzucić okiem na przykłady.