Vom hässlichen Entlein zur Programmiersprache des Jahres 2014

Noch vor einigen Jahren war sie in der Entwickler-Szene vor allem Spott und Schmähungen ausgesetzt - nun ist sie zur Programmiersprache des Jahres 2014 gekürt worden: JavaScript ist inzwischen zu einem der wichtigsten Werkzeuge in den Händen von ... mehr... Quellcode, Code, Programmierung, Programmiersprache Entwickler, Programmierer, nerd, geek, Slashdot Entwickler, Programmierer, nerd, geek, Slashdot Slashdot

Diese Nachricht vollständig anzeigen.

Jetzt einen Kommentar schreiben
 
Och, JavaScript für sich genommen ist doch eine schöne Sprache. Dynamisch veränderbare Objekte ohne wirkliche Klassendefinition haben etwas. Die Javascript interne Date-Klasse könnte allerdings mal eine zeitgemäße Implementierung vertragen mit Format-Strings und Arithmetik...

Das Problem ist eher die unterschiedliche Verhaltensweise je nach Browser und das Zusammenspiel mit HTML und CSS was das große Ganze zu einem riesigen Misthaufen werden lässt.

Wenn ich die Wahl zwischen JavaScript und Smalltalk hätte, ich würde mich eindeutig für ersteres Entscheiden. Leider muss ich beides machen ^^
 
@Draco2007: Wie bitte????? Javascript ist eine schöne Sprache? Javascript ist vermutlich das hässlichste, was sich jemals Programmiersprache schimpfen hat dürfen. Und durch den Erfolg vom Web wird diese Ausgeburt an Hässlichkeit auch noch zur Applikationsentwicklung (z.B. Windows 8) verwendet! Es gibt keine Datentypen, dynamische Datentypen sind für jeden Entwickler der sein Programm auch 2 Tage später noch warten will, eine Katastrophe! Javascript ist der Misthaufen, nicht CSS. Das Ende von Netscape ist Gottes Strafe für die Erfindung von Javascript! Wenn ich die Wahl hab zwischen c#, java, c++, c, visual basic, objective C, javascript und Brainfuck. Dann kommt Javascript zwar vor Brainfuck auf den vorletzten Platz, aber nur ganz knapp! Javascript wird nur durch irgendwelche third party tools (jquery, typscript, was weiß ich) erträglich. Aber das schaut dann meist gar nicht mehr nach Javascript aus.
 
@Tintifax: Tja, ich arbeite mit JavaScript und Smalltalk. Beide Sprachen kennen keine strenge Typisierung. Man gewöhnt sich dran und ich wüsste nicht wo das Problem sein soll. Anständige Variablenbenennung und generell sauberer Code und ich sehe nicht wo eine fehlende Typisierung die Wartbarkeit beeinflussen soll.

Und dann schau dir halt TypeScript an, dann bekommst du deine Typisierung...
Etwas weniger Kraftausdrücke könnten auch nicht schaden....
 
@Draco2007: Man gewöhnt sich auch an einen eingewachsenen Zehennagel. Oder an einen eiternden Hautausschlag. Das sind die medizinischen äquivalenzen zu Javascript. Viel mehr gibts dazu nicht mehr zu sagen...
 
@Draco2007: Achja, falls Du das missverstanden hast: Brainfuck ist eine Programmiersprache. http://de.wikipedia.org/wiki/Brainfuck
 
@Tintifax: Ich bin kein Erstsemestler mehr, ich weiß was Brainfuck ist. Und trotzdem übertreibst du einfach maßlos und gehst überhaupt nicht darauf ein was ich schreibe.

Ich wüsste immer noch nicht, wo mich eine fehlende Typisierung einer Programmiersprache an der Wartbarkeit meiner Software hindern soll.

Hoffentlich programmierst du nicht genauso wie du hier schreibst....denn du bist scheinbar durchgehend in einer Rage und bist nur am Fluchen....
 
@Draco2007: Sorry, aber ich kann "Javascript ist eine schöne Sprache" einfach nicht Ernst nehmen, deshalb hab ich halt ein bisschen scherzhalber geflucht... Tut mir wirklich leid, sollte ich deine Gefühle verletzt haben...
 
@Tintifax: Spar dir den Sarkasmus, du wirkst einfach unglaublich unprofessionell mit so einer Ausdrucksweise, dass ich jede Aussage von dir lese wie von einem 12 jährigen bockigen Kind...
 
@Draco2007: Na geh, beleidigend werden? Das ist aber irgendwie extrem unprofessionell, irgendwie klingt das nach einem 12 jährigen Kind... Und ich entschuldig ich mich nochmal: Wenn ich Javascript verfluche (weil es mich Tage und Wochen meines Lebens gekostet hat), dann geht das ganz und gar nicht gegen dich! Sollte es so rüber gekommen sein, sorry!
 
@Tintifax: Och glaub mir, geflucht habe ich über HTML/CSS/Javascript auch schon genug, aber nicht so sehr, dass ich dass in einen Kommentar schreiben würde ^^

Schau dir mal Smalltalk an, wenn du die Möglichkeit dazu hast. Komplett andere Syntax als gewohnt von Java, C# oder ähnlichem UND perfekt für dich, keine strenge Typisierung. (aber keine dynamischen Objekte ^^)
Dagegen sind meine Flucharien bei HTML ein Witz ^^
 
@Draco2007: Warum perfekt für mich, das versteh ich nicht. Ich bin verfechter der strengen Typisierung. Auch wenn dies "gelockert" werden kann, dass man z.B. in C# schreiben kann "var x = 1;" x ist ab diesem Zeitpunkt ein int!
 
@Tintifax: Das war ironisch gemeint...weil du dich so über JavaScript aufregst und ich 2 Sprachen habe die keine strenge Typisierung kennen ^^

Und ich kenne C#...würde ich auch lieber machen, habe aber nicht die Wahl ^^
 
@Draco2007: Ich hab ja oft auch nicht die Wahl! :) Und ich mach auch mittelgroße Webprojekte. Die Kombination C#/ASP.NET/MVC/Javascript/JQuery hat was, also, es ist nicht so dass ich das nicht kenn und deshalb verweiger (was ja auch nicht geht!). Aber da ich grad ein größers WinJS Projekt hinter mir hab, und in diesem Projekt alles, inklusive den Entdecker der Elektrizität wegen Javascript verflucht hab... ;) Also, je mehr man ernsthaft (und ich mein das echt nicht bös! Ich trenn halt Scripting von einer Webseite - was genauso mein Job ist von "programmieren" von Anwendungen) Anwendungen entwickelt, desto schlimmer wird Javascript in meinen Augen. Auf einer Webseite brauch ich auch keine echten Klassen definieren, da reicht mir dieses JSON Zeugs. Aber bei Anwendungen will ich nicht basteln müssen...
 
@Tintifax: Naja, ich muss "Webanwendungen" bauen mit einem Smalltalk Backend. (Eine Big Data Plattform)

AngularJS war dann für mich die Offenbarung was Javascript angeht. Brauchbares Data-Binding, vergleichbar mit WPF.
Templates, UserControls und alles was man so braucht.

Auch wenns nicht 100% sauber ist, aber damit habe ich meinen "eigenen" MVC Stil gefunden für HTML/CSS/JavaScript.
Geht üblicherweise auch nur um WebService aufrufen zum Daten holen und ums schöne Anzeigen dieser Daten. Maximal noch Filtern und ähnliches. Geht aber mit Angular ganz gut.

Unser Backend kommt zum Glück perfekt mit den JSON-Objekten zurecht die JavaScript erzeugt und kann diese auch super erzeugen, womit die Kommunikation sehr angenehm wird...

Aber komischerweise komme ich dabei wirklich ohne strenge Typisierung aus. Und die dynamischen Objekte aus JS sind sparsam verwendet auch ganz nützlich.
 
@Draco2007: Keine Ahnung wie lang Du programmierst, in wievielen Sprachen Du entwickelt hast. Vielleicht bin ichs einfach nur so gewöhnt, weil ichs jahrelang in der Schule, und noch mehr Jahre in der Praxis einfach so gelernt hab, und gewöhnt bin. Für mich steht aber deshalb fest: Solang es um einfache Datentypen geht, find ich fehlende Typisierung irgendwie nur schlecht. Sobald Objekte ins Spiel kommen wirds in meinen Augen so richtig schlimm. Ja. Ich komm dann auch ohne aus (bzw muss ohne auskommen). Ja. Am Schluss kommt auch ein (hoffentlich) funktionierendes Programm oder eine funktionierende Webseite raus. Aber am Weg dahin ist fehlende Typisierung nur eine der vielen potentiellen schlimmen (weil sehr schwer zu debuggen) Fehlerquellen, die absolut nicht notwendig ist wenn man sich vorher Gedanken macht, und Klassen brav definiert, und Variablen brav deklariert.
 
@Draco2007: Und keinen kleinen Seitenhieb noch ;) "dynamische Objekte" sind sparsam verwendet nützlich dabei ganz schnell irgendwas hinzuprogrammieren, vor allem wenn man sich keine Gedanken machen will, und faul ist (Mach ich auch oft, keine Angst! :) ). Sie sind ganz und gar nicht nützlich wenn man etwas programmieren will, was man (im schlimmsten Fall sogar nachher jemand anderes) warten will. Wenn man das Programm debuggen muss. Wenn man zu jeder Zeit wissen sollt was wo drin steht... ;)
 
@Tintifax: Ich denke dass Leute die JavaScript nicht mögen diese Sprache einfach nicht verstanden haben. Wenn man mit JavaScript umzugehen weiß hat man viel mehr Freiheiten als mit Srachen wie Java, C++ oder C#.
 
@Awake: Ich denke, dass Leute, die es gut finden dass man einfach zur Laufzeit an Objekten herumdoktoren kann, oder es gut finden dass es keine Datentypen gibt, sich schlicht und einfach vorm Entwickeln keine Gedanken machen, sondern einfach drauf los basteln wollen. Das ist in meinen Augen aber keine Software Entwicklung, sondern pfuschen. Je größer ein Projekt wird, desto wichtiger ist es einen vernünftigen Code zu schreiben. Javascript ist eine "Sprache", die dafür gebaut wurde einfachste Sachen auf einer Webseite zu machen, die inzwischen zum entwickeln von echter Software missbraucht wird. Und ich hab Javascript verstanden, ich hab mit Javascript genug entwickelt (Von Webseite bis vollwertige Apps), und mehr als irgendwelche Spielereien auf einer Webseite würd ich freiwillig nicht machen.
 
@Tintifax: Da geb ich dir sicherlich recht, nur bin ich der Meinung dass man auch mit JavaScript durchaus vernünftigen Code schreiben kann. Hier hängt vieles von ab in wie weit man Design Patterns etc. kennt. Gibt Leute, man glaubt es kaum, die kriegen das hin selbst in Sprachen wie Java oder C# den Code zu verhunzen. Von daher ist das für mich kein Argument. ;)
 
@Awake: In meinen Augen gehört zu einem vernünftigen Code eine gewisse Strukturierung, Typensicherheit (Das, was ich von einer Funktion erhalte, entspricht diesen Richtlinien). Das gibts aber alles in Javascript nicht. Typen sind ja auch Unterstützung bei einem vernünftigen Code. Mir sagt der c# (Das ist halt meine Sprache) Compiler, wenn ich 12 mal statt c.Property einmal c.Propety schreibe. Ich kann mich drauf verlassen: "wenn ich i richtig definiere, und auf i zugreife, ist i IMMER ein Int! Da kann sein was will". In Javascript ist das nicht so. Eine falsche Zeile, und es ist auf einmal kein String mehr. In Javascript kann ich durchaus beim debuggen unabsichtlich einmal ein Zeichen zu viel löschen, und kein Compiler der Welt wird mir einen Fehler liefern, das Programm funktioniert trotzdem nicht. Das meinte ich. Klassen sind eine "Hilfe" eine Struktur, eine Kapselung in meinen Code zu bringen. Gibts nicht wirklich in Javascript. Und da will ich von so großartigen Dingen wie Linq gar nicht anfangen. Wennst viele viele Jahre lang in echten Programmiersprachen entwickelt hast, dann ist Javascript nur ein Wadenkrampf. "1" - 1 ergibt 0, "1" + 1 ergibt allerdings nicht 2 sondern 11, "Hallo1" + 1 ergibt Hallo11, und "Hallo1" - 1 ergibt NaN. Sowas kann man doch bitte beim besten Willen nicht als "vernünftig" bezeichnen. Und das alles nur, weil es keine Typen gibt, und ein String schlicht und einfach keine Zahl ist. Und jetzt darf ich alles was z.B. von einem Json Request als Antwort kommt parsen, weil ich ja nicht weiß: "Ist das jetzt eine 1 als Zahl, oder eine 1 als String?" Weil es keine Datentypen gibt.
 
@Tintifax: Setz doch einfach JavaScript auf den "Strict-Mode" dann raucht er auch bei c.Propety ab...

Und ich weiß ja nicht was du für einen Editor verwendest, der keine Autovervollständigung kennt. Mir passieren solche Typos jedenfalls NIE. (Visual Studio)

Und in C# musst du einen JSON Request (der ja nur ein String ist) nicht parsen um herauszufinden was für ein Typ dahinter steht?
Wird dir halt abgenommen, genauso wie in JavaScript mit JSON.parse(). Dann kannst du immer noch das Objekt fragen welchen Datentyp ein Attribut hat, bevor du damit Funktionen aufrufst, die nur ein bestimmter Datentyp kann.
 
@Draco2007: Ach... Passt schon, für dich passt Javascript, für echte Software Entwickler ists ein Krampf. Lassen wir es gut sein...
 
@Tintifax: Echte Software Entwickler? Was entwickelt denn ein ECHTER Software Entwickler anderes als Webseiten mit Javascript?

Und sorry, eine Webseite ist kein so hochkomplexes Projekt, dass man da 20 Entwickler dran setzen müsste.

Aber ich sehe schon, du weichst nur aus, wie ein 12 jähiges bockiges Kind...
 
@Draco2007: Alles klar. Ich hab kurz geglaubt dass Du weißt was programmieren ist, und was scripten ist. Aber dem war scheinbar nicht so... Sorry... So, und jetzt verlass ich das Büro. Weißt, ich bin nämlich so ein Wunderkind, dass ich mit 12 schon Geld fürs Softwareentwickeln bekomm...
 
@Tintifax: Klar, jede Sprache hat ihre Schwächen, so JavaScript auch. Trotzdem bietet es auf der anderen Seite nach wie vor Freiheiten die man bei anderen Sprachen vergeblich sucht. ^^
 
@Awake: Ich geb Dir ja Recht. Aber Freiheiten sind nicht per se gut, in der allgemeinen "Lehre", und meiner jetzt gar nicht mal so kurzen Programmier-Erfahrung. Für ein 2 Zeilen Script, für eine Webseite, da brauch ich auch keine echte Programmiersprache. Da ist es von Vorteil dass man sich um nix kümmern muss. Je größer ein Projekt, ja sogar eine Webseite ist, desto schlimmer werden dieses "schlamperte" (Ich hoff in D versteht man dieses Wort). Ich mein, es ist sehr nett dass man in C solche Programme schreiben kann (http://de.wikipedia.org/wiki/International_Obfuscated_C_Code_Contest), aber in der Realität machen wie gesagt Datentypen einen Sinn. Und für mich ist Javascript keine Programmiersprache, sondern eine Scriptsprache. Und dafür ist sie geeingnet, aber nicht mehr.
 
I mag Swift, liebe C# und hasse Javascript. Letzteres ist Dank TypeScript erträglich geworden. Danke Microsoft =)
 
@Flauschi: Ich liebe C#, kompilier es zu JavaScript und verachte Java. :D
 
@Flauschi: JavaScript ist schon ganz gut :) Java ist schlimm :D Das ist der Teufel :P
 
@Knerd: https://www.youtube.com/watch?v=ehuRQ12mO9o
 
@klarso: Immer wieder gut^^
 
@klarso: https://www.destroyallsoftware.com/talks/wat der ist klasse.
 
@klarso: Lustig ja, aber mit Dot Net 5 nicht mehr Aktuell. Da ist alles Open Source (Auch die Compiler) und man kann es überall nutzen.
Davon abgesehen war es nämlich immer schon schneller und die Sprachen (vor allem C#) deutlich besser.
 
@cathal: es soll in erster Linie witzig sein. Das einzige was hier nicht stimmt sind deine Pauschalaussagen von besser und schneller. Ich kann dir z.B. Algorithmen zeigen bei denen Java schneller als C# ist, bei anderen ist wiederum C# schneller. http://www.sinbadsoft.com/blog/benchmarking-numeric-base-convertion-in-c-java-and-scala/
 
@Flauschi: Ja, nur dass Typescript zur Zeit nicht Javascript ist, sondern eine eigenständige Sprache, deren Übersetzungsvorgang als Ergebnis Javascript liefert. Man kann ja auch nicht sagen: Die Maschinensprache ist durch C erträglich geworden.
 
@Tintifax: Sprachkonstrukte von Typescript, wie Klassen, Interfaces, Vererbung, Module, anonyme Funktionen, Generics und eine statische Typisierung sollen auch in ECMAScript 6 übernommen werden. D.h. es ist eventuell das zukünftige JS
 
@Flauschi: Hab ich auch schon gelesen, find ich super!!!
 
JavaScript... die geliebte Pest im Netz.
 
@knirps: Ironischerweise gehört NoScript zu den beliebtesten Firefox-Erweiterungen. ^^
 
@pengo: NoScript ist nicht dazu da JavaScript zu unterbinden, sondern nur die Webanwendungen auf einer Seite auszuführen, die der Nutzer ausführen möchte. NoScript bietet also Kontrolle darüber welche Scripte ausgeführt werden sollen. NoScript als Anti-JavaScript Plugin zu bezeichnen, ist in etwa so wie als würde man den AdBlocker als Medienblocker bezeichnen.
 
@klarso: Ne, NoScript blockiert prinzipiell JavaScript als ganzes. Und ich denke die meisten benutzen es nicht zum blockieren von Werbung, sondern von Trackern oder zur Erhöhung der Sicherheit (XSS etc). Zum blockieren von Werbung wird Adblock genutzt, wie du ja selbst eigentlich schon erkannt hast. Natürlich hast du aber recht damit dass NoScript-Nutzer nicht JavaScript ablehnen sondern nur einige potentiell negative Dinge die damit angestellt werden können...
 
@lutschboy: Ich kann mit NoScript doch gezielt JavaScript Content ausführen, wenn ich auf das entsprechende Script klicke. Natürlich wird erst mal alles geblockt und der Nutzer entscheidet selbst was ausgeführt wird und was nicht.
 
@klarso: Ja, aber meinst du die meisten wissen was sich hinter dem Platzhalter verbirgt auf den sie klicken? Klar, wenn es ein 16:9-Platzhalter ist vermutet man ein Video... aber kaum einer nutzt NoScript um Videos zu blocken sondern eben alles andere -nicht- nützliche und potentiell schädliche auf einer Webseite. Warum sollte ich ein Addon benutzen um Dinge die ich sehen will zu blockieren und freizuschalten?
 
@lutschboy: Naja aber das Netz so ganz ohne Javascript ist Blödsinn....

Die meisten modernen Webseiten sehen so ganz ohne Javascript absolut beschissen aus.
Dass man JavaScript aus unbekannten (externen) Quellen sperrt ist da was völlig anderes und wirklich eher mit einem AdBlock zu vergleichen.
 
JavaScript ist auch, an und für sich, eine tolle Sprache. Für den Einsatzzweck perfekt geeignet und auch auf dem Server macht es mit node.js eine gute Figur :)

Und für diejenigen, denen JavaScript nicht zusagt, gibt es folgende Alternativen, die alle zu JavaScript werden: https://github.com/jashkenas/coffeescript/wiki/list-of-languages-that-compile-to-js

Ich persönlich möchte da LiveScript, TypeScript und IcedCoffeeScript hervorheben, die drei sind recht cool.

LiveScript gibt JavaScript eine funktionale Note, TypeScript macht es etwas statischer und IcedCoffeeScript, welches eigentlich CoffeeScript ist, nur mit einer schönen Möglichkeit für asynchrone Workflows :)
 
@Knerd: Wie du schon selbst schreibst, sind diese Scriptsprachen nur Zuckerguß, die keine grundlegenden Vorteile gegenüber JavaScript bieten. Da finde ich den Schritt von Dart https://www.dartlang.org/ interessanter. Eine vollständig typsichere Sprache mit integriertem Data-Binding und schlägt als Websprache von der Performance her selbst native Sprachen wie Java (http://benchmarksgame.alioth.debian.org/u64q/dart.html).
 
@klarso: Java is nicht nativ?! Und Dart is jetzt CoffeScript nicht wirklich überlegen, nur anders.
 
Wenn JS die Programmier-Zukunft sein soll, na dann gute Nacht!
 
@gill_bates: Weil?
 
@Knerd: ...es lahm ist.
 
@PranKe01:
Meinst du?

Kennst du Dart, kann man auch in JS kompilieren und ist sogar schneller als Java: http://benchmarksgame.alioth.debian.org/u64q/dart.html

Kennst du asm.js ein Subset von JavaScript? Nativer C++ Code ist nur 1,5x so schnell wie mit asm.js kompilierte Anwendungen:
https://hacks.mozilla.org/2013/12/gap-between-asm-js-and-native-performance-gets-even-narrower-with-float32-optimizations/
 
@PranKe01: Ahja, dann sollte man einfach die Runtimes optimieren und das wird ordentlich gemacht.
 
ja, es muß ja sichergestellt sein, daß die ganzen drive-by-downloads auch 2015 noch genauso gut funktionieren, wie in den jahren davor. hurra malware!
 
Mal eine Frage, ist COBOL in irgendeiner anderen Programmiersprache oder irgendwas "versteckt"
(Also z.B. wie VB in MS Office Makros)? Ich bin doch etwas überrascht, dass das vor Visual Basic liegt.
 
@Lastwebpage: COBOL findest Du nach wie vor stark im Finanzbereich und hierfür ist es immer noch so ziemlich die beste Sprache, die mir einfällt - meist für die Logik in Kombination mit einer anderen Sprache für die UI.

Problem: Der Dinosaurier COBOL lebt. Seine Dompteure (sprich: die, die noch COBOL sprechen) sterben aus.
 
Also alle Programmiersprachen werden da über einen Kamm geschert. Das ist doch Unsinn.
 
Man kann JavaScript nicht wirklich mit C vergleichen, genausowenig wie C++ mit C# oder JAVA. Sie haben gemeinsame Syntaxgrundlagen, aber total verschiedene Einsatzbereiche. Man kann mit C++ keine Webseite schreiben, und mit JavaScript nicht wirklich eine Desktopanwendung. oder gar Treiber...
 
@cptdark: Es geht hier doch auch nicht um "besser" oder "schlechter", sondern nur um beliebter.

Wenn nunmal mehr Äpfel als Birnen gegessen werden, kann man diesen Umstand sehr wohl vergleichen.
Und es ist für Entwickler (und vor allem angehende) durchaus eine wichtige Information. Größere Popularität einer Programmiersprache bedeutet eine größere Community. Und das bedeutet oft eine schnelle Problemlösung dank Google.

Ich muss beruflich Smalltalk entwickeln. An sich keine schlechte Sprache, wenn auch syntaktisch, für jemanden der Java, C#, etc gewohnt ist, sehr merkwürdig.
Das Problem ist aber, KEINE Community. Man findet NICHTS, egal welches kleine Problem man hat. Es ist scheinbar eine tote Sprache...
 
@Draco2007: Aber grade für angehende sollte man sich schon überlegen mit was man anfängt. Grade JavaScript halte ich da (wegen fehlender Typisierung) für schlecht. Oder Pascal (groß/kleinschreibung egal). C# ist ungunstig für plattformübergreifend (GUI). JAVA/C# gehen nicht für Treiber oder Echtzeitanwendungen oder schnelle Spiele.
 
@cptdark: Naja wenn du so anfängst dürfte niemand mit irgend einer Sprache anfangen, weil jede Sprache so ihre eigenen Probleme hat.

Trotzdem ist der TIOBE Index wichtig als Einschätzung, wo überhaupt ein Markt herrscht. Das heißt nicht, dass man mit den Plätzen 1 und 2 anfangen sollte Programmieren zu lernen.

Um Programmieren zu lernen sollte es nur eine möglichst vollständige Sprache sein, keine Scriptsprache wie JavaScript, da hast du Recht. Aber es ist wurscht ob C, C++, C#, Java oder ähnliches.
Viel wichtiger ist es die Konzepte hinter den Programmiersprachen zu verstehen, denn dann kommt irgendwann der Punkt an dem man eine Programmiersprache nicht mehr "lernen" muss, sondern nur noch die Syntax der Programmiersprache.

Ich konnte nach Abschluss meines Studiums kein Wort JavaScript oder Smalltalk, beides muss ich heute beruflich einsetzen und es funktioniert wunderbar. Auch wenn ich hin und wieder ein bisschen "Syntax-Sugar" entdecke. Die Grundkonzepte sind überall gleich, wenn auch mit Unterschieden...
 
@cptdark: Klar kann ich das, ich kann alles mit einander vergleichen, ich kann JavaScript auch mit einem Baum vergleichen, das eine ist eine Programmiersprache, die vor allem im Bereich des Webs zu finden ist, das andere eine Pflanze, die sich gut im Garten macht ... was du alles für unmöglich hälst :)
 
@klarso: Aber du kannst die nicht in die selbe Statistik aufnehmen.
 
@cptdark: doch klar kann ich das.
 
@klarso: Bist du auch einer derjenigen, die statistiken "verbessern" ?
 
@cptdark: Und wie kommst du darauf das man mit C++ keine Webseite schreiben kann? Oder mit JavaScript keine Desktop-Anwendung?
 
@Minty_Insurrect: Weil du z.B. für JavaScript zumindest einen Browser o.ä. zum ausführen brauchst - und das ist für mich keine Desktopanwendung sondern maximal ein Applet.
Ja, mit C++ könnte man eine Webseite machen (CGI) - aber das ist sowas von out mittlerweile.
 
@cptdark: Für dich scheint vieles so zu sein, wie es nicht der Tatsache entspricht. Beispielsweise verwendet Gnome 3 JavaScript zur Ausführung von Desktopanwendungen. Die Gnome Shell selbst ist in C und JavaScript geschrieben. Und C++ ist auch nicht "out" zur Erstellung von Webseiten, Das kompilieren von z.B. PHP/JS(serverbasiert)-Code zu C++ ist ein beliebtes Mittel zum obfuscaten von Server-Code.
 
@cptdark: Du brauchst einen Compiler der JavaScript in Maschinencode übersetzt (wie Compiler das nunmal machen). Das geht mit nahezu jeder Programmiersprache, auch mit JavaScript. Ohne Browser. Ob da jemand einen Compiler für schreibt und ob das überhaupt Sinn macht ist eine andere Frage.

Und wenn eine "Webseite" groß genug wird, dann ist C++ quasi Pflicht im Backend, wenn man nicht mit Serverfarmen enden will die den halben Planeten umspannen.

PHP wird außerdem ohnehin auf dem Server interpretiert, der Client sieht nur das Ergebnis. Mit entsprechendem Modul für den Server kann man das auch ganz ohne CGI mit C++, und auch Basic wenn man unbedingt will, machen. Da muss man sich nur selber hinterklemmen, weil ich nicht glaube das solche Module "in the wild" existieren. Obwohl das auch sein könnte, ich hab nicht speziell danach gesucht.
 
@Minty_Insurrect: "Du brauchst einen Compiler der JavaScript in Maschinencode übersetzt". Falsch! JavaScript-Code wird zur Laufzeit von einer entsprechenden Laufzeitumgebung (Engine / VM) interpretiert. Chrome nutzt dazu V8, der IE Chakra und Firefox SpiderMonkey.
 
@Kaldoran: Ähh... Man kann eine Sprache immer interpretieren oder kompilieren... Man kann ohne weiteres einen Compiler für Javascript schreiben.
 
@Minty_Insurrect: Das mag sein, aber deine Aussage ist zu allgemeingültig und daher nutzlos. Interpretierte Sprachen können zur Laufzeit optimiert werden. Ein Sprache die von einem Compiler einmal in Maschinencode übersetzt und dann von der CPU ausgeführt wird, kann dies nicht.
 
@Kaldoran: Ich versteh nicht was das damit zu tun haben soll das man JavaScript zu einem Desktopprogramm kompilieren kann, wenn man denn will. *schulterzuck*
 
@Minty_Insurrect: Sicherlich kann man es kompilieren, sofern dafür irgendjemand einen Compiler baut. Leider werden damit aber einige Sprachfeatures nicht mehr funktionieren oder hohe Performanceeinbrüche haben, die Typenlosigkeit z.B. oder der GarbageCollector.
Ich sage nicht, das es nicht machbar ist, aber eine Scriptsprache ist zur Interpretation konzipiert und daher nicht Zwangsweise statisch kompilierbar.

Dumm nur, das CGI das Interface vom Webserver zum C++-Programm dann ist. Also ohne wirst du wohl nichts machen können (außer du schreibst den Webserver selber und baust andere Schnittstellenmethoden ein).

Und das große Websites Binaries einsetzen statt php ist klar, sah man bei ebay z.B. ja öfters das da mal ne dll aufgerufen wurde (Adresszeile). Hängt halt auch davon ab, was für Performance bzw Sicherheit nötig ist.
 
@cptdark: Wt (Witty) z.B. bringt einen eigenen stand-alone Http(s)/WebSocket Server mit. Oder lässt sich per FastCGI halt an andere anbinden. Wer C++ für Web-Entwicklung nutzen möchte, kann das problemlos damit tun. Verhält sich bei POCO und CppCMS ähnlich.

Das es nicht üblich ist, ist schon klar. Aber unmöglich oder absolut unpraktikabel ist es nicht. Nur nicht Standard.

Und klar ist es nicht unbedingt sinnvoll eine Scriptsprache zu kompilieren. Allerdings ist ein GC ohnehin selten nötig und ein Komfortfeature. Man kann auch selbst Objekte zerstören wenn man sie nicht mehr braucht, oder neu anlegen wenn man sie wieder braucht... Eine art Typenlosigkeit gabs auch in VB6 (Variant-Datentyp), auch nicht unbedingt unmöglich. Man müsste sich schon den Gegebenheiten und Erfordernissen anpassen wenn man JavaScript kompilieren will (Oder einfach JScript.NET verwenden, auch wenns nicht ganz das gleiche ist).

Aber das ist ja nichts unübliches im Bereich von Programmiersprachen.
 
@Minty_Insurrect: VB6 hat meines Wissens keinen nativen Code erzeugt, sondern ähnlich JAVA auch nur Zwischencode der interpretiert wurde, da geht variant dann natürlich. Was aber ginge, wäre eine union, also eine Struktur in der jede Variable den selben Speicherplatz belegt. Allerdings müsste diese dann noch "Buch führen", welcher Typ grade gespeichert ist, und den bei Benutzung entsprechend konvertieren.

Ein GC ist (finde ich persönlich) eigentlich Unsinn und eine Performance-Bremse. Zumal ich nicht mal weiss, wann genau ein Objekt wirklich zerstört wird und freigegeben wird. In JAVA z.B. gibt (vielleicht hat sich das ja geändert) es keinen echten Destruktor wie z.B. in C++ oder ObjectPascal, von dem ich genau sagen kann, wann er aufgerufen werden wird.
Sicherlich ist ein GC an einigen Stellen nicht zu verachten, aber er verleitet auch dazu mit dem Speicher sorglos umzugehen.

Und machbar ist vieles, manches mit ein paar Makros, manches mit umwegen. Selbst rudimentäres OOP ist mit einer Prozeduralen Sprache machbar.
 
@cptdark: Ab VB5 konnte man sowohl zu P- als auch zu Native-Code kompilieren.

Aber mir gings ja auch nur um reine Machbarkeit... JavaScript zu kompilieren wäre zwar nicht gerade das sinnvollste, aber gerade C++ innerhalb der Webentwicklung hat durchaus seine Berechtigung :)
 
Ich find JavaScript garnicht so schlimm, nur CSS ist halt ein Krampf und zieht dann halt die Laune in den Keller. Am liebsten programmier ich aber in C#, freu mich immer wenn ich damit was machen darf.
 
Ich verstehe nicht, warum auf Platz 16 und 17 beides mal Visual Basic zu finden ist. Kann mir da bitte jemand helfen?
 
@weißesnicht: Das eine ist Visual Basic .NET, das andere ist Visual Basic Classic (Visual Basic 6 ist die letzte Classic-Version). .NET und Classic unterscheiden sich ziemlich stark voneinander, vor allem weil .NET "echte" Objektorientierung mitbringt und Classic nicht.
 
@weißesnicht: Ich gehe von folgender Unterteilung aus. Visual Basic.NET ist die Version die mittels Visual Studio programmierbar ist und u.A. eigenständige Anwendungen erzeugen kann. Visual Basic könnte die Makrosprache von MS Office sein, eigentlich sollte man die als VBA bezeichnen, VBA taucht aber auf tiobe-index nirgends auf, auch unter "The Next 50 Programming Languages" nicht. Obwohl ich schätze, dass einiges mehr in VBA programmiert wird als mit Exoten wie Modula-2 oder Erlang. Kann natürlich auch sein, das mit Visual Basic, die Versionen vor 2002 gemeint sind und VBA gar nicht aufgeführt wird. Allerdings sind da durchaus einige Nicht-Eigenständige Programmiersprachen aufgeführt, also schließe ich das eigentlich aus. Auf der tiobe Seite wird da leider nicht drauf eingegangen oder ich habe es nicht gefunden.
 
@weißesnicht: OHH habe es doch auf tiobe gefunden:
Visual Basic .NET: Visual Basic .NET, VB.NET, Visual Basic.NET, Visual Basic (confidence: 50%), VB (confidence: 50%)
Visual Basic: Visual Basic (confidence: 50%), VB (confidence: 50%), VBA, VB6

In order to filter out false positives, two mechanisms are used. First of all a confidence is defined for a language. By default the confidence is 100%, but for some difficult search queries such as "Basic Programming", the confidence will be lower.
 
ich mag java als solches nicht..java is ehr für daus und anfänger.... gutes altes c++ (nicht den ms kram)...aber richtig programieren können nur noch wenige...ohne ihre net oberfläche oder so kann kaum noch jemand programieren...mit reinem code meine ich.
 
@anon_anonymous: "Profis" machen das in ASM und nicht in irgendwelchen High-Level Programmiersprachen. High-Level Programmiersprachen wie C/C++, BASIC und Java sind nur für faule die nicht einzeln für jede CPU programmieren wollen.
 
@Minty_Insurrect: Oder für welche die größeres im Sinn haben und nicht Monate damit zu bringen wollen popelige Funktionen zu schreiben.

Und wenn es dann halt an einigen Stellen wirklich performancekritisch wird, kann man immer noch tiefer runter gehen und die Maschinenbefehle optimieren. Aber die Hochsprachen mit ihren ganzen eingebauten Funktionen und Bibliotheken wie Java und C# haben durchaus ihren Sinn.

Wie lange brauchst du um eine GUI zu bauen mit reinem C++ oder gar ASM?
 
@Draco2007: Ich dachte den Sarkasmus erkennt man gut... Hab ich wohl zu wenig reingepackt... ;)
 
@Minty_Insurrect: Vermutlich, siehs einfach so, dass es eher an den OP ging als an dich. Bei dem vermute ich keinen Sarkasmus ^^
 
@anon_anonymous: Was heißt bei dir "reinem Code"? IDE ohne Hilfsfunktionen wie Intelli-Sense beim Visual Studio?
Das hat seinen Grund wieso das genutzt wird.

Genauso wie es einen Grund hat Bibliotheken für GUIs und ähnliche Sachen zu benutzen um nicht bei jedem Projekt das Rad neu erfinden zu müssen. Aber das sind dann ja Daus und Anfänger...
Kommentar abgeben Netiquette beachten!

Video-Empfehlungen

WinFuture Mobil

WinFuture.mbo QR-Code Auch Unterwegs bestens informiert!
Nachrichten und Kommentare auf
dem Smartphone lesen.

Folgt uns auf Twitter

WinFuture bei Twitter

Interessante Artikel & Testberichte

WinFuture wird gehostet von Artfiles

Forum