Startprobleme mit Java

  • Hi @ all!

    Kurz zu meiner Person:
    Zurzeit Software & Information Engeneering, 1.Sem
    Bin HTL Absolvent, Wirtschaftsinformatik, spreche fließend C/C++, C#, Perl mit "leichtem Akzent", VB ebenfalls nicht ganz perfekt. Arbeite fast 4 Jahren im Bereich der Softwareentwicklung und habe es noch nie erlebt, dass eine Programmiersprache so bären kann wie java.
    Ich dachte mir, dass ich eigentlich in die Gruppe VK gehöre. aber Das super tolle, achso vergötterte Java ist echt nicht "toll" - hab das Wort das ich ursprünglich hier hergeschrieben hab entschärft. Alleine mit der struktur und den problemen beim import befehl. die datentypen sind äußerst unflexibel, .... C# oder Perl sind meiner Meinung nach ca. 1000 mal besser:coolsmile.

    Wieso wird Java verwendet?

    lg Markus

    Was soll ich bloß in die Signatur schreiben??
    Für die PC-Freaks:
    AMD 64 3500+, 1GB Corsair, 200GB Maxtor, Geforce 6600GT, 2x Iiyama E481S 19"Monitore

    Für die Auto-Freaks
    Audi A3 1,8T, 40mm Tiefer, Dunlop SP 9000 auf AEZ Enzo Cup, zur Zeit Original Bose, in absehbarer Zeit wieder Focal Doppelcompo vollaktiv @ Xetec Xi240.4, 2Stk Doom Audio D2-12 @ Audiobank D1600

    Für die Ballett-Freaks
    Ich tanze nicht Ballett

  • Auf http://java.sun.com/learning/new2java/index.html steht:

    The Java programming language is robust and versatile, enabling developers to:


    • Write software on one platform and run it on another.
    • Create programs to run within a web browser.
    • Develop server-side applications for online forums, stores, polls, processing HTML forms, and more.
    • Write applications for cell phones, two-way pagers, and other consumer devices.

    Weiters sind für mich sind die Libaries und Technologien, die zur Verfügung gestellt werden, sehr überzeugend: http://java.sun.com/j2se/1.5.0/docs/index.html
    Natürlich gibt es Bereiche, für die andere Sprachen besser geeignet sind (Stichwort: Performance :shinner: ).

    András

  • Zitat von Unic0der

    Alleine schon die Tatsache dass Java eine automatische Garbage Collection hat macht es interessant. ;):D

    Oder uninteressant. Weil man bevormundet wird. Ich bin zur Zeit so auf antiJava unterwegs. Ich hab heute vergebens versucht einer int-Variable den Wert "null" zuzuweisen.

    Was soll ich bloß in die Signatur schreiben??
    Für die PC-Freaks:
    AMD 64 3500+, 1GB Corsair, 200GB Maxtor, Geforce 6600GT, 2x Iiyama E481S 19"Monitore

    Für die Auto-Freaks
    Audi A3 1,8T, 40mm Tiefer, Dunlop SP 9000 auf AEZ Enzo Cup, zur Zeit Original Bose, in absehbarer Zeit wieder Focal Doppelcompo vollaktiv @ Xetec Xi240.4, 2Stk Doom Audio D2-12 @ Audiobank D1600

    Für die Ballett-Freaks
    Ich tanze nicht Ballett

  • Zitat von Maxii

    Alleine mit
    der struktur und den problemen beim import befehl.

    Ich sehe nicht, wo Java hier groessere probleme bereitet als C# oder Perl.
    Liegen deine Schwierigkeiten nicht vielleicht nur daran, dass Du die Sprache
    einfach noch nicht so gut kennst?

    Zitat von Maxii

    die datentypen sind äußerst
    unflexibel

    Wo sind denn die Datentypen in Java so viel 'unflexibler' als in C#?
    C# unterscheidet zwischen primitiven Datentypen, Objekten, Klassen, null Objekten, usw. sehr aehnlich wie Java das tut. Es gibt auch in C# all die Ungereimtheiten und Ausnahmen bei der Typisierung, genau wie in Java.
    Reflection ist meiner Meinung nach in beiden Sprache gleich gut bzw. schlecht implementiert.

    Zitat von Maxii

    Wieso wird Java verwendet?

    Q: Wieso werden Sprachen wie Perl, PHP oder C++ verwendet?

    A: Alle diese Sprachen hatten in der Geschichte im richtigen Moment das richtige
    anzubieten, und wurden von den richtigen Leuten gepuscht.

    Der Erfolg haengt nicht nur mit der Qualitaet einer Sprache zusammen, sondern
    vor allem auch mit den Parteien, die dahinterstehen, und der Software, auf und
    mit der die Sprache laueft.

    Larry Walls Perl war seinerzeit viel besser zum Scripten geeignet als
    Bashscript, PHP Entwickler Rasmus Lerdorf hatte die Niesche fuer "schnelle,
    schmutzige webanwendungen" als erster gefuellt, und Stroustrup's C++ hat sich
    vor allem durchgesetzt, weil die Syntax aehnlich ausgeschaut hat wie C.

    VB war vor allem erfolgreich, weil es (bzw VBA) die Sprache ist, mit der MS
    Windows und MS Office gescripted werden, und aus dem gleichen Grund beruht auch
    der Erfolg von C# durch Dotnet.

    Ruby gibt es schon seit einem Jahrzehnt, aber richtig bekannt geworden ist es
    erst dieses Jahr durch Rails. Wuerden
    sich immer die intelligentesten Technologien durchsetzen, waehre Lisp heute viel
    popularer.

    Die "Java Language" ist derzeit die am weitesten verbreitete und am besten
    unterstuetzte Programmiersprache fuer die Java Platform. Praktisch alle
    Grossunternehmen, die in der IT etwas zu sagen haben (mit Ausnahme von
    Microsoft), stehen hinter dieser Platform. Im Bereich Buisinesssoftware fuer
    Grossunternehmen steht man auf 500 Seiten lange Spezifikationen, die jeden
    einzelnen Aspect eines Interfaces beschreiben. Und von denen hat Java
    haufenweise. Und bei mobilen Geraeten bleiben auch nicht sehr viele gute
    Alternativen, weil praktisch alle wichtigen Hersteller die Platform
    unterstuetzen.


    Zitat von Maxii

    Das super tolle, achso vergötterte Java ist echt nicht
    "toll"

    Es gibt kaum jemanden, die Java so beschreiben. Vielleicht die
    Trolle im Heise Online Forum, die dann auch meistens genauso allgemeine Aussagen
    ueber Betriebsysteme treffen.

    Ich kenne viele Schwaechen im Design von Java, aber das trifft auch auf C# zu,
    und auf jedenfall auf C++ und Perl.

    Besser als die anderen wird eine Sprache immer erst in einem bestimmten Kontext.
    Und bei aufwaendigen Serverapplikationen, sowie bei mobilen Geraeten, hat Java
    derzeit die Nase vorne.

  • Zitat von gelbasack

    Du hast wirklich 4 Jahre Erfahrung?

    Ja hab ich. Erster Kontakt mit Programmiersprachen war vor 6 Jahren mit C. Vor 4 Jahren das erste Projekt mit der Liebherr und Documatrix, es handelte sich um die 3D Simulation von Raupenkränen im Einsatzgebiet. Wurde in C++ mit OpenGL verwirklicht. Das ganze lief auf einem Standrechner animiert, im I-Net konnte man (damals) Screenshots erzeugen. Zur Zeit wird eine Neue Version entwickelt, die auch Online-Animationen im Netz erlauben.
    Im Anschluss waren kleinere Projekte mit diversen Firmen und Institutionen.
    Zur Zeit arbeite ich gemeinsam mit Procom-Strasser und dem ÖBH an einer Neuauflage eines Textanalysewerkzeug.

    Zitat von a9bejo


    Ich sehe nicht, wo Java hier groessere probleme bereitet als C# oder Perl.
    Liegen deine Schwierigkeiten nicht vielleicht nur daran, dass Du die Sprache
    einfach noch nicht so gut kennst?

    Das wird das Problem sein. Das was mich am meisten gewurmt hat, war primär der Classpath. Ich hab sicher einen Tag damit verschwendet, bis ich heraußen gehabt hab, wie er zu verwenden ist.
    Und Das was mich heute echt geärgert hat war, dass ich einen int nicht den Wert null zuweisen durfte und das macht die Geschichte schon sehr, sehr umständlich ;).
    Perl hatte ich in seinen Grundzügen in einem Tag erlernt.

    Zitat von a9bejo


    Q: Wieso werden Sprachen wie Perl, PHP oder C++ verwendet?

    A: Alle diese Sprachen hatten in der Geschichte im richtigen Moment das richtige
    anzubieten, und wurden von den richtigen Leuten gepuscht.

    Der Erfolg haengt nicht nur mit der Qualitaet einer Sprache zusammen, sondern
    vor allem auch mit den Parteien, die dahinterstehen, und der Software, auf und
    mit der die Sprache laueft.


    Das stimmt!

    Zitat von a9bejo


    Larry Walls Perl war seinerzeit viel besser zum Scripten geeignet als
    Bashscript, PHP Entwickler Rasmus Lerdorf hatte die Niesche fuer "schnelle,
    schmutzige webanwendungen" als erster gefuellt, und Stroustrup's C++ hat sich
    vor allem durchgesetzt, weil die Syntax aehnlich ausgeschaut hat wie C.


    Die Syntax war/ist eigentlich gleich. Sie wurde nur erweitert.

    Zitat von a9bejo


    Ich kenne viele Schwaechen im Design von Java, aber das trifft auch auf C# zu,
    und auf jedenfall auf C++ und Perl.

    Wieso "auf jeden Fall für C++ und Perl??
    Perl ist mMn ein guter Wurf aus folgendem Grund:
    Wenn man mal kapiert hat wie es läuft, ist man irre schnell im implementieren ("Anweisungswürste" - auch ein nachteil bei C# zB. "ListView.Items[0].SubItems[1].Text" oder was auch immer).
    Außerdem wurden RegEx brauchbar umgesetzt(in C# zB eine Katastrophe) und ist für eine interpretersprache eigentlich recht flott. Und man hat die Möglichkeit zu kompilieren.
    Dennoch bin ich der Ansicht, dass C++ eine der besten Sprachen ist, die es zur Zeit gibt:
    - irre schnell
    - leicht zu erlernen
    - man kann echt alles damit machen(man wird nicht so schnell bevormundet)
    - eigentlich Plattformunabhängig
    - bekannt

    Dass C# einige Probleme beinhaltet ist mir bewusst, zB dass man total Plattformabhängig ist, Webanwendungen teilweise nicht funktionieren, weil Probleme in der Umsetzung(Seitens Microsoft) existieren. Aber sie ist mMn sehr übersichtlich gestaltet und einfach zu erlernen.
    ______

    Eigentlich ist das (fast) eine Glaubensfrage oder? Bin übrigens Katholik!:)

    Gute Nacht!

    Was soll ich bloß in die Signatur schreiben??
    Für die PC-Freaks:
    AMD 64 3500+, 1GB Corsair, 200GB Maxtor, Geforce 6600GT, 2x Iiyama E481S 19"Monitore

    Für die Auto-Freaks
    Audi A3 1,8T, 40mm Tiefer, Dunlop SP 9000 auf AEZ Enzo Cup, zur Zeit Original Bose, in absehbarer Zeit wieder Focal Doppelcompo vollaktiv @ Xetec Xi240.4, 2Stk Doom Audio D2-12 @ Audiobank D1600

    Für die Ballett-Freaks
    Ich tanze nicht Ballett

  • Eine Sprache ist nur so gut, wie der Programmier damit umgehen kann.
    Das gilt für Java, C++ und viele andere.

    Der Vorteil von Java ist die Garbage Collection. Weiters ist die Objekt-Serialisazion für manche Anwendungen interessant.

    Was Java attraktiv macht, ist die mächtige Runtime-Bibliothek mit allen möglichen Dingen für die Verwendung von diversen Datenstrukturen, Arrays, Strings, Streams, Netzwerk, Bildern, Grafik, UI, XML, ...

    Ein weiterer Vorteil ist das relativ einfache Nachladen von Code zur Laufzeit.
    Viel einfacher als eine DLL zu erzeugen und sich mit diversen Macros herumzuschlagen), obwohl, zugegeben ClassLoader Probleme in Java auch nervenaufreibend sein können.

    Was ich sehr schätze, ist die allgegenwärtige RTTI (Runtime Type Identification), von der ich relativ viel Gebrauch mache.
    mit 1.5 sind noch Templates hinzugekommen, was einem relativ viel
    Typen-Casterei erspart und einem damit jeden Menge Potentielle ClassCastException-Ursachen im vornherein erspart.

    Weiters ist das Anlegen von mehrdimensionalen Arrays zur Laufzeit recht nett.

    Es ist ob des soliden Exception-Handlings relativ einfach zu debuggen.
    In Kombination mit z.b. Eclipse ermöglicht es einem, Software noch schneller zu entwickeln (ein extra Compile & Build Schritt fällt komplett weg, Code kann zur Laufzeit geändert werden (ideal für Debugging), einfache Erzeugung von JAR-Files für Deployment.


    MfG, Michael

    Informatik @ TU Wien (1998 - 2005)

  • Zitat von a9bejo

    Die "Java Language" ist derzeit die am weitesten verbreitete und am besten unterstuetzte Programmiersprache fuer die Java Platform.

    Oh mein Gott, ist das typisches Marketing-Speak :) Nona ist das die am weitesten verbreitete Sprache, is ja auch die einzige, die offiziell vom VM-Hersteller beworben wird.

    Trotz dem muss man erst mal eine Sprache ein paar Monate verwendet & 1-2 mittelgroße Projekte damit geschrieben haben, damit man wirklich etwas über sie aussagen kann. Alle Sprachen haben so Eigenheiten, auf die es sich erst einzustellen gilt.
    Beispielsweise fluchen alle Objective C-Anfänger über die ungewohnte Schreibweise mit den vielen eckigen Klammern [], aber wennst es mal gewohnt bist wunderst dich schon drüber, wieso man in anderen Sprachen 5 Klammernebenen für einen einfachen Befehl braucht, oder warum C++-Programmierer message passing immer "Funktionsaufruf" nennen.

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • Zitat von ich

    Die "Java Language" ist derzeit die am weitesten verbreitete und am besten
    unterstuetzte Programmiersprache fuer die Java Platform.

    Zitat von hal

    Oh mein Gott, ist das typisches Marketing-Speak :)

    Das waehre es ganz sicher gewesen gewesen, wenn es sich nicht auf diesen Absatz bezogen haette:

    Zitat von ich

    Der Erfolg haengt nicht nur mit der Qualitaet einer Sprache zusammen, sondern
    vor allem auch mit den Parteien, die dahinterstehen, und der Software, auf und
    mit der die Sprache laueft.

    Wenn es 1995 schon Sprachen wie Groovy/Nice/Jython/Ruby/Javascript fuer die Java VM gegeben haette, haette sich Java (die Sprache) kaum durchgesetzt. Damals hat man Java ja noch hauptsaechlich fuer kleine Applets verwendet, und dafuer waehren dynamische Sprachen ja viel besser geeignet gewesen.

    Die Java Platform war fuer Java das, was Unix fuer C war: Das Sprungbrett in die
    Popularitaet.

    Zitat von hal

    Nona ist das die am weitesten verbreitete Sprache, is ja auch die
    einzige, die offiziell vom VM-Hersteller beworben wird.

    Ganz meine Rede :)

    Zitat von Maxii

    Perl ist mMn ein guter Wurf aus folgendem Grund:
    Wenn man mal kapiert hat wie es läuft, ist man irre schnell im implementieren

    Das stimmt, aber das gilt auch fuer viele andere Sprachen, wie zum Beispiel Python, Ruby, Haskell oder Lisp. Im Gegensatz zu diesen Sprachen ist Perl aber sehr unkonsistent und wird ganz schnell schwer zu lesen. Bei einem 100 Zeilen Skript mag das noch ueberschaubar bleiben, aber solche Skripte wachsten ganz schnell, und dann skalieren andere Sprachen viel besser.

    Zitat von Maxii

    Außerdem wurden RegEx brauchbar umgesetzt(in C# zB eine Katastrophe)

    RegEx werden in Ruby ca. gleich verwendet wie in Perl (Ruby hat sich das von Perl abgeschaut). In Perl ist so ein Ausdruck allerdings wieder ein eigenes Konstrukt. In Ruby hingegen ist eine Regular Expression einfach nur die Instanz von einer Klasse, genau wie alles andere auch in dieser Sprache:

    Code
    irb(main):005:0> pattern = /[^a-zA-Z0-9]/ #same as 'Pattern.new("[^a-zA-Z0-9]") '...
    => /[^a-zA-Z0-9]/
    irb(main):007:0> pattern.class
    => Regexp
    irb(main):008:0> pattern.public_methods
    => ['source', 'send', 'object_id', 'singleton_methods', '__send__', 'equal?', 'taint', 'frozen?', 'instance_variable_get', 'kind_of?', 'to_a', 'instance_eval', 'require', 'typ
    e', 'protected_methods', 'extend', 'eql?', 'casefold?', 'instance_variable_set', '~', 'hash', 'is_a?', 'to_s', 'options', 'match', 'class', 'tainted?', 'private_methods', 'req
    uire_gem_with_options', 'untaint', 'id', 'inspect', 'kcode', '==', '===', 'clone', 'public_methods', 'respond_to?', 'display', 'freeze', '__id__', '=~', 'methods', 'require_ge
    m', 'method', 'nil?', 'dup', 'instance_variables', 'instance_of?']
    irb(main):009:0>

    Das gleiche gilt auch fuer Zahlen, Listen, module oder die datei in die du schreibst. Sogar Klassen sind nur instanzen von anderen Klassen:

    Sogar nil ( null in java/C#) ist in Ruby ein Objekt.

    Das (unter anderem) macht die Sprache um ein vielfaches einfacher und logischer. Es gibt keine 1000 Ausnahmen, die man sich merken muss. Es gibt nur Objekte mit Zustaenden, an die ich nachrichten schicken kann, um diesen Zustand zu manipulieren und abzufragen.

    Zitat von Maxii

    Dennoch bin ich der Ansicht, dass C++ eine der besten Sprachen ist, die es zur Zeit gibt:

    - irre schnell
    - leicht zu erlernen
    - man kann echt alles damit machen(man wird nicht so schnell bevormundet)
    - eigentlich Plattformunabhängig
    - bekannt



    Das Problem mit C++ ist, das es auf verschiedenen Hochzeiten tanzen will. Wenn ich eine Software schreibe, will ich mich ganz auf die Funktionalitaet und Lesbarkeit konzentrieren, das heisst die Programmiersprache soll mich moeglichst nicht vom Programmieren abhalten :). Also suche ich ein moeglichst abstraktes Tool.

    Ich bin ein Freund von der OptimizeLater technik, aber mit C++ muss ich mich mit Dingen wie Memorymanagement und Pointern befassen, obwohl ich mich eigentlich um Algorithmen und Design kuemmern will. Und wenn es dann tatsaechlich um Performance geht, bremsen die Objektorientierten Eigenschaften von C++ wiederum stark die Geschwindigkeit und blaehen den Code unnoetig auf. Dafuer ist dann C sicherlich besser geeignet.

    Maschinennaehe und Abstraktion sind zwei gegensaetzliche Ansaetze. Eine Sprache, die beides zu implementieren versucht, kann meiner Meinung nach keines davon richtig.

  • Zitat von Maxii

    Dennoch bin ich der Ansicht, dass C++ eine der besten Sprachen ist, die es zur Zeit gibt:

    Die beste Sprache kann gar nicht existieren, weil jede Sprache einen anderen Anwendungsbereich hat (zwangsläufig, nachdem eine einzelne nie alle Felder abdecken kann). Beispielsweise würde nie jemand auf die Idee kommen, eine Webapplikation in C++ zu schreiben (ich kenn ein Webprojekt, das in C geschrieben wurde, und das war ein katastrophaler Fehlschlag).

    Zitat

    - irre schnell

    (richtig programmierter) Assembler ist schneller

    Zitat

    - leicht zu erlernen

    Sicher nicht. Bis man C++ mit seinen operators, Vererbungsgeschichten und Templatekonstrukten halbwegs annehmbar beherrscht, vergehen schon ein paar Jahre.
    zB wusstest du, dass man in C++ structs einen constructor geben kann? Ich kann C++ seit mittlerweile 9 Jahren, und hab das erst dieses Jahr (im Zuge von Computergraphik 2) mitbekommen.

    Mein Hauptproblem mit C++ ist, dass jeder Befehl extreme Nebenwirkungen hat. Wenn du nicht aufpasst kanns dir passieren, dass der C++-Compiler plötzlich eine Kopie von deinem Objekt anlegt und das Original freigibt, was zu unvorhergesehenen Wirkungen führt (zB hab ich in meinem CG2-Projekt einen Wrapper um OpenGL-Texturen. Wenn der Compiler das gemacht hat, hat mein Wrapper im destructor die Textur wieder freigegeben und die Kopie hatte plötzlich eine ungültige Texturreferenz drinnen). Mit operators kann man sich da auch ganz nette Verwirrungen zusammenbauen.

    Zitat

    - man kann echt alles damit machen(man wird nicht so schnell bevormundet)

    "Alles machen" kann man mit jeder touring-kompletten Sprache. Als Beweis dafür möchte ich HOpenGL vorstellen: http://haskell.org/HOpenGL/

    Zitat

    - eigentlich Plattformunabhängig

    Naja, wenn man compilerspezifischen Syntax und sämtliche libs außer stdc++ weglässt. Damit kann man mit C++ aber nimmer viel anfangen, und außerdem gilt das für fast alle Programmiersprachen (sogar C#).

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!