OT: Need help with translation D-faq to other languages

Eugene Wissner via Digitalmars-d digitalmars-d at puremagic.com
Sat Feb 20 22:56:48 PST 2016


On Friday, 19 February 2016 at 04:42:12 UTC, Suliman wrote:
> On Thursday, 18 February 2016 at 18:20:48 UTC, Eugene Wissner 
> wrote:
>> On Wednesday, 17 February 2016 at 18:28:08 UTC, Suliman wrote:
>>> Hello, I wrote pretty good FAQ about D on Russian language. I 
>>> need help with translation it to English and Germany and 
>>> possible to other languages.
>>>
>>> http://dlang.ru/Why-D-is-Better
>>>
>>> I hope it people will like it, it will help to attract more 
>>> people and help noobs better understand what D is.
>>
>> It's pretty short. I can do a German translation
>
> Yes, please!

Here it is.

Warum ist D besser?

* Sollte man mit D anfangen, wenn man programmieren lernen will?
Wenn man programmieren lernen will, sollte man mit den 
Algorithmen anfangen. In dem Fall je einfacher die Sprache ist, 
desto besser. Wenn sie allerdings eine C-ähnliche Sprache 
erlernen möchten, D ist die richtige Wahl. Die C/C++ Syntax ist 
nicht einfach. Das lenkt vom Wesentlichen ab. Anstatt 
programmieren zu lernen, ist man dazu gezwungen, die 
Besonderheiten von C/C++ zu lernen. Das heißt, wenn Sie C/C++ 
lernen, lernen Sie nur C/C++ und nicht das Programmieren als 
solches. Das ist das Problem.

* Was macht D besser als C#/Java
Den größten Performanzverlust verursachen virtuelle Maschinen und 
die Just-In-Time-Kompilierung. Deswegen gibt es Compiler, die C# 
oder Java direkt in den nativen Code übersetzen. D bietet die 
vollständige Unabhängigkeit von den virtuellen Maschinen und 
öfters einfachere und und für den Programmierer verständlichere 
Konstrukte, die ihrer Kürze nach mit Python vergleichbar sind.

* Was macht D besser als C++
C++ hat nur zwei positive Zeichen. Die negativen konvergieren 
hingegen gegen die Unendlichkeit. C++ wurde vor sehr langer Zeit 
konzipiert und basierte auf dem noch älteren C (das seinerseits 
viele konzeptuelle Entscheidungen enthält, die in der modernen 
Welt wie Fehler aussehen), die Metaprogrammierung ist überhaupt 
“zufällig” entstanden, erst später orientierte sich die Sprache 
an dieser Möglichkeit (Und trotzdem gibt es dort viele im Grunde 
zufälligen Entscheidungen). D hat einen großen Vorteil: Die 
Fehler von C++ wurden berücksichtigt. C++ kann nicht auf die 
Kompatibilität verzichten und deswegen ist dort stellenweise 
alles ziemlich verkehrt und es kann nie korrigiert werden. 
Darüber hinaus, wenn neue Features kommen, wird C++ schwieriger 
zu erlernen, da auch die alten nicht verschwinden und man sie 
kennen muss.
Auch das auf C++ auferlegte Konzept der objektorientierten 
Programmierung führt zu Vererbung, Delegation und Verbreitung der 
Fehler. Das trägt der “maskierenden Verschwommenheit” der Bugs 
bei, deren Anzahl exponentiell wächst. Als Ergebnis entstehen 
fatality Bugs, die man nur mit einer erneuten Wechsel des 
Konzeptes bzw. der Plattform gut machen kann.
Was die Geschwindigkeit der Entwicklung angeht, gibt es keine 
Wunder. Der unmanaged Code wird immer langsamer entwickelt als 
der managed Code, selbst wenn es um eine und dieselbe Sprache 
geht. Der Grund ist, dass der unmanaged Code eine Menge Arbeit an 
der Fehlerbeseitigung hinzufügt. Es ist glaubwürdig, dass die 
Programmierer ungefähr die gleiche Zeit brauchen, um den Code in 
einer managed und einer unmanaged Sprache zu schreiben, aber dann 
die Fehlerbehebung und -diagnose im Falle von unmanaged viel 
zeitaufwändiger ist, schon deswegen, weil es einfach nicht so 
viele Bugs bei einem Garbage Collector gibt.
Die Erfahrung zeigt, dass die Programmierer beim Umstieg von C++ 
auf D bis 50% Zeit beim Schreiben von Code und bis 3-4 Mal bei 
der Fehlerbehebung sparen. Besonders werden diese Ersparnisse 
beim Schreiben von porduction Cdoe deutlich, wo es feste 
Deadlines gibt und man keine Zeit hat, wochenlang nach 
Speicherlecks zu suchen.

* Was macht D besser als Python?
Wie ein Entwickler bei Yandex gesagt hat: Ich habe zu schwaches 
Gedächtnis um in einer dynamisch typisierten Sprache zu 
schreiben. D hat zwar eine an C angelehnte Syntax, ist aber oft 
genauso einfach wie Python.

* Was macht D besser als Rust?
Es ist äußerst schwierig sich ein Projekt vorzustellen, in dem 
die Programmierung in Rust ökonomisch gerechtfertigt wäre. Nur 
embedded und hard real-time könnten Ausnahmen sein. Das ist aber 
nur ein Tropfen im Ozean der entwickelten Software. In Rust kann 
man kein einziges Programm schreiben ohne ein grundlegendes 
Verständnis von Lifetime & Ownership zu haben. Das macht Rust 
automatisch sehr kompliziert. D ist in dieser Hinsicht viel 
einfacher und universaler.

* Was macht D besser als Go?
In Go brachte Einfachheit zum Primitivismus.

* Hat ein Garbage Collector einen negativen Einfluss auf die 
Performanz?
Nein. In realen Projekten, und nicht in synthetischen Benchmarks, 
führt der Garbage Collector automatische Optimisierung durch 
(Sammeln, Kopieren, Objektverdichtung im Speicher), was erhöht 
die Performanz, während der unmanaged Code erfordert, das 
dasselbe manuell gemacht, wofür den Programmierern die 
Qualifikation bzw. die Ressourcen in den meisten Fällen fehlen.
Heutzutage ist die Performanz vom Maschinencode für die 99% der 
Business-Anwendungen zweitrangig: Das Lesen von der Festplatte, 
das Lesen vom Netzwerk, die Arbeit mit der Datenbank, parallele 
Ausführung, dead locks, schlechte Architektur - viel schlimmere 
Ursachen schlechter Performanz. Es gibt Bereiche, wo manuelle 
Speicherverwaltung in der Tat notwendig sein kann (Treiber, 
Bibliotheken für Spiel-Engines, Datenbank-Engines). Für diese 
Fälle ist es auch in D möglich, den Garbage Collector zu 
deaktivieren.

* Warum D, wenn in C++ bereits Unmengen an Code geschrieben sind?
Im realen Leben werden Sie keine ernste Anwendung finden, die auf 
ihrer ursprünglichen Realisierung basieren würde. Alle 5 Jahre 
schreiten wir in neue Dimensionen und nur der weitsichtigste 
Entwickler kann sich den Code erlauben, der in 10 Jahren nicht 
verworfen wird. Deswegen muss man keine Angst vor modernen 
Sprachen haben. Die ermöglichen Ihnen wirklich Ihre Zeit zu 
sparen.

* Ist D für Enterprise-Anwendungen geeignet?
Zur Zeit schreiben schreiben solche Unternehmen wie Sociomantic, 
EMSI, Weka.IO und andere ihre Business-Logik in D. D wird auch 
aktiv in BigData-Projekten eingesetzt, unter anderem in der 
Bioinformatik, da es ermöglicht den Code zu schreiben, der 
effektiv mit großen und gigantischen Datenmengen zu arbeiten kann.

* Soll man in einem Projekt C++ und D mischen?
Lieber nicht. Es wäre besser, D in den neuen Projekten 
einzusetzen. Das Portieren von C++-Code auf D kann sehr aufwendig 
sein, auch wenn es hilft den Code einfacher und die Verwaltung 
leichter zu machen.


More information about the Digitalmars-d mailing list