| 

.NET C# Java Javascript Exception

11
Hallo Leute,
ich weiß, auf Codekicker sollte man nur Fragen stellen die sich objektiv beantworten lassen und ich weiß auch dass keiner von Euch eine Glaskugel hat und die Zukunft vorhersagen kann, ich bin aber hier an Eurer persönlichen Meinung interessiert.
Ich habe mir paar Wochen Gedanken gemacht wie es weiter gehen soll. Ich möchte als nächstes Projekt keinen Kundenauftrag realisieren, sondern einen meiner Hirngespinste umsetzen. Hauptmotivation wäre wieder etwas Neues zu lernen oder bestehende Kenntnisse zu vertiefen und auf aktuellen Stand zu bringen. Das Ganze sollte mir auch etwas für die Zukunft bringen, da ich ja als eine „One Man Show“ nicht beliebig viel Zeit habe mich in neue Technologien einzuarbeiten. Das Ergebnis meiner Überlegung lässt sich am Besten mit Goethes Faust beschreiben: „Da steh ich nun, ich armer Tor, und bin so klug als wie zuvor.“
Ich habe versucht mich für eine Platform zu entscheiden, folgende kamen für mich in die engere Wahl (Reihenfolge willkürlich, hat keine Bedeutung):
Desktop Anwendungen, wahlweise Mac OS X oder Windows
Web Anwendung, wahlweise PHP oder C#

Desktop Anwendung Mac OS X
Diese Platform wächst entgegen dem Trend und hat den Charme das es nicht so viel Entwickler dafür gibt. Der Sprung von Mac OS X für iOS ist nicht so groß, so dass man diese Geräte auch abdecken könnte. Die benötigte Hardware und Software hätte ich, die Tutorials sind größtenteils kostenlos erhältlich. Bin mit Mac OS „groß geworden“ und die Platform macht unheimlich viel Spaß, einzig ich konnte (bisher) nicht mit Objective C warm werden (Ok, habe seit meiner NeXT Zeit nix gemacht damit). Was mich aber bedenklich stimmt ist die Tatsache dass das nur ein kurz- / mittelfristiger Hype sein könnte, der in der Post-Steve Zeit verpufft.

Desktop Anwendung Windows (dotNet C#)
An für sich gefällt mir C# sehr gut, was mich bei dotNet stört sind die ständigen Neuentwicklungen. Kaum hat man die Winforms verinnerlicht, schon muss man WPF lernen. Wenn man Golo glauben darf, wird sich das mit Windows 8 wieder ändern (Heise Developer: Windows 8, HTML5 und die Folgen für .NET?). Ich will gar nicht wissen wie oft Microsoft schon den DB Layer in meiner Laufbahn geändert hatte. Schön dass die Entwicklung so schnell voranschreitet, weniger schön wenn man ein bisschen Geld verdienen muss und ein wenig Kontinuität benötigt. Was mich an C# auch noch stört, sind die Kosten. Ich bräuchte z.B. den „richtigen“ SQL Server (werde über die 10GB kommen) und der kostet Geld – und das ist für die meisten User draußen uninteressant. Ich weiß, mySQL läuft auch unter Windows, das fühlt sich aber irgendwie wie ein Fremdkörper. VisualStudio funktioniert halt (verständlicherweise) am Besten mit MS-SQL.

Web Anwendungen mit PHP
Ist zurzeit mein Favorit. Ist zwar nicht so elegant wie C# und man benötigt eine gehörige Portion Disziplin, man kann aber mittlerweile damit auch ordentliche objektorientierte Anwendungen erstellen. Was man als Dreingabe noch dazu bekommt ist die offene Lizenz, sprich ich kann meine Anwendung in eine VM verpacken und verteilen. Mit HTML5 und JavaScript kann man auch „desktopähnliche“ Anwendungen entwickeln (ich weiß - ist unabhängig von PHP) und das für alle Betriebssysteme.

Web Anwendungen mit C#
Wäre eigentlich seit ASP.MVC mein Favorit wenn die Kosten nicht wären. Damit ereiche ich wie bei PHP alle Betriebssysteme, nur ich könnte keine VMs verteilen. Würde die Distribution erschweren, aber nicht unmöglich machen.

Sonstiges
Hab mir noch RubyOnRails angeschaut, finde es im Moment ein wenig overhyped. Sehe keinen Sinn mich da einzuarbeiten. Scaffolding ist zwar nett aber später im Projekt nicht zu gebrauchen, MVC bieten mir andere Sprachen auch – schließlich ist es nur ein Pattern.
Java ist für mich ebenfalls keine Alternative, meiner Meinung nach wird der Bedarf an Entwicklern abnehmen. Arbeite zurzeit für eine Großbank, eigentlich eine Domäne von Java, neue Projekte werden aber fast alle in dotNet realisiert.

Da hier doch einige professionelle Entwickler unterwegs sind, würde ich gerne Eure Meinung hören. Wie handhabt Ihr solche Entscheidungen? Habt Ihr freie Wahl oder wird das nach dem Motto „Wessen Brot ich ess - dessen Lied ich sing“ geregelt?

Schon mal danke für eine rege Diskussion.

Jaksa
09.08.2011
Jaksa 4,0k 1 8
Golo´s Artikel auf Heise Developer habe ich auch schon gelesen und hat mich schon etwas nachdenklich gemacht.
CodeSniffer 09.08.2011
"Wäre eigentlich seit ASP.MVC mein Favorit wenn die Kosten nicht wären"
Welche Kosten? Wir entwickeln mit Mono und das klappt wunderbarst!
bugbite 11.08.2011
Die Frage, die sich mir stellt ist, was Du für Anwendungen entwickelst bzw. wer Deine Zielgruppe ist, wenn Deinen Kunden der SQL Server zu teuer ist. Dann stellt sich die Frage, warum Du nicht mit einer günstigeren DB unter Windows arbeiten willst. Beispielsweise hat IBM seine DB2 Express-C Edition ohne Speicherlimit kostenlos im Programm - auch unter Windows.
mlitters 12.08.2011
5 Antworten
7
Ich möchte noch etwas zu Golo Rodens Artikel anmerken, denn die Panik die er da zu verbreiten sucht, ist meiner Meinung nach völlig unbegründet. Alles, was während der Windows8-Demo gesagt wurde, war: "This is written with our new development platform, which is based on HTML5 and JavaScript [...] And so people can write new applications for Windows using the things that they, that they - are doing already on the internet,"

Und das bezog sich eben nicht auf Windows 8, sondern auf eine kleine Wetter-Applikation. Prinzipiell hat die junge Frau einfach nur gesagt, dass mit Windows 8 auch eine Plattform für Html5 kommt - und sonst nichts, noch nicht einmal dass die Plattform präferiert würde oder auch nur auf derselben Stufe wie .Net stünde.

Weiterhin ist ziemlich klar, dass HTML5 und javascript im Internet momentan nicht ohne Grund gehyped werden, im Intranet sieht es aber ganz anders aus - und dort verdienen die meisten Entickler letztlich ihr monatliches Almosen. Ich jedenfalls wüsste nicht, wie ich meine App, an der ich gerade arbeite, mit zigtausenden von Objekten, irgendwie in Javascript handeln könnte - noch nicht einmal theoretisch, vom praktischen "Mehrwert" ganz zu schweigen.

Noch ein Punkt zum SQL Server: Die Express-Edition erlaubt 4GB pro Datenbank, und man kann Dateien extern (quasi neben der eigentlichen DB) ablegen, die bei der Berechnung der Datenbankgröße nicht mitgezählt werden. Vielleicht doch noch einen Blick wert?

Edit: Ach, zum eigentlichen Themen wollte ich ja auch noch was sagen: Microsoft entwickelt schnell neue Technologien, ja, und man muss quasi in jedem größeren neuen Projekt etwas neues dazu lernen - die Frage die sich da aufdrängt: Welcher nicht-.Net-Profi verwendet denn noch immer Frameworks aus dem Jahr 2000? Genau, keiner. Der Unterschied ist also nur, dass Microsoft keine Opensource-Software verteilt, sondern professionell entwickelte Frameworks und integrierte, aufeinander abgestimmte Lösungen anbietet.
11.08.2011
sgf 426 3
1
Bzgl. der Panikmache wegen Windows 8 stimme ich Dir voll zu. Hier sollte man ganz entspannt abwarten, was kommt. Im September wissen wir alle mehr.
Auch sehe ich es so, dass Silverlight da anfängt, wo HTML (4, 5 oder irgendetwas) aufhört. D.h. man sollte zunächst klären, was will der Kunde eigentlich und mit ihm entscheiden auf welcher Basis man das dann entwickelt. Wenn ein Kunde z.B. von Anfang an sagt er muss die Anwendungen unbedingt auf einem iPad nutzen, dann fällt Silverlight (zumindest derzeit) direkt aus. In vielen anderen Fällen wird es jedoch erst richtig interessant.
mlitters 12.08.2011
5
Wenn du als "One-Man-Show" investierst solltest du schauen, dass sich dein Investment auch auszahlt. An deiner Stelle würde ich prüfen, was meinen aktuellen und/oder zukünftigen Kunden am meisten Gewinn bringt, deine Entwicklungszeit minimiert oder dein(e) Produkt(e) sinnvoll erweitert. Alle Plattformen und Technologien haben ihre Vor- und Nachteile.
09.08.2011
puls200 3,8k 7
1
Stimme Dir zu, man sollte das anbieten was gebraucht wird. Da aber häufig die Kunden selber nicht wissen was sie wollen, respektive denen egal ist wie das Problem gelöst wurde - solange es ordentlich gelöst wird - hat man eine gewisse Freiheit. Ich möchte daher lieber in eine Technologie investieren die auch Zukunft hat. Hier ist euere Meinung gefragt, was denkt ihr wie wird sich das Ganze euerer Meinung nach in der nächsten Zeit entwickeln?
Jaksa 10.08.2011
3
Ich denke einen wichtigen Punkt hast Du noch übersehen: Die Verteilung von Updates.
Dazu kann man dann in 'Desktop' und 'Web' Anwendungen unterteilen.
Desktop hat den Nachteil, dass eintsprechende Mechanismen eingebaut werden müssen, also Updater und/oder Installer gebaut werden müssen (Signierung!). Und das auch noch für verschiedene OS.
Das ist beim Web kein Problem, aber während eines Updates muss sichergestellt sein, dass keine Nutzer mehr die App nutzen bzw. das ein sofortiges (Session-Safe) Umschalten auf eine neue Version gelingt.

Grundsätzlich habe ich hier freie Wahl, aber das muss natürlich innerhalb bestimmter Parameter erfolgen. Wir tendieren eher zur Webanwendung, aber bei manchen Sachen macht das einfach keinen Sinn oder ist gar nicht machbar (z.B. Office-AddIns).

Eine schöne Kombination ist z.B. der XulRunner: Ein Browser als Basis, die Applicationslogik in PHP. Du minimierst den Update-Aufwand beim Kunden, gewinnst aber gleichzeitig die Vorteile einer lokalen Installation wie z.B. direkten Dateizugriff.

Das ist überhaupt eine schöne Entscheidungsgrundlage: Was muss meine Applikation dürfen? Damit kannst Du eventuell schon 'Webanwedung' ausschließen.
09.08.2011
DaSpors 4,2k 2 8
Muss ehrlich zugeben, kannte den XulRunner gar nicht, werde es mir auf jeden Fall anschauen - Danke für den Tipp
Jaksa 10.08.2011
Noch eine Frage: mit welcher Technologie realisiert ihr die Webanwendungen?
Jaksa 10.08.2011
PHP, MySQL, JavaScript, HTML...wobei wir für PHP ein eigenes FrameWork im Einsatz haben, das MVC umsetzt und die DB-Anbindung übernimmt. Wir setzen auch viel jQuery ein, zum Teil mit eigenen Kompponenten.
DaSpors 11.08.2011
Danke für die Info, genau so etwas schwebt mir auch vor.
Jaksa 11.08.2011
Dann schau mal wegen Framework hier nach: http://symfony.com/
Habs noch nicht ausprobiert, aber das sieht wirklich sehr gut aus!
DaSpors 11.08.2011
Vielleicht sogar noch cooler: http://silex-project.org/
DaSpors 16.08.2011
3
Nach den Kommentaren zu dem geschriebenen noch meine Antwort auf die Frage. Ich komme aus der Welt der mittleren Datentechnik von IBM. Genauer gesagt von der ehemaligen IBM AS/400, die dann in iSeries, i5, System i und nun in Power System mit IBM i OS umbenannt wurde.
Dort kann man seit über 30 Jahren mit RPG programmieren und muss nicht unbedingt etwas neues lernen. Es gibt auch noch jede Menge Programmierer, die auf dem Stand von der Anfangszeit sind und sich alle 5-10 Jahre mal 2-3 neue Befehle und Möglichkeiten anschauen. Jedoch muss man sich klar fragen, wo man einen Job hat. Wenn ich weiß, dass ich bis zur Rente dieses Ding durchziehen kann, kann ich das machen. Aber wer weiß das schon.
Wahrscheinlich der Hauptgrund, warum so viele dieser Systeme in vielen Unternehmen durch etwas anderes ersetzt werden... Obwohl man damit die modernste Hardware, eine hochskalierbare und sichere noch dazu in Betrieb hat, mit der man auch top moderne Anwendungen entwickeln kann.
Vor knapp 5-6 Jahren bin ich dann zu .net gekommen. Ursprünglich über Delphi und wurde mit Neuem total überflutet. Ich hatte das Gefühl, ich habe noch nie Programmiert. Außerdem musste ich mich plötzlich um Dinge kümmern, die mir "meine AS/400" immer brav abgenommen hat. Letzten Endes hat dieser immense "Lernschock" bei mir dazu geführt, dass ich mich vollkommen für neues geöffnet habe und parallel auch mit Java (was übrigens nativ unter IBM i OS ebenfalls läuft) und Objective C angefangen habe.
Von daher muss ich sagen, dass eine gewisse Stabilität bei einer Entwicklungsumgebung absolut sinnvoll ist, aber es ist für den "Durchschnittsprogrammierer" eben auch ganz wichtig auf eine Plattform zu setzen, die sich weiter entwickelt.
Es heißt ja nicht, dass man jede Neuentwicklung direkt mitmachen muss. Bei Microsoft bin ich z.B. sehr vorsichtig was Beta-Produkte angeht. Ob diese jemals produktiv gehen ist immer sehr offen.
Alles in allem ist es aber beim .net Framework und Visual Studio so, dass man, wenn man einmal die Grundlagen verstanden hat, recht schnell in die verschiedenen Zweige der Neuentwicklungen findet.
Von dem abgesehen ist es bei PHP, Java oder Objective C auch nicht viel anders. Auch dort entwickelt sich alles weiter und werden teilweise alte Zöpfe abgeschnitten. Das ist IT.

Bzgl. der Kosten bei Microsoft noch der Hinweis auf die registered Member Partnerschaft, bei der es u.a. sehr günstige Möglichkeiten gibt die meisten Produkte intern zu nutzen - inkl. SQL Server und Visual Studio.
Wie ich aber weiter oben schon geschrieben habe ist es für jeden externen Programmierer zunächst ganz wichtig zu klären, wer seine Zielgruppe ist. Du solltest nicht sagen ich entwickle z.B. in PHP und suchst Dir dann Deine Zielgruppe.
Wenn Du gute Ideen für Apps hast, ist das Apple i OS mit Sicherheit eine gute Wahl. Ein Markt, bei dem man auch Geld verdienen kann und wie Du schon richtig bemerkt hast, ein wachsender Markt, mit bisher noch überschaubaren Entwicklerzahlen.
Bei PHP sieht das meiner Meinung nach etwas anders aus - zumindest mit überschaubaren Entwicklerzahlen...
Aber auch dort ist die Qualität letzten Endes entscheidend und wie Du an die Projekte mit Deinen Kunden heran gehst.
Mac OS X als Desktopplattform ist meiner Meinung nach dahingehend ein Problem, dass Du wohl eher weniger Kunden finden wirst, die bereit sind, all ihre PC's durch Mac's zu ersetzen, nur weil Du zufällig nur dafür entwickelst... es sei denn Du entwickelst Anwendungen, die für Mac User allgemein geeignet sind. Hier kommt also wieder die Frage hoch, was machst Du genau und wer ist Deine Zielgruppe....
12.08.2011
mlitters 234 1 8
0
Der neue "Style" ab Windows 8, genannt "Metro", und damit die entsprechende Entwicklungsumgebung ist auf jeden Fall gesetzt. Der Desktop wird "in verbesserter Form" weiterhin gepflegt, aber wohl mehr aus Rücksicht auf die "alten" Anwendungen.
Andreas
01.09.2011
ABarchfeld 131 1

Stelle deine Softwareentwicklung-Frage jetzt!