Zitat: Ich habe auch nicht wirklich herausgefunden, was das überhaupt ist.
Sorry, ich will nicht für Verwirrung sorgen, aber ein bischen Spaß muß sein.
Ich habe früher etwas Delphi/Pascal gelernt, an dieser Sprache fande ich toll, außer das ich sie halt etwas gelernt habe, das alles ziemlich "eindeutig" ist. Als ich zu php kam war es zunächst sehr seltsam, z.B. das Vaiablen sich ganz "automatisch" typisieren.
In der realen Marktwirtschaft kommt es halt dazu das bestimmte Sprachen gehäuft verwendet werden und man diese mehr oder weniger zwangsläufig beschäftigt.
Wenn ich jetzt sage ich entwickle in PHP/javascript oder gar HTML, kommen Leute und behaupten das sind keine richtigen Programmiersprachen, wo sie auch teilweise recht haben.
Aber da wird mir die Sache zu philosophisch, außerdem bin ich kein Mathegenie.
Aber ich denke auch, als "Anwendungentwickler" muß ich nicht unbedingt eine Webseite in Brainfuck schreiben können.
In der konkreten Anwendung um die es geht handelt es sich um eine nw.js Anwendung.
Ich bin der Typ, der dabei Linq und eine javascipt php VM mit einbaut/runterlädt, einfach mal um es zu testen.
Da es mir hier darum geht (s.o.) möglichst plattformunabhängig zu coden, muß ich mich eigentlich von der Vorstellung eine bestimmte Sprache zu verwenden abwenden, mich faszinieren Standards und Protokolle.
Wenn ich meinen eigenen CL Interpreter schreibe habe ich im Prinzip eine "eigene Sprache", welche allerdings interpretiert werden muß und nicht in einer bestimmten Kompilation vorliegt.
Als Superheld bin ich schon angelangt bei
Ich habe mich noch nie richtig mit C beschäftigt, was eigentlich sehr untypisch ist.
Der Witz bei FRDL ist ganz einfach, das es meine .de Domain ist, und da es ansonsten nur Spekulationen darüber gibt was die Bedeutung dieser vier Buchstaben ist, habe ich ganz einfach beschlossen, es wäre ein verdammt cooler Name für eine Sprache, es ist sogar ein L am Ende.
Kurzum, frdl ist das reinste Babylonisch.
Zitat:Ein klassischer Kandidat für Cross-Platform-Anwendungen wäre halt Java.
Ja aber auf java stehe ich irgendwie nicht so, kann ich auch nicht so. Und der User muß das Runtime Environment installiern, jedenfalls war es mal so (?).
Es ist ja nicht so als würde es keine plattformunabhängigen "Sprachen" geben, es ist nur so, das unter manchen Systemen man diese komischen .akp Manifeste und Anbietergebundenheiten hat.
Das W3C macht eigentlich ganz klare Beschreibungen z.B. über das WebApp Manifest.
Dabei geht eigentlich, im Anfang, nur um eine .json Datei welche in einem HTML Dokument referenziert wird.
Wo ist dabei das Problem fragt man sich? Es fängt schon damit an, das es unter den verschiedenen Anbietern verschiedene Vorstellungen darüber gibt, wann so ein Manifest valide ist.
Völlig unnötig.
Erst wirbt die Industrie damit, das es heutzutage viel cooler sei eine "App" zu haben, anstatt nur eine Webseite, und dann tut sie alles dafür, das auch jeder möglichst seine eigene Schiene fährt und man bei der Entwicklung auch ja an einen bestimmten Anbieter gebunden ist.
Sorry, ich bin jetzt etwas abgesschweift, werde also bald mal eine Inno Setup Datei zum testen bereitstellen, muß grad nur noch ein paar Bugs...
Wer Lust und Zeit hat kann es bis dahin auch selber testen und vielleicht sagen ob es grundsätzlich geht oder nicht unter MAc/Linux, Inno Setup Script:
Code:
[_]
SCRIPTNAME=$1
INNO_BIN="Inno Setup 5/ISCC.exe"
;[ -z "$SCRIPTNAME" ] && { echo "Usage: $0 <SCRIPT_NAME>"; echo; exit 1; }
;[ ! -f "$SCRIPTNAME" ] && { echo "File not found. Aborting."; echo; exit 1; }
command -v wine >/dev/null 2>&1 || { echo >&2 "I require wine but it's not installed. Aborting."; echo; exit 1; }
PROGRAMFILES=$(wine cmd /c 'echo %PROGRAMFILES%' 2>/dev/null)
PROGFILES_PATH=$(winepath -u "${PROGRAMFILES}" 2>/dev/null)
INNO_PATH="${PROGFILES_PATH%?}/${INNO_BIN}"
SCRIPTNAME=$(winepath -w "$SCRIPTNAME" 2> /dev/null)
;[ ! -f "$INNO_PATH" ] && { echo "Install Inno Setup 5 Quickstart before running this script."; echo; exit 1; }
WINEDLLOVERRIDES="mscoree,mshtml=" wine "$INNO_PATH" "$SCRIPTNAME"
#define MyAppName "My.Webfan"
#define MyAppVersion "0.0.41-alpha"
#define MyAppPublisher "Till Wehowski, Webfan.de"
#define MyAppURL "http://webfan.de"
#define MyAppExeName "webfan.exe"
#define MyScheme "web+fan"
#define MyScheme_urn "urn"
#define MyScheme_web_widget "web+widget"
#define MyScheme_web_test "web+test"
# ...
[code]
[Icons]
Name: "{commonprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon
; http://stackoverflow.com/questions/13567119/inno-setup-registry-entry-for-custom-url-protocol
[Registry]
Root: HKCR; Subkey: "{#MyScheme}"; ValueType: "string"; ValueData: "URL:Custom Protocol"
Root: HKCR; Subkey: "{#MyScheme}"; ValueType: "string"; ValueName: "URL Protocol"; ValueData: ""; Flags: deletekey uninsdeletekey
Root: HKCR; Subkey: "{#MyScheme}\DefaultIcon"; ValueType: "string"; ValueData: "{app}\{#MyAppExeName},1"; Flags: deletekey uninsdeletekey
Root: HKCR; Subkey: "{#MyScheme}\shell\open\command"; ValueType: "string"; ValueData: """{app}\{#MyAppExeName}"" ""%1"" ""%2"" ""--web+fan=%1"" ""--gui=browser"""; Flags: deletekey uninsdeletekey
Root: HKCR; Subkey: "{#MyScheme_urn}"; ValueType: "string"; ValueData: "URL:Custom Protocol"
Root: HKCR; Subkey: "{#MyScheme_urn}"; ValueType: "string"; ValueName: "URL Protocol"; ValueData: ""; Flags: deletekey uninsdeletekey
Root: HKCR; Subkey: "{#MyScheme_urn}\DefaultIcon"; ValueType: "string"; ValueData: "{app}\{#MyAppExeName},1"; Flags: deletekey uninsdeletekey
Root: HKCR; Subkey: "{#MyScheme_urn}\shell\open\command"; ValueType: "string"; ValueData: """{app}\{#MyAppExeName}"" ""%1"" ""%2"" ""--urn=%1"" ""--gui=browser"""; Flags: deletekey uninsdeletekey
Root: HKCR; Subkey: "{#MyScheme_web_widget}"; ValueType: "string"; ValueData: "URL:Custom Protocol"
Root: HKCR; Subkey: "{#MyScheme_web_widget}"; ValueType: "string"; ValueName: "URL Protocol"; ValueData: ""; Flags: deletekey uninsdeletekey
Root: HKCR; Subkey: "{#MyScheme_web_widget}\DefaultIcon"; ValueType: "string"; ValueData: "{app}\{#MyAppExeName},1"; Flags: deletekey uninsdeletekey
Root: HKCR; Subkey: "{#MyScheme_web_widget}\shell\open\command"; ValueType: "string"; ValueData: """{app}\{#MyAppExeName}"" ""%1"" ""%2"" ""--web+widget=%1"" ""--gui=browser"""; Flags: deletekey uninsdeletekey
Root: HKCR; Subkey: "{#MyScheme_web_test}"; ValueType: "string"; ValueData: "URL:Custom Protocol"
Root: HKCR; Subkey: "{#MyScheme_web_test}"; ValueType: "string"; ValueName: "URL Protocol"; ValueData: ""; Flags: deletekey uninsdeletekey
Root: HKCR; Subkey: "{#MyScheme_web_test}\DefaultIcon"; ValueType: "string"; ValueData: "{app}\{#MyAppExeName},1"; Flags: deletekey uninsdeletekey
Root: HKCR; Subkey: "{#MyScheme_web_test}\shell\open\command"; ValueType: "string"; ValueData: """{app}\{#MyAppExeName}"" ""%1"" ""%2"" ""--web+test=%1"" ""--gui=browser"" ""--gui=cli"""; Flags: deletekey uninsdeletekey
[/code]