• Hallo Gast, du kaufst gerne günstig ein und erfährst oft vor deinen Freunden von interessanten Angeboten? Dann kannst du dein Talent als Schnäppchenjäger jetzt zu Geld machen und anderen PCGH-Lesern beim Sparen helfen! Schau einfach mal rein - beim Test der Community Deals!

Programmieren lernen, welche Sprache?

Tim1974

Volt-Modder(in)
Hallo,

ich überlege, ob ich wieder mit dem Programmieren anfangen soll.
Früher hab ich in Turbo-Pascal programmiert und schon relativ lange Programme geschrieben gehabt, simpelste Spiele und Datenbanken usw..

Was mich jetzt interessiert ist, welche Sprache am leistungsfähigsten ist und mit welcher man am meisten machen kann?
Ich dachte zuerst an C, aber wo ist der Unterschied zu C++ und C# und welche Derivate es da noch so gibt?
Oder wäre es sinnvoller eine weborientierte Sprache wie Java oder JavaScript zu lernen?

Wie ihr seht, hab ich wenig Ahnung von den Unterschieden der einzelnen Sprachen und wüßte einfach gerne, wo ich als Umsteiger von Pascal mich am besten zurecht finde und zudem wesentlich mehr Möglichkeiten bekomme.

Gruß
Tim
 

Olstyle

Moderator
Teammitglied
Eine Sprache ist immer nur so gut wie man sie auf ein bestimmtes Problem anwenden kann.
Keine Webapplikationen läuft in C, dafür jeder Microcontroller. Was willst du denn gerne programmieren?
 

gaussmath

Lötkolbengott/-göttin
Sprachen, die modern sind, sind Java, JavaScript, C#, Scala.

Suche dir 2 aus und starte eine kleines Projekt, wo du beide Sprachen kombinierst. Oder starte mit einer Sprache deiner Wahl. Man sollte erstmal wenig Theorie machen und an praktischen Beispielen wachsen. Mit steigender Komplexität steigen die Anforderungen an die Konzepte und dann eignest du dir die entsprechende Theorie an.

Man lernt auch immer an fertigen Beispielen. GitHub ist eine unerschöpfliche Quelle.
 

Laudian

Moderator
Teammitglied
Was mich jetzt interessiert ist, welche Sprache am leistungsfähigsten ist und mit welcher man am meisten machen kann?

Du kannst mit vielen Sprachen praktisch alles machen. Aber Sprachen sind Werkzeuge, und das Werkzeug sollte entsprechend der anfallenden Arbeit gewählt werden. Du gehst ja nicht in deine Werkstatt und überlegst, was du jetzt mit deinem Hammer anstellen könntest...

Oder wäre es sinnvoller eine weborientierte Sprache wie Java oder JavaScript zu lernen?

Java und Javascript haben nichts miteinander zu tun. Der ähnliche Name hat nur etwas mit Marketing zu tun. Javascript wird vor allem genutzt, um Websites dynamisch zu machen, der Code wird also zusammen mit dem HTML-Dokument ausgeliefert und kann dieses dann nach der Auslieferung noch verändern. Java dagegen ist eine "normale" Programmiersprache, ist also darauf ausgerichtet, vollwertige Anwendungen darin zu schreiben.


Sag uns doch einfach, was du gerne programmieren würdest, dann können wir dir mit Sicherheit bessere Ratschläge geben. Generell gibt es hier eine Menge Beiträge zum Thema "Programmieren Lernen", aber da du ja nicht ganz neu in dem Thema bist, ist das alles vielleicht nicht das richtige für dich.
 

wuselsurfer

Lötkolbengott/-göttin
Was mich jetzt interessiert ist, welche Sprache am leistungsfähigsten ist und mit welcher man am meisten machen kann?
Man kann in fast jeder Programmiersprache alles machen.

Jede Sprache hat ihre Vor- und Nachteile.

Am leichtesten erlernt man Visual Basic und deren Nachfolger.
Das
Sub Main()
MsgBox "Hallo PCGH!"
End Sub

gibt ein Meldungsfenster mit dem Inhalt

Hallo PCGH!

aus.

Mit der leicht erlernbaren Syntax und der übersichtlichen Programmierumgebung kann man ganze Windows-Programme schreiben.
Durch die gute Kommentierbarkeit weiß man auch noch nach zehn Jahren, was man gemacht hat.

Ein Kompiler erstellt dann eine .exe, die man unter Windows oder anderen Systemen starten kann.
Damit ist das Programm auch hinreichend schnell.

Durch die aktive Syntaxkontrolle sieht man schon beim Quelltexterstellen, welche Möglichkeiten man hat (Variablen, Eigenschaften, Werte, ... ).

Einen Befehlsdurchlauf geht z.B. mit F8 zeilenweise mit Anzeige der zur Zeit gültigen jeweiligen Variablenwerte im Entwicklungsfenster.

Ich dachte zuerst an C,
C ist halt sperrig und nicht selbsterklärend.
Man muß lange und sehr konzentriert arbeiten, damit man es beherrscht.

aber wo ist der Unterschied zu C++ und C# und welche Derivate es da noch so gibt?
Das steht hier:
C++ – Wikipedia .

Oder wäre es sinnvoller eine weborientierte Sprache wie Java oder JavaScript zu lernen?
Kommt auf die Anwendung an.

Wie ihr seht, hab ich wenig Ahnung von den Unterschieden der einzelnen Sprachen und wüßte einfach gerne, wo ich als Umsteiger von Pascal mich am besten zurecht finde und zudem wesentlich mehr Möglichkeiten bekomme.
Ich würde mit Visual Basic oder VB.net anfangen, das ist Pascal am ähnlichsten.
 
TE
Tim1974

Tim1974

Volt-Modder(in)
Ich hab kein genaues Ziel, also es ist nicht so, daß ich jetzt ein bestimmtes Programm brauche und mir selbst schreiben will. Es geht mir erstmal nur darum was neues zu lernen, zu schauen wie weit ich komme, mit dem PC was sinnvolles zu machen, mein Gedächtnis und meine Konzentration dabei zu trainieren und natürlich auch um Spaß an der Sache.
Wenn ich wüßte, daß ich damit bestenfalls auch mal noch etwas Geld verdienen kann, wäre das ein zusätzlicher Ansporn, egal wie hypothetisch das am Anfang auch ist.
Darum würde ich schon gerne eine Sprache zu lernen versuchen, die sehr gefragt ist und das auch künftig bleibt.

Was mich an Programmen am meisten reizen würden, wäre alles was mit KI zu tun hat, aber schwerer gehts vermutlich auch kaum, oder?
 

Olstyle

Moderator
Teammitglied
KI im Sinne von Neuronalen Netzen ist in der Algorithmik und mit den richtigen Tools auch der Programmierung eigentlich ziemlich einfach.
Keras mit Tensorflow wäre da eine übliche Adresse. Das ist eine Umgebung welche auf Python aufbaut.
 

efdev

PCGHX-HWbot-Member (m/w)
Was mich an Programmen am meisten reizen würden, wäre alles was mit KI zu tun hat, aber schwerer gehts vermutlich auch kaum, oder?

Da würde ich vielleicht erstmal nen Buch zu lesen ob KI überhaupt das ist was du dir darunter vorstellst :ka:
Empfehlen kann ich das Buch von Oliver Kramer "Computational Intelligence eine Einführung", hat mir gut geholfen um zu entscheiden ob ich KI also Modul im Studium wähle oder nicht.
 
TE
Tim1974

Tim1974

Volt-Modder(in)
Danke für die Hinweise.

Richtig ist, daß ich da wirklich keine Ahnung von habe, aber es würde mich halt reizen zu erfahren, wie gut eine KI heutzutage bestenfalls sein kann, was in naher Zukunft denkbar wird usw..
Davon unabhängig würde ich aber gerne Programmieren lernen, egal ob ich später nun mal an KIs tüffteln werde oder was ganz anderes programmiere, der Hauptaspekt für mich ist einfach der etwas sinnvolles am PC zu lernen und mein Gedächtnis und abstrakte Denkfähigkeit zu trainieren, was dann letztendlich dabei raus kommt ist völlig offen. :ka:

Mit Python ist nun wieder ein neuer Name gefallen, von der Sprache hab ich noch nie gelesen.
Meine Frage nach der leistungsfähigsten Programmiersprache bringt mich zu der Annahme, daß dieses die Sprache sein wird, in der z.B. Windows oder Unix/Linux programmiert ist, richtig?
 

Teacup

PC-Selbstbauer(in)
Danke für die Hinweise.

Richtig ist, daß ich da wirklich keine Ahnung von habe, aber es würde mich halt reizen zu erfahren, wie gut eine KI heutzutage bestenfalls sein kann, was in naher Zukunft denkbar wird usw..
Davon unabhängig würde ich aber gerne Programmieren lernen, egal ob ich später nun mal an KIs tüffteln werde oder was ganz anderes programmiere, der Hauptaspekt für mich ist einfach der etwas sinnvolles am PC zu lernen und mein Gedächtnis und abstrakte Denkfähigkeit zu trainieren, was dann letztendlich dabei raus kommt ist völlig offen. :ka:

Mit Python ist nun wieder ein neuer Name gefallen, von der Sprache hab ich noch nie gelesen.

Das ist alles so unspezifisch, dass Du Dich erst mal entscheiden solltest, ob Du möglichst einfach Ergebnisse erzielen willst, oder ob Du im Detail etwas lernen möchtest.

Für mich klingen Deine Posts nach ersterem.
Das bedeutet, Du brauchst eine Sprache, für die es möglichst viele fertige Frameworks/Bibliotheken gibt, die bereits Lösungen für deine Aufgaben bieten und dann nur noch von Dir angesprochen werden.

-> Java, .NET-Sprachen, Python
Meine Frage nach der leistungsfähigsten Programmiersprache bringt mich zu der Annahme, daß dieses die Sprache sein wird, in der z.B. Windows oder Unix/Linux programmiert ist, richtig?

Nein.
Vergiss die Frage nach "Leistungsfähigkeit" und fang an zu Programmieren. Die meisten Fragen haben sich dann nach wenigen Wochen von selbst erledigt.
 

Venom89

PCGHX-HWbot-Member (m/w)
Meine Frage nach der leistungsfähigsten Programmiersprache bringt mich zu der Annahme, daß dieses die Sprache sein wird, in der z.B. Windows oder Unix/Linux programmiert ist, richtig?

Was denn von Windows?

Den Kernel? (Verwaltung und Kontrolle der Ressourcen)

Die Shell? (die grafische Oberfläche, Desktop, Window Manager)

Da muss man ein wenig differenzieren. Denn dort können verschiedene Programmiersprachen zur Anwendung kommen.
 

Laudian

Moderator
Teammitglied
Mit Python ist nun wieder ein neuer Name gefallen, von der Sprache hab ich noch nie gelesen.

Python ist meiner Meinung nach ein super Einstieg in die Welt des Programmierens. Solange du nicht vorhast, ein Betriebssystem oder 3D-Software zu entwickeln, kannst du in Python praktisch alles machen. Nur um ein Beispiel zu nennen, das Backend von Youtube ist in Python programmiert.

Die klassischen Anwendungsfelder von Python sind wohl Webentwicklung (Backend), Datenanalyse (Machine Learning, Deep Learning, AI und whatever) und Scripte, die bestimmte Aufgaben einmalig erledigen sollen.
Wenn man 2D-Anwendungen entwickeln möchte, ist wohl eher Java angebracht, denn die JavaFX Library ist dafür wirklich extrem gut, aber auch in Python kann man einfache 2D Anwendungen programmieren. Ich habe z.B. mal ein Kartenspiel geschrieben, dass ich dann übers Internet mit Freunden spielen konnte. Allerdings sind die Grafikschnittstellen für Python eher weniger entwickelt als für andere Sprachen.
Was in Python nicht geht, sind Apps für Handys etc.

Python ist eine extrem ausdrucksstarke Sprache, man kann also in der Regel ein Programm in Python mit weniger Code schreiben, als in vielen anderen Programmiersprachen. Außerdem hat Python eine sehr angenehme Lernkurve.

Ich würde mir an deiner Stelle einfach mal die aktuelle Python Version installieren und mit diesem Tutorial hier anfangen. Selbst wenn du dich am Ende entscheidest, dass Python nicht die richtige Sprache für dich ist, ist die Zeit nicht vergeudet. Viele Konzepte sind in Python und anderen objektorientierten Sprachen gleich oder zumindest sehr ähnlich. Falls du Fragen hast, immer her damit ;-)

Edit: Außerdem ist Python sehr schön dokumentiert. 3.7.3 Documentation
 

Gamer090

PCGH-Community-Veteran(in)
Ich habe vor Jahren mal versucht mit C zu programmieren und irgendwie war das für einen Anfänger wie mich zu kompliziert und habe nie wirklich verstanden was ich da gemacht habe. Es vergingen Jahre ohne das ich mich wirklich mit dem Thema beschäftigte, bis letztes Jahr ich jemanden getroffen habe, die beruflich viel programmieren muss. Als ich fragte was das einfachste sei, sagte sie mir Python.

Vor kurzem bin ich auch endlich dazu gekommen es mal zu testen und so schwer ist es wirklich nicht, man versteht vieles gleich von Beginn an wenn man Englisch versteht ;) Spass beiseite, geht auch ohne Englischkenntnisse, Deutschsprachige Tutorials gibt es sicher genug im Netz.

EDIT: Gerade passend zum Thema: Humble Book Bundle: Artificial Intelligence & Deep Learning by Packt (pay what you want and help charity)
 

Zeiss

BIOS-Overclocker(in)
Ich habe vor Jahren mal versucht mit C zu programmieren und irgendwie war das für einen Anfänger wie mich zu kompliziert und habe nie wirklich verstanden was ich da gemacht habe.

Was aber nicht an der Sprache lag... Die Sprache ist nur ein Werkzeug, nicht mehr und auch nicht weniger. In jeder Sprache gibt es Variablen, Schleifen, Verzweigungen, etc. In einer Sprache werden die Variablen deklariert, in den anderen nicht. Die Lernkurve in C ist halt sehr steil, wenn man es wirklich lernen will, kommt man an zum Beispiel Pointer und Referenzen nicht vorbei. Aber wenn man es verstanden hat, ist man in der Lage extrem performanten Code zu schreiben. Dazu kommt noch, dass C (C++ ebenso) eben maschinennah ist und keinen Interpreter braucht, aber einen Compiler.

@TE: Wenn Du frustresistent und nicht auf schnelle Erfolge aus bist, lerne C/C++. Von C/C++ kann man so ziemlich alles erlernen, okay, Cobol vielleicht nicht :D
 
TE
Tim1974

Tim1974

Volt-Modder(in)
Ich möchte mich aber nicht gleich zu Beginn festlegen und eventuelle Möglichkeiten verbauen, denn es ist gut möglich, daß ich irgendwann 2D- oder 3D-Grafik programmieren möchte. Was ich jedenfalls erstmal nicht möchte sind Webanwendungen schreiben, oder Webseiten bauen, das hat mich noch nie so sehr gereizt, weil man ja auch einen Server braucht um diese erreichbar zu halten.

Primär gehts mir also darum performante Codes verstehen zu wollen und vielleicht selbst mal welche zu schreiben, vielleicht übernehme ich mich damit, vielleicht auch nicht.
Wenn ich jetzt mit C oder C++ einen Versuch mache, helfen mir dann meine Pascal-Kenntnisse von früher ein wenig, oder ist alles komplett anders und viel schwieriger?

Bekommt man eigentlich die Compiler und die Entwicklungsebenen für die genannten Programmiersprachen umsonst als Download (zumindest für Linux)?
 

Olstyle

Moderator
Teammitglied
Auf dem PC gibt es für jede Sprache freie Compiler. IDEs dagegen sind nicht immer Gratis, auch da gibt es aber z.B. mit Eclipse eine die schon ziemlich viel erschlägt.
Auch wenn ich selbst C-Mensch bin würde ich mich hier eher den Python Empfehlungen anschließen. Da man oft C-Backends bedient ist die Performance mehr als ausreichend für alle Spielereien. 3D ohne Engine zu machen ist eigentlich nur Selbstkasteiung und die Engines wiederum arbeiten eh mit eigenen Skriptsprachen für die jede Erfahrung in einer vollwertigen Sprache hilft.
 

Laudian

Moderator
Teammitglied
Die Lernkurve in C ist halt sehr steil, wenn man es wirklich lernen will, kommt man an zum Beispiel Pointer und Referenzen nicht vorbei.

In C gibt es keine Referenzen. Und die Lernkurve ist wirklich extrem steil...

Aber wenn man es verstanden hat, ist man in der Lage extrem performanten Code zu schreiben.

Das stimmt, aber Performance ist in den allermeisten Fällen völlig uninteressant, vor allem für Anfänger. Rechenzeit ist im Vergleich zur Entwicklerzeit einfach so billig geworden, dass der Fokus eher darauf liegt, Programmieraufwand einzusparen. Lieber 10 Server mehr kaufen, als einen teuren Entwickler einzustellen...
Wenn man wirklich jedes bisschen Performance braucht, kommt man um C/C++ aber wohl eher nicht herum.

Ich würde einem Anfänger nicht nahelegen, mit C Programmieren zu lernen. C ist dann angebracht, wenn man wirklich auf jedes bisschen Performance angewiesen ist. Aber dann reicht es auch nicht, vernünftig in C zu programmieren, sondern man muss wirklich verstehen, wie Computer und Betriebssysteme funktionieren.

Versteh mich nicht falsch, ich halte C für eine sehr elegante Sprache (und C++ für eine Ausgeburt des Teufels, ähnlich wie PHP), aber als Anfänger kann man mit C einfach keine besonders spannenden Sachen machen, sondern beschäftigt sich noch damit zu verstehen, was du wie als Funktionsargument übergeben kannst. In Python machst du sowas eben einfach, ohne groß darüber nachzudenken und sendest schon deine ersten Nachrichten über das Internet. Python ist meiner Meinung nach einfach schöner, um damit rumzuspielen und Dinge auszuprobieren.

C bietet dagegen einfach keine große Abstraktion. Um irgendetwas in C zu machen, musst du in der Regel erst einmal das dahinterliegende System (wtf ist ein Filedescriptor?) verstehen.

Bekommt man eigentlich die Compiler und die Entwicklungsebenen für die genannten Programmiersprachen umsonst als Download (zumindest für Linux)?

Irgendeine IDE und irgendeinen Compiler bekommst du mit Sicherheit umsonst.
Ich kann persönlich die Jetbrains IDEs empfehlen, die gibt es für beinahe alle Programmiersprachen und sind dabei vom Aufbau mehr oder weniger identisch.
Pycharm für Python, IntelliJ für Java und CLion für C/C++. Zumindest von PyCharm und IntelliJ gibt es kostenlose Communityversionen, die für dich als Anfänger alles nötige mitbringen.

Ob dir deine Pascalkenntnisse etwas bringen kann ich dir leider nicht sagen, da ich Pascal nicht kenne ;-)
 

Zeiss

BIOS-Overclocker(in)
Ähm... genau, keine Referenzen... was übergebe ich denn bitte bei einem "call by reference" Aufruf? Bananen? Das Kommentieren vom Rest spare ich mir, vor allem die Passage "Performance ist in den allermeisten Fällen völlig uninteressant, vor allem für Anfänger."

Und wenn Du C++ für "Ausgeburt des Teufels" hältst, dann hast Du es nicht verstanden, klar, ist kein Java, da muss man die grauen Zellen echt anstrengen.
 

gaussmath

Lötkolbengott/-göttin
C, da kann man auch gleich Lochkarten verwenden. ^^ Und natürlich ist C++ eine Ausgeburt der Hölle. Programmieren = Abstraktionen schaffen. Das geht am besten mit Scala oder C#/F#.
 

Teacup

PC-Selbstbauer(in)
Es soll auch Leute geben, die, vor lauter Suchen nach der perfekten Sprache, nie angefangen haben zu programmieren.
 

gaussmath

Lötkolbengott/-göttin
Tim wird eh für die Suche nach der optimalen Sprache so lange brauchen wie für den Kauf seiner CPU.

Tim, fang einfach an mit Python. Das passt schon. ^^
 

Plasmadampfer

Freizeitschrauber(in)
Ich habe damals auf SInclair ZX-81 und Commodore VC-20 in BASIC angefangen. Solch ein Commodore VC-20 hat sage und schreibe 2KB RAM. Da kommt man an Assembler nicht vorbei bei dem geringen RAM und der Supergeschwindigkeit der damaligen BASIC Interpreter, um mal was schnelles auf den Schirm zu zaubern. C-64 habe ich nur in Assembler programmiert. Commodore Amiga erst auch in Assembler, später dann Lattice->SAS-C. In einer Hochsprache kommste halt 10 mal schneller vorwärts, als in schierem Assembler.

Ich bin dann über Brian W. Kernighan und Dennis M. Ritchie C, Buch -> The C Programming Language heutzutage bei C++ und C# gelandet mit MS Visual Studio.

C insgesamt ist plattformunabhängig. Wenn Du das wirklich drauf hast, dann kannste alle anderen Sprachen wegen Codesize und Performance voll in die Tonne hauen.

Ich habe 1991 mal die Krätze gekriegt mit Dave von Junglecommand. Dr. Pflaume hatte einen 8085 Assembler Emulator in Turbo Pascal mit Segment:Offset Adressierung auf 80286 programmiert und wir Schüler sollten ein paar mal daran teilnehmen.

Ich so Dave, warum ist der Kack Emulator so furchtbar langsam, da pennt man ja bei ein. Wir einfach nicht mehr zum Unterricht gegangen, X86 Assembler und C den 8085 Emulgator neu geschrieben. Der Pauker immer zu den anderen gesagt, die bestehen die Prüfung nicht. Wir voll abgeräumt, den Emulator hochperformant abgeliefert. Deswegen hasse ich solche Begriffe wie Turbo Pascal und Phyton und irgendwelche Sprachen wie Kaffeetasse, die so oder so gegen C keine Schnitte haben.
 
Zuletzt bearbeitet:

Laudian

Moderator
Teammitglied
Ähm... genau, keine Referenzen... was übergebe ich denn bitte bei einem "call by reference" Aufruf? Bananen?[/COLOR]

C hat keine Pass by Reference Syntax, sondern ausschließlich Pass by Value.
Man kann Pass by Reference lediglich durch die Verwendung von Pointern emulieren.


Aber gut, BTT:
Generell ist es so, dass Anfänger eher einfache Dinge lernen. Beim Skateboarden probiert man sich eben zuerst an einem Kickflip und nicht direkt an einer 900° Drehung auf der Halfpipe.
Und C ist eben nicht besonders einfach: Es gibt sehr viele Dinge, die man als Anfänger falsch machen kann (und wird).
Python dagegen ist explizit dahin entwickelt worden, einfach zu sein. Dafür ist die Sprache dann eben ~200 Mal langsamer als C, aber für Anfänger ist die Performance eben ziemlich unwichtig.
Ich möchte hier auf keinen Fall sagen, dass C schlecht ist. Ich mag C. Aber es ist nach heutigen Maßstäben keine anfängerfreundliche Programmiersprache, weil man einfach relativ lange braucht, um Ergebnisse zu erzielen.
 
TE
Tim1974

Tim1974

Volt-Modder(in)
Dann wäre es in meinem Fall wohl am sinnvollsten mir ein dickes Buch für die gewählte Programmiersprache zu kaufen, gibt es da Empfehlungen, welches Buch für Anfänger gut geeignet ist und auf für Fortgeschrittene noch ausreicht und vielleicht gleich eine CD mit den nötigen Programmen (Compiler und Entwicklungseben) mit dabei hat?
 

Plasmadampfer

Freizeitschrauber(in)
Du kannst, wenn Du C Sharp lernen willst unter dotNET der ww.mycsharp.de community beitreten, visual studio haste im nu runtergeladen. schreibste deine erste eigene windows applikation im schutz des dotNET frameworks.
C# ist sehr helpschool und einfach geil, visual studio kannste aber auch im c++ starten, dann wirds etwas mehr richtung assembler.

In Assembler kann man Alles machen, in C fast alles, in C++ fast fast Alles und in C# schreibt man moderne Applikationen im dotNET.


Bücher brauchst DU heutzutage nicht mehr. WIN32 API von Charles Petzold habe ich. Ich habe aber auch viel mit NoBugz, ein Microsoft MVP geschrieben.

Das ist ein gutes Online Buch: C# - Rheinwerk openbook

Schieres C unter WIN32API :-) RS232 Communications, unter DOS kriegste das sehr schlank hin, in einem Multitasking Multiusersystem so:

http://www.tetraedre.com/advanced/serial/msdn_serial.htm

Ich habe ein Outlook Addin geschrieben in 10 Minuten:-)

Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using Outlook = Microsoft.Office.Interop.Outlook;
using Office = Microsoft.Office.Core;

namespace Nirvana
{
    public partial class ThisAddIn
    {
        private void ThisAddIn_Startup(object sender, System.EventArgs e)
        {
            Outlook.Application application = this.Application;

            application.ItemSend += new Outlook.ApplicationEvents_11_ItemSendEventHandler(ItemSend_BeforeSend);
        }
        void ItemSend_BeforeSend(object Item, ref bool Cancel)
        {
            if (Item is Outlook.MailItem)
            {
                Outlook.MailItem mailItem = (Outlook.MailItem)Item;
                if (mailItem != null)
                {
                    string s = mailItem.To.ToLower();
                    if (s.Contains("ilona"));
                    {
                        //System.Windows.Forms.MessageBox.Show("Keine Mails an Weiber schicken !!!", "Frankie!");
                        Cancel = true;
                        Outlook.Inspector insp = mailItem.GetInspector;
                        ((Outlook._Inspector)insp).Close(Outlook.OlInspectorClose.olDiscard);
                    }
                }
            }
        }
        private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
        {
            Application.ItemSend -= ItemSend_BeforeSend;
        }      
        #region VSTO generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InternalStartup()
        {
            this.Startup += new System.EventHandler(ThisAddIn_Startup);
            this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
        }
        
        #endregion
    }
}
 
Zuletzt bearbeitet von einem Moderator:

Laudian

Moderator
Teammitglied
... für die gewählte Programmiersprache zu kaufen, gibt es da Empfehlungen,

Welche Sprache hast du denn jetzt gewählt? :D

Dann wäre es in meinem Fall wohl am sinnvollsten mir ein dickes Buch für die gewählte Programmiersprache zu kaufen, gibt es da Empfehlungen, welches Buch für Anfänger gut geeignet ist und auf für Fortgeschrittene noch ausreicht und vielleicht gleich eine CD mit den nötigen Programmen (Compiler und Entwicklungseben) mit dabei hat?

Ich würde ehrlich kein Buch kaufen. Im Internet gibt es genug Tutorials mit Links, unter denen du dir die nötige Software runterladen kannst. Bei Problemen können wir dir auch Schritt für Schritt sagen, was du machen musst. Wenn dir ein Tutorial im Internet nicht gefällt, kannst du immer noch zu einem anderen wechseln, bei einem Buch hast du dann eine Menge Geld verschenkt. Bücher würde ich dann eher für spezifische Themen wie Betriebssysteme oder Netzwerke kaufen (die Bücher von Tanenbaum sind zu empfehlen).
Eine Ausnahme würde ich da bei C++ machen. C++ ist einfach so unglaublich umfangreich...

Die meiste Zeit wirst du dann eh in der Dokumentation spezifischer Bibliotheken oder auf stackoverflow.com verbringen.


Falls du Python ausprobieren möchtest:
Lade dir https://www.python.org/ftp/python/3.7.3/python-3.7.3-amd64.exe herunter, das beinhaltet den CPython Interpreter, IDLE (eine sehr sehr grundlegende IDE, die speziell zum Lernen entworfen wurde) und einige andere nützliche Tools, die du später vielleicht benutzen wirst.

Dann kannst du IDLE einmal starten und
Code:
print("Hallo")
oder
Code:
3 + 3
eingeben. Schwups, das war das erste Programm.

Als Tutorial würde ich 3. An Informal Introduction to Python — Python 3.7.3 documentation angucken.
 
Zuletzt bearbeitet:

Teacup

PC-Selbstbauer(in)
Aber gut, BTT:
Generell ist es so, dass Anfänger eher einfache Dinge lernen. Beim Skateboarden probiert man sich eben zuerst an einem Kickflip und nicht direkt an einer 900° Drehung auf der Halfpipe.
Und C ist eben nicht besonders einfach: Es gibt sehr viele Dinge, die man als Anfänger falsch machen kann (und wird).
Python dagegen ist explizit dahin entwickelt worden, einfach zu sein. Dafür ist die Sprache dann eben ~200 Mal langsamer als C, aber für Anfänger ist die Performance eben ziemlich unwichtig.
Ich möchte hier auf keinen Fall sagen, dass C schlecht ist. Ich mag C. Aber es ist nach heutigen Maßstäben keine anfängerfreundliche Programmiersprache, weil man einfach relativ lange braucht, um Ergebnisse zu erzielen.

Kommt auch darauf an welches Lernziel man verfolgt.
Ich finde es angenehm mit C#/VB.Net zu arbeiten und möchte es nicht mehr missen, genauso aber auch den Einstieg an der Uni mit C - immer noch.
 
TE
Tim1974

Tim1974

Volt-Modder(in)
Ich hab zwar damals Turbo-Pascal sicher auch noch lange nicht auf allen Gebieten ausgereizt, bin aber bei einer selbst programmierten Datenbank an die Grenzen des Speichers gestoßen, nicht das RAMs oder der HDD, die Sprache konnte anscheinend nicht so viele Daten ablegen, wie ich das gerne gehabt hätte, ist aber auch möglich, daß ich ungeschickt programmiert hatte und es bessere Lösungen dafür gegeben hätte.
Damals hab ich mir dann geschworen, nie wieder eine Sprache, die mir so früh schon Grenzen zeigt und ich wollte zu C wechseln, hab das Programmieren dann aber ganz an den Nagel gehängt.

Das ist zwar objektiv betrachtet jetzt nicht mehr wichtig für mich, aber es ist irgendwie eine Kopfsache, wenn ich anfange was zu lernen, möchte ich wissen, daß ich da auch nach vielen Jahren und vielleicht großen Fortschritten nicht an die Grenzen stoßen werde und mit der Sprache quasi alles machen kann und alle Möglichkeiten habe.
 

Teacup

PC-Selbstbauer(in)
Das ist zwar objektiv betrachtet jetzt nicht mehr wichtig für mich, aber es ist irgendwie eine Kopfsache, wenn ich anfange was zu lernen, möchte ich wissen, daß ich da auch nach vielen Jahren und vielleicht großen Fortschritten nicht an die Grenzen stoßen werde und mit der Sprache quasi alles machen kann und alle Möglichkeiten habe.

Ich bin mir nicht sicher, ob die Fragestellung so überhaupt Sinn ergibt.
Wenn Du in der Windows-Welt bleiben willst nimm C#, VB.NET und fang einfach mal.
 
TE
Tim1974

Tim1974

Volt-Modder(in)
Nur ne Woche, das wäre aber außergewöhnlich wenig! ;)

Nein, Spaß beiseite, es drängt mich da ja nichts, ich habe kein Projekt, was ich machen muß, es ist einfach das Interesse daran, zu versuchen was schwieriges neues zu lernen und sinnvoll Zeit am PC zu verbringen.

Wichtig für mich zu wissen wäre vorher noch folgendes:

a) Falls ich mich wirklich für ein C-Derivat entscheide, was unterscheidet C von Pascal?
b) Was macht C so schwierig, ist es sehr mathematisch, so daß man dort ein fundiertes Grundwissen braucht um in der Sprache was reißen zu können?
Falls ja, ist es in der Tat ein Problem für mich, denn ich war in Mathematik nicht so gut und mein Schulwissen liegt ja auch ewig zurück.
c) Welche Hilfestellungen kann ich bekommen?
Es wurden ja schon ein paar Links genannt, jedoch finde ich manchmal ein gedrucktes dickes Buch besser, als wenn man alles auf dem Bildschirm auf irgendwelchen Webseiten lesen muß.
Gut wären auch kleine Programme zum Veranschaulichen verschiedener Befehle und deren Möglichkeiten und genauen Erklärungen, wofür die einzelnen Zeilen notwendig sind und wie man sie variieren kann.
 

Laudian

Moderator
Teammitglied
a) Ich kenne Pascal leider nicht, deswegen kann ich dazu nichts sagen. zwischen C, C++ und C# liegen allerdings Welten.
b) C ist eine sehr simple Programmiersprache. Das heißt aber nicht, dass C einfach wäre. Ganz im Gegenteil:
C ist eine sehr kleine Programmiersprache, komplexere Funktionen muss man aus wenigen, einfachen Grundbausteinen zusammensetzen. Das ist für viele Dinge wichtig, weil du damit sehr präzise steuern kannst, wie genau dein Programm funktioniert. Allerdings führt das auch dazu, dass Programme sehr schnell sehr viel größer werden als in anderen Sprachen. Und größere Programme führen fast automatisch zu mehr Fehlern.
Dadurch, dass du sehr präzise steuern kannst, wie das Programm abläuft, kannst du aber auch einige Fehler einbauen, die in anderen Sprachen so nicht möglich sind. In C kannst du Befehle wie "Schreibe 13 in Speicheradresse 24" ausführen. Direkte Zugriffe über Speicheradressen können sehr performant sein, haben aber auch das hohe Risiko, dass man falsche Adressen beschreibt, wenn man Rechen- oder Logikfehler im Code hat. Das ist nur ein Beispiel für die Fallstricke in C...

Moderne Hochsprachen wie Python und Java dagegen abstrahieren von der Speicherebene - du kannst nur mit Variablen arbeiten, also a = 13. Die richtige Speicheradresse suchen Compiler oder Laufzeitumgebung dann automatisch. Du konzentrierst dich also darauf, was dein Programm machen soll, nicht wie es das macht. Das ist sicherer, aber auch langsamer. Dafür bieten diese Sprachen aber viele viele Funktionen, durch die du dir eine Menge Code sparen kannst.

C++ ist irgendwo in der Mitte... C++ kann im Prinzip alles, was C kann, hat aber zusätzlich die ganzen Funktionen der modernen Hochsprachen und noch viele viele eigene Features. C++ ist ohne Zweifel eine der am schwersten zu erlernenden Sprachen (weil sehr umfangreich UND viele Fallstricke), aber auch eine der mächtigsten. C++ ist aber sehr kompatibel zu C, wenn du mit C anfängst kannst du also beinahe alles Gelernte zu C++ mitnehmen.

Praktisch ist es heute so:
C wird für sehr hardwarenahe Anwendungen genutzt, z.B. Betriebssysteme und Embedded Software (Also Programme, die oft ohne Betriebssystem auf einem Prozessor laufen, Steuersysteme für Autos und Flugzeuge und dergleichen).
C++ für Anwendungen, die ebenso auf hohe Performance angewiesen sind aber nicht so hardwarenah arbeiten: Adobe Photoshop, Spieleengines, Datenbanksysteme etc.
Python wird hauptsächlich für Skripte, Webserver und als "Steuerung" für andere Programme verwendet: Jemand könnte also ein schnelles Programm in C schreiben und dann über Python mit Daten füttern. Python ist sehr beliebt bei Aufgaben, die vielleicht 2-3 mal täglich anfallen, weil die Performance dort oft völlig egal ist.
Java und C# dann praktisch für alles andere (Android Apps, Büroanwendungen...).

c) Von Büchern zu Grundlagen kann ich dir nur abraten. Es gibt viele gute Bücher zu speziellen Themen oder um eine Sprache wirklich zu vertiefen, aber für die Grundlagen empfehle ich dir online Tutorials und z.B. adventofcode.com - auf der Seite gibt es einige kleine Aufgaben. Du bekommst immer irgendwelche Daten und kannst auf der Seite dann überprüfen, ob dein Ergebnis richtig ist.
 
Zuletzt bearbeitet:
TE
Tim1974

Tim1974

Volt-Modder(in)
Gut danke, das bringt schon etwas mehr Licht ins Dunkel. :daumen:

Also C und Python verwerfe ich dann mal und entscheide mich entweder für C++ oder für Java oder C#.

Das C++ sozusagen mehr bietet als C ist ja eigentlich auch klar, sonst wären die ++ ja irreführend. Aber was bedeutet C#, ist das auch sozusagen eine Modernisierung von C oder eine andere Variante für bestimmte Fälle, die an mancher Stelle mehr und an andere wieder weniger bietet als C?
Kann man denn z.B. in C# oder Java auch performante 3D-Spiele programmieren oder eine gute KI?
 
TE
Tim1974

Tim1974

Volt-Modder(in)
Mit Unity meinst du die GUI von Ubuntu-Linux? :huh:

Minecraft sieht grafisch nun nicht gerade so aus, als wollte ich sowas programmieren oder die Sprache lernen, in der das geschrieben wurde... :fresse:
 

-Shorty-

Volt-Modder(in)
Mit Unity meinst du die GUI von Ubuntu-Linux? :huh:

Minecraft sieht grafisch nun nicht gerade so aus, als wollte ich sowas programmieren oder die Sprache lernen, in der das geschrieben wurde... :fresse:

Eben, der arme Erfinder hat auch kaum mehr als ein Kaugummi und n halbes Glas Apfelsaft dafür bekommen. Mit solchem Geklecker wird sich der Tim wohl kaum befassen, da geht es um so viel mehr, obwohl ... um was ging es nochmal Tim? Was wolltest du nochmal Programmieren?

PS: Bevor ich einkaufen gehe schreibe ich auch immer einen Zettel vorher, mit Dingen die ich absolut nicht brauche, so vermeide ich unnütze Einkäufe, dauert eben immer etwas Zeit bis man von A-Z alles durch hat aber es ist den Aufwand wert, jede Woche aufs Neue. :daumen:
 

Olstyle

Moderator
Teammitglied
C# und C sind nur in der Syntax verwandt. In der Umsetzung auf dem Rechner ist C# Java deutlich ähnlicher als C.
Zu KI hab ich schonmal was geschrieben: Da ist Tensorflow Standard. Das ist zwar in C++ geschrieben, bedient man in der Regel aber aus Python heraus.
 
Oben Unten