Kann man mit Objektorientierten Programmiersprachen nur Anwendungen/Software entwickeln?

... komplette Frage anzeigen

7 Antworten

wo ist die Grenze eines programmierers, welcher nur Objektorientierte Programmiersprachen beherscht ?

Das ist individuell. Meine Grenzen sind nicht gleich deine oder die eines X beliebigen anderen Programmierers.

Kann man mit einer OOP nur Anwendungen/Software/Apps schreiben ? Oder ist man auch als OOP-Programmierer in der Lage, Websiten zu schreiben oder näher am Betriebs-System zu programmieren ?

Uuuuuu, du begehst grade den Fehler hier nur nach Assemblersprache und Objekt Orientierter Sprache zu unterscheiden, das ist ziemlicher Quatsch.

Es kommt schlichtweg auf die Beschaffenheit der Sprache an. Wenn du Python programmierst, hast du sicher schon vom Framework Django gehört; damit erübrigt sich die Frage zumindest im Bezug auf Webseiten.

Je nach Sprache kann man damit low level Programmieren oder eben auch nicht.

Und umgekehrt, ist ein Programmierer welcher Assemblersprache beherscht besser als ein OOP-Programmierer ?

Ich glaube, du hast absolut nicht verstanden wofür man Assemblersprache heutzutage einsetzt.

Ganz früher waren Programmierer mangels Alternativen und geringem Speicherplatz dazu gezwungen in einer Assemblersprache zu entwickeln. Das ist halt ziemlich aufwendig und fehleranfällig.

Komplette Programme würde mittlerweile niemand komplett in Assembler schreiben (jedenfalls nicht kommerziell). Üblich ist es aber, dass man bei Performance intensiven Treibern oder so (oder Systemen mit geringer Leistung + Speicherplatz) die in C geschriebenen Programme mit einer Assemblersprache zu optimieren (Man disassembliert das fertige Programm, schaut sich die Assembler Dateien an und prüft ob man irgendwo ein paar Befehle sparen kann).

PS: Assemblersprache zu lernen lohnt sich eigentlich nur wirklich, wenn man die Funktionsweise seines Rechners verstehen will. Trotzdem ist das eher eine Spielerei.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von androhecker
07.08.2016, 18:26

GCC kann man auch mit der -S Option den Vorgang vor dem Assembler stoppen, dann kann man sich den Disassembler sparen.

1
Kommentar von androhecker
07.08.2016, 18:27

Mit GCC*

1

Nun ja, der einzige wirkliche Nachteil sind die Leistungseinbußen, aber ansonsten ist OOP um einiges einfacher.

Websiten erstellt man mit HTML und CSS wobei beide keine Programmiersprachen sind. Dynamischer Content kommt durch die Objektorientierte Programmiersprache JavaScript.

Nahe am System geht mit C++ auch, und das auch Objektorientiert.

In der Regel kann ein Programmierer, der eine Assemblersprache kann auch eine OOP Sprache, aber besser ist er dadurch nicht zwingend. Mit Assembler kann man auf heutigen Computern sowieso nicht so viel anfangen.

Am Anfang musst du dir da da noch nicht viele Gedanken machen, eine Assemblersprache wirst du womöglich sowieso nicht benutzen.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Starjuice
06.08.2016, 22:50

Okay, auch dir vielen Dank für deine Antwort ,)

1
Kommentar von W00dp3ckr
06.08.2016, 22:54

Seh ich genauso. Es kommt auf die Konzepte an. Und die würde ich ersteinmal in einer Sprache wie Python lernen. Ob Du irgendwann etwas anderes brauchst, hängt sehr von Deinen Interessen ab.

2
Kommentar von androhecker
06.08.2016, 22:59

Also wenn du noch viele Fragen hast, habe Threema, Skype, etc.

2

In der Programmierung gibt es, wie bei den Ärzten nur Fachidioten. Nur, weil man programmieren kann, kann man nicht automatisch Spiele, Apps, Windows-Programme, Web, Treiber und was weiß ich entwickeln. In allem musst du dich erst einarbeiten. Zum Teil sogar ganz massiv. Deswegen bist du als Entwickler in der Regel auf etwas spezialisiert. Wenn jemand Assembler beherrscht, beherrscht er auch nicht automatisch alles andere. Deswegen lässt sich nicht pauschal sagen, dass ein Assembler-Entwickler der bessere Entwickler ist. Jeder kann in seinem Bereich besonders gut sein und über viel Know How verfügen.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von TeeTier
07.08.2016, 13:28

Sehr gut formuliert!!! :)

1

Grundsätzlich gilt:

  • Wirklich jedes in einer Programmiersprache (gleich welcher Art) geschriebene Programm bezeichnet man auch als Software.
  • Es gibt keine Programmierer, die nur objektorientierte Programme schreiben (oder gar schreiben können), denn:
  • Damit ein Programm als objektorientiert gilt, muss es einfach nur gewisse Eigenschaften haben. Objektorientierte Sprachen machen es deutlich leichter als andere, dem Programm - genauer: dem Code - diese Eigenschaften zu geben.
Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von grtgrt
07.08.2016, 10:53

Zudem gilt:

Es gibt Programme, die grob gesehen objektorientiert sind - in der das Innere der einen oder anderen Klasse aber überhaupt nicht mehr als objektorientierter Code bezeichnet werden kann.

2
Kommentar von grtgrt
07.08.2016, 11:05

Wenn ich oben sage "genauer: dem Code", so ist damit der Sourcecode gemeint: der Text also, den der Programmierer zu schreiben hat.

Ein passender Compiler wird ihn umsetzen in Binärcode. Dem aber ist überhaupt nicht mehr anzusehen, dass der Sourcecode objektorientiert war. 

3

Jede Programmiersprache soll helfen, ein Problem zu lösen, das per Software „beschrieben“ und gelöst werden soll.

Die Grenzen eines Programmierers sind sehr individuell.

Was soll man mit OOP sonst schreiben wie Anwendungen/Software/Apps?

Ob man Webseiten oder nah an Betriebssystemen zu proggen vermag, zeigen die zuvor beschrieben individuellen Grenzen.

Wann „beherrscht“ man eine Assemblersprache? Warum sollte man deswegen „besser“ sein? Wie sollte sich das denn bemerkbar machen?

Früher oder später sind die Compiler gezwungen, die „hochsprachlichen“ Sprachkonstrukte in eine Folge von Assemblermnemoniks zusammenzustellen, die dann verlinkt werden und in ein passendes Exe-File umgewandelt werden. Wenn du dann als Assemblerprogrammierer Prozeduren in passende Assemblercodes und Stackframes zusammenstellen kannst, bist du richtig gut. Ansonsten gehörst du eher zum „Fußvolk“ … :-)

Antwort bewerten Vielen Dank für Deine Bewertung

Wirklich gute Assembler-Programmierer bauen sich für ihre Anwendungen ein Objekt-System, falls die Anwendung so groß ist.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Starjuice
06.08.2016, 22:54

Das macht Sinn ;D ob ich da mal hinkomme steht noch in den Sternen

1

Python ist so ein Mix. Es bietet alles, was man aus Java per OOP so kennt plus viele Details wie Operatorenüberladung und Zugriff auf Schnittstellen zum Betriebssystem und systemnahe Funktion, die aus C/C++ kommen.

Assembler-Grundkenntnisse sind vorteilhaft, da du dann verstehst, wie objektorientierte Sprachen ausgebaut sind und wo man optimieren kann.

Was meinst du mit Webseiten schreiben? HTML/Latex muss man separat lernen, aber die Übergabe von dynamischen Seiteninhalten geht mit Python und XML/DOM prima, sollte man da einige Kenntnisse haben.

PHP ist noch eine tolle Alternative zu Webseitenskripten.

Ich empfehle das Buch Python 3 - Lernen und professionell anwenden (mitp Professional), solltest du ein gutes Referenzwerk suchen. Bleibt interessant bis zum Schluss ;)

https://www.amazon.de/gp/product/3826694562/ref=oh\_aui\_detailpage\_o00\_s00?ie=UTF8&psc=1


Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Starjuice
06.08.2016, 22:49

Hey danke für die Antwort, wenn auch nicht alle meine fragen beantwortet wurden.

Was meinst du mit Webseiten schreiben? HTML/Latex muss man separat
lernen, aber die Übergabe von dynamischen Seiteninhalten geht mit Python
und XML/DOM prima, sollte man da einige Kenntnisse haben.

Okay danke, diese Antwort reicht mir fürs erste ;)

Ja danke dir auch für die Empfehlung, in der Bücherei letztens habe ich mir das Buch "Programmieren lernen mit Python" von Allen B. Downey ausgeliehen und Python für Dummis, vorher hatte ich mich sehr belesen im Netz und mit einige Tutorials angesehen welcher mir etwas verständnis brachten.

Ich verstehe schon einiges und hab mir mit bissle spickhilfe schon nen einfachen taschenrechner programmiert, sowie nen Zipcracker, und kleine Datenbanken und mich auch mit den Gui's beschäftigt usw. Ich weiß aber nicht so recht wie ich das programmierte welche in .py dateien gespeichert sind, als richtige anwendungen abspeichern kann. Öffnen kann ich jede arbeit immer nur mit dem Idle und diese darauf ausführen. Ja hab da noch einiges zu lernen daher wollte ich mal so wissen was genau man mit einer OOp so tun kann.

1
Kommentar von androhecker
06.08.2016, 22:58

Die Python Skripte bilden die Anwendung. Falls du eine Exe für Windows haben willst, das geht nicht. Diese enthalten Maschinensprache, idR kompilierten C oder C++ Code. Mit Python geht das aber nicht. (Ist eine Interpreter-Sprache, benötigt ein Python Runtime)

1