Forum: PC-Programmierung Gute zweit Programmiersprache


von Tobias (Gast)


Lesenswert?

Hi

Seid meiner Schulzeit habe ich Python gelernt.Nun ist noch im Studium 
Java bzw Kotlin dazugekommen. Nun überlege ich noch eine 3 Sprache zu 
lernen, oder würde es für mich als Elektrotechnik Student mehr mich 
weiter in Python / Kotlin/Java zu vertiefen?

Gruß Tobias

von Kaj (Gast)


Lesenswert?

Ich werfe mal Rust in Raum. Systemprogrammiersprache so wie C und C++, 
aber ohne deren Nachteile. Rust ist mittlerweile ebenfalls fuer viele 
Mikrocontroller verfuegbar, und die gesamte Toolchain ist sehr 
durchdacht und fuer alle gaengingen Betriebssysteme verfuegbar.
1
Rust is a systems programming language that runs blazingly fast,
2
prevents segfaults, and guarantees thread safety.
https://www.rust-lang.org/en-US/

von zero-q2 (Gast)


Lesenswert?

python-java-kotlin <> E-Technik
Wenn, dann Assembler, C, IEC, und Dot-Net (kommst du mit java ja ran)
Im Ernst: es gibt da nicht eine Sprache, du wirst da ständig dich mit 
was neuem auseinander setzen müssen. In dem Bereich wird "Standard" 
meist mit "t" am ende geschrieben.

cu zero

von Ade (Gast)


Lesenswert?

Lern C++ für den Embedded Bereich. Tut man sich aber nur an C++, wenn 
man masochistisch veranlagt ist.
C# für den PC Bereich.

Wenn C++ aber gut kannst dann ist alles andere wie Kindergeburtstag.

Python, Java und JavaScript kannste in Tonne klopfen um es leicht 
provokativ zu sagen.

von Dirk (Gast)


Lesenswert?

Tobias schrieb:
> Seid meiner Schulzeit habe ich Python gelernt.Nun ist noch im Studium
> Java bzw Kotlin dazugekommen. Nun überlege ich noch eine 3 Sprache zu
> lernen, oder würde es für mich als Elektrotechnik Student mehr mich
> weiter in Python / Kotlin/Java zu vertiefen?

Du solltest jetzt zuerst Deutsch lernen.

von Ade (Gast)


Lesenswert?

Setze eher auf Architektur und Stilmittel.

Designpattern sind in jeder Sprache gleich.

Sprachen leben, sterben und kommen neue hinzu.

Designpattern bleiben.

von ge-nka (Gast)


Lesenswert?

Ade schrieb:
> Setze eher auf Architektur und Stilmittel.
>
> Designpattern sind in jeder Sprache gleich.
>
> Sprachen leben, sterben und kommen neue hinzu.
>
> Designpattern bleiben.

richtig ich denke C und VB als Grundlagen reichen.
Syntax bleibt dann in allen Sprachen entweder auf VB (alle VB 
Abkömmlinge) angelegt oder an C (C++,C,CNet, Java, Javascript) oder an 
beide wie z.B. PHP.

von Wühlhase (Gast)


Lesenswert?

Wenn du schon Java lernst, dann versuche dein Verständnis über 
Objektorientierung, Vererbung und deren Möglichkeiten zu vertiefen. Das 
erleichtert vieles, und diese Techniken sind von der konkreten Sprache 
zumindest einigermaßen unabhängig.

Das Buch Entwurfsmuster von Kopf bis Fuß kann ich dir da sehr empfehlen.

Ansonsten: lerne Assembler. Z.B. für AVRs. Da lernst du dann auch, was 
unter der Oberfläche so abgeht. Und was für ein Aufriß manche 
augenscheinlich einfache Operationen nach sich ziehen. Selbst wenn du 
nie praktisch in ASM programmierst, helfen dir diese Kenntnisse weiter 
(und von wievielen Sprachen kann man das schon so behaupten).

Ob man sich heute noch C++ antun muß wenn man es nicht direkt 
braucht...manchmal überlege ich ob ich mir das auch mal ansehe, bisher 
habe ich den Gedanken jedesmal wieder verworfen. Mit Assembler, 
einfachem C, Java und gelegentlich VBA bin ich eigentlich recht gut 
bedient. (Vor allem, da ich sowieso eher Hardware baue.)
Rust würde ich mir da schon eher ansehen, für AVR und STRM32 scheint es 
das ja zu geben.

von Karl ein anderer (Gast)


Lesenswert?

C/c++ für den Controller und eine Skriptsprache deiner Wahl für das 
drumherum. Ich werfe Mal noch Matlab in den Raum. Damit machen wir fast 
alles was nicht auf dem Controller läuft.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Kommt mir irgendwie vor, wie wenn der angehende Autoschrauber meint, er 
koenne jetzt gut mit 10er, 13er und 17er Gabelschluessel umgehen, welche 
Groessen er denn jetzt sinnvollerweise noch lernen sollte.

Wie es beim Gabelschluessel irrsinnig praktisch ist, wenn der in seiner 
Groesse zur Schraube/Mutter passt, die gerade angezogen/gelockert werden 
soll, ist's auch bei der Programmiersprache irrsinnig praktisch, wenn 
die zum Problem passt, das geloest werden soll...

Gruss
WK

von Ivo -. (Gast)


Lesenswert?

Ade schrieb:
> Python, Java und JavaScript kannste in Tonne klopfen um es leicht
> provokativ zu sagen.

Warum? Klar, langsamer sind die schon, aber für den PC reicht es ja 
trotzdem locker.
Ich habe selbst mal in C(++) programmiert, hatte dann aber die Schnauze 
voll, um es mal auf Deutsch zu sagen, immer über irgendwelche 
Kleinigkeiten zu stolpern, gerade bei GUIs ist es echt eine Pest mit 
C(++). Bin dann zu HTML/JS/CSS gegangen, schön easy, nur für uCs geht JS 
halt nicht.

Ivo

von dunno.. (Gast)


Lesenswert?

Lern die grundsätze und versteh die konzepte und unterschiede.

Eine prozedurale sprache - C
Eine objektorientierte sprache - C#

Und als gut gemeinten tipp: Nimm von java nur die basics über 
objektorientierung mit, und vergiss sie, sobald du kannst.

von Bürovorsteher (Gast)


Lesenswert?

> Gute zweit Programmiersprache

NDR?

von Arno (Gast)


Lesenswert?

...und viel wichtiger, als den richtigen Gabelschlüssel zur richtigen 
Mutter zu haben, ist es, zu wissen, wie man einen Gabelschlüssel 
ansetzt, wie man erkennt, dass er zu der Mutter passt, und wo man 
passende Gabelschlüssel (oder andere) herbekommt.

Will sagen: Nicht an der Programmiersprache festhalten. Verschiedene 
Programmier-Paradigmen lernen. Überblick über verschiedene 
Programmiersprachen verschaffen.

Und dann je nach Problemstellung und Plattform entscheiden. Die Syntax 
und die Standardbibliothek kannst du dann on-the-project lernen.

MfG, Arno

von Gardener (Gast)


Lesenswert?

Javascript, Golang

von Georg M. (g_m)


Lesenswert?


von Programmer (Gast)


Lesenswert?

dunno.. schrieb:
> Eine prozedurale sprache - C
> Eine objektorientierte sprache - C#

Nein.

Eine objektorientierte sprache - C++

von Enter (Gast)


Lesenswert?

ALGOL ist im kommen.

von Gardener (Gast)


Lesenswert?

Hört bitte mit diesem C# Unsinn auf. Das ist so eine Warze am Arsch der 
Entwicklergemeinschaft.

von Wühlhase (Gast)


Lesenswert?

Was ist an C# eigentlich so schrecklich? Diese Sprache steht in meiner 
Liste dessen, was ich noch lernen will, nämlich noch deutlich über C++.

von Bürovorsteher (Gast)


Lesenswert?

Gardener schrieb:

> ... eine Warze am Arsch der Entwicklergemeinschaft ...

Bitte keine Selbsteinschätzung.

von Funkenzeuger (Gast)


Lesenswert?

Tobias schrieb:
> für mich als Elektrotechnik Student

LabView

von Georg A. (georga)


Lesenswert?

Funkenzeuger schrieb:
> LabView

Dann bitte aber auch asbestummantelte Leitungen verwenden. Genauso 
praktisch, flexibel, robust und langfristig tödlich.

von dunno.. (Gast)


Lesenswert?

Gardener schrieb:
> Hört bitte mit diesem C# Unsinn auf. Das ist so eine Warze am
> Arsch der Entwicklergemeinschaft.

Mach mal ne größere (GUI) Anwendung in C++, und dann eine in C# mit WPF.

Nicht basteln und pfuschen, sondern so richtig. Dann wirst du erkennen, 
das deine aussage einfach nicht fundiert war.

von dunno.. (Gast)


Lesenswert?

Wühlhase schrieb:
> Was ist an C# eigentlich so schrecklich? Diese Sprache steht in
> meiner Liste dessen, was ich noch lernen will, nämlich noch deutlich
> über C++.

Sie ist neu (für den entwicklungsstand mancher leute) und daher per se 
schlecht.

Natürlich ist sie nichts für den embedded-einsatz auf controllern. Aber 
wenn du Windows -anwendungen bauen willst, steht sie zu recht auf deiner 
liste weit oben.

von Daniel A. (daniel-a)


Lesenswert?

Schau dir C, Rust und Lisp an. Jede der Sprachen hat ein paar besondere 
Designentscheidungen, mit denen man ganz unterschiedliche Strategien zur 
Programmentwicklung nutzen kann. Bei C hat man Funktionen, Strukturen, 
statische Typisierung und ansonsten nur das nötigste. Rust hat eine 
interessante Methode zur Speicherverwaltung. Und Lisp ist sowieso von 
einem anderen Stern. Am Schluss kann man dann idealerweise das gelernte 
von jeder Sprache auf jede andere übertragen. Mit Python und Java sind 
Interpreter/Skriptsprachen, OOP und Compretersprachen ja schon 
abgedeckt. Obwohl, bei Javascript hat man noch das interessante 
Prototypen basierte Vererbungssystem, und bei C++ kann man die Stärke 
von Templates mit denen von Generics und Reflection bei Java 
vergleichen. Am besten einfach alle Sprachen lernen.


Wühlhase schrieb:
> Was ist an C# eigentlich so schrecklich?

1) Es ist von Microsoft
2) Es verwendet das .NET Framework
2.1) .NET hat Telemetrie eingebaut
2.2) Das übersetzte zeug ist kein nativer Code und läuft in einer VM, 
ähnlich wie Java
2.3) Anders als einem viele glauben machen wollen, ist die Portabilität 
von C# und .NET Anwendungen in der Regel miserabel
3) C++ ist schon überladen, aber C# packt ähnliches nochmal drauf. Das 
einzig gute, was ich daran finden kann, ist dass es nicht ganz so 
grauenhaft wie Objective-C++ von Apple ist.

von Jürgen W. (Firma: MED-EL GmbH) (wissenwasserj)


Lesenswert?

Wenn Du hinsichtlich "Programmieren" hardware-orientierte bzw. 
Embedded-System-Programmierung meinst, solltest Du Richtung C/C++ 
denken. Gerade in Applikationen, die Zuverlässigkeit fordern, nutzt man 
nicht jedes neue "Spielzeug", das irgendwo am Markt aufpoppt, sondern 
verläßt sich auf das, was bekanntermaßen funktioniert - das sind C und 
C++. Es gibt eigene C-Code Design Rules von der NASA, MISRA usw.

Bzgl. Hardware-Nähe: Natürlich kann man mit AVR oder PIC-Controllern 
etwas machen, aber anspruchsvolle Anwendungen mit Rechenleistung 
benötigen sinnvollerweise 16 oder 32 bit. Ich arbeite zB. mit dem 
MSP430F5438A und komme v.a. bei Filterfunktionen an die Grenzen - 
manchmal wäre da der STM32 etwas schöner.

von Cedric (Gast)


Lesenswert?

> Nun überlege ich noch eine 3 Sprache zu lernen,

Wow, du bist ja total der Überflieger.

Dein Ernst??? Man nimmt für jedes Projekt die Sprache*n*, die optimal 
für jeden Teilaspekt sind.

C++ für das Grundgerüst und das GUI, Assembler für performancerelevante 
Kernfunktionen, VHDL oder Verilog für hardwarenahe Logik, Python, Lua 
oder VB wenn der User Funktionen skripten soll, evtl. Java um auch den 
ewiggestrigen einen API-Wrapper für ihre Lieblingssprache zu bieten, 
Scala und Go für massiv parallele Sections, wenn man das nicht nativ mit 
OpenMP und MPI oder Alternativen hinbekommt, Javascript fürs Web-GUI, 
Erlang, Ocaml, Lisp und Prolog im KI/Linguistik-Bereich usw.

Wenn du während des Studiums nicht in 90% der genannten Sprachen ein 
Projekt erwiesenermaßen erfolgreich abgeschlossen hast, kannst du deine 
E-Technik/Informatikzukunft an den Nagel hängen. Die restlichen 1-2 
Sprachen kannst du dann bei Bedarf schnell dazulernen.

von Jenzz (Gast)


Lesenswert?

>Wenn du während des Studiums nicht in 90% der genannten Sprachen ein
>Projekt erwiesenermaßen erfolgreich abgeschlossen hast, kannst du deine
>E-Technik/Informatikzukunft an den Nagel hängen.

Wow, du bist ja total der Überflieger.

von P.Loetmichel (Gast)


Lesenswert?

Egal ob C C++ oder Csonstwas.

Da bin ich in BASCOM schon lange fertig.

von Bürovorsteher (Gast)


Lesenswert?

P.Loetmichel schrieb:
> Egal ob C C++ oder Csonstwas.
>
> Da bin ich in BASCOM schon lange fertig.

Darum benutzen ja auch ca. 99,758 % der Profis Bascom.

von Komm Peiler! (Gast)


Lesenswert?

Bürovorsteher schrieb:
> P.Loetmichel schrieb:
>> Egal ob C C++ oder Csonstwas.
>>
>> Da bin ich in BASCOM schon lange fertig.
>
> Darum benutzen ja auch ca. 99,758 % der Profis Bascom.

Richtig.

von Rolf M. (rmagnus)


Lesenswert?

Cedric schrieb:
>> Nun überlege ich noch eine 3 Sprache zu lernen,
>
> Wow, du bist ja total der Überflieger.
>
> Dein Ernst??? Man nimmt für jedes Projekt die Sprache*n*, die optimal
> für jeden Teilaspekt sind.

Dazu gehört insbesondere aber auch der Teilaspekt "Gute Kenntnisse in 
der Programmierung mit dieser Sprache".

> Wenn du während des Studiums nicht in 90% der genannten Sprachen ein
> Projekt erwiesenermaßen erfolgreich abgeschlossen hast, kannst du deine
> E-Technik/Informatikzukunft an den Nagel hängen.

Bei Hochschulabgängern kann man in der Regel froh sein, wenn sie die 
Namen von 3 dieser Sprachen schon mal gehört haben.
Aber ich bevorzuge auch jemanden, der zwei Sprachen richtig kann 
gegenüber jemandem, der schon in 10 Sprachen jeweils genau ein Projekt 
irgendwie hinbekommen hat.

: Bearbeitet durch User
von Max S. (maximus-minimus)


Lesenswert?

"Da bin ich in BASCOM schon lange fertig."
dann versuch mal lazaurs/Pascal...damit gehts super.

: Bearbeitet durch User
von Experte (Gast)


Lesenswert?

Rolf M. schrieb:
> Dazu gehört insbesondere aber auch der Teilaspekt "Gute Kenntnisse in
> der Programmierung mit dieser Sprache".

Ahso. Ich dachte immer Wissen über Architektur und alles was über 
syntaktischen Zucker hinaus geht wären interessant. Sprachen kommen und 
gehen.

Aber so kann man sich täuschen.

Das coole ist, diese Java/c#/(...)-Fachitioten schaffen sich recht 
schnell von selber ab.

von Random .. (thorstendb) Benutzerseite


Lesenswert?

C/C++ mit Templates, STL

von Schlumpf (Gast)


Lesenswert?

> Ich dachte immer Wissen über Architektur

Ja, lass dich von diesen H0nks mit ihrem in C++/C#/Java
zusammengekloeppeltem Sch..ss nicht blenden.

Der Ingenieur braucht einen guten Bleistift.
Fuer die Architektur.
Zum Codiern gibts genug Codierschweinchen.

von Rolf M. (rmagnus)


Lesenswert?

Experte schrieb:
> Rolf M. schrieb:
>> Dazu gehört insbesondere aber auch der Teilaspekt "Gute Kenntnisse in
>> der Programmierung mit dieser Sprache".
>
> Ahso. Ich dachte immer Wissen über Architektur und alles was über
> syntaktischen Zucker hinaus geht wären interessant.

Warum sollte sich das gegenseitig ausschließen? Dass man ein Werkzeug, 
das man intensiv benutzt, beherrschen sollte, heißt nicht zwangsläufig, 
dass alles andere uninteressant ist.

> Sprachen kommen und gehen.

Naja, ich programmiere jetzt seit ca. 25 Jahren in C und C++ und etwas 
weniger lange in Python. Bisher ist da kein Ende in Sicht. Kommt aber 
sicher auch drauf an, in welchem Bereich man unterwegs ist.

von Hans-Georg L. (h-g-l)


Lesenswert?

Random .. schrieb:
> C/C++ mit Templates, STL

Und Windows GUI dann mit WTL/ATL ;-)

von Detlef J Frankfurt (Gast)


Lesenswert?

Alles Unsinn. Schlicht C ist immer noch sehr gefragt. Zumal C++ und C# 
objektorientierte Sprachen sind.

von C++Daddy (Gast)


Lesenswert?

Für eine gewisse Sprachen-Diversifizierung von den genannten, würde ich 
etwas weg von Sprachen die auf virtuellen Maschinen laufen, eher hin zu 
hardwarenahen Sprachen mit echtem Maschinencode. Daher C++ oder eben C

von Random .. (thorstendb) Benutzerseite


Lesenswert?

Hehe ... irgendwer muss ja den JAVA Interpreter schreiben :-)

von Der Andere (Gast)


Lesenswert?

dunno.. schrieb:
> Mach mal ne größere (GUI) Anwendung in C++

Gibts doch kaum noch.
Alles muss in einer Cloud und auf Applicationserver und/oder auf 
Container wie Docker lauffähig sein.
Am besten betriebssystemunabhängig, virtualisier- und möglicht beliebig 
skalierbar.
Zumindest wenn man professionell größere Projekte jenseits eines 
Entwicklerdesktops macht.

Und schon ist c# ein Exot und Java das Mittel der Wahl!

c# nutzt gar nichts wenn man Controller programmieren will, c++ dagegen 
sehr.

c# ist nichts weiter als der Versuch von Microsoft Java nachzubauen, 
aber so daß nur Mircosoft daran verdient. Das hat gut geklappt für PCs 
mit Windows, aber darauf laufen immer weniger große 
Backoffice-Anwendungen.

von Experte (Gast)


Lesenswert?

Der Andere schrieb:
> c# ist nichts weiter als der Versuch von Microsoft Java nachzubauen,
> aber so daß nur Mircosoft daran verdient. Das hat gut geklappt für PCs
> mit Windows, aber darauf laufen immer weniger große
> Backoffice-Anwendungen.

Besser hätte ich es auch nicht formulieren können!
Java ist aber auch nicht mehr das mittel der Wahl. Es gibt genügend 
andere modernere Alternativen (wie z.b. nodejs, golang, kotlin) die mit 
verrosteten Java-Konzepten aufräumen. Womit nicht unbedingt die JVM 
gemeint ist. Da kann man durchaus noch einiges rausholen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.