1. #1
    Grünschnabel

    Registriert seit
    31.03.2015
    Beiträge
    41
    Thanked 5 Times in 5 Posts

    Standard Eigene Websprache selber entwickeln oder bereits bestehende erweitern?

    Hallo
    Es gibt werden ja immer neuere Programmiersprachen oder bereits bestehende Programmiersprachen mit mehr Möglichkeiten erweitert.
    Nun frage ich mich, was ein Hacker damit anstellen könnte. Hätte er z.B. aus Absicht eine neue Websprache entwickelt oder PHP mit einer Funktion erweitert, kann man dann diese Erweiterung irgendwie automatisch für ganz Internet verfügbar machen oder tun dies nur die Entwickler von der jeweiligen Programmiersprache?

    Wenn das also nicht ohne deren Einverständnis gehen würde, könnte man dann vilt eine ganz neue Websprache entwickeln, die für alle Betriebssysteme kompatibel ist und dass alle Menschen die Webseite sehen können, die mit neuen Websprache entwickelt worden ist?
    Geändert von Noob (12.06.2015 um 20:50 Uhr)

  2. #2
    Projektleitung
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    4.099
    Thanked 8.521 Times in 2.549 Posts
    Blog Entries
    5

    Standard AW: Eigene Websprache selber entwickeln oder bereits bestehende erweitern?

    Im Fallen von PHP gibt es einen Kern, der von den PHP-Entwicklern ("The PHP Group") entwickelt wird. Der kann durch Module erweitert werden. Die müssen nicht zwingend von PHP selbst kommen. Prinzipiell kann jeder eine Erweiterung entwickeln und anderen zur Verfügung stellen. Ein Beispiel istxcache. Dadurch wird PHP um Caching-Funktionen wie xcache_get() oder xcache_set() erweitert. Automatisch läuft da aber nichts. Wenn man das Modul nutzen möchte muss es manuell installiert werden. Heißt unter Windows beispielsweise die DLL herunterladen, in den Ordner ext (oder eben den Ordner welchen man als extension_dir in der php.ini festgelegt hat) verschieben und über die php.ini aktivieren. Es gibt lediglich einige Module, die zusammen mit dem Kern von PHP ausgeliefert werden. Das sind häufig verwendete Komponenten, die strukturellen Gründen nicht in den Kern integriert werden um ihn nicht unnötig aufzublähen. Die MySQLi bzw. früher MySQL-Erweiterung zählt unter anderem dazu.

    Um da irgendwas zu manipulieren müsstest du eine PHP-Erweiterung entwickeln, die vom Opfer installiert und aktiviert werden muss. Automatisch irgendetwas verfügbar machen geht allerhöchstens dann, wenn du die PHP-Entwicklercommunity kompromittierst und ein manipuliertes Release auf der offiziellen Homepage veröffentlichst. Das dürfe aber nicht gerade einfach sein und wird wohl auch nicht lange unentdeckt bleiben.

    Den letzten Absatz verstehe ich allerdings noch weniger als den Beitrag im Kontext der Frage. Klar kannst du eine neue serverseitige Sprache entwickeln. Das gibt aber verdammt viel Arbeit wenn die an das Niveau von PHP herankommen soll. Erst Recht wenn auch noch Kompabilität für alle Systeme angestrebt ist. Zumal das ganze natürlich in C geschrieben wird, im besten Fall noch C++. Da PHP Open Source ist kannst du dir ja selbst anschauen welchen Umfang das ganze hat: php @ github. Nur warum sollte man das tun? Es gibt so viele serverseitige Sprachen und Frameworks: PHP, ASP.NET, JSP, Perl, Python, Ruby und so weiter. Dazu noch recht neue Alternativen wie Node.js, die technisch einen etwas anderen Weg gehen. Was macht deine also besser als die vorhandenen Lösungen, in denen 15 bis knapp 30 Jahre Erfahrung stecken?

    Eine solche Eigenentwicklung dürfte in den wenigsten Fällen Sinn machen. Was vielleicht noch eine Option wäre ist glänzlich auf Scriptsprachen und andere Zwischenschichten zu verzichten und stattdessen direkt in C zu entwickeln. Da musst du dich dann aber um alles selbst kümmern und der einzige Vorteil wird aus einer etwas besseren Performance bestehen - Wobei auch das nur bei erfahrenen C-Programmierern der Fall sein wird. Unter C hast du ja keinen Garbage-Collector und nix. Als ungeübter Entwickler haut man da schnell Speicherlecks und ähnliches rein, oder entwickelt C Programme die langsamer laufen als vergleichbarer Java/C# Code. In diesem Bereich zu denken macht Sinn wenn man eine Webanwendung wie Facebook betreibt, bei der 1MB weniger verbrauchter Speicher pro Anfrage mal eben ein Rechenzentrum weniger und damit etliche tausend Euro Einsparung bedeuten. Selbst Facebook hat allerdings nicht damit angefangen sondern PHP als Grundlage genommen und angepasst. Beispielsweise mit statischer Typisierung (also fast dem Gegenteil von PHP) und aus .NET bekannte Technologien wie Lambda oder Collections. Dazu noch diverse Optimierungen, um die Sprache performanter als PHP zu gestalten. Ist übrigens OpenSource und kann unter dem Namen Hack kostenfrei heruntergeladen werden.

    Mit PHP-Erweiterungen selbst sieht es übrigens ähnlich aus. PHP hat schon einiges mit an Board. Für das was fehlt gibt es meistens bereits Module oder Libraries. Ich arbeite schon seit längerem u.a. mit PHP und habe bisher noch nie die Notwendigkeit gesehen, eine Erweiterung zu entwickeln. Entweder nutzt man ein Framework oder entwickelt sich selbst eine Art Micro-Framework bzw. Toolkit dass man bei entsprechendem Design auch in anderen Projekten wiederverwenden kann, damit lässt sich schon einiges anfangen. Wirklich interessant werden PHP-Erweiterungen für neue Funktionen die sich nicht mit PHP selbst realisieren lassen weil man dazu eine Ebene höher gehen muss. Caching ist ein gutes Beispiel dafür: Mit PHP selbst kann man nichts persistent in den RAM legen, weil der Garbage-Collector aufräumt. Hier macht eine Erweiterung sinn, die Request-Übergreifend Speicher für den Cache reserviert, auf den von jedem Request aus zugegriffen werden kann.


  3. The Following User Says Thank You to DMW007 For This Useful Post:

    qmiq (12.06.2015)

  4. #3
    U-Labs Routinier
    Avatar von qmiq
    Registriert seit
    10.01.2013
    Beiträge
    456
    Thanked 149 Times in 117 Posts

    Standard AW: Eigene Websprache selber entwickeln oder bereits bestehende erweitern?

    Wenns mal so einfach wäre. Die "websprachen" werden entweder zentral entwickelt oder sind open source. In beiden Möglichkeiten kannst du also gar keine "Schadsoftware" wirklich etablieren. Genauso wenig kannst du einfach eine neue Sprache "erfinden". Wenn das gehen würde, hätte vermutlich jede Seite eine eigene. Das Problem sind ja zum einen die Komplexität, zum anderen aber die simple "Lesbarkeit". Das müsste erst mal jeder Browser fehlerfrei unterstützen und es müsste dann noch "besser" sein als bisherige Modelle.
    - But shit, it was 99 cents! -

  5. #4
    Projektleitung
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    4.099
    Thanked 8.521 Times in 2.549 Posts
    Blog Entries
    5

    Standard AW: Eigene Websprache selber entwickeln oder bereits bestehende erweitern?

    Mit den Browsern hat das nichts zutun. Serverseitig wird ja letztendlich nur HTML generiert und an den Browser ausgeliefert. Ob da nun PHP, JSP, Python oder sonst was als Backend dahinter steckt macht für den Browser keinen Unterschied.
    In PHP gibst du eine dynamische Überschrift mit
    PHP-Code:
    $name 'Peter';
    printf('<h1>Hello %s</h1>'$name); 
    aus und in Python sieht das so aus:
    Code:
    name = 'Peter'
    print "<h1>Hello %s</h1>" % name
    Der Browser bekommt in beiden Fällen
    HTML-Code:
    <h1>Hello Peter</h1>
    als Antwort. Die browserübergreifende Kompatibilität wird mit HTML/CSS hergestellt. Wobei das heutzutage dank Standardisierung bereits relativ gut funktioniert, selbst die browserspezifischen Präfixe sind nicht mehr nötig. Wenn man sich überlegt was für ein Chaos z.B. die alten Internet Explorer Versionen verursacht haben für die praktisch immer eine Extrawurst nötig war, teilweise sogar pro Version... Einige arme Entwickler werden ja insbesondere bei größeren Seiten noch heute dazu verdonnert, sie kompatibel mit Museumsstücken wie dem IE6 zu gestalten. Zum Glück ist XP seit über 1 Jahr EOL und nimmt langsam an Verbreitung ab, sodass diese uralten IE-Versionen langsam aber sicher endlich aussterben. Bei den neueren hat sich ja einiges zum Positiven entwickelt. Eine Wende um fast 180° verglichen mit Früher als "du IE Nutzer" noch eine Beleidigung war Microsoft hat sich nicht ohne Grund dazu entschlossen, den Internet Explorer einzumotten und stattdessen mit Windows 10 einen neuen Browser mit unbeschmutztem Namen zu veröffentlichen


  6. The Following User Says Thank You to DMW007 For This Useful Post:

    qmiq (13.06.2015)

  7. #5
    U-Labs Elite

    Registriert seit
    02.01.2013
    Beiträge
    881
    Thanked 456 Times in 312 Posts

    Standard AW: Eigene Websprache selber entwickeln oder bereits bestehende erweitern?

    Die Eingangsfrage ist leider so verworren, daß man gar nicht weiß, was der Fragesteller eigentlich meint. Ich vermute, hier liegt ein Fall vor, bei dem die grundlegensten Kenntnisse, wie das Web überhaupt funktioniert, schon nicht vorhanden sind.

    Es gibt ja massenhaft Programmiersprachen, und es ist auch kein Problem, eine neue Sprache zu erfinden und zu entwickeln (wenn man das notwendige Know-How hat), und man kann auch diese Sprachen anderen Leuten bekannt machen, sodaß die die nutzen (wenn sie die Sprache nützlich finden).

    Was das Web angeht, so muß man die Sprachen in zwei Kategorien einteilen (wie DMW007 andeutete): Sprachen, die im Browser ausgeführt werden, und Sprachen, die auf dem Server ausgeführt werden. Eine Sprache, die der Browser ausführt, kann man nicht einfach mal so erfinden... denn die Browserprogrammierer müssten ja die Sprache im Browser implementieren. Eventuell kann man auch selber dann ein Browser-Addon für diese Sprache schreiben, aber dann müsste man die Menschen dazu bewegen, dieses Browser-Addon zu installieren. Es wird aber niemand ein solches Addon installieren, wenn es keine Server gibt, die in den HTML-Seiten Programmcode einer von Dir erfundenen Sprache enthält. Die Menschen würden das Browser-Addon erst installieren, wenn es viele Websites mit Seiten gibt, die deine Sprache enthalten... aber es wird niemand auf seinen Websites Seiten mit dieser Sprache liefern, wenn es kaum jemanden gibt, der das Browser-Addon hat. Also praktisch wird es kaum möglich sein, hier auf die Schnelle eine große Verbreitung deiner Sprache hinzubekommen.

    Die andere Kategorie des Einsatzes ist Serverseitig (wie etwa php). Da kannst Du natürlich auch erfinden, was Du willst, wirst es aber erstmal nur auf Deinen eigenen Servern einsetzen können. Auf anderen Servern wird Deine neue Sprache erst dann Verbreitung finden, wenn die Betreiber der Websites irgendwelche Vorteile durch den Einsatz dieser Sprache sehen. Dazu müsstest Du auch erstmal eine große Werbekampagne starten, in der Du diese Vorteile anpreist. Auch recht schwierig... Die Browser sind in diesem Fall egal, weil, wie DMW007 schon sagte, im Falle serverseitiger Sprachen an den Browser nur HTML geliefert wird.

  8. The Following 2 Users Say Thank You to freulein For This Useful Post:

    DMW007 (13.06.2015), qmiq (13.06.2015)

Ähnliche Themen

  1. Antworten: 55
    Letzter Beitrag: 30.06.2019, 15:15
  2. Steht der eigene Todestag bereits fest?
    Von TomatenKetchup im Forum Zwischenmenschliches
    Antworten: 25
    Letzter Beitrag: 22.03.2015, 23:24
  3. ISO erweitern / kürzen
    Von Thanathos im Forum Digitale Bild- und Videobearbeitung
    Antworten: 4
    Letzter Beitrag: 16.11.2014, 18:04
  4. [PHP] Performantes Entwickeln
    Von DMW007 im Forum PHP
    Antworten: 14
    Letzter Beitrag: 22.10.2012, 23:31
  5. Film Sammlung erweitern
    Von Snees im Forum Filme, Serien und TV
    Antworten: 2
    Letzter Beitrag: 08.10.2012, 15:02
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191