Durchblick verschafffen über verschiedene Programmiersprachen und deren Einsatz



  • Hi,

    auf der Suche nach einer neuen Programmiersprache ist mir zum ersten Mal in den Sinn gekommen, dass ich gar nicht weiß, ob es grundätzliche Unterscheidungsmerkmale bei Programmiersprachen gibt.

    Folgendes:

    Programmiersprachen wie C, C++ sind gute Sprachen für z.B. Spieleprogrammierung, OOP, oder zum Viren schreiben:) *scherz*

    Man kann doch aber meines Wissens nicht (oder nur sehr umständlich) z.B. mit C++ ein Webformular oder Gästebuch schreiben (korrigiert mich, falls das Unsinn ist). Für sowas würde man doch eher auf Perl oder PHP zurückgreifen. Auf der anderen Seite würde niemand auf die Idee kommen mit letzteren einen Quake-Clone zu schreiben (Mal abgesehen davon, dass das nicht gehen würde?!).
    VB nimmt man wohl ausschliesslich für Windows-Programmierung, oder um sich z.B. ein Makro zu schreiben oder ein Plug-In für Outlook.
    Wie sieht es jetzt mit Java oder Python aus? Python ist zum Beispiel eine shell-Programmiersprache?!

    Versteht ihr langsam mein Problem?
    Ich suche also nach einem Buch, Internetseite, Text etc. die allgemeine Klarheit verschaffen könnte, wieviele Programmiersprachen es gibt, welche jeweils ihre besten Einsatzgebiete sind. Allgemeine Unterscheidungsmerkmale, für welche Betriebssysteme welche Sprachen etc.

    Das wäre doch ein guter Artikel im C++-Magazin.

    Ich werd mich selbst nochmal auf die Suche machen, hoffe aber, dass einige von euch mir da vielleicht Licht ins dunkel bringen können, oder Links zu dieser Thematik haben.

    Danke

    **EDIT:

    Nochmal zu dem Artikel -> Ich wäre auch bereit nach eingehender Recherche und Informationsbeschaffung einen Artikel zu verfassen, der dann in dem Magazin veröffentlich werden könnte. (Zur Sicherheit kann der ja auch nochmal von "Fachpersonen" Probe gelesen werden"**

    **EDIT2:

    Ich bin schon am Google-Fragen zu dem Thema und hab auch schon ein paar Links, hoffe aber auf vielversprechendere Sachen oder Erklärungen**



  • ok, soviel schon einmal

    [b]Programmiersprache - Einsatzgebiet[/b]
    
    Fortran	Mathematische Anwendungen (Formelberechnungen
    Assembler	Systemnahe Anwendungen
    C	      Systemnahe Anwendungen, Universelle Hochsprache
    Java	      Graphische, interaktive Anwendungen, Universelle Hochsprache
    Smalltalk	KI (Künstliche Intelligenz)
    Lisp	      KI (Künstliche Intelligenz)
    Prolog	KI (Künstliche Intelligenz)
    C++	      Universelle Hochsprache
    Basic	      Universelle Hochsprache, Blitz, Pure, Dark - Variante
    Cobol	
    Algol	
    PL1	
    Ada	
    Modula	
    Modula-2	
    Eiffel	
    APL	
    Simula	
    ASP	
    Javascript	Skriptsprache
    Perl	      Skriptsprache
    PHP	      Skriptsprache
    Lua	      Skriptsprache
    Wise	      Skriptsprache (speziell)
    Python	
    JCL	
    Scheme	
    awk	
    csh	
    sh	
    VBSkript	
    TCL	
    (HTML,CSS)	
    Pascal	
    Delphi	
    C#	
    Comal	
    QBasic
    

    Ich poste hier jetzt mal nicht, die ganzen anderen Sachen zu grundsätzlicher Unterscheidung etc., werd das aber mal im Magazin-Bereich public machen.

    Falls euch noch weitere Programmiersprachen einfallen, bitte hier mal posten

    Danke



  • NewProggie schrieb:

    Man kann doch aber meines Wissens nicht (oder nur sehr umständlich) z.B. mit C++ ein Webformular oder Gästebuch schreiben (korrigiert mich, falls das Unsinn ist). Für sowas würde man doch eher auf Perl oder PHP zurückgreifen.

    Stimmt nicht. Ganz im Gegenteil, es wurden bekannte Websites, wie z.B. Amazon (ja!) in C++ programmiert. Und das ist keine Pippifax Website! 😉 In der iX 3/05 ist auch ein Speedvergleich zwischen PHP, Perl und C um Webseiten zu liefern. Bei kleinen Dokumenten hat sogar C gewonnen, obwohl es nicht als Apachemodul eingebunden war, sondern als FastCGI. Perl und PHP waren als Apachemodule drin.

    Das erstellen von Webformularen in C unc C++ funktioniert genauso einfach wie z.B. in Perl. Weil letztendlich wird ja das Formular als String rausgeschrieben - fertig! Und wenn es für C++ ein paar komfortable Klassen gibt (std::string ist schon mal eine Hilfe) um Formulare zu definieren, ist alles in Butter.

    Ist zwar nur eine C-Lib, aber für C++ gibts bestimmt auch sowas: http://www.boutell.com/cgic/



  • Ich weiß nicht, ob das zu was sinnvollem führt, wenn man Sprachen nach ihrem Einsatzgebiet klassifiziert. Damit kann doch höchstens ein BWLer was anfangen, Programmierer die mit dem Herzen dabei sind haben andere Prioritäten.
    In Wahrheit sind die meisten Sprachen universell. Auch wenn z.B. C entwickelt wurde, um damit ein Betriebssystem zu programmieren, gibt es doch heute fast nichts, was nicht schonmal in C gemacht wurde. C++ fing als Sprache für physikalische Simulationszwecke an. Der Emacs ist zum Großteil in Lisp geschrieben, das ist auch keine klassische KI-Aufgabe 😉



  • NewProggie schrieb:

    [b]Programmiersprache - Einsatzgebiet[/b]
    Smalltalk	KI (Künstliche Intelligenz)
    

    Smalltalk wird für KI benutzt?
    Gibts dafür irgendwo Beispiele? Würd mich jetzt mal interessieren...



  • C#: zur Programmierung von Anwendungen die auf dem .Net Framework basieren.

    Brainfuck: einsteigerfreundliche Sprache 🤡



  • da stimme ich bashar zu. die sprache nach den problemen zu klassifizieren ist eigentlich nicht so geschickt. ich mein, was hilfts jemanden, der exzellent c++ kann zu wissen, dass in lisp sein problem vielleicht besser zu lösen wäre. der aufwand bis er lisp gelernt hat überwiegt den c++ aufwand. nochdazu glaube ich, dass sich jede information die du bekommst (welche sprache für was) rein subjektiv ist, oder sich halt so herauskristallisiert hat, weils z.b. "damals" noch keine andere sprache gab.
    sowas ist vielleicht für jemand ganz hilfreich, der jetzt _irgendeine programmiersprache lernen will, und eigentlich keine ahnung hat was, sondern nur, was er gerne machen würde. aber daraus gleich einen ganzen artikel zu machen. naja, wenn du willst, aber ich denke mal, dass die überwiegende leserzahl des potentiellen magazins die fortgeschrittenen sind, und die lesen das vermutlich nicht (also ich würds nicht lesen denk ich, und wenn dann nur, um in einigen punkten widersprechen zu können 😉



  • Verschiedene Aufgabengebiete erfordern verschiedene Sprachen mit unterschiedlicher Komplexität. Will man alles aus einer Maschine herausholen, so wird man zu Assembler greifen bzw. die kritischsten Teile eines Programmes in Assembler programmieren.

    Ein anderes Aufgabengebiet ist z. B. die Programmierung von WWW-Applikationen. Dieser Code wird ständig gewartet, weshalb sich in diesem Bereich Skriptsprachen wie Perl, Python, Ruby und PHP durchgesetzt haben, obwohl Perl totaler Mist ist und ziemlich langsam interpretiert, weil die Syntax sehr flexibel ausgelegt wird. Der Vorteil dieser Skriptsprachen ist auch, dass sie Funktionen zur String-Manipulation etc. gleich mitbringen und dass das bei weitem nicht so kompliziert ist wie in C/C++ oder Java. Dass die interpretierten Sprachen langsamer sind, nimmt man in Kauf, da die Entwicklungszeit bei diesen Sprachen gering ist. Zu Perl: Ja, ich verwende ab und an auch Perl. Aber Freude macht es nicht.

    Eine Besonderheit stellt Lisp dar. Mit Lisp kann man schnell programmieren und schnelle Programme schreiben, die mitunter auch so schnell wie C sein können. Lisp kann man kompilieren und interpretieren. Und meines Wissen gibt's für Apache auch ein Lisp-Modul. Viaweb, was Yahoo vor ein paar Jahren teuer übernommen hat, war ursprünglich in Lisp programmiert, von drei Mann innerhalb einer Woche.

    Smalltalk war und ist DIE Sprache in der Objektorientierung. Viele Konzepte wurden in die anderen Sprachen von Smalltalk übernommen. Ich habe mir auch schon sagen lassen, dass die Konzeption von Smalltalk radikal objektorientiert ist. Sowas übt einen unglaublichen Reiz aus, weshalb ich mir diese Sprache auch mal anschauen werden muss. Bei Lisp ist es ja auch die Syntax, die jeden Mathematiker und theoretischen Informatik sehr reizt; die lieben solche sauberen, kompromisslosen und klaren Entwürfe.

    Aber nun hat sich C/C++ durchgesetzt. Ein Grund ist, dass man in C schnelle Programme schreiben kann, auch weil alle wichtigen Betriebssysteme in C geschrieben wurden (Unix, Linux, Windows). Ein anderer Grund ist, dass Programmierer und Ingenieure einfach anders ticken als Mathematiker und theoretische Informatiker. Die wollen nicht elegant sein, sondern pragmatisch. Und mit C/C++ kann man pragmatisch programmieren, da man sehr systemnah (Schlüsselwort register, Inline Assembler) programmieren kann, aber auch die komplexesten Aufgaben lösen. Deshalb hat sich C/C++ durchgesetzt.

    Was neueres ist Java. Der Vorteil von Java ist die Plattformunabhängigkeit. Ich kann mich mit Java zwar nicht so recht anfreunden, weil ich schon von C/C++ versaut wurde. Schade ist, dass manche Hersteller den Vorteil von Java oder anderen plattformunabhängigen Sprachen noch nicht erkannt haben. Es ist schon ärgerlich, dass es keine oder nur wenig Telefonbuch-CDs gibt, die auch auf anderen Plattformen als Windows laufen. Anstatt großspurig anzukündigen, dass man bald auch Linux unterstützt, brauchen die doch nur das Telefonbuchprogramm in Java zu hacken und schwuppidiwupp werden alle Plattformen unterstützt. Gerade solche Anwendungen, die nicht sehr leistungsintensiv sind, kann man doch auf der JVM laufen lassen. Man müsste auch nur einen Quellcode warten anstatt für jedes Betriebssystem einen eigenen. Die Telefonbuchprogramme sind die idealen Java-Applikationen, nur keiner kommt darauf. Gleiches gilt für andere Nachschlagewerke. Zum Beispiel wäre es der Firma, die die Wikipedia-CD im Oktober rausbrachte, anzuraten, sich ein neues Navigationsprogramm zu programmieren und zwar in Java oder Python. Das bisherige Programm war nicht nur ausschließlich unter Windows lauffähig, sondern auch so totaler Mist. (z. B.: Darstellung von DIN-A6-Seiten, die dann auch nur als DIN-A6-Seiten ausgedruckt werden konnten.)



  • Ich finde trotzdem jede Sprache hat eine ( oder mehrere Stärken) und bei so vielen Sprachen ist es doch mal interessant das zu recherchieren.



  • @Korbinian
    Ich hatte nicht vor lediglich auf die Einsatzzwecke einzugehen, sondern auch ein bisschen allgemeineres zu beschreiben, wie z.B. das 5 Generationen-Denken von Programmiersprachen (1. Generation: Assembler usw.), bisschen was historisches und wie von Ruhollah angedeutet ein bisschen auf die (subjektiven) Stärken und Schwächen einer Sprache einzugehen.
    Stimmt schon, dass das vielleicht ein bisschen langweiliger sein wird, für diejenigen unter uns, die schon wahre Halbgötter des Programmierens sind

    😃 , aber ich denke, das wird ganz nützlich für diejenigen sein, die wie ich, sich ein bisschen Überblick verschaffen wollen. Ich finde es ebenfalls gut, wenn man von (bisher unbekannten) Programmiersprachen dann zumindest was mal gehört hat.



  • Wo ist PLM und Forth?

    @NewProggie, wenn es allgemein beschrieben werden soll, dann bietet es sich doch an, die Begründungen und Einsatzdefinitionen der "Erfinder" der jeweiligen "Sprache" hinzuschreiben. Da gibt es wenigsten keinen Widerspruch von Seiten der Anwender.
    Wie die Sprachen dann eingesetzt wurden - darüber würde ich mich nicht auslassen, da gibt's nur Streit.

    Blackbird



  • Blackbird schrieb:

    Wie die Sprachen dann eingesetzt wurden - darüber würde ich mich nicht auslassen, da gibt's nur Streit.

    Um so besser. Ich glaube am meisten hab ich hier aus den größten Streitpunkten gelernt. Wenn etwas so einfach und klar ist, daß man nicht drüber streiten muß, dann krieg ich's auch selber raus. Wenn sich aber die Forum-Größen hier drum kloppen wie's besser ist, dann gibt's ne Menge zu lernen!



  • NewProggie schrieb:

    😃 , aber ich denke, das wird ganz nützlich für diejenigen sein, die wie ich, sich ein bisschen Überblick verschaffen wollen. Ich finde es ebenfalls gut, wenn man von (bisher unbekannten) Programmiersprachen dann zumindest was mal gehört hat.

    Das ganze bringt aber IMHO nur was, wenn es nicht einfach nur bestehende Vorurteile wiederkäut, wie z.B. "Lisp ist eine interpretierte KI-Sprache" oder ähnlicher Quatsch. Verzeih mir, wenn ich dir zu nahe trete, aber ich habe eigentlich genau die Befürchtung, dass dir das passieren wird. Wenn nicht mit Lisp, dann mit irgendeiner anderen Sprache. Oder willst du jetzt erstmal ein paar Jahre recherchieren und dabei jede existierende Sprache auseinandernehmen?



  • schließe mich bashar und blackbird an.

    eine zeitleiste, und aussagen der entwickler wäre ev. ein guter ansatz.

    ein so verfasster artikel könnte hervorragend als basis für jesters idee von "streit über einsatz..." dienen, ohne jedoch (dann) voller ev. zu kurz gefasster oder abgeschriebener "ansichten" eines einzigen autors zu sein, der sich mit den jeweiligen sprachen nicht befasst hat.

    ohne jetzt aber die mühen eines jenigen unter den scheffel stellen zu wollen, der einen artikel verfasst. ich weiß, dass das eine immense arbeit ist.



  • Nur um mal anzudeuten, wie aufwendig es wird "alle" Sprachen zu katalogisieren guck dir mal die allseits beliebte 99 bottles of beer Seite an. Da findest du jedenfalls schonmal ein paar weitere.



  • Ich lach mich schlapp, das ist ja ne witzige Seite.

    Gut gemacht:)

    AM besten gefallen mir die verschiendene Programmierstile <hacking-style, meta-style....>

    Ist eigentlich für jeden Programmierneuling gut


Anmelden zum Antworten