JavaScript keine Programmiersprache?

6 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Das wird oft nur scherzhaft gesagt um die Javascript/bzw die Entwicker, die damit arbeiten, abzuwerten. Objektorientierte Programmiersprachen z.B. werden dabei als "vollwertig" angesehen.

Im Prinzip ist es eine Scriptsprache und Scriptsprachen gehören zu den Programiersprachen.

bitshifter  03.02.2015, 13:03

Die Leute die das sagen outen sich direkt als Noobs, JS ist nämlich eine Objektorientierte Programmiersprache. Sie unterstützt desweiteren sogar das prozedurale und funktionale Paradigma.

1
mbembenek  18.04.2015, 00:57
@bitshifter

Also du übertreibst echt. Dann sage mir doch mal bitte wie du Browserunabhängig eine Anwendung in JavaScript entwickeln möchtest? Nur weil man Protoypentechnisch OOP einsetzen kann ist es noch keine hochwertige Programmiersprache. 

0

Doch doch, JavaScript ist eine Programmiersprache. Es ist nur keine objektorientierte Programmiersprache (gewesen), weil man keine eigenen Objekte erstellen (konnte). Man konnte aber externe Objekte instanziieren, deswegen sprach man von einer objektbasierten Programmiersprache.

Was du meinst, ist vielleicht HTML oder CSS. Dies sind keine Programmiersprachen, sondern beschreibende Sprachen (vgl. mit Word). Es wird beschrieben, wie das Resultat aussehen soll. HTML unterstützt weder Variablen, noch Iterationen, Selektionen und Befehlssequenzen.

Woher ich das weiß:Berufserfahrung – Programmierer
Kay147 
Fragesteller
 03.02.2015, 12:05

mein Lehrer sagt das JavaScript keine Programmiersprache ist allerdings das mit deinen HTML ist richtig

0
Suboptimierer  03.02.2015, 12:08
@Kay147

Aus meiner Sicht ist es eine. Wenn dein Lehrer das sagt, muss er es auch begründen können. Frag ihn doch einfach.

1
Kay147 
Fragesteller
 03.02.2015, 12:12
@Suboptimierer

er begründet es nicht da es die Lösung zu einer Aufgabe ist

0
Suboptimierer  03.02.2015, 12:13
@Kay147

Du weißt aber, dass das hier kein Hausaufgabenforum ist? o.O
Normalerweise werden solche Fragen gelöscht.

0
Kay147 
Fragesteller
 03.02.2015, 12:16
@Suboptimierer

es ist keine hausaufgabe ich sitze grade im unterricht und frage warum es keine richtige ist

0
Martinantwortet  03.02.2015, 12:23
@Kay147

Eigentlich ist es auch kein Forum für Schüler im Unterricht ;-)

Aber an dieser Stelle kann es wohl dazu beitragen, dass Lehrer nicht ihr Halbwissen weiterverbreiten können xD

0
rmnstr  03.02.2015, 15:14
@Kay147

JavaScript ist eine Skriptsprache und Skriptsprachen gehören zu der Gruppe der Programmiersprachen.

Lehrer belegen in der Regel in ihrem Lehramtsstudium nur grundlegende Kurse ihrer Fächer. Ich studiere Informatik im Master und konnte bei meinem Bachelorstudium schon beobachen, wie dürftig Lehramtsstudenten ausgebildet werden. Von allen Informatik-Bachelor-Lehrveranstaltungen mussten sie lediglich die einfachsten belegen und die meisten waren damit schon überfordert.

Long story short: Lehrer sind kein Garant für richtige Aussagen.

4
Suboptimierer  03.02.2015, 15:16
@rmnstr

Vielleicht ist genau das die Aufgabe. Dann wäre sie sogar intelligent gestellt. Dann muss der Schüler nämlich von selbst darauf kommen, dass die Behauptung falsch ist. Es kann sein, dass der Schüler die Behauptung widerlegen soll.

Diese Lehrmethode dient zugleich der Charakterformung, denn der Schüler lernt, sich der Allmacht des Lehrwesens zu widersetzen und dem gesunden Menschenverstand und damit sich selbst zu vertrauen.

Sie wäre deswegen intelligent gestellt, weil Schüler es oft gewohnt sind, richtige Angaben verifizieren zu müssen.

2
martin7812  03.02.2015, 21:08
@Kay147

Das ist völliger Unsinn.

JavaScript ist eindeutig eine imperative, Turing-vollständige Programmiersprache.

Es gibt keinen Grund, warum JavaScript keine Programmiersprache sein sollte.

3
AldoradoXYZ  26.01.2020, 14:57
@martin7812
 Turing-vollständige

Und damit ist alles dazu gesagt.

Übrigens ein richtig mieser Lehrer der einfach sagt "ist so" und keine Begründung liefert. Dann lässt sich daraus nämlich keine allgemeine Regel ableiten.

Gruß

1

Über das Thema werden die Informatiker ewig streiten. Meine Meinung:

  • Alles, was kompiliert wird und womit man rechnen kann, ist eine Programmiersprache
  • Interpretierte Sprachen, die Rechnungen ausführen können, sind Skriptsprachen
  • Interpretierte Sprachen zur Beschreibung sind Auszeichnungssprachen
Franz1957  03.02.2015, 21:02

Und in welche Kiste gehören dann die Sprachen, die man je nach Belieben kompilieren oder interpretieren lassen kann? Und die Sprachen, die kompiliert UND interpretiert werden?

0
Unkreatiiiev  03.02.2015, 22:44
@Franz1957

Hmh guter Punkt. Sprachen, die kompiliert und interpretiert werden, würde ich zu den Programmiersprachen packen. Java z.B. ist eindeutig keine Skriptsprache.

Beim ersten bin ich mir nicht sicher. Auf welche Sprachen würde das denn zutreffen?

0
Franz1957  04.02.2015, 00:38
@Unkreatiiiev

In dem Moment, als erstmals jemand einen Compiler für PHP fertig bekam, wurde PHP genau in diesem Moment auf magische Weise von einer "Skriptsprache" zu einer "Programmiersprache". So müßte man meinen, wenn man an den Sinn dieser Bezeichnungsweise glaubt.

Viele Sprachen werden üblichererweise in einen Zwischencode kompiliert und dieser wird dann interpretiert (vereinfacht dargestellt). Außer Java sind das z.B. auch C#, Perl, UCSD-Pascal, manche Versionen von FORTH . Bei Java und allen anderen Sprachen, die auf der Java-Engine laufen, unterschlägt diese zwei-Phasen-Beschreibung aber einen wichtigen Teil des Ablaufs, weil der Just-in-time-Compiler noch zur Laufzeit Optimierungen am Bytecode vornimmt. Man kann die beiden Phasen auch bei Perl aber nicht einfach auseinanderhalten, da Compiler und Interpreter miteinander eng verschränkt arbeiten.

ML, OCaml, LISP, Prolog und BASIC sind Sprachen bzw. Sprachfamilien, für die es sowohl Compiler als auch Interpreter gibt. Bei OCaml z.B. hat man auch noch die Wahl zwischen Interpretern auf unterschiedlichen Leveln.

Ich hoffe, diese Beispiele machen deutlich genug, daß es praktisch sinnlos ist, zwischen "kompilierten Sprachen" und "Interpretersprachen" unterscheiden zu wollen. Die Wahrheit ist: Es ist überhaupt keine Eigenschaft der Sprache, ob sie kompiliert oder interpretiert wird oder beides zugleich oder beides nacheinander oder beides wahlweise. Vielmehr ist das eine Eigenschaft der jeweiligen Implementierung(en) und es steht nicht fest, sondern es kann sich jederzeit ändern, sobald jemand es ändert.

1
Unkreatiiiev  04.02.2015, 10:53
@Franz1957

Joah, ist schon richtig.

Vielleicht könnte man Skript- und Programmiersprachen durch ihre Mächtigkeit unterscheiden. Mit Programmiersprachen kann man Desktopanwendungen schreiben, mit Skriptsprachen (in reiner Form) nicht. Nur so eine Idee. Welche Gegenargumente gibt es da?

0
Franz1957  04.02.2015, 21:16
@Unkreatiiiev

Was ist eine Skriptsprache in reiner Form? Eine, mit der man keine Desktopanwendungen schreiben kann? Hmm... was ist eigentlich eine Desktopanwendung? Vielleicht sagt jetzt jemand, das sei ein Programm mit Fenstern und mit Buttons, die man mit der Maus anklicken kann. Solche Programme kann man mit Perl, Python, Ruby und Tcl jedenfalls schreiben. Ob man es mit COBOL, FORTRAN oder ALGOL oder PL/I auch kann, da bin ich nicht so sicher. Ich denke eher, dafür reicht ihre "Mächtigkeit", bzw. reichen die vorhandenen Funktionsbibliotheken nicht aus. Um Differentialgleichungssysteme mit zigtausenden von Variablen zu lösen, ist FORTRAN mächtig genug. Aber dafür halt nicht. Womöglich sind das also Skriptsprachen in reiner Form. Die ersten anwendungsorientierten Programmiersprachen der Geschichte, für die es überdies, soviel ich weiß, nur Compiler und keine Interpreter gibt, wären demnach reine Skriptsprachen. Und Visicalc, das erste Tabellenkalkulkationsprogramm und das Stück Software, dem der Apple II seinen Durchbruch auf dem Markt für Bürocomputer verdankte, wäre demnach gar keine Desktop-Anwendung gewesen, und nicht mal ein richtiges Programm, sondern nur ein Skript. Überhaupt alles, was in der Zeit vor dem Xerox Alto und dem Apple Macintosh je programmiert wurde, wären nur Skripte gewesen, und was wir mal für Programmierer und Meister dieses Fachs hielten, Leute wie John Backus, John Mccarthy, Niklaus Wirth und Edsger W. Dijkstra, Brian W. Kernighan und Dennis Ritchie waren Skriptkiddies und Frickler.

Mit ein, zwei rasch in die Welt gesetzten Begriffen lassen sich, wie man sieht, mühelos umwälzende Schlußfolgerungen ziehen und die Weltgeschichte neu schreiben. Ich für mein Teil halte das aber für nicht besonders spannend. Statt nach einem Kriterium zu suchen, mit dem man vielleicht irgendwie Skript- von Programmiersprachen unterscheiden kann, würde ich allenfalls fragen: Welches Motiv treibt eigentlich die Leute an, die diesen Zaun unbedingt ziehen wollen? Raetselknacker hat in seiner Antwort eine These hierzu aufgestellt: Es hat mit Status zu tun und dem Wunsch, Leute abzuwerten, die etwas geringerwertiges tun als man selbst. Meine These: Es könnte mit dem Wunsch zu tun haben, sich stärker oder gar männlicher zu fühlen und seine Programmiersprache vorzeigen zu können wie Crocodile Dundee sein famoses Messer :-) https://www.youtube.com/watch?v=WWl8EbNN8NM

0
Unkreatiiiev  05.02.2015, 08:34
@Franz1957

Das Messer ist aber tatsächlich ziemlich cool.

Unter Desktopanwendung verstehe ich nicht nur Programme mit GUI, sondern Programme, welche von alleine, ohne "Hilfsprogramm" (z.B. Webbrowser) laufen.

Zum "Abwerten": Skriptsprachen sind mindestens genauso schwer zu meistern wie "Programmiersprachen". Ich denke nicht, dass es irgendwer nötig hat, andere Entwickler abzuwerten (zumal diese mit ziemlich großer Warscheinlichkeit auch noch andere Sprachen können).

0
Franz1957  05.02.2015, 11:14
@Unkreatiiiev

Naja, die zahlreichen "Hilfsprogramme", auf die eine Anwendung zugreift, werden eben heute vom Anwender nicht mehr als solche wahrgenommen, weil sie zur Standardausstattung moderner Betriebssyteme gehören. Wer neueste Peripherie-Hardware anschließen wollte, die heute per Plug-and play eingestöpselt werden kann, der mußte früher zuerst Treiber installieren. Es ist noch nicht so lange her, da mußte man auf Windows-Rechnern zuerst "Trumpet Winsocket" installieren, um sich per Modem ins Internet einwählen zu können. Und wie war das, wenn man auf einem MS-DOS-Rechner eine Maus verwenden wollte? Das betrifft auch die Laufzeitumgebungen für manche Sprachen: Die für C# ist, meine ich, heute bei Windows gleich mit dabei. Benutze ich Linux, dann ist normalerweise Perl schon gleich mit an Bord.

Ich stimme Dir zu: sog. Skriptsprachen sind mindestens genauso schwer zu meistern wie sog. Programmiersprachen. Manche drehen ja den Spieß herum und behaupten, Perl sei eine besonders schwierige Sprache und raten Anfängern deshalb davon ab, sie lernen zu wollen. Was ich wiederum nicht so sehe. Ach, wenn es doch jeder begriffe, daß es ist, wie Du sagst: daß keiner es nötig hat, andere Entwickler abzuwerten. So, keine Zeit mehr zum Plaudern, die Arbeit ruft. Tschau!

1

Hier ist ein Artikel von einem wirklichen Fachmann zu dem Thema, was JavaScript ist:

http://javascript.crockford.com/javascript.html

Franz1957  03.02.2015, 20:56

Für die, die es lieber auf deutsch lesen wollen, hier die Übersetzung:

http://www.pseliger.de/translations/Douglas-Crockford/missunderstood-JavaScript.html

0
Franz1957  03.02.2015, 20:59
@Franz1957

Und noch eine Anmerkung von mir zur Unterrichtsgestaltung: Sachen in irgendwelche mehr oder weniger willkürlich definierte Kisten einzusortieren, ist wenig hilfreich, um diese Sachen und ihre Zusammenhänge verstehen zu lernen. Solche Aufgaben verleiten nur zu dogmatischem und oberflächlichem Denken, wie man es bei rechthaberischen Menschen findet, die wenig wirkliche Erfahrung mit irgendetwas haben, aber alles sofort einzuordnen wissen.

2