Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

.NET και ταχύτητα - Το Paint.NET

Îåêßíçóå áðü ôï ìÝëïò Παναγιώτης Καναβός. Τελευταία δημοσίευση από το μέλος Dimitris στις 20-12-2004, 01:11. Υπάρχουν 40 απαντήσεις.
Σελίδα 2 από 3 (41 εγγραφές)   < 1 2 3 >
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  17-12-2004, 11:54 671 σε απάντηση της 658

    Re: .NET και ταχύτητα - Το Paint.NET

    /*
    Απαντώ στον φίλο objectref στο τελευταίο σχόλιο του περί java 1.5 και generics. Λοιπόν αντίθετα με μερικές "αυθεντίες" και "παπαγάλους" που κατακρίνουν  την υλοποίηση της SUN, εγώ είμαι *ευγνώμων* που αποφάσησαν να πάρουν αυτό το δρόμο, παρά  να τα φορτώσουν - πάλι όλα - στον Run-Time-Γάιδαρο οπως παει να κάνει η Microsoft.
    */


    Δεν ξερω ποιους εννοεις "παπαγαλους" η "αυθεντιες" με κοροιδευτικο τονο, αλλα μαλλον εσυ τουλαχιστον απεχεις πολυ απο το να χαρακτηριστεις εστω και ενας απλος γνωστης των πραγματων.

    Εισαι "ευγνωμων" επειδη η SUN εμαθε οτι η νεα version της C# θα ειχε Generics και ετρεξε να τα βαλει πρωτη οπως-οπως ??

    Εχεις καταλαβει πως δουλευουν τα generics στην μια περιπτωση και πως στην αλλη, πως ειναι πιο efficient γενικα να δουλευουν τα Generics ??

    Μαλλον οχι, οποτε αλλη φορα, πριν χαρακτησεις καποιον/καποιους, ανοιξε πρωτα ενα βιβλιαρακι να καταλαβεις πως δουλευουν αυτα τα πραγματα και μετα ελα να μιλησουμε για οτι θελεις...
    Software Engineer, specializes in Microsoft .net/C#, COM, Sql Server and now Python.
  •  17-12-2004, 12:50 672 σε απάντηση της 671

    Re: .NET και ταχύτητα - Το Paint.NET

    Smile

    Χάσαμε την παρθενιά μας και στο θέμα των "επιθετικών" μηνυμάτων!

    Σας παρακαλώ πολύ ρε παιδιά, ας μιλάμε με τεχνικά επιχειρήματα, και όχι με χαρακτηρισμούς που μπορεί να ενοχλήσουν ή να προσβάλουν κάποιον!  Εξ' άλλου, το έχω γράψει και στους κανόνες αυτό!  Μη μου πείτε ότι δεν τους διαβάσατε??? Stick out tongue

    Ηρεμία, please!

    PS.  Το γεγονός ότι απαντώ τώρα, δεν σημαίνει ότι τα βάζω με τον objectref - μιλάω σε όλους! Wink

    Patrick
  •  17-12-2004, 13:14 673 σε απάντηση της 671

    Re: .NET και ταχύτητα - Το Paint.NET

    ΗΡΕΜΙΑ!

    Δεν υπάρχει λόγος να ξεκινήσουμε το πρώτο flame στο dotnetzone! Εντάξει, του ξέφυγαν μερικά του ανθρώπου. Και μένα μου ξέφυγε ένα post πρόσφατα πιο έντονο απ' ότι ήθελα.

    Τώρα, είναι πολύ ευκολότερο να καταλάβει κανείς τί είναι τα generics αν γνωρίζει τα templates της C++. Και δεν αναφέρομαι μόνο στην STL. Τότε θα καταλάβει πόσο δυνατά είναι αλλά και τό πόσα λείπουν και από τις υλοποιήσεις τόσο της Java όσο και του .ΝΕΤ. Και οι υλοποιήσεις έκαναν συμβιβασμούς γιατί είχαν διαφορετικούς στόχους. Η Java τη συμβατότητα με τα υπάρχοντα VMs (πόσα είναι άραγε) ενώ το .NET την ταχύτητα και κυρίως, τη συνέπεια. Τί εννοώ? Ότι οποιοδήποτε construct στο .NET γίνεται προσπάθεια να υπάρχει το ίδιο και στο binary. Έτσι, π.χ. τα attributes παραμένουν και στο binary. Το ίδιο και τα generics.
        Αυτό δίνει δύο πλεονεκτήματα. Πρώτον, τα generics γίνονται compile σαν generics και ο compiled κώδικας ξαναχρησιμοποιείται σε επόμενα specializations. Αντίθετα στη Java θα ξαναγίνουν compile. Αυτό είναι κέρδος τόσο σε ταχύτητα όσο και σε μνήμη. Δεύτερον, το generic αναγνωρίζεται ως τέτοιο επιτρέποντας στον κώδικα που το καλεί να το χειριστεί με διαφορετικό τρόπο.
      Και λοιπόν? Γιατί είναι καλό αυτό? Δεν ξέρω, αλλά νομίζω ότι σύντομα θα δούμε πολύ ενδιαφέρουσες υλοποιήσεις εξαιτίας αυτής της δυνατότητας. Πάρτε για παράδειγμα τα Attributes και το NUnit. Ενώ το JUnit απαιτεί το όνομα ενός test method να έχει συγκεκριμμένη μορφή, το NUnit θεωρεί σαν test method οποιαδήποτε μέθοδο έχει το αντίστοιχο attribute.
       Επίσης, τα attributes κάνουν ευκολότερη την χρήση των Aspects. Εδώ βασίζομαι στην γνώμη άλλου, αλλά όταν αυτός είναι ο George Kiczales, ο δημιουργός τόσο των Aspects όσο και της AspectJ, νομίζω ότι δεν κάνω μεγάλη αμαρτία Wink.

    Τί προτείνω? Περιμένουμε και βλέπουμε. Μαθαίνουμε για templates και generics, τόσο για να δούμε που χρησιμεύουν όσο και για να γλυτώσουμε παγίδες.

    ΚΑΙ ΟΠΟΙΟΣ ΣΥΝΕΧΙΣΕΙ ΤΟ FLAME ΘΑ ΤΟΝ ΘΑΨΩ ΜΕ ΑΡΘΡΑ ΓΙΑ TEMPLATE POLICIES!

    Όποιος θέλει να μάθει τί είναι αυτό, προτείνω το καταπληκτικό βιβλίο Modern C++ Design του Andrei Alexandrescu.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  17-12-2004, 13:18 674 σε απάντηση της 671

    Re: .NET και ταχύτητα - Το Paint.NET

    Χαχα, υποκλίνομαι στο φίλο objectref γιατί με κατάλαβε με τη μία και απαντώ αφενός οτι η υπόθεση generics στη Java υπάρχει απο πριν ακόμα ονειρευτεί η Microsoft το .net και λεγόταν Project Pizza, GJ (ή κάπως έτσι) και αφετέρου χωρις να το παίζω ξερόλας, ξέρω ομως οτι κάθε φορά που κάποιος θα ζητάει generic object με νέο τύπο το runtime θα έχει δουλεία να κάνει. Αν θες να απαντήσεις επαυτού καλώς αλλα δεν θα κάτσω να σκάσω κιολας...

    Το "αυθεντίες" και "παπαγάλοι" το έθιξα για το φαινόμενο που υπάρχει τελευταίως, οπου αναπαράγουν τις απόψεις του Anders Hejlsberg που τυγχάνει να είναι "lead C# architect". Εντάξει ο άνθρωπος δεν μπορεί να είναι τυχαίος στη θέση που είναι, αλλά δεν παύει να δουλεύει για τη Microsoft και είναι φυσικό να υποστηρίζει το δικό τους προϊόν.

    http://www.artima.com/intv/generics.html
  •  17-12-2004, 13:22 675 σε απάντηση της 669

    Re: .NET και ταχύτητα - Το Paint.NET

    @KelMan

    Το δεύτερο άρθρο σου με κάλυψε, thanx!
  •  17-12-2004, 13:46 676 σε απάντηση της 674

    Re: .NET και ταχύτητα - Το Paint.NET

    /*
    Χαχα, υποκλίνομαι στο φίλο objectref γιατί με κατάλαβε με τη μία και απαντώ αφενός οτι η υπόθεση generics στη Java υπάρχει απο πριν ακόμα ονειρευτεί η Microsoft το .net και λεγόταν Project Pizza, GJ (ή κάπως έτσι) και αφετέρου χωρις να το παίζω ξερόλας, ξέρω ομως οτι κάθε φορά που κάποιος θα ζητάει generic object με νέο τύπο το runtime θα έχει δουλεία να κάνει. Αν θες να απαντήσεις επαυτού καλώς αλλα δεν θα κάτσω να σκάσω κιολας...

    Το "αυθεντίες" και "παπαγάλοι" το έθιξα για το φαινόμενο που υπάρχει τελευταίως, οπου αναπαράγουν τις απόψεις του Anders Hejlsberg που τυγχάνει να είναι "lead C# architect". Εντάξει ο άνθρωπος δεν μπορεί να είναι τυχαίος στη θέση που είναι, αλλά δεν παύει να δουλεύει για τη Microsoft και είναι φυσικό να υποστηρίζει το δικό τους προϊόν.
    */

    Και επειδη δηλ. εχουν και αλλοι ανθρωποι τις ιδιες αποψεις με τον Hejlsberg ειναι "παπαγαλοι" και "ξερολες" ?? Πολυ ευκολα βαζεις ταμπελακια μου φαινεται...

    Οσο για τη java και τα generics της, προσπαθησε, οσο μπορεις βεβαια,  να εξηγησεις γιατι τα εβαλε τωρα και οχι πριν περιπου 10 χρονια που ξεκινησε αυτη η ιστορια.(και γι'αυτο μπηκαν ετσι οπως μπηκαν, βλεπεις υπηρχε τεραστια εγκατεστημενη βαση και αν δε γινει κατι σωστα απο την αρχη, μετα υπαρχουν τα "μπαλωματα"...)

    Οσο για το "δουλευει για τη Microsoft", τι να πω...Και ο Gosling δουλευει για τη SUN αλλα εχει πει και αρκετα καλα πραγματα για το .net,
    αν το εχεις προσεξει...

    Φιλαρακο, το iIndustry στο οποιο δουλευουμε (εγω σιγουρα, για σενα δεν ξερω) δεν στεκεται με αποψεις σαν τις δικες σου, δε στεκεται δηλ. φορωντας microsoft η αντι-microsoft γυαλια...
    Εγω απλα ειπα στην αρχη της σελιδας την αποψη μου για τα java generics χωρις να χαρακτηρισω κανεναν, εσυ ξεκινησες ολοκληρη ιστορια απο το τιποτα
    Και χανω τωρα εγω (και αλλοι απ'οτι ειδα εδω περα,) τον χρονο μου ν'απανταω σ'εσενα.

    Τι να σου πω...




    Software Engineer, specializes in Microsoft .net/C#, COM, Sql Server and now Python.
  •  17-12-2004, 14:39 677 σε απάντηση της 674

    Re: .NET και ταχύτητα - Το Paint.NET

    ξέρω ομως οτι κάθε φορά που κάποιος θα ζητάει generic object με νέο τύπο το runtime θα έχει δουλεία να κάνει

    Στο ίδιο το άρθρο που παρέθεσες αναφέρει ακριβώς ότι ΔΕΝ συμβαίνει αυτό.

    Στη δεύτερη σελίδα, http://www.artima.com/intv/generics2.html, λέει  for all type instantiations that are value types ... we create a unique copy of the executable native code. For all reference types we share the code, because they are representationally identical. It's just pointers.

    Έξάλλου έχει άδικο ο Hejlsberg όταν λέει ότι τα Java Generics αντικαθιστούν τον τύπο με Object? Τα generics του .NET μοιάζουν περισσότερο με τα templates της C++ σε αυτό τον τομέα.


    Η ειδοποίηση ισχύει και σε λίγο θα την εφαρμόσω!
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  17-12-2004, 15:21 680 σε απάντηση της 677

    Re: .NET και ταχύτητα - Το Paint.NET

    Φανταστείτε ότι μπαίνετε σε ένα site σχετικό με αυτοκίνητα και βρίσκετε κάποιους τύπους να ρίχνουν flamming posts για το ποιος κατασκευαστής είναι καλύτερος, η Μερσεντές ή η BMW. Κάποιοι υποστηρίζουν ότι είναι η Μερσεντές που έβγαλε πρώτη το ABS και η BMW την αντέγραψε...

    Τι γνώμη θα σχηματίζατε γι αυτούς; Είναι κάτι το διαφορετικό σε σχέση με τα τελευταία posts;

    Γεγονός είναι ότι χαιρόμουν (και θέλω να ελπίζω ότι θα συνεχίζω να χαίρομαι) που δεν υπάρχουν threads για Χ vs Y (C# vs VB.NET, SQL Server vs Orcale, κλπ, κλπ) και είμαστε όλοι (οι τουλάχιστον οι περισσότεροι) μια ομάδα από επαγγελματίες που έχουν διαλέξει ένα εργαλείο για τη δουλεία τους (καμιά φορά οι περιστάσεις τα φέρνουν έτσι που το εργαλείο διαλέγει τον επαγγελματία) και με αυτό πορεύονται για το (ευ) ζειν!

    θα ήθελα απλά να πω ότι εμένα μου αρέσει όλο αυτό το κόλπο της αντιγραφής τεχνολογίας!

    Ναι, κάθε εταιρία σκέφτεται το κέρδος και προσπαθεί να καλύψει κενά της αγοράς (της) προσφέροντας κάτι καλύτερο στους πελάτες της. Άρα γιατί να αισθανθώ κόμπλεξ τώρα που έχω inheritance στη VB που το πήρε από την Java που το πήρε από τη c++ που το πήρε από την Aifel που το έκλεψε ο δημιουργός της από μια πρώτη υλοποίηση που έκανε ένας τρελός επιστήμονας στα labs της ΙΒΜ που το έκλεψε κι αυτός μέσω Echelon από έναν ακαδημαϊκό (λέμε τώρα);

    Είναι κάτι σαν τις πατέντες λογισμικού απλά σε μεγαλύτερη κλίμακα... Αν δεν υπήρχε αυτή η "αντιγραφή", όπου πολλές φορές βελτιώνει τη τεχνολογία (και άλλες όχι), τώρα με τι υπολογιστές θα παίζαμε και με τι γλώσσες θα γράφαμε άραγε;


    Vir prudens non contra ventum mingit
  •  17-12-2004, 16:19 683 σε απάντηση της 658

    Re: .NET και ταχύτητα - Το Paint.NET

    Για να μην λέμε για παπαγαλίες ας πάμε σε μερικά επιστημονικά άρθρα.

    A comparison of generics in Java and C#  Proceedings 41st Annual ACM SoutheastConference, Savannah, Georgia, 2003.
    Μια συστηματική σύγκριση των δύο υλοποιήσεων.

    A comparative study of language support for generic programming  ACM SIGPLAN Notices , Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications.
    Συγκρίνει C++, C#, Eifell, Haskel, Java, ML. Ποιός έκλεψε από ποιόν?

    A first-class approach to genericity Είδαμε πως Java και .NET υστερούν σε σχέση με την C++, να δούμε και που υπερτερούν. Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications.
    Είδαμε πως Java και .NET υστερούν σε σχέση με την C++, να δούμε και που υπερτερούν.

    Και για να μην λέμε λόγια του αέρα, προσέξτε ιδιαίτερα το τρίτο άρθρο. Τα generics δεν είναι για να φτιάχνουμε type-safe collections. Μπορούν να οδηγήσουν σε ριζικά διαφορετικούς τρόπους προγραμματισμού. Εδώ και αρκετά χρόνια το παιχνίδι γίνεται στο metaprogramming, πως δηλαδή θα φτιάξουμε προγράμματα που θα δημιουργήσουν νέα προγράμματα ή θα τροποποιήσουν υπάρχοντα. Για να το κάνεις αυτό πρέπει το binary να κρατήσει όσο γίνεται περισσότερη από την πληροφορία που υπήρχε στο source code. Για ΑΥΤΟ το λόγο υπάρχουν τα attributes και τα χρησιμοποιούν τόσο η Java όσο και η C#.

    Ακόμα δεν είδαμε τίποτα

    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  17-12-2004, 16:35 685 σε απάντηση της 683

    Re: .NET και ταχύτητα - Το Paint.NET

    Ενταξει, ειναι γνωστα ολα αυτα και χρησιμα, τουλαχιστον σε οσους εχουν πραγματικο ενδιαφερον για μια πλατφορμα και εχουν φαει απειρες νυχτες για να δουν τι γινεται και κυριως ΠΩΣ γινεται κατι σε αυτη...

    Το θεμα ειναι να βλεπουμε τα πραγματα οπως ειναι και οχι οπως θα θελαμε να ειναι. Και τα generics (μια που συζηταμε γι'αυτα) εχουν και καλα και μη implementations...
    Software Engineer, specializes in Microsoft .net/C#, COM, Sql Server and now Python.
  •  17-12-2004, 16:52 686 σε απάντηση της 685

    Geeked [8-|] Re: .NET και ταχύτητα - Το Paint.NET

    Χιχιχι Devil Τώρα που γλυκάθηκα? Έβρισκα τα templates ένα από τα πιο ενδιαφέροντα κομμάτια της C++!

    Η μαγεία των templates της C++ είναι ότι σου επιτρέπει τελικά να τα κάνεις τα πράγματα όπως ακριβώς θες!

    Ειδικά το C<T>:T , η δυνατότητα δηλαδή ένα template να κάνει extend την παράμετρό του θα μου λείψει. Αυτός θα ήταν ένας από τους ευκολότερους τρόπους να υλοποιήσεις το decorator pattern.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  17-12-2004, 16:59 687 σε απάντηση της 686

    Re: .NET και ταχύτητα - Το Paint.NET

    χεχε...δεν διαφωνω μαζι σου. Απλα στην πραγματικοτητα, τα generics της C# καλυπτουν πιστευω το 9χ% των αναγκων.

    Μια που λες για C++, τη νεα version για να κανεις access το framework, την ειδες καθολου ? (το property name changing και ολα αυτα εννοω...)
    Software Engineer, specializes in Microsoft .net/C#, COM, Sql Server and now Python.
  •  17-12-2004, 17:30 688 σε απάντηση της 687

    Re: .NET και ταχύτητα - Το Paint.NET

    ΏΠΑ ΤΟΥ! Είπα να ρίξω ένα google να δω αν κανείς έχει υλοποιήσει mixins (έτσι λέγεται το C<T>:T ) και που πέφτω?

    http://wesnerm.blogs.com/net_undocumented/2004/01/multiple_inheri.html
    <quote>
    Anders Hejlsberg indicated during a PDC panel that, while MI support is not planned for a future version of .NET, the CLR team is looking at supporting mix-ins, which is a type of MI based on generics. Mix-ins provide a kind of implementation inheritance that interfaces currently lack
    </quote>

    Μα επιτέλους αυτοί οι άνθρωποι! Δεν θα μας αφήσουν σε χλωρό κλαρί!


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  17-12-2004, 18:00 689 σε απάντηση της 688

    Re: .NET και ταχύτητα - Το Paint.NET

    Ναι αλλα λεει κι αυτο:

    "Support for MI would likely complicate the runtime, leading to reduced performance and numerous restrictions on the ability to use objects, especially in areas dealing with object covariance and contravariance. In combination with generics, we may actually lose the code sharing that occurs with generic types based on reference types. In addition, I think the presence of MI might actually pollute the library. I think it's best to try explore other options first."

    Οποτε μη χαιρεσαι τοσο γρηγορα!!

    Software Engineer, specializes in Microsoft .net/C#, COM, Sql Server and now Python.
  •  17-12-2004, 18:29 690 σε απάντηση της 689

    Re: .NET και ταχύτητα - Το Paint.NET

    Αυτό το λέει για το Multiple Inheritance. Τα mixins δεν είναι απαραίτητο να υλοποιηθούν με Multiple Inheritance. Όταν ανέφερα πριν ότι τα mixin είναι το C<T>:T έκανα λάθος. Το κοίταξα λίγο παραπάνω τώρα και ελπίζω να το πέτυχα:
      Mixin είναι ένα "πακέτα" από μεθόδους που μπορούν να προστεθούν σε κάθε τύπο, σαν συστατικά σε συνταγή. Έτσι το C<T>:T είναι απλά ο τρόπος με τον οποίο πετυχαίνεις αυτό το πράγμα στην C++. Συνήθως αυτό θέλουμε να πετύχουμε όταν χρησιμοποιούμε multiple inheritance. Αν τώρα υπάρχει τρόπος να γίνει το ίδιο χωρίς MI τόσο το καλύτερο.
      Π.χ. μπορείς να δεις τα enterprise services σαν mixins που προσθέτουν λειτουργικότητα σε ένα αντικείμενο. Το ίδιο και κάποιες υλοποιήσεις attributes που κάνουν intercept τις κλήσεις προς τις κλάσεις στις οποίες εφαρμόζονται για να πετύχουν μια μορφή AOP. 
      Δυστυχώς αυτά είναι workarounds καθώς προσθέτουν μεν μεθόδους αλλά ο compiler και το CLR δεν το ξέρουν και δεν μπορούν να τις ελέγξουν. Είναι σαν να προγραμματίζεις σε C++ με void pointers.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
Σελίδα 2 από 3 (41 εγγραφές)   < 1 2 3 >
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems