RegistrierenRegistrieren   LoginLogin   FAQFAQ    SuchenSuchen   
C oder Python?
 
Neue Frage »
Antworten »
    Foren-Übersicht -> Off-Topic
Autor Nachricht
C-Python
Gast





Beitrag C-Python Verfasst am: 26. Dez 2021 22:52    Titel: C oder Python? Antworten mit Zitat

Meine Frage:
Habe im Ingenieursstudium Studium die Programmiersprache C kennen gelernt und beherrsche sie jetzt einigermaßen gut.

Da ich eher weniger im Embedded Bereich tätig sein werde frage ich mich, ob sich eine weitere Vertiefung in C überhaupt lohnt oder ob ich mich lieber einer anderen Sprache zuwenden sollte (Python z.B., da werden auch Kurse angeboten bei uns).

Der Grund ist vor allem, dass ich keinen guten Anwendungsfall für mich finde.
Man programmiert mit C vor allem embedded, an Betriebssystemen und back end.

Da mich Themen wie Cyber-Security (Hacking & co.), Simulation (wie in Matlab) und Machine Learning interessieren, würde ich gerne wissen, was ihr dazu sagt.
Kann C das alles prinzipiell auch?
Ist es mit C möglich, auch neuorale Netze zu entwerfen und Sicherheitssysteme zu schützen (mit Pointern sollte das doch gut gehen?)

Oder sollte man da ehr auf Python umsteigen, auch wenn es ein erneutes einarbeiten erfordert

Meine Ideen:
Was würdet ihr raten?
MBastieK



Anmeldungsdatum: 06.10.2012
Beiträge: 951
Wohnort: Berlin-Wedding

Beitrag MBastieK Verfasst am: 27. Dez 2021 12:34    Titel: Re: C oder Python? Antworten mit Zitat

Hi!
C-Python hat Folgendes geschrieben:
Kann C das alles prinzipiell auch?

Ja, prinzipiell ist mit C alles möglich.

Ist nur die Frage, ob C die Bibliotheken bereithält, die einem den Lösungsweg im jeweiligen Gebiet erleichtern, oder man sich die Bibliotheken(Funktionen/Prozeduren) selber schreiben muss.
Was sehr aufwändig sein kann.

Es gibt ein Buch "Hacking - Die Kunst des Exploits"; in dem wird viel mit C gearbeitet.
Darin geht es aber eher ums Hacking, und weniger um Hacking-Abwehr.

Nette Grüsse

_________________
Intelligenz ist die Fähigkeit der (temporären) Anpassung.
masterpie



Anmeldungsdatum: 13.11.2019
Beiträge: 406

Beitrag masterpie Verfasst am: 27. Dez 2021 13:27    Titel: Antworten mit Zitat

Einfach mal machen und sehen, ob es Dir liegt. Ich habe nach 20 Jahren C mit Python vor 8 Jahren angefangen. Hat das Leben sehr vereinfacht. Wo notwendig, kann man Teilprogramme in C programmieren und einbinden.
_________________
Wir denken zu viel und fühlen zu wenig. (Charlie Chaplin)
TomS
Moderator


Anmeldungsdatum: 20.03.2009
Beiträge: 17900

Beitrag TomS Verfasst am: 27. Dez 2021 13:27    Titel: Antworten mit Zitat

Sehr viele Applikationen für neuronale Netze werden in Python u.ä. realisiert. In wie weit die dazu notwendigen Bibliotheken selbst in Python implementiert sind, oder ob in Teilen aus Performancegründen auch auf C zurückgegriffen wird, kann ich nicht sagen.
_________________
Niels Bohr brainwashed a whole generation of theorists into thinking that the job (interpreting quantum theory) was done 50 years ago.
analist



Anmeldungsdatum: 23.03.2022
Beiträge: 25

Beitrag analist Verfasst am: 25. März 2022 19:02    Titel: Antworten mit Zitat

Hallo,
ich finde, Du solltest in C weitermachen.
C++, C# bauen darauf auf.
Bibliotheken gibt es ueberall.

Wenn man C versteht, versteht man auch Python.

Fuer mich ist C wie ein Gelaendewagen. Wenn man den fahren kann, kommt man ueberall hin und natuerlich kann man dann auch einen Mercedes Benz fahren.

Ich wuenschte, ich haette mehr in C fuer mich gemacht, aber ich hatte mich damals auf Assembler und Turbo Pascal festgefahren.
Beides wird heute nicht mehr benutzt.

Wenn Du etwas nuetzliches dazu nehmen willst, dann Java und vor allem das Objektorientierte. Damit komme ich heute noch nicht richtig zu recht.

Fuer Neuronale Netze setzen viele auf Python auf, wie z.B. Keras.
Aber Python stetz fuer mich auf C auf.

Also bleib bei C
masterpie



Anmeldungsdatum: 13.11.2019
Beiträge: 406

Beitrag masterpie Verfasst am: 25. März 2022 20:53    Titel: Antworten mit Zitat

Zitat:
... aus Performancegründen auch auf C zurückgegriffen wird ...


Am Beispiel der Python-Library NumPy hier https://de.wikipedia.org/wiki/NumPy dargestellt. Auch andere Librarys greifen bei Bedarf auf C u.ä. performante Dinge zurück.

Zitat:
Du solltest in C weitermachen. C++, C# bauen darauf auf.


C++ hat aus Kompatibilitätsgründen C behalten. Doch in ModernC++ (C++11, C++14, C++17, C++20) wird darauf kaum jemand zurückgreifen. Es sei denn, er ist ein Freund ineffizienter Programmierung.

C# ist die Antwort von Microsoft auf SunMicrosystems Java gewesen. Der eine oder andere hat Java als vereinfachtes C++ betrachtet. Aber das würde ich nicht so empfehlen. Heute ist Java bei Oracle und einer Opensource-Community in Entwicklung und Anwendung.

Zitat:
Wenn man C versteht, versteht man auch Python.


Na klar, wer Motorad fahren kann, kann auch eine Cesna fliegen. Ich würde sagen, es gibt viele prinzipielle Dinge in der Programmierung, die behilflich sind, wenn man eine neue Programmiersprache lernt. Doch konkret sieht halt dann vieles doch anders aus. Spätestens wenn jemand pythonisch programmieren will, weil da die Kunst und die Freude beginnen, wird er lange nach C suchen können.

Zitat:
Bibliotheken gibt es ueberall.

Ja und Benzinmotoren auch.

Zitat:
Fuer mich ist C wie ein Gelaendewagen. Wenn man den fahren kann, kommt man ueberall hin und natuerlich kann man dann auch einen Mercedes Benz fahren.


Sicher, mit C kommt man sehr weit, hat perfomante Lösungen und Hinrnzellenschmelze, weil ein Handwagen kein Mercedes ist.

Zitat:
Wenn Du etwas nuetzliches dazu nehmen willst, dann Java und vor allem das Objektorientierte.


C++ ist objektorientiert. Wenn ich es struktural nutzen möchte, verwende ich C.

Java ist objektorientiert und nichts anderes. Das hindert niemanden daran, schlechten Code zu schreiben, der nicht objektoerientiert ist.

Python ist objektorientiert und kennt auch nichts anderes als Objekte. Allerdings hat man einfacher und schneller effiziente Lösungen programmiert. Wem das nicht performant genug ist, der kann entsprechende C-Librarys einbinden. Heutige Hardwareleistung macht das meist nicht erforderlich.

Damit ich nicht falsch verstanden werde. Ich habe nichts gegen Assembler, C, C++, Java und andere tolle Programmiersprachen aus einem Topf von über 500 Möglichkeiten. Ich halte es nur für sinnvoll, wenn man für das jeweilige Thema das passende Werkzeug auswählt. Nicht ohne Grund, sind heutige Informatiker mit mehreren Programmiersprachen unterwegs. Selbstredend kann ich unter mehreren Werkzeugen nur wirklich auswählen, wenn ich die Werkzeuge auch einigermaßen kenne und beherrsche.

Somit bleibt meine Empfehlung (siehe Beitrag 27.12.21), mehrere Sprachen ausprobieren. Wer bereits C kennt, hat es einfacher Python zu lernen, als wenn er noch keine Programmiersprache kannte. Wer die objektorientierten Verfahren unter Python verstanden hat, kann sich über Java und/oder C++ hermachen. Das wird dann auch einfacher. Aber dennoch wird jede Programmiersprache ihre spezifischen Eigenschaften haben und die sollte man nicht außer Acht lassen, wenn man die jeweilige Sprache nutzen will.

Grüße, Masterpie

_________________
Wir denken zu viel und fühlen zu wenig. (Charlie Chaplin)
MBastieK



Anmeldungsdatum: 06.10.2012
Beiträge: 951
Wohnort: Berlin-Wedding

Beitrag MBastieK Verfasst am: 26. März 2022 10:53    Titel: Antworten mit Zitat

analist hat Folgendes geschrieben:
Wenn man C versteht, versteht man auch Python.

Python hat zusätzlich objektorientierte Elemente.
Sodass diese Aussage nicht ganz zutrifft.

Nette Grüsse

_________________
Intelligenz ist die Fähigkeit der (temporären) Anpassung.
Nils Hoppenstedt



Anmeldungsdatum: 08.01.2020
Beiträge: 2019

Beitrag Nils Hoppenstedt Verfasst am: 27. März 2022 16:17    Titel: Re: C oder Python? Antworten mit Zitat

C-Python hat Folgendes geschrieben:
Habe im Ingenieursstudium Studium die Programmiersprache C kennen gelernt und beherrsche sie jetzt einigermaßen gut. []... Oder sollte man da ehr auf Python umsteigen, auch wenn es ein erneutes einarbeiten erfordert


Klingt ein bisschen wie "Ich bin angehender Handwerker und kenne mich super gut mit Sägen und Schraubenzieher aus. Muss ich mich jetzt noch mit Zangen beschäftigen?"

- Nils

_________________
Ihr da Ohm macht doch Watt ihr Volt!
Neue Frage »
Antworten »
    Foren-Übersicht -> Off-Topic