.Net vs Java

Συζητήσεις για γλώσσες προγραμματισμού και θέματα σχετικά με προγραμματισμό.
janag79
byte level
byte level
Posts: 145
Joined: Fri May 21, 2004 4:36 pm
Academic status: Alumnus/a
Gender:

.Net vs Java

Post by janag79 » Fri Dec 31, 2004 3:51 pm

Ήθελα την άποψη σας αναφορικά με την "διαμάχη μεταξύ Java και .Net"

Ποια νομίζετε θα είναι η κατάληξη της διαμάχης αυτής? Ένα ρεύμα προς Java ή ένα ρεύμα προς .Net?

Πλέον και με τις δύο πλατφόρμες μπορείς να κάνεις τα πάντα

/janag
Erevodifwntas
Gbyte level
Gbyte level
Posts: 1098
Joined: Thu Apr 22, 2004 2:18 pm
Academic status: Alumnus/a
Gender:
Location: In a Long Time Ago in A Galaxy far far away
Contact:

Post by Erevodifwntas » Fri Dec 31, 2004 4:07 pm

Το θέμα είναι ότι με τη μία πλατφόρμα μπορείς να το κάνεις εύκολα, γρήγορα και πιο αποδοτικά, ενώ με την άλλη αν δεν είσαι priest 30+ level δε θα δεις χαϊρι.

Όπως και να έχει πάντως, Καλή Χρονιά να έχουμε (αυτό φαντάζομαι οτι θα είναι το τελευταίο μου post για το 2004), υγεία και ευτυχία σε όλους μας. άντε και με το νέο χρόνο ας δούμε επιτέλους και την portability να υλοποιείται σε κάποια πλατφόρμα, μιας και μέχρι τώρα απλά ακούμε λόγια.
Go To Statement Considered Harmful (Τιτλος δημοσίευσης του Edsger Dijkstra).

my personal site
User avatar
silegav
Venus Project Founder
Venus Project Founder
Posts: 2098
Joined: Tue Mar 09, 2004 4:03 pm
Academic status: Alumnus/a
Location: The Center of the World -> Piraeus

Post by silegav » Fri Dec 31, 2004 5:54 pm

δεν νομίζω να κερδίσει κάποιος από τους 2. Το .NET παρέχει την C# η οποία είναι αρκετά φιλικότερη από την C++ και πολύ πιο δυνατή από την VB. Η Java, όμως έχει ένα ρεύμα και είναι μια εταιρεία που ξεκίνησε χωρίς να είναι ο κολλοσός στο λογισμικό. Άρα έχουν μυαλό οι άνθρωποι. Παράδειγμα: Τα web services, πρώτα η τεχνολογία αυτή δόθηκε από την Java και τώρα έχει μπει και το .ΝΕΤ. Μπορεί να κάνω λάθος, αλλά έτσι νομίζω πως έχω διαβάσει.΄
Ένα άλλο + της Java είναι ότι από πίσω της δεν είναι η Microsoft, επομένως είναι πιό συμπαθητική σε open source developers, από άποψη ιδεολογίας και μόνο. Δείγμα το ότι ένα από τους περασμένους firefox δεν υποστήριζε asp παραμόνο jsp. Είναι ένα σύν κι αυτό.
User avatar
Einherjar
Venus Project Founder
Venus Project Founder
Posts: 3751
Joined: Tue Jan 27, 2004 4:42 pm
Academic status: Alumnus/a
Gender:
Location: Washington DC, USA
Contact:

Post by Einherjar » Fri Dec 31, 2004 8:17 pm

Η θέση μου είναι καθαρά υπέρ της Java. Δεν θέλω βέβαια να μηδενίσω την άλλη πλατφόρμα. είναι αρκετά αξιόλογη όμως η Java έχει κάποια χαρακτηριστικά που θεωρώ ότι είναι προς το παρόν ανυπέρβλητα και κυρίως είναι open. Μπορείς να προγραμματίσεις πάνω σε αρκετά, δυνατά και open IDEs και δεν είσαι περιορισμένος σε ένα μόνο περιβάλλον (βλέπε VS) το οποίο δεν είναι και open/free.
Θεωρώ επίσης πολύ πολύ κακό το ότι η MS έχει πάρει κάποιες γλώσσες που υπήρχαν και τις έχει παραλλάξει σε τέτοιο βαθμό που είναι σαν να μαθαίνεις καινούργια γλώσσα όταν θέλεις να τη χρησιμοποιήσεις. Το λέω αυτό επειδή το τελευταίο καιρό ασχολούμαι με visual c++ .net και δεν έχει κα-μι-α σχέση με την παραδοσιακή c++. φαντάζομαι θα έχει κάνει και τα ίδια στην J#.
Πάντα βέβαια ισχύει το περι ορέξεως κολοκυθόπιτα :-D
[Better to understand a little than to misunderstand a lot]
User avatar
mikem4600
Gbyte level
Gbyte level
Posts: 1363
Joined: Fri Mar 12, 2004 2:00 pm
Academic status: Alumnus/a
Gender:
Location: A Galaxy Far, Far Away
Contact:

Post by mikem4600 » Fri Dec 31, 2004 10:01 pm

Χμ... μερικά πράγματα χρειάζονται αποσαφήνιση:
Η C# με την VB.NET έχουν _ακριβώς_ τις ίδιες δυνατότητες (με εξαίρεση το ότι η μεν υποστηρίζει υπερφόρτωση τελεστών, ενώ η άλλη προεπιλεγμένες τιμές παραμέτρων μεθόδων - αλλά και αυτά αμβλύνονται στην 2005). Έχουν πρόσβαση πρακτικά στο ίδιο σετ κλάσεων, αυτό του .NET framework. Επίσης, η C++.ΝΕΤ υποστηρίζει πλήρως (~98% στην 2003, περισσότερο στην 2005) το ISO πρότυπο της C++, δηλ. κάθε εφαρμογή σε standard C++ δουλεύει κανονικά και στην cpp.net (εκεί άλλωστε έκανα όλες τις εργασίες για C++ της σχολής :) ). Οι δυνατότητες του compiler για .NET (π.χ. το garbage collection) είναι υπό τη μορφή επεκτάσεων μόνο, και ενεργοποιούνται μόνο με ειδικές παραμέτρους στο command line (ή συγκεκριμένα είδη project στο VS). Στο .NET δεν είναι κανείς κολλημένος απαραίτητα με το VS. Πέρα από το command line (που από ότι νομίζω το χαίρεται πολύς κόσμος εδώ :) ) υπάρχουν και άλλα, open-source IDEs. Τέλος, η J# δημιουργήθηκε για να υπάρχει ένα upgrade/migration path για όσους χρησιμοποιούσαν την J++, μία έκδοση της Java της Microsoft βασισμένη στην Java 1.1 (της Sun). Υποστηρίζει όλες τις επίσημες κλάσεις της Java 1.1 (π.χ. java.io.*), τις επεκτάσεις της Microsoft για την J++ και τις κλάσεις του .NET (π.χ. System.Windows.Forms). _Δεν_ σχεδιάστηκε για νέες εφαρμογές (άσχετα αν τελικά γίνεται αυτό), εξάλλου απαιτεί και δεύτερο runtime (πέρα από το .NET framework).
silegav wrote:Δείγμα το ότι ένα από τους περασμένους firefox δεν υποστήριζε asp παραμόνο jsp. Είναι ένα σύν κι αυτό.
Αν κατάλαβα τι εννοείς, και τα 2 είναι server-side τεχνολογίες, και δεν έχει νόημα η υποστήριξη (ή μη) από τον browser.

Αν δεν έχει γίνει ακόμα αντιληπτό :smile: προτιμώ το .NET διότι το IDE του και οι γλώσσες του (C#/VB) είναι μακράν οι πλέον εύχρηστες (οποιοδήποτε από τα NetBeans, Eclipse ή JBuilderX είναι έτη φωτός μακριά). Κάτι πραγματικά απίστευτα εξυπηρετικό (το οποίο έχουν μία ανεξήγητη τάση να το θάβουν όσοι δεν το έχουν χρησιμοποιήσει) είναι τα properties στον OO προγραμματισμό, που το έχω συναντήσει μόνο στις παραπάνω γλώσσες. Επιπλέον, η δημιουργία γραφικών διεπαφών είναι παιχνίδι (και όσο το δυνατόν πιο native=ομορφότερες, ταχύτερες για ένα framework). Χωλένει (συγκριτικά με την Java) σε θέματα protability, αλλά α) δεν με ενδιαφέρει ιδιαίτερα η εκτλέλεση των εφαρμογών μου σε άλλες πλατφόρμες β) το Mono γίνεται ωριμότερο ώρα με την ώρα και γ) ούτε η Java μου παρέχει την απόλυτη portability που περιμένω (ενδεικτικά, με έχουν ταλαιπωρήσει αφάνταστα ορισμένα εργαλεία κάποιων Symbian OS SDKs, που θέλουν σώνει και καλά Java 1.3.1_01 και _καμία_ άλλη, ενώ τα νεότερα SDKs 1.4.1_01 και _καμία_ άλλη... κι εγώ πάλι που θέλω να παίζω με την πιο cutting-edge αναγκάζομαι τελικά να εγκαθιστώ 3 JREs... - άλλο παράδειγμα είναι η Java 2 Micro Edition: κάθε εφαρμογή για J2ME πρέπει να ξαναγραφτεί για κάθε μοντέλο κινητού (αφού το καθένα προσφέρει διαφορετικό σετ κλάσεων, υποστηρίζοντας λιγότερα ή περισσότερα JSRs), ακόμα και για τα κινητά με λειτουργικό σύστημα (π.χ. Symbian OS), όπου υποτίθεται ότι οι κλάσεις είναι περίπου standard και/ή συμπεριφέρονται με τον ίδιο τρόπο)
Autocracy hates questions. Anarchy hates answers.
User avatar
Einherjar
Venus Project Founder
Venus Project Founder
Posts: 3751
Joined: Tue Jan 27, 2004 4:42 pm
Academic status: Alumnus/a
Gender:
Location: Washington DC, USA
Contact:

Post by Einherjar » Sat Jan 01, 2005 12:50 pm

mikem4600 wrote:η J# δημιουργήθηκε για να υπάρχει ένα upgrade/migration path για όσους χρησιμοποιούσαν την J++, μία έκδοση της Java της Microsoft βασισμένη στην Java 1.1 (της Sun). Υποστηρίζει όλες τις επίσημες κλάσεις της Java 1.1 (π.χ. java.io.*), τις επεκτάσεις της Microsoft για την J++ και τις κλάσεις του .NET (π.χ. System.Windows.Forms). _Δεν_ σχεδιάστηκε για νέες εφαρμογές (άσχετα αν τελικά γίνεται αυτό), εξάλλου απαιτεί και δεύτερο runtime (πέρα από το .NET framework).
πες μου ένα λόγογια να χρησιμοποιήσει κάποιος j++ ή j#. αν ήθελε να έχει την portability της java θα χρησιμοποιουσε την κανονική java. αν ήθελε να αξιοποιήσει τα εκάστοτε native χαρακτηριστικά θα χρησιμοποιούσε c++/vb. Νομίζω ότι η J?? έγινε επειδή η ms ήθελε να χώσει τη μύτη της και εκεί! Προσπάθησε να αλλοιώσει, να παραμορφώσει! και μη λες Υποστηρίζει όλες τις επίσημες κλάσεις της Java 1.1! ναι... πήρε το if then else και κάτι έγινε :evil:
mikem4600 wrote:Κάτι πραγματικά απίστευτα εξυπηρετικό (το οποίο έχουν μία ανεξήγητη τάση να το θάβουν όσοι δεν το έχουν χρησιμοποιήσει) είναι τα properties στον OO προγραμματισμό, που το έχω συναντήσει μόνο στις παραπάνω γλώσσες
Τι θες να πεις? Έτσι όπως καταλαβαίνω εγώ τα properties, είναι μεταβλητές κλάσεων στις οποίες μπορεί κάποιος να έχει άμεση πρόσβαση χωρίς την κατ' ανάγκη χρήση των get/set μεθόδων. Τουλάχιστον αυτό έχω διαπιστώσει εγώ κατά τη χρήση. Αν είναι αυτό που λέω, τότε προσωπικά το θεωρώ πολύ αρνητικό για μια γλώσσα να δίνει δυνατότητα άμεσου ελέγχου στις δομές τις χωρίς τον stadar τρόπο (get/set). Αν πάλι είναι κάτι παραπάνω, μένει να δω τι θα μου πεις.
mikem4600 wrote:κάθε εφαρμογή για J2ME πρέπει να ξαναγραφτεί για κάθε μοντέλο κινητού
νομίζω ότι αυτό είναι λίγο υπερβολικό. προσωπικά δεν είχα πρόβλημα μέχρι τώρα. Εκτός βέβαια και αν κάνεις κάτι πολύ εξεζητημένο που δεν μπορώ να φανταστώ και έτσι είχες πρόβλημα. Επίσης σχετικά με το θέμα των εκδόσεων, μου μοιάζει πιο πολύ για περιορισμό τρίτων παρά για περιορισμό της java το ποια έκδοση θα μπορείς να χρησιμοποιήσεις ;)
mikem4600 wrote: Επίσης, η C++.ΝΕΤ υποστηρίζει πλήρως το ISO πρότυπο της C++, δηλ. κάθε εφαρμογή σε standard C++ δουλεύει κανονικά και στην cpp.net
το υποστηρίζει μεν, δεν το υλοποιεί δε! γι'αυτό και τα αμέτρητα warnings όταν πας να μεταγλωττίσεις κάτι που έχει γραφτεί σύμφωνα με το asni/iso standard. Το πιο χαρακτηριστικό είναι τα exceptions που σου λέει στη μάπα... δεν τα υλοποιώ φιλαράκι! αν θες να πιάσεις τις εξαιρέσεις σου κάτσε και ξαναγράψε τις εξαιρέσεις σου!

Ξαναλέω... δεν μου αρέσουν αυτά τα σκευάσματα που έχει φτιάξει η ms! μακάρι να πέταγε όλες τις άλλες γλώσσες και να κράταγε την C# που μπορεί να θεωρηθεί ως καινούργια γλώσσα (θα παίξει ποτέ σε linux?)
[Better to understand a little than to misunderstand a lot]
User avatar
mikem4600
Gbyte level
Gbyte level
Posts: 1363
Joined: Fri Mar 12, 2004 2:00 pm
Academic status: Alumnus/a
Gender:
Location: A Galaxy Far, Far Away
Contact:

Post by mikem4600 » Sat Jan 01, 2005 8:15 pm

Μιας και η συζήτηση γίνεται ενδιαφέρουσα... :)
Einherjar wrote:
mikem4600 wrote:η J# δημιουργήθηκε για να υπάρχει ένα upgrade/migration path για όσους χρησιμοποιούσαν την J++, μία έκδοση της Java της Microsoft βασισμένη στην Java 1.1 (της Sun). Υποστηρίζει όλες τις επίσημες κλάσεις της Java 1.1 (π.χ. java.io.*), τις επεκτάσεις της Microsoft για την J++ και τις κλάσεις του .NET (π.χ. System.Windows.Forms). _Δεν_ σχεδιάστηκε για νέες εφαρμογές (άσχετα αν τελικά γίνεται αυτό), εξάλλου απαιτεί και δεύτερο runtime (πέρα από το .NET framework).
πες μου ένα λόγογια να χρησιμοποιήσει κάποιος j++ ή j#. αν ήθελε να έχει την portability της java θα χρησιμοποιουσε την κανονική java. αν ήθελε να αξιοποιήσει τα εκάστοτε native χαρακτηριστικά θα χρησιμοποιούσε c++/vb. Νομίζω ότι η J?? έγινε επειδή η ms ήθελε να χώσει τη μύτη της και εκεί! Προσπάθησε να αλλοιώσει, να παραμορφώσει!
Για την J# σου έδωσα ήδη: αν κάποιος έχει ένα project σε J++ τι να το κάνει; Να το πετάξει (ξαναγράψει από την αρχή); Για την J++, δες το από τη σκοπιά του 1998-2000: τότε η Java ήταν ό,τι πιο hot υπήρχε, και η Microsoft έτρεξε να την υποστηρίξει, και να την κάνει να συμπεριφέρεται καλύτερα (πιο natively) στα Windows - γι' αυτό και έβγαλε τις επεκτάσεις της ώστε να χρησιμοποιείται το API των Windows. Ήταν προφανές ότι το μέλλον οδηγούσε σε ένα τέτοιο managed οικοσύστημα, το οποίο θα αποτελούσε τη βάση για τα Windows. Της άρεσε πολύ το OO μοντέλο της Java με την ασφάλεια και τις δυνατότητες μιας VM (αλλά και την ευκολία ανάπτυξης σε σχέση με την C), και δεν ήταν παρά μόνο όταν τα "τσούγκρισαν" στα δικαστήρια με την Sun που η Microsoft αποφάσισε να φτιάξει κάτι ανεξάρτητο (το .NET), το οποίο συνδιάζει τα καλά της Java με τα Windows. Οπότε, έχεις δίκιο, απλώς όχι απαραίτητα στο context της evil empire... ;) δηλ. δεν είχε κάτι εναντίον της Java... Ο στόχος της (προφανώς) δεν ήταν το καλό της Java, αλλά το καλό των Windows (=90% των desktops). Το παράλογο δεν βλέπω... Δηλαδή η Sun (και η κάθε Sun) θα έκανε κάτι διαφορετικό στη θέση της; Εξάλλου πόσους developers δεν έφερε κοντά στη Java με το να τη συμπεριλαμβάνει στα Windows;
Einherjar wrote:και μη λες Υποστηρίζει όλες τις επίσημες κλάσεις της Java 1.1! ναι... πήρε το if then else και κάτι έγινε :evil:
Χμμ... το J# runtime είναι περί τα 20 MB αν θυμάμαι καλά... Αμφιβάλλω αν έχει μόνο το if then else... ;) Δες το διαφορετικά: ό,τι έτρεχε στην Java 1.1 τρέχει και στην J#/J++. Ουσιαστικά το μόνο που μπορώ να πώ ότι μου λείπει από αυτό (σε σχέση π.χ. με την Java 1.4) είναι το Swing, αλλά ποτέ δεν μου άρεσε ως interface :) Νομίζω ότι με το AWT η Sun είχε τη σωστή ιδέα.
Einherjar wrote:
mikem4600 wrote:Κάτι πραγματικά απίστευτα εξυπηρετικό (το οποίο έχουν μία ανεξήγητη τάση να το θάβουν όσοι δεν το έχουν χρησιμοποιήσει) είναι τα properties στον OO προγραμματισμό, που το έχω συναντήσει μόνο στις παραπάνω γλώσσες
Τι θες να πεις? Έτσι όπως καταλαβαίνω εγώ τα properties, είναι μεταβλητές κλάσεων στις οποίες μπορεί κάποιος να έχει άμεση πρόσβαση χωρίς την κατ' ανάγκη χρήση των get/set μεθόδων. Τουλάχιστον αυτό έχω διαπιστώσει εγώ κατά τη χρήση. Αν είναι αυτό που λέω, τότε προσωπικά το θεωρώ πολύ αρνητικό για μια γλώσσα να δίνει δυνατότητα άμεσου ελέγχου στις δομές τις χωρίς τον stadar τρόπο (get/set). Αν πάλι είναι κάτι παραπάνω, μένει να δω τι θα μου πεις.
Τα properties είναι ένα είδος συνάρτησης που περιλαμβάνει το get και set μέρος (σαν σχεδόν ανεξάρτητες συναρτήσεις). Δεν είναι μεταβλητές κλάσεων, αλλά έχουν την ίδια σύνταξη. Αυτό ακριβώς είναι που δεν αρέσει σε πολύ κόσμο (γιατί θεωρητικά για κάποιο άγνωστο σε εμένα λόγο μπορεί να μπερδευτείς και να τις περάσεις για public μεταβλητές), αλλά είναι και το πιο εξυπηρετικό σημείο. Με άλλα λόγια, χρησιμοποιώντας τη σύνταξη μίας public μεταβλητής μπορείς να εκτελείς κώδικα κατά το get/set.

Code: Select all

class MyClass
{
            private int x;
            public int X
            {
                        get
                        {
                                    return x;
                        }
                        set
                        {
                                    x = value;
                        }
            }
}
class MyClient
{
            public static void Main()
            {
                        MyClass mc = new MyClass();
                        mc.X = 10;
                        int xVal = mc.X;
                        Console.WriteLine(xVal);//Displays 10
            }
}
Στην Java πρέπει να γράφεις σώνει και καλά ξεχωριστές get/set μεθόδους, το οποίο μου φαίνεται λιγότερο κομψό. Περισσότερα
Einherjar wrote:
mikem4600 wrote:κάθε εφαρμογή για J2ME πρέπει να ξαναγραφτεί για κάθε μοντέλο κινητού
νομίζω ότι αυτό είναι λίγο υπερβολικό. προσωπικά δεν είχα πρόβλημα μέχρι τώρα. Εκτός βέβαια και αν κάνεις κάτι πολύ εξεζητημένο που δεν μπορώ να φανταστώ και έτσι είχες πρόβλημα. Επίσης σχετικά με το θέμα των εκδόσεων, μου μοιάζει πιο πολύ για περιορισμό τρίτων παρά για περιορισμό της java το ποια έκδοση θα μπορείς να χρησιμοποιήσεις ;)
Έχεις παρατηρήσει π.χ. κανένα παιχνίδι σε J2ME να κάνει για όλα τα κινητά; Το πιο απλό είναι διάκριση μεταξύ smartphones και μη... Κατά δεύτερον, υπάρχουν άλλες εκδόσεις π.χ. για Nokia, Siemens, Motorola κτλ. Άλλωστε γιατί κάθε εταιρία βγάζει διαφορετικό SDK, και μάλιστα ακόμα και για διαφορετικά μοντέλα; Και για το θέμα των εκδόσεων, αν ήταν π.χ. γραμμένα σε C/C++ για Windows 95 (ας πούμε) και Windows 98 με αυτή τη λογική θα έπρεπε να πετάξω τα XP; Νομίζω ότι η γλώσσα η ίδια θα πρέπει να είναι transparent σε αυτό το θέμα. Δηλ. όταν λέμε portability, να μην έχει καμία απολύτως σημασία η VM (ειδικά αν είναι νεότερη έκδοση).
Einherjar wrote:
mikem4600 wrote: Επίσης, η C++.ΝΕΤ υποστηρίζει πλήρως το ISO πρότυπο της C++, δηλ. κάθε εφαρμογή σε standard C++ δουλεύει κανονικά και στην cpp.net
το υποστηρίζει μεν, δεν το υλοποιεί δε! γι'αυτό και τα αμέτρητα warnings όταν πας να μεταγλωττίσεις κάτι που έχει γραφτεί σύμφωνα με το asni/iso standard. Το πιο χαρακτηριστικό είναι τα exceptions που σου λέει στη μάπα... δεν τα υλοποιώ φιλαράκι! αν θες να πιάσεις τις εξαιρέσεις σου κάτσε και ξαναγράψε τις εξαιρέσεις σου!
:shock: Όσες φορές την έχω χρησιμοποιήσει, δεν έχω παρατηρήσει κάτι τέτοιο... Μήπως ανακατεύεις τίποτα STL με .NET;
Einherjar wrote:Ξαναλέω... δεν μου αρέσουν αυτά τα σκευάσματα που έχει φτιάξει η ms! μακάρι να πέταγε όλες τις άλλες γλώσσες και να κράταγε την C# που μπορεί να θεωρηθεί ως καινούργια γλώσσα (θα παίξει ποτέ σε linux?)
Παίζει ήδη. http://www.mono-project.com/
Last edited by mikem4600 on Sat Jan 01, 2005 9:13 pm, edited 1 time in total.
Autocracy hates questions. Anarchy hates answers.
User avatar
PaP
Venus Project Founder
Venus Project Founder
Posts: 1077
Joined: Wed Apr 21, 2004 12:06 am
Academic status: Alumnus/a
Location: San Francisco
Contact:

Post by PaP » Sat Jan 01, 2005 9:13 pm

Ενα συν της Java είναι η ακαδημαικότητας της αφού μπορείτε να δείτε σε πολλά μεταπτυχιακά μαθήματα του τύπου Advanced Java Programming. Επίσης το .ΝΕΤ ελέγχεται αποκλειστικά από την Μ$ ενώ η φορητότητα είναι μύθος και το Mono όσο καλό και να είναι πάντα θα είναι πίσω από το .ΝΕΤ. Επίσης καλύτερα να έχουμε πολλές Java εφαρμογές έτσι ώστε να διαλέγουμε πιο ελεύθερα την πλατφόρμα που θέλουμε αφού JVM υπάρχει για πολλά λειτουργικά και αρχιτεκτονικές. Και επίτλους να γίνει GPL !!

Επισης η Μ$ πάλι τπτ καινούριο δεν προσέφερε. (χονδρικά) Ερχεται μετά από χρόνια να εφεύρει virtual machines και να δώσει τα άπειρα λεφτά για να το διαφημίσει. Κλασσική Μ$ λεφτά κυρίως στο μαρκετινγκ. Δε βλέπω το λόγο γιατί όλες οι γλώσσες να γίνουν ported στο .ΝΕΤ. Κάθε μία έχει την ιδιαιτερότητες της και γιατί να τρέχουν όλα σε πλατφόρμες και όχι natively. Τεσπα

Οσο για τη JVM δεν υπάρχει μόνο η Java αλλά και άλλα κυρίως script : Jython (python for jvm), Ruby etc etc
Erevodifwntas
Gbyte level
Gbyte level
Posts: 1098
Joined: Thu Apr 22, 2004 2:18 pm
Academic status: Alumnus/a
Gender:
Location: In a Long Time Ago in A Galaxy far far away
Contact:

Post by Erevodifwntas » Sat Jan 01, 2005 10:06 pm

Όπως τόσο αναλυτικά περιέγραψε ο MikeM, απλά η ύπαρξη μιας JVM σε καμία περίπτωση δεν εξασφαλίζει ότι το πρόγραμμα σε Java θα τρέξει (ακόμα και στον ίδιο υπολογιστή, ανάλογα με την έκδοση της VM που χρησιμοποιείς το αποτέλεσμα είναι διαφορετικό -και το περίεργο είναι η εφαρμογή να τρέχει σε 1.1, αλλά όχι στην 1.3, αλλά στην 1.4 να τρέχει και πάλι και δε συμμαζεύεται. η Portability είναι ωραία ιδέα, αλλά προς το παρόν κανείς δε θα έπρεπε να ισχυρίζεται ότι την παρέχει, αφού απέχουν και οι 2 προσεγγίσεις πάρα πολύ από αυτό που διαφημίζουν).

Τώρα για την ακαδημαικότητα της Java..... ο μόνος λόγος που τη χρησιμοποιούν είναι "για να τρέχει παντού" (κάνω την πτυχιακή μου σε Java και κλαίω ο άνθρωπος -ειδικά από όταν είδα ότι τα εργαλεία που χρησιμοποιώ, λειτουργούν και με C#). φυσικά όταν θα πάω να την τρέξω σε Linux θα πρέπει να κάνω άλλο τόσο debugging (το ίδιο θα συνέβαινε αν έκανα το developing σε Linux και πήγαινα να το μεταφέρω σε Windows. είπαμε θέλω να τρέχει παντού....).

Πάντως παιχνίδια σε Java τρέχουν στο 3650, αλλά όχι στο 6600 (αν και έχουν και τα δύο Series 60). αντίθετα προγράμματα γραμμένα σε C++ για Symbian OS (ένας θεός να την κάνει C++) τρέχουν και στα 2 κινητά...
Go To Statement Considered Harmful (Τιτλος δημοσίευσης του Edsger Dijkstra).

my personal site
User avatar
Einherjar
Venus Project Founder
Venus Project Founder
Posts: 3751
Joined: Tue Jan 27, 2004 4:42 pm
Academic status: Alumnus/a
Gender:
Location: Washington DC, USA
Contact:

Post by Einherjar » Sun Jan 02, 2005 1:07 pm

mikem4600 wrote:τότε η Java ήταν ό,τι πιο hot υπήρχε, και η Microsoft έτρεξε να την υποστηρίξει, και να την κάνει να συμπεριφέρεται καλύτερα (πιο natively) στα Windows - γι' αυτό και έβγαλε τις επεκτάσεις της ώστε να χρησιμοποιείται το API των Windows
προσωπικά αυτό μου κολλάει στο context της evil empire :roll: Επειδή ήταν ακριβώς ότι πιο hot, δεν θα μπορούσε να αφήσει όλη τη δόξα στη Sun. Δεν ξέρω αν έχεις ακούσει... το χέρι που δεν μπορείς να δαγκώσεις, φίλισέ το. Αυτό ακριβώς έκανε. Δεν μπορούσε να σταματήσει τη δυναμική αυτής της γλώσσα/πλατφόρμας και γι'αυτό προσάθησε να την αλλοιώσει
mikem4600 wrote:Στην Java πρέπει να γράφεις σώνει και καλά ξεχωριστές get/set μεθόδους, το οποίο μου φαίνεται λιγότερο κομψό
Μα αυτή είναι η ιδέα του αντικειμενοστραφούς προγραμματισμού. Σίγουρα είναι πιο εύκολη η χρήση των properties. Και ο μπακάλης της γειτονιάς μου ξέρει τον μπακάλικο τρόπο για να κάνει τις πράξεις εύκολα και γρήγορα. Πρέπει όμως να κοιτάμε και την ποιότητα! Και κατά τη γνώμη μου είναι πολύ πιο ποιοτικός ο κώδικας που κάνει χρήση get/set μεθόδων.
mikem4600 wrote:Όσες φορές την έχω χρησιμοποιήσει, δεν έχω παρατηρήσει κάτι τέτοιο... Μήπως ανακατεύεις τίποτα STL με .NET;
ρίξε μια ματιά στο warning code 4290. όχι δεν έχω χρησιμοποιήσει stl.

Σχετικά με το θέμα των τηλεφώνων δεν έχω ασχοληθεί τόσο πολύ και παίρνω τα λόγια σου ως δεδομένο, αν και μου φαίνεται περίεργο το όλο θέμα. Είμαι σίγουρος πάντως ότι θα ομαλοποηθεί η κατάσταση.
Erevodifwntas wrote:φυσικά όταν θα πάω να την τρέξω σε Linux θα πρέπει να κάνω άλλο τόσο debugging (το ίδιο θα συνέβαινε αν έκανα το developing σε Linux και πήγαινα να το μεταφέρω σε Windows. είπαμε θέλω να τρέχει παντού....).
αυτό θα χρειάζεται μόνο αν κάνεις κλήσεις συστήματος ή χρησιμοποιείς βιβλιοθήκες που κάνουν κήσεις συστήματος
[Better to understand a little than to misunderstand a lot]
User avatar
HdkiLLeR
Venus Project Founder
Venus Project Founder
Posts: 4356
Joined: Tue Jan 27, 2004 4:41 pm
Academic status: Alumnus/a
Gender:
Location: New York, NY
Contact:

Post by HdkiLLeR » Sun Jan 02, 2005 1:24 pm

Εμένα προσωπικά αν και δεν μου αρέσει καθόλου η Java μιας και η C/C++ θα είναι πάντα στην κορυφή απο πολλές πλευρές αλλά αυτό είναι άποψη μου και δεν έχει σχέση με το .ΝΕΤ. Τον τελαυταίο καιρό έχω αρχίσει και παίζω με .NEΤ και το έχω βρεί ιδιαίτερα ενδιαφέρον αλλά και πάλι lame είναι όπως και η Java που στα δίνει όλα σχεδόν υλοποιημένα και full optimized η μία για το λειτουργικό(ο Θεός να το κάνει δηλαδή) και η άλλη για την VM της. Το .NET έχει πάντος σαν αρχιτεκτονική πολλά παραπάνω χαρακτηριστικά και δυνατότητες τα οποία είναι αρκετά ενδιαφέροντα(τουλάχιστον απο όσο έχω διαβάσει γιατί δεν έχει τύχει να τα χρησιμοποιήσω όλα) απο την stack machine της java :) :) :).

Μια παρατηριση όσον αφορά την J++... Mike έλα ρε μεταξύ μας ρε σύ, είδε πως είχε ψωμί η java, lamάδες όπως ήτανε τα παιδιά πήρανε τον πυρήνα της γλώσσας και του αλάξανε τα φώτα. Αυτά περί καλύτερης υποστήριξης κλπ είναι για το marketing..Ας μελετάγε full native compiler με 7-8 επίπεδα optmimization και τότε το ξανασυζητάμε, αλλά που να βάλει μυαλό ο κάκγουρας...δεν γίνεται :). Τέλος το set/get το γουστάρω και μαζί σου μιας και είμαι είναι C friend αλλά αυτό δεν είναι OO.Η Java είναι αμιγώς Object Oriented(σύμφωνα με αυτά που λένε πάντα) και αυτή η δυνατότητα χαλάει τις αρχές της αντικειμενοστρέφειας.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------

"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
User avatar
mikem4600
Gbyte level
Gbyte level
Posts: 1363
Joined: Fri Mar 12, 2004 2:00 pm
Academic status: Alumnus/a
Gender:
Location: A Galaxy Far, Far Away
Contact:

Post by mikem4600 » Sun Jan 02, 2005 2:57 pm

Einherjar wrote:
mikem4600 wrote:τότε η Java ήταν ό,τι πιο hot υπήρχε, και η Microsoft έτρεξε να την υποστηρίξει, και να την κάνει να συμπεριφέρεται καλύτερα (πιο natively) στα Windows - γι' αυτό και έβγαλε τις επεκτάσεις της ώστε να χρησιμοποιείται το API των Windows
προσωπικά αυτό μου κολλάει στο context της evil empire :roll: Επειδή ήταν ακριβώς ότι πιο hot, δεν θα μπορούσε να αφήσει όλη τη δόξα στη Sun. Δεν ξέρω αν έχεις ακούσει... το χέρι που δεν μπορείς να δαγκώσεις, φίλισέ το. Αυτό ακριβώς έκανε. Δεν μπορούσε να σταματήσει τη δυναμική αυτής της γλώσσα/πλατφόρμας και γι'αυτό προσάθησε να την αλλοιώσει
HdkiLLeR wrote:Mike έλα ρε μεταξύ μας ρε σύ, είδε πως είχε ψωμί η java, lamάδες όπως ήτανε τα παιδιά πήρανε τον πυρήνα της γλώσσας και του αλάξανε τα φώτα. Αυτά περί καλύτερης υποστήριξης κλπ είναι για το marketing..Ας μελετάγε full native compiler με 7-8 επίπεδα optmimization και τότε το ξανασυζητάμε, αλλά που να βάλει μυαλό ο κάκγουρας...δεν γίνεται
OK... :roll: Εντούτοις αν η Java ήταν απρόσιτη από τα Windows ενδεχομένως να κατέληγε σε κάτι που θα το χρησιμοποιούσαν μόνο για "σοβαρά" πράγματα, τα οποία όταν τα ακούνε όλοι γυρίζουν και κοιτάνε περίεργα (βλ. Ada, Fortran... :P ). Επίσης, δεν νομίζω κοτζαμ MS να μην μπορούσε να δαγκώσει το χέρι της Sun - απλώς της πήρε λίγο παραπάνω χρόνο (μάλλον γιατι το .NET ήθελε να το get it right). Δεν λέω ότι η Microsoft αγαπούσε τη Java και ήθελε το καλό της Sun (κάθε άλλο...), απλώς η αλλοίωση και τροποποίηση πρέπει να ελέγχεται μέσα σε κάποιο συγκεκριμένο πλαίσιο... Π.χ. το ίδιο κάνει με τα web standards (αφήνοντας τον IE του 2005 όπως ήταν το 2001). Προφανώς δεν είναι καλό για τα web standards, αλλά δεν τα μισεί... Απλώς δεν έχει λόγο να τα υποστηρίξει, αν κατέχει τα 9/10 της αγοράς.
Einherjar wrote:
mikem4600 wrote:Στην Java πρέπει να γράφεις σώνει και καλά ξεχωριστές get/set μεθόδους, το οποίο μου φαίνεται λιγότερο κομψό
Μα αυτή είναι η ιδέα του αντικειμενοστραφούς προγραμματισμού. Σίγουρα είναι πιο εύκολη η χρήση των properties. Και ο μπακάλης της γειτονιάς μου ξέρει τον μπακάλικο τρόπο για να κάνει τις πράξεις εύκολα και γρήγορα. Πρέπει όμως να κοιτάμε και την ποιότητα! Και κατά τη γνώμη μου είναι πολύ πιο ποιοτικός ο κώδικας που κάνει χρήση get/set μεθόδων.
ΟΚ... Όπως είπες κι εσύ, περί ορέξεως... :) Άραγε έχεις την ίδια γνώμη και για την πολλαπλή επιστροφή τιμών μεθόδων (που με έχει σώσει παραπάνω από μία φορές - και ίσως φτάσει κάποια στιγμή στην Java), ή το foreach, τα metadata, τα enums, τα varargs και το autoboxing (τα οποία ξεκίνησαν από τη C# και μετά πολλού κόπου και βασάνων κατέληξαν και στην Java 1.5);
Einherjar wrote:
mikem4600 wrote:Όσες φορές την έχω χρησιμοποιήσει, δεν έχω παρατηρήσει κάτι τέτοιο... Μήπως ανακατεύεις τίποτα STL με .NET;
ρίξε μια ματιά στο warning code 4290. όχι δεν έχω χρησιμοποιήσει stl.
Το εν λόγω warning αναφέρει ότι αν γράφεις στο declaration της μεθόδου ποιες exceptions πετάει (π.χ. το κλασικό ...void main() throws IOException), αυτό αγνοείται (δηλ. ο compiler δεν κάνει ελέγχους για να δει αν τα throw declarations μεταδίδονται από μέθοδο σε μέθοδο σωστά). Αυτό μόνο ο compiler της Java το κάνει. Δεν έχω δει κανέναν compiler για C++ (από όσους έχω δοκιμάσει) να το υλοποιεί. Κατά τα άλλα, τα exceptions λειτουργούν κανονικότατα. Απλώς σκέφτεσαι τη C++ με όρους Java. :)
Autocracy hates questions. Anarchy hates answers.
User avatar
HdkiLLeR
Venus Project Founder
Venus Project Founder
Posts: 4356
Joined: Tue Jan 27, 2004 4:41 pm
Academic status: Alumnus/a
Gender:
Location: New York, NY
Contact:

Post by HdkiLLeR » Sun Jan 02, 2005 5:45 pm

mikem4600 wrote:Το εν λόγω warning αναφέρει ότι αν γράφεις στο declaration της μεθόδου ποιες exceptions πετάει (π.χ. το κλασικό ...void main() throws IOException), αυτό αγνοείται (δηλ. ο compiler δεν κάνει ελέγχους για να δει αν τα throw declarations μεταδίδονται από μέθοδο σε μέθοδο σωστά). Αυτό μόνο ο compiler της Java το κάνει. Δεν έχω δει κανέναν compiler για C++ (από όσους έχω δοκιμάσει) να το υλοποιεί.
Try GNU :)...It's your friend!!
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------

"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
User avatar
Einherjar
Venus Project Founder
Venus Project Founder
Posts: 3751
Joined: Tue Jan 27, 2004 4:42 pm
Academic status: Alumnus/a
Gender:
Location: Washington DC, USA
Contact:

Post by Einherjar » Sun Jan 02, 2005 8:30 pm

mikem4600 wrote:Απλώς δεν έχει λόγο να τα υποστηρίξει, αν κατέχει τα 9/10 της αγοράς.
θα ήσουν καλός πλανητάρχης :lol:
mikem4600 wrote:το foreach, τα metadata, τα enums, τα varargs και το autoboxing (τα οποία ξεκίνησαν από τη C# και μετά πολλού κόπου και βασάνων κατέληξαν και στην Java 1.5);
Δεν βλέπω κάτι το αρνητικό σε αυτά τα στοιχεία.
Επίσης θερώ πολύ θετικό όταν μια γλώσσα εξελίσεται και εισάγει θετικά στοιχεία από άλλες γλώσσες. Θα ήταν βέβαια κατακριταίο από μένα αν η sun έβγαζε μια γλώσσα C#++ .STH που θα περιείχε κάποια στοιχεία της C# και κάποια άλλα της java και θα έλεγε ότι είναι εξέλιξη της c# ;)

Προφανώς δεν είναι μόνο θέμα τεχνικών χαρακτηριστικών η επιλογή πλατφόρμας ανάπτυξης λογισμικού. Σημαντικό ρόλο παίζει και η ιδεολογία/αντίληψη των πραγμάτων!
[Better to understand a little than to misunderstand a lot]
User avatar
mikem4600
Gbyte level
Gbyte level
Posts: 1363
Joined: Fri Mar 12, 2004 2:00 pm
Academic status: Alumnus/a
Gender:
Location: A Galaxy Far, Far Away
Contact:

Post by mikem4600 » Mon Jan 03, 2005 1:25 pm

HdkiLLeR wrote:Try GNU :)...It's your friend!!
Το περίμενα ότι ο g++ θα έκανε τέτοια περίεργα πράγματα!... :-D Απλώς όσες φορές πάω να παίξω με το KDevelop μου βγάζει config errors στα 3.000 makefiles που φτιάχνει και βαριέμαι να βρω ποιο φταίει, ακόμα κι όταν έχω εγκαταστήσει όλα τα μύρια των utilities που θέλει. Η επόμενη λύση είναι η Kateούλα (που χρησιμοποίησα για τα sockets), αλλά χωρίς σοβαρό IDE τι να το κάνεις... Άσε που ο 2.95 μου έσπασε τα νεύρα επειδή ήθελε πρώτα όλα τα declarations και μετά όλα τα statements... :roll: Τουλάχιστον ο 3.3 είναι πιο αξιοπρεπής.
Einherjar wrote:
mikem4600 wrote:Απλώς δεν έχει λόγο να τα υποστηρίξει, αν κατέχει τα 9/10 της αγοράς.
θα ήσουν καλός πλανητάρχης :lol:
Ξέρετε λοιπόν ποιον θα ψηφήσετε το 2009, ε; :) Πάω να τυπώσω αφήσες (θα γεμίσω όλα τα εργαστήρια :-D ).
Einherjar wrote:Προφανώς δεν είναι μόνο θέμα τεχνικών χαρακτηριστικών η επιλογή πλατφόρμας ανάπτυξης λογισμικού. Σημαντικό ρόλο παίζει και η ιδεολογία/αντίληψη των πραγμάτων!
ΟΚ... Τις θεωρές του Stallman δεν ξέρω αν ακόμα κι ο ίδιος τις πιστεύει... Δηλ. 20 χρόνια με τον emacs κι ούτε να θέλει να δει το Notepad... δεν ξέρω... :cyclopsani: :smt001
Autocracy hates questions. Anarchy hates answers.
User avatar
HdkiLLeR
Venus Project Founder
Venus Project Founder
Posts: 4356
Joined: Tue Jan 27, 2004 4:41 pm
Academic status: Alumnus/a
Gender:
Location: New York, NY
Contact:

Post by HdkiLLeR » Mon Jan 03, 2005 8:03 pm

mikem4600 wrote: Το περίμενα ότι ο g++ θα έκανε τέτοια περίεργα πράγματα!... :-D Απλώς όσες φορές πάω να παίξω με το KDevelop μου βγάζει config errors στα 3.000 makefiles που φτιάχνει και βαριέμαι να βρω ποιο φταίει, ακόμα κι όταν έχω εγκαταστήσει όλα τα μύρια των utilities που θέλει. Η επόμενη λύση είναι η Kateούλα (που χρησιμοποίησα για τα sockets), αλλά χωρίς σοβαρό IDE τι να το κάνεις... Άσε που ο 2.95 μου έσπασε τα νεύρα επειδή ήθελε πρώτα όλα τα declarations και μετά όλα τα statements... :roll: Τουλάχιστον ο 3.3 είναι πιο αξιοπρεπής.
3.3 && 3.4. 2.95 μόνο για παλιούς kernels αλλά δεν νομίζω να παίζεις με 2.2 εκτός και εάν γουστάρεις τπτ embedded συστήματα ή αλλές arch.
mikem4600 wrote: ΟΚ... Τις θεωρές του Stallman δεν ξέρω αν ακόμα κι ο ίδιος τις πιστεύει... Δηλ. 20 χρόνια με τον emacs κι ούτε να θέλει να δει το Notepad... δεν ξέρω... :cyclopsani: :smt001
Υπάρχει και το nano είναι και text οπότε δεν είσαι περιορισμένος σε γραφικά και είναι και αυτό GNU part! :)...

ΥΓ: Emacs suckz μεταξύ μας πάντως, δούλεψε με vim καλύτερα που έχει και syntax highlighting :) :) :)
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------

"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
User avatar
mikem4600
Gbyte level
Gbyte level
Posts: 1363
Joined: Fri Mar 12, 2004 2:00 pm
Academic status: Alumnus/a
Gender:
Location: A Galaxy Far, Far Away
Contact:

Post by mikem4600 » Wed Jan 05, 2005 9:28 pm

HdkiLLeR wrote:Emacs suckz μεταξύ μας πάντως, δούλεψε με vim καλύτερα που έχει και syntax highlighting :) :) :)
Το GVim στα images για Windows του cslab πως νομίζεις ότι βρέθηκε; ;)

Anyway, πολύ ξέφυγε το θέμα...
Autocracy hates questions. Anarchy hates answers.
User avatar
HdkiLLeR
Venus Project Founder
Venus Project Founder
Posts: 4356
Joined: Tue Jan 27, 2004 4:41 pm
Academic status: Alumnus/a
Gender:
Location: New York, NY
Contact:

Post by HdkiLLeR » Wed Jan 05, 2005 11:15 pm

mikem4600 wrote:
HdkiLLeR wrote:Emacs suckz μεταξύ μας πάντως, δούλεψε με vim καλύτερα που έχει και syntax highlighting :) :) :)
Το GVim στα images για Windows του cslab πως νομίζεις ότι βρέθηκε; ;)

Anyway, πολύ ξέφυγε το θέμα...
Πόπο ανεβαίνεις επίπεδα με αυτά που μου λές :)

mikem rulesZZzzz :) :) :)
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------

"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
User avatar
AnINffected
Gbyte level
Gbyte level
Posts: 1935
Joined: Fri Jul 30, 2004 7:12 am
Location: There and Back Again

Post by AnINffected » Thu Jan 06, 2005 2:28 am

Έτσι όπως σας βλέπω να το συζητάτε, συνειδητοποιώ πως μάλλον προτιμώ τη C++!Έχω αιώνες να την πιάσω όμως.Οι συνθήκες...
Operator overloading το πάω με χίλια...
Η Java πιστεύω οτι έχει αρκετα περιττά στοιχεία ώς api(sorry Einherjar :)), ειδικά στο Ι/Ο κομμάτι αλλά ώς Open Source είναι καταπληκτική.Σύχρονη(δηλ.της μόδας), από μεγάλη εταιρία ΚΑΙ τζάμπα.Εξάλλου μάλλον είναι η #1 επιλογή για όποιον προτιμά την αντικειμενοστρέφεια (λέξη και αυτή!), διοτι δημιουργήθηκε εξ'αρχής με αυτό το σκοπό.
Να σας πώ την αλήθεια με .NET θέλω να ασχοληθώ πολύ αλλά δεν έχω προλάβει.Απ'ότι έχω δει η C# είναι πολύ ενδιαφέρουσα.
Οπαδοί της C++ δείτε το link προς τον Stroustrup να πωρωθείτε!
http://www.research.att.com/~bs/homepage.html
Einherjar wrote:Προφανώς δεν είναι μόνο θέμα τεχνικών χαρακτηριστικών η επιλογή πλατφόρμας ανάπτυξης λογισμικού. Σημαντικό ρόλο παίζει και η ιδεολογία/αντίληψη των πραγμάτων!
Πού ορά ο λογισμός σου Νορβηγέ (Τί εννοείς δηλ :smile:)
The Analytical Engine has no pretensions to originate anything. It can do whatever we know how to order it to perform (...)
Ada Lovelace


Θέλω και εγώ να παίξω D&D λέμε!!! :-( :-(
User avatar
tsilochr
Wow! Terabyte level
Wow! Terabyte level
Posts: 3246
Joined: Tue Mar 16, 2004 2:47 pm
Academic status: PhD
Gender:
Location: mm.aueb.gr
Contact:

Post by tsilochr » Thu Jan 06, 2005 3:03 pm

Πολύ ήθελα να πάρω μέρος σε αυτήν την συζήτηση αλλά δεν είχα να προσθέσω κάτι περισσότερο από ό,τι είχε ειπωθεί. Αντ' αυτού άνοιξα το link προς τη σελίδα του Stroustrup που έδωσε ο AnINffected και πέρασα δυο ωρίτσες διαβάζοντας. Στο προσωπικό του faq σημείωσα μερικές πολύ ενδιαφέρουσες απόψεις του που ταιριάζουν με το topic. Τις παραθέτω
Stroustrup wrote: Is Java the language you would have designed if you didn't have to be compatible with C?
No. Java isn't even close. If people insist on comparing C++ and Java - as they seem to do - I suggest they read The Design and Evolution of C++ (D&E) to see why C++ is the way it is, and consider both languages in the light of the design criteria I set for C++. Those criteria will obviously differ from the criteria of Sun's Java team. Despite the syntactic similarities, C++ and Java are very different languages. In many ways, Java seems closer to Smalltalk than to C++.

Much of the relative simplicity of Java is - like for most new languages - partly an illusion and partly a function of its incompleteness. As time passes, Java will grow significantly in size and complexity. It will double or triple in size and grow implementation-dependent extensions or libraries. That is the way every commercially successful language has developed. Just look at any language you consider successful on a large scale. I know of no exceptions, and there are good reasons for this phenomenon. [I wrote this before 2000; now see a preview of Java 1.5.]

Java isn't platform independent; it is a platform. Like Windows, it is a proprietary(μετ. ιδιωτική) commercial platform. That is, you can write programs for Windows/Intel or Java/JVM, and in each case you are writing code for a platform owned by a single corporation and tweaked for the commercial benefit of that corporation. It has been pointed out that you can write programs in any language for the JVM and associated operating systems facilities. However, the JVM, etc., are heavily biased in favor of Java. It is nowhere near being a general reasonably language-neutral VM/OS.(χμμμ, πόσο GNU είναι τελικά?)

Personally, I'll stick to reasonably portable C++ for most of the kind of work I think most about and use a variety of languages for the rest.

What do you think of C#?
I have no comments on C# as a language. It will take a lot to persuade me that the world needs yet another proprietary language (YAPL). It will be especially hard to persuade me that it needs a language that is closely integrated with a specific proprietary operating system.

If you want to write exclusively for the .Net platform, C# isn't the worst alternative, but remember that C++ is a strongly supported - though less strongly hyped - alternative on that platform.
User avatar
mikem4600
Gbyte level
Gbyte level
Posts: 1363
Joined: Fri Mar 12, 2004 2:00 pm
Academic status: Alumnus/a
Gender:
Location: A Galaxy Far, Far Away
Contact:

Post by mikem4600 » Thu Jan 06, 2005 7:54 pm

Μερικές ακόμα επισημάνσεις... Η Java _δεν_ είναι open-source και μάλλον δεν πρόκειται να γίνει ποτέ (ή, για να μην ακούγεται τόσο απόλυτο, θα γίνει open-source όταν γίνει και το Solaris open-source :-D ). Μία από τις γλώσσες του .NET που υποστηρίζει operator overloading είναι η C#. Τα SDK για .NET είναι τόσο τζάμπα όσο το JDK της Java (αν δουλεύει κάποιος στο command line). Επίσης, υπάρχουν "χαμηλής ποιότητας" δωρεάν IDEs και για τα δύο. Και τα δύο φτιάχτηκαν "με βάση την αντικειμενοστρέφεια". Και τα δύο έχουν από μία μεγάλη εταιρία από πίσω, η οποία καθορίζει τη μοίρα τους (η Java είναι ελάχιστα πιο open, υπό την έννοια ότι έχει το Java Community Process, μία γραφειοκρατική οντότητα που παρουσιάζει ιδέες για υλοποίηση και προτυποποίηση στην Java, αλλά τον τελευταίο λόγο τον έχει η Sun).
Autocracy hates questions. Anarchy hates answers.
User avatar
Einherjar
Venus Project Founder
Venus Project Founder
Posts: 3751
Joined: Tue Jan 27, 2004 4:42 pm
Academic status: Alumnus/a
Gender:
Location: Washington DC, USA
Contact:

Post by Einherjar » Fri Jan 07, 2005 1:11 am

Πέρα από όλα αυτά που λέτε, μη ξεχνάμε ότι δεν είναι διαμάχη μεταξύ εταιριών, αλλά μεταξύ platforms. Και μη ξεχνάμε ότι δεν είναι καλό μόνο αυτό που είναι open αλλά και αυτό που σέβεται τα standars.
Τώρα για το θέμα της επιλογής, αν επιλέξεις το ένα ή το άλλο να ασχοληθείς περισσότερο, γιατί και με τα 2 πρέπει να ασχοληθείς κάποια στιγμή, δεν θα σε κατηγορήσει κανείς. Είναι απόλυτα προσωπικό θέμα το τι προτιμά ο καθένας. πρέπει όμως να έχει ο καθένας μια ελάχιστη γνώση και των 2.
Αν περιμένει κανείς μέσα από αυτή τη συζήτηση να καταλήξουμε στην καλύτερη πλατφόρμα, φοβάμαι ότι θα περιμένει για +inf. και καταλήγω όπως άρχισα...
περι ορέξεως κολοκυθόπιτα
[Better to understand a little than to misunderstand a lot]
Post Reply

Return to “Προγραμματισμός”