Welche Programmiersprache mit den Deteils unten?

... komplette Frage anzeigen

4 Antworten

Mal überlegen ...

-schnell lernbar

Wenn man die Mächtigkeit einer Sprache ins Verhältnis zum benötigten Lernaufwand setzt, sollten alle Sprachen ungefähr auf das gleiche Ergebnis kommen. Mit PHP kannst du nur sehr wenig machen, ist dafür aber schnell lernbar. Mit Java kannst du viel viel viel viel viel mehr machen, aber man muss dann natürlich auch entsprechend Zeit invenstieren.

Außerdem lernt jeder unterschiedlich schnell / langsam.

-schöne syntax

Python dürfte sehr leserlich sein, und viele Quelltexte dieser Sprache lesen sich wie normaler englischer Text. Zum Beispiel:

if word not in text:
vocals = (char for char in word if char in 'aiueo')

OK zugegeben, dieses Beispiel ist verdammt sinnfrei, aber keiner kann behaupten, dass man das nicht lesen kann. :)

Übrigens solltest du dir im Punkto "schöne Syntax" Sprachen ansehen, die funktionale Programmierung, Lambdas oder Closures unterstützen. So etwas ist meist sehr gut lesbar.

Perl und Ruby sind - aus jeweils unterschiedlichen Gründen - aufgrund ihrer Konzepte evtl. für Anfänger schwerer zu verstehen, aber gerade die Default-Variablen in Perl, und das Block-Konzept in Ruby sind sehr schicke und mächtige Konzepte, wenn man sich erst mal daran gewöhnt hat.

-wenig code= großes ergebnis

Viele Sprachen bieten hier auch viele Abkürzungen an, um Code wesentlich kürzer zu schreiben. Dazu zählt z. B. "auto" bei C++, die Streams im neuen Java 8, oder Zugriffe auf Aufzählungen mittels [::] bei Python.

Im Großen und ganzen wirst du dynamisch typisierte Sprachen (Perl, Ruby, Python, PHP, JavaScript, etc.) gegenüber stark typisierten Sprachen (C++, Java, C#) bevorzugen, wenn es dir auf kurze Schreibweisen ankommt, da fast immer Typenangaben entfallen können.

-schön leserlich

Für jemanden, der sich in seiner Sprache auskennt, ist deren Syntax eigentlich immer "schön leserlich". Meistens kommt unleserlichkeit durch "clevere" Programmierer zustande, aber selbst das kann man mit geeigneten Code-Formatierern oftmals wieder gerade biegen.

Für C-Programmierer sind Low-Level-String-Operationen mit Zeigern vermutlich am klarsten und leserlichsten. Beispiel:

while (*arg == '-') ++arg;

Dieser Code ist nicht schön formatiert, aber man erkennt sofort, dass die führenden "-" Zeichen von einem Kommandozeilen-Argument entfernt werden. Sprich, aus "--help" wird "help".

-sicher

Sicher im Bezug auf was? Dass unerfahrene Programmierer vor dummen Fehlern geschützt werden, Software nicht leicht zu dekompilieren ist, oder dass die Standardbibliothek möglichst wenige ausnutzbare Bugs enthält? In allen Fällen wäre C++ OK, auch wenn da viele wiedersprechen werden, da man immer noch sehr leicht die Möglichkeit hat, Speicherbereiche kaputt zu machen.

Java ist im Bezug auf Fehler zwar sehr Entwicklerfreundlich, vor allem bei alternativen JVM Sprachen wie Scala, Clojure oder Groovy, aber wir kennen ja alle die Security-Advisories. C# läge wohl sehr weit vorn, wobei .Net-Anwendungen verhältnismäßig kinderleicht zu reversen sind.

-viele möglichkeiten

Naja, für fast jede Programmiersprache gibt es Bibliotheken und Bindings, mit denen man fast alles machen kann. Reines C ist absolut primitiv, und allein mit der Standardbibliothek wird kaum einer arbeiten. Fast ausschließlich setzt man auf Systemspezifische Libs und kaum eine Software verwendet diese nicht.

Und viele Programmiersprachen, vor allem Lua, Python, Scheme und JavaScript werden gerne benutzt, um Erweiterungen für Software zur Verfügung zu stellen. Die Gimp-Plug-Ins sind in Scheme geschrieben, Blender-Plug-Ins in Python, Paint-Shop-Pro Plug-Ins sind JavaScript und gerade Lua hat sich als "einbettbare Skriptsprache" einen Namen gemacht.

auch wenn man sie für schlechtes verwenden könnte!

Was verstehst du unter "schlecht"? Dass man darin Hackertools oder Trojaner basteln kann? Es wäre schlimm, wenn das in einer Programmiersprache nicht ginge, denn das würde bedeuten, dass sie nichts taugt. Was du letzendlich für eine Software schreibst, hängt von dir ab, und nicht von der Sprache. Sollte es zumindest!

Oder meinst du, dass der Entwickler in die Lage versetzt wird, schlechten Code zu schreiben? Das geht in jeder Sprache, aber meiner Erfahrung nach regt vor allem PHP zum pfuschen an. Aber gerade wenn Einsteiger die grundlegensten Konzepte noch nicht verinnerlicht haben, wird in jeder Programmiersprache absoluter Mist produziert. :)

Fazit:

Du suchst eine eierlegende Wollmilchsau. So etwas gibt es aber nicht. Und kein guter Software-Entwickler beherrscht nur eine einzige Programmiersprache. Oder Zwei. Oder Drei.

Dass du gleich am Anfang eine Programmiersprache lernst, die all deine Ansprüche abdeckt, wird dir vermutlich nicht gelingen. Aber wenn du erst mal eine lernst, die grob deinen Erwartungen entspricht, ist das doch schon mal OK.

Es gibt Leute, die interessieren sich mehr für Low-Level und hardware-nahe Sachen. Für die ist Assembler, C und C++ vermutlich am besten.

Für alle anderen evtl. Java, C# oder Python.

Was auch immer du wählst, viel Spaß!

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von mAin0x
08.11.2015, 11:01

Jo, ich habe eine neue Frage gestellt, die dich eventuell zufriedenstellt :)

1

Programmiersprachen, die all deine Anforderungen besser erfüllen als alle anderen, sind funktionale Programmiersprachen: F# etwa

Siehe http://fsharpforfunandprofit.com/why-use-fsharp/ .

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von spaghetticode
08.11.2015, 09:11

Programmiersprachen, die all deine Anforderungen besser erfüllen als alle anderen, sind funktionale Programmiersprachen:

Warum?

0
Kommentar von grtgrt
08.11.2015, 09:37

Solltest du mindestens eine Programmiersprache schon gut beherrschen, dich aber oft darüber ärgern, wie aufwendig und unübersichtlich vor allem Code für formatierte Ein-/Ausgabe-Befehle wird, oder auch für systematisches, sauberes Error-Handling nach festen, immer gleichen Regeln, für gute, umfassende Trace-Möglichkeiten etwa, die den Gebrauch von Debuggern überflüssig machen, so gibt es noch eine andere Möglichkeit:

Du kannst, basierend auf dieser dir gut bekannten Sprache, nennen wir sie S, dir einen deinen eigenen Wünschen entsprechenden, von dir selbst implementierten Preprozessor pre eine Kurznotation also, schaffen. Nennen wir sie preS (oder stenoS).

Ich selbst habe das über Jahre recht erfolgreich praktiziert

  • einmal für Pascal (damals noch in ihrer ersten, durch Nikolaus Wirth selbst definierten Version),
  • später dann mit C++ (als diese Sprache aufkam).

Dies hat beide Male dazu geführt, dass der Code, den ich zu schreiben hatte, sich deutlich reduziert hat und viel übersichtlicher und kompakter wurde. 

Wichtig ist nur: Was preS nach S abbildet, muss in S gut formatiert sein, so dass du deinen Sourcecode an andere weitergeben kannst ohne die zu zwingen, als deine Nachfolger im Projekt mit deinem Preprozessor leben zu müssen (das ist besonders wichtig, wenn dein Produkt im Sourcecode an deine Kunden abzuliefern ist). 

Mein preC++ verwende ich heute noch und war damit in einem Projekt so erfolgreich, dass ein Kollege, der ein guter Programmierer und Projektleiter war, mir gestehen musste, dass er und sein Team, mit der Geschwindigkeit, mit der meine Lösungen damals entstanden, nicht mithalten könne. 

Der Umfang, in dem ich damals C++ als Sprache verwendete, war kaum mehr als der Teil von C++, der C erweitert um das Klassenkonzept aus C++ entspricht (plus dem C-Preprozessor).

Da die einzige Entwicklungsumgebung, die uns damals zur Verfügung stand, ein C++ Compiler und ein guter Texteditor waren, hat, sich als besonderer Vorteil meines Ansatzes ergeben, dass ich neben cpp Dateien keine Header-Dateien explizit selbst schreiben musste: Ich schrieb pre Dateien, die mein preC++ in alle notwendigen *.cpp und *.h Dateien umgewandelt hat. 

1

Python.

Antwort bewerten Vielen Dank für Deine Bewertung

Ich würde die Muttersprache nehmen :

damit erfüllt es alle deine Anforderungen .

-schnell lernbar  , weil muttersprache

-schöne syntax , ich finde meine muttersprache schön

-wenig code= großes ergebnis  , man kann mit wenigen worten viel sagen

-schön leserlich  , romane sind ein gutes beispiel

-sicher , solange der programmierer sich daran hält

-viele möglichkeiten, auch wenn man sie für schlechtes verwenden könnte!

aber hallo möglichkeiten bis ins unendliche ...

;)


Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von grtgrt
08.11.2015, 08:34

Nur die wichtigste Anforderung erfüllt sie leider nicht: Sie ist keine Programmiersprache.

1