Vorstellung [Hier ist Scann0r]

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

Was kann das Python-Ökosystem denn da, was das Lisp-Ökosystem nicht anbietet?
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Numpy und die darauf aufbauenden Libraries, Tensorflow usw.
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

@grum.py:
Ich weiss nicht, ob Du nur trollst - Deine Haltung bzgl. Fremdbibliotheken erscheint mir komplett realitätsfern. Ab einer bestimmten Größe einer Anwendung braucht man Standardfunktionalitäten, die man nicht mehr selbst implementiert, weil es u.a. Zeit kostet und man Fehler wiederholt, die andere schon gemacht und gefixt haben und man ggf. das Domänenwissen nicht hat/sich erst erarbeiten müsste. Kein Entwicklerteam der Welt schreibt sich mal eben einen XML-Parser, eine DB-Schnittstelle, einen Kryptoalgorithmus, einen HTTP-Server oder ein GUI-Toolkit neu, nur weil sie es in ihrer Anwendung nutzen wollen. Dafür gibt es Teams, die sich dieser Domäne verschrieben haben und ihre Bibliotheken auf die typischen Fallstricke der Domäne hin auch testen können. Mit selbstgestricktem Kram kommt man niemals an diesen Punkt, ohne selbst zum Experten dieser Domäne zu mutieren.

Das arbeitsteilige Vorgehen beginnt doch schon im Projektteam selbst. Entweder hast Du noch nie in einem größeren Team resp. an einer größeren Applikation programmiert oder trollst.
grum.py
User
Beiträge: 137
Registriert: Montag 11. Mai 2015, 15:27

DasIch hat geschrieben:Numpy und die darauf aufbauenden Libraries, Tensorflow usw.
Matlisp? :K
Ansonsten gibt es u.a. auch ein Interface für die GSL
jerch hat geschrieben:Ich weiss nicht, ob Du nur trollst - Deine Haltung bzgl. Fremdbibliotheken erscheint mir komplett realitätsfern.
'tschuldige? :K
jerch hat geschrieben:Ab einer bestimmten Größe einer Anwendung braucht man Standardfunktionalitäten, die man nicht mehr selbst implementiert
"Man" (wer?) "braucht" (warum?) in erster Linie ein funktionsfähiges Programm. Klar kann man den Großteil der Arbeit von Leuten aus dem Internet erledigen lassen, dann schießt man sich halt früher oder später selbst in den Fuß; entweder, weil man blöd genug war, ein Paket zu nutzen, das man nicht selbst geforkt hat und das dann halt irgendwann einfach nicht mehr existiert (left-pad ist ja immer noch mein Lieblingsbeispiel), oder, weil man blöd genug war, ein Paket zu nutzen, das Bugs hat, die nur unter bestimmten Umständen auftreten, blöderweise immer nur in der eigenen Anwendung. Ist mir auch schon passiert (übrigens passenderweise, als ich mir mal Node.js angesehen habe...).

Komplexen Fremdcode debuggen zu müssen soll Zeit schonender sein als sein Zeug einfach selbst zu schreiben und dabei auf Overhead zu verzichten? In welcher Welt denn das?
jerch hat geschrieben:Kein Entwicklerteam der Welt schreibt sich mal eben einen XML-Parser, eine DB-Schnittstelle, einen Kryptoalgorithmus, einen HTTP-Server oder ein GUI-Toolkit neu, nur weil sie es in ihrer Anwendung nutzen wollen.
Ein eigener XML-Parser ist tatsächlich Quatsch, eine DB-Schnittstelle nicht unbedingt (es gibt Unternehmen, die eine eigene Datenbank verwenden), Kryptoalgorithmus auch nicht unbedingt (oder reicht dir einer?), ein HTTP-Server auch nicht unbedingt (OpenBSDs httpd hat zum Beispiel durchaus seine begründete Existenzberechtigung), das GUI-Toolkit ist fraglich (ich habe noch keins gesehen, das genau das macht, was ich gern hätte). Du solltest vielleicht nicht immer von deinen eigenen Bedürfnissen ausgehen.
jerch hat geschrieben:Entweder hast Du noch nie in einem größeren Team resp. an einer größeren Applikation programmiert oder trollst.
Oder ich mag einfach Effizienz.
BlackJack

@grum.py: Etwas global definieren als Lösung ist ja süss. Äh, nein danke, dann nehme ich lieber eine andere Programmiersprache. :-)

Ich kenne eine Menge Projekte die neu in Java gestartet werden. Und viele die in Sprachen geschrieben werden die auf der JVM laufen. Soweit ich weiss ist Java auch immer noch die dominante Sprache für Android. Es gibt auch regelmässig neue Projekte in Perl. Wenn eine Sprache erst einmal Fuss gefasst hat, dann ist die nicht so schnell wieder tot zu kriegen.

Du gehst also tatsächlich davon aus, dass die Firmen ihre Mitarbeiter zu Google Docs bringen? Da habe ich genau die gegenteilige Erfahrung, viele die ich kenne haben eher das Problem das die Mitarbeiter auch in der Firma Google Docs verwenden wollen, weil das so praktisch ist. Die Firmen finden das gerade wegen der rechtlichen Situation nicht gut, und unsere Firma rät da auch von ab und zu selbst gehosteten Cloudlösungen.

Disqus ist kein statischer Text. Der wird dynamisch in die Webseite eingabaut und kommt von einem anderen Server. Und das soll/muss auch bei ansonsten statischen Webseiten funktionieren. Mein Blog ist beispielsweise statisch. Auf meinem Webspace läuft dafür kein Programm. Und da finde ich es ungemein praktisch trotzdem Kommentare möglich zu machen. Auch hier gilt wieder, Du musst es ja nicht nutzen.

Wozu braucht man libcurl? Ich denke in solchen Fällen schreibt man sich das in C++ noch mal selber.

Du musst Dich ja nicht mit „Multimediafwenn schon recht haben, oder doch mindestens in der Mehrzahl sind. Und damit die breite Masse repräsentieren. Das ändert auch nichts an der albernen Fragerei ob ich oder snafu die breite Masse sind.

Mit dem 14,4K-Modem mit dem ich die ersten Schritte von zu Hause ins Netz gemacht habe, wurden auch damals die Seiten nicht schneller geladen wurden. Heute gibt es mehr Bandbreite und die kann man brach liegen lassen, oder halt nutzen. Ich finde nutzen sinnvoller. Und ich bin anscheinend nicht alleine. Du musst die entsprechenden Webseiten ja nicht ansteuern.
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

Ah sorry, die Diskussion ist mir zu unsachlich und grum.py widerspricht sich permanent selbst. Dafür ist mir die Zeit zu schade. Damit es nicht als haltloser Vorwurf im Raum steht, hier ein paar Unsachlichkeiten und Widersprüche, die mich glauben lassen, dass er noch nie etwas Größeres mit konkreter Zielvorgabe programmiert hat und nur trollt:
- globale Definitionen als Heilmittel gegen Probleme im Speichermanagement in C++ :lol:
- boost ist pfui, lieber eigenen effizienteren Code schreiben, als die C++Cracks rund um boost :lol:
- eigene Implementation eines XML-Parsers ist Quatsch, aber ein eigenen DBMS geht ok, weil es Firmen gibt, die sowas machen :lol:
- GUI-Toolkit mag er keines - ok nicht jeder macht Desktopentwicklung, aber wegen der Verweigerung gegen Fremdbibliotheken frag ich gar nicht erst nach anderen APIs :lol:
- Er mag Effizienz. Ich mag Fischbrötchen und eingehaltene Deadlines. :lol:
grum.py
User
Beiträge: 137
Registriert: Montag 11. Mai 2015, 15:27

BlackJack hat geschrieben:Etwas global definieren als Lösung ist ja süss. Äh, nein danke, dann nehme ich lieber eine andere Programmiersprache. :-)
Nachdem du weiter oben C gelobt hast, ist das 'ne ulkige Aussage. Da gibt es ja nicht mal brauchbares Scoping. :mrgreen:
BlackJack hat geschrieben:Und viele die in Sprachen geschrieben werden die auf der JVM laufen.
Perl6 und Clojure werden aus genau diesem Grund nie eine akzeptable Marktdurchdringung erhalten. Java-Stacktraces sind igitt.
BlackJack hat geschrieben:Soweit ich weiss ist Java auch immer noch die dominante Sprache für Android.
Das liegt daran, dass Android selbst javabasiert arbeitet und alles, was nicht in Java geschrieben wird, entweder in C (oder direkt ASM) oder Java-Bytecode umgewandelt werden muss. Obwohl ich hörte, dass da ein Wechsel zu Swift angedacht ist. Nun kannst du Android-Apps natürlich auch in Python, C#, Delphi oder Lisp schreiben... mit allen Vor- und Nachteilen.
BlackJack hat geschrieben:Es gibt auch regelmässig neue Projekte in Perl.
ich wäre der Letzte, der sich über Perl (5) beschwert. :)
BlackJack hat geschrieben:Du gehst also tatsächlich davon aus, dass die Firmen ihre Mitarbeiter zu Google Docs bringen? Da habe ich genau die gegenteilige Erfahrung
Ich leider nicht.
BlackJack hat geschrieben:Disqus ist kein statischer Text. Der wird dynamisch in die Webseite eingabaut und kommt von einem anderen Server.
Der dynamische Einbau ist eine Designentscheidung, keine Notwendigkeit. Das ginge auch server- statt clientseitig. Ganz ohne JS-Gefummel. Kriegt WordPress ja auch hin.
BlackJack hat geschrieben:Und das soll/muss auch bei ansonsten statischen Webseiten funktionieren.
Was auch mein Hauptgrund ist, trotz meiner eigenen Blogsoftware (statisch) immer noch ein WordPress einzusetzen: Ich möchte niemandem JavaScript aufzwingen, nur um Kommentare lesen zu können.
BlackJack hat geschrieben:Auch hier gilt wieder, Du musst es ja nicht nutzen.
Prima!
BlackJack hat geschrieben:Wozu braucht man libcurl? Ich denke in solchen Fällen schreibt man sich das in C++ noch mal selber.
Klar, handgelötete TCP-Requests würden im Zweifelsfall auch funktionieren. Nur: Die hierfür empfehlenswerten Socketfunktionen in der stdlib sind erstens nicht portabel und zweitens ebenfalls Teil des C-Subsets. ;)
BlackJack hat geschrieben:Du musst die entsprechenden Webseiten ja nicht ansteuern.
Kann ich ohne JavaScript auch oft nicht mehr. Vermutlich kein Verlust.
grum.py
User
Beiträge: 137
Registriert: Montag 11. Mai 2015, 15:27

jerch hat geschrieben:hier ein paar Unsachlichkeiten und Widersprüche, die mich glauben lassen, dass er noch nie etwas Größeres mit konkreter Zielvorgabe programmiert hat und nur trollt:
Ein bisschen weniger "auf das Leben von Leuten im Internet schließen" hat noch niemandem geschadet.
jerch hat geschrieben:- globale Definitionen als Heilmittel gegen Probleme im Speichermanagement in C++ :lol:
Steht da nicht. Aber ich traue dir auch nicht zu, den Unterschied zu begreifen.
jerch hat geschrieben:- boost ist pfui, lieber eigenen effizienteren Code schreiben, als die C++Cracks rund um boost :lol:
Ich habe nicht behauptet, mein Code wäre effizienter. Was ich allerdings sehr wohl (zu Recht) festgestellt habe, ist, dass Boost meinem Code zwangsläufig (mit all seinen Abhängigkeiten) eine Menge Komplexität und vor allem Overhead aufdrücken würde. Dir ist sicherlich nicht entgangen, dass ich ein Problem mit aufgeblähten Bibliotheken und Ressourcenverschwendung habe. Und ja, ich gehe fest davon aus, dass std::filesystem deutlich besser funktioniert als boost::filesystem. Lolrofl.
jerch hat geschrieben:- eigene Implementation eines XML-Parsers ist Quatsch, aber ein eigenen DBMS geht ok, weil es Firmen gibt, die sowas machen :lol:
Das ist korrekt. Kennst du solche Firmen nicht? Dafür kann ich nichts.
jerch hat geschrieben:- GUI-Toolkit mag er keines
Das habe ich so nicht geschrieben, bitte bleib' bei den Fakten.
jerch hat geschrieben:wegen der Verweigerung gegen Fremdbibliotheken frag ich gar nicht erst nach anderen APIs :lol:
Verwechselst du gerade APIs (die schreibe ich nicht) und Implementierungen (die schon)? Welche APIs denn genau?
jerch hat geschrieben:- Er mag Effizienz. Ich mag Fischbrötchen und eingehaltene Deadlines. :lol:
Wenn du nicht in der Lage bist, effizient eigenen statt fremden Code zu schreiben, ohne dabei die Deadline zu sprengen, bist du ein lausiger Programmierer.

Lolrofl. Sag' bloß, es sind schon wieder Ferien...
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

grum.py hat geschrieben:...APIs (die schreibe ich nicht)...
Ok, dachte ich mir ja bereits. Wir können uns gerne weiter unterhalten, wenn Du ein paar mehr Erfahrungen in einer Sprache bzw. Softwareentwicklung generell gesammelt hast.
grum.py
User
Beiträge: 137
Registriert: Montag 11. Mai 2015, 15:27

Noch mal: Ein bisschen weniger "auf das Leben von Leuten im Internet schließen" hat noch niemandem geschadet. Aber ich versteh' schon, du bist mit ziemlicher Sicherheit nicht der Windbeutel, als der du dich hier zeigst, sondern ein anerkannter Programmierguru, der seine Brötchen damit verdient, Schnittstellen anzubieten. :mrgreen:

Bist'n ganz Großer.
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Das Linken gegen dynamische Bibliotheken bläht den eigentlichen Programmcode auch unheimlich auf...
grum.py
User
Beiträge: 137
Registriert: Montag 11. Mai 2015, 15:27

Ob du nun eine gigantische Bibliothek statisch reinlinkst oder dynamisch irgendwo im System hinterlegst - beides bleibt vollkommen unnötiger Overhead; und das nur, um - was? Drei, vielleicht vier Zeilen Code zu sparen? :K
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Das ist ja hier richtig explodiert :popcorn: (gabs dafür nichtmal ein Emoticon?).
the more they change the more they stay the same
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

@grum.py:

Windbeutel - Du musst ja nicht gleich beleidigend werden, nur weil ich Dir aufgezeigt habe, dass Du noch recht unerfahren bist.

Programmierguru - Nö, würde ich selbst nicht behaupten.

Brötchen - Da es Teil der Arbeit ist, fallen dabei auch Brötchen an, jepp.
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Bei einem, der sich Grumpy nennt, hätte man sich eigentlich denken können wie der unterwegs ist. :mrgreen:
Antworten