Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

[off topic]

 

Ναι ισχύει. Αλλά τη java να μην την ξανα-βρίσεις. Την Java! :P

 

Btw Πλέον έχουν ενταχθεί και στη java τέτοια κόλπα (όχι το var αλλά άλλα. Π.χ. το diamond). 

 

Και για να μην αδικούμε τη java, είναι πολύ πιο εύκολο να βάζεις νέα features με το τσουβάλι όταν έχεις fragmentation (δεν ξέρω αν είναι ο σωστός όρος αυτός) στα runtime σου παρά όταν παρέχεις συνεχώς backward compatibility.  

 

Δηλαδή "εκτελέσιμο" CLR 2 θέλει CLR 2 για να τρέχει.

Με CLR 4 δε μπορείς να το τρέξεις αν θυμάμαι καλά.

 

Ενώ αντίθετα στη java μπορείς με το τελευταίο jre να τρέξεις όποιο "εκτελέσιμο" και αντίστοιχα με το τελευταίο jdk να παράξεις byte code για όποιο jre προς τα πίσω.

 

 Ανεφερες Java και μεπιασαν οι αλλεργιες μου και κριση πανικου μαζι. Κακο πραγμα. 

Δημοσ.

moukoublen, κατ αρχήν τα περισσότερα features δε χρειάζονται runtime support, είναι το γνωστό syntactic sugar το οποίο μπορείς να έχεις απλά βάζοντας πιο καινούριο compiler. Για παράδειγμα όλα τα νέα features της C# 3 (var, linq, initializers, extension methods, anon types και το λουρί της μάνας) έγιναν χωρίς runtime support.

 

Αυτό που λες με τη Java επίσης δεν ισχύει καθόλου, αν κάνεις πχ compile με jdk 8 το αποτέλεσμα δεν παίζει σε jre 7. Είναι ακριβώς η ίδια κατάσταση, εκεί που χρειάζεται επιπλέον runtime support χάνεται η συμβατότητα.

Δημοσ.

Αυτό που λες με τη Java επίσης δεν ισχύει καθόλου, αν κάνεις πχ compile με jdk 8 το αποτέλεσμα δεν παίζει σε jre 7. Είναι ακριβώς η ίδια κατάσταση, εκεί που χρειάζεται επιπλέον runtime support χάνεται η συμβατότητα.

Nope ;)

 

Μπορείς με το jdk8 και μόνο να κάνεις compile για όποιο target θες. 

 

javac -target 

 

 

Αλλά το κυριότερο που αναφέρω είναι ότι παίρνεις ένα ξεχασμένο jar-ακι απο java 6 ή java 7 και τρέχει απευθείας σε jre 8.

 

Σημείωση! Δεν μπορείς προφανώς να γράψεις με νέα features στον κώδικα και να κάνεις compile σε παλιότερο target. Απλά μπορείς με τον ίδιο compiler όμως (εφόσον το source σου στο επιτρέπει) να παράξεις byte-code για όποιο jre θες.

moukoublen, κατ αρχήν τα περισσότερα features δε χρειάζονται runtime support, είναι το γνωστό syntactic sugar το οποίο μπορείς να έχεις απλά βάζοντας πιο καινούριο compiler. Για παράδειγμα όλα τα νέα features της C# 3 (var, linq, initializers, extension methods, anon types και το λουρί της μάνας) έγιναν χωρίς runtime support.

Σωστό. Ωστόσο π.χ. για το var νομίζω ότι από άποψη δεν υποστηρίζεται στη java.

Δημοσ.

Nope nope  ;)

 

Φυσικά και μπορείς να το κάνεις αυτό, όπως μπορείς και με το .NET, αλλά τότε (στη γενική περίπτωση) δε μπορείς να χρησιμοποιήσεις τα καινούρια features.

 

javac -target 1.7 -source 1.8 => πούλος

 

Οπότε είναι απλά σα να λέμε ότι ο compiler του JDK8 έχει "ενσωματωμένο" και τον compiler του JDK7. Πράγμα που δεν είναι καθόλου αξιοπερίεργο.

Δημοσ.

Διάβασε το update.

 

Όπως είπα το κυριότερο είναι ότι με το jre8 τρέχεις bytecodes από προηγούμενες. 

 

Αν είναι να το κάνουμε java vs .net flame ωστόσο (που είμαι μέσα βασικά :P)

 

Εντάξει τώρα μη συγκρίνουμε ανόμοια πράγματα έτσι... :P

 

Πολύ ωραίο το .net και έχει καλούδια που τα ζηλεύω (και όταν γράφω java και κάποιες φορές C++ προ 11 και ίσως 14). 

Αλλά όντας windows-only και closed source για τοοοσα χρόνια προφανώς και έχει στοιχίσει πολύ στην εξάπλωση του στους χώρους και στους τομείς που η java έχει την πρωτοκαθεδρία. 

Δημοσ.

Όχι ρε τι flame. Τα flame είναι μόνο για χαζούς.

 

Βασικά αυτό που λέω είναι ότι Java και .NET είναι ακριβώς η ίδια γενική ιδέα (γιατί τα λες ανόμοια πράγματα?), οπότε όλα αυτά που λέμε ισχύουν και για το μεν και για το δε. Τώρα αν θέλει κανείς το ίδιο πράγμα να το βαφτίσει ότι "μπορείς να κάνεις compile σε JDK 7 και να τρέξεις σε 8" ή "μαζί με το .NET 4 εγκαθίσταται και το 2", αυτά είναι άνευ ουσίας.

Δημοσ.

Όχι ρε τι flame. Τα flame είναι μόνο για χαζούς.

 

Βασικά αυτό που λέω είναι ότι Java και .NET είναι ακριβώς η ίδια γενική ιδέα (γιατί τα λες ανόμοια πράγματα?), οπότε όλα αυτά που λέμε ισχύουν και για το μεν και για το δε. Τώρα αν θέλει κανείς το ίδιο πράγμα να το βαφτίσει ότι "μπορείς να κάνεις compile σε JDK 7 και να τρέξεις σε 8" ή "μαζί με το .NET 4 εγκαθίσταται και το 2", αυτά είναι άνευ ουσίας.

 

Ναι εντάξει σαν γενική ιδέα είναι ακριβώς η ίδια. Με τη διαφορά οτι η java ήταν πρώτη αλλά το .net ως 2ο σε πιο μετά εποχή ενσωμάτωσε πιο όμορφα στοιχεία στο source επίπεδο καθώς και κάποιες πραγματικά πανέμορφες ιδέες όπως το linq.

 

[ το "ανόμοια" ήταν στο flame-mood και καλά ως προς το ποιο είναι "καλύτερο" :P ]

 

Δυστυχώς για το .ΝΕΤ (κατα τη δική μου εκτίμηση τουλάχιστον) οι δεινόσαυροι που διοικούσαν τότε δε μπορούσαν να καταλάβουν το πλεονέκτημα που θα είχε αν ήταν από την αρχή open source. 

 

Και φυσικά μιλάω για το να αναπτυχθούν όλα τα state of the art πράγματα που γίνονται development τώρα σε java και σε άλλες open source γλώσσες σε σχέση με το cloud κυρίως αλλά και όχι μόνο, στο ή και στο .net.

 

Τώρα το κάνανε cross platform και open source αλλά ίσως είναι αργά.

 

Αυτό είναι ένα λάθος που προσπαθεί να μην κάνει η apple με την swift.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...