Warum werden HTML, CSS und JavaScript nicht für Desktop-Apps verwendet? [geschlossen]

17

HTML, CSS und JavaScript können verwendet werden, um schöne (und nützliche) Benutzeroberflächen zu erstellen (insbesondere jetzt haben wir HTML5 und CSS3), und viele Leute kennen sie bereits. Obwohl es immer noch weit außerhalb meiner Reichweite liegt, wie schwierig kann es sein, die gesamte Web-App auf Desktop-Apps zu bringen? Wir testen bereits Apps auf unseren lokalen Servern, bevor wir sie hosten.

Meiner Meinung nach ist es eine nette, einfache Idee, die einen Boom bei Desktop-Apps auslösen wird. Da diese Apps bereits so viel Code mit Web-Apps teilen, können sie möglicherweise eine bessere Konnektivität bieten.

Warum wird es nicht gemacht?

kapv89
quelle
15
Wurde dies nicht gerade als Windows 8 angekündigt?
ChrisF
sry, nicht viel von einem Windows-Enthusiasten, was ich genau fordere, ist ein Open-Source-Framework für die Entwicklung von db-basierten Desktop-Apps, die eine Verbindung zum Netz herstellen können, und ja, endlich etwas wegweisendes von ms
kapv89
Warum wird Papier nicht zum Bau von Autos verwendet? (Ja, es ist Zeit für schlechte Analogien :))
Haylem
@ChrisF Hat das jemals für Windows 8 geklappt oder war es nur ein Hype?
Developerwjk

Antworten:

30

Adobe hat dies bereits mit Adobe Air und Mozilla auch mit Prism getan . Google hat auch versucht, die Lücke zwischen Desktop und Web mit Google Gears zu schließen .

Im Allgemeinen sind Webtechnologien jedoch nicht für viele Arten von Desktop-Anwendungen geeignet. Hier einige Gründe, warum:

  • Kein sofort verfügbarer vollständiger Hardwarezugriff.
  • Kein niedriger Systemzugriff.
  • Kein leicht zugänglicher Dateisystemzugriff (mit den oben genannten Technologien können Sie auf fs zugreifen, aber jeder von ihnen als eigene Lösung).
  • Performance. Eine native, kompilierte Anwendung ist im Allgemeinen schneller als eine Javascript-Anwendung.
  • Für einen Konkurrenten ist es einfach, den Quellcode zu stehlen
  • Keine Bibliotheken für spezielle Aufgaben verfügbar. Ex. Bildverarbeitung, Tonkodierung, Datenbankzugriff, Netzwerkprogrammierung usw.
Trasplazio Garzuglio
quelle
Fairerweise benötigen nicht alle Anwendungen Vollhardware oder Low-Level-Zugriff. VM-Sprachen wie Java funktionieren ohne diese Art von Zugriff sicherlich gut
TheLQ
6
Kennen Sie viele Java-Desktopanwendungen?
Yoni Roit
Was ist mit Javascript auf Googles v8, ich habe es sehr schnell gelesen (so schnell wie Java), ich kann den Unterschied selbst sehen, wenn ich eine schwere js-Animation in Chrome und anderen Browsern starte. Und mit dem Anwachsen von APIs für HTML5 bringt JS wirklich viel auf den Tisch. Mit dem Canvas-Material können Sie Bilder bearbeiten und all das. Ich glaube also nicht, dass JS wirklich so schlechte Tools als Plus hat. Es ist eher eine funktionale Programmiersprache (Funktionen sind erstklassige Objekte)
kapv89
1
Ich habe
3
@YoniRoit: Eklipse, Vuze, mein Apothekerbestellsystem ...
haylem
2

Das Framework, an das ich denke, ist Adobe Air. Es ermöglicht Webentwicklern, Javascript / HTML zur Entwicklung von Desktop-Anwendungen zu verwenden. Javascript / HTML allein ist nicht für Desktop-Anwendungen geeignet, da eine Desktop-Anwendung häufig Zugriff auf vom Betriebssystem bereitgestellte Dienste benötigt, z. B. das Öffnen von Dateien, das Starten anderer Anwendungen usw. Der Zugriff auf solche Dienste ist mit Javascript allein nicht möglich Sie benötigen also etwas Zusätzliches und Frameworks wie Adobe Air sorgen für zusätzlichen Klebstoff.

davidk01
quelle
1

Es gibt jetzt verschiedene Möglichkeiten, dies zu tun. Es gibt das Mozilla Application Framework, das häufig von Webbrowsern wie Firefox verwendet wird, aber beispielsweise auch von der Komodo IDE von ActiveState .

Es gibt auch Qt, das in Qt Quick CSS und eine Javascript-ähnliche Sprache hat.

Andrew Dalke
quelle
Nizza
1

IMO, ich verwende HTML und CSS nicht als Möglichkeit, GUIs zu gestalten, da es für diese Sprachen keinen mir bekannten Compiler gibt. Wenn ich einen Fehler im Code habe, muss ich selbst danach suchen, oder ich kann ihn gar nicht bemerken (oder auf die HTML-Site gehen, um ihn zu testen).

In c ++ mag ich, dass es mich nicht kompilieren lässt, wenn der Code nicht korrekt ist (mit Ausnahme von Laufzeitproblemen).

Ich glaube auch nicht, dass CSS und HTML noch sehr gut zusammenspielen, wie zum Beispiel die Verwendung von float in CSS - abhängig von Ihrem HTML-Code und der Verwendung - das Ergebnis von float wird unterschiedliche Ergebnisse haben - ein Mangel an Konsistenz im Vergleich zur Verwendung der absoluten Positionierung in win32 oder die tollen Java Swing Layout Manager.

user14321
quelle
3
HTML- und CSS-Validatoren, die im Grunde das tun, was Ihr C ++ - Compiler tut: Syntaxprüfungen und Typprüfungen. Ich glaube, dass einige leistungsstarke IDE mit solchen Validatoren kommen.
Arnaud Le Blanc
1
Im Bereich der Positionierung verfügt CSS auch über eine absolute Positionierung und HTML5 über weit mehr als die Layout-Manager von Swing. Bei einigen Editoren können Sie Ihre GUI auch WYSIWYG-artig gestalten.
Arnaud Le Blanc
0

Ein wichtiger Grund ist, dass Sie, wenn Sie nicht möchten, dass Ihre App einfach gestohlen und kopiert wird, auch eine Anwendung erstellen müssen, die ein WebControl enthält, das in irgendeiner Weise direkt mit Ihren Dateien verknüpft ist.
In der Tat gibt es Anwendungen, die dies tun. Titan Appcelerator ist einer. Ich empfehle nicht, dass Sie es verwenden, weil es beim letzten Mal voller Fehler war und schlecht unterstützt wurde. Sie müssen Ihre eigenen Nachforschungen anstellen, ob es sich lohnt.

James P. Wright
quelle
0

Etwas zu spät, aber wenn Sie AsYouWish in Firefox verwenden (oder Firefox-Add-Ons erstellen, wenn Sie keine Lust haben, Ihre Dateien zu komprimieren und mit ihren Tools zu testen), können Sie Apps in HTML erstellen, die über Desktop-Berechtigungen verfügen. Wenn Sie WebAppFind verwenden (derzeit nur Windows), können Sie Desktop-Dateien auch direkt vom Desktop in eine Web-App öffnen (ohne Drag & Drop).

Haftungsausschluss: Diese (Open-Source-) Add-Ons wurden von mir erstellt.

Brett Zamir
quelle
1
Sie müssen Ihre Zugehörigkeit zu dem von Ihnen beworbenen Produkt offenlegen.
Rob W
0

Sie können Javascript, HTML und CSS verwenden, um Apps für den Windows Store, Windows Phone und - ich nehme an - XBox über "Universal Apps" zu erstellen. (Um es klar zu machen, starten Sie in Visual Studio mit Datei | Neues Projekt ...)

Hiermit erstellen Sie Ihr UX und den Anwendungscode anhand einer Implementierung der nativen APIs.

Natürlich wurde dies nicht als Versuch von Microsoft angesehen, die Plattform für mehr Entwickler zu öffnen, sondern als Ablehnung von C # - und XAML-basierten Entwicklern angesehen - was natürlich nicht der Fall war, aber das ist bei weitem keine so gute Geschichte ... egal wie lange Dies sind nicht unbedingt die Arten von Desktop-Apps, die die Frage für nativ hält.

Murph
quelle