Welche Programmiersprachen sind genormt?
-
Hi,
das beste Negativbeispiel für nicht genormte Sprachen sind die vielen frühen Versionen von Basic. Jeder kannte Basic, und doch kannte jeder was anderes. Es gab so gut wie keine wirkliche Übereinstimmung zwischen den verschiedenen Basic-Versionen. Ein Programm in eine andere Basicversion übernehmen hieß vielfach fast Neuprogrammierung.
Das Gegenstück war ADA. Da waren (zumindest damals) nur Compiler zulässig, die den vollen Ada-Umfang unterstützten. Und auch das Ergebnis war relativ eng vorgegeben. Qualität war in bestimmten Grenzen damit erzwingbar.
Sicher entwickelt man kritische Systeme heute für einen bestimmten Compiler. Aber nicht nur die Steuerung eines Reaktors ist kritisch, sondern auch die Software mit der amn ihn konstruiert und durchrechnet...
Da werden Programme entworfen mit denen Brücken berechnet werden, da werden Klimamodelle gerechnet... Wer sagt, daß die Programme richtig rechnen?
Gruß Mümmel
-
muemmel schrieb:
Da werden Programme entworfen mit denen Brücken berechnet werden, da werden Klimamodelle gerechnet... Wer sagt, daß die Programme richtig rechnen
Da gibst ein handvolle mathematisch hochbegabte Informatikpionier spezialisiert auf Verifikation von komplexen Systeme.
-
muemmel schrieb:
das beste Negativbeispiel für nicht genormte Sprachen sind die vielen frühen Versionen von Basic. Jeder kannte Basic, und doch kannte jeder was anderes. Es gab so gut wie keine wirkliche Übereinstimmung zwischen den verschiedenen Basic-Versionen. Ein Programm in eine andere Basicversion übernehmen hieß vielfach fast Neuprogrammierung.
Und dann kam ANSI-Basic und war so toll, dass es ... vollkommen ignoriert wurde.
Das Gegenstück war ADA. Da waren (zumindest damals) nur Compiler zulässig, die den vollen Ada-Umfang unterstützten. Und auch das Ergebnis war relativ eng vorgegeben. Qualität war in bestimmten Grenzen damit erzwingbar.
BASIC mit ADA zu vergleichen ... du machst ja Späße.
Da werden Programme entworfen mit denen Brücken berechnet werden, da werden Klimamodelle gerechnet... Wer sagt, daß die Programme richtig rechnen?
Es könnte auch sein, dass ein kosmisches Strahlungsteilchen ein Bit kippen lässt. Man sollte einfach mal die Relationen wahren: Die weitaus meisten fehlerhaften Programme entstehen aufgrund von Programmierfehlern. Compilerfehler sind dagegen echt vernachlässigbar.
-
Ich finde die Ausreden gegen eine Normierung mehr als peinlich für Akademiker und auch für die Leute die nur programmieren. Sicher sind meine Beispiele nicht perfekt, aber es sollte klar sein worum es geht. Gerade Wissenschaftler geht es um Genauigkeit, aber von so einer Denkweise sind die Poster hier weit entfernt.
Ich habe hier noch nicht einen Satz gelesen der wirklich gegen eine Normpflicht im professionellen Umfeld sprechen würde.
Das ist echt peinlich für die ganze Branche, erklärt wie gesagt aber auch alles. Kein Wunder dass die Softwareentwicklung nur schwer vorankommt bei der Einstellung.
Jeder kocht sein eigenes Süppchen so wird das was Jungs...blos nix Vereinheitlichen damit es schön alle schwer haben Qualität abzuliefern. Die armen Kunden und die armen Programmierer die von Firma zu Firma immer wieder fast bei Null anfangen dürfen weil sei eben nicht auf Standards zurückgreifen können wie z.B.: Elektriker etc.
Sorry wenn ich so emotional geworden und nicht mehr gerade rational geblieben bin, aber das kotzt mich schon seit Jahren an, aber wahrscheinlich erkennt man in dem Sumpf gar nicht mehr wie andere Bereiche Produktionen meistern und warum da sofort ein neuer Arbeiter die alte Arbeit übernehmen kann ohne gleich super gestresst zu sein weil alles mal wieder anders ist.
Ich klinke mich hier aus sonst platze ich noch...
-
funcoder schrieb:
Ich habe hier noch nicht einen Satz gelesen der wirklich gegen eine Normpflicht im professionellen Umfeld sprechen würde.
Es ist teuer, so ein Produkt zu normieren, wenn man noch nicht mal weiß, wie es genau auf dem Markt ankommen wird. Es killt Innovation. Er verlängert Entwicklungszyklen. Usw.
Warum sollte sich zB. Matlab oder Java einer ISO-Normierung unterziehen? Erst mal muss man dann viele andere Leute ins Boot holen, gibt also Autonomie auf und Wissen an die Konkurrenz heraus und man hat Entwicklungszyklen der Sprache, die 10+ Jahre sind. Wo soll da der Vorteil sein? Daß Du mit einem einmal gelernten Kram 15 Jahre nix neues lernen brauchst? Sorry, das ist kein Argument.
Wenn eine Nachfrage nach Normierung da ist, dann wird das meistens auch gemacht oder es bilden sich halt dezentral Standards heraus, die sich als sinnvoll durchgesetzt haben (die Anordnung der Tasten auf deiner Tastatur ist zB. nicht normiert). Oft braucht man einfach kein Gremium, das sich 7 Jahre darüber streitet, ob man nun eckige oder runde Klammern nehmen soll.
-
Wie schon geschrieben es soll ja nicht jeder Pups normiert werden. Aber bei Java sollte es oft in der Industrie eingesetzt werden würde es in meinen Augen schon Sinn machen. So das man sich bei einem Produkt wie Verschlüsselungssoftware für E-Pass etc einfach auf bestimmte Sachen verlassen kann. Natürlich nicht auf alles, das habe ich aber auch schon dargelegt. Und auch nicht jeder Nischensprache brauch eine ISO-Norm das ist auch klar so eine Sprache muss sich ja auch erstmal entwickeln.
Wenn Karl-Heinz mit seinem Dreamweaver ein bissle CSS mit HTML zusammenkloppt und per PHP-Framework was zusammengeschustert hat, dann ist das was anderes. Mir geht es wirklich nur um Geschichten wo eine gewissen Qualität einfach erforderlich ist . Da haben einfach wichtige Eckpfeiler der Produktion genormt so sein.
-
Sry, du hast keine Ahnung von Softwareentwicklung. Wissenschaft modellieren sich ihre eigene Welt, das ist genau das gleiche wie in der Softwareentwicklung, das ist der Grund, warum weit oben als Kapitel "Begriffdefinition" oder "Grundlagen" steht.
Softwareentwicklung ist mehr als eine Realisierung in eine Programmiersprache einzuhacken. Software fängt in Kopf an und hört als immertielles Produkt im Rechner auf.
In unsere Branche hat man andere Probleme und man kann Sie nicht damit lösen in dem man alles normt. Es würde sorgar Flexibilität kosten. Evtl. die Flexibilität die man braucht um ein Softwareprojekt erfolgreich zu beenden.- Wie soll die Kundenidee analysiert werden? (Anforderungsanalyse)
- Mit welche techniche Basis soll das Fundament errichtet werden? (Softwarearchitektur)
- Wie soll Code erzeugt werden (Softwarequalitätsicherung)
- ...
Dennoch haben wir quasi Standard, die anpassbar und auswählbar sind:
- Datenstrukturen und Algorithmen
- UML, SASD,... (Softwaremodellierung)
- Wasserfallmodell, V-Modell, Agile Softwaremodellierung (Vorgehensmodelle)
- Entwurfsmuster und Architekturmuster
- Blackbox- und Whitebox-Test
- SCM: Subversion, Git
- ...
So besteht eine Kunst die effektivesten Methoden und Konzepte auszuwählen und anzupassen. Eine Normung von Allem - undenkbar, dazu entwickelt sich die Branche viel zu schnell, sie ist auch noch jung und flexible.
-
Zeus schrieb:
In unsere Branche hat man andere Probleme und man kann Sie nicht damit lösen in dem man alles normt.
Oh, ich habe schon das Problem mehrere Plattformen mit dem gleichen ANSI/ISO-C-Code bedienen zu müssen. Das ist aber kein Problem, da C ja genormt ist.
-
Zeus schrieb:
Sry, du hast keine Ahnung von Softwareentwicklung. Wissenschaft modellieren sich ihre eigene Welt, das ist genau das gleiche wie in der Softwareentwicklung, das ist der Grund, warum weit oben als Kapitel "Begriffdefinition" oder "Grundlagen" steht.
Softwareentwicklung ist mehr als eine Realisierung in eine Programmiersprache einzuhacken. Software fängt in Kopf an und hört als immertielles Produkt im Rechner auf.
In unsere Branche hat man andere Probleme und man kann Sie nicht damit lösen in dem man alles normt. Es würde sorgar Flexibilität kosten. Evtl. die Flexibilität die man braucht um ein Softwareprojekt erfolgreich zu beenden.- Wie soll die Kundenidee analysiert werden? (Anforderungsanalyse)
- Mit welche techniche Basis soll das Fundament errichtet werden? (Softwarearchitektur)
- Wie soll Code erzeugt werden (Softwarequalitätsicherung)
- ...
Dennoch haben wir quasi Standard, die anpassbar und auswählbar sind:
- Datenstrukturen und Algorithmen
- UML, SASD,... (Softwaremodellierung)
- Wasserfallmodell, V-Modell, Agile Softwaremodellierung (Vorgehensmodelle)
- Entwurfsmuster und Architekturmuster
- Blackbox- und Whitebox-Test
- SCM: Subversion, Git
- ...
So besteht eine Kunst die effektivesten Methoden und Konzepte auszuwählen und anzupassen. Eine Normung von Allem - undenkbar, dazu entwickelt sich die Branche viel zu schnell, sie ist auch noch jung und flexible.
Sry, und du kannst nicht lesen. Es ging mir nie darum alles zu normen. Aber das werde ich jetzt nicht mehr ausführen. Entweder könnt ihr lesen und verstehen oder auch nicht. Mir jetzt auch egal, vielleicht spreche auch auch nicht eure Sprache keine Ahnung.
@Tim: Son Müll ist nicht dein Ernst, das kannst du doch besser.
Mensch wie kann man so engstirnig sein. Selbst Stroustrup meint dass noch mehr Standards der Softwareindustrie helfen würde. Aber ja ihr seit ja viel besser und habt noch viel mehr Weit- und Durchblick. Ich glaub jetzt reichst, so ein Fass hier aufzumachen nur weil Jemand auch die Normierung von C++ etc. gut findet. Und dann noch nur in Extremen argumentieren und nicht auf die Reihe bekommen meine Beispiele richitg zu abstrahieren....Echt tolle Programmierer, ne wirklich ich verneige mich vor euch. Sone dumme Diskussion habe ich selten erlebt.
Der Thread kann geschlossen werden, es kommen eh nur Antworten die darauf schließen lasse das ich ziemlich missverstanden werde und ich weiß nicht wie einfach ich es noch erklären soll, vielleicht wäre Babysprache besser.
-
-
funcoder schrieb:
Der Thread kann geschlossen werden, es kommen eh nur Antworten die darauf schließen lasse das ich ziemlich missverstanden werde und ich weiß nicht wie einfach ich es noch erklären soll, vielleicht wäre Babysprache besser.
Vielleicht mal von Anfang an die Beleidigungen sein lassen. Oder überhaupt
-
funcoder schrieb:
Mensch wie kann man so engstirnig sein. Selbst Stroustrup meint dass noch mehr Standards der Softwareindustrie helfen würde. Aber ja ihr seit ja viel besser und habt noch viel mehr Weit- und Durchblick. Ich glaub jetzt reichst, so ein Fass hier aufzumachen nur weil Jemand auch die Normierung von C++ etc. gut findet. Und dann noch nur in Extremen argumentieren und nicht auf die Reihe bekommen meine Beispiele richitg zu abstrahieren....Echt tolle Programmierer, ne wirklich ich verneige mich vor euch. Sone dumme Diskussion habe ich selten erlebt.
Ich glaube Stroustup war auch der, der behauptet hatte, dass die Verteilung der Nutzer auf C++ und Python proportional zum IQ ist. Warum sollten bekannte Leute, die etwas großes geleistet haben plötzlich mit Allem was sie sagen Recht haben? Da hätten wir schnell ein großes Dilemma. Es gibt bestimmt auch großartige Leute in der Branche, die nicht Stroustrups Meinung in allen Bereichen teilen.
Engstirnig und dumm ist es aber, Andere als engstirnig zu bezeichnen, nur weil sie anderer Meinung sind. Ganz nach dem Motto: "Wenn sie nicht engstirnung wären, dann müssten sie mich doch verstehen und mir zustimmen." Das kann man auf jede Diskussion anwenden, aber willst du wirklich auf dieser Stufe ernsthaft diskutieren? Ich nicht.
-
Stourop or schrieb:
Ich glaube Stroustup war auch der, der behauptet hatte, dass die Verteilung der Nutzer auf C++ und Python proportional zum IQ ist.
Addiert sich der IQ, wem man beides nutzt?
-
Zeus schrieb:
Stourop or schrieb:
Ich glaube Stroustup war auch der, der behauptet hatte, dass die Verteilung der Nutzer auf C++ und Python proportional zum IQ ist.
Addiert sich der IQ, wem man beides nutzt?
Wenn du beides gleichzeitig erfolgreich einsetzt, dann ja.
-
Ehm, um mal eines klar zu machen:
Standard ist ungleich offizielle Normierung.Es gibt auch viele defacto Standards oder einfach Standards, welche ausgehandelt wurden. Grundsätzlich reicht es ja, wenn jemand eine Spezifikation erstellt und alle sich daran halten. Ob da noch ein ISO oder sonst was daneben steht, ist grundsätzlich ziemlich egal. Dass ein Kompiler besser verkauft werden kann, welcher sich genau an den Standard hält, ist auch völliger Unsinn. Der MSVC verkauft sich sehr gut, hält sich aber nicht vollständig an den ISO Standard.
Es braucht auch gar nicht unbedingt offizielle Standardisierungsstellen, denn Standards haben für die Firmen meistens Vorteile, weshalb sie sich gerne selber dafür einsetzen.funcoder schrieb:
Jemand der auf den Namen aufpasst, also privatisiert. Tut mir leid, nein danke!!!
Das ist auch so ein Unsinn von dir. Wieso sollte dies schlecht sein? Sowas gibt es sehr oft und heisst auch nicht unbedingt, dass da jetzt Gebühren oder sowas darauf erhoben wird. Es ist ja oft nicht einmal eine Privatisierung eines Namens, sondern irgendeine Gesellschaft hat die Rechte darauf. Dass müssen nicht einmal Gewinn bringende Gesellschaften sein, sondern eben irgendwelche Vereinigungen oder eine Universität oder sonstwas.
Apropo Universität, ich verwende gerade in einem Projekt Lua. Lua hat keine offizielle Normierung und gehört der Pontifícia Universidade Católica do Rio de Janeiro (Päpstliche Katholische Universität von Rio de Janeiro). Lua hat aber eine vollständige Spezifikation und es gibt unterschiedliche Implementierungen von dieser Spezifikation. Man hält sich an diese Spezifkation und hat einen geschützten Namen, alles ohne ISO Normierung ...
Gut, vielleicht könnte man hier argumentieren, dass dies eben ein Wunder ist. Schliesslich ist es eine päpstliche katholische Universität ...
Deine Argumente sind einfach nicht korrekt und die Realität zeigt es auch auf. Offizielle Standards sind nicht unbedingt nötig und wie es bereits erwähnt wurde, sind offizielle Standards meistens recht viel träger, als defacto Standards oder einfach durch die Firmen selber ausgehandelte Standards. Viele Standard entstehen schliesslich auch bevor ISO diese aufnimmt. Allerdings muss halt eben auch jemand den Schritt machen und auf ISO zugehen. Nur wieso sollte man dies tun, wenn es auch ohne geht? Wieso sollte man für diesen Prozess Geld zahlen und wer, wenn es auch ohne geht?
Grüssli
-
@Funcoder
naja, du solltest Zeus Argumente nicht so ignorant wegwerfen, wie du es gerade tust. Insbesondere wenn du die ganze zeit von "Akademiker" und "Wissenschaftler" redest. Ich wette, du hast noch nie ein Mathe oder Informatikpaper gelesen. Ich habe hier ein Paper über Verstärkungslernen liegen, dass im ersten Abschnitt erstmal angibt, welche Definition mit welcher Nomenklatur überhaupt verwendet wird. Dann kommt eine mathematische Definition und dadrunter: "<x,y> ist unsere Notation für das Skalarprodukt", und so geht das weiter. Und wenn das in der Mathematik als formalste aller Sprachen vorkommt, dann gibt das schon zu denken. Der Grund ist, dass viele Wissenschaftler aus verschiedenen theoretischen Lehren kommen. Sie alle kennen das Skalarprodukt, aber für die einen ist das ein statistisches Werkzeug und wollen deshalb die Nähe zu der Notation für die Covarianz (<xy>) während die anderen es als Lineare Algebra ansehen.Zuerst klingt das, als ob es ein Argument für die Standartisierung ist. Aber in der Praxis ist es kein Problem, weil sich in jedem mathematischen Zweig die Nomenklatur ausprägt, die am sinnvollsten ist. Und genauso sieht das mit Programmiersprachen aus. Eventuell macht es einen Sinn, viele Dialekte einer Sprache zu haben, wenn die einzelnen Dialekte so besser auf ihr Anwendungsgebiet zugeschitten sind.
-
Das Akademiker-Argument ist in der Tat lustig. Ich glaube, es gibt kaum etwas so unspezifiziertes wie irgendwelche wissenschaftlichen Dinge. Notationen sind überall anders, Begriffe sind nicht einheitlich definiert und so weiter.
@Funcoder: Viele Leute in diesem Forum beobachten den Standardisierungsprozess von C++ seit langer Zeit. Und ich glaube, dass es in diesem Zusammenhang bei einigen zu einer Desillusionierung gekommen ist. Klar, es hört sich erstmal sehr gut an, wenn es zu einer Programmiersprache eine offizielle Norm gibt, aber irgendwann hinterfragt man das auch. Und dann kommen eben auch einige negative Aspekte heraus, von denen hier schon einiges gesagt wurde. Und es wird auch gesehen, dass andere Sprachen, zum Beispiel Java, auch ohne eine offizielle Norm bei einer Standardisierungsorganisation auskommen.
Offizielle Normen sind aus meiner Sicht vor allem dann wichtig, wenn irgendetwas eine Schnittstellenfunktion hat, die von der Industrie vielfach verwendet wird. Eine Programmiersprache ist aber in erster Linie keine Schnittstelle, sondern ein Werkzeug.
-
Hi,
Teilweise sind aber auch Standardisierungen extrem unflexibel.
Ich habe jetzt nur ein paar Beispiele aus Delphi da:
http://de.wikibooks.org/wiki/Programmierkurs:_Delphi:_Programmierstil
Rechten Rand auf 80: wer druckt heute noch seitenweise Quelltext aus? In Zeiten von Widescreen mit Horizontalauflösungen von 1920 und mehr nicht mehr wirklich zu rechtfertigen. Wenn wirklich mal was gedruckt werden muss, dann eben Querformat.if a > b then...
für mich, der ich von C komme gehört um JEDEN Vergleich eine Klammer ->
if ( a > b ) then...
keine Lerzeichen nach öffnenden und vor schleißenden Klammern und vor Doppelpunkt:
procedure Hilfe(Text: string);
-> ist für mich wesentlich unübersichtlihcer als
procedure Hilfe( Text : string );
Anordnung der Case-elemente:
case Wert of Bedingung: begin ... end; else { case } ... end;
Warum den Else-Zweig vorziehen und hinten in Klammern angeben dass es das Else von case ist? Else ist auch nur ein besonderer Wert, nämlich der von allen verschiedene, also gehört er bei mir auf die Höhe der Bedingungen.
case Wert of Bedingung: begin ... end; else ... end;
Warum soll man nicht die einzelnen Anweisung pro Bedingung auch mal wenn es passt hntereinander schreiben?
case a of 1 : begin Meckern( 'Eins' ); Wegschmeissen( 1 ); end; 2 : begin Meckern( 'Zwei' ); Wegschmeissen( 2 ); end; 3 : begin Meckern( 'Drei' ); Wegschmeissen( 3 ); end; end;
Hier würde ein auseinanderziehen das ganze nur verkomplizieren...
All das sind Freiheiten, auf die ich nicht verzichten möchte, weil sie den Quelltext für mich übersichtlich machen.
Eine starre Normung (Es gibt Quelltextprüftools die sowas anmeckern würden) würde mich da doch sehr einschränken. Bis sich solche Normen an die reale Existenz moderner überbreiter Bildschirme wo es nicht mehr auf jeden Millimeter ankommt anpassen können bei so schnellen gremien wie der ISO Jahre vergehen.Gruß Mümmel
-
muemmel schrieb:
Teilweise sind aber auch Standardisierungen extrem unflexibel.
Ich habe jetzt nur ein paar Beispiele aus Delphi da:
http://de.wikibooks.org/wiki/Programmierkurs:_Delphi:_ProgrammierstilEhm, ist das nicht einfach nur eine Richtlinie? Eine Richtlinie ist wohl was anderes als eine Normierung. C# hat auch Code-Richtlinien. Und es lohnt sich oft, wenn man sich daran hält, da man dann konsistenten Code erzeugt, welcher zum Beispiel auch mit der Standardbibliothek übereinstimmt.
Programmierstile sind in erster Linie eine Gewöhnungsfrage. Das Argument "Ich komme aus C, daher verwende ich in allen Programmiersprachen den C Stil" halte ich für sehr verkehrt. Es lohnt sich durchaus für alle Programmiersprachen, sich einen anderen Stil anzugewöhnen, bzw. einfach einigermasen der Richtlinie der Sprache zu folgen. Das hilft beim Umschalten bei der Denkweise, wie man programmieren muss. Anderes Werkzeug, andere Handhabung.
Grüssli
-
Jetzt will ich doch auch mal meinen Senf dazu geben.
Also C++ ist genormt. Und das finde ich gut so. Das bedeutet sicher nicht, dass jedes C++ Programm überall läuft. Aber das bedeutet immerhin, dass der allergrösste Teil des existierenden C++-Codes auf vielen Plattformen mit unterschiedlichsten Compilern lauffähig ist.
Man schaue sich doch mal in der Open-Source-Welt um. Da gibt es viele Programme, die in C++ geschrieben wurden. In aller Regel wurden sie aber nicht für eine bestimmte Plattform geschrieben.
Nehmen wir beispielsweise KDE. Das ist ein sehr grosses System, welches sowohl auf x86 unter Linux mit gcc als auch auf Sparc unter Solaris mit dem Sun Workshop compiler übersetzbar ist und dann auch läuft. Oder wie wäre es mit Firefox?
Danke
an die Leute, die sich um eine Standardisierung von C++ bemüht haben. Sicher ist nicht alles perfekt und das eine oder andere #ifdef ist notwendig, aber im grossen und ganzen läuft das.