Welche Programmiersprache?

Original geschrieben von Christian Fein
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.
Mit die fehlen mir bei Java wirklich. meinte ich, dass sie mir so wie sie in C# vorhanden sind in Java fehlen würden.

Original geschrieben von Christian Fein
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?

Irgendwie haben die dort gelisteten Events alle etwas mit einer GUI / einem GUI-Element zu tun. Oder übersehe ich etwas?
Vor ein paar Wochen habe ich mir eine Komponente geschrieben, welche ein Webinterface bereitstellte. Und dort habe ich z.b. ein Event geschrieben welches von meiner Komponente ausgelöst wurde, wenn ein User Formulardaten übertragen hat

Original geschrieben von Christian Fein
Schau ich mir doch mal an :)
Viel Spass, ist aber nichts größes. :)
 
Original geschrieben von Alexander Schuc

Irgendwie haben die dort gelisteten Events alle etwas mit einer GUI / einem GUI-Element zu tun. Oder übersehe ich etwas?
Vor ein paar Wochen habe ich mir eine Komponente geschrieben, welche ein Webinterface bereitstellte. Und dort habe ich z.b. ein Event geschrieben welches von meiner Komponente ausgelöst wurde, wenn ein User Formulardaten übertragen hat

Ein Event ist eigentlich nicht dazu da um Codeablauf zu gestallten.
Ein Vorteil den ein Event dort bringen soll, erschliesst sich mir nicht, eher den grossen Nachteil das dies schwer Nachvollziehbaren Code ergibt.

Notfalls kannst du auch eine Exception werfen, das geht noch einfacher:

Code:
try {
   dataExists();
} catch( UncheckedDataException e) {
   checkData();
} finally {
   saveData();
}

Aber auch das halte ich für unnötig und eher schlecht. In einer Webapplikation haben Events eigentlich nichts zu suchen. Events sind zeitlich unvorhersagbares Auftreten von Zuständen.
Bei Webapplikationen gibt es in dem Fall nur 2 Zustände und diese Treten immer linear auf. Sprich:
- Daten vorhanden
- Daten nicht vorhanden.

Ich denke gerade an den legendären Programmierer - Satz:
"Keep it stupid simple" ;)

EventHandling ist eher ein notwendiges Übel bei GUI Applikationen oder Threaded Programmierung. Der stolperstein der nichtlinearen Anwendung verkompliziert Dinge die eigentlich einfacher sind. Da gehe ich grundsätzlich lieber den Weg des geringeren Widerstandes, und werde dafür mit Code beschenkt in den ich mich einfacher, schneller wieder reinarbeiten kann.
Dennoch ist es relativ einfach eigene Events zu schreiben.

Erstelle ein Interface mit den Methoden die dein Listener haben soll:
Code:
public interface DataCheckListener {
  public void dataUnchecked(DataCheckEvent  e);
}

Dann erstellst du eine EventKlasse
public class DataCheckEvent extends Event {
   // hier eigene möglichkeiten diese 
}
Der Auslöser bei einem Event, ist demnach eventuell ein HttpServlet Object, also brauch dieser eine Methode um ein die Events zu registrieren:
Code:
private addDataCheckListener(DataCheckListener d)  {
   dslistener.add(d);
}
Somit ist dein EventHandling fertig. Sprich du kannst wunderbar das Event
abfeuern:

Code:
private void fireDataCheckEvent() {
    Iterator i = dslistener.iterator();
     while(i.hasNext()) {
         ( (DataCheckListener)i.next()).dataUnchecked(new DataCheckEvent());
      }
}
 
Original geschrieben von Neurodeamon
Ich würde gerne wissen, welche Programmiersprache für Euch am meisten Sinn macht.

Ist doch ganz einfach, die Sprache die mit dem grössten Kosten- Nutzenfaktor ein Problem löst ist die Sprche der wahl. Dabei kann die Sprache differieren aber dass ist Schnuppe, denn SInn macht nur die Sprache die am meisten Profit bringt.
 
Re: Re: Welche Programmiersprache?

Original geschrieben von JoelH
Ist doch ganz einfach, die Sprache die mit dem grössten Kosten- Nutzenfaktor ein Problem löst ist die Sprche der wahl. Dabei kann die Sprache differieren aber dass ist Schnuppe, denn SInn macht nur die Sprache die am meisten Profit bringt.

Ja da hast du sicher recht. Aber es geht im Augenblick darum welche Programmiersprache der Threadstarter sich anneignen will.
:)
 
hmm,

IMHO kennt er ja schon eine der 'fleissigsten', nämlich php. Da sit jede Menge gutes eingeflossen aber auch jede Menge Schrott, OOP und php sind zwei Welten, noch immer. Wie auch immer, ich tendiere zu Ruby als Emfehlung. Ist abseits des Mainstream aber dafür absolut gut. EInen einfachen multithread Server schreibt man damit im weniger als 200 Zeilen Code. Fensterprograme sind kein Problem dank TCL/TK. Plattformunabhängigkeit ist sowieso primäre Eigenschaft.

Nee, also Ruby ist einfach geil http://www.ruby-lang.org . Trotzdem würd ich gerne mal Smalltalk lernen, hab aber leider keien Zeit dazu :(

PS. Beruflich spreche ich Delphi, ist auch nciht schlecht.
 
War ansich keine Webapplikation, war ein kleiner Webserver mit dem man das Programm übers Web steuern kann.

Ein Event ist eigentlich nicht dazu da um Codeablauf zu gestallten.
Ein Vorteil den ein Event dort bringen soll, erschliesst sich mir nicht, eher den grossen Nachteil das dies schwer Nachvollziehbaren Code ergibt.

Finde ich nciht das es schwer nachvollziehbaren Code ergibt.

Ich benutze zwischendurch eine kleine IRC Library namens Thresher.
Folgendermassen wird sie benutzt:
# Man instanziert ein Object der Connection-Klasse.
# Stellt Server etc. ein
# Fügt EventHandler für die benötigten Ereignisse wie z.b. "Eintreffen einer Nachricht", "User betritt den Channel", "User wird aus dem Channel gekickt" etc. hinzu.
# Stellt die Verbindung her.

Im EventHandler hat man dann alle benötigten Daten wie z.b. Userdaten, Nachricht. Je nach Event.

Ein Event ist eigentlich nicht dazu da um Codeablauf zu gestallten.
Dies meinst du jetzt auf eine Webanwendung bezogen, oder? Bis auf die Events der WebForms würde mir auch nicht wirklich jetzt eine Event-Art einfallen die man sinnvill benötigen könnte.

Bei Desktopanwendungen finde ich es aber durchaus sinnvoll. Wie z.b. die Events des FileSystemWatchers
 
Original geschrieben von Alexander Schuc
War ansich keine Webapplikation, war ein kleiner Webserver mit dem man das Programm übers Web steuern kann.
Ja dann habe ich dich da falsch verstanden. Dachte du meintest eine Webapplikation.
Grundsätzlich meine ich, Komplexität herausnehmen aus dem Code wo immer dies notwendig ist. Und wie du selber auch sagtest in einer Webapplikation sind Events nicht notwendig.
Das du etwas anderes meintest, da kann ich das natürlich jetzt nicht nachvollziehen ob Sinnvoll oder nicht, weil ich deine Anwendung nicht kenne.

Oben der Code ist eine Implementierung eines eigenen Events. Auch hier kannst du ohne Probleme deine Daten in der DataCheckEvent Klasse unterbringen.

Original geschrieben von Alexander Schuc

Bei Desktopanwendungen finde ich es aber durchaus sinnvoll. Wie z.b. die Events des FileSystemWatchers

Das hat niemand bestritten :)

Aber unsprünglich ging es darum, das dir irgendwas an der Art wie Events in Java implementiert wird nicht gefallen. Revidierst du deine Aussage, oder muss ich weiter CodeSchnipsel schreiben? :)
 
Original geschrieben von Christian Fein
Events sind zeitlich unvorhersagbares Auftreten von Zuständen.

Aber genau darum sind sie doch 'Servereigenschaften' schlecht hin, denn gerade bei Servern aller art ist das warten auf 'Events' das grösste begehr. Oder wie siehst du dass ? Ein Server macht doch eigentlich nix anderes als auf ein Event zu wartenn, sprich auf etwas reagieren zu dürfen.

Natürlich ist dies nicht das beste wenn es um auslastung, verteilung etc. geht. Aber der einfachste Server sit einfach ein Programm welches auf eine Anfrage wartet und anhand diesre dann einen neuen Thread erstellt der mit den 'ANfrager' komuniziert. Dadurch ist der Server wieder auf der Warteschleife und der Thread , durch ein Event gestartet, spricht mit den Anfrager usw.
 
Original geschrieben von JoelH
Aber genau darum sind sie doch 'Servereigenschaften' schlecht hin, denn gerade bei Servern aller art ist das warten auf 'Events' das grösste begehr. Oder wie siehst du dass ? Ein Server macht doch eigentlich nix anderes als auf ein Event zu wartenn, sprich auf etwas reagieren zu dürfen.

Richtig, das habe ich auch nicht bestritten, ich rede von Webanwendungen. JSP / Servlets / ASP.net.
Diese laufen linear ab.
 
hmm,

diese haben defakto keine Threadsteuerung und entberen dadurch jeder Disskusionsgrundlage. Da verstehe ich dann nimmer über was ihr hier disskutiert.

Webscripte haben immer dasselbe zu tun, wenn der Input gleich ist.
 

Neue Beiträge

Zurück