Roadster: Gedanken eines Laien...

Hallo miteinander!

Als jemand, der weder Informatik studiert hat, noch sonst über nennenswerte Kenntnisse auf diesem Gebiet verfügt, muss ich sagen, dass mir seit einiger Zeit ein paar grundsätzliche Gedanken durch den Kopf gehen, zu denen ich nur zu gerne einmal etwas gehört bzw. gelesen hätte von Leuten, die wirklich Ahnung davon haben!

Der Stein des Anstoßes war dabei mein Webseiten-Projekt, dass ich parallel zu meinem eigentlichen Studium verfolge:

Während ich mich mehr oder weniger fröhlich zwischen meinen Editorfenstern hin und her geclickt habe, in denen HTML, CSS und JavaScript zu bearbeiten und zu organisieren sind, hat sich mir der Gedanke förmlich aufgedrängt, dass es doch bedeutend einfacher wäre, wenn man statt in drei, sich inhaltlich überlappenden, die Schwächen der jeweils anderen ausgleichenden Programmiersprachen, den Code nur in einer einzigen Sprache verfassen müsste!

Mir ist natürlich klar, dass die Situation wie sie ist, schlicht auf die historische und bis heute andauernde Entwicklung auf dem Gebiet zurück zuführen ist, aber nichtsdestoweniger stellt sich für mich als Amateur doch die Frage nach einer neutralen, davon unabhängigen Bewertung. Also die Frage, ob die Situation aus inhaltlichen Gründen, die mir aufgrund meiner Fachfremde verborgen geblieben sind, tatsächlich alternativlos ist, um mal ein Unwort zu bemühen, oder ob es nicht eine lohnenswerte Perspektive gibt oder wenigstens geben sollte, hier für mehr Einheitlichkeit zu sorgen?

Und wenn ich so darüber nachdenke, könnte man den Gedanken ja noch weiter verfolgen und fragen, wozu überhaupt dutzende verschiedene Programmiersprachen, die dauernd hin- und herübersetzt werden müssen, um irgendwie miteinander kompatibel zu sein?

Ich meine, wir reden alle mit Computern, richtig? :)

Nullen und Einsen!

Warum also überhaupt Dateien in unterschiedlichen Formaten abspeichern, die danach erst mühsam auseinandergenommen und wieder zusammengesetzt werden müssen? Wäre es nicht sehr viel effizienter, wenn man den Übersetzungsprozess nur beim Schreiben oder Lesen des Codes durch Menschen bräuchte, und ansonsten alles direkt in einer einzigen Sprache verfasst wäre?

Letztlich ist doch ohnehin alles nur Mathematik! 2+2=4 gilt in jeder Übersetzung, oder nicht?!

Hat es mal einen Versuch gegeben, eine so angedachte universelle Programmiersprache zu entwickeln?

Und falls ja, woran ist es gescheitert? :D

Beste Grüße,

Roadster.

  1. Hallo miteinander!

    Hat es mal einen Versuch gegeben, eine so angedachte universelle Programmiersprache zu entwickeln?

    Zumindest um ein einheitliches und portables Dokumentenformat. Wenn ich mir z.B. anschaue, wie eine PDF aufgebaut ist, frage ich mich auch, warum sowas für einen Browser nicht gehen sollte: Anstelle CSS-Dateien, IMG-Dateien und andere Objekte als weitere Dateien in HTML zu linken ebenda einzubetten. So dass am Ende nur eine Datei vorliegt, deren Inhalt ein Browser so darstellt, wie der Schöpfer das gewollt hat.

    Von einer Programmiersprache wäre das unabhängig, bspw. kannst Du PDF auch mit verschiedenen PLs erzeugen.

    Und falls ja, woran ist es gescheitert? :D

    HTML und dessen Data Object Model ist großartig. Jeder A[gefiltert] kann Seiten in die Welt hecken mit der PL seiner Wahl oder er macht das händisch. In der Entwicklung gibt es keinen Stillstand, immerhin kannst Du schon Grafiken in Base64 als Inline-Grafiken einbetten und das ist noch gar nicht solange her, wo das noch nicht alle Browser konnten. Und guck mal, was sich auf dem MDN seit Jahren tut, Stichwort ArrayBuffer, Blob-URLs. Während andere ihre Doktorarbeiten über Hypermedia-Dateien schreiben, gibt es auch Entwickler, die sich diesem Thema widmen.

    MfG

    1. Hallo hotti!

      Jede Menge Anregungen! Hab mal kurz reingelesen: Das mit den PDFs ist auf jeden Fall mal extrem interessant! Davon abgesehen: Dass Verschiedene Formate mit verschiedenen Sprachen geschrieben werden können, ist im Prinzip logisch, aber als Unwissender hatte ich's nicht mal auf dem Schirm!

      Zweifelos ist die Situation nicht so dramatisch, wie ich mir das ausgemalt habe. ;)

      Thx!

      Roadster

      1. @@Roadster:

        nuqneH

        Das mit den PDFs ist auf jeden Fall mal extrem interessant!

        PDF ist fürs Web hochgradig _un_interessant, da dies ein web_un_taugliches Format ist (keine Anpassung an Gegebenheiten beim Client wie Viewportgröße).

        Qapla'

        --
        „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
      2. Hallo hotti!

        Jede Menge Anregungen! Hab mal kurz reingelesen: Das mit den PDFs ist auf jeden Fall mal extrem interessant!

        Die Idee unter PDF ist genial: eingebettete Schriftarten, eingebettete Bilder, Texte... alles Objekte.

        Isses nicht das wovon ein App-Enwickler träumt? Anstatt ungezählte Dateien in den AppCache zu schicken, wird das Manifest reduziert auf nur wenige Dateien oder gar auf nur noch eine Datei.

        Während andere ihre Doktorarbeiten über HyperMediaDateien schreiben, hab ich hier mal was Diesbezügliches entwickelt: Bilder zusammen mit Texten in einer Datei übertragen und für den AppCache manifestiert.

        Zweifelos ist die Situation nicht so dramatisch, wie ich mir das ausgemalt habe. ;)

        Wir dürfen gespannt sein, was die Zukunft bringt. Eines ist sicher: Schrotthändler gabs schon immer ;)

        MfG

        1. @@hotti:

          nuqneH

          Isses nicht das wovon ein App-Enwickler träumt?

          Apps sind nicht das Web. Außerdem unterscheiden sich insbesondere Androids dermaßen voneinander, dass auch dort so unflexible Formate wie PDF unangebracht sind.

          Qapla'

          --
          „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
    2. Hat es mal einen Versuch gegeben, eine so angedachte universelle Programmiersprache zu entwickeln?

      Zumindest um ein einheitliches und portables Dokumentenformat. Wenn ich mir z.B. anschaue, wie eine PDF aufgebaut ist, frage ich mich auch, warum sowas für einen Browser nicht gehen sollte:

      Äpfel und Birnen …

      Anstelle CSS-Dateien, IMG-Dateien und andere Objekte als weitere Dateien in HTML zu linken ebenda einzubetten. So dass am Ende nur eine Datei vorliegt,

      Das wäre völliger Irrsinn. Amazon hat fünf Millionen Artikelseiten (nur mal als Beispiel aus der Luft gegriffen), sollen die identischen Bestandteile aller Seiten fünf Millionen mal kopiert werden, soll der Browser diese Teile bei jedem Artikel neu runterladen müssen, obwohl er nur die jeweiligen Artikeldaten braucht? Und dies nur, damit alles in einer Datei vorliegt? Das kann nicht dein Ernst sein, mal ganz abgesehen davon, dass vermutlich die meisten Webseiten sowieso nicht als Datei vorliegen, sondern aus Datenbanken zusammengestellt werden, im Web also schon die Grundlage des Ansinnens, die Datei als existierendes Objekt fehlt. Es werden im Web keine Dateien übertragen, es werden Daten übertragen. Wozu also der Umweg über eine Datei.

      Die Auftrennung in einzelne Teile ist angesichts ihrer Nutzung, genauer: ihrer "Anschaffung" und Zusammenstellung vollkommen richtig.

      deren Inhalt ein Browser so darstellt, wie der Schöpfer das gewollt hat.

      Weil das nie der Sinn des Webs war.

      Du vermischt zwei völlig unterschiedliche Anwendungszwecke. PDF ist für Dokumente gedacht, die sich an der Papiernutzung orientieren: Vorgegebenes Ausgabeformat, einmalige und komplette Anschaffung des Inhalts. Unter diesen Voraussetzungen ist es angemessen, a) mit festen Maßen zu arbeiten und b) alles in einer Datei anzubieten.

      Im Web fällst du schon bei der ersten Anforderung auf die Nase, da jeder Benutzer ein anderes Ausgabegerät hat. Es war früher schon unsäglich, wenn mal wieder einer mit "Optimiert für 1024xbla" ankam und bei 800x alles auseinanderfiel – heute ist sowas wegen der ganzen Mobilgeräte völlig abstrus.

      Zweitens sind die Inhalte wie auch die Nutzung des Webs sehr dynamisch, es ändert sich ständig etwas und niemand greift sämtlich Inhalte auf einmal ab, sondern nur nach Bedarf. Du lädst beispielsweise nicht den kompletten Amazon-Katalog runter, sondern nur die Seiten, die dich interessieren. Und selbst, wenn du für jeden Artikel ein einzelnes Dokument anlegst, bleibt immer noch die oben bereits genannte ineffiziente, sinnlose Mehrfachübertragung.

  2. Moin,

    soweit ich deinen Beitrag verstanden habe, sprichst du zwei verschiedene Themenschwerpunkte an: Unterschiedliche bzw. einheitliche Sprachen, und getrennte bzw. zusammengeführte Dateien.

    Während ich mich mehr oder weniger fröhlich zwischen meinen Editorfenstern hin und her geclickt habe, in denen HTML, CSS und JavaScript zu bearbeiten und zu organisieren sind, hat sich mir der Gedanke förmlich aufgedrängt, dass es doch bedeutend einfacher wäre, wenn man statt in drei, sich inhaltlich überlappenden, die Schwächen der jeweils anderen ausgleichenden Programmiersprachen, den Code nur in einer einzigen Sprache verfassen müsste!

    Es geht hier nicht um das Ausgleichen von Schwächen, sondern es geht viel weiter: Jede Sprache ist auf einen bestimmten Zweck spezialisiert, auch wenn vielleicht Schnittmengen geben mag.

    Mir ist natürlich klar, dass die Situation wie sie ist, schlicht auf die historische und bis heute andauernde Entwicklung auf dem Gebiet zurück zuführen ist

    Die historische Entwicklung, die du ansprichst, ist so verlaufen, weil sich das als günstig erwiesen hat.

    Und wenn ich so darüber nachdenke, könnte man den Gedanken ja noch weiter verfolgen und fragen, wozu überhaupt dutzende verschiedene Programmiersprachen, die dauernd hin- und herübersetzt werden müssen, um irgendwie miteinander kompatibel zu sein?

    Man könnte. Und es gibt ja auch einige Programmiersprachen, die recht universell sind. Aber eine Programmiersprache wird nie wirklich als Beschreibungssprache taugen - so wird etwa Javascript nie HTML oder Postscript ersetzen können.

    Warum also überhaupt Dateien in unterschiedlichen Formaten abspeichern, die danach erst mühsam auseinandergenommen und wieder zusammengesetzt werden müssen? Wäre es nicht sehr viel effizienter, wenn man den Übersetzungsprozess nur beim Schreiben oder Lesen des Codes durch Menschen bräuchte, und ansonsten alles direkt in einer einzigen Sprache verfasst wäre?

    Das ist ja weitgehend so.

    Hat es mal einen Versuch gegeben, eine so angedachte universelle Programmiersprache zu entwickeln?
    Und falls ja, woran ist es gescheitert? :D

    Bestimmt hat es solche Versuche schon gegeben. Vermutlich sind sie dann eben daran gescheitert, dass die so geschaffene Sprache für viele Anwendungen nicht ausreichend spezialisiert war.

    Oder denk an Esperanto: An sich eine tolle Idee, eine einheitliche Sprache zu entwerfen, mit der alle Menschen der Welt miteinander kommunizieren können. Sprachbarrieren könnten weitgehend wegfallen! - Durchgesetzt hat es sich aber auch nicht.

    Und zu deinem zweiten Aspekt, Code auf mehrere Dateien zu verteilen oder zusammenzufassen: Ich bin der Meinung, dass eine sinnvoll gemachte Modularisierung viel zur Übersichtlichkeit eines Projekts beiträgt. Abgesehen davon ist es dann leichter, bestimmte Teile (Module) in anderen Projekten wiederzuverwenden.

    Außerdem ist es komfortabler, beispielsweise drei Dateien in drei Editorfenstern getrennt zu bearbeiten, als wenn man in einem Editorfenster dauernd zwischen drei verschiedenen Stellen hin- und herspringen muss.

    So long,
     Martin

    --
    Lieber eine Stumme im Bett, als eine Taube auf dem Dach.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Moin,

      Hallo Martin!

      Es geht hier nicht um das Ausgleichen von Schwächen, sondern es geht viel weiter: Jede Sprache ist auf einen bestimmten Zweck spezialisiert, auch wenn vielleicht Schnittmengen geben mag.

      Das ist ja gerade die Frage! :)

      In meiner naiven Vorstellung bin ich immer davon ausgegangen, dass das eine das andere prinzipiell nicht ausschließt, sprich, dass es für bestimmte Aufgaben eben bestimmte optimale Lösungen bzw. Prozeduren gibt, die nicht miteinander konkurrieren, sondern einer Sprache einfach hinzugefügt werden können.

      Aber das ist vielleicht ein Irrglaube:
      Die deutsche Sprache ist aufgrund ihrer Eigenschaften hervorragend dazu geeignet, Dinge präzise bis in die feinste Abstraktion hinein zu beschreiben, für Poesie und Gesang ist sie hingegen eher weniger geschaffen, anders als etwa die lateinischen Sprachen. Die englische Sprache ist sehr gut dazu Geeignet, komplexe Zusammenhänge möglichst einfach auszudrücken - wofür wir unter Umständen drei Sätze brauchen, reicht den Angelsachsen gegebenenfalls ein Ausdruck, wohingegen das Englische wiederum nicht das Maß an Abstraktion besitzt wie das Deutsche, usw. usw.

      Guter Gedanke!

      Man könnte. Und es gibt ja auch einige Programmiersprachen, die recht universell sind. Aber eine Programmiersprache wird nie wirklich als Beschreibungssprache taugen - so wird etwa Javascript nie HTML oder Postscript ersetzen können.

      Ehrlich gesagt hatte ich eine ganze Weile damit geliebäugelt, mal eine komplette Webseite ausschließlich mit Javascript zu schreiben! Abgesehen natürlich davon, dass wir das Script in eine leere HTML-Datei einbetten müssten. Über DOM lassen sich doch praktisch fast alle relevanten Funktionen von HTML und CSS nachvollziehen.

      Außerdem ist es komfortabler, beispielsweise drei Dateien in drei Editorfenstern getrennt zu bearbeiten, als wenn man in einem Editorfenster dauernd zwischen drei verschiedenen Stellen hin- und herspringen muss.

      Wenn nötig könnte man auch von einer Datei drei Ansichten erstellen. ;)

      Auch dir Danke für die erhellenden Worte!

      Gruß,

      Roadster.

      1. Aloha ;)

        Außerdem ist es komfortabler, beispielsweise drei Dateien in drei Editorfenstern getrennt zu bearbeiten, als wenn man in einem Editorfenster dauernd zwischen drei verschiedenen Stellen hin- und herspringen muss.

        Wenn nötig könnte man auch von einer Datei drei Ansichten erstellen. ;)

        Der Gedanke hinkt - das würde einen unglaublich smarten Editor voraussetzen, der nicht nur in der Lage ist, drei Ansichten einer Datei anzubieten, sondern diese nach jeder Bearbeitung einer Ansicht die anderen dynamisch aktualisiert (das können evtl noch viele) und vor allem intelligent die Stelle behält, an der Beispielsweise das CSS anfängt, selbst wenn davor 100 Zeilen im HTML neu dazugekommen sind (tut das auch nur einer?). Von kontextabhängigem Syntax-Highlightning und Auto-Vervollständigen will ich gar nicht anfangen. ;)

        Ich bin mir sicher, dass einige da draußen sogar noch ohne Syntax-Highlightning arbeiten, weil sie noch nicht auf Notepad++ und Co. gestoßen wurden.

        Grüße,

        RIDER

        --
        Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
        ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
        1. Aloha ;)

          Der Gedanke hinkt - das würde einen unglaublich smarten Editor voraussetzen, der nicht nur in der Lage ist, drei Ansichten einer Datei anzubieten, sondern diese nach jeder Bearbeitung einer Ansicht die anderen dynamisch aktualisiert (das können evtl noch viele) und vor allem intelligent die Stelle behält, an der Beispielsweise das CSS anfängt, selbst wenn davor 100 Zeilen im HTML neu dazugekommen sind (tut das auch nur einer?). Von kontextabhängigem Syntax-Highlightning und Auto-Vervollständigen will ich gar nicht anfangen. ;)

          Ok, das ist auch wieder wahr!

          Wobei man meinen sollte, dass das nicht so unmenschlich schwer zu implementieren wäre...

          Auto-Vervollständigen ist mir suspekt, aber Syntax-Highlighting hat meine Fehlerquote um ca. 95% reduziert! :D

          Habe letztens mal zum Nachschlagen eine im Archiv abgelegte js-Datei rausgekramt und sie im Windows-Editor geöffnet, da Notepad++ schon vollgepackt war, ziemlich übles Zeug, elend lange code-Blöcke zur Steuerung verketteter Animationen...  ...OMG! :D

          HTML und CSS geht ja noch, aber bei JS muss man in der einfarbigen Ansicht schon extrem viele Leerzeilen lassen, um nicht total die Übersicht zu verlieren...

          Müsste mal hier im Archiv graben, wer MIR Notepad++ empfohlen hat! ;)

          Gruß,

          Roadster.

        2. Hi,

          Syntax-Highlightning

          nein, ich möchte bitte kein Gewitter im Editor! ;-)

          *scnr*
           Martin

          --
          Noch Fragen? - Ich weiß es auch nicht.
          Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
          1. Hallo Der,

            nein, ich möchte bitte kein Gewitter im Editor! ;-)

            wobei mir manche Vorträge wie ein Syntax-Gewitter vorkommen :)

            Gruß, Jürgen

        3. Hallo,

          Editor, der in der Lage ist, drei Ansichten einer Datei anzubieten,

          das kriegt jedes CAD-Programm im 3D-Modus hin...

          bin schon weg
          Kalk

        4. Hakuna matata!

          Der Gedanke hinkt - das würde einen unglaublich smarten Editor voraussetzen, der nicht nur in der Lage ist, drei Ansichten einer Datei anzubieten, sondern diese nach jeder Bearbeitung einer Ansicht die anderen dynamisch aktualisiert (das können evtl noch viele) und vor allem intelligent die Stelle behält, an der Beispielsweise das CSS anfängt, selbst wenn davor 100 Zeilen im HTML neu dazugekommen sind (tut das auch nur einer?).

          Jap, DER Editor kann das ;)
          In VIM werden geöffnete Dateien durch Buffer repräsentiert. Fenster und Tabs sind ein völlig losgelöstes Konzept davon (im Gegensatz zu Notepadd++ wo eine Datei einem Tab entspricht). In VIM kann man beliebige Tabs und Fenster erstellen und man kann frei irgendwelche Buffer in die Fenster laden, dabei spielt es keine Rolle, ob ein Buffer bereits in einem anderen Fenster geladen wurde. Eine besser Erklärung gibt es hier: http://blog.sanctum.geek.nz/buffers-windows-tabs/

          Von kontextabhängigem Syntax-Highlightning und Auto-Vervollständigen will ich gar nicht anfangen. ;)

          Kein Problem für DEN Editor.

          --
          “All right, then, I'll go to hell.” – Huck Finn
          1. Tach!

            In VIM werden geöffnete Dateien durch Buffer repräsentiert. Fenster und Tabs sind ein völlig losgelöstes Konzept davon (im Gegensatz zu Notepadd++ wo eine Datei einem Tab entspricht).

            "Clone to Other View" und schon hat man eine Datei in zwei Tabs, nebeneinander. Das sind nicht beliebig viele, aber schon mal nicht nur eine Ansicht. Und IDEs können sowas auch.

            dedlfix.

      2. Hallo

        Man könnte. Und es gibt ja auch einige Programmiersprachen, die recht universell sind. Aber eine Programmiersprache wird nie wirklich als Beschreibungssprache taugen - so wird etwa Javascript nie HTML oder Postscript ersetzen können.

        Ehrlich gesagt hatte ich eine ganze Weile damit geliebäugelt, mal eine komplette Webseite ausschließlich mit Javascript zu schreiben! Abgesehen natürlich davon, dass wir das Script in eine leere HTML-Datei einbetten müssten. Über DOM lassen sich doch praktisch fast alle relevanten Funktionen von HTML und CSS nachvollziehen.

        Nur mal so als Denkanstoß: Was generiert JavaScript in solch einem Fall (im Zweifelsfall mit „soll“)?

        Tschö, Auge

        --
        Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
        Terry Pratchett, "Wachen! Wachen!"
        ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}
        Veranstaltungsdatenbank Vdb 0.3
      3. Ehrlich gesagt hatte ich eine ganze Weile damit geliebäugelt, mal eine komplette Webseite ausschließlich mit Javascript zu schreiben!

        Sowas gibt es schon in Frameworks wie ExtJS. Aber auch die kochen nur mit Wasser - soll heissen, die erzeugen letztlich auch wieder HTML.

        Gruß
        Stefanie

        1. @@Stefanie M.:

          nuqneH

          Sowas gibt es schon in Frameworks wie ExtJS. Aber auch die kochen nur mit Wasser - soll heissen, die erzeugen letztlich auch wieder HTML.

          Nö, mit JavaScript wird kein HTML erzeugt, sondern das DOM manipuliert. Ich glaube, darauf wollte Auge auch hinaus.

          Qapla'

          --
          „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
          1. Hallo

            Sowas gibt es schon in Frameworks wie ExtJS. Aber auch die kochen nur mit Wasser - soll heissen, die erzeugen letztlich auch wieder HTML.

            Nö, mit JavaScript wird kein HTML erzeugt, sondern das DOM manipuliert. Ich glaube, darauf wollte Auge auch hinaus.

            Nee, ich wollte schon darauf hinaus, dass bei der Manipulation des DOM eines HTML-Dokuments schlussendlich HTML-Elemente erzeugt werden. Was ist daran falsch?

            Tschö, Auge

            --
            Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
            Terry Pratchett, "Wachen! Wachen!"
            ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}
            Veranstaltungsdatenbank Vdb 0.3
        2. Ehrlich gesagt hatte ich eine ganze Weile damit geliebäugelt, mal eine komplette Webseite ausschließlich mit Javascript zu schreiben!

          Wenn man das einfach nur so tun will (*) weil man glaube es wäre gleichwertig, zeigt das nur dass man die Hintergründe noch nicht wirklich verstanden hat ;-)

          Sowas gibt es schon in Frameworks wie ExtJS. Aber auch die kochen nur mit Wasser - soll heissen, die erzeugen letztlich auch wieder HTML.

          ... und wäre somit praktisch sinnlos, wenn man direkt HTML verwenden könnte (*). Man würde das selbe Ergebnis durch einige Umwege erzeugen, hätte dadurch viel mehr Aufwand und viel weniger sprechenden Code und letztendlich kommt aber doch das selbe heraus.

          Etwa wie wenn man sagt hey schaut mal ich hab was ganz neues entdeckt, ich kann Nägel mit einem Schraubendreher in die Wand klopfen und brauche endlich keinen Hammer mehr. Funktioniert zwar mehr oder weniger, aber ist eben nicht ganz so genial wie man zunächst denken mag.

          (*) es kann schon Gründe dafür geben, etwa wenn man Daten per JS in eine Seite einbinden will.

  3. @@Roadster:

    nuqneH

    dass es doch bedeutend einfacher wäre, wenn man statt in drei, sich inhaltlich überlappenden, die Schwächen der jeweils anderen ausgleichenden Programmiersprachen, den Code nur in einer einzigen Sprache verfassen müsste!

    Es sollte keine inhaltliche Überlappung vorliegen, sondern strikte Trennung (separation of concerns):

    Struktur (HTML/DOM), Präsentation (CSS) und Verhalten (JavaScript) weitgehend getrennt; Himmel als Hintergrund

    Alles andere ist die Hölle:

    @title=Struktur (HTML/DOM), Präsentation (CSS) und Verhalten (JavaScript) überlappend; Höllenfeuer als Hintergrund

    (Folien aus meinem Vortrag auf der From the Front 2014)

    Hat es mal einen Versuch gegeben, eine so angedachte universelle Programmiersprache zu entwickeln?

    Man könnte auch das DOM ausschließlich mit JavaScript generieren und CSS-Eigenschaften mit JavaScript setzen. Sinnvoll scheint mir das aber nicht. Zumindest letzteres nicht; ersteres wird ja bei Single-Page-Anwendungen getan.

    Qapla'

    --
    „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
    1. Es sollte keine inhaltliche Überlappung vorliegen, sondern strikte Trennung (separation of concerns):

      Volle Zustimmung, aber wie definierst Du Trennung? Es bedeutet ja nicht notwendigerweise, dass es sich um verschiedene Sprachen hanndeln muss. Mal abgesehen davon, dass html und CSS keine Sprachen sind, wie Camping_RIDER richtig sagt, könnte theoretisch alles zu einer Sprache zusammengefasst sein und "Trennung" sich nur auf verschiedene Dateien beziehen, e.g.

      Cheers,
      Baba

      --
      Baba kommt von Basketball
      1. Hi,

        Volle Zustimmung, aber wie definierst Du Trennung? Es bedeutet ja nicht notwendigerweise, dass es sich um verschiedene Sprachen hanndeln muss.

        richtig, deswegen hatte ich diese beiden Aspekte auch voneinander getrennt.

        Mal abgesehen davon, dass html und CSS keine Sprachen sind

        Oh doch, sicher. Es sind keine Programmiersprachen, sondern eher Beschreibungssprachen. Aber Sprachen sind sie allemal.

        Ciao,
         Martin

        --
        Datenbanken speichern keine User.
        Das liegt daran, daß Datenbanken mit der Lebensmittelversorgung für gespeicherte biologische Lebensformen derzeit noch Probleme haben.
          (Christoph Schnauß)
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    2. Aloha ;)

      Scheint, ich muss mir noch ein paar mehr deiner Vorträge ansehen.

      Grüße,

      RIDER

      --
      Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
      ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
    3. Om nah hoo pez nyeetz, Gunnar Bittersmann!

      (Folien aus meinem Vortrag auf der From the Front 2014)

      Ich finde das Beispiel sehr gut gelungen.

      Wie kommst du auf das Sprachkürzel tlh - etwa ta` tlhIngan Hol - n - standard dialect?

      Matthias

      --
      Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Vene und Venedig.

      1. @@Matthias Apsel:

        nuqneH

        Wie kommst du auf das Sprachkürzel tlh

        Wieso ich?

        Qapla'

        --
        „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
    4. @@Gunnar Bittersmann:

      nuqneH

      Man könnte auch das DOM ausschließlich mit JavaScript generieren und CSS-Eigenschaften mit JavaScript setzen. Sinnvoll scheint mir das aber nicht. Zumindest letzteres nicht; ersteres wird ja bei Single-Page-Anwendungen getan.

      sad reading of the day

      Qapla'

      --
      „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
  4. Hallo,

    Warum also überhaupt Dateien in unterschiedlichen Formaten abspeichern, die danach erst mühsam auseinandergenommen und wieder zusammengesetzt werden müssen? Wäre es nicht sehr viel effizienter, wenn man den Übersetzungsprozess nur beim Schreiben oder Lesen des Codes durch Menschen bräuchte, und ansonsten alles direkt in einer einzigen Sprache verfasst wäre?

    Nun, im Prinzip waren es vermutlich genau diese Überlegung, die zur Entwicklung von Compilern geführt haben:
    In der Anfangszeit der Computerrei wurde ein Computerprogramm dediziert für einen einzigen Computer geschrieben. Das lief dann auch nur da. Das war in Zeiten, in denen es weltweit auch nur eine Handvoll Rechner gab, kein Problem, denn die paar wenigen Firmen, die einen besassen, brauchten ohnehin Spezialsoftware speziell für ihr Unternehmen, die sie selber entwickeln (lassen) mussten.

    Es wurde dann schwierig, als es mehr und mehr (zum Teil sehr verschiedene) Rechner gab, und man gerne auch das eine Programm für Rechner A auf einem anderen Rechner B laufen lassen wollte, ohne es komplett neu schreiben zu müssen.

    Der Schritt zu Compiler-Sprachen (C, C++, ...) sollte genau dieses Problem lösen:  Man schreibt das Programm EINMAL in einer Sprache, die weitgehend von der darunter liegenden Maschine abstrahiert, der Compiler übersetzt es dann automatisch in den Maschinencode für die Hardware, auf der das ganze laufen soll.

    Weil das aber bisweilen auch noch relativ viel Wissen über die Hardware darunter erfordert (wenn Du z.b. mal versucht hast, einen Treiber in C, der für i386-Prozessoren, also "klassiche PCs", geschrieben wurde, auf einem ARM-Prozessor zum Laufen zu bringen, wirst Du schnell merken, dass es leider mit "einfach neu-compilieren" oft nicht getan ist), kann man auch noch einen Schritt weiter gehen:

    Man "erfindet" sich einfach eine virtuelle Maschine, auf der das ganze läuft und compiliert dann sein Zeug für diese Maschine. Die tatsächliche Ziel-Hardware muss dann nur irgendwie diese virtuelle Maschine bereit stellen, aber der Programmierer muss die tatsächliche Hardware nicht mehr kennen sondern nur noch die virtuelle Maschine (die überall gleich ist).
    Java macht das z.b. so, Python meines Wissens auch (und sicher noch einige andere).

    Hat es mal einen Versuch gegeben, eine so angedachte universelle Programmiersprache zu entwickeln?

    Ich glaube, den Versuch gibt es immer wieder mal, und es wird auch alle Jahre wieder eine neue Programmiersprachen-Sau durchs Dorf getrieben werden, die genau das verspricht.
    Ich glaube die Schwierigkeit ist die, dass je universeller eine Programmiersprache ist, desto unhandlicher wird sie für den konkreten Anwendungsfall.
    Nimm  Java: Mit Java kannst Du fast alles programmieren. Warum wird aber für das Web z.b. oft was anderes genommen (PHP, Perl, Python, you name it)? Weil Java auf Grund seiner Universalität einfach extrem komplex ist, und man (gerade kleinere Web-Anwendungen) einfach schneller in einer anderen Sprache runter getippt hat - dafür kann man dann damit aber nicht so viel anderes machen.

    Viele Grüße,
    Jörg

    1. In der Anfangszeit der Computerrei wurde ein Computerprogramm dediziert für einen einzigen Computer geschrieben. Das lief dann auch nur da. Das war in Zeiten, in denen es weltweit auch nur eine Handvoll Rechner gab, kein Problem, denn die paar wenigen Firmen, die einen besassen, brauchten ohnehin Spezialsoftware speziell für ihr Unternehmen, die sie selber entwickeln (lassen) mussten.

      Es wurde dann schwierig, als es mehr und mehr (zum Teil sehr verschiedene) Rechner gab, und man gerne auch das eine Programm für Rechner A auf einem anderen Rechner B laufen lassen wollte, ohne es komplett neu schreiben zu müssen.

      Der Übergang von Maschinensprache zu ersten echten Programmiersprachen (Assembler) entsprang nicht dem Wunsch der Portabilität, sondern der Vereinfachung, und daran hat sich bis vor vielleicht 20 Jahren auch nicht viel geändert.

      Die ersten "Handvoll Rechner" wurden über Lochkarten programmiert, deren Löcher die Bits darstellten, die das Rechenwerk zu dieser oder jener Operation veranlassten. Ganz einfache Rechner hatten Schalter, fortgeschrittene konnten von Magnetdatenträgern lesen, das Prinzip bleibt aber gleich: Der Prozessor wird mit Zahlenkolonnen, der Maschinensprache, gefüttert, die er abarbeitet.

      Der Schritt zu Assembler war eine Versprachlichung der Löcher. Aus der Maschinensprache "0815 1232" wird in Assembler "move #32, D4". Das ist aber immer noch auf die jeweilige Hardware bezogen, nur weitaus leichter zu schreiben.

      Auch der Schritt zu Hochsprachen irgendwann in den Fünfzigern hat die Entwicklung nur weitergeführt in die Richtung echter menschlich-mathematischer Sprache. Statt o oooo oo o ooo o o o oo oo ooooo ooo o o o o oooo oo o o o oooo in einer Pappkarte oder "move #10, D1; move (A3)+, D5; add D1, D5; move D5, 5(A2)", heißt es in Hochsprachen "x = c + 10".

      Die Programmierung wird durch diese Abstrahierung, die Trennung von Problem und Hardware, schlicht einfacher, mithin für weitere Kreise nutzbar und die Maschinen effizienter anwendbar.
      Das sich solche Ausdrücke leichter auf andere Systeme übertragen lassen, war zweifelsohne ein sehr erwünschter Nebeneffekt, aber nicht das Hauptziel. In dem Fünfzigern hatten Computer immer noch Seltenheitswert und wurden mit Gold aufgewogen;  bei einem Wechsel des Rechnersystems waren die Programme nur eine kleinere von mehreren sehr großen Hürden. Bevor ein neues System angeschafft wurde, war das alte mitsamt seiner Programme schon so in die Jahre gekommen, dass auch gleich etwas Neues programmiert werden konnte.

      1. Hallo,

        Der Übergang von Maschinensprache zu ersten echten Programmiersprachen (Assembler) entsprang nicht dem Wunsch der Portabilität, sondern der Vereinfachung, und daran hat sich bis vor vielleicht 20 Jahren auch nicht viel geändert.

        Ok, Du hast wohl recht. Ich meinte, in einem Vortrag über Konrad Zuses Plankalkül mal gehört zu haben,  dass Zuse damit ein einheitliches Programmiermodell für seine Maschinen schaffen wollte, welches unabhängig von der konkreten Hardware war - tatsächlich war hier aber auch das Ziel die Vereinfachung/Abstraktion, wie ich jetzt gelesen habe.

        Viele Grüße,
        Jörg

      2. @@Mattes:

        nuqneH

        Statt o oooo oo o ooo o o o oo oo ooooo ooo o o o o oooo oo o o o oooo in einer Pappkarte

        gibt’s jetzt Ook!

        Qapla'

        --
        „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
  5. Aloha ;)

    Als jemand, der weder Informatik studiert hat [...]

    Ich sehe: Wir sprechen von gleich zu gleich ;) Auch ich bin nur interessierter Laie - bzw. zumindest im Sinne des Wortes Amateur.

    Der Stein des Anstoßes war dabei mein Webseiten-Projekt, dass ich parallel zu meinem eigentlichen Studium verfolge:

    Während ich mich mehr oder weniger fröhlich zwischen meinen Editorfenstern hin und her geclickt habe, in denen HTML, CSS und JavaScript zu bearbeiten und zu organisieren sind, hat sich mir der Gedanke förmlich aufgedrängt, dass es doch bedeutend einfacher wäre, wenn man statt in drei, sich inhaltlich überlappenden, die Schwächen der jeweils anderen ausgleichenden Programmiersprachen, den Code nur in einer einzigen Sprache verfassen müsste!

    Hmmm... Da sagst du was... Aber bedenke: Von den drei genannten ist nur JavaScript eine Programmiersprache. HTML ist eine Markup Language (Auszeichnungssprache) und CSS ist ein Stylesheet. Wo ich dir Recht gebe: HTML KANN sich mit CSS überlappen - aber nur, wenn man schlechtes HTML schreibt. Inline-Styles und HTML-Eigenschaften wie width und Co. sind des Teufels. Sobald man CSS und HTML aber sinnvoll (wie es gedacht ist) trennt, offenbart sich, warum es sinnvoll ist, unterschiedliche Sprachen zu nutzen. Stell dir mal vor, du müsstest im HTML jedes Tabellenelement einzeln gleich formatieren. Und dann änder mal in einem Designvorschlag eine grundlegende Komponente. Der Aufwand potenziert sich.

    Und zum Thema Schwächen: im punkto HTML gibt es imho keine Schwächen mehr, die von CSS/JavaScript ausgeglichen werden müssten. Als statische Auszeichnungssprache tut HTML genau das, was es soll: Statischen Inhalt strukturieren. Die Überschneidung zwischen CSS und JavaScript ist tatsächlich gegeben - das aber auch erst seit CSS3 Animationen erlaubt. Dass das der Fall ist hat aber auch gute Gründe - vielleicht komme ich später darauf zurück.

    Okay, ich tus jetzt: Du könntest sagen, dass JavaScript auch in der Lage wäre, CSS und HTML zu ersetzen. Damit hättest du Recht. Es ist aber so, dass man, um mit JavaScript Elemente zu erschaffen, zunächst wirklich profunde HTML-Kentnisse benötigt. Außerdem ist es viel einfacher, statischen Inhalt wirklich statisch darzustellen, statt ihn dynamisch aufzubauen. Wenn ich eine Seite habe, in der die Überschrift und der Text immer gleich sind, dann ist es ungleich aufwendiger, diese nicht statisch sondern dynamisch zu erstellen. Stell dir die Ladezeiten eines Smartphones vor, wenn es das HTML nicht mehr statisch zum Interpretieren bekommt, sondern  zunächst über rechenaufwändiges Javascript erstellen und dann interpretieren muss. Wenn man also HTML als rein statische Sprache und JavaScript als rein dynamische Sprache versteht, dann überschneiden sich diese nicht mehr.

    Zwischen CSS und JavaScript ist die Sache seit CSS3 problematischer. Natürlich könnte die Formatierung auch allein durch JS entstehen, da greifen dann aber die gleichen Argumente wie eben. Die Frage ist: Warum muss eine an sich statische Sprache (CSS) auf einmal dynamische Features beinhalten, wenn wir schon eine voll funktionstüchtige dynamische Sprache haben. Die Antwort ist einfach: JavaScript ist zu mächtig. JavaScript kann den Browser durch eine Endlosschleife zum Absturz bringen, JavaScript kann den Anwender mit Popup-Nachrichten und Dialogfenstern bombardieren, JavaScript kann den User auf ungewollte Seiten mit Malware umleiten und so weiter und so fort (einige der Missbrauchsmöglichkeiten werden inzwischen von Browserherstellern unterbunden bzw. mit Abbruchmöglichkeit für den User versehen - darauf kann man sich aber nicht verlassen). Kurzum: JavaScript muss deaktivierbar sein.

    Vor CSS3 war es so, dass all die hübschen, modernen Navigationsmenüs per JS realisiert werden musste und der, der JavaScript aushatte, hatte halt ein hässliches Fallback. Wenn etwas schön, animiert und modern sein sollte, musste der Webentwickler über gute JavaScript-Kenntnisse verfügen. Jetzt ermöglicht CSS (das so gut wie nicht oder zumindest nicht einfach abschaltbar ist) einfachste dynamische Möglichkeiten. Und verdrängt damit JavaScript ein wenig. Der Vorteil liegt auf der Hand: Ermöglichung einfacher Dynamik, ohne Missbrauch zu ermöglichen. Es ist eigentlich wünschenswert, wenn das mächtigste der Tools (also JavaScript) nur dann ausgepackt werden muss, wenn seine Macht auch in vollem Umfang nutzbar sein muss.

    Übrigens: Von allen drei Sprachen ist CSS auch mit CSS3 noch am unausgereiftesten / unfertigsten. Es gibt noch deutlichen Raum für elementare Funktionalitäten innerhalb des Rahmens oberhalb der Statik und unterhalb der Missbrauchsschwelle (Variablen, Pseudoklassen für "toggle"-Effekte, Stylen von Scrollbars etc...). Da wird sicher noch einiges kommen. Die Entwicklung von CSS läuft ja auch auf Hochtouren weiter.

    Mir ist natürlich klar, dass die Situation wie sie ist, schlicht auf die historische und bis heute andauernde Entwicklung auf dem Gebiet zurück zuführen ist, aber nichtsdestoweniger stellt sich für mich als Amateur doch die Frage nach einer neutralen, davon unabhängigen Bewertung. Also die Frage, ob die Situation aus inhaltlichen Gründen, die mir aufgrund meiner Fachfremde verborgen geblieben sind, tatsächlich alternativlos ist, um mal ein Unwort zu bemühen, oder ob es nicht eine lohnenswerte Perspektive gibt oder wenigstens geben sollte, hier für mehr Einheitlichkeit zu sorgen?

    Alternativ los ist das Ganze sicher nicht - aber dennoch ohne sinnvollere Alternative. Stell dir vor, du hast eine komplett zusammenhängende Seite mit den vereinten Möglichkeiten von HTML, CSS und Javascript, dazu noch Flash usw. usf. Nicht nur, dass es vollkommen utopischnist, einen Standard zu finden, der all das abdeckt und dann auch noch einfach zu lernen und effizient ist. Aber stell dir mal vor, wem und was das bezüglich Miasbrauch Tür und Tor öffnet. Da doch lieber ein modularer Aufbau, dessen Verwendung ab einer gewissen Mächtigkeit (JS, Flash...) vom User unterbunden werden kann.

    Und wenn ich so darüber nachdenke, könnte man den Gedanken ja noch weiter verfolgen und fragen, wozu überhaupt dutzende verschiedene Programmiersprachen, die dauernd hin- und herübersetzt werden müssen, um irgendwie miteinander kompatibel zu sein?

    Ich meine, wir reden alle mit Computern, richtig? :)

    Nullen und Einsen!

    Das stimmt - aber nicht bezogen auf die Websprachen HTML/CSS/JS. Bezogen auf richtige Programmiersprachen stimmt das alles. Und soll ich dir was sagen? Da kam schonmal jemand drauf. Du hast soeben Java neu erfunden - und stehst damit vor genau den Problemen, die Java daran hindern, sich großflächigst durchzusetzen. Java mangelt es an Effizienz, da es auf verschiedensten Systemen mit denselben kompilierten Dateien funktionieren muss. Die Computer sprechen nämlich auch nicht alle mit derselben Sprache, obwohl sie intern nur Nullen und Einsen kennen. Auf der Ebene von Nullen und Einsen ist nicht an Effizienz zu denken, man braucht immer Vermittlertools - und die sind dann wieder vom Betriebssystem etc. abhängig. Du siehst: Die Angelegenheit ist komplexer als man auf den ersten Blick denkt.

    Warum also überhaupt Dateien in unterschiedlichen Formaten abspeichern, die danach erst mühsam auseinandergenommen und wieder zusammengesetzt werden müssen? Wäre es nicht sehr viel effizienter, wenn man den Übersetzungsprozess nur beim Schreiben oder Lesen des Codes durch Menschen bräuchte, und ansonsten alles direkt in einer einzigen Sprache verfasst wäre?

    Auch hier: Das könnte man tun. Das würde aber bedeuten, dass jegliche Effizienz (auch speicherplatztechnisch) vor die Hunde geht. In einer idealen Welt mit unendlich großem Speicher und unendlich großer Rechenkapazität würde man das machen wie du vorschlägst. Wir sind aber unseren realen Restriktionen unterworfen und darauf angewiesen, Daten effizient zu speichern - und möglichst effizient ist das nur dann möglich, wenn ich die Vor- und Nachteile des jeweiligen Einsatzgebietes nutzen kann - wenn ich also für verschiedene Verwendungszwecke verschiedene Dateiformate zur Verfügung habe. Natürlich gibt es mit ZIP und Co. Kompressionen für alle Dateitypen. Die sind aber deutlich weniger effizient als die typspezifischen Kompressionen.

    Letztlich ist doch ohnehin alles nur Mathematik! 2+2=4 gilt in jeder Übersetzung, oder nicht?!

    Im Gegensatz zur Informatik bin ich in der Mathematik studierter Profi. Und ich kann dir sagen: Mathematik ist alles andere als 2+2=4. Im Körper F4 ist 2+2=0. In der Mathematik ist i=i+1 auch eine falsche Aussage. Informatik benutzt lediglich Aspekte der Mathematik. Und davon eigentlich auch nur das Teilgebiet der reelwertigen Numerik. Intern sind sogar nur natürliche Zahlen in Binärdarstellung realisierbar. Jede negative Zahl oder Kommazahl ist nur eine Illusion, die durch den Rechner aufwendig interpretiert werden muss. Ursprünglich wurde die Informatik erfunden, um Teile der Mathematik nachzubilden und einfache (!) Berechnungen zu automatisieren. Computer rechnen eben auch nicht 2+2=4 sondern 0100 + 0100 = 0010.  Alles andere muss dem Computer erst durch geeignete Sprachen beigebracht werden. Schon Multiplizieren ist für einen Computer ohne geeignete Zwischenvermittler eine ziemliche Herausforderung. Ganz zu schweigen von den elektronischen Mechanismen, die Computer überhaupt zum Addieren mit persistenten Zahlen befähigen.

    Informatik ist immer, auf bestehenden Systemen aufzubauen. Und die bestehenden Systeme können die unterschiedlichsten Vor- und Nachteile besitzen. Einen ganzheitlichen Ansatz kann es da in einer realen Welt nie geben, weil man sich grundsätzlich auf ein bestimmtes Set an Prioritäten fokusieren muss.

    Hat es mal einen Versuch gegeben, eine so angedachte universelle Programmiersprache zu entwickeln?

    Wie gesagt - Java. Zumindest was die Lauffähigkeit unter unterschiedlichen Systemen angeht.

    Und falls ja, woran ist es gescheitert? :D

    An allen oben genannten Gründen.

    Grüße,

    RIDER

    --
    Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
    ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
    1. Aloha ;)

      Hallo RIDER :)

      Wow, ok die Zitat-Funktion spare ich mir diesmal!

      Sehr informativ! Vielen Dank!

      Ich glaube, es war eine gute Idee den Thread zu starten:

      Habe hier in den letzten zwei Stunden mehr über die thematischen Hintergründe gelernt als in den letzten zwei Jahren! ;)

      Vielen Dank euch allen!

      Gruß,

      Roadster.

    2. Hakuna matata!

      Hmmm... Da sagst du was... Aber bedenke: Von den drei genannten ist nur JavaScript eine Programmiersprache. HTML ist eine Markup Language (Auszeichnungssprache) und CSS ist ein Stylesheet.

      <klugscheiß>
      Markupsprache und Programmiersprache schließt sich nicht gegenseitig aus: Siehe XSLT. Die Mächtigkeit einer formalen Sprache wird über theoretische Rechenmodelle, wie endliche Automaten oder die Turingmaschine definiert. Von einer Programmiersprache spricht man, wenn eine Sprache turingmächtig ist. JavaScript ist das, XSLT auch. HTML und CSS nur für sich genommen sind das nicht. Aber die Kombination HTML+CSS ist es wieder.
      </klugscheiß>

      Aber es macht natürlich Sinn, hier nicht nur auf rein mathematischer Ebene zu klassifizieren, sondern auch einen intuitiven Begriff von einer Programmiersprache zu motivieren.

      --
      “All right, then, I'll go to hell.” – Huck Finn
    3. @@Camping_RIDER:

      nuqneH

      Informatik benutzt lediglich Aspekte der Mathematik. Und davon eigentlich auch nur das Teilgebiet der reelwertigen Numerik.

      Du cantorst kaum falscher liegen.*

      Theoretische Informatik ist erstmal Mengenlehre. Und Logik.

      Bei anderen Problemen steckt man mitten in der Graphentheorie …

      Qapla'

      * at und Orlando sind schwer zu ersetzen.

      --
      „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
      1. Aloha ;)

        Informatik benutzt lediglich Aspekte der Mathematik. Und davon eigentlich auch nur das Teilgebiet der reelwertigen Numerik.

        Du cantorst kaum falscher liegen.*

        Theoretische Informatik ist erstmal Mengenlehre. Und Logik.

        Der gute Herr Cantor wird's mir verzeihen. Schätze nicht, dass er ein Internetfähiges Smartphone mit in seiner Kiste hat, das hier liest und sich daraufhin im Grabe umdreht. Ich sprechs ja nicht aus, dann bestünde ja die Möglichkeit, dass er es hört ;)

        Trotzdem: Mengenlehre und Logik sind Grundlage jedes Teilgebiets (oder sollte ich sagen Teilmenge?) der Mathematik... Mengenlehre und Logik sind also quasi im Schnitt über alle Elemente, ergo und insbesondere also auch in der reellwertigen Numerik einbegriffen ;)

        Bei anderen Problemen steckt man mitten in der Graphentheorie …

        Das stimmt, ja. Ist aber eher die Ausnahme :D Deshalb *eigentlich*...

        Grüße,

        RIDER

        --
        Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
        ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
        1. Hakuna matata!

          Informatik benutzt lediglich Aspekte der Mathematik. Und davon eigentlich auch nur das Teilgebiet der reelwertigen Numerik.

          Also, das folgende sind nur die Mathe-Pflichtvorlesungen aus meinem Grundstudium:

          Analysis
          Lineare Algebra
          Stochastik
          Numerik
          Mathematische Logik
          Diskrete Strukturen
          Formale Systeme
          Berechenbarkeits- und Komplexitätstheorie

          Dazu kommen diverse Wahlfächer, wie Kategorientheore, Funktionstheorie und eine Menge Vertiefungsvorlesungen. Und auch viele der reinen Informatikfächer bestehen zur Hälfte aus Mathematik: Effiziente Algorithmen, Implementation of Databases, Computer Graphics, Datenstrukturen und Algorithmen… Es ist ehrlich gesagt schwierig Bereiche aus der Informatik zu finden, die unbeeinflusst von der Mathematik sind, und umgekehrt.

          Ich glaube der häufigste Satz im ersten Semester war: *mit Tränen in den Augen* „Eigentlich wollte ich doch nur Spiele programmieren“. Ich selbst habe auch nicht gewusst, worauf ich mich da eingelassen habe, aber so ärgerlich und anstrengend es manchmal ist, das hohe Maß an Abstraktion macht sich doch immer wieder bezahlt und wenn man irre genug dazu ist, dann macht es sogar Spaß (natürlich nicht in der Klausurphase, die Klausurphase macht niemals Spaß).

          Also meine Sicht auf die Dinge: Die Informatik ist ein Teilgebiet der Mathematik, mit sehr langen Ausläufern.

          --
          “All right, then, I'll go to hell.” – Huck Finn
          1. Aloha ;)

            Also meine Sicht auf die Dinge: Die Informatik ist ein Teilgebiet der Mathematik, mit sehr langen Ausläufern.

            ACK. Ich wollte das auch nicht profanisieren (was wäre ich sonst für ein schlechter Mathestudent?), sondern nur aussagen, dass Mathematik mehr ist als Informatik und vor allem mehr als 2 + 2 = 4 :D

            Und hey - kennste den schon: "Schauen Sie nach links, schauen Sie nach rechts. Diese beiden Menschen werden in 2 Semestern nicht mehr hier sitzen." :D

            Es gab Zeiten in meinem Leben, da dachte ich, Mathematik sei synonym zum Rechnen :D
            Die sind leider schon ein Weilchen vorbei.

            Grüße,

            RIDER

            --
            Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
            ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[
            1. Hakuna matata!

              Und hey - kennste den schon: "Schauen Sie nach links, schauen Sie nach rechts. Diese beiden Menschen werden in 2 Semestern nicht mehr hier sitzen." :D

              Kenn ich aus dem Film: 13 Semester

              Es gab Zeiten in meinem Leben, da dachte ich, Mathematik sei synonym zum Rechnen :D
              Die sind leider schon ein Weilchen vorbei.

              Jaja, die "Wissenschaft der Zahlen" wurde sehr schnell zur "Wissenschaft der Buchstaben Symbole" und heute bin ich froh, wenn ein Professor überhaupt Kurznotation benutzt, denn dann weiß ich, er hält das Thema offenbar für nicht so schwierig, dass man es in ganzen Sätzen formulieren müsste. Der Vorteil ist, man braucht keine Taschenrechner mehr ;)

              --
              “All right, then, I'll go to hell.” – Huck Finn
  6. Nullen und Einsen!
    Warum also überhaupt Dateien in unterschiedlichen Formaten abspeichern

    Wenns doch nur Nullen und Einsen sind, ist doch alles im selben Format :-)

    wenn man statt in drei, sich inhaltlich überlappenden, die Schwächen der jeweils anderen ausgleichenden Programmiersprachen, den Code nur in einer einzigen Sprache verfassen müsste!

    Wenn du von HTML, CSS, JS sprichst, das sind komplett verschiedene Anforderungen. Dass etwas eine Überschrift ist sagt was ganz anderes aus als "bitte in grün darstellen" und das ist auch wieder etwas ganz anderes als "prüfe ob alle Felder gefüllt sind" usw.

    die danach erst mühsam auseinandergenommen und wieder zusammengesetzt werden müssen?

    Heißt was?

    Wäre es nicht sehr viel effizienter, wenn man den Übersetzungsprozess nur beim Schreiben oder Lesen des Codes durch Menschen bräuchte, und ansonsten alles direkt in einer einzigen Sprache verfasst wäre?

    Das ist der Fall. Alles was programmiert ist steht da letztendlich in Maschinensprache. Oder in Zwischensprachen (C# usw). Formatierungen sind natürlich wieder was anderes.

    Letztlich ist doch ohnehin alles nur Mathematik!

    Nö es passiert auch Daten hin und her schieben, vergleichen, ...

    Hat es mal einen Versuch gegeben, eine so angedachte universelle Programmiersprache zu entwickeln?

    Es erfindet immer wieder mal jemand eine Sprache die angeblich alles ersetzen soll und kann, man braucht angeblich gar nichts anderes mehr.

    Und falls ja, woran ist es gescheitert? :D

    An der Vielfalt der Anforderungen.
    Außerdem entwickeln sich die Sprachen weiter, was in C früher ein Akt der Verzweiflung werden konnte, geht mit neueren Sprachen und anderen Konzepten plötzlich ganz einfach.

    1. Hallo

      Hat es mal einen Versuch gegeben, eine so angedachte universelle Programmiersprache zu entwickeln?
      Es erfindet immer wieder mal jemand eine Sprache die angeblich alles ersetzen soll und kann, man braucht angeblich gar nichts anderes mehr.

      Da fällt mir doch stante pede der hier ein [1]. :-)

      [1] „Hier“ ist kein Linktext gilt hier nicht.

      Tschö, Auge

      --
      Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
      Terry Pratchett, "Wachen! Wachen!"
      ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}
      Veranstaltungsdatenbank Vdb 0.3