Wieso gibt es keine gute Programmiersprache?



  • Artchi schrieb:

    2. Deren Programmierer kein OOP verstehen oder verstehen wollen (da gibt es genug prominente Coder, wie Linus Torwalds oder John Carmack. Wobei John C. irgendwann doch noch OOP gelernt hat und dann begeistert C++ einsetzte. Linus ist dagegen ein seniler Mann, der nicht fähig ist aus seiner C-Kiste auszubrechen).

    Geil. Wenn man also die Argumente anderer Personen nicht versteht, dann sind diese Personen gleich senil.
    Leute, ich habe den Zeloten hier gefunden.

    Jonathan Day schrieb:

    Originally, C++ interfaces were planned for. If you look at the early kernels, you’ll see provision was made for C++, but nobody ever used it.

    The C++ library is very awkward if you’re writing an OS kernel, as you have to not use anything that requires an OS kernel. With Linux, you’ll notice that flags are set to prevent the linking in of any runtime library.

    C++ generates large code. When Linux was first written, the top-line machines were 386SX’ with only a few megabytes of expanded memory. No co-processor was needed, small memory models were supported, no swap space was available. Fitting the compiler into memory along with the source was a challenge.

    These machines were also very slow. You would not want to use a 16MHz computer today. Put it like this, compiling X11R4 took me about a day and a half. That’s just X Windows. The Manchester Computing Centre distribution included that, the kernel, a bunch of system utilities, games, possibly LaTeX as well, I can’t remember. I’m honestly amazed they got the distro compiled the same year.

    There really wasn’t anything you would want or need objects for and most of the flexibility was introduced into C++ after 1991. In fact, I still can’t think of anything you’d want or need objects for.

    Later, when Linux started being ported to other architectures (IIRC, the Atari ST was one), you had further constraints - existing source code had to compile on other platforms with no modification other than the architecture-specific elements. That meant that the compiler had to work on those platforms, reliably, within memory constraints, and generate clean binaries.

    C is actually very flexible. Since nothing can be pulled in (so no STL, no libraries, nothing) and therefore everything had to be written from scratch, Linus, AC and the rest of the gang were absolutely free to write anything, any utilities, any macros, anything, they were at liberty to write pseudo-objects if they wanted. Not only did they not do so, they’ve belted people over the knuckles for code consolidation where this resulted in performance degradation. The large number of stacks, queues, etc, are not accidents but intentional to tune each implementation to the precise task involved with no slow-down.

    The main competitor to Linux, at the time, was William Jolitz’ 386BSD (written in C and based off the BSD4.3 tapes). A second competitor, HURD (based off the MACH tapes), also existed around that time, along with commercial PC Unix’ from Dell and SCO. 386BSD died and was replaced by BSDI (which got sued to oblivion) and FreeBSD. Both 386BSD and FreeBSD were fairly solid pieces of code back then, working robustly and able to do most of the stuff people needed done, but they did have some performance issues. HURD got nowhere and eventually died from a surfeit of microkernel.

    Linux survived because it was clean, compact and blazingly fast. It was also very easy to read and the number of programmers was extremely large (a few thousand by version 1, I think, and a few hundred thousand today).

    FreeBSD also survived because, although there was bloat, it was stable and did most of the stuff people needed — and, again, by being written in C, was accessible to a very large number of programmers.

    These days, C is still popular with OS developers, but for slightly different reasons. There are program validators for C, which means specialist kernels that are proven correct can be developed. Indeed, are. C is also very good at machine-level operations, so has displaced Forth as the language of choice for hardware developers. Since hardware developers are, by default, the best people at writing hardware drivers, you obviously want to appeal to them.

    Aber hey, vielleicht lassen wir den senilen Mann auch mal zu Wort kommen?

    Linus Torvalds schrieb:

    In fact, in Linux we did try C++ once already, back in 1992.

    It sucks. Trust me - writing kernel code in C++ is a BLOODY STUPID IDEA.

    The fact is, C++ compilers are not trustworthy. They were even worse in
    1992, but some fundamental facts haven't changed:

    - the whole C++ exception handling thing is fundamentally broken. It's
    _especially_ broken for kernels.
    - any compiler or language that likes to hide things like memory
    allocations behind your back just isn't a good choice for a kernel.
    - you can write object-oriented code (useful for filesystems etc) in C,
    _without_ the crap that is C++.

    In general, I'd say that anybody who designs his kernel modules for C++ is
    either
    (a) looking for problems
    (b) a C++ bigot that can't see what he is writing is really just C anyway
    (c) was given an assignment in CS class to do so.

    Feel free to make up (d).

    Und zumindest mit (b) kann ich ihm komplett zustimmen. Ich hatte letztens erst eine Diskussion darüber, wie wenn man alles wegnimmt, was in C++ komfortabel ist - STL, Exceptions, Templates - dass man dann im Grunde nur C hat. Mit einer anderen Syntax, klar. Aber effektiv nur C. Ein C, das zudem noch schwieriger zu debuggen ist.

    Erinnert mich irgendwie an die Schnapsidee, die Sun mal hatte - einen Treiber in Java in den Kernel tun. Oracle hat den Blogeintrag nicht mehr, aber das Zitat habe ich noch gefunden:

    The Java version took 178 microseconds and the C version took 63 microseconds. When a GC occurred during a copy, the Java version took 230 microseconds.

    Artchi schrieb:

    Aber um deine Frage zu beantworten: BeOS ist komplett in C++ programmiert.

    Woher nimmst du diese Information?

    Wikipedia schrieb:

    Closed Source
    ...
    The API was written in C++ [...]

    API != Kernel. Oder gehört der Kernel jetzt nicht mehr "komplett" zu BeOS?



  • @Artchi
    Toll, wie gut du Erkenntnisgewinne alter Männer von außen beurteilen kannst.
    Ich kann das nicht.
    Könnte es nicht auch sein, dass Torvalds trotz seiner von dir unterstellten Senilität mehr von Kernelprogrammierung versteht als du und ich zusammen es jemals tun werden und seinem Urteil demzufolge grundsätzlich mehr Praxisrelevanz zukommen muss?
    Ich beurteile nur das, was ich sehe.
    Und ich sehe, dass z.B. Dalvik auch überwiegend in C und eben nicht in C++ entwickelt ist.
    Und allgemein alle mir bekannten VMs auch.
    Und die Treiber aller meiner aktuellen Grafikkarten auch.
    Und diverse Schnittstellen aus Programmiersprachenkontexten heraus werden nach wie vor C-basiert angeboten und, wenn überhaupt, zusätzlich in C++. (JNI,OracleDB,LUA,Matlab,...)

    Linus vs C++
    und da wir grad dabei sind
    Linus: Java sucks

    Es spricht auch überhaupt nichts dagegen, eine Symbiose - jede Sprache in ihrer ureigensten Domäne - einzusetzen. Smalltalk beispielsweise hat eine C VM, die Sprache selbst bietet pure OO - eine ideale Symbiose.

    Es gibt natürlich auch Leute, die sich durchaus Gedanken über C in der heutigen Zeit gemacht haben - aber im Gegensatz zum Theoretiker Stroustrup - zu anderen Entscheidungen gekommen sind - und die heißt eben nicht C++:

    Interview with Ken Thompson
    By Andrew Binstock, May 18, 2011

    Post a Comment

    The creator of UNIX discusses writing UNIX, the Go language, and collaborating with Dennis Ritchie
    The Japan Prize, one of the highest honors awarded for outstanding contribution to science and technology, was awarded jointly this year to Ken Thompson and Dennis Ritchie for the creation of UNIX. The prize is normally given to the recipients at a lavish banquet in Tokyo attended by the emperor. However, due to the April earthquake and tsunami, the prizes this year were distributed at the honorees' place of work. I was able to attend the ceremony for Ken Thompson, held at Google headquarters, where he currently works. After the ceremony, he consented to this exclusive interview.

    DDJ: Congratulations on winning this prize.

    KT: Thanks.

    Developing UNIX
    DDJ: You've received a lot of awards over the years for UNIX. At what point in UNIX's development did it become clear it was going to be something much bigger than you'd anticipated?

    KT: The actual magnitute, that no one could have guessed. I gather it's still growing now. I thought it would be useful to essentially anybody like me because it was not built for someone else or some third party. That was a perjorative term then. It was written for Dennis and me and our group to do its work. And I think it would have been useful to anybody who did the kind of work that we did. And therefore, I always thought it was something really good that was going to take off.

    Especially the language [C]. The language grew up with one of the rewritings of the system and, as such, it became perfect for writing systems. We would change it daily as we ran into trouble building UNIX out of the language and we'd modify it for our needs.

    DDJ: A symbiosis of sorts…

    KT: Yeah. It became the perfect language for what it was designed to do. I always thought the language and the system were widely applicable.

    DDJ: In the presentation today, it mentioned that UNIX was open source. Was UNIX open source from the beginning?

    KT: Well there was no such term as "open source" then.

    DDJ: I was under the impression that UNIX really became open source with the Berkeley distribution.

    KT: No, we charged $100, which was essentially the reproduction cost of the tape, and then send it out. And we distributed, oh, probably close to 100 copies to universities and others.

    Go Language
    DDJ: Skipping several decades of work, let's speak about Go. I was just at the Google I/O Conference, where it was announced that Go will be supported on the Google App Engine. Does that presage a wider adoption of Go within Google, or is it still experimental?

    KT: It's expanding every day and not being forced down anybody's throat. It's hard to adopt it to a project inside of Google because of the learning curve. It's brand new and there aren't good manuals for it, except what's on the Web. And then, of course, its label of being experimental, so people are a little afraid. In spite of that, it's growing very fast inside of Google.

    DDJ: In the presentation before the awarding of the Japan Prize today, you were quoted on the distinction between reasearch and development. [The former, Thompson stated, was directionless, whereas development had a specific goal in mind.] So in that context, is Go experimental?

    KT: Yes. When the three of us [Thompson, Rob Pike, and Robert Griesemer] got started, it was pure research. The three of us got together and decided that we hated C++. [laughter]

    DDJ: I think there'd be a lot of people who are with you on that.

    KT: It's too complex. And going back, if we'd thought of it, we'd have done an object-oriented version of C back in the old days.

    DDJ: You're saying you would have?

    KT: Yes, but we were not evangelists of object orientation. [Returning to Go,] we started off with the idea that all three of us had to be talked into every feature in the language, so there was no extraneous garbage put into the language for any reason.

    DDJ: It's a lean language, indeed.

    Collaboration with Dennis Ritchie
    DDJ: Returning to UNIX, for a moment, when you and Dennis worked together, how did that collaboration operate? Were you working side by side?

    KT: I did the first of two or three versions of UNIX all alone. And Dennis became an evangelist. Then there was a rewrite in a higher-level language that would come to be called C. He worked mostly on the language and on the I/O system, and I worked on all the rest of the operating system. That was for the PDP-11, which was serendipitous, because that was the computer that took over the academic community.

    DDJ: Right.

    KT: We collaborated every day. There was a lunch that we went to. And we'd talk over lunch. Then, at night, we each worked from our separate homes but we were in constant communication. In those days, we had mail and writ (pronounced 'write'), and writ would pop up on your screen and say there was a message from so-and-so.

    DDJ: So, IM essentially.

    KT: Yes, IM. There was no doubt about that! And we discussed things from home with writ. We worked very well together and didn't collaborate a lot except to decide who was going to do what. Then we'd run and very independently do separate things. Rarely did we ever work on the same thing.

    DDJ: Was there any concept of looking at each other's code or doing code reviews?

    KT: [Shaking head] We were all pretty good coders.

    DDJ: I suspect you probably were! [Laughter]

    SCM
    DDJ: Did you use any kind of source code management product when working together?

    KT: No, those products really came later; after UNIX. We had something like it, which we called "the code motel" because you could check your code in but you couldn't check it out! So, really, no we didn't.

    DDJ: I bet you use SCM today in your work on Go.

    KT: Oh, yes, Google makes us do that!

    Ken Thompson: C,C++,Go



  • Wutz schrieb:

    Linus vs C++

    Ich verstehe nicht, weshalb diese "Kritik" so oft zitiert wird. Auf ihre Essenz eingedampft ist sie lediglich ein plumper Rundumschlag,
    der am Ende nicht mehr zu bieten hat als "C++ ist scheisse" und "C++-Programmierer sind scheisse". Ich tendiere eher dazu,
    einen Betrag nach dem Inhalt und nicht nach der Person zu bewerten, die ihn verfasst hat, und unter diesem Aspekt ist Linus' "Rant" ganz schön schwach.

    Finnegan



  • Linus Torvalds hat - quasi in einer one-man-show - sämtliche UNIX-Teams der global Player (IBM,HP,Sun...) brotlos gemacht und in der Praxis bewiesen, dass Kernelprogrammierung in C Hände gehört und nirgendwo anders hin.
    Nebenbei hat er auf Open-Source gesetzt in einer Zeit, in der noch kein IT-Manager das Wort kannte.
    Linus Torvalds hat in der Praxis bewiesen, dass ein Softwaremonolith nichts Schlechtes und auch in anschließenden Produktiv- und Wartungsphasen beherrschbar ist, und das auch neuerdings mit Git und nicht nur mit Linux.
    Die Praxis hat immer recht.
    Und die relevante Praxis (milliardenfache Installationen weltweit) nochmal mehr als ein Professoren-Elfenbeinturm:
    http://www.pro-linux.de/news/1/9696/tanenbaum-vs-torvalds-reloaded.html

    Warum hat denn Stroustrup (der später übrigens auch Professor geworden ist, im Gegensatz zu o.g. K.Thompson+Pike, die immerhin bei Google angeheuert haben) sein eigenes C++ nicht selbst zur Kernelprogrammierung eingesetzt wenn es dafür doch so phänomenal und unschlagbar geeignet ist?
    Die Voraussetzungen waren doch ideal:
    - er hat über Jahre in derselben Firma wie K&R gearbeitet
    - er hatte Zugriff auf den UNIX-Kernel von K&R usw.
    - er hatte den direkten Draht zu den Originalschöpfern
    Das kann ich dir sagen:
    Weil er keine Ahnung Praxis hatte/hat, er hat es ja noch nicht mal geschafft, eine Referenzimplementierung eines Compilers für sein C++ abzuliefern geschweige denn, mit diesem Compiler was Praxisrelevantes (milliardenfache Installationen weltweit) anzubieten.
    Die im Jahrestakt neu entstehenden C++-"Standards" sind nur der Beweis dafür, dass wirklich Praxisrelevantes von Stroustrup "vergessen" wurde; soviel zum Thema, was passiert, wenn sich ein Theoretiker eine neue Programmiersprache ausdenkt (das war, wie schon mehrfach von mir hier (in C-Forum) erwähnt, bei Ritchie anders).

    Fazit:
    Leute, die jetzt behaupten, mit dem jetzigen C++-Standard und irgendwelchen Boost- oder sonstwelchen Erweiterungen sei ein Kernel allgemein übersichtlicher,schneller,besser wartbar etc. zu implementieren sind einfach nur naiv und ignorieren die Leistungsfähigkeit von C in der Hand von Könnern.
    Wenn dem so wäre - bitte dann sollen sie es doch anhand zumindest eines praxisrelevanten Beispiels (milliardenfache Installationen weltweit) mal nachweisen, dass und wie man einen C++ Kernel schreibt.
    Ich bezweifle, dies in den nächsten Jahrzehnten von jemandem bewiesen zu bekommen.

    Wenn dir die Torvalds-Ausdruckweise nicht gefällt - nimm es hin - die Menschen sind nun mal (zum Glück!) verschieden.



  • Wutz schrieb:

    Linus Torvalds hat - quasi in einer one-man-show - sämtliche UNIX-Teams der global Player (IBM,HP,Sun...) brotlos gemacht und in der Praxis bewiesen, ...

    Ich weiss wer Linus Torvalds ist und was er geleistet hat.
    Das macht aber diesen speziellen Beitrag von ihm nicht automatisch zu einer qualifizierten Kritik - dafür hat er zu wenig Fleisch und ist zu schlecht begründet.
    Die einzigen konkreten Kritikpunkte die dort ansatzweise angerissen werden sind Exceptions und schlechte Implementierungen der Standardbibliothek -
    beides Dinge auf die man problemlos verzichten kann wenn es ein Projekt erfordert: Der LLVM-Code z.B. verwendet meines Wissens auch keine Exceptions
    und diverse Projekte wie z.B. einige Spiele-Engines verwenden gut begründet an performancekritischen Stellen eigene, spezialisierte Datenstrukturen, statt
    die aus der Standardbibliothek, deren Implementierungsqualität man nicht selbst kontrolliert.

    Beide Kritikpunkte lassen sich problemlos vermeiden, der Rest beschränkt sich auf "ist einfach scheisse". Da muss einfach mehr kommen - und ich bin wahrlich
    nicht jemand der sich gut begründeter Kritik verweigern würde oder sich nicht auch davon überzeugen ließe.

    Der Beitrag des Königs hat in diesem Fall leider keine Kleider.

    Finnegan



  • Bewerte den Inhalt nicht nach seinem Ausdruck.

    "Da muss mehr kommen" - Herr Torvalds muss überhaupt nichts - Herr Torvalds hat allen bewiesen, dass er sehr wohl weiß wovon er spricht.
    Wenn dir seine Ausführungen nicht detailreich genug sind - beachte, dass seine öffentlichen Äußerungen (ggü. anderen mediengeilen IT-Theoretikern +Managern) nur sehr spärlich gesät sind und er überhaupt keinen detailreichen Rechtfertigungszwang verspürt und hat - eben weil er genau weiß, wovon er spricht.

    Und hier sprechen wir über die Eignung von C++ als Kernel-Programmiersprache, und da ist Linus Torvalds eben die Instanz, die also keineswegs - wie hier angeklungen - ein alter und seniler Trottel ist, weil er eben in seiner eigenen "frischen Jungdynamikerzeit" (die hier ja auch schon gegen ihn ins Feld geführt wurde), sämtlichen Altvorderen das Wasser abgegraben hat, eben weil er gesagt (und getan) hat:

    - ich kann es besser als ihr alle zusammen
    - ich kann es alleine besser als ihr alle zusammen
    - ich kann es mit C besser als ihr alle zusammen
    - ich kann es besser als Professoren mit ihren Weissagungen

    Torvalds muss niemandem mehr etwas beweisen, auch dir nicht.



  • Wutz schrieb:

    Bewerte den Inhalt nicht nach seinem Ausdruck.

    "Da muss mehr kommen" - Herr Torvalds muss überhaupt nichts - Herr Torvalds hat allen bewiesen, dass er sehr wohl weiß wovon er spricht.

    Warum heiratest du denn Herrn Torvalds nicht endlich? Meine Güte...
    Du hast in diesem Forum schon mehrfach bewiesen, dass du keine Ahnung von C++ hast. Damit bist du automatisch disqualifiziert, C++ kritisieren zu können. Geh' wieder C spielen und erspare uns diesen vollkommen sinnlosen C-vs-C++ Flamewar. Ich sehe dich hier eigentlich auch nur in solchen Threads aktiv mitmachen, wo die Ehre von C verteidigt werden muss. Glaub' mir, weder dein ach so heiliger Herr Torvalds, noch die Sprache C haben deinen Beistand nötig. 🙄



  • Ich habe im Gegensatz zu dir hier vielfach qualifizierten, standardkonformen und somit superportablen C-Code gezeigt, von dir habe ich noch nicht eine qualifizierte Codezeile gesehen.
    Hör auf mit deinem Pubertärgeplärre wenn sich erwachsene C-Programmierer unterhalten.
    Halt einfach die Klappe und trolle dich dahin wo du herkamst.



  • Wutz schrieb:

    Ich habe im Gegensatz zu dir hier vielfach qualifizierten, standardkonformen und somit superportablen C-Code gezeigt, von dir habe ich noch nicht eine qualifizierte Codezeile gesehen.

    Superportabel? Wow! Es ist unglaublich schwierig, mit C portabel zu programmieren, wenn man bedenkt, wie schlecht die Sprache darauf ausgelegt wurde und wie wenige C-Compiler es für verschiedene Plattformen gibt! 🙄 Merkst du eigentlich, was du schreibst? Außerdem habe ich gesagt, dass du kein ausreichendes Wissen um C++ hast, um es kritisieren zu können, wie du beispielsweise ja hier (aber nicht nur dort) bereits bewiesen hast. Deine C-Kenntnisse sind dafür vollkommen unerheblich.

    Wutz schrieb:

    Hör auf mit deinem Pubertärgeplärre wenn sich erwachsene C-Programmierer unterhalten.

    Pubertär ist einzig deine trotzige Verteidigungshaltung ggü. C. Solches Verhalten beobachtet man in der Regel bei jungen Programmierern, die nicht viel mehr als eine Sprache können und für das Ei des Kolumbus halten, das sie verteidigen müssen.

    Wutz schrieb:

    Halt einfach die Klappe und trolle dich dahin wo du herkamst.

    Wenn es dicht stört, kannst du jederzeit die Debatte verlassen. Es kam von dir sowieso nichts Konstruktives mehr.



  • Eine gute Programmiersprache wäre doch, wo ich im Klartext beschreibe was mein Programm tun soll und der Compiler spuckt das fertige Programm aus 😃



  • HarteWare schrieb:

    Eine gute Programmiersprache wäre doch, wo ich im Klartext beschreibe was mein Programm tun soll und der Compiler spuckt das fertige Programm aus 😃

    Aber genau das tun doch alle gängigen Programmiersprachen? Oder meinst du mit "im Klartext", dass die Sprache keine eigene Grammatik hat, sondern sich der deutschen oder der englischen Grammatik bedient?



  • könnte mal bitte jemand ein Code Review machen:

    if(thread.title.match("(gute|schlechte|beste) Programmiersprache"))
    {
       flamewar_probability = 1.0f - geometric_distribution(thread.numberMessages);
    }
    


  • Wutz schrieb:

    Bewerte den Inhalt nicht nach seinem Ausdruck.

    "Da muss mehr kommen" - Herr Torvalds muss überhaupt nichts...

    Abgesehen davon dass ich nicht einmal auf seine fragwürdige Ausdrucksweise eingegangen bin, sagst du mir tatsächlich zuerst, ich soll den Beitrag nach
    seinem Inhalt bewerten, während du direkt im nächsten Satz implizit sagst, ich solle ihn eben nicht nach dem Inhalt, sondern nur nach Torvalds Person bewerten?

    Mir bleibt da echt die Spucke weg - eigentlich müsste da nichts weiter zu schreiben 🙄
    Ich weiss deinen Versuch zu würdigen, aber ich bin mittlerweile echt zu alt für so'n Scheiss. Such dir jemand anderes zum spielen.

    Schönen Tach noch, und viel Spass in diesem Thread!
    Finnegan


  • Mod

    Finnegan schrieb:

    Such dir jemand anderes zum spielen.

    Tatsächlich ist gerade Linux als Plattform zum Spielen nicht so der Hit. Man fragt sich, wieso?

    Bill Gates ist u.a. mit Basic groß geworden und mit programmiertechnischem "Leben und Leben lassen" (?)

    Basic war früher langsam, und so hatte man gerne auch Pascal, C und Assembler eingesetzt. Die hatten aber auch Compiler und Linker und Basic öfter nur den Interpreter. Aber Quick Basic (4.5) von Microsoft bot einen Compiler und so Assembleroptimierung und so gibt es heute eben auch QB64.
    Aktuelle Prozessoren/Compiler sind wohl eher C Optimiert.

    Was spricht jetzt (unterm Strich) für C?
    Der Sprachumfang ist klein. So ist C heute einfacher als Assembler, weil heute die Assemblerwelt viel komplexer geworden ist (1000 - 2000 Befehle, Prozessormodes, Betriebssysteminteraktionen, schlechte, nur teilweise und gar nicht Dokumentiertheiten usw.) und weil schon früher der Dialektwahn um sich gegriffen hatte. Der hatte sich auch bei Basic oder Lisp und anderen funktionalen Sprachen breitgemacht.
    Der 2. Punkt ist, C ist standardisiert. Viele Jahre dialektfrei. C++, Objective C, Java, Python, Lua und alle anderen sind C-Dialekt. Python ist C mit Interpreter und Anleihen bei (modernen) funktionalen Konzepten und bei Basic.

    C ist pragmatisch, praktisch aufgebaut, modular angelegt und auch funktional und bewährt schnell.

    Haskell ist dagegen hightech-wissenschaftlich (gut), fundiert theoretisch aufgebaut (interessant) und traditionell eher langsam (man wundert sich).
    Haskell ist (leider) linuxoid (c eher nicht, c ist eher die Basis für Unixe, Bashscripting, Perl).
    Wie bei Linuxen gibt es dann eben keine Spielereien. Wozu auch? Wozu überhaupt Haskell und nicht gleich den Backend-C - Compiler mit C benutzen?
    (Die Hardware ist u.a. durch Spielereien so stark geworden. Durch die starken Grafikkarten profitieren wissenschaftliche Berechnungen - indirekt von Spielerei)

    Eine "Prelude" (Haskell), die eher an das Bett des Procrustes erinnert ( http://quittenbaum-consult.de/das-bett-des-procrustes-erkennen-und-verandern-sie-ungesunde-rahmenbedingungen/ ) . 🙄
    Es überrascht, dass der ghci bei der Eingabe von Sonderzeichen nicht abstürzt.

    In der Basic-Welt gibt es eben viel zu Spielen, funktionierende Sonderzeichen, extrem performante Grafikkartentreiber, ordentliche Druckergebnisse und viele Programme (eine Unzahl), die völlig ohne Abhängigkeitenärger laufen.

    Linux selbst macht Anleihen in der Dos-/Basic-/Assemblerwelt (MC) oder auch in der Welt der Lisp-Maschinen (Emacs).
    Basic-Interpreter sind nirgends in der Linuxwelt vorinstalliert. Nur Ruby und Python. Andere Sprachen wie Haskell/Ghci natürlich (auch) nicht.

    Auf der Linux-Assembly - Bootdiskette( http://asm.sourceforge.net/asmutils.html ) nur Assemblertools zum Vorzeigen und konsolesurfen, nichts zum selber entwickeln (außer von außen bzw. wie mit cat allein entwickeln?).

    Das wirkt, wie ein Dogmatismus mit C. Dieser Dogmatismus führt teilweise zu Java, Sonderzeichenhorror, mager bis gar nicht laufende Hardware (Drucker, Grafikkarten und sonst) - auch absurde Vorurteile über Assembler - und zu einer Spielunfreundlichen OS-Plattform. Wer weiß, wohin das sonst noch führt.

    Turbopascal ging einen anderen Weg.



  • nachtfeuer schrieb:

    C++, Objective C, Java, Python, Lua und alle anderen sind C-Dialekt. Python ist C mit Interpreter und Anleihen bei (modernen) funktionalen Konzepten und bei Basic.

    Geh, Blödsinn.
    Bevor Python ein C Dialekt ist ist es noch ein LISP Dialekt.



  • dachschaden schrieb:

    Artchi schrieb:

    Aber um deine Frage zu beantworten: BeOS ist komplett in C++ programmiert.

    Woher nimmst du diese Information?

    Wikipedia schrieb:

    Closed Source
    ...
    The API was written in C++ [...]

    API != Kernel. Oder gehört der Kernel jetzt nicht mehr "komplett" zu BeOS?

    Guckst du Sourcecode, siehst du Kernel etc. in C++. Haiku-OS ist ein BeOS, 100% kompatibel und nachprogrammiert.
    Schaust du Kernel, Virtual Memory etc. Siehst du C++ mit Klassen, Vererbung usw.
    http://cgit.haiku-os.org/haiku/tree/src/system/kernel



  • @Artchi

    Ich selbst hab man vor lange Zeit wiedersprochen, dass der BeOS Kernel in C++ geschrieben ist, ich weiß auch dass ich dafür ne Quelle hatte, aber egal, kenne sie nicht mehr xD



  • @Wutz! Nichts gegen die Leistung von Linus Torvads per se. Aber du tust ja gerade mal so, als ob er Erfinder und erster Implementierer von Kernels und Betriebssystemen ist. LOL

    Ich weiß nicht wie alt oder jung du bist, aber du solltest wissen, das LT einfach nur versucht hat ein Unix nachzuprogrammieren. Nichts gegen diese Leistung an sich, aber man sollte auch nicht so tun, als ob er jetzt etwas revolutionäres erfunden hat. Er hat sehr gute Fleißarbeit geleistet und dadurch Know How erworben. 👍

    Aber vor ihm haben schon viele andere Menschen Betriebssysteme designt und implementiert. Das wird jetzt dein Weltbild zerstören... tut mir leid, ist aber die Wahrheit. 😃

    Jedenfalls weiß ich nicht, warum er als Prophet angesehen wird? Und ich ihm abkaufen soll, das C++ total ätzend und C geil sein soll. 🙄

    Haiku-OS ist jedenfalls der Beweis, das man ein OS in C++ implementieren kann. Probier es aus, es funktioniert erstaunlich gut und flott. (abgesehen von vielleicht fehlenden Hardware-Treibern, das hat aber mit C++ per se nichts zu tun).



  • Zeus schrieb:

    @Artchi

    Ich selbst hab man vor lange Zeit wiedersprochen, dass der BeOS Kernel in C++ geschrieben ist, ich weiß auch dass ich dafür ne Quelle hatte, aber egal, kenne sie nicht mehr xD

    Kann ja sein, das der BeOS-Kernel nicht in C++ implementiert wurde. Aber Haiku ist dann halt ein anderer BeOS-Kandidat... und der ist FLOSS. 🙂



  • nachtfeuer schrieb:
    C++, Objective C, Java, Python, Lua und alle anderen sind C-Dialekt. Python ist C mit Interpreter und Anleihen bei (modernen) funktionalen Konzepten und bei Basic.

    Geh, Blödsinn.
    Bevor Python ein C Dialekt ist ist es noch ein LISP Dialekt.

    Huch, mir lief es gerade eiskalt den Rücken herunter... 😃

    (setq defun 0)
    
    (defun HalloWelt( a / )
      (if (= a nil)
        1
        0
      )
      2
    )
    

    Ich hasse LISP! :p


Anmelden zum Antworten