Wie/Wann habt ihr angefangen euch mit Programmierung zu beschäftigen?



  • fricky schrieb:

    selbst das vielgelobte (und ebenfalls alte) ADA hat nur sehr eingeschränkte zeiger.
    🙂

    Ja? Was ist an System.Address denn eingeschränkt?



  • Lol! C hat gravierende Nachteile im Vergleich zu anderen Sprachen, aber das darf eine so alte Sprache auch haben, ist ja ganz normal.

    zum Beispiel?

    tntnet schrieb:

    Oder die C-Programmierer haben einfach keine Zeit, da sie sich mal wieder in den Zeigern verlaufen haben.

    ja ja, die böse Zeiger. Und ein Revolver ist auch böse, der kann auch Menschen töten. Wenn ein unfähiger Programmier nicht weiß, wie man Zeiger einsetzt, dann kommt Müll raus. Damit bin ich einverstanden.

    Zeiger sind nicht das Problem, sondern die Unfähigkeit der Programmierer, die nicht verstehen, was dahinter steckt. Mit Zeigern hast du zwar viel mehr Macht (Möglichkeiten) aber auch mehr Verantwortung. Das muss einem immer klar sein. Und wie fricky, finde ich, dass Zeiger einer der größten Vorteile von C sind (vorausgesetzt, man weiß was man tut).



  • supertux schrieb:

    ficky schrieb:

    Lol! C hat gravierende Nachteile im Vergleich zu anderen Sprachen, aber das darf eine so alte Sprache auch haben, ist ja ganz normal.

    zum Beispiel?

    Sauberes Deinitialisieren/Aufräumen in komplexeren Sequenzen ist nur mit goto halbwegs sauber lösbar, von Sicherheit/Robustheit wollen wir da aber gar nicht sprechen.



  • Tachyon schrieb:

    fricky schrieb:

    selbst das vielgelobte (und ebenfalls alte) ADA hat nur sehr eingeschränkte zeiger.

    Ja? Was ist an System.Address denn eingeschränkt?

    ich hab letztens erst gelesen, dass ADA sehr streng typisiert ist und kaum rechenoperationen mit zeigern erlaubt. ist System.Address eine library die das nachholt und mit der man wild im speicher rumwüten kann?
    🙂



  • fricky schrieb:

    Tachyon schrieb:

    fricky schrieb:

    selbst das vielgelobte (und ebenfalls alte) ADA hat nur sehr eingeschränkte zeiger.

    Ja? Was ist an System.Address denn eingeschränkt?

    ich hab letztens erst gelesen, dass ADA sehr streng typisiert ist und kaum rechenoperationen mit zeigern erlaubt. ist System.Address eine library die das nachholt und mit der man wild im speicher rumwüten kann?
    🙂

    Nein, System.Address ist ein Typ. Und dieser repräsentiert einen ganz normalen, rohen Zeiger.



  • unechter fricky schrieb:

    Sauberes Deinitialisieren/Aufräumen in komplexeren Sequenzen ist nur mit goto halbwegs sauber lösbar

    wieso das? dafür kann man sich doch funktionen schreiben. oder meinst du was anderes?

    der gleiche falsche fricky schrieb:

    von Sicherheit/Robustheit wollen wir da aber gar nicht sprechen.

    C hat kein netz und doppelten boden. das ist richtig. sicherheit und robustheit muss der programmierer hinzufügen. aber hier sagt ja auch keiner, dass C perfekt ist.

    Tachyon schrieb:

    Nein, System.Address ist ein Typ. Und dieser repräsentiert einen ganz normalen, rohen Zeiger.

    also sowas wie in C ein void*, oder?
    🙂



  • fricky schrieb:

    Tachyon schrieb:

    Nein, System.Address ist ein Typ. Und dieser repräsentiert einen ganz normalen, rohen Zeiger.

    also sowas wie in C ein void*, oder?
    🙂

    Jo, genau.



  • fake fricky schrieb:

    Sauberes Deinitialisieren/Aufräumen in komplexeren Sequenzen ist nur mit goto halbwegs sauber lösbar

    zu glauben "goto == immer böse" finde ich nicht gut. goto kann manchmal sehr praktisch sein, man muss nur wissen, was man tut.

    fake fricky schrieb:

    von Sicherheit/Robustheit wollen wir da aber gar nicht sprechen.

    da schließe ich mich den echte fricky an: "C hat kein netz und doppelten boden". Das ist mehr oder weniger genau das, was ich auch vorhin gemeint habe, wenn der Programmier unfähig ist, dann kommt Müll raus.

    C ist nicht perfekt, das haben wir hier nie behauptet, noch dass jeder null-ahnende-Anfänger auf anhieb sichere Programme schreiben kann. Ich meine, durch meine buffer overflows, die ich als Anfänger hatte, weiß ich heute, wie ich sie umgehen kann und verstehe auch, was dahinter passiert. Das ist mir wichtiger, als dass die Sprache mir irgendwelche tolle Sicherheit vorgaukelt und ich trotzdem nicht weiß, was ein buffer overflow ist und wie ich damit umgehen sollte.



  • supertux schrieb:

    C ist nicht perfekt, das haben wir hier nie behauptet, noch dass jeder null-ahnende-Anfänger auf anhieb sichere Programme schreiben kann. Ich meine, durch meine buffer overflows, die ich als Anfänger hatte, weiß ich heute, wie ich sie umgehen kann und verstehe auch, was dahinter passiert. Das ist mir wichtiger, als dass die Sprache mir irgendwelche tolle Sicherheit vorgaukelt und ich trotzdem nicht weiß, was ein buffer overflow ist und wie ich damit umgehen sollte.

    Das typische Beispiel dafür ist die "NullPointerException" in Java. Was soll ein Java-Anfänger damit anfangen? Er wieß ja nicht, mal was Pointer sind. Er kennt ja nur die abgespeckte Version unter dem Namen "Referenz".



  • Don06 schrieb:

    [...]
    Das typische Beispiel dafür ist die "NullPointerException" in Java. Was soll ein Java-Anfänger damit anfangen? Er wieß ja nicht, mal was Pointer sind. Er
    kennt ja nur die abgespeckte Version unter dem Namen "Referenz".

    Das wird den Java-Anfänger in aller Regel nicht interessieren, weil nämlich in seinem Buch das er sich gekauft hat oder an gewissen Stellen er ungefähr sowas finden wird.

    "Thrown when an application attempts to use null in a case where an object is required. [...]". Und was "null" ist und tut wird in aller Regel vorher auch erläutert.

    Diese Antwort wird ihn zufrieden stellen, und es ist für den weiteren Verlauf unerheblich ob er nun weiß was ein Pointer ist. Aber du kannst ja auch mal bei Sun nachfragen weshalb sie das damals NullPointerException und nich NullReferenceException genannt haben.

    Und mal unter uns, vom Standpunkt der Softwaretechnik aus betrachtet hat C einfach verloren. Die Sprache hat ihre Daseinsberechtigung, ich verwende sie auch selbst durch meine Arbeit, jedoch ein grandioses Stück Ingenieurskunst ist sie nicht. 🙂



  • TheTester schrieb:

    jedoch ein grandioses Stück Ingenieurskunst ist sie nicht. 🙂

    hat das jemand je behauptet? Dennis Ritchie hat die Sprache C an den damaligen Bedürfnissen angepasst, mit ein Grund, warum C so erfolgreich wurde.

    http://en.wikipedia.org/wiki/C_(programming_language) schrieb:

    The initial development of C occurred at AT&T Bell Labs between 1969 and 1973; according to Ritchie, the most creative period occurred in 1972. It was named "C" because many of its features were derived from an earlier language called "B", which according to Ken Thompson was a stripped-down version of the BCPL programming language.

    The origin of C is closely tied to the development of the Unix operating system, originally implemented in assembly language on a PDP-7 by Ritchie and Thompson, incorporating several ideas from colleagues. Eventually they decided to port the operating system to a PDP-11. B's lack of functionality to take advantage of some of the PDP-11's features, notably byte addressability, led to the development of an early version of the C programming language.

    The original PDP-11 version of the Unix system was developed in assembly language. By 1973, with the addition of struct types, the C language had become powerful enough that most of the Unix kernel was rewritten in C. This was one of the first operating system kernels implemented in a language other than assembly. (Earlier instances include the Multics system (written in PL/I), and MCP (Master Control Program) for the Burroughs B5000 written in ALGOL in 1961.)



  • troll schrieb:

    gott schrieb:

    Sauberes Deinitialisieren/Aufräumen in komplexeren Sequenzen ist nur mit goto halbwegs sauber lösbar

    zu glauben "goto == immer böse" finde ich nicht gut. goto kann manchmal sehr praktisch sein, man muss nur wissen, was man tut.

    Ich finde es nicht gut, wenn Leute nicht lesen können.

    P.S. da ich heute einen guten Tag habe gebe ich dir einen Tipp: ich nannte in meinem Posting sogar einen in C legitimen Einsatz von goto.



  • Hallo

    It0101 schrieb:

    1. In welchem Alter habt ihr angefangen?

    11 oder 12, weiß nicht mehr genau

    2. mit welcher Programmiersprache?

    QBasic von MS DOS 5, bin aber bald umgestiegen auf Turbo Pascal 5

    3. welche Rechnertechnik stand euch am Anfang zur Verfügung

    286er, 40 MB Festplatte, 1 MByte RAM (bald auf 4 aufgerüstet)

    4. Was war euer erstes richtiges Programm?

    Kann mich kaum erinnern... hatte dann irgendwann ein einfaches 2D-Labyrinthspiel im Grafikmodus samt Leveleditor zusammen.

    bis bald
    akari



  • 1. Angefangen mit 6 oder 7
    2. B
    3. PDP-11
    4. Standardkrams halt wie Textadventure und so.



  • Proggs, The schrieb:

    1. Angefangen mit 6 oder 7
    2. B
    3. PDP-11
    4. Standardkrams halt wie Textadventure und so.

    Bla...



  • Tachyon schrieb:

    Proggs, The schrieb:

    1. Angefangen mit 6 oder 7
    2. B
    3. PDP-11
    4. Standardkrams halt wie Textadventure und so.

    Bla...

    gibt schon echt alte knochen hier 😃



  • fricky schrieb:

    troll schrieb:

    gott schrieb:

    Sauberes Deinitialisieren/Aufräumen in komplexeren Sequenzen ist nur mit goto halbwegs sauber lösbar

    zu glauben "goto == immer böse" finde ich nicht gut. goto kann manchmal sehr praktisch sein, man muss nur wissen, was man tut.

    Ich finde es nicht gut, wenn Leute nicht lesen können.

    meinst du mich jetzt mit "troll", oder was?



  • toll schrieb:

    gott schrieb:

    troll schrieb:

    gott schrieb:

    Sauberes Deinitialisieren/Aufräumen in komplexeren Sequenzen ist nur mit goto halbwegs sauber lösbar

    zu glauben "goto == immer böse" finde ich nicht gut. goto kann manchmal sehr praktisch sein, man muss nur wissen, was man tut.

    Ich finde es nicht gut, wenn Leute nicht lesen können.

    meinst du mich jetzt mit "troll", oder was?

    Ne quatsch, du doch nicht.



  • Ich bin zwar weder sehr lange dabei in diesem Forum, noch der Ersteller dieses Threads, aber:

    Diesers Thema ist, soweit ich das beobachten kann, nicht zum Zweck erstellt worden, um (ein weiteres Mal) über die Vor- und Nachteile gängiger Programmiersprachen zu diskutieren.

    Bitte nehmt das nicht persönlich, ist kein Angriff oder dergleichen, nur ein nett gemeinter Hinweis...

    Achja... und lasst doch endlich mal die Pointer in Ruhe, die können doch auch nix dafür 😉


Anmelden zum Antworten