kostenloser Webspace werbefrei: lima-city


welche sprache zahlt sich aus?

lima-cityForumProgrammiersprachenSonstige Programmiersprachen

  1. bladehunter schrieb:
    Haskell als erste Programmiersprache ist eine verdammt schlechte Idee. Die
    Sprache hat zu viele komplexe Konzepte. Man kann zwar ein Hello-World aus einem
    Tutorial abtippen, aber dafür sollte man streng genommen erstmal Monade und den
    IO Monad im speziellen verstehen.
    Sollte man aber bereits in der Welt der Programmierung mit einer anderen Sprache
    Fuß gefasst haben, ist Haskell auf jeden Fall einen Blick wert, um den eigenen
    Horizont ganz gewaltig zu erweitern. Aber dass man damit dann Programme für die
    Realität schreibt, ist eher ungewöhnlich. Haskell kann als reine funktionale
    Programmiersprache gehörig nerven, wenn man gewisse Dinge nicht mal eben
    prozedual ausdrücken kann.
    Natürlich ist es nicht ganz einfach. Aber darum ging es in dem Gesichtspunkt ja nicht. Es ging darum, mögliche Marktlücken aufzuzeigen. Es gibt einige, wenige Projekte, bei denen ein Programm nun mal in Haskell vorliegt und sonst komplett neu geschrieben werden müsste. Und da es relativ wenig Haskell-Programmierer gibt, wäre da die Auftragslage moderater, als beispielsweise bei C++, wo es zwar jede Menge Aufträge, aber auch Programmierer wie Sand am Meer gibt.

    bladehunter schrieb:
    *brrrr* FORTRAN
    Ich hielt FORTRAN immer für eine schöne Sprache, vor allem, weil sie sehr effizient ist. Allerdings ist auch hier das Aufgabengebiet sehr eingeschränkt, womit dabei dasselbe wie bei Haskell gilt, wobei ich glaube, dass da die Auftragslage noch einen Tick besser ist.

    bladehunter schrieb:
    Richtig. Das sollte man nicht unterschätzen. Gerade im heutigen Zeitalter ist da
    doch eine Menge Bewegung im Betriebssystem-Markt.
    Ich würde mich zumindest nicht an eine Sprache binden, welche mir vorschreibt, welches Betriebssystem ich zu nutzen habe, wie Visual Basic es gerne versucht. Auch, wenn ich am Ende nur für Windows entwickel, ist es doch besser, eine Sprache zu wählen, welche mir zumindest die Option bietet, mein Programm auch auf andere Systeme zu portieren.

    bladehunter schrieb:
    Python und eine Mode-Sprache? Was meinst du damit?
    Das ist nur meine persönliche Ausrede, Python nicht zu benutzen. ;-) Es geht darum, dass Python explizit auf Lesbarkeit ausgelegt ist, es also außer den Äußerlichkeiten kaum einen Vorteil zu Perl bietet. Und was nur hübsch anzusehen ist, ist für mich Mode. :-p

    bladehunter schrieb:
    Meiner Erfahrung nach lässt sich Python auch in großen Projekten gut einsetzen.
    Bei Perl wird das schon erheblich schwieriger, da die Programmierer da einiges
    an Disziplin aufbringen müssen, um nicht write-only code zu produzieren.
    Ja, WORN-Code (Write Once, read never ) ist bei Perl immer eine Angelegenheit. Ich würde es für größere Angelegenheiten nicht verwenden, da halt ein starkes Geschwindigkeits-Defizit da ist. Aber vielleicht haben wir verschiedene Auslegungen von "Groß". ;-)

    bladehunter schrieb:
    Dazu sehe ich eigentlich keinen Anlass. Klar, C/C++ und Java können einem
    helfen, ein schnelles Programm zu schaffen, aber nicht jedes Programm muss
    aufwendige Berechnungen durchführen.
    Nun ja, wie immer gilt natürlich: Man sollte die Mittel nach dem Zweck wählen. Aber: Wählt man eine "langsame" Sprache, ist es einem kaum möglich, "schnelle Programme" zu schreiben. Und am Ende geht es immer im gewissen Maß um Geschwindigkeit.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. m*****a

    Man kann sich ja auch einfach mal Stats ansehen, um zu gucken welche Sprachen auf dem Markt eine gewisse Gewichtung haben oder nicht. Natürlich sind dies nur Stats und von daher nicht immer sonderlich repräsentativ.

    Beispielsweise lohnt ein Blick auf http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html oder einfach mal bei http://www.gulp.de/ umschauen.

    kelserific Aber: Wählt man eine "langsame" Sprache, ist es einem kaum möglich, "schnelle Programme" zu schreiben. Und am Ende geht es immer im gewissen Maß um Geschwindigkeit.


    So eine pauschale Aussage halte ich gelinde gesagt für Unsinn.
    Es kommt halt immer darauf an was man für eine Anwendung schreiben möchte. Klar, will man ein 3D Ego-Shooter schreiben, sollte man sich wohl mit C/C++ und ASM auseinandersetzen.
    Die meisten Geschäftsanwendungen warten allerdings zu 80% auf Benutzereingaben, sind also eher weniger zeitkritisch. Zumal im Zusammenspiel mit einer Datenbank, eine Menge der Arbeit gar nicht von der eigentlichen Anwendungen verrichtet wird, sondern von der DB.

    Es ist ja auch nicht untypisch, das gerade bei mehrschichtigen und verteilten Anwendungen, mehrere Sprachen zum Einsatz kommen: eine Sprache für die GUI (das Frontend), eine für die Geschäftslogik (möglicherweise innerhalb eines Applicationservers [der auch Arbeit abnimmt und/oder optimiert]) und schließlich die Datenzugriffschicht - z.B ein OR-Mapper oder auch direkt eine DB mit erweiterter SQL z.b. TSQL oder PSQL.

    Grüße
    marmota



    Beitrag zuletzt geändert: 18.5.2012 22:39:48 von marmota
  4. marmota schrieb:
    So eine pauschale Aussage halte ich gelinde gesagt für Unsinn.
    Es kommt halt immer darauf an was man für eine Anwendung schreiben möchte. Klar, will man ein 3D Ego-Shooter schreiben, sollte man sich wohl mit C/C++ und ASM auseinandersetzen.
    Die meisten Geschäftsanwendungen warten allerdings zu 80% auf Benutzereingaben, sind also eher weniger zeitkritisch. Zumal im Zusammenspiel mit einer Datenbank, eine Menge der Arbeit gar nicht von der eigentlichen Anwendungen verrichtet wird, sondern von der DB.
    Wenn ein Programm in einer langsamen Sprache geschrieben ist, zu 80% nur auf Benutzereingaben wartet und ein Durchschnitts-Arbeitstag 8 Stunden umfasst, bedeutet das, dass das Ding noch immer 1,6 Stunden nur am Rechnen ist. Man könnte die Arbeitszeit also um (Beispielsweise) eine Stunde verkürzen, wenn man auf die richtigen Sprachen setzt.

    Aber mal weg von dem spezifischen Kram: Natürlich werden meist mehrere Sprachen benutzt. Wenn man aber eine Sprache lernen will, ist es sinnvoll, erstmal eine möglichst schnelle Sprache zu lernen. Ganz davon abgesehen, dass man - wenn man C/C++ gelernt hat, auch schnell mit Java usw. zurecht kommt und dazu eine ordentliche Grundlage ins System hat. Ich kenne Leute die Visual Basic gelernt haben und bis heute kaum eine Ahnung haben, wie verschiedene Datentypen gespeichert werden, etc..
    Wenn ich also davon ausgehe, dass ich etwas lernen will und erstmal auch alleine arbeite, ist es nicht hilfreich, eine einfache, schöne Sprache zu nehmen, die mir schnell eine hübsche GUI zaubert, dafür aber extrem lahm arbeitet und kein Hintergrundwissen bereit stellt. Denn irgendwann werde ich auch an die Grenzen von verfügbaren Fertig-Produkten wie SQL etc. kommen und dann bin ich aufgeschmissen, wenn ich mir eine eigene Datenbank zusammen schustern muss, die Aufgrund meiner begrenzten Kenntnisse stink-lahm ist. ( SQL ist nämlich nicht immer die optimale Lösung. )

    Grundsätzlich hast du also natürlich recht: Für gewöhnlich wird die Programmiersprache nach dem Zweck ausgewählt. Und dieser Varriiert ggf. zwischen den Aufgabengebieten. Aber dasselbe Problem hast du bei Betriebssystemübergreifender Programmierung: Warum keine Sprache wählen, die nur unter Windows läuft? Weil es irgendwann dazu kommen könnte, dass man auch mal was für andere Betriebssysteme schreiben möchte. Warum keine langsame Programmiersprache? Weil es irgendwann dazu kommen könnte, dass man auch mal etwas mehr Speed braucht. Und dann erst für den speziellen Fall eine neue Programmiersprache zu lernen - das ist dann meiner Meinung nach Unsinn.



    Beitrag zuletzt geändert: 18.5.2012 23:09:28 von kelserific
  5. Ich stelle mal die kühne These auf das fast alle Geschwindigkeitsprobleme die einem Hobbyprogrammierer und auch einem Gutteil der Profis begegnen werden zumeist am Algorithmus und nicht an der Sprache liegen und wenn die Vorgehensweise ineffizient ist dann nutzt die schnellste Sprache nichts, deswegen denke ich das die Geschwindigkeit für einen Einstieg in die Programmierung zweitrangig ist, ich kenn auch keinen Programmierer den ich für gut halte der bei der Sprache geblieben wäre mit der er irgendwann mal angefangen hat und ich kenne auch c und c++ Entwickler.

    Das Ding an der ersten Programmiersprache ist doch das man noch nicht wissen kann was man will, genau wie der TE auch nicht weiß was er eigentlich genau will, die Formulierung zur Informationsübertragung über das Internet macht das doch ganz deutlich das er noch wie ein User in Funktionen denkt:

    Computer ich will einen Brief an Mutti schreiben

    ...und nicht wie ein Programmierer:

    starte briefedit
    nehme empfängeranschrift entgegen
    nehme absender entgegen
    nehme anrede entgegen
    nimm brieftext entgegen
    öffne ein Plaintext file
    schreibe den briefinhalt in das file und schließe das file
    öffne eine shell
    drucke das textfile aus
    berechne aus der seitenanzahl das zu erwartende gewicht und gib das nötige porto aus
    beende briefedit

    Man bemerkt hoffentlich den krassen Unterschied der Denkweisen...

    Um aber genau diese Gedankengänge aus der User Denkweise zu entwickeln sind Pointer, Klassen, komplexe Datentypen, Deklarationen, Bibliotheken usw. usf. zunächst mal überhaupt nicht erforderlich, man kann mit integer, string, float und arrays, Funktionen oder Prozeduren und Plaintextfiles sehr weit kommen und dabei trotzdem lernen wie ein Programmierer zu denken und aus diesem Grunde sind C, C++ oder Java für einen Einsteiger weder geeignet noch zu empfehlen.

    Beitrag zuletzt geändert: 19.5.2012 0:08:44 von fatfox
  6. m*****a

    kelserific schrieb:
    Wenn ein Programm in einer langsamen Sprache geschrieben ist, zu 80% nur auf Benutzereingaben wartet und ein Durchschnitts-Arbeitstag 8 Stunden umfasst, bedeutet das, dass das Ding noch immer 1,6 Stunden nur am Rechnen ist. Man könnte die Arbeitszeit also um (Beispielsweise) eine Stunde verkürzen, wenn man auf die richtigen Sprachen setzt.


    Also ich sprach hier von Geschäftsanwendungen, mag ja sein das du von rein naturwissenschaftliche Anwendungen schreibst.
    Selbst PHP als rein interpretierte Sprache ist selbst sehr schnell (im Auge des Anwenders). Dem würde es gar nicht auffallen, wenn selbige Anwendung in C++ geschrieben wäre.

    kelserific schrieb:
    Aber mal weg von dem spezifischen Kram: Natürlich werden meist mehrere Sprachen benutzt. Wenn man aber eine Sprache lernen will, ist es sinnvoll, erstmal eine möglichst schnelle Sprache zu lernen. Ganz davon abgesehen, dass man - wenn man C/C++ gelernt hat, auch schnell mit Java usw. zurecht kommt und dazu eine ordentliche Grundlage ins System hat. Ich kenne Leute die Visual Basic gelernt haben und bis heute kaum eine Ahnung haben, wie verschiedene Datentypen gespeichert werden, etc..


    Das sehe ich gänzlich anders. Gerade für Anfänger ist eine typsichere Sprache, die klar strukturiert ist, die bessere Wahl. Er muss sich nicht mit den ganzen Unzulänglichkeiten und Gefahren (die für erfahrene Programmierer durchaus positive Features der Sprache sein können!) von C oder C++ herumschlagen. Das kann sehr schnell frustrieren. Ein Anfänger sollte erstmal grundsätzliche Konzepte der Programmierung verstehen lernen. Schleifen, Bedingte Verzweigungen, Modularisierung, OOP, Algorithmen und Datenstrukturen. Zumindest ist das meine Ansicht. Drum würde ich Anfängern immer zu Pascal/Object Pascal oder Java raten.

    Deiner Ansicht folgend, müsste ein Anfänger direkt mir Assembler anfangen. Damit hätte man dann die 'optimale' Grundlage was das Systemverständnis angeht.

    kelserific schrieb:
    Wenn ich also davon ausgehe, dass ich etwas lernen will und erstmal auch alleine arbeite, ist es nicht hilfreich, eine einfache, schöne Sprache zu nehmen, die mir schnell eine hübsche GUI zaubert, dafür aber extrem lahm arbeitet und kein Hintergrundwissen bereit stellt. Denn irgendwann werde ich auch an die Grenzen von verfügbaren Fertig-Produkten wie SQL etc. kommen und dann bin ich aufgeschmissen, wenn ich mir eine eigene Datenbank zusammen schustern muss, die Aufgrund meiner begrenzten Kenntnisse stink-lahm ist. ( SQL ist nämlich nicht immer die optimale Lösung. )


    Was verstehst Du eigentlich unter extrem lahm? Kannst Du mit Fakten belegen das C/C++ so deutlich schneller ist als eine Sprache die in einer VM läuft? Wie sieht es aus mit der Zeit für die Anwendungserstellung? Wieviel Zeit vegeudet man mit dem debuggen bei C/C++ gegenüber einer Sprache die Typsicherheit und Garbage Collecting bieten kann?

    SQL-DB ein Fertigprodukt? Was ist denn die IDE Deiner Wahl? Kein Fertigprodukt? Und was sagt das über die Qualität einer Sprache aus? RDBMS sind seit einigen Jahrzehnten etabliert. Selbst OO-DB Systeme haben Schwierigkeiten da einen Fuß in die Tür zu bekommen.
    Natürlich hast Du Recht: Man muss mit einem DB-System Zurecht kommen und sein Tabellenmodell sauber implementieren. Indiezes, Primär-, Fremdschlüßel, Trigger, Stored Procedures. Das muss man lernen, das ist mal klar. Wenn man das nicht hinbekommt, kann eine DB sehr schnell zum Flaschenhals werden.

    kelserific schrieb:
    Warum keine Sprache wählen, die nur unter Windows läuft? Weil es irgendwann dazu kommen könnte, dass man auch mal was für andere Betriebssysteme schreiben möchte. Warum keine langsame Programmiersprache? Weil es irgendwann dazu kommen könnte, dass man auch mal etwas mehr Speed braucht. Und dann erst für den speziellen Fall eine neue Programmiersprache zu lernen - das ist dann meiner Meinung nach Unsinn.


    Natürlich kann man für die reine Win-Programmierung eine rein native Sprache nehmen. Man bleibt dann halt nur 'gefangen' auf seinem System.
    Erkläre doch mal genau welche Art von Anwendungen Du schreibst, warum Dir dieser Faktor 'Speed' so wichtig ist. Ich denke C# oder Java würden das ebenfalls hinbekommen.

    Und wie ich vorhin schon meinte: die Welt ist nicht eindimensional. Das Frontend mag manches mal eine schicke, sich langweilende (weil auf Eingabe oder Button-Klick des Users wartende) Win-Anwendung sein. In modernen Geschäftsanwendungen wird die eigentliche Arbeit auf Applicationservern und Datenbankservern (oder Clustern) verrichtet. Dort arbeiten Java und Oracle/DB2 und stellen beispielsweise per WebService die angeforderten Daten bereit.
    Die Bank- und Finanzwirtschaft sucht ständig Java und Oracle oder DB2 Kenner. Beim Onlinebanking triffst Du z.B. in der Regel auf JavaEE, Java Server Pages.

    Wie kommt das wohl? Und nun sage bitte nicht Finanzen wären in unserer Gesellschaft nicht etwas zeitkritisches :biggrin:
  7. fatfox schrieb:
    [...]Funktionen oder Prozeduren und Plaintextfiles sehr weit kommen und dabei trotzdem lernen wie ein Programmierer zu denken und aus diesem Grunde sind C, C++ oder Java für einen Einsteiger weder geeignet noch zu empfehlen.
    Ich kenne auch niemanden, der bei der jeweiligen Sprache geblieben ist. Wenn man ausschließlich Post versenden und ggf. empfangen will, mag es auch zustimmen, dass man kein C, C++ oder Java braucht. Aber für gewöhnlich will man irgendwann mehr. Und da halte ich es für Sinnvoll, wenn man die richtigen Anfangsbedingungen bereit stellt, um dann am Ende weiter machen zu können.

    Ich würde jetzt auch nicht sagen, dass C, C++ und Java die Ultima Ratio wären, aber es deckt weitestgehend alles ab, was man in Zukunft eventuell mal machen möchte. Denn bei so ziemlich allen Programmiersprachen wird man sich irgendwann mit tiefergehendem Zeug beschäftigen müssen.
    marmota schrieb:
    [...]Selbst PHP als rein interpretierte Sprache ist selbst sehr schnell (im Auge des Anwenders).[...]
    Ich schreibe von Anwendungen im Allgemeinen, ohne speziell auf ein bestimmtes Gebiet anzusprechen. Mir geht es halt im allgemeinen um Optimierung des Gesammtablaufs, wofür auch immer die Software bestimmt ist. Wenn ich 10% Rechenzeit spare, indem ich den einen oder anderen Programmteil selbst in Assembler schreibe, dafür aber drei mal so lange an dem ganzen sitze, ist das für den Kunden gerechtfertigt. Denn 10% von 8 Stunden sind immerhin 48 Minuten, die gespart werden. Je nach Stundenlohn kann das dem Kunden (oder mir) ziemlich viel Geld sparen.
    marmota schrieb:
    Deiner Ansicht folgend, müsste ein Anfänger direkt mir Assembler anfangen.
    Ich denke das wäre auch nicht das übelste. Wobei es halt gilt, irgendwo einen Mittelweg zu finden. Ich habe bereits angemerkt, dass es nicht "Die perfekte Sprache" gibt. Alle Sprachen haben ihre Vorteile und Mankos. Bei C/C++ ist es halt der große Aufwand. Bei Perl/Python ist es halt die fehlende Systemnähe. Bei Visual Basic ist es halt... Naja, es ist Visual Basic.
    Wie man nun am besten lernt, ist auch von Person zu Person unterschiedlich. Deshalb bezweifel ich, dass es da eine allgemein richtige Antwort gibt, sondern viel mehr, dass man demjenigen, der es lernen will, einfach die Optionen mit ihren Vorzügen und Nachteilen aufzeigt und dieser dann für sich die richtige Wahl trifft.
    Um das nochmal klar zu schreiben: C/C++ ist nicht optimal für den Anfang! Allerdings hat es durchaus vorzüge, damit anzufangen.
    marmota schrieb:
    [...]
    Wieviel Zeit vegeudet man mit dem debuggen bei C/C++ gegenüber einer Sprache die Typsicherheit und Garbage Collecting bieten kann?
    Nun, also unter "Extrem lahm" verstehe ich beispielsweise, wenn das Programm mit 50% ( oder weniger) der Geschwindigkeit läuft, die es beispielsweise mit einem äquivalenten Produkt in der Vergleichssprache läuft. Genau genommen halte ich alles für relativ langsam, was halt schneller ginge.
    Als "Fakt" könnte man zum Beispiel die - von dir bereits genannten - 3D-Engines nennen, welche meines Wissens nahezu ausschließlich in C geschrieben werden. Das alleine sollte schon Indiz genug sein, dass C recht fix ist. Alternativ könnte man jetzt auch selbst Benchmarken.
    Was den Aufwand angeht: Den habe ich selbst auch schon angesprochen. ( s.o. ) Wobei das Debuggen meist durch ordentliche Arbeit minimiert werden kann. Aber das hat dann ja wenig mit dem Lernen der Sprache zu tun.
    marmota schrieb:
    Natürlich hast Du Recht: Man muss mit einem DB-System Zurecht kommen und sein Tabellenmodell sauber implementieren. Indiezes, Primär-, Fremdschlüßel, Trigger, Stored Procedures. Das muss man lernen, das ist mal klar. Wenn man das nicht hinbekommt, kann eine DB sehr schnell zum Flaschenhals werden.
    Es ist nunmal so, dass ein universelles Datenformat fast zwingend langsamer ist, als ein ordentlich(!!!) selbst erstelltes. ( Man beachte das "fast". ) Natürlich stellen Datenbanken oft einen schon sehr stark optimierten Vorgang zur verfügung, aber dennoch lassen sich unter umständen wertvolle Mikrosekunden durch ein eigenes, angepasstes Design gewinnen. Im Gemeinfall fällt das halt nicht auf, aber unter Umständen kann sowas durchaus sinnvoll sein.
    marmota schrieb:
    Natürlich kann man für die reine Win-Programmierung eine rein native Sprache nehmen. Man bleibt dann halt nur 'gefangen' auf seinem System.
    Man kann sich auch für Spaziergänge einen Badeanzug kaufen. Dann ist man auf Flüsse die man überqueren muss gewappnet, aber es hilft einem nicht über die Autobahn. Ich sagte nie, dass es nicht möglich ist, ich stelle nur in den Raum, dass ich es für wenig Sinnvoll halte.
    marmota schrieb:
    Erkläre doch mal genau welche Art von Anwendungen Du schreibst, warum Dir dieser Faktor 'Speed' so wichtig ist. Ich denke C# oder Java würden das ebenfalls hinbekommen.
    Weil ich halt Wert auf Effizienz lege. Wobei mir das "so wichtig" immer wieder in den Mund gelegt wird. Ich habe anfangs lediglich die Vor- und Nach-Teile der jeweiligen Programmiersprachen aufgezählt, kein Wort darüber, dass C/C++ allgemein optimal für den Einstieg wären, kein Wort darüber, dass andere Sprachen allgemeingültig schlechter wären. Es ist nun mal so, dass C schnell ist, C++ geringfügig langsamer, Java etwa genau so schnell wie C++, .Net schrott wegen mangelnder Portierbarkeit und langsamer als Java und C++, Haskell und FORTRAN nützlich weil selten und Perl/Python gar nicht übel, weil relativ einfach und schnell gute Ergebnisse erzeugt werden, aber leider nicht besonders Systemnah. Über andere Sprachen habe ich bisher keine Aussagen gemacht.
  8. hackyourlife schrieb:
    spuglisi schrieb:
    fatfox schrieb[/url]:
    Also abgesehen davon das es NIE eine Gute Idee ist sich auf eine Plattform festlegen zu lassen...

    Falsch.
    Dann erklär bitte was es für einen Sinn hat sich auf eine einzige Plattform zu fixieren.
    Eine Aussage wie "Richtig" oder "Falsch" ohne Begründung nützt niemandem was, wir wollen ja wissen warum das so sein sollte.


    Mal ne Gegenfrage: Warum sollte man Programme für den Normalo auf allen Operating Systeme bereitstellen, wenn über 95% die gleiche OS haben? Warum sollte man Zeit und Kosten für 5% der Käufer aufwenden, wenn die 5% nicht im Geringsten die Kosten decken?
    Windows ist nicht böse...

    Wenn man sich allerdings auf eine Plattform beschränkt, kann man alle spezifischen Funktionen nutzen und hat so gut wie keine Kompatibilitätsprobleme. Außerdem hat man einen viel besseren bzw. effektiveren Support.
    Das gilt übrigens nicht nur für Operating Systems, sondern zB. auch für Application-Servers.

    Ich sage jetzt nicht, dass man sich grundsätzlich auf eine Plattform beschränken muss, jedoch muss man diese Entscheidung im Einzelnen abwägen und kann keine Pauschalaussage treffen.
  9. Da es bspw. mit Python durchaus möglich ist beide Wege zu gehen, also entweder plattformunabhänig bleiben oder spezielle Funktionen nutzen und da Erwägungen über Herstellungs- und Supportkosten für einen Programmiereinsteiger der das ganze vermutlich zunächst mal ohne Gewinnerzielungsabsicht sondern aus Interesse und Neugier macht ist es so wie ich sage:

    Es ist nie eine gute Idee sich auf eine Plattform festzulegen (wenn es risikolose Alternativen gibt), da mein beitrag eine entsprechende Möglichkeit dazu enthält wie man plattform optimierung und Plattformunabhänigkeit kombinieren kann ist meine Aussage also nicht falsch sondern richtig.

    Im Übrigen ist es (und das haben auch die allermeisten Unternehmen bereits erkannt) auch in der Industrie niemals ein Vorteil sich an eine Plattform zu binden, zumindest dann nicht wenn man sein Geschäftsfeld darauf auslegt denn die IT Welt ist schnellebig und erfindet sich im Schnitt alle 4 Jahre neu und ich traue mir nicht zu heute vorherzusagen das die Plattform auf der ich heute arbeite in 4 Jahren noch geeignet ist um meinen Kunden ein konkurenzfähiges Produkt zu liefern, das Risiko geht Niemand und schon gar kein Unternehmer ohne Not ein.

    Es gibt abseits davon auch Anbieter von Nischenlösungen die sich bspw. den restlichen in Betrieb befindlichen Einheiten einer vormaligen State of the Art Plattform annehmen um sie bis zum vom Kunden bestimmten Ende des Einsatzes betreuen aber das ist die Ausnahme und immer sehr sehr teuer.

    Auch und gerade im Bereich von Software wird Lifetimesupport immer mehr die Ausnahme, es heißt dann einfach die Unterstützung mit Updates endet am <stichtag> und meist im selben Schreiben findet sich ein Hochglanzprospekt der entsprechenden Nachfolgelösung. Das ist so weil Technik und Anforderungen sich verändern. Was nutzen bspw. die tollen plattformspezifischen (und wir reden hier nicht zwingend von Software oder Betriebssystemen) Funktionen wenn sie im nächsten Major Release des Systems nur noch über Umwege nutzbar sind und im Übernächsten gar nicht mehr unterstützt werden...dann wird der Hilfsmotor zur Krücke oder je nach Bedeutung einer eingestellten Funktion fürs eigene Projekt...zum Grab.

    Wer also ohne Not Einschränkungen (welcher Art auch immer) akzeptiert wird vom Spieler zum Spielball und ob das erstrebenswert ist kann jetzt jeder für sich selbst entscheiden.

    Auch für den User hat es einen entscheidenden Vorteil wenn eine Software plattformunabhänig funktioniert, das fördert nämlich den Wettbewerb unter den Plattformen, wenn ein Programm überall läuft dann entscheidet der User sich für das System was ihm am meisten nutzt und nicht für das was Ihn am meisten (aus)nutzt. Das führt zu einem auf Fakten und Fähigkeiten basierenden Wettbewerb und mir fallen gute Gründe ein warum bspw. MS diesen Vergleich scheut wie der Tefel das Weihwasser.
  10. Da es bspw. mit Python durchaus möglich ist beide Wege zu gehen, also entweder plattformunabhänig bleiben oder spezielle Funktionen nutzen und da Erwägungen über Herstellungs- und Supportkosten für einen Programmiereinsteiger der das ganze vermutlich zunächst mal ohne Gewinnerzielungsabsicht sondern aus Interesse und Neugier macht ist es so wie ich sage:


    Ja im unprofessionellen Bereich ist das sowieso egal.

    Jetzt möchte ich aber doch beim speziellen Fall Windows und .NET bleiben:
    Du sagst also, die IT-Welt ist sehr schnelllebig, und damit hast du auch vollkommen Recht! Das wichtigste ist jedoch dabei, dass sich in so einer Welt Standards bilden. Nur so ist es im professionellen Bereich möglich, große Systeme zu entwickeln. Es ist zwar schön, wenn man Anwendungen in Python entwickelt, die auf allen Plattformen laufen (auch wenn das nicht immer gewährleistet ist, aber dazu später), jedoch werden für größere und komplexere Anwendungen zu Recht auf Java oder .Net-Sprachen zurückgegriffen (Nicht nur im Desktop-Bereich). Warum? Weil beide Seiten große verbreitete und akzeptierte Standards geschaffen haben: JavaSE, JavaEE, .Net-Client/Server. Diese Frameworks werden für Jahre hinweg gepflegt und verschwinden noch lange nicht so schnell, wie deine so hochgelobte Python-Umgebung. Das ist Fakt.

    Für die Desktop-Programmierung hat sich nun mal .NET als Standard Nummer 1 herauskristallisiert. Wenn nun eine Firma eine Anwendung programmieren möchte, dann können die beruhigt auf zertifizierte .Net-Entwickler zurückgreifen, die ihr Handwerk bestens verstehen, da diese auf .NET sehr spezialisiert sind, und können sich sicher sein, dass es auch in 3,4 oder 5 Jahren .Net Entwickler geben wird, die das Stück Software warten können. Das ist sehr wichtig.

    Deshalb ist .NET in der Industrie sehr akzeptiert und wird das auch die nächsten 10 Jahre mit Sicherheit bleiben.

    Im Übrigen ist es (und das haben auch die allermeisten Unternehmen bereits erkannt) auch in der Industrie niemals ein Vorteil sich an eine Plattform zu binden, zumindest dann nicht wenn man sein Geschäftsfeld darauf auslegt denn die IT Welt ist schnellebig und erfindet sich im Schnitt alle 4 Jahre neu und ich traue mir nicht zu heute vorherzusagen das die Plattform auf der ich heute arbeite in 4 Jahren noch geeignet ist um meinen Kunden ein konkurenzfähiges Produkt zu liefern, das Risiko geht Niemand und schon gar kein Unternehmer ohne Not ein.

    Gegenbeispiel: JavaEE existierte, existiert und wird für wie viele Jahre existieren?

    Zu deiner "Plattform-Unabhängigkeit mit Python": Wer sagt dir, dass die Python-Umgebung auf Plattform XY auch in 3 Jahren weitergepflegt wird? Dann bist du nämlich genauso aufgeschmissen.

    Eines kann man mit großer Sicherheit sagen: .Net-Anwendungen werden für längere Zeit größere Akzeptanz finden als Python-Anwendungen.


    Beitrag zuletzt geändert: 26.5.2012 12:51:33 von spuglisi
  11. Du willst doch nicht sagen, dass Microsofts Versprechen ein niedrigeres Risiko bilden, als die Aussicht, dass die Pythonentwickler die Plattform aufgeben. Wie schnell man mit dem Arsch im Dreck sitzt sieht man an der Intel Itaniumgeschichte zwischen HP und Oracle, aber so kleine Firmen können dann nicht klagen, weil da garnicht das Geld da ist. so oder so gehn kleine Firmen in solchen Situationen vor die Hunde.
    .NET seh ich persönlich übrigens nicht lange in der Zukunft (obwohl für Microsoft ein sehr schönes Design/Idee nur wie immer scheinen die bei der Umsetzung zuviel getrunken zu haben). Nach deiner Meinung/Begründung hat nur Fortran und Progol(?) Substanz, denn viele Mathe- und Wirtschaftssysteme verwenden im Herzen immer noch diese beiden. Es wird nur ein Wrapper für neuere Sprachen draufgepfropft. Also wird es noch lange Arbeit dafür geben zumal die Konkurrenz langsam ausstirbt.
    Als erstes sollte man immer eine Sprache nehmen mit der man schnell kleine Ziele erreicht. Sonst ist man zu schnell entmutigt. Diese Sprache kann grundsätzlich jede sein, denn ich habe mit Basic auf meinem Taschenrechner angefangen und das reverse engineering, da ich nur Programme anderer Entwickler hatte und nicht immer anwendbare Basictutorials etc. Ich denke Python ist da keine schlechte Wahl, wovon ich eher abrate ist C/C++, da braucht man sehr viel Durchhaltevermögen. Ich hatte damit nur wenig Probleme, aber an meiner Berufsschule sind schon bei einfachsten Sachen manche Mitschüler verzweifelt, obwohl sie nicht dumm sind oder kein Plan von Computern/Programmieren hätten.
  12. reimann schrieb:
    [...]Nach deiner Meinung/Begründung hat nur Fortran und Progol(?) Substanz, denn viele Mathe- und Wirtschaftssysteme verwenden im Herzen immer noch diese beiden. [...]
    Wenn du mit Progol nicht ein System zum maschinellen lernen meinst dann meinst du Cobol nicht Progol.

    spuglisi schrieb:
    Da es bspw. mit Python durchaus möglich ist beide Wege zu gehen, also entweder plattformunabhänig bleiben oder spezielle Funktionen nutzen und da Erwägungen über Herstellungs- und Supportkosten für einen Programmiereinsteiger der das ganze vermutlich zunächst mal ohne Gewinnerzielungsabsicht sondern aus Interesse und Neugier macht ist es so wie ich sage:


    Ja im unprofessionellen Bereich ist das sowieso egal.[...]
    Und um nichts anderes geht es hier.

    Jetzt möchte ich aber doch beim speziellen Fall Windows und .NET bleiben:
    Du sagst also, die IT-Welt ist sehr schnelllebig, und damit hast du auch vollkommen Recht! Das wichtigste ist jedoch dabei, dass sich in so einer Welt Standards bilden. Nur so ist es im professionellen Bereich möglich, große Systeme zu entwickeln. Es ist zwar schön, wenn man Anwendungen in Python entwickelt, die auf allen Plattformen laufen (auch wenn das nicht immer gewährleistet ist, aber dazu später), jedoch werden für größere und komplexere Anwendungen zu Recht auf Java oder .Net-Sprachen zurückgegriffen (Nicht nur im Desktop-Bereich). Warum? Weil beide Seiten große verbreitete und akzeptierte Standards geschaffen haben: JavaSE, JavaEE, .Net-Client/Server. Diese Frameworks werden für Jahre hinweg gepflegt und verschwinden noch lange nicht so schnell, wie deine so hochgelobte Python-Umgebung. Das ist Fakt.
    Was bringt dich auf die Idee das die Python umgebung ohne Standards, Frameworks und Gefahr laufen würde zu verschwinden ?

    Im speziellen für grafische Programme und der Web-Programmierung existieren für Python sehr viele sehr leistungsstarke Frameworks und die C-Schnittstelle würde es zudem erlauben für C gedachte Bibliotherken und Fraqmeworks zu benutzen.

    Dazu kommt das mir all diese Funktionalität mit einem einfachen Eeditor (meiner Wahl) zur Verfügung steht, das ich selbst entscheiden kann in welcher Form ich mein Programm verteilen möchte (Quelltext, angebundener Interpreter, Pseudobinärfile) das ich Dokumentation integrieren kann und beim User keine besonderen Gegebenheiten voraussetzen muss (sowohl bei Java als auch bei .Net brauche ich zumindest mal eine Runtime)

    Für die Desktop-Programmierung hat sich nun mal .NET als Standard Nummer 1 herauskristallisiert
    Wer sagt das außer dir ?

    Wenn nun eine Firma eine Anwendung programmieren möchte, dann können die beruhigt auf zertifizierte .Net-Entwickler zurückgreifen, die ihr Handwerk bestens verstehen, da diese auf .NET sehr spezialisiert sind, und können sich sicher sein, dass es auch in 3,4 oder 5 Jahren .Net Entwickler geben wird, die das Stück Software warten können. Das ist sehr wichtig.
    Wenn eine Firma Software braucht dann hat Sie in der Regel 2 Möglichkeiten, entweder sie stellt einen programmierer ein, in dem Falle ist es ein Managementproblem wenn man irgendwann ohne Programmierer da steht oder man kauft die Software als Produkt ein, was bei weitem der häufigste Fall ist, in dem falle wird Support mit eingekauft, wenn man das nicht tut muss man damit rechnen eben mitunter irgendwann keinen Support mehr bekommt und das dann in den entsprechend einkalkulieren, dabei spielt es kaum eine Rolle welche Plattform man verwendet und interessiert auch die meisten Entscheider nicht wirklich, die wollen die geforderte Funktionalität und solange jemanden der im Zweifel haftbar ist bis das Produkt aus der Gewährleistung ist (nicht das ich das gut fände, aber DAS ist Fakt).

    Deshalb ist .NET in der Industrie sehr akzeptiert und wird das auch die nächsten 10 Jahre mit Sicherheit bleiben.
    Also ich weiß nicht auf welche Industrie du dich beziehst und ich kann nur für die industrielle Steuerungstechnik sprechen in der ich mich beruflich bewege aber zumindest auf diesem Gebiet ist .NET zu langsam, zu hungrig, zu instabil, zu fehleranfällig und zu schlecht portabel und das ist auch Fakt.

    Gegenbeispiel: JavaEE existierte, existiert und wird für wie viele Jahre existieren?
    Solange bis Oracle der Meinung ist es einzustellen, hat man in der Vergangenheit getan, wird man wieder tun

    Zu deiner "Plattform-Unabhängigkeit mit Python": Wer sagt dir, dass die Python-Umgebung auf Plattform XY auch in 3 Jahren weitergepflegt wird? Dann bist du nämlich genauso aufgeschmissen.

    Eines kann man mit großer Sicherheit sagen: .Net-Anwendungen werden für längere Zeit größere Akzeptanz finden als Python-Anwendungen.
    Das schöne an Python ist das ich überhaupt niemanden benötige der die plattform für mich pflegt, ich erhalte Python und die allermeisten Module die ich einsetzen werde im Quzellcode, das bedeutet auch wenn mir niemand mehr hilft, habe ich meine Kopie, meinen Code, kann meinen interpreter compilieren wenn ich muss, kann es ändern, modifizieren und verbessewrn wenn ich möchte oder muss. Das geht in grenzen zwar mit Java auch aber aus lizenzrechrtlichen Gründen nicht halb so gut wie bei Python (wer es nicht glaubt der frage mal bei Google nach) ja und bei .Net ... richtig, Ende Gelände.

    in jedem Falle macht man sich mit bspw. Python nicht den Entscheidungenen Einzelner (potentiell schlecher Menschen) untertan. (Warum die schlecht sind ? Nun weil sie es in der Vergangenheit bewiesen haben und ne Menge Geld damit verdient haben, aloso keinen Grund haben sich zu ändern)

    Beitrag zuletzt geändert: 26.5.2012 16:01:46 von fatfox
  13. reimann schrieb:
    Du willst doch nicht sagen, dass Microsofts Versprechen ein niedrigeres Risiko bilden, als die Aussicht, dass die Pythonentwickler die Plattform aufgeben. Wie schnell man mit dem Arsch im Dreck sitzt sieht man an der Intel Itaniumgeschichte zwischen HP und Oracle, aber so kleine Firmen können dann nicht klagen, weil da garnicht das Geld da ist. so oder so gehn kleine Firmen in solchen Situationen vor die Hunde.
    .NET seh ich persönlich übrigens nicht lange in der Zukunft [...].


    Du hast es nicht verstanden. Es geht nicht darum, ob Microsoft verspricht, dass Windows die nächsten Jahre Hip sein wird und Kunden .Net Anwendungen ausführen können, sondern dass .NET in der Industrie nicht mehr weg zu denken ist. Es ist zu fest integriert, als dass man es aufgibt. Deshalb wird auch Windows noch eine sehr lange Zeit bestehen, seien die Alternativen auch noch so gut.
    Selbt wenn .Net nicht mehr von Windows gepflegt werden würde, würden es andere Unternehmen übernehmen, zu viel Geld steckt da drinnen.
    Selbst wenn keiner mehr Windows nutzen würde, würden andere Unternehmen .Net für andere OS implementieren, zu viel Geld steckt drinnen.
    Siehe Mono.

    Es kommt also nicht darauf an, wie Plattformunabhängig .Net ist, sondern darum, dass .NET ein sehr akzeptierter Standard ist. (Ja ich weiß, ich wiederhole mich)

    Und man braucht gar nicht davon reden, dass der moralische Geist der Menschen auf der Seite Pythons ist, und es eine helige Aufgabe ist, OpenSource aus religösren Gründen zu preisen.

    Denn Geld ist geil.

    Nach deiner Meinung/Begründung hat nur Fortran und Progol(?) Substanz, denn viele Mathe- und Wirtschaftssysteme verwenden im Herzen immer noch diese beiden.

    Wer redet denn hier von "Gefühlen"? Ich wiederhole: Geld ist geil.

    (obwohl für Microsoft ein sehr schönes Design/Idee nur wie immer scheinen die bei der Umsetzung zuviel getrunken zu haben)

    OMG. ADO.NET, WCF und WPF sind eines der besten Libraries überhaupt. Ich glaube du hast noch keine all zu große Erfahrung mit .Net gemacht -.-
  14. spuglisi schrieb:
    Wer redet denn hier von "Gefühlen"?


    Im Herzen war als zentral gemeint nicht als Vorliebe. ;-)
    Da ist auch Geld drin, weil diese Software jahrelang verbessert wurde und das ganze neuzuschreiben mit evtl. Fehlern etc. wäre in der Finanzwelt praktisch nicht denkbar.

    spuglisi schrieb:
    BliBlaBlubb ... Selbst wenn keiner mehr Windows nutzen würde, würden andere Unternehmen .Net für andere OS implementieren, zu viel Geld steckt drinnen.
    Siehe Mono.
    ...
    OMG. ADO.NET, WCF und WPF sind eines der besten Libraries überhaupt. Ich glaube du hast noch keine all zu große Erfahrung mit .Net gemacht -.-


    Lang hab ich mich mit .NET tatsächlich nicht beschäftigt, weil es mir von Anfang an nicht gefallen hat und da hab ich dann nen Schlussstrich gezogen. Die virtuelle Maschine (CLR oder so?) hingegen ist eigentlich ganz net(t).
    Hinter Mono steckt ja auch OpenSource, allerdings gesponsert von Firmen wie viele anderen OpenSourcesoftware auch.
    Den Standard seh ich zum Beispiel nicht. Ich bin auch dabei mir mein Papier zu holen, damit ich auch staatlich als Softwareentwickler anerkannt bin und bei uns wäre das nicht denkbar. Einzig für Showcases haben wir zwei Leute die teilzeitmäßig für Windows Phone Sachen basteln.

    spuglisi schrieb:
    Und man braucht gar nicht davon reden, dass der moralische Geist der Menschen auf der Seite Pythons ist, und es eine helige Aufgabe ist, OpenSource aus religösren Gründen zu preisen.

    Denn Geld ist geil.


    Generell hab ich aber den Eindruck, dass es dir auch viel um den Grundsatz OpenSource vs. Closed geht, was hier aber nicht Thema war, sondern du unterstellst uns eher Parteilichkeit und Voreingenommenheit, die imho nur du hier rausliest.;-)
    Außerdem hab ich den Eindruck, dass die Diskussion aus dem Ruder gerät und in ganz andere Richtungen abdriftet.
  15. Gegenbeispiel: JavaEE existierte, existiert und wird für wie viele Jahre existieren?


    Solange bis Oracle der Meinung ist es einzustellen, hat man in der Vergangenheit getan, wird man wieder tun

    JavaEE ist nur eine Spezifikation an der mehrere Firmen beteiligt sind. Implementiert wird die vom JBoss AS (Red Hat, glaub ich), Glassfish, Webspehre (IBM), und noch ein paar anderen ASs.

    Deshalb ist .NET in der Industrie sehr akzeptiert und wird das auch die nächsten 10 Jahre mit Sicherheit bleiben.


    Also ich weiß nicht auf welche Industrie du dich beziehst und ich kann nur für die industrielle Steuerungstechnik sprechen in der ich mich beruflich bewege aber zumindest auf diesem Gebiet ist .NET zu langsam, zu hungrig, zu instabil, zu fehleranfällig und zu schlecht portabel und das ist auch Fakt.

    Hier musste ich ein wenig schmunzeln. Naja, .NET wird im Business-Bereich eingesetzt. Also Versicherungen (gut, momentan in Deutschland noch sehr viel in Java, aber in den USA siehts da schon wieder ganz anders aus. Aber .NET findet auch hier immer verstärkter), Bankwesen, Handel, usw. Über all da wo man halt im großen Stil "fett Kohle" macht.

    Im speziellen für grafische Programme und der Web-Programmierung existieren für Python sehr viele sehr leistungsstarke Frameworks und die C-Schnittstelle würde es zudem erlauben für C gedachte Bibliotheken und Frameworks zu benutzen.

    C-Libs können von sehr vielen Sprachen importiert werden. Das ist nicht der entscheidende Punkt. Aber wenn .NET man in programmiert, entscheidet man sich im Normalfall für zwei Libs: WPF oder WindowsForms. Genau das ist ja auch der Vorteil. Denn eine Firma muss sich nur auf diese Beiden konzentrieren. Das spart Fortbildungs- und Einarbeitungskosten. Ich verweise hier auf den sehr zu empfehlenden Artikel Standard von Wikipedia: http://de.wikipedia.org/wiki/Standard

    Wenn eine Firma Software braucht dann hat Sie in der Regel 2 Möglichkeiten, entweder sie stellt einen programmierer ein, in dem Falle ist es ein Managementproblem wenn man irgendwann ohne Programmierer da steht oder man kauft die Software als Produkt ein, was bei weitem der häufigste Fall ist, in dem falle wird Support mit eingekauft, wenn man das nicht tut muss man damit rechnen eben mitunter irgendwann keinen Support mehr bekommt und das dann in den entsprechend einkalkulieren, dabei spielt es kaum eine Rolle welche Plattform man verwendet und interessiert auch die meisten Entscheider nicht wirklich, die wollen die geforderte Funktionalität und solange jemanden der im Zweifel haftbar ist bis das Produkt aus der Gewährleistung ist (nicht das ich das gut fände, aber DAS ist Fakt).

    Richtig, oft beauftrag man Dienstleistungsfirmen, die das Produkt für einen erstellen. Aber der Auftraggeber kann es sich nicht leisten, sich völlig auf die Dienstleistungsfirma zu verlassen, deswegen kauft man oft den Quellcode mit und ab Version 4.0 oder so ist der Auftraggeber auch selbst in der Lage am Produkt weiter zu arbeiten. Hmm. Da fällt mir ja aber was ein: So gut wie alle Dienstleistungsfirmen setzen auf EE wie JavaEE oder eben .NET. Warum wohl... Ich habe es schon einmal erwähnt.

    Das schöne an Python ist das ich überhaupt niemanden benötige der die plattform für mich pflegt, ich erhalte Python und die allermeisten Module die ich einsetzen werde im Quzellcode, das bedeutet auch wenn mir niemand mehr hilft, habe ich meine Kopie, meinen Code, kann meinen interpreter compilieren wenn ich muss, kann es ändern, modifizieren und verbessewrn wenn ich möchte oder muss.

    Ich bewundere deinen Enthusiasmus. Aber diesen haben nur die wenigsten.

    Das geht in grenzen zwar mit Java auch aber aus lizenzrechrtlichen Gründen nicht halb so gut wie bei Python (wer es nicht glaubt der frage mal bei Google nach) ja und bei .Net ... richtig, Ende Gelände.

    Die .NET-Lang C# ist als ISO-Standard registriert. Ab hier verweise ich auf das Mono-Projekt. Ach ja, hier gehen unsere Meinungen mal wieder auseinander , ob Microsoft ein Problem damit hat.

    Es will ja nicht sagen, dass Python in Gefahr steht, auszusterben. Das Gegenteil ist der Fall. Ich will nur sagen, dass es bei .NET einfach unwahrscheinlicher ist.


    Beitrag zuletzt geändert: 27.5.2012 15:58:58 von spuglisi
  16. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!