Programmieren

Soft- und Hardware-bezogene Diskussion.
Benutzeravatar
mastastefant
Schnapsbar
Beiträge: 3531
Registriert: Sa Dez 04, 2004 1:00 pm
Kontaktdaten:

Beitrag von mastastefant » Mi Apr 25, 2012 9:51 pm

Hier mal geek-p0rn für die Hardcore-Nerds: farbrausch hat zum 10-Jahre Geburtstag ihren Quellcode auf github gestellt
https://github.com/blog/1103-ten-years- ... -on-github
I find your lack of platform support disturbing.

Benutzeravatar
florianklachl
Beiträge: 5263
Registriert: Sa Nov 13, 2004 1:00 pm
Kontaktdaten:

Beitrag von florianklachl » Do Jan 21, 2016 10:48 pm

Die Entwickler von Notepad++ behaupten, dadurch, dass ihr Programm so gut geschrieben sei, könne dessen Anwendung anstelle jener herkömmlicher Editoren dazu beitragen, CO2 Emissionen zu vermindern. :)
Based on the powerful editing component Scintilla, Notepad++ is written in C++ and uses pure Win32 API and STL which ensures a higher execution speed and smaller program size. By optimizing as many routines as possible without losing user friendliness, Notepad++ is trying to reduce the world carbon dioxide emissions. When using less CPU power, the PC can throttle down and reduce power consumption, resulting in a greener environment.
https://notepad-plus-plus.org/
http://www.proreligion.at/

Sei immer du selbst. Außer du kannst ein Einhorn sein, dann sei ein Einhorn!

Benutzeravatar
mastastefant
Schnapsbar
Beiträge: 3531
Registriert: Sa Dez 04, 2004 1:00 pm
Kontaktdaten:

Beitrag von mastastefant » Do Jan 21, 2016 11:36 pm

Ist nicht mal von der Hand zu weisen, diese ganzen Java- und Javascript-Web-Editoren lassen meine CPU regelmäßig heißlaufen..

Wenn CO2 der Vorwand sein soll um wieder effizientere Software zu baun, so be it :)

Edit: In dem Sinne müsste man eigentlich aus Klimaschutzgründen auch sämtliche dynamische Browserwerbung verbieten, oder zumindest AdBlock staatlich legitimieren.. Die wetter.at Seite zB. ist seit dem Redesign nicht mehr verwendbar, bei mir friert jedesmal der Browser für 10sek ein und danach geht der CPU Lüfter auf vollgas und das System wird richtig langsam, bis ichs schaff die Seite wieder zu schließen..
I find your lack of platform support disturbing.

Benutzeravatar
mastastefant
Schnapsbar
Beiträge: 3531
Registriert: Sa Dez 04, 2004 1:00 pm
Kontaktdaten:

Beitrag von mastastefant » So Dez 18, 2016 11:48 am

JetBrain hat bald auch eine IDE für Go im Programm:
https://www.heise.de/newsticker/meldung ... 74024.html

Bei der Gelegenheit sei auch auf PyCharm verwiesen: Eine großartige IDE für Python.
I find your lack of platform support disturbing.

Benutzeravatar
wiesl
Promillesau
Beiträge: 6185
Registriert: Sa Nov 13, 2004 1:00 pm
Wohnort: Wien

Beitrag von wiesl » Fr Mär 17, 2017 1:46 pm

Falls jemand eine Programmiersprache lernen oder auffrischen möchte, dem kann ich “Sololearn“ empfehlen.
https://www.sololearn.com

Die App ist recht verspielt, mit regelmäßigen Übungen dazwischen.

Benutzeravatar
Brett
Beiträge: 11040
Registriert: Mi Dez 29, 2004 1:00 pm

Beitrag von Brett » Fr Mär 17, 2017 3:05 pm

Anm.: Und falls jemand nach längerer Abstinenz überhaupt wieder mal irgendwas programmieren möchte, kann ich Python empfehlen.
Ich hab mir mit noch keiner Umgebung so leicht getan. Und an sich kann's recht viel (natürlich mit allen Nachteilen, die eine Interpretersprache so mit sich bringt).

Mit python-xy lässt sich viel anstellen, grad so im technischen Bereich. Dass es sich da um Python 2.7 handelt, darf einen nicht irritieren (Python 3.x gibt es auch schon seit über 10 Jahren). Insgesamt ist das nach wie vor mE besser supported.
Religion ist jetzt nicht einmal so blöd, als wie immer alle sagen.
Vita est peregrinatio.

Benutzeravatar
mastastefant
Schnapsbar
Beiträge: 3531
Registriert: Sa Dez 04, 2004 1:00 pm
Kontaktdaten:

Beitrag von mastastefant » Fr Mär 17, 2017 10:49 pm

Ich weiß nicht .. bei Python, jedesmal wenn ich mir denk, eigentlich ist die Sprache eh gar nicht soo schlecht, kommt wieder irgendein neuer Kompatibilitätssch*ß von Python 3 daher. Oder irgendein verrücktes "Feature" in der Sprache, bei dem man wieder Tage an Debugging verliert weil sich das Ding nicht so verhält wie mans erwarten würde oder eine Funktionalität hinter 3 Indirektionen versteckt ist.

Die Scriptsprache die mir bisher noch am besten gefallen hat (und ich glaub gar nicht dass ich das sage), ist Ruby. Die Dokumentation ist ein Graus, der Interpreter ist mit Abstand der langsamste aller Scriptsprachen, die Versionen sind noch öfter inkompatibel als bei Python (allerdings dafür nicht so gar arg verschieden), IDEs gibts glaub ich keine besonderen, Libraries gibts nicht so viel wie bei Python, ...

.. aber wenn man Algorithmen runterschreiben will, sind die funktionalen Programmiersprachenfeatures einfach um Größenordnungen besser als bei Python. Und die Block-Konstrukte sind zwar eigentlich vom Design her etwas hacky, aber in der Anwendung einfach genial. Und es hat eine normale C-Syntax, nicht diesen Whitespace-Einrückungs-Mist.
Einen Graphen aufbauen und durchlaufen? Kein Problem. Alle Elemente einer Liste nach einem Kriterium aufsammeln und mit einer anderen Liste vereinen? Einzeiler. Eine Halbordnung und Datenfluss-Analyse implementieren? Geht mit 30 Zeilen Code.

Nur die breite Unterstützung und die Libraries sowie die einfachen Scripting-Features (normale imperative Programmierung, einfaches Interfacing mit anderen Programmen und IO, ..) sprechen aber halt schon sehr für Python. Wenn ich irgendwas scripte, würde ich meistens auch Python verwenden. Ruby eher nur für Algorithmus-lastiges (bei denen Performance nicht so wichtig ist - aber hey, wenn Performance ein Kriterium ist, verwendet man keine Scriptsprache, sondern C++, vielleicht noch C#).

Man kann mit Python schon auch durchwegs brauchbaren Quellcode schreiben. Brauchbar, im Sinne von, wenn man ihn geschrieben hat, kann man oder gar jemand anderer 2 Monate später immer noch was damit anfangen.
Das Problem, ganz besonders bei der Python-Syntax ist halt, das bedeutet dass man zumindest:
- Bei *allen* Funktionen die nicht absolut trivial und offensichtlich sind (und selbst dann meistens), genau im Funktions-Kommentar jeden Parameter-Typ und Return-Typ dokumentiert
- Bei zumindest jeder Funktion und jeder Klasse am Ende einen '#end def' Kommentar macht um die Einrückungen sichtbar zu machen bzw. explizit das Ende der Funktion/Klasse hinzuschreiben.
.. und damit wird der Code letztlich länger und aufwendiger zu schreiben als in anderen Sprachen mit C Syntax und statischen Typen, und keiner machts sauber. Und selbst wenns wer macht, passt keiner die Kommentare an, wenn sich was ändert.

Aber anders ist der Code einfach nicht zu lesen und zu warten. Ich weiß gar nicht wieviel Lebenszeit ich bereits darauf verschwendet hab, in fremden Scriptcode und insbesonders in Pythoncode irgendwie mühsam über den Debugger rauszukletzeln was eine Variable, Parameter oder Rückgabewert eigentlich für einen Typ hat um rauszufinden wie ich ihn verwenden oder erweitern kann, und ich weigere mich mittlerweile auch, in irgendwelchen Opensource-Scripten rumzuwerken, wenn die nicht tiptop dokumentiert oder zumindest trivial verständlich und sauber sind. Dafür ist mir einfach die Zeit zu schad.

Lua hat mir auch ganz gut gefallen, ist aber eher etwas für kleine Plugins scripten, z.B. bei Gameengines. Größeren Code würde ich damit nicht schreiben wollen.

Erlang ist :kotz: auch wenns auch interessante Features hat.

Wer mal richtig Programmieren lernen will, dem sei Haskell ans Herz gelegt. Hab ich aber selber noch nie die Zeit dafür gefunden mich da mehr einzuarbeiten.
I find your lack of platform support disturbing.

Benutzeravatar
Brett
Beiträge: 11040
Registriert: Mi Dez 29, 2004 1:00 pm

Beitrag von Brett » Sa Mär 18, 2017 10:39 am

Kannst du mal einen Sample-Code einer Funktion posten, die deiner Idealvorstellung entsprechend kommentiert ist? Ich möcht immer gern was lernen. :teddy:

Endlich auch mal den verdammten Bären gepostet.

=========

Bei mir war's bezüglich Python-Version so:

Ich hab mir ein billiges Python-Buch von Mark Summerfield gekauft, in dem die Basics zu Python 3 vermittelt werden. Das war so ein ausrangiertes Mängelexemplar, fast 10 Jahre alt. Hatte vorher halt so kurz im Netz herumgeschaut, was denn die aktuelle Version ist und dachte, na gut, Python 3 wird wohl passen.

Dann wollte ich aber über einen COM-Port einen Sensor auslesen, bin ziemlich direkt auf pyserial gestoßen und hab dann festgestellt, dass die lib nur auf python 2.7 abgestimmt vorliegt.
Dann zu meinem Erstaunen festgestellt, dass die weitverbreitete Library-Sammlung python-xy auch 2.7 verwendet und so Annehmlichkeiten wie reportlab auch.

Wirkt so auf mich, als bestünde Python 3 neben 2.7 als geforktes Nebenprodukt.
Ich geh davon aus, dass es in manch anderen Bereichen viel gescheiter ist, 3 zu nehmen, Datenbanken, User-Apps, ...? Für meine Zwecke, wo ich mit der Tech-Science-Umgebung python-xy bestens bedient war, war 2.7 eindeutig sinnvoller. Man findet dafür im Netz auch mehr Hilfestellungen und Sample-Code. Konnte in vernünftiger Zeit mit Sensoren kommunizieren, was rumrechnen, ausgeben und ein Ergebnis-PDF für Doku-Zwecke erstellen.

Mit C und co. wär ich als Amateur sicher nicht so schnell zum Ziel gekommen.
Religion ist jetzt nicht einmal so blöd, als wie immer alle sagen.
Vita est peregrinatio.

Antworten