Arsch abcoden?
-
Nabend,
so also ich bin atm im 1. Lehrjahr in der Ausbildung zum FIAE und lerne im Betrieb Java, in der Bs C#. Mir gefällts auch sehr gut, vorallem weil ich davor sehr viel interesse am programmieren hatte. Ich hab jetzt auch im Betrieb meine erste kleine brauchbare Anwendung geschrieben. Ein kleines Chat-Programm mit Grafischer Oberfläche, non-standard look and feel, Userlist und rcon um server vom client aus zu steuern. Läuft auch alles ganz schick aber jetzt eigtentlich zum Punkt. Bisher hab ich alles verstanden was ich gelernt habe, aber trotzdem scheiterts an dem Verständnis von dem ganzen Konzept der Programmierung. Ich meine damit dass man doch eigtl total eingeschränkt ist durch vorgegebene Funktionen z. B. toString oder Sachen wie Sockets usw. Man kann ja eigene Methoden schreiben, aber selbst in denen kann man doch nur die Funktionen benutzen die in der library bzw. framework sind oder? Also bspw. gibt es in Java die Klasse Socket und ServerSocket, so wenns die beiden nicht geben würde dann könnte man ja netzwerktechnisch doch garnichts machen. Wenn ich mir dann in eclipse mal die Klasse "Socket" anschau, da is doch garnix großartiges dabei wo sagt, dass ein Socket das und das machen soll oder Verbindung aufbauen usw. Wenn ich mir dann aber Anwendungen wie OpenOffice und so Sachen anschau dann bin ich mir ganz sicher, dass ich irgendwas an dem ganzen Konzept nicht wirklich verstanden hab ^^. Des gilt allerdings nicht nur für Java sondern auch alle anderen Programmiersprachen. Wäre jemand so lieb und würd mir die Sache etwas näher bringen bzw. mich aufklären? Wär ich sehr dankbar dafür.
Worauf ich auch noch anspielen will ist, dass wenn man für ein noch nicht da gewesenes Problem eine Lösung finden möchte, dann muss es ja schon eine Lösung in Form von Funktionen usw. in der Sprache schon geben, also würde man sich doch im Endeffekt den Arsch abcoden.
-
Ähm, ich sag mal so: wenn du kein Holz hast, kannst du keine Hundehütte bauen!
Für die Lösung eines Problems braucht man schließlich auch ein Werkzeug, um die Sache überhaupt angehen zu können. Du stellst das aber so dar, als gäbe es für jedes Problem, das sich stellt, eine Funktion der Marke "LöseProblemXY()". Das ist ja nicht so. Du hast im Grunde schon Recht, für viele Dinge gibt es schon fertige Funktionen. Wenn du quadrieren oder die Wurzel ziehen möchtest, nimmst du dafür eine fertige Funktion, anstatt das selbst zu programmieren. Aber das ist ja auch gut so. Du könntest auch alles selber in Assembler schreiben. Aber denk mal daran, wie lange du allein daran sitzen würdest, in ASM ohne WinAPI-Unterstützung ein Fenster zu programmieren. Das würde dich eher beim Lösen deines Problems (das komplexer ist als das Erzeugen eines Fensters) behindern.
Bibliotheken, APIs, Frameworks sind einfach Werkzeuge, um dir das Lösen eines Problems überhaupt erst mit vertretbarem Aufwand möglich zu machen. So musst du es sehen. Und wenn du dir komplexe Programme ansiehst, dann sollte dir klar sein, dass da nicht einfach ein, zwei Funktionen aufgerufen werden. Bei 1 Mio. Zeilen Code bist du einfach froh, dass es nicht 50 Mio. Zeilen ASM-Code sind...
-
lol? Für Geld würde ich mir sogar den Arsch Wund coden...
-
Wenn du ein Haus baust, backst du dann deine Ziegelsteine selbst? Nein! Trotzdem ist ein Haufen Ziegelsteine noch kein Haus. Das ganze nennt sich grob Modularisierung. Aus kleinen "Allzweck"-Komponenten baut man was Grosses. Natuerlich schraenken dich Java und C# ein, aber auf ganz anderer Ebene als du sie beschrieben hast. Auch wirst du vom Betriebssystem eingeschraenkt oder gar von der Rechnerarchitektur (wobei Rechnerarchitektur und Betriebssystemeinschraenkungen nicht vergleichbar mit den Einschraenkungen von Java oder C# sind).
Zum Punkt: willst du deine Ziegelsteine selbst backen, so bietet C# oder Java leider kein Backofen an. C, C++, Pascal (Delphi), Assembler und viele mehr sind da besser geeignet.
-
Und Assembler ist kein Backofen sondern ein kleines Lagerfeuer, dass ständig versucht aus zu gehen
-
knivil schrieb:
Zum Punkt: willst du deine Ziegelsteine selbst backen, so bietet C# oder Java leider kein Backofen an. C, C++, Pascal (Delphi), Assembler und viele mehr sind da besser geeignet.
Hast du ein gutes Rezept für Ziegelsteine? Meine werden immer so hart, dass man sie kaum noch essen kann und schmecken tun sie auch nicht besonders.
-
Hehe...
@nine
Tja, mit Java und C# Zeugs hast du wahrscheinlich noch weniger Möglichkeiten diese vorgefertigten Funktionen selbst zu schreiben. In C/C++ geht da bestimmt mehr, wenn auch irgendwann ASM an der Reihe sein muss...Sei froh dass es Vorgefertigtes gibt; mein Tipp: Steig um auf C++
-
Halbwissen schrieb:
Tja, mit Java und C# Zeugs hast du wahrscheinlich noch weniger Möglichkeiten diese vorgefertigten Funktionen selbst zu schreiben.
Wieso? Zumindest in C# kann man doch auch alle nativen WinAPI-Funktionen aufrufen, muss man halt vorher "deklarieren" (weiß nicht mehr, wie das Fachwort heißt).
-
Badestrand schrieb:
Halbwissen schrieb:
Tja, mit Java und C# Zeugs hast du wahrscheinlich noch weniger Möglichkeiten diese vorgefertigten Funktionen selbst zu schreiben.
Wieso? Zumindest in C# kann man doch auch alle nativen WinAPI-Funktionen aufrufen, muss man halt vorher "deklarieren" (weiß nicht mehr, wie das Fachwort heißt).
Meinst du P/Invoke?
Grüssli
-
Dravere schrieb:
Meinst du P/Invoke?
Ach richtig, danke
Nutzt du C# gelegentlich?
-
Badestrand schrieb:
Dravere schrieb:
Meinst du P/Invoke?
Ach richtig, danke
Nutzt du C# gelegentlich?
*schaut auf sein Buch vor der Tastatur* Ich fange gerade damit an
Die Sprache ist allerdings gefährlich ... die könnte noch meine Lieblingssprache C++ verjagen, zumindest auf WindowsAber zuerst mal das Buch fertig lesen, das dauert noch ein wenig. Danach erste sinnvolle Anwendungen damit machen. Dann können sich die zwei Sprachen um mich streiten
Grüssli
-
Dravere schrieb:
*schaut auf sein Buch vor der Tastatur*
Welches Buch ist das denn? Ich hab nämlich auch vor, mich irgendwann mal in der Richtung schlau zu machen. Vielleicht kannst du mir gleich mal was Gutes zum Lesen empfehlen.
-
_matze schrieb:
Welches Buch ist das denn? Ich hab nämlich auch vor, mich irgendwann mal in der Richtung schlau zu machen. Vielleicht kannst du mir gleich mal was Gutes zum Lesen empfehlen.
Visual C# 2008 von Frank Eller (Addison-Wesley Verlag)
Bin erst ca. bei der Hälfte, bisher finde ich es nicht schlecht. Es stört mich ein wenig, dass es mehr wie eine Zusammenfassung wirkt. So bekommt man zwar einen Überblick über C#, die .Net Bibliothek und ihre Möglichkeiten, aber es ist dann teilweise schon etwas trocken.
Und wenn ich im Inhaltsverzeichnis nach vorne Blicke, dann sehe ich da zum Beispiel die Windows Forms. Und dort gibt es ein riesiges Kapitel: "Standard-Steuerelemente". Da wird einfach jedes Steuerelement kurz vorgestellt. Und dann das gleiche nochmals bei WPF, für alle Standard WPF-Elemente. Ich weiss nicht, aber für sowas ist doch eher die MSDN zuständig, für sowas hat man eine Dokumentation
Oder halt dieses Buch als Nachschlagewerk, denn für sowas ist es mir bisher positiv aufgefallen. Hat auch ein sehr gutes Stichwortverzeichnis.Mal schauen. Endgültiges Urteil kann ich natürlich erst abgeben, wenn ich es durchgelesen habe.
Grüssli