Vorstellung [Hier ist Scann0r]

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
grum.py
User
Beiträge: 137
Registriert: Montag 11. Mai 2015, 15:27

Dem Markt sind Programmiersprachen weitgehend egal, sie sind ja selten die Produkte. Entscheidend ist, was in ihnen programmiert wird, würde ich sagen.

Und da gibt es bei C++ aus guten Gründen recht viel. :)
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@gumpy: So viel unqualifizierte Kommentare, das halt ich jetzt nicht mehr aus. Klar löscht man alle zwei Jahre seinen kompletten Code, weil eine neue C++-Version rauskommt, und man ja immer nur mit dem neusten Standard schreibt. Und auf einen Schlag sind auch alle Bibliotheken, die man so braucht auch nur noch mit dieser Version geschrieben.
Nur weil C von der Komplexität einfach ist, heißt das noch nicht, dass man deshalb alles von Grund auf selbst schreiben muß. Stringmanipulation macht man gar nicht, weil man dafür Python verwendet oder nimmt eine Bibliothek, die die entsprechenden Funktionen bereitstellt. Ich weiß jetzt nicht, wie es mit C++17 aussieht, aber Unicode-Unterstützung war zumindest bis vor kurzem quasi nicht vorhanden.

Von dem, was ein Browser macht, hast Du keine Ahnung. Alle Programmierer außer Dir als unfähig hinzustellen, weil sie ach so viel Speicher verschwenden, ...

Dass es einen Unterschied macht, ob man Assembler-Befehle nativ unterstützt, oder einfach nur Textzeilen blind in den fertig compilierten Code kopiert, hast Du noch nicht verstanden. C++ macht nichts anderes und es gibt keine zwei Compiler-Varianten, die das auf die selbe Art und Weise tun.

C++ geht den Weg, immer etwas neues Draufzupacken, um ja nicht die Rückwärtskompatibilität zu zerstören. Dass Code der in der Variante 98 geschrieben wurde, dann doch nicht mit 17 zusammenarbeitet, ist dann die andere Seite der Geschichte. Der Python-Guru hat sich für einen radikal anderen Weg entschieden und hat nach langer Planung alte Zöpfe abgeschnitten. Was dabei rauskam, ist eine neue Sprache mit sehr ähnlicher Syntax.
C++ ist die gleiche Sprache, man muß aber komplett anders programmieren.
Beim Umstieg wird man in Python also gezwungen ein bißchen etwas anzupassen, sonst läuft gar nichts. Bei C++ zwingt einen nur eine alte Bibliothek, die nicht komplett neu geschrieben wurde, dazu, alles bisherige wegzuwerfen und wieder C++98 zu programmieren, obwohl man denkt, man könnte das doch mischen.
grum.py
User
Beiträge: 137
Registriert: Montag 11. Mai 2015, 15:27

Sirius3 hat geschrieben:Klar löscht man alle zwei Jahre seinen kompletten Code, weil eine neue C++-Version rauskommt, und man ja immer nur mit dem neusten Standard schreibt.
Moment, Moment: Diese Implikation habe ich nirgends getroffen. C++ ist es egal, welchen seiner Standards du verwendest.
Sirius3 hat geschrieben:Und auf einen Schlag sind auch alle Bibliotheken, die man so braucht auch nur noch mit dieser Version geschrieben.
Also ich kann in C++ durchaus zehn Jahre alte Bibliotheken mit neuen Sprachfeatures kombinieren. Wo liegt das Problem?
Sirius3 hat geschrieben:Stringmanipulation macht man gar nicht, weil man dafür Python verwendet oder nimmt eine Bibliothek, die die entsprechenden Funktionen bereitstellt.
Ich habe noch nie eine C-Anwendung geschrieben, bei der ich das unbedingte Bedürfnis hatte, Pythoncode einzubinden. :K Und natürlich kannst du versuchen, Probleme zu lösen, indem du einfach mehr Bibliotheken einbindest, aber das erscheint doch aus meiner Perspektive eher als Holzweg.
Sirius3 hat geschrieben:Ich weiß jetzt nicht, wie es mit C++17 aussieht, aber Unicode-Unterstützung war zumindest bis vor kurzem quasi nicht vorhanden.
In C hingegen ... :mrgreen:
C++17 hat u8-String-Literals als Neuerung bekommen, verhält sich damit ungefähr wie Python. ;)
Sirius3 hat geschrieben:Von dem, was ein Browser macht, hast Du keine Ahnung. Alle Programmierer außer Dir als unfähig hinzustellen, weil sie ach so viel Speicher verschwenden, ...
Ich weiß, dass es auch anders geht, weil ich weiß, was ein Browser macht. Das Problem ist, dass er mehr machen soll als bloß Websites anzuzeigen. (Vgl. NetSurf, der kann nix anderes, startet schnell, ist kompakt, verzichtet aber auf komplexe CSS- oder JavaScript-Funktionen. (Die JavaScript-Engine dort ist noch eher neu, aber eben auch auf Ressourcenschonung optimiert.)
Sirius3 hat geschrieben:Dass es einen Unterschied macht, ob man Assembler-Befehle nativ unterstützt, oder einfach nur Textzeilen blind in den fertig compilierten Code kopiert, hast Du noch nicht verstanden.
Ob ich Assemblerbefehle "übernehme" oder "irgendwo hin kopiere", erscheint mir jetzt nicht wie ein gewaltiger Unterschied. Vom Prozessor werden sie in jedem Fall genau so ausgeführt, wie sie reinkommen. :K In diesem Fall wäre etwas Erläuterung tatsächlich super.
Sirius3 hat geschrieben:C++ geht den Weg, immer etwas neues Draufzupacken, um ja nicht die Rückwärtskompatibilität zu zerstören.
Das stimmt nicht, C++ entfernt häufiger "alte" Features. Nur halt nicht alles auf einmal.
Sirius3 hat geschrieben:Der Python-Guru hat sich für einen radikal anderen Weg entschieden und hat nach langer Planung alte Zöpfe abgeschnitten. Was dabei rauskam, ist eine neue Sprache mit sehr ähnlicher Syntax.
Python2, Python3... Perl5, Perl6... auf dass sich die Lager einander um die Weltherrschaft streiten mögen. Und das soll jetzt irgendwie besser sein?
Immer, naja: häufig, wenn ich versuche, eine ausreichend komplexe Anwendung in Python zu schreiben (ich bin gern bereit zuzugeben, dass Python eine der besten Sprachen für Prototyping ist), scheitere ich eher früher als später daran, dass die meisten Bibliotheken mit meiner jeweils ausgesuchten Pythonversion nicht zusammenarbeiten. Ein Hurra der Kompatibilität.
Sirius3 hat geschrieben:Bei C++ zwingt einen nur eine alte Bibliothek, die nicht komplett neu geschrieben wurde, dazu, alles bisherige wegzuwerfen
Konkretes Beispiel? Die libcurl zum Beispiel ist nicht mal in C++ geschrieben, sondern gut abgehangener C-Code, und meinem C++17-Compiler ist es völlig egal, dass ich sie trotzdem einbinde.
BlackJack

@grum.py: Ich denke ich verstehe jetzt warum Du das Problem nicht verstehst: Wenn man immer alles selber schreibt, dann muss man natürlich keinen Code lesen und verstehen den andere geschrieben haben. In der realen Welt sieht es halt anders aus. Da muss man vorhandenen Code verwenden und mit anderen Leuten zusammenarbeiten. Das ist wahrscheinlich auch die Schuld des Arbeitgebers, das der Teams von mehreren Programmierern an Programme setzt, und nicht will das Zeit und Geld damit verschwendet wird, dass jeder von Null mit der Standardbibliothek und nichts anderen anfängt. Oder sollte man sich die STL auch selbst programmieren, damit man auch wirklich versteht was man da macht? Sind Betriebssystemaufrufe erlaubt, oder schreibt man sich den Kernel auch besser selbst? Firmware in Peripheriegeräten?

Was soll „Speicherverwaltung ist in modernem C++ tatsächlich optional“ bedeuten? Ich kann C++-Programme schreiben ohne mir über Speicherverwaltung Gedanken machen zu müssen? Also grössere Programme die tatsächlich dynamisch Objekte anlegen und die in der Gegend herum reichen? So wie das in Sprachen mit automatischer Speicherverwaltung geht?

Die Sprache C *ist* einfacher und weniger komplex als C++. Vergleiche einfach mal den Umfang von Syntaxkonstrukten und zugehöriger Semantik. Das sollte eigentlich offensichtlich sein. Und ja, ich habe schon Programme in C geschrieben die Texte manipulieren.

Warum BASIC die logische Konsequenz sein soll wenn einem C++ zu komplex ist, verstehe ich nicht. Warum nicht Python? Io? Smalltalk? …? Warum führt das zwangsläufig zu BASIC? Und welcher Dialekt davon?

Go ist eine Sprache die gut für webbasierte Dienste geeignet ist, aufgrund der Unterstützung für nebenläufige Programmierung („goroutines“) und der Standardbibliothek (z.B. HTTP-Kram). Dafür wird Google das dann wohl auch einsetzen. Zum Beispiel für dl.google.com, der Downloadserver für alle möglichen Google-Produkte/-Dienste.

Browser werden hauptsächlich von BWLern benutzt? Denn die Benutzer sind für fette Browser verantwortlich. Das Spielchen „wir fangen mal eine schlanke Version von Software X an, weil die mittlerweile viel zu fett ist“, endet in aller Regel damit das die Benutzer sich erst freuen, und dann nach und nach mehr Features verlangen bis die neue Software genau so fett ist wie die alte. Oder fetter. Das sind keine BWLer die das planen.

Falls die fünf Seiten Java-Stacktraces eine Replik auf meine Kritik an C++-Template-Fehlermeldungen sein sollte: Liegt wahrscheinlich an mir, aber ich verstehe bei den Template-Fehlermeldungen Null, weil die voll von irgendwelchen verschachtelten internen Templates sind, während Stacktraces zur Laufzeit in der Regel irgendwo den Teil enthalten den ich geschrieben habe, meistens am Ende, und ich dort üblicherweise auch die Stelle finde an der ich den Fehler gemacht habe, oder die ich näher Untersuchen muss um den Fehler zu finden. Bei Template-Fehlermeldungen verstehe ich gar nichts. Da habe ich mal von einem C++-Programmierer den Rat bekommen, den betroffenen Code wegwerfen und sorgfältig neu schreiben, in der Hoffnung den gleichen Fehler nicht noch mal zu machen, weil Template-Fehlermeldungen niemand wirklich versteht der sich nicht durch die Interna der Templates des jeweiligen Compilers wühlt.

Man begreift seine eigene Software wenn man Bibliotheken benutze statt alles neu zu schreiben. Das ist der normale Weg Software zu schreiben. Das machen alle, selbst C++-Programmierer. Nur so Spezialisten wie Du nicht. Ich habe auch keine Probleme beim Debuggen. Warum sollte man?

Assembler ist nicht Teilmenge von einer *Sprache* nur weil es Compiler gibt die die Sprache in Assembler übersetzen können. Wenn man der Argumentation so folgt, dann ist JavaScript eine Teilmenge von C und C++ weil man die mit ``emscripten`` zu JavaScript kompilieren kann.

Das Schlüsselwort ASM gibt es in Pascal nicht. Das gibt es in ausgewählten Compilern, die das jeweils nicht 100% gleich implementieren, weil es nicht zur Sprache Pascal gehört.

Browser ohne CSS und JavaScript? Versuch damit mal produktiv das Internet zu benutzen. Da kommst Du heute nicht mehr weit. Schlanker Browser wäre schön, aber benutzbar sollte das Internet, so wie es ist, halt schon noch bleiben.

Also entweder kann man mit einem aktuellen C++ Compiler auch alten Code übersetzen oder es werden alte Features entfernt. Beides geht nicht.

Und bei der Python-Programmierung hast Du Probleme mit der Versionskompatibilität von Bibliotheken? Was für Bibliotheken? Ich denke dann versteht man seine Programme nicht mehr und kann die auch nicht mehr debuggen? Warum programmierst Du das nicht alles selbst? Jetzt verwirrst Du mich ein wenig. :-D
grum.py
User
Beiträge: 137
Registriert: Montag 11. Mai 2015, 15:27

BlackJack hat geschrieben:Ich denke ich verstehe jetzt warum Du das Problem nicht verstehst: Wenn man immer alles selber schreibt, dann muss man natürlich keinen Code lesen und verstehen den andere geschrieben haben.
Muss ich manchmal, versuche ich aber zu vermeiden. "Not Invented Here". Ich kann Leute nicht ernst nehmen, die für triviale Funktionen einfach irgendein Paket einbinden. Über den Node.js-Zusammenbruch "neulich" habe ich schallend gelacht. Ein Dreizeiler, von dem Hunderte Pakete abhängen, weil alle zu faul sind, das selber zu schreiben. Wer keinen Bock auf Programmieren hat, der sollte es vielleicht besser lassen.
BlackJack hat geschrieben:Oder sollte man sich die STL auch selbst programmieren, damit man auch wirklich versteht was man da macht?
Nicht unbedingt. In den meisten Fällen wäre das Verschwendung. In Python schreibe ich mir ja auch nicht meinen eigenen Datenbankadapter, der am Ende doch nur das Gleiche macht wie sqlite3. Aber nicht jede Sprache hat erschöpfend umfassende Standardbibliotheken. C :mrgreen: zum Beispiel verzichtet aus gutem Grund darauf, dir die Boilerplate zu servieren.
BlackJack hat geschrieben:Was soll „Speicherverwaltung ist in modernem C++ tatsächlich optional“ bedeuten? Ich kann C++-Programme schreiben ohne mir über Speicherverwaltung Gedanken machen zu müssen?
Ja. Beziehungsweise bedingt: malloc() u.a. sind nicht zwingend notwendig, um ein C++-Programm zu schreiben. Objekte musst du schon noch instanziieren, aber was die im Speicher machen, musst du nicht explizit festlegen.
BlackJack hat geschrieben:Die Sprache C *ist* einfacher und weniger komplex als C++.
Korrekt. Deswegen musst du da auch mehr berücksichtigen. Wie viele Sternchen haben deine C-Programme denn so? :D
BlackJack hat geschrieben:Warum BASIC die logische Konsequenz sein soll wenn einem C++ zu komplex ist, verstehe ich nicht. Warum nicht Python? Io? Smalltalk? …? Warum führt das zwangsläufig zu BASIC? Und welcher Dialekt davon?
Lass' mich doch wenigstens einmal ein bisschen übertreiben. ;) Alternativ auch Pascal, noch so eine typische Anfängersprache. Ich habe mich auch sehr lange nicht an C++ rangetraut, weil es so anders war, nachdem ich QBASIC, Visual Basic, Pascal, ein bisschen Delphi u.a. "ausprobiert" hatte.
BlackJack hat geschrieben:Go ist eine Sprache die gut für webbasierte Dienste geeignet ist, aufgrund der Unterstützung für nebenläufige Programmierung („goroutines“) und der Standardbibliothek (z.B. HTTP-Kram).
Ah, verstehe. Allerdings fehlte mir bisher der Zusammenhang zum Googleportfolio. Steht ja nirgends, so weit ich das sehen konnte.
BlackJack hat geschrieben:Browser werden hauptsächlich von BWLern benutzt?
Nicht ganz. Ich hatte darüber vor einer Weile mal einen Rant geschrieben. (Werte Moderatoren: 'tschuldigt, falls das hier nicht so gern gesehen ist.) Zusammenfassung: Seit irgendwelche Wirtschaftsfuzzis das bis dahin einigermaßen brauchbare Web als Markt entdeckt haben, ist es mit dem Fokus auf Kompaktheit vorbei. Wir Benutzer könnten super darauf verzichten, dass Firefox auch als Betriebssystem für ein Officepaket benutzt werden kann. Ein Browser soll, das behaupte ich, ein Betrachter für HTML-Dokumente und keine Plattform sein. Nein, Benutzer haben sich das nicht ausgesucht.
BlackJack hat geschrieben:Falls die fünf Seiten Java-Stacktraces eine Replik auf meine Kritik an C++-Template-Fehlermeldungen sein sollte: Liegt wahrscheinlich an mir, aber ich verstehe bei den Template-Fehlermeldungen Null (...)
Das ist wahrscheinlich auch Erfahrungssache. Ich habe noch nie furchtbarere Fehlermeldungen als die von Java gesehen. :K
Vielleicht muss man sich daran auch nur gewöhnen.
BlackJack hat geschrieben:Das machen alle, selbst C++-Programmierer. Nur so Spezialisten wie Du nicht.
"Alle", natürlich. :) Zum Glück nicht, sonst wäre der Markt eine ziemliche Monokultur. Gibt es ja schon ist ein erschreckend schlechtes Argument gegen das Schreiben neuer Programme oder Bibliotheken.
BlackJack hat geschrieben:Assembler ist nicht Teilmenge von einer *Sprache* nur weil es Compiler gibt die die Sprache in Assembler übersetzen können.
Wir schweifen ein bisschen ab. Das ursprüngliche "Problem", das du hattest, war ja, dass C++-Compiler auch C verstehen, was du für schlecht hältst. Dass HTML-Betrachter oft auch JavaScript "können", stört dich aber nicht? :D gcc wäre ohne Unterstützung für ANSI-C vermutlich auch nicht merklich kleiner, insofern ist mir immer noch nicht ganz klar, was nun daran so schlimm sein soll. :?
BlackJack hat geschrieben:Das Schlüsselwort ASM gibt es in Pascal nicht. Das gibt es in ausgewählten Compilern, die das jeweils nicht 100% gleich implementieren, weil es nicht zur Sprache Pascal gehört.
Und der Unterschied zwischen asm in Turbo Pascal und asm in Free Pascal besteht zum Beispiel worin?
BlackJack hat geschrieben:Browser ohne CSS und JavaScript?
Nein, beides wird unterstützt, nur nicht unbedingt alle "Features". Aber das ist beim Chrome ja trotz der zehnfachen Ressourcenbelegung auch nicht anders.
Ich finde es übrigens entspannend, ohne JavaScript zu "surfen". Eine Website, die es voraussetzt, dass ich ihr erlaube, Code auf meinem Rechner auszuführen, um sie auch nur ansehen zu können, ist mir doch eher suspekt. Und auch für "Interaktion" sollte das nicht unbedingt notwendig sein. Sieht halt besser aus ist ein unzureichendes Argument. :K (Wohl wissend, dass ich den Fehler auch schon selbst gemacht habe.)

"Produktiv das Internet benutzen"? Meine Güte. Das Ding ist (auch) ein Unterhaltungsmedium. Was willst'n da produktiv sein?
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

grum.py hat geschrieben:Ich kann Leute nicht ernst nehmen, die für triviale Funktionen einfach irgendein Paket einbinden.
Ein paar Beiträge vorher meintest du noch, wie leicht das Debugging doch sei, wenn man alles selbst schreibt. Jetzt geht es nur noch darum, dass man keine fette Bibliothek einbinden soll, wenn man nur einen verhältnismäßig kleinen Teil daraus benötigt. Jetzt bin ich etwas verwirrt hinsichtlich deiner Expertenmeinung: Also sollte ich umfangreiche Bibliotheken, die quasi zum Standard-Repertoire eines Programmierers gehören, besser doch nicht nochmal von grundauf neu schreiben? Aber wie sieht es dann mit dem Debugging aus...?
grum.py
User
Beiträge: 137
Registriert: Montag 11. Mai 2015, 15:27

snafu hat geschrieben:Also sollte ich umfangreiche Bibliotheken, die quasi zum Standard-Repertoire eines Programmierers gehören, besser doch nicht nochmal von grundauf neu schreiben?
Diplomatisch formuliert: Dinge, die du mit vertretbarem Aufwand selbst implementieren kannst, sind es in der Regel nicht wert, wenige Stunden Arbeitsersparnis im Tausch für fehlende Kenntnis des eingebundenen Codes zu rechtfertigen.
BlackJack

@grum.py: „Not Invented Here“ ist eine abwertende Beschreibung. Das hast Du entweder nicht begriffen oder siehst das tatsächlich anders als die Mehrheit. Die aber natürlich allesamt Geisterfahrer sind.

C verzichtet aus gutem Grund auf eine umfassende Standardbibliothek; weil es keine Hochsprache ist. Das ist eine Sprache für spezielle, hardwarenahe Anwendung. Und auch dort würdest selbst Du nicht Code schreiben der SQLite-Datenbanken anspricht, ohne die entsprechende Bibliothek einzubinden. Hoffe ich zumindest.

Das mit der Speicherverwaltung bei C++ glaube ich nicht. Soweit ich das sehe muss ich mir Gedanken machen ob das Objeket auf dem Stack oder dem Heap landet, über seine Lebenszeit, damit der Speicher nicht zu früh freigegeben wird, und wenn schon nicht auf `malloc()`/`free()`-Ebene dann muss ich mindestens aus einem Zoo an Pointer-Templates auswählen die sich um die Speicherverwaltung kümmern, oder ich muss begründen können warum es auch ohne korrekt funktioniert. Dazu kommt die Frage was bei Zuweisungen passiert und wie Containertypen mit dem Objekt und dessen Speicher umgehen. Also letztendlich muss ich mir sehr explizit Gedanken über die Speicherverwaltung machen. Das scheint mir nicht optional zu sein.

Ich muss bei C nicht mehr berücksichtigen als bei C++. Nur andere Sachen. Und C verstehe ich, weil es einfach ist. Meine Programme haben so viele Sternchen wie nötig sind.

Und warum muss ich eine typische Anfängersprache verwenden wenn mir C++ zu komplex ist? Ich habe kein Problem mit Sprachen die nicht für Anfänger sind oder die nicht so simpel/hardwarenah wie C oder Pascal sind, sondern nur mit C++. Das versucht den Spagat zwischen hardwarenah und Hochsprache und bekommt ihn nicht sinnvoll hin. Was ich nicht schlimm finde, sondern einfach nur überflüssig.

Was meinst Du mit Googleportfolio? Die Sprache wird bei Google verwendet. Von Google aktiv entwickelt. Und zum Beispiel auch in der App Enginge zur Verfügung gestellt. Ausserdem gibt es ausserhalb von Google Benutzer wie Docker oder verbreitete Linux-Distributionen die damit arbeiten, die sicher nicht mal eben so auf eine Sprache setzen, sondern abwägen ob die für ihren Einsatzzweck besser ist als andere, und wie es mit der Zukunft der Sprache aussieht.

Interaktive Inhalte im Browser und Browser als Ablaufplattform für Anwendungen ist seit Anbeginn der Verbreitung von Internet hierzulande ein Thema. JavaScript und Browserplugins für Java und Flash sind nicht erst vor wenigen Jahren entstanden, sondern waren schon Bestandteil von dem Netscape auf den Sun-Maschinen, als die Benutzer noch auf eben solchen Maschinen in der Uni ins Netz gingen und AOL und Compuserve gerade anfingen so etwas ähnliches wie Internet für Otto-Normalverbraucher zugänglich zu machen.

Auf was ”Wir Benutzer” super verzichten können, bestimmst nicht Du sondern die Benutzer. Und die nehmen solche Angebote wie Google's Docs anscheinend an. Und wenn man sie nicht mag, dann muss man sie halt auch nicht benutzen. Zwingt Dich ja keiner zu. Du kannst den Browser ja weiterhin als reinen Betrachter für Hypertextdokumente ohne JavaScript verwenden. Nimm einen nicht-grafischen Browser, dann bleibt Dir auch CSS und Grafik erspart. Ist viel schlanker.

Auf der anderen Seite sind Webanwendungen die JavaScript richtig einsetzen wesentlich bandbreitenschonender als solche die immer die komplette Seite neuladen müssen wenn man Informationen zum Browser übertragen möchte oder neue (nach)laden möchte. Und es kann auch schneller sein wenn bestimmte Sachen schon im Browser erledigt werden, statt das man dafür jedes mal einen kompletten Round-Trip zum Server und zurück benötigt. JavaScript hat nicht nur was mit „sieht besser aus“ zu tun, sondern mit besserer Benutzbarkeit. Wenn Dich Seiten nicht ohne einen tatsächlichen Mehrwert durch JavaScript an Informationen lassen, dann ist das nicht die Schuld von Browsern, sondern von den Leuten die diese Seiten verbrochen haben.

Sehen Tracebacks von C++-Programmen denn wesentlich anders aus als solche von Java-Programmen? Ich habe die sehr ähnlich in Erinnerung.

Warum ist „Gibt es ja schon“ ein schlechtes Argument ein Programm oder eine Bibliothek nicht selbst noch mal zu schreiben? Wenn es funktioniert und getestet ist, und man sonst keinen Grund hat es selbst zu schreiben, ist das einfach nur Zeitverschwendung. Die Zeit kann man besser investieren etwas tatsächlich neues zu Programmieren, was es noch nicht gibt.

HTML und JavaScript lösen grundverschiedene Probleme und ergänzen sich. C und C++ lösen die gleichen Probleme und damit ist C hier redundant in einem C++-Compiler. Das ist Ballast für Rückwärtskompatibilität der heute immer noch mitgeschleppt wird obwohl in keiner mehr benutzen sollte. Und ich rede auch hier wieder über den Programmierer und was der lesen und verstehen können muss. Die Grösse des Compilerbinaries hat mit dem Kritikpunkt rein gar nichts zu tun.

Versuch mal Turbo Pascal-Programme die ASM-Blöcke enthalten mit FreePascal zu übersetzen, dann siehst Du wo der Unterschied liegt: Es geht nicht. Also selbst bei einem Compiler der als Clone für Turbo Pascal gedacht ist, sind diese nicht gleich. Es gehört halt nicht zur Sprache Pascal.

Auch als Unterhaltungsmedium ist das Internet ohne JavaScript recht eingeschränkt. Für die meisten ist Unterhaltung mehr als ausschliesslich statischer Text. Das hat viel mit Interaktion und Multimediainhalten zu tun. YouTube, Soundcloud, soziale Netzwerke, …, wären ohne JavaScript eher scheusslich zu bedienen. Da geht es nicht um reines Aussehen, sondern um Funktionalität.
grum.py
User
Beiträge: 137
Registriert: Montag 11. Mai 2015, 15:27

BlackJack hat geschrieben:„Not Invented Here“ ist eine abwertende Beschreibung. Das hast Du entweder nicht begriffen oder siehst das tatsächlich anders als die Mehrheit. Die aber natürlich allesamt Geisterfahrer sind.
Ein beliebtes Beispiel ist OpenBSD. Nur, dass das, was die OpenBSD-Entwickler als Folge von "NIH" entwickeln, bald darauf zum Standard wird. OpenSSH und bald OpenSMTPd zum Beispiel. :)
Weil das, was es "schon gibt", in der Regel nicht genau das tut, was man gern hätte. Und Kompromisse eingehen zu müssen ist manchmal anstrengender als das Problem einfach durch Neuschreiben zu lösen.
BlackJack hat geschrieben:C verzichtet aus gutem Grund auf eine umfassende Standardbibliothek; weil es keine Hochsprache ist. Das ist eine Sprache für spezielle, hardwarenahe Anwendung.
Ich könnte jetzt die Geschichte von C auseinanderpflücken, um dir zu erklären, dass C tatsächlich nie dafür gedacht war, wegen seiner geringen Größe aber ganz gut dafür funktioniert, aber ich glaube, das würde hier zu weit führen. (Außer, es besteht Interesse.)
BlackJack hat geschrieben:Und auch dort würdest selbst Du nicht Code schreiben der SQLite-Datenbanken anspricht, ohne die entsprechende Bibliothek einzubinden.
Ohne die sqlite3.dll/.so/wasauchimmer ist SQLite eher unpraktisch. Einiges an SQLite nervt mich aber, zum Beispiel das fehlende SET. Vielleicht sollte ich... :mrgreen:
BlackJack hat geschrieben:Das mit der Speicherverwaltung bei C++ glaube ich nicht.
Ausprobieren! :D
BlackJack hat geschrieben:Soweit ich das sehe muss ich mir Gedanken machen ob das Objeket auf dem Stack oder dem Heap landet, über seine Lebenszeit, damit der Speicher nicht zu früh freigegeben wird
Das ist nur von Bedeutung, wenn du absichtlich direkt im Speicher herumschreibst. Ansonsten interessiert dich als C++-Entwickler das nicht. Wenn ich eine Klasse instanziiere, kann ich da theoretisch irgendwelche Sternchenkonstrukte nutzen und "new" und Pfeile in den Code malen, bis es kompiliert - oder ich schreibe MyClass class(foo, bar); und lasse den Rest von C++ übernehmen. Und das ist nun inwiefern schlimmer als z.B. in Python?
BlackJack hat geschrieben:C verstehe ich, weil es einfach ist.
Es hat weniger Konstrukte als C++, du musst dir also für die gleiche Aufgabe kompliziertere Lösungen ausdenken. Und dauernd auf Memory-Leaks und Nullpointer aufpassen. Ich dachte, das stört dich. :K
BlackJack hat geschrieben:Ich habe kein Problem mit Sprachen die nicht für Anfänger sind oder die nicht so simpel/hardwarenah wie C oder Pascal sind, sondern nur mit C++.
Hardwarenahes Pascal. Das wär' mal was. (Völlig ohne Ironie. Ich mag Pascal, obwohl ich es kaum noch verwende.)
BlackJack hat geschrieben:Die Sprache wird bei Google verwendet. Von Google aktiv entwickelt.
Meines Wissens ist Go "bei Google" entstanden, wird aber nicht "von Google" entwickelt. Oder trügt mich da meine Erinnerung? Ich dachte immer, das sei eher so ein Zufallsprodukt aus einem GSoC gewesen.
BlackJack hat geschrieben:Ausserdem gibt es ausserhalb von Google Benutzer wie Docker oder verbreitete Linux-Distributionen die damit arbeiten, die sicher nicht mal eben so auf eine Sprache setzen, sondern abwägen ob die für ihren Einsatzzweck besser ist als andere, und wie es mit der Zukunft der Sprache aussieht.
Ich hoffe ja, dass der Containerwahn bald ein Ende findet. Aber ich habe sicherlich auch andere Ansprüche als andere Menschen.
BlackJack hat geschrieben:Interaktive Inhalte im Browser und Browser als Ablaufplattform für Anwendungen ist seit Anbeginn der Verbreitung von Internet hierzulande ein Thema.
Ablaufplattform: Nö. (Schon, weil Internet und WWW nicht annähernd dasselbe bezeichnen.) Interaktive Inhalte schon eher, aber auch da fehlt die sinnvolle Umsetzung. So lange Hyperlinks nur in eine Richtung funktionieren, funktioniert es nicht wie beabsichtigt. Die Erfinder des Hyperlinks (Suchbegriff: Project Xanadu) hatten sich das durchaus ganz anders vorgestellt. Besser irgendwie. :K
BlackJack hat geschrieben:JavaScript und Browserplugins für Java und Flash sind nicht erst vor wenigen Jahren entstanden, sondern waren schon Bestandteil von dem Netscape auf den Sun-Maschinen
Die zeitlichen Zusammenhänge zwischen Java, Flash und JavaScript (das ja nicht zum Spaß so heißt) sind mir durchaus bekannt. Nur ist Java erfreulicherweise krachend gescheitert (mit wenigen unbelehrbaren, aber stetig weniger werdenden Ausnahmen), und der "meine Website braucht einen flashanimierten Vorhang als Intro"-Wahn war auch recht schnell vorüber.

Heute wird HTML - HyperText Markup Language - für so was missbraucht. Niemand käme auf die Idee, eine Tabellenkalkulation in PDF zu programmieren, obwohl das auch nur eine Textauszeichnungssprache ist. Aber HTML vollmüllen, das geht. (Guck' mal spaßeshalber, wer so alles im HTML5-Konsortium sitzt. Firmen, die einen Geldvorteil davon haben, dass ein Dokumentenbetrachter ihre Anwendungen ausführen kann. Keine Benutzer. Benutzer suchen sich sowas nicht aus. Benutzer mögen es, wenn eine Anwendung schnell und schlank ist.)

Ich bin pragmatisch und finde das deswegen, gelinde gesagt, zum Kotzen. Ob ich es ändern kann oder nicht, ist mir dabei vollkommen wurscht.
BlackJack hat geschrieben:Auf was ”Wir Benutzer” super verzichten können, bestimmst nicht Du sondern die Benutzer.
Und das ist wer? Du? Die? Wir?
BlackJack hat geschrieben:Und die nehmen solche Angebote wie Google's Docs anscheinend an.
Tja nun, andere essen halt auch Salat bei McDonald's.
BlackJack hat geschrieben:Du kannst den Browser ja weiterhin als reinen Betrachter für Hypertextdokumente ohne JavaScript verwenden.
Genau das tu' ich. Eíner meiner Laptops hat als Browser nur NetSurf und Emacs. Es stört mich nur, dass ich von den meisten Browserherstellern gezwungen werde, diesen ganzen Dreck mitzuinstallieren, den ich überhaupt nicht nutzen will. Firefox ist ein großartiger Browser, aber er wird immer träger und fetter, weil es eben solche Benutzer gibt, die immer mehr damit machen wollen. :K

Es ist etwas schade um meine Lieblingsprogramme, dass sie versuchen, den Falschen zu gefallen. (Und mir ist durchaus bewusst, wie egoistisch sich das liest. Aber Altruismus gehört nicht in die Informatik. Computer sind Werkzeuge, sie sollen gefälligst machen, was ich will. Womit wir wieder beim Thema wären...)
BlackJack hat geschrieben:Auf der anderen Seite sind Webanwendungen die JavaScript richtig einsetzen wesentlich bandbreitenschonender als solche die immer die komplette Seite neuladen müssen wenn man Informationen zum Browser übertragen möchte oder neue (nach)laden möchte.
Bandbreite ist eine Ressource, von der normalerweise "genug da ist". Ich habe weiter oben gelesen, RAM zu sparen sei heutzutage egal. Fand ich albern. Bandbreite zu schonen aber nicht?
BlackJack hat geschrieben:Sehen Tracebacks von C++-Programmen denn wesentlich anders aus als solche von Java-Programmen? Ich habe die sehr ähnlich in Erinnerung.
Hängt davon ab.
BlackJack hat geschrieben:Warum ist „Gibt es ja schon“ ein schlechtes Argument ein Programm oder eine Bibliothek nicht selbst noch mal zu schreiben?
Weil das, was es schon gibt, in den meisten Fällen Kompromisse erfordert. Das kann funktionieren, muss aber nicht. Von überflüssigem Overhead von Funktionen, die man nicht braucht, mal ganz abgesehen. Klar kann dein Programm doppelt so groß sein wie nötig, aber das ist dann halt Verschwendung von Ressourcen. Und das ist schlechter Stil.
BlackJack hat geschrieben:C und C++ lösen die gleichen Probleme und damit ist C hier redundant in einem C++-Compiler.
C-Programme sind im Wesentlichen gültige C++-Programme. C++ kann ja mehr und nicht nur andere Dinge. Da wird also nichts "mitgeschleppt". Oder was, glaubst du, sollte man "nicht mehr benutzen"?
BlackJack hat geschrieben:Versuch mal Turbo Pascal-Programme die ASM-Blöcke enthalten mit FreePascal zu übersetzen, dann siehst Du wo der Unterschied liegt: Es geht nicht. Also selbst bei einem Compiler der als Clone für Turbo Pascal gedacht ist, sind diese nicht gleich. Es gehört halt nicht zur Sprache Pascal.
Habe ich noch nicht ausprobiert, ich mag Inlineassembler nicht besonders. (Ich schreibe aber auch keine wissenschaftlichen Anwendungen mit viel Rechen-Blabla in Pascal.) Meinem C++-Compiler traue ich auch schnelleren ASM-Code zu als mir selbst, weswegen das nicht mal sprachabhängig ist.
BlackJack hat geschrieben:Für die meisten ist Unterhaltung mehr als ausschliesslich statischer Text. Das hat viel mit Interaktion und Multimediainhalten zu tun.
Weshalb ich die Lösung "früher" - wer Multimedia haben wollte, konnte seinen Browser einfach selbst mit Plugins vollmüllen, und der Rest brauchte den Mist nicht mitzuinstallieren - durchaus nicht unsympathisch fand.
BlackJack hat geschrieben:YouTube, Soundcloud, soziale Netzwerke, …, wären ohne JavaScript eher scheusslich zu bedienen.
Ich finde Websites, die JavaScript erzwingen, auch deshalb scheußlich zu bedienen. Verschiedene Mindsets, schätze ich. :K
BlackJack

@grum.py: Wenn man etwas das es schon gibt nicht das tut was man will, dann gibt es ja das was man will noch nicht, das ist also dann kein NIH.

Wofür C ursprünglich mal gedacht war, zu Zeiten als das noch als Hochsprache durchgegangen ist, ändert ja nichts daran wofür es heute gedacht und geeignet ist.

``MyClass class(foo, bar);`` funktioniert doch aber nur wenn das Objekt nur während des Aufrufs bzw. innerhalb des Blocks verwendet wird. Nicht wenn das auch nach Abarbeitung des Blocks noch existieren muss. Und wenn ich das bei einem Aufruf übergeben oder irgendwo hin zuweise, stellen sich auch Fragen was dann passiert, ob da was kopiert wird und wenn ja was. Und je nach dem was man da möchte, muss man die Klasse entsprechend implementieren. Und wenn man dabei Fehler macht, gibt es im besten Fall Speicherlecks und im schlechtesten Fall greift das Programm irgendwann auf uninitialisierten Speicher zu. Alles Sachen mit denen man in Python im Normalfall überhaupt nicht in Berührung kommt. Und in C# und Java auch nicht. Ebenfalls nicht in List, Haskell, Smalltalk, Io, und einem ganzen Haufen weiterer Sprachen.

Ich weiss wie ich bei C auf Speicherlecks und in der Luft hängende Zeiger aufpassen muss. Bei C++ weiss ich das nicht, weil das nicht so einfach ist. Ich weiss bei C wenn ich eine Zuweisung im Code sehe was da passiert. In C++ muss ich dazu die Imlementierung der Klasse kennen und verstehen. Ich muss mir in C auch keine komplizierteren Lösungen für die gleiche Aufgabe ausdenken. Es ist die gleiche Lösung nur mit etwas mehr Schreibarbeit, dafür verstehe ich die am Ende dann auch. Und kann mit grösserer Zuversicht sagen das sich da keine Fehler aufgrund der für mich nicht zu überschauenden Komplexität der Sprache eingeschlichen haben. Es ist einfacher nachvollziehbar.

Rob Pike und Kenneth Thompson sind wahrscheinlich ein bisschen zu alt für GSoC-Projekte. Die arbeiten bei Google und auf Wikipedia ist „Google Inc.“ als Entwickler von go angegeben. Die go-Leute finden C++ übrigens auch zu komplex: „In later interviews, all three of the language designers cited their shared dislike of C++'s complexity as a primary motivation for designing a new language.“ Sind wahrscheinlich auch zu doof. :-)

Die Aussage das Java krachend gescheitert ist, kann man eigentlich nur mit einer verzerrten Wahrnehmung der Realität erklären. Oder Wunschdenken das der Rückgang weil der Hype vorbei ist, mehr als eben das ist, ein Rückgang weil der Hype vorbei ist.

Die Tabellenkalkulation wird nicht in HTML programmiert sondern in JavaScript mit HTML/CSS für die Präsentation, also genau das wofür HTML gedacht ist. Der Name HTML enthält nichts darüber dass das nur statisch sein darf, und das hinter der Auszeichnungssprache auch ein DOM steckt, das per Programm verändert werden kann und soll, ist ebenfalls keine neue Erfindung der letzten paar Jahre. Das ist schon so vorgesehen.

PDF dagegen ist eher als statisches Format konzipiert. Als Alternative zum dynamischen PostScript. Mittlerweile haben die ja auch JavaScript da rein gebastelt, da weiss ich jetzt aber nicht ob man das Dokument tatsächlich ändern kann, so dass eine Tabellenkalkulation möglich ist. Wenn es das einfach *wäre*, dann gehe ich mal davon aus, dass schon längst jemand, und wenn auch nur zum Spass, mindestens eine kleine Textverarbeitung als PDF umgesetzt hätte. Was ich cool finden würde. Hätte im Geiste her was von Smalltalk und ähnlichen Sprachen in denen Sprache, Entscheidungsumgebung, und Programm/Projekt gemeinsam, gleichberechtigt in einem Image stecken.

Google Docs hat Benutzer. Wenn die sich das nicht ausgesucht haben, dann gehst Du tatsächlich davon aus, dass sie dazu gezwungen wurden? Kann ich aus eigener Erfahrung weder aus dem Bekanntenkreis noch von Kunden bestätigen. Auf Bedenken wegen der Datenkrake Google kommt da immer das wäre so schön praktisch, einfach, und neulich sogar mal: sicher. Von jemandem dem ein makroverseuchtes MS-Office-Dokument Probleme gemacht hatte, die er mit Google Docs noch nie hatte, weil das nicht einfach so ohne Sandbox Sachen auf seinem Rechner ausführt.

Zumal Google Docs auch bei schnell und schlank gegen die Konkurrenz gewinnen könnte. Auch wenn Browser nicht mehr so schlank sind wie Du das gerne hättest, Office-Pakete sind oft fetter. Da kannst Du jetzt gegen wettern, dass da ja auch nicht sein müsste wenn das denn nur von so tollen C++-Programmierern geschrieben würde, aber für den Benutzer ist das egal, der nimmt was da ist und nicht was theoretisch vielleicht sein könnte.

Wer die Benutzer sind? Na die Leute die die Software benutzen. Und wie gesagt, Google Docs hat Benutzer, auch wenn uns das (aus unterschiedlichen Gründen) nicht gefallen mag.

Firefox ist OpenSource. Kompilier Dir Deinen eigenen bei dem alles was Du nicht willst rausfliegt. Schnell forken bevor der komplett in Rust reimplementiert wurde! ;-)

Mir ist sowohl RAM als auch Bandbreite nahezu egal, solange damit ”linear” verschwenderisch umgegangen wird. Ich ging halt davon aus das Du wenn Du bei RAM Einwände hast, auch bei Bandbreite welche hättest. In Deinem verlinkten Blogbeitrag steht als Negativargument das Webseiten zu gross wären. Also dachte ich es wäre aus Deiner Sicht ein Pluspunkt wenn man mit JavaScript richtig eingesetzt, auch Bandbreite sparen kann.

Wobei ich Bandbreite ein wenig kritischer sehe als RAM solange die Netzversorgung so ungleichmässig verteilt ist. RAM wird von Amazon & Co nach ganz Deutschland geliefert, Breitbandinternet von Telekom & Co leider nicht.

Ich glaube man sollte in C++-Programmen kein C mehr benutzen, oder braucht man das tatsächlich? Wenn man es nicht braucht, dann wird es mitgeschleppt und könnte weg und die Sprache wäre zumindest ein klein wenig weniger (unnötig) umfangreich. Dazu gehört die C-Standardbibliothek, und Zeiger die von den meisten Alternativen von zusätzlichen Schlüsselworten abhängig sind. Beispielsweise das man solchen Code als ``unsafe`` deklarieren muss und so im Code bestätigen muss wo man das tatsächlich verwenden möchte.
grum.py
User
Beiträge: 137
Registriert: Montag 11. Mai 2015, 15:27

BlackJack hat geschrieben:``MyClass class(foo, bar);`` funktioniert doch aber nur wenn das Objekt nur während des Aufrufs bzw. innerhalb des Blocks verwendet wird. Nicht wenn das auch nach Abarbeitung des Blocks noch existieren muss.
Dann wird das halt global definiert. Worin liegt das Problem? Wenn man auf explizite Pointer verzichtet, leakt da auch nix. :K
BlackJack hat geschrieben:Und wenn man dabei Fehler macht, gibt es im besten Fall Speicherlecks und im schlechtesten Fall greift das Programm irgendwann auf uninitialisierten Speicher zu.
Dann lass' die Pointer und das new weg. :)
BlackJack hat geschrieben:Alles Sachen mit denen man in Python im Normalfall überhaupt nicht in Berührung kommt.
In sauberem, modernem C++ auch nicht.
BlackJack hat geschrieben:Bei C++ weiss ich das nicht, weil das nicht so einfach ist.
Weil es nicht nötig ist.
BlackJack hat geschrieben:In C++ muss ich dazu die Imlementierung der Klasse kennen und verstehen.
Mal was von Kommentaren gehört? :mrgreen:
BlackJack hat geschrieben:Die go-Leute finden C++ übrigens auch zu komplex: „In later interviews, all three of the language designers cited their shared dislike of C++'s complexity as a primary motivation for designing a new language.“ Sind wahrscheinlich auch zu doof. :-)
Thompson ist eher Ideologe als Techniker (man beachte seinen, salopp gesagt, unerlaubten Ideenklau mit B, später C), von der Software von Rob Pike (Sam, Acme, ...) kriege ich auch eher Kopfschmerzen als entspannte Finger. "Die waren früher mal an interessanten Sachen beteiligt" heißt halt nix. Werden wohl senil mit der Zeit. ;)
BlackJack hat geschrieben:Die Aussage das Java krachend gescheitert ist, kann man eigentlich nur mit einer verzerrten Wahrnehmung der Realität erklären.
Ich kenne eine Menge Migrationen weg von Java. Hinmigrieren mag irgendwie niemand. Warum nur?
Als Universitätssprache hat Python es auch seit Jahren im Visier.
BlackJack hat geschrieben:Die Tabellenkalkulation wird nicht in HTML programmiert sondern in JavaScript mit HTML/CSS für die Präsentation, also genau das wofür HTML gedacht ist.
Dann erklär' mir doch mal, was genau zum Beispiel <VIDEO> mit Hypertext zu tun hat. Unsere Definitionen von "war dafür gedacht" scheint zu divergieren. HT ist da nicht mehr viel.
BlackJack hat geschrieben:Google Docs hat Benutzer.
Masochisten. :mrgreen:
BlackJack hat geschrieben:Wenn die sich das nicht ausgesucht haben, dann gehst Du tatsächlich davon aus, dass sie dazu gezwungen wurden?
Wenn es zum Beispiel in ihrer Firma so vorgegeben ist, liegt es nahe, dass sie es zu Hause aus Bequemlichkeit auch verwenden. Firmen haben da ja oft einen Stock im Arsch. Bei Google würde ich allerdings eher nicht an Sicherheit denken wollen. Arbeitsrechtlich ist es auch noch fraglich, ob Firmen es überhaupt nutzen dürfen. Meines Wissens nicht, sobald persönliche Daten dort gespeichert sind. Interessiert halt keinen. Aber das ist eine andere Diskussion.
BlackJack hat geschrieben:Firefox ist OpenSource. Kompilier Dir Deinen eigenen bei dem alles was Du nicht willst rausfliegt. Schnell forken bevor der komplett in Rust reimplementiert wurde! ;-)
Keine Zeit, hab' schon so viele Projekte. Vertraue allerdings auch auf Pale Moon, dass das bis zum Neuschrieb stabil genug ist.
BlackJack hat geschrieben:Mir ist sowohl RAM als auch Bandbreite nahezu egal, solange damit ”linear” verschwenderisch umgegangen wird.
Wie schon gesagt: "Mindsets"... ;)
BlackJack hat geschrieben:In Deinem verlinkten Blogbeitrag steht als Negativargument das Webseiten zu gross wären.
Ich finde es lächerlich, dass Websites teilweise mehr Scriptkacke als Inhalt haben. Mehrere Megabyte JavaScript laden, damit zwei Kilobyte Text "dynamischer" sind... :K
BlackJack hat geschrieben:Also dachte ich es wäre aus Deiner Sicht ein Pluspunkt wenn man mit JavaScript richtig eingesetzt, auch Bandbreite sparen kann.
Korrekt, aber Effekthascherei nervt mich auch offline. :)
Nicht zu vergessen: Für die Anzeige von statischem Text (!) Javascript zwingend (!) vorauszusetzen (Beispiel: Disqus) ... :K
BlackJack hat geschrieben:Ich glaube man sollte in C++-Programmen kein C mehr benutzen, oder braucht man das tatsächlich?
Ja, zum Beispiel für libcurl. Du kannst dir auch einen Wrapper dafür schreiben. Der braucht dann aber trotzdem C. :mrgreen:
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

grum.py hat geschrieben:
BlackJack hat geschrieben:Die Tabellenkalkulation wird nicht in HTML programmiert sondern in JavaScript mit HTML/CSS für die Präsentation, also genau das wofür HTML gedacht ist.
Dann erklär' mir doch mal, was genau zum Beispiel <VIDEO> mit Hypertext zu tun hat.
Mit dem Argument dürfte man auch keine Bilder mehr erlauben und Tabellen streng genommen auch nicht. Du scheinst wirklich eine sehr minimalistische Einstellung zu haben. Ist dein gutes Recht, aber erwarte nicht, dass die breite Masse genau so denkt wie du.
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Bitte schlage im Duden nach, um dir diesen äußerst geläufigen Begriff erklären zu lassen...
grum.py
User
Beiträge: 137
Registriert: Montag 11. Mai 2015, 15:27

Das ist ja immer so das Problem mit dem Web: Die, die schon lange genug dabei sind, um noch zu wissen, wie schön es sein kann, wenn immer alles sofort lädt, müssen sich mit den Multimediafetischisten darum streiten, wer mehr ist... :K
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

Die Diskussion hier wird doch recht politisch und z.T. unsachlich geführt. Zwei Dinge, die mir aufgestossen sind:

Mit der einen oder anderen Sprachen geht dies oder das mehr. Gemessen woran? Ich hätte gerne eine Sprache für eine Orakelmaschine, leider fehlt die Maschine und die Sprache. Was alle gleich können, ist das olle endliche *hüstel* Turingband zu beschicken mit unterschiedlicher Effizienz. Alles andere, was Sprachen so bieten, ist IMHO nichts weiter als syntaktischer Zucker. Das ist dann durchaus alltagsrelevant, weil dem einen vllt. die Idiome der einen Sprache besser gefallen oder besser damit klar kommt und dem anderen vllt. eine umfangreichere Standardlib oder das Teamumfeld wichtiger ist. So what? Können alle nur das Gleiche...

Sprachen sind nicht dem Markt unterworfen. Es gibt nicht DEN Markt, Markt entsteht dort, wo ein Angebot auf eine Nachfrage trifft. Damit muss noch keine Gewinnerzielungsabsicht im marktwirschaftlichen Sinne verknüpft sein (das ist leider die enge Sicht, die uns die heutigen "Märkte" weismachen wollen). Z.B. unterliegen Geschenke zu Weihnachten (Angebot) der Gunst der Kinder (Nachfrage), was manche Großeltern dazu veranlasst, jedes Jahr mit größeren Geschenken aufzuwarten. Und genau das gibt es bei Programmiersprachen, es gibt Nachfrage (will programmieren lernen) und Angebot (Welche Sprache isses nun?). Und hier ist eher C++ (und neuerdings auch Java) im Hintertreffen - die Vorliebe bei Programmiereinsteigern ist zugunsten dynamischer Sprachen (vor allem Javascript) deutlich gesunken seit den 90ern, was man u.a. beim Vergleich der Projektaktivitäten, des eingesetzten Toolings und der Doku sehr schnell erkennt. Python macht da eher eine Seitbewegung mit leichtem Anstieg.

@grum.py:
Mag sein, dass Du alle C++ Sprachmittel super findest, mir geht das nicht so und ich habe auch kein Problem damit, das zuzugeben. Ich programmiere mit C++ seit über 15 Jahren, des Weiteren mit Python, ein bisschen C und nicht ganz so lange mit Javascript. Jede dieser Sprachen hat seine Eigenheiten, welche nerven und ich jedesmal in die Armlehne beissen möchte. Die angesprochene C-Untermenge z.B. würde ich inkl. Präprozessor aus C++ komplett rausschmeissen. Was leider nicht geht, da das historisch so tief verbacken ist, dass man eine neue Sprache hätte. Da interessiert auch keinen mehr, das Templating ursprünglich mal als Präprozessorersatz gedacht war. Stattdessen werden lieber Funktionalitäten in absurde Macrokonstruktionen ausgelagert. Und die Aussage, dass Du lieber alles from-scratch selbst schreibst, kauf ich Dir nicht ab. Ohne die Wohlfühlklassen der STL und boost (jetzt Teile davon im Sprachstandard) sitzt man in C++ sehr nackig da.
grum.py
User
Beiträge: 137
Registriert: Montag 11. Mai 2015, 15:27

jerch hat geschrieben:Ich hätte gerne eine Sprache für eine Orakelmaschine
Für künstliche Intelligenz wurde in den 50er Jahren die Sprache Lisp entwickelt. 8)
jerch hat geschrieben:die Vorliebe bei Programmiereinsteigern ist zugunsten dynamischer Sprachen (vor allem Javascript) deutlich gesunken seit den 90ern, was man u.a. beim Vergleich der Projektaktivitäten, des eingesetzten Toolings und der Doku sehr schnell erkennt. Python macht da eher eine Seitbewegung mit leichtem Anstieg.
Manche Sprachen sind heute so beliebt wie früher Pascal und davor Fortran. Was sagt das über "den Markt" (gleich, wie man ihn nun definiert) aus? Eben: Dass er im stetigen Wandel ist. Der Hype kommt und geht, manches überlebt die Jahrzehnte. Zum Beispiel C und C++. ;)
jerch hat geschrieben:Mag sein, dass Du alle C++ Sprachmittel super findest
Ausdrücklich nicht, sonst wäre ich nicht hier oder benutzte nur höchstens zwei Sprachen. Ich programmiere sehr gern in C++, weil aktuelle Standards mir einiges an Arbeit ersparen, unter anderem durch die ziemlich gute stdlib, die ja dauernd neue Sachen kann. (Das muss an Fremdcode aber auch reichen. :twisted: ) Das heißt nicht, dass ich nichts anderes mehr benutzte. Das wäre doch auch langweilig.
jerch hat geschrieben:Jede dieser Sprachen hat seine Eigenheiten, welche nerven und ich jedesmal in die Armlehne beissen möchte.
Richtig. Um mal den offensichtlichen Vergleich Python/C++ heranzuziehen: Für Prototyping ist C++ schlicht unbrauchbar, dafür ist die Performance von Python scheiße. C++ hat diverse hervorragende Compiler, Python dafür SQLite in der stdlib. Und so weiter und so fort...
So ist es ja nicht.
jerch hat geschrieben:Die angesprochene C-Untermenge z.B. würde ich inkl. Präprozessor aus C++ komplett rausschmeissen.
Nehmen wir an, du hast eine Software, die du an verschiedene Kunden geringfügig "angepasst" verkaufen willst. Präprozessoren (#if KUNDE1...) sind da die schnellste (wenn auch nicht gerade sauberste) Lösung. Oder? :)
jerch hat geschrieben:Und die Aussage, dass Du lieber alles from-scratch selbst schreibst, kauf ich Dir nicht ab. Ohne die Wohlfühlklassen der STL und boost (jetzt Teile davon im Sprachstandard) sitzt man in C++ sehr nackig da.
Ich weigere mich, Boost zu verwenden. C++17 hat jetzt (naja, im TR2) std::filesystem, C++20 bekommt voraussichtlich std::asio, damit ist alles, was mir persönlich - (!) - in der Standardbibliothek noch gefehlt hat, abgedeckt. Ich bin, das ist vielleicht schon aufgefallen, eher Minimalist. Und irgendwas gegen Boost linken zu müssen, das vorher unter Umständen auch noch kompiliert werden muss, stellt mir vorsorglich die Haare auf.

Dinge selbst schreiben zu "müssen" gibt einem übrigens auch eine gewisse Erfahrung, die später mal nützlich sein könnte. Wenn man mal mit sehr rudimentären Sprachen, die nicht für jeden Mäusefurz eine riesige Bibliothek auf Github rumliegen haben, arbeiten will oder so. ;)
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

grum.py hat geschrieben:
jerch hat geschrieben:Ich hätte gerne eine Sprache für eine Orakelmaschine
Für künstliche Intelligenz wurde in den 50er Jahren die Sprache Lisp entwickelt. 8)
Nein, wurde sie nicht. Darüberhinaus eignet sich für AI, zumindest unter dem was man heute darunter versteht, Python wesentlich besser.
grum.py
User
Beiträge: 137
Registriert: Montag 11. Mai 2015, 15:27

DasIch hat geschrieben:Darüberhinaus eignet sich für AI, zumindest unter dem was man heute darunter versteht, Python wesentlich besser.
Weil?
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Python hat mit Abstand das beste Ökosystem für wissenschaftliches Rechnen und AI bzw. Machine Learning.
Antworten