Willkommen |
|
|
myGully |
|
|
Links |
|
|
Forum |
|
|
|
|
 |
02.01.11, 12:58
|
#1
|
|
Banned
Registriert seit: Dec 2010
Beiträge: 85
Bedankt: 91
|
1. Natürlich ist Java eine imperative Programmiersprache. Was soll es denn bitte sonst sein?
2. Den Gegensatz zu imperativen Programmiersprachen stellen DEKLARATIVE Programmiersprachen dar!
> Imperativ bedeutet, dass man den Ablauf der Anweisungen selbst bestimmt!
> Deklarativ bedeutet, dass man das Problem vorgibt und logisch erläutert. Die deklarative Programmiersprache benutzt dann Methoden, um eine Lösung ohne Vorgabe des Ablaufes (Algorithmus) zu finden! Solche Sprachen haben keinen einzigen echten Befehl!
3. In Java werden ALLE Anweisungen (Befehle) von Objekten zur Verfügung gestellt werden, die man endlos erweitern und neu erstellen kann. Der "Befehlssatz" ist damit unendlich. (Syntaktische "Befehle", wie z.B. for-Schleifen, Operator-Anweisungen etc. mal ausgenommen).
@TE:
Um vieles Programmieren zu können, muss man nur die Syntax beherrschen, das Programmierkonzept verstehen und ansonsten wissen, wo man nachlesen kann.
Ich bin im IT-Consulting-Bereich tätig und helfe bei der Entwicklung von Software in verschiedenen Unternehmen in vielen Ländern Europas. Während meiner beruflichen Laufzeit musste ich mich auch mit neue Programmiersprachen auseinandersetzen. Ein Syntax-Crash-Kurs und die jeweiligen besonderen Eigenschaften einer Programmiersprachen kann man in wenigen Stunden/Tagen erlernen. Das reicht schon, um sich in großen Softwareprojekten gut zurecht zu finden und in diesen mit zu wirken. Jedes weitere oder komplexere Problem kann man in Büchern oder im Internet nachschlagen.
|
|
|
|
Folgendes Mitglied bedankte sich bei m3zz0w1x:
|
|
02.01.11, 15:09
|
#2
|
|
Erfahrener Newbie
Registriert seit: May 2009
Beiträge: 108
Bedankt: 94
|
Zitat:
Zitat von m3zz0w1x
Um vieles Programmieren zu können, muss man nur die Syntax beherrschen, das Programmierkonzept verstehen und ansonsten wissen, wo man nachlesen kann.
Ich bin im IT-Consulting-Bereich tätig und helfe bei der Entwicklung von Software in verschiedenen Unternehmen in vielen Ländern Europas. Während meiner beruflichen Laufzeit musste ich mich auch mit neue Programmiersprachen auseinandersetzen. Ein Syntax-Crash-Kurs und die jeweiligen besonderen Eigenschaften einer Programmiersprachen kann man in wenigen Stunden/Tagen erlernen. Das reicht schon, um sich in großen Softwareprojekten gut zurecht zu finden und in diesen mit zu wirken. Jedes weitere oder komplexere Problem kann man in Büchern oder im Internet nachschlagen.
|
Das kann ich nur untermauern. Die Sprache wechselt man später sehr schnell, da man seine Erfahrung und das Fachwissen direkt übernehmen kann. Man muss nur die Syntax, die IDE und die Eigenarten der jeweiligen Sprachen nachlernen. Über die Details stolpert man dann in der Entwicklung noch genug.
Hauptentwicklungstool ist ohnehin google
@TE:
Vieles wirkt anfangs recht leicht zu verstehen, ist dann aber in der Anwendung sehr komplex und wird schnell schwer - gerade für Anfänger.
Ein klassisches Beispiel wäre das OOP Konzept: Die Definition von Klasse und Objekt zu lernen ist völlig trivial. Ein Klasse zu beerben oder zu instanzieren ist auch simpel. Wenn man dann aber in medias res geht und die Sachen hinsichtlich ihrer Flexibilität und Macht ein wenig mehr ausschöpft, dann klappen viele, die vorher meinten, OOP verstanden zu haben, ganz schnell zusammen.
|
|
|
02.01.11, 19:22
|
#3
|
|
Newbie
Registriert seit: Jun 2009
Beiträge: 70
Bedankt: 26
|
Zitat:
Zitat von m3zz0w1x
1. Natürlich ist Java eine imperative Programmiersprache. Was soll es denn bitte sonst sein?
|
Du hattest gesagt: "OOP-Sprachen wie Java haben so etwas wie "Befehle" nicht". Und das stimmt nicht. Wie oft schon hatte ich so Situationen wie jetzt, wo jemand etwas schreibt, dann korrigiert man die Aussage und dann heißt es "Was soll es denn bitte sonst sein?". Ja, das widerlegt einfach deine Aussage, die du vorher gemacht hast. Sonst soll das gar nix sein. Wenn eine Sprache imperativ ist, dann baut sie auf "Befehle", besser gesagt Anweisungen. Von daher ist ""OOP-Sprachen wie Java haben so etwas wie "Befehle" nicht" falsch, sorry.
Zitat:
Zitat von m3zz0w1x
2. Den Gegensatz zu imperativen Programmiersprachen stellen DEKLARATIVE Programmiersprachen dar!
> Imperativ bedeutet, dass man den Ablauf der Anweisungen selbst bestimmt!
> Deklarativ bedeutet, dass man das Problem vorgibt und logisch erläutert. Die deklarative Programmiersprache benutzt dann Methoden, um eine Lösung ohne Vorgabe des Ablaufes (Algorithmus) zu finden! Solche Sprachen haben keinen einzigen echten Befehl!
|
Das musst du mir nicht erklären. Aber nicht nur deklarative Programmierung ist ein Gegensatz zur imperativen Programmierung. Wie ich schon gesagt habe, sind auch viele funktionale Programmiersprachen nicht imperativ. Ich sage extra nicht "alle", da viele Sprachen einfach Multiparadigmensprachen sind. Imperative Programmiersprachen sind "verwandt" mit Turing-Maschinen, rein funktionale Programmiersprachen hängen dagegen mit dem Lamda-Kalkül zusammen. Das heißt dort besteht ein Programm nur aus Funktionsdefinition, Funktionsanwendung und Funktionskomposition. Nicht aus Anweisungen/Befehlen.
Zitat:
Zitat von m3zz0w1x
3. In Java werden ALLE Anweisungen (Befehle) von Objekten zur Verfügung gestellt werden, die man endlos erweitern und neu erstellen kann. Der "Befehlssatz" ist damit unendlich. (Syntaktische "Befehle", wie z.B. for-Schleifen, Operator-Anweisungen etc. mal ausgenommen).
|
Ich kann mich nicht so ganz mit deinem Vokabular anfreunden. Unter Befehlssatz versteht man allgemein eine Menge von Maschinenbefehlen für Prozessoren. Natürlich weiß ich was du damit aussagen willst. Wenn ich die genannten syntaktischen Anweisungen aneinander hänge, beispielsweise in Java in einer Methode eines Objektes oder in C in einer Prozedur, habe ich dadurch aber nicht meinen "Anweisungssatz" in der Sprache erweitert, sondern diese "nur" strukturell zusammengefasst.
Ich kann dann diese "Struktur" dann wie einen einzelnen Befehl aufrufen, aber es sollte klar sein, dass das intern nur ein wie auch immer gearteter Sprungbefehl ist, die eigentlichen Sprachanweisungen ausgeführt werden und dann ein Rücksprung stattfindet. Nur weil mir eine Sprache die strukturelle Zusammenfassung von Anweisungen erlaubt, habe ich dadurch nicht einen unendlichen "Befehlssatz". Hau so Dinger bloß nicht bei deinem Consulting raus.
Ich zähle auch die umfangreiche Klassenbibliothek bzw. API von Java oder beispielsweise C# nicht zur SPRACHE Java bzw. C#.
|
|
|
02.01.11, 21:16
|
#4
|
|
Erfahrener Newbie
Registriert seit: May 2009
Beiträge: 108
Bedankt: 94
|
Diskutieren wir jetzt formale Sprachen und Definitionen (selbiger)? Das war an der Uni schon langweilig, führte zu endlosen Wortklaubereien und ist sehr weit offtopic
Eine Sprache erweitert man m.M.n. nicht um "Befehle" indem man Methoden oder Prozeduren definiert. Die Befehle entstammen dem Alphabet der Sprache während eine Methode einen Teil eines Wortes der Sprache ausmacht. Das Alphabet der Sprache ist endlich und klar definiert während Worte (Programme) eine syntaktisch korrekte, nicht zwingend endliche, deterministische und bestenfalls semantisch sinnvolle Komposition aus Teilen der Menge des Alphabets der Sprache sind.
Ob der Terminus "Befehl" nun nur Teilmenge/n des Alphabets der Sprache sein darf oder nicht, müsste man wohl schon beinahe etymologisch betrachten. Gehe ich im herkömmlichen Sinne an das Wort Befehl heran, dann geht es dabei nur um die reine Intention, einen Dritten zu einer Handlung aufzufordern. Im hardwarenahen Bereich geht es, wie banghard schon sagte, eher nur um den "Befehlssatz" der Hardware und wenn ich einen Standardanwender frage, dann ist alles, was er irgendwo eintippt ein Befehl für den Computer. Nicht umsonst erklären Fachbücher eingangs ihre Terminologie ... und das hier wird immer weiter offtopic
|
|
|
Forumregeln
|
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:33 Uhr.
().
|