Programmiersprache lernen

@xenon-seven Nö, aber der Grundton hier klang mir so, als solle sich der TE nach der wirtschaftlichen Nützlichkeit richten. Und wenn Ich bedenke, dass die Industrie nichts lieber tut, als embedded Linux Plattformen in Kaffeemaschinen, Drucker, Autos und auch sonst in jede Maschine, die nicht bei drei aufm Baum ist, zu klatschen, klingts doch ziemlich nützlich wenn man sich nicht auf Windows festnagelt.

Und wie gesagt, Ich denke, dass der Desktop generell immer unbedeutender werden wird im Vergleich.
 
Und wer sagt, dass C# nur auf Windows läuft? .Net Core ist OpenSource und läuft auf Linux genauso wie auf Windows...
 
IBISXI schrieb:
Python ist auch guter Tipp für Anfänger.
nur mal aus interesse: ist sie das wirklich? ich kenne persoenlich niemanden, der durch python aufs programmieren kam und das heute noch (beruflich oder hobbymaessig) im grossen rahmen ausuebt. koennte ein subjektives/altersbedingtes ding (>30) sein, aber wenn ich leute gesehen habe die sich mit python befasst hab waren das in aller regel andere naturwissenschaftler, die das halt notgedrungen mal fuer irgendeine arbeit verwendet haben und sich dann in sachen anderer sprachen nicht weiter entwickelt haben.

ist voellig ohne judgment gemeint, verschiedene jobs/menschen haben verschiedene anforderungen ans programmieren.
 
Ich bin ja immer der Meinung das Programmieren nur gelernt und verstanden werden kann, wenn man sich mit den Grundlagen beschäftigt. Die Grundlagen sind meiner Meinung völlig unabhängig von der jeweiligen Sprache.
Die Sprache ist nur die jeweilige Grammatik.

Wenn man die Grundlagen verstanden hat ist es auch nicht mehr so wirklich schwer sich mit verschiedenen Sprachen auseinander zu setzen und hier spielt dann, der Fall der Anwendung eine Rolle oder welche Sprache man für welche Problemstellung man bevorzugt, mit ein wenig Abhängigkeit eines persönlichen Geschmacks.
 
Kommt drauf an wie man "für Anfänger" definiert ;)
Hello world in Python:
Python:
print("Hello world")
Hello word in C#:
C#:
using System;
namespace HelloWorld
{
    class Hello
    {
        static void Main()
        {
            Console.WriteLine("Hello World!");
        }
    }
}

Um ein Hello World in C# zu verstehen braucht man viel mehr (using, namespace, class, static void main etc.).
 
Ebrithil schrieb:
Und Anwendungen ohne GUI gibt's natürlich nicht...
Doch. Gibt es. was ich damit ausdrücken wollte ist, dass trotz aller Bemühungen C#/.NET bei Windows noch deutliche Vorteile hat.
Das heißt nicht, dass man das nicht auch unter Linux einsetzen kann. Aber es relativiert halt deren Bedeutung. Während C# unter Windows meistens eine recht gute Wahl ist, ist es unter Linux nur eine von Vielen.
Noch düsterer siehts unter Systemen wie FreeBSD aus.
 
bog schrieb:
nur mal aus interesse: ist sie das wirklich? ich kenne persoenlich niemanden, der durch python aufs programmieren kam und das heute noch (beruflich oder hobbymaessig) im grossen rahmen ausuebt. koennte ein subjektives/altersbedingtes ding (>30) sein, aber wenn ich leute gesehen habe die sich mit python befasst hab waren das in aller regel andere naturwissenschaftler, die das halt notgedrungen mal fuer irgendeine arbeit verwendet haben und sich dann in sachen anderer sprachen nicht weiter entwickelt haben.

ist voellig ohne judgment gemeint, verschiedene jobs/menschen haben verschiedene anforderungen ans programmieren.

Vor vielen vielen Jahren habe ich mal Pascal programmiert.
Vor ein paar Jahren habe ich mich mal mit C++ versucht.
Da habe ich mir extrem schwer getan.

Rein interessehalber habe ich mich letztes Jahr mal mit Pascal (EDIT: Python natürlich, sorry) versucht.

Meine persönliche Meinung:

Nichts ist so einfach wie Python.
Python ist gut lernbar, lesbar und verständlich.
Python ist gut strukturiert und logisch.
Python hat eine einfache Syntax.
Python bringt schnelle Erfolge.
Der Code von Python ist im Verhältnis viel kürzer.

Mich wundert es nicht das es immer mehr verwendet wird.

Es ist sehr, sehr brauchbar.
Komplexe Aufgaben lassen sich mit wenig Code lösen.
Python ist die letzten Jahre stark im kommen.

https://www.heise.de/developer/meld...ipt-vorne-Ruby-mit-Abwaertstrend-3739453.html
 
Zuletzt bearbeitet:
Pyton mag recht simpel zu schreiben sein, dennoch fehlt eine native Unterstützung auf 90 % aller Desktopsyteme. Man muss also erstmal einen Pytoninterpreter installieren, bevor ein Programm läuft und das ist in der Regel suboptimal.
 
Zuletzt bearbeitet:
Das stimmt.
Das ist einer der Nachteile.

Noch ein Nachteil ist die fehlende Hardwarenähe.
C++ Code ist viel performanter.

Für den Heimgebrauch ist das im Normalfall nicht besonders relevant.
Es hängt davon ab, wo man hin will und wie intensiv man sich damit beschäftigen will.

Ich hatte mit Python ungefähr 5 mal schneller die selben Ergebnisse wie mit C++.
 
Naja, bei Java brauch ich auch die Java JRE, bei .NET brauch ich die .NET Runtime (wobei die ja bei Windows zum Teil dabei ist)
 
Aber auch nur bis zu einer gewissen Version.
 
IBISXI schrieb:
Mich wundert es nicht das es immer mehr verwendet wird.
Mich nicht. Sämtliche Machine Learning Tools bieten eine Python Schnittstelle. Machine Learning befindet sich gerade im Hype - da wundert es mich tatsächlich nicht.

Python hat kein vernünftiges Static Typing -> für komplexe Aufgaben imho tendenziell ungeeignet.
Aber für Rapid Prototyping im mathematischen Kontext sicher keine schlechte Sprache.

Der TE will aber Windows Programme schreiben:
Tempo schrieb:
Mir geht es erstmal darum für Windows Programme zu schreiben.
Für einen Anfänger sollte hier mit Abstand C# am geeignetsten sein: Mit zahlreichen Libraries, einfachem Debugging, exzellenter IDE (ggf. mit ReSharper ergänzen), großer Verbreitung (Hilfe, Design Patterns) hat man mit C# alle Kriterien erfüllt, die für Anfänger auch nur annähernd relevant sein dürften, v.a. da man mit C# Kenntnissen relativ schnell überall hinkommen kann (selbst ins Web -> Typescript).


IBISXI schrieb:
Vor vielen vielen Jahren habe ich mal Pascal programmiert.
Vor ein paar Jahren habe ich mich mal mit C++ versucht.
Da habe ich mir extrem schwer getan.

Rein interessehalber habe ich mich letztes Jahr mal mit Pascal versucht.
Bleib nicht bei Python stehen - es gibt viel mehr zu sehen als diese 3 Sprachen. Hör nicht auf zu lernen.

Kleiner Edithinweis:
Nilson schrieb:
Aber auch nur bis zu einer gewissen Version.
Ohne manuelles Installieren meinerseits habe ich auf meinem Rechner .NET 4.7 installiert - dürfte bis zu Visual Studio 2019 die aktuellste Version sein …
 
Zuletzt bearbeitet:
new Account() schrieb:
Bleib nicht bei Python stehen - es gibt viel mehr zu sehen als diese 3 Sprachen. Hör nicht auf zu lernen.

Genau das ist bei mir das Problem.
Mich interessieren viele Sachen, ich probiere auch viele Sachen.
aber.... ich bin vergesslich.
und.. ich programmiere selten.

Das ist eine schlechte Kombination.

Das mag anders aussehen für jemanden der bereit ist, richtig viel Zeit zu investieren und auch dranbleibt.

Als Beispiel:
Ich habe mir einen Raspi gekauft und habe mich gefragt was man so mit den GPIO Pins treiben kann.
Buch und Breadboard gekauft, Python geladen und Spaß gehabt.
Innerhalb von ein paar Stunden konnte ich viele Sachen damit machen.

C? ist für mich, als Hobby und zum Basteln für den Heimgebrauch zu hart.

Auch bei Profis wird Python immer beliebter.
Ein komplexes Problem lässt sich meistens in einige, weniger komplexe Einzelprobleme zerlegen.

Da Punktet Python auch.
Mit Python ist es einfach den Überblick zu behalten und sich zu erinnern was man denn da.. bei diesem Einzelproblem gedacht und gemacht hat.
 
Zuletzt bearbeitet:
new Account() schrieb:
Python hat kein vernünftiges Static Typing -> für komplexe Aufgaben imho tendenziell ungeeignet.
Aber für Rapid Prototyping im mathematischen Kontext sicher keine schlechte Sprache.
Das nennt sich dann Cython und dieses füllt genau diese Lücke zwischen Python und C/C++ aus.
https://en.wikipedia.org/wiki/Cython
 
new Account() schrieb:

"Type hints have no impact on bytecode compilation or execution" => https://stackoverflow.com/questions...n-static-typing-python-3-6-vs-cython/51743128

Ich kenne zwar Cython, aber eher als Tool um Performance zu optimieren - wie gut funktioniert es denn static Typing zu Python via Cython zu bringen (im Vergleich zu import typing)?

Meinst Du mit "import typing" die 3.5 type hints (https://www.python.org/dev/peps/pep-0484/)?
Was ich hier sehe: das sind imho Unterstützungen fürs "Editeren". Die python-runtime interessiert das alles nicht.

gibts dafür überhaupt Toolunterstützung?
Naja, Du brauchst Makefiles oder analoges, da cython aus seinem .pyx-Quelltext erstmal in ein .pxd-Importmodul erzeugen muss, welches Du dann verwenden kannst. Syntaxunterstützung gibts in VS Code (https://marketplace.visualstudio.com/items?itemName=tcwalther.cython), Toolchain-Unterstützung in Pycharm Prof. (https://www.jetbrains.com/help/pycharm/cython.html) und möglicherweise auch in vielen anderen Umgebungen (die ich aber nicht kenne).

Für den Einstieg gibt's aber ein schönes Buch: https://www.amazon.de/dp/1491901551 (das ich sogar gekauft habe) ...
 
Zuletzt bearbeitet:
blöderidiot schrieb:
blöderidiot schrieb:
Meinst Du mit "import typing" die 3.5 type hints (https://www.python.org/dev/peps/pep-0484/)?
Was ich hier sehe: das sind imho Unterstützungen fürs "Editeren". Die python-runtime interessiert das alles nicht.
Wenn es auf Editierebene ist, dann braucht das ja die runtime nicht interessieren, ist doch OK.

In VS-Code - Syntaxhighlighting - schön und gut, aber woraufs ankommt, wäre dann auch, dass z.B. auch Funktionsparameter gematched werden (um schon vor dem Kompilieren Fehler anzuzeigen, bei autocomplete die Typen zu berücksichtigen, …) - das ist ein enormer Vorteil, welcher anscheinend nicht einmal bei PyCharm verfügbar ist (laut deinem Link).
 
Zurück
Oben