C++ Vs Java

Συζητήσεις για γλώσσες προγραμματισμού και θέματα σχετικά με προγραμματισμό.
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 May 21, 2004 12:24 am

crontab wrote:Συμφωνώ με αυτό που λες αλλά ο άλλος μπορεί να μη γουστάρει να περιμένει τη Java να κάνει αυτόματη αποκομιδή απορριμάτων αλλά να απελευθερώνει μνήμη τη στιγμή που θέλει εκείνος.

Code: Select all

System.gc();
τόσο απλό :roll:
[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 » Fri May 21, 2004 12:32 am

Και σχετικά με το παραπάνω που αναφέρω; JNI;
Εάν δέν θέλεις να κάνεις deallocate τα πάντα χύμα;(επίσης δεν γίνεται μόνο deallocation αλλά και defragmentation στην μνήμη γιατί το gc την σκίζει).
-----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 » Fri May 21, 2004 9:42 pm

Einherjar wrote:
crontab wrote:Συμφωνώ με αυτό που λες αλλά ο άλλος μπορεί να μη γουστάρει να περιμένει τη Java να κάνει αυτόματη αποκομιδή απορριμάτων αλλά να απελευθερώνει μνήμη τη στιγμή που θέλει εκείνος.

Code: Select all

System.gc();
τόσο απλό :roll:
ROTFL ;-)
Autocracy hates questions. Anarchy hates answers.
User avatar
vagalati
Mbyte level
Mbyte level
Posts: 579
Joined: Tue Mar 16, 2004 2:46 pm
Location: 7000 miles away from aueb

Post by vagalati » Sat May 22, 2004 2:20 pm

Σχετικά με τις δύο γλώσσες απο τη σκοπιά του προγραμματιστή (αγνοώντας δηλαδή το portability, speed και τον σκοπό για τον οποίο υπάρχει η κάθε γλώσσα) έχω καταλήξει στα εξής:

Java
+ όλες οι τάξεις έχουν πρόγονο την Object.
+ garbage collection
+ υπερπλήρης και πολύ καλή standard βιβλιοθήκη - απλά γ@μ@ει
+ εγγενής υποστήριξη threads

C++
+ ύπαρξη templates και γένιου (έτσι το έλεγε ο Ανδρουτσόπουλος) προγραμματισμού
+ δυνατότητα low level προγραμματισμού
+ άλλο δείκτης/αναφορά (σε αντικείμενο) και άλλο αντικείμενο -> δυνατότητα περάσματος με τιμή σε συνάρτηση ενός αντικειμένου
+ υπερφόρτωση τελεστών

Τα συν της μιας είναι πλην της άλλης. :-D
Σίγουρα θα έχω παραλήψει πολλά πράγματα αλλά αυτά μου ήρθαν στο μυαλό αυτή τη στιγμή. Όποιος διαφωνεί σε κάποιο απο τα παραπάνω ας πει ελεύθερα τη γνώμη του και όποιος θέλει, ας συμπληρώσει τον παραπάνω κατάλογο με παραπάνω στοιχεία. Keep writing... ;-)

Παντως να διευκρινήσω ότι δεν είμαι κανένας ακραίος αντι-javιστας, και αν ήταν να προγραμματίσω σε web περιβάλλον (ή για κινητά ;-) ) θα χρησιμοποιούσα Java δαγκωτό γιατί όπως είπε και ο φίλος silegav: "ε ρε φίλε στο web η C++ έχει ένα σωρό μ@@ες ενώ η java είναι πανεύκολη και έχει interoperability.". Και στην εργασία με sockets στα δίκτυα τη java θα χρησιμοποιούσα, αν δεν είμασταν ομάδα τριών ατόμων :-(.
Ni!! Ni!! Ni!!
User avatar
vangos
Mbyte level
Mbyte level
Posts: 571
Joined: Tue Mar 16, 2004 3:14 pm
Location: Heracleia@UTA

Post by vangos » Mon Jun 07, 2004 12:16 am

Παιδιά εγώ έχω καταλάβει ότι για καθημερινά μικρά προγραμματάκια η Java
είναι πολύ πιο βολική. Και για μεγάλα είναι βολική, αρκεί να μην υπάρχει η
προυπόθεση της ταχύτητας. Το μεγαλύτερο της πλεονέκτημα κατ’ εμέ είναι
η απλότητα της και τα πολύ κατατοπιστικά μηνύματα λάθους που παράγει ο Compiler. Έχει και κάποια μειονεκτήματα, στα οποία όμως δεν
περιλαμβάνεται η πολλαπλή κληρονομικότητα. Εγώ προσωπικά για όσο καιρό προγραμματίζω (ακόμα και με C++) δεν έχω χρησιμοποιήσει ποτέ
πολλαπλή κληρονομικότητα και δεν ξέρω και σε τι χρειάζεται. Και η C++
καλή είναι. Εξάλου της χρωστάω πολλά. Με C++ ουσιαστικά έμαθα
προγραμματισμό. Γι’ αυτό βέβαια μπορεί να μην φταίει η ίδια η Java αλλά κάποιοι άλλοι παράγοντες. Ξέρετε εσείς. Πάντως συμφωνώ και εγώ ότι η D είναι καλύτερη και από τις δύο! Αλλά θα καθιερωθεί ποτέ;;; Ποιος ξέρει...
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 » Mon Jun 07, 2004 12:36 am

Σχετικά με την πολλαπλή κληρονομικότητα επιμένω ότι είναι σημαντικό μειονέκτημα της Java που δεν έχει κάτι τέτοιο. Όχι από θέμα δυνατοτήτων αλλά από θέμα ευχρηστίας. Έχει τύχει να θέλω να κάνω πολλά πράγματα extend και επειδή δεν μπορώ να αναγκάζομαι να κάνω πολλά interfaces έτσι ώστε να γίνουν implemented ακεί που θέλω να κάνω extend. Κατά τα άλλα πιστεύω ότι, με βάση αυτά που ξέρω, και την D δεν την ξέρω, η Java είναι η καλύτερη
[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 » Mon Jun 07, 2004 11:21 am

Πέρα απο τον σχεδιασμό πάλι σχετικά με την ταχύτητα υπάρχουν δύο βασικού λόγοι που η C++ είναι γρογορότερη(αλλά πολύ γρογορότερη):

1)Πάράγει executable για συγκεκριμένη platform και μάλιστα εξαιτίας της ιστοριάς που έχει η C(που είναι η γρηγορότερη μέχρι στιμής) όλοι οι compilers έχουν ενσωματώσει τρελά optimizations στον κώδικα(ανάλογα με την target CPU/OS). Ενώ κάτι τέτοιο στην java δεν μπορεί να γίνει σε μεγάλο βαθμό μιας και ο κώδικας που παράγεται είναι πάνω κάτω πάντα ο ίδιος εξαιτίας των περιορισμένων ικανονοτήτων της JVM(τα περισσότερα opts γίνονται ανάλογα με την VM όταν εκτελείται-τρέχει το πρόγραμμα).
2)Ο κώδικας εκτελείται απο την VM και όχι κατευθείαν απο τo μηχανάκι μας, ενώ η VM είναι μια πολύ απλή μηχανή στοίβας...
-----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
crontab
byte level
byte level
Posts: 53
Joined: Sat May 01, 2004 7:10 pm
Contact:

Post by crontab » Thu Jul 08, 2004 9:56 pm

Συγνώμη για το καθυστερημένο post αλλά τώρα είδα τις απαντήσεις κάποιων φοιτητών πάνω στο θέμα garbage collection.
(και πραγματικά δε θα απαντούσα αλλά αυτό το rofl του mikem κάθε άλλο παρα ειρωνικό δε μου φάνηκε)

Καλώντας explicitly τη System.gc() ο jc λέει πως απλά χρονοπρογραμματίζεις τον garbage collector και πως δεν είσαι 100% σίγουρος ότι θα τρέξει(εκείνη τη χρ. στιγμή).Το documentation για το java api γράφει πως όταν καλείς τη System.gc() τότε standar τρέχει εκείνη τη στιγμή ο garbage collector.Ομως στο "The Java Virtual Machine Specification" που είχα κοιτάξει κάπου , έγραφε τα ίδια με του Κάβουρα.
Ειδάλλως τρέχει είτε περιοδικά σαν thread με μικρότερο priority είτε όταν βαρέσει OutOfMemoryError εξαίρεση.

Αρα σε καμμία περίπτωση δεν μπορείς νασαι σίγουρος για το ποιά χρ. στιγμή θα ελευθερώσει μνήμη απο το σωρό.
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 » Thu Jul 08, 2004 10:04 pm

Ποιος όμως ο λόγος να αγχώνεσαι?
[Better to understand a little than to misunderstand a lot]
crontab
byte level
byte level
Posts: 53
Joined: Sat May 01, 2004 7:10 pm
Contact:

Post by crontab » Fri Jul 09, 2004 8:09 pm

Δεν είναι οτι αγχώθηκα.Εκτος αν το εννοείς αλλιώς.
Απλά σου λέω οτι είδα χθες πως είχαν απαντήσει κάποιοι σε αυτό που είχα γράψει και ανάμεσα σε αυτούς ήταν και ένας που "κυλιόταν στο πάτωμα απ'το γέλιο".
Οπως και να έχει ,είτε είσαι σωστός είτε όχι , οι είρωνες στη βαράνε κάπως.
Εάν το rotfl δεν ήταν όντως ειρωνικό απλά sorry , αλλά εμένα έτσι μου φάνηκε (8α μπορούσε κάλλιστα πχ να βάλει αυτό το emoticon :-) )


Φιλικά.
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 Jul 09, 2004 9:14 pm

crontab wrote:Απλά σου λέω οτι είδα χθες πως είχαν απαντήσει κάποιοι σε αυτό που είχα γράψει και ανάμεσα σε αυτούς ήταν και ένας που "κυλιόταν στο πάτωμα απ'το γέλιο".
Οπως και να έχει ,είτε είσαι σωστός είτε όχι , οι είρωνες στη βαράνε κάπως.
Εάν το rotfl δεν ήταν όντως ειρωνικό απλά sorry , αλλά εμένα έτσι μου φάνηκε (8α μπορούσε κάλλιστα πχ να βάλει αυτό το emoticon :-) )

Φιλικά.
Sorry, δεν ήταν πρόθεσή μου να σε θίξω κατ' οποιονδήποτε τρόπο... Απλώς κουβέντα κάναμε...

Φιλικα.
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 » Sat Jul 10, 2004 3:43 pm

Μάγκες μην τρελένεστε την πλάκα μας κάνουμε... :)
-----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 » Sat Jul 10, 2004 9:07 pm

Εννοούσα γιατί να αγχώνεσαι με το πότε θα γίνει το garbage collection αφού κάποτε θα γίνει. Δεν υπάρχει περίπτωση να ζητήσεις μνήμη και να μη την πάρεις εκτός και αν όλα εκ των 80Mb που σου δίνει η VM είναι απαραίτητα για σένα. Σε αυτή την περίπτωση συζητάμε για το πως μπορείς να πάρεις έξτρα μνήμη
[Better to understand a little than to misunderstand a lot]
Post Reply

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