Welche Programmiersprache?

Original geschrieben von Christian Fein
managed Code ist eine eigenschafft des .net Framework. Java ist grundsätzlich das was Microsoft so schön als Managed Code bezeichnet.
Die ganze Garbage Collection Geschichte gibts schon seid einer Ewigkeit.
Im grunde kannst du nach der Faustregel gehen: Was in .net umgesetzt worden ist, gabs schon seid Jahren bei Java.
Das fängt bei den sogenannten Webforms an und geht über die komplette ASP.net Architektur, über der Struktur und beschaffenheit des .net Frameworks bis hin zur eigentlichen Sprache C#.
All das wurde recht gut von Java kopiert.

interop:
msdn sagt:
.NET Interop: Get Ready for Microsoft .NET by Using Wrappers to Interact with COM-based Applications

Gerade das sind dinge die .net plattformabhängig machen. Es gibt COM nur auf Windows, und sowas hat in einer plattformunabhängigen Sprache nichts zu suchen. Wenn ich DCOM / COM brauche sollte ich lieber CORBA/JB nehmen, das ist plattformunabhängig und ISO Standard.

Zu mono, gut, habe ich dich ein wenig falsch verstanden. Hätte es mir aber denken können, wollte es aber nicht so stehen lassen, klang so abschreckend. ;)

Übrigens, so wie ich das bis jetzt mitbekommen habe wird es von Mono aus möglich sein z.b. Methoden aus der libc.so zu importieren, wie unter Windows Methoden dlls.
Damit dann ein Programm unter z.b. Windows funktionieren kann gibts es das 'dllmap' Element in der Konfigurationsdatei der Anwendung.
Damit kann man ein Gegenstück für die verwendete Library angeben sollte diese nicht existieren.

Also, Interop muss nicht nur mit COM zu tun haben.
Nur leider kommt dies alles nicht direkt von Microsoft.
 
Original geschrieben von Alexander Schuc

Übrigens, so wie ich das bis jetzt mitbekommen habe wird es von Mono aus möglich sein z.b. Methoden aus der libc.so zu importieren, wie unter Windows Methoden dlls.
Damit dann ein Programm unter z.b. Windows funktionieren kann gibts es das 'dllmap' Element in der Konfigurationsdatei der Anwendung.
Damit kann man ein Gegenstück für die verwendete Library angeben sollte diese nicht existieren.

Also, Interop muss nicht nur mit COM zu tun haben.
Nur leider kommt dies alles nicht direkt von Microsoft.

Unter dem Strich bleibt ein negativer Beigeschmack. Die möglichkeit COM Objecte zu nutzen hat in einer Plattformunabhängigen Sprache nichts verloren.

Schon jetzt gibt es so viel Dinge auf die mann achten muss um auch nur einigermassen plattformunabhängig zu sein, sprich später mono und .net fähige Programme zu entwickeln das ein Arbeiten damit zur Qual wird.
.net ist eine schöne Sache, aber in der produktiven Arbeit auf Windows beschränkt.

Wir haben eventuell eine verschiedene Vorstellung weshalb eine Programmiersprache lernen. Zum Spass, oder auch als Zukunftsperspektive.
mono ist leider noch ein gutes Stück entfernt bevor ich es vor meinem Chef verantworten könnte, mono für ein Projekt zu nutzen.
Zudem hat das mono Projekt so massig schwierigkeiten mit den Lizenzen und Patenten von Microsoft, das es noch ungewiss ist, ob überhaupt das geplante so umgesetzt werden kann. Wer sich da ein bischen informieren will, sollte die mono maillingliste abonnieren, da graust es einen.
 
Original geschrieben von Christian Fein
Unter dem Strich bleibt ein negativer Beigeschmack. Die möglichkeit COM Objecte zu nutzen hat in einer Plattformunabhängigen Sprache nichts verloren.

Schon klar, um wirklich plattformunabhängig zu sein darf man ja nur die vom Framework bereitgestellten Klassen verwenden.
Für die Windowsprogrammierung ist es allerdings recht praktisch. Das Clipboard Programm von mir das hier im CodersTalk wo rumliegt wäre ohne importieren einer Methode der user32.dll nicht möglich gewesen.

Original geschrieben von Christian Fein
Schon jetzt gibt es so viel Dinge auf die mann achten muss um auch nur einigermassen plattformunabhängig zu sein, sprich später mono und .net fähige Programme zu entwickeln das ein Arbeiten damit zur Qual wird.
.net ist eine schöne Sache, aber in der produktiven Arbeit auf Windows beschränkt.

Leider ja, vorallem wenn es sich um GUI Anwendungen handelt.

Original geschrieben von Christian Fein
Wir haben eventuell eine verschiedene Vorstellung weshalb eine Programmiersprache lernen. Zum Spass, oder auch als Zukunftsperspektive.
mono ist leider noch ein gutes Stück entfernt bevor ich es vor meinem Chef verantworten könnte, mono für ein Projekt zu nutzen.
Zudem hat das mono Projekt so massig schwierigkeiten mit den Lizenzen und Patenten von Microsoft, das es noch ungewiss ist, ob überhaupt das geplante so umgesetzt werden kann. Wer sich da ein bischen informieren will, sollte die mono maillingliste abonnieren, da graust es einen.
Nun, begonnen hat es bei mir zwar aus Spass, mittlerweile möchte ich allerdings auch eine Ausbildung in diesem Bereich anstreben.
Muss aber erstmal durch die Matura.

Aber wozu antworte ich, du weisst ja eh alles/mehr als ich. =)
 
Original geschrieben von SilentWarrior
Oh, das würde mich auch mal interessieren! Ich hab ja mal vor fünf Jahren oder so in der Schule Visual Basic programmiert (oje...) und dann vor einem Jahr oder so mal länger Pascal - das war noch ganz nett. Aber stimmt schon, PHP verdirbt einem alles. Mich würd ja C++ auch interessieren, nur find ich kein schlaues Tutorial. Kennt irgendjemand eins?

Tutorials kenne ich viele, aber da halte ich auch nicht viel von. Sind meistens besch***eiden geschrieben.

Ein gutes Buch ist:
c++ pocket: Der leichte Einstieg
Peter Wollschlaeger
Broschiert - 378 Seiten - Markt+Technik
ISBN: 3827265010

Die Amazon Bewertungen sind recht positiv.
Ich habe es jetzt hier vorliegen. Das schöne daran ist:
Es ist nicht für komplette Anfänger. Man sollte schon wissen was integer, float, array, schleifen, etc. sind. Aber das steht auch im Vorwort des Buches.

Zumindest hier hat mir PHP ein gutes Vorverständnis gebracht.

Ich glaube C++ hat ziemliches Potenzial. Selbst wenn es schwer zu lernen ist. Mal schauen was ich so damit bauen kann. Vor einigen Jahren hätte ich nicht mal daran gedacht PHP zu benutzen. Pascal war mir ein GRÄUL und Basic hat mir eine Hasskappe beschert ... echt ööööde... Lag vielleicht an meinen Lehrern, die Programmierung nur mit mathematischen Problemen in Verbindung brachten und nicht mit nützlicher Software.
 
Original geschrieben von Alexander Schuc
Schon klar, um wirklich plattformunabhängig zu sein darf man ja nur die vom Framework bereitgestellten Klassen verwenden.

Leider, nein, viele Teile des Frameworks werden von mono aufgrund von Softwarepatenten nicht implementiert. Sprich es ist auch so nicht möglich
plattformunabhängig zu programmieren.
Soviel ich weiss ist auch ADO.net davon betroffen.


Für die Windowsprogrammierung ist es allerdings recht praktisch. Das Clipboard Programm von mir das hier im CodersTalk wo rumliegt wäre ohne importieren einer Methode der user32.dll nicht möglich gewesen.

Nein das ist sache des Frameworks als mittler zu dienen. Ich kann dir gern das Clipboard Programm programmieren, so das es ohne neukompilation unter sämmtlichen Plattformen läuft, auf denen das J2SDK verfügbar ist.
Also u.a UNIX, Linux, Mac, OS/2, BeOS usw.
Da ist der knackende Punkt.

Original geschrieben von Alexander Schuc

Nun, begonnen hat es bei mir zwar aus Spass, mittlerweile möchte ich allerdings auch eine Ausbildung in diesem Bereich anstreben.
Muss aber erstmal durch die Matura.

Da wünsch ich dir viel erfolg, aber auf der Uni wirst du eher mit Java und C++ und Pascal konfrontiert. .net spielt u.a im akademischen Bereich eine untergeordnete Rolle.


Original geschrieben von Alexander Schuc

Aber wozu antworte ich, du weisst ja eh alles/mehr als ich. =)
Ich hoffe du meintest das jetzt nicht im negativen Sinne. Ich versuch mich ja zurückzuhalten, was .net betrifft.
Punkt ist: Ich habe die .net Foren auf tutorials.de eigentlich eingerichtet, weil ich bei der Beta 2 des Frameworks sehr an .net interressiert war.
Meine Hoffnung war das Microsoft das Projekt sauber durchzieht, da auch ihre Software, was Entwicklungsplattformen wie VS und ähnlichem doch aussergewöhnlich gut war. Ebenso ist VS.net eine Runde sache, aber irgendwie hat mein Interresse und das damit zusammenhängenden Informieren, lesen der mono Maillist, MSDN Artikel usw, leider meine Befürchtungen war werden lassen.
.net ist als Java Klone gedacht, ohne den grossen Vorteil von Java wirklich mitzunehmen, die Plattformunabhängigkeit, und das stösst mir bitter auf, weil mich der Zeit die ich in .net investiert habe beraubt fühle.
Deshalb kann es mannchmal vorkommen das eine gewisse Abneigung gegenüber .net vorhanden ist. Auch wenn es eine immer noch recht runde Sache ist.
 
Original geschrieben von Christian Fein
Leider, nein, viele Teile des Frameworks werden von mono aufgrund von Softwarepatenten nicht implementiert. Sprich es ist auch so nicht möglich
plattformunabhängig zu programmieren.
Soviel ich weiss ist auch ADO.net davon betroffen.
Mh, der Namespace System.Data ist zu 90% implementiert, und es gibt einige ADO.net DataProvider für verschiedene DB-Systeme.

Original geschrieben von Christian Fein
Nein das ist sache des Frameworks als mittler zu dienen. Ich kann dir gern das Clipboard Programm programmieren, so das es ohne neukompilation unter sämmtlichen Plattformen läuft, auf denen das J2SDK verfügbar ist.
Also u.a UNIX, Linux, Mac, OS/2, BeOS usw.
Da ist der knackende Punkt.
Die Methode welche ich importiert habe ist 'SetClipboardViewer', damit mein Programm bei änderungen der Zwischenablage benachrichtigt wird. Reine .net Mittel hab ich keines gefunden.
Wenn du willst zeige ich dir den Code. Wenn du Zeit hast es in Java 'nachzuprogrammieren', einen 'Leser' hättest. (mich) =)

Original geschrieben von Christian Fein
Da wünsch ich dir viel erfolg, aber auf der Uni wirst du eher mit Java und C++ und Pascal konfrontiert. .net spielt u.a im akademischen Bereich eine untergeordnete Rolle.
Danke. Das mit den Sprachen ist mir klar. Java machen wir bereits jetzt an meiner Schule, allerdings etwas langsam. In den letzten Jahren hätten wir viel mehr machen können, nur leider gibts es nicht viele die mitkommen. :(
C# ansich habe ich nur wegen ASP.net begonnen zu lernen, allerdings bin ich doch länger bei der 'Desktop-programmierung' geblieben.
Im übrigen, nur die Sprache die ich bei einer Ausbildung lernen würde, würder sicherlich nicht ausreichen um flexibel genug zu sein für diesen Beruf.

Original geschrieben von Christian Fein
Ich hoffe du meintest das jetzt nicht im negativen Sinne. Ich versuch mich ja zurückzuhalten, was .net betrifft.
Nein, meinte ich eigentlich recht positiv. Hab eh lang genug überlegt wie ichs formulieren soll, damit es nicht negativ klingt. Ist mir schlussendlich wohl nicht gelungen.
Du hast ja mehr Wissen, und vorallem auch mehr Erfahrung in diesem Bereich.

Original geschrieben von Christian Fein
Punkt ist: Ich habe die .net Foren auf tutorials.de eigentlich eingerichtet, weil ich bei der Beta 2 des Frameworks sehr an .net interressiert war.
Meine Hoffnung war das Microsoft das Projekt sauber durchzieht, da auch ihre Software, was Entwicklungsplattformen wie VS und ähnlichem doch aussergewöhnlich gut war. Ebenso ist VS.net eine Runde sache, aber irgendwie hat mein Interresse und das damit zusammenhängenden Informieren, lesen der mono Maillist, MSDN Artikel usw, leider meine Befürchtungen war werden lassen.
.net ist als Java Klone gedacht, ohne den grossen Vorteil von Java wirklich mitzunehmen, die Plattformunabhängigkeit, und das stösst mir bitter auf, weil mich der Zeit die ich in .net investiert habe beraubt fühle.
Deshalb kann es mannchmal vorkommen das eine gewisse Abneigung gegenüber .net vorhanden ist. Auch wenn es eine immer noch recht runde Sache ist.

Microsoft ist leider Microsoft. Plattformunabhängigkeit klingt gut, und lässt sich gut verkaufen, dennoch ists nicht so rosig wie sie es eigentlich verkauft haben. Verkaufen und bewahren der Kundschaft ist wichtig.

Ich finde aber auch ohne wirkliche Plattformunabhängigkeit ist das .net Framework mit C# eine schöne Umgebung zum programmieren.
C# ist eine moderne, produktive Sprache, die mir vom 'Aufbau' her übrigens besser gefällt als Java.
Die Art wie diverse Sachen in C# gelöst sind finde ich rein subjektiv schöner als in Java. Wenn ich dann nach längerer Zeit wieder was in Java schreibe ärgere ich mich dann meist darüber.
 
Original geschrieben von Alexander Schuc
Mh, der Namespace System.Data ist zu 90% implementiert, und es gibt einige ADO.net DataProvider für verschiedene DB-Systeme.

Ja aber dennoch steht der Patent Finger auf ADO.net.
Es mag möglich sein, das sich dies in der letzten Zeit geändert hat, aber Windows.Forms und ADO so habe ich das in errinnerung, sind aufgrund Patente unsicher inwieweit es implementiert wird.

Original geschrieben von Alexander Schuc

Die Methode welche ich importiert habe ist 'SetClipboardViewer', damit mein Programm bei änderungen der Zwischenablage benachrichtigt wird. Reine .net Mittel hab ich keines gefunden.
Wenn du willst zeige ich dir den Code. Wenn du Zeit hast es in Java 'nachzuprogrammieren', einen 'Leser' hättest. (mich) =)

Wenn ich da die Zeit finde gerne :)


Original geschrieben von Alexander Schuc

Danke. Das mit den Sprachen ist mir klar. Java machen wir bereits jetzt an meiner Schule, allerdings etwas langsam. In den letzten Jahren hätten wir viel mehr machen können, nur leider gibts es nicht viele die mitkommen. :(
C# ansich habe ich nur wegen ASP.net begonnen zu lernen, allerdings bin ich doch länger bei der 'Desktop-programmierung' geblieben.
Im übrigen, nur die Sprache die ich bei einer Ausbildung lernen würde, würder sicherlich nicht ausreichen um flexibel genug zu sein für diesen Beruf.
Ja und nein, das kommt immer darauf an in welcher Firma, welche Software mann schreibt. Ich arbeite in einer sehr kleinen Firma, die vieles Outsourced. Dort bin ich aber für sämmtliche Implementierungen verantwortlich. Das hat den Vorteil, es wird nie langweilig.
Im letzten Jahr habe ich beruflich eingesetzt:
Hautpsächlich Java, ASP mit JScript , PHP, C# für einen XML Datenserver, ActionScript für eine kleines Projekt zwischendurch. Ich hatte zu Beginn des Projektes absolut keine Ahnung von Actionscript und musste innerhalb von 2 Wochen, ActionScript bis zu einem gewissen Masse lernen um das Rohgerüst eines Flashspielchen anpassen zu können. War interressant ;)
In anderen Firmen sieht es anders aus, es gibt Softwarefirmen die wirklich reines VB programmieren, und aus dieser Ecke auch nicht herauswollen, oder ähnliches.


Original geschrieben von Alexander Schuc

Nein, meinte ich eigentlich recht positiv. Hab eh lang genug überlegt wie ichs formulieren soll, damit es nicht negativ klingt. Ist mir schlussendlich wohl nicht gelungen.
Du hast ja mehr Wissen, und vorallem auch mehr Erfahrung in diesem Bereich.

Mir wurde nur schon nachgesagt, ich wirke teilweise arrogant und rechthaberisch ;)
drum, frage ich lieber nochmal nach, denn das ist mir selber so gar
nicht bewusst.

Original geschrieben von Alexander Schuc

Microsoft ist leider Microsoft. Plattformunabhängigkeit klingt gut, und lässt sich gut verkaufen, dennoch ists nicht so rosig wie sie es eigentlich verkauft haben. Verkaufen und bewahren der Kundschaft ist wichtig.

Ja leider, der Punkt stinkt mich doch sehr an.

Original geschrieben von Alexander Schuc

Ich finde aber auch ohne wirkliche Plattformunabhängigkeit ist das .net Framework mit C# eine schöne Umgebung zum programmieren.
C# ist eine moderne, produktive Sprache, die mir vom 'Aufbau' her übrigens besser gefällt als Java.
Die Art wie diverse Sachen in C# gelöst sind finde ich rein subjektiv schöner als in Java. Wenn ich dann nach längerer Zeit wieder was in Java schreibe ärgere ich mich dann meist darüber.

Ja C# ist sehr gut, gefällt mir auch, aber was genau fehlt dir bei Java, oder was ist bei C# besser implementiert?
Oftmals ist es so, das jenes welches bei Java genauso vorhanden ist, aber
dir eventuell nicht bekannt ist. Währe interressant zu erfahren.

Mir fallen momentan nur 2 Dinge ein, die bei Java fehl(t)en und bei C# vorhanden sind.
- Autoboxing
- foreach iteration

Beide Dinge sind bei Java 1.5 implementiert. Zudem kommen Generics sprich Templates, auch bei C# wird Generics in kommenden Versionen implementiert.

Mannche sehen die .net Art von Properties als ein Vorteil. Das sehe ich absolut anders, ich mag die get / set / is Methoden rein subjectiv lieber.
 
Original geschrieben von Christian Fein
Mir wurde nur schon nachgesagt, ich wirke teilweise arrogant und rechthaberisch ;)
drum, frage ich lieber nochmal nach, denn das ist mir selber so gar
nicht bewusst.
Wärest du ein bestimmter Bekannter meinerseits und würdest so schreiben (Gut wärest du er, könntest du nicht so schreiben da dir das wissen fehlen würde) würde ich das durchaus auch behaupten. Aber ich fined passt schon so wie du schreibst. (Ich hoffe das kommt nun richtig rüber :) )

Original geschrieben von Christian Fein
Ja C# ist sehr gut, gefällt mir auch, aber was genau fehlt dir bei Java, oder was ist bei C# besser implementiert?
Oftmals ist es so, das jenes welches bei Java genauso vorhanden ist, aber
dir eventuell nicht bekannt ist. Währe interressant zu erfahren.

Mir fallen momentan nur 2 Dinge ein, die bei Java fehl(t)en und bei C# vorhanden sind.
- Autoboxing
- foreach iteration

Beide Dinge sind bei Java 1.5 implementiert. Zudem kommen Generics sprich Templates, auch bei C# wird Generics in kommenden Versionen implementiert.

Mannche sehen die .net Art von Properties als ein Vorteil. Das sehe ich absolut anders, ich mag die get / set / is Methoden rein subjectiv lieber.

Wo du gerade Properties ansprichst, die fehlen mir bei Java wirklich.
Desweiteren finde ich Eventhandling unter .net auch besser, allerdings habe ich mich da nur mit grundlegenden Sachen in Java beschäftigt. (ActionListener hauptsächlich) Wie man eigene Events unter Java erstellt hab ich noch immer nicht entdeckt, muss ich mal besser suchen. Evt. kannst du mir da ja einen Hinweis geben.

Ich kann aber ansich nicht wirklich sagen das ich die Technik hinter Java, bzw. die Art wie etwas implementiert ist, nicht gefällt. Eigentlich ist es ein rein subjektives nicht gefallen von Java gegenüber C#.

Im Anhang befindet sich das besagte Clipboard-Programm. :)
 

Anhänge

  • clipboard.rar
    11,6 KB · Aufrufe: 20
Original geschrieben von Alexander Schuc

Wo du gerade Properties ansprichst, die fehlen mir bei Java wirklich.

Die sind doch da. Private Member mit Zugriffsmethoden hast du genauso. Die Properties von .net sind nichts anderes, nur das die Schreibweise anders ist. Das gefällt mir rein Subjectiv nicht, denn es sind nichts anderes als private Member. Nur bekommen sie bei Komponenten Programmierung eine bedeutung, dies wird bei Java durch
getPropertiename()
setPropertiename()
isPropertiename()
Methoden verwirklicht. Die im übrigen meine IDE automatisch erstellt.

Original geschrieben von Alexander Schuc

Desweiteren finde ich Eventhandling unter .net auch besser, allerdings habe ich mich da nur mit grundlegenden Sachen in Java beschäftigt. (ActionListener hauptsächlich) Wie man eigene Events unter Java erstellt hab ich noch immer nicht entdeckt, muss ich mal besser suchen. Evt. kannst du mir da ja einen Hinweis geben.

Ich finde gerade das Eventmodel mit Listener und Adapterklassen einwandfrei verständlich.

Code:
private void tuWas()  {
  out.println("Status geändert!); 
}

foo.addSelectionListener(new SelectionAdapter() {
  public void selectionChanged(SelectionEvent e) {
       tuWas();
   }
};

Listener sind Interfaces. Nachteil ist das bei Zuweisung eines Interfaces an foo sämmtliche Methoden implementiert werden müssen. Da dies bei mannchen Listener Klassen zeitaufwendig sein kann, gibt es die Adpaterklassen, so das nur jene Methoden überschrieben werden müssen die

http://java.sun.com/docs/books/tutorial/uiswing/events/handling.html
Gibt eine wunderbare einführung in sämmtliche vorhandenen Listener Klassen, und ebenso die möglichkeit eigene zu schreiben.
Ich persöhnlich bin noch nie in die Situation gekommen einen eigenen
schreiben zu wollen, welche Situation verlangt dies?


Original geschrieben von Alexander Schuc

Ich kann aber ansich nicht wirklich sagen das ich die Technik hinter Java, bzw. die Art wie etwas implementiert ist, nicht gefällt. Eigentlich ist es ein rein subjektives nicht gefallen von Java gegenüber C#.

Im Anhang befindet sich das besagte Clipboard-Programm. :)
Schau ich mir doch mal an :)
 
Falls noch Interesse an C++-Tutorials besteht...

http://www.c-plusplus.de/c___1.htm

Das erste von den dort aufgeführten kann auch als Wochenend-Auffrischkurs missbraucht werden, ich spreche aus Erfahrung ;)

PS: Ach ja, zum Thema... es gibt nicht "die" Programmiersprache. Welche Programmiersprache man letztendlich für ein Projekt verwendet, hängt immer von den Anforderungen ab. Aber wenn es nur darum geht, "moderne Programmierung" zu erlernen (sprich: OOP/OOA), so würde ich C# oder Java empfehlen. C++ ist oft unnötig verwirrend.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück