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

 

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

Γιατί γράφει κανείς Client εφαρμογές πλέον;

Îåêßíçóå áðü ôï ìÝëïò ikyriakidis. Τελευταία δημοσίευση από το μέλος ikyriakidis στις 02-12-2014, 16:04. Υπάρχουν 12 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  20-11-2014, 15:31 75942

    Γιατί γράφει κανείς Client εφαρμογές πλέον;

    -
  •  20-11-2014, 17:41 75943 σε απάντηση της 75942

    Απ: Γιατί γράφει κανείς Client εφαρμογές πλέον;

    Για τον ίδιο λόγο που υπάρχουν apps αντί για web sites. Γιατί ο browser ακόμα δεν μπορεί να κάνει όσα μπορεί να κάνει μία native εφαρμογή, η Javascript για πολλά χρόνια ακόμα θα έχει προβλήματα σε σχέση με άλλες γλώσσες, γιατί θέλεις να δουλέψεις χωρίς σύνδεση, πχ στο τρένο, στο γραφείο του πελάτη, στο σταθμό του Ηλεκτρικού στον Άγιο Νικόλαο όπου το σήμα είναι ανύπαρκτο.

    Γιατί το network latency μπορεί να είναι απαγορευτικό για την εφαρμογή που θέλεις να φτιάξεις, ακόμα και αν έχεις μεγάλη ταχύτητα. Γιατί *δεν* θέλεις να έχεις *και* client *και* σύνδεση σε server για να μπορέσεις να κάνεις μια δουλειά. Γιατί έχεις μεγάλο όγκο δεδομένων να επεξεργαστείς. 


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  21-11-2014, 00:12 75944 σε απάντηση της 75943

    Απ: Γιατί γράφει κανείς Client εφαρμογές πλέον;

    -

  •  21-11-2014, 12:33 75945 σε απάντηση της 75943

    Απ: Γιατί γράφει κανείς Client εφαρμογές πλέον;

    Προσωπική άποψη: 

    ikyriakidis:
    Τα app στα κινητά υπάρχυν κυρίως γιατί τα κινητά σαν συσκευές έχουν περιορισμένες δυνατότητες (μικρή οθόνη, λίγη μπαταρία, λίγη μνήμη, λίγη cpu, τσεκουρεμένους browser κλπ κλπ) οπότε θέλεις να εκμεταλευτείς στο έπαρκο τις δυνατότητες της συσκευής, κάτι το οποίο γίνετε μόνο με τα native api της εκάστοτε πλατφόρμας,  αν και πολλές εταιρίες τα app τα βγάζουν σαν hybrid μισή native μισή web.

    Αστικός μύθος: Αν το τετραπύρηνο και το οκταπύρηνο επεξεργαστή εσύ το λες περιορισμένες δυνατότητες, εγώ δεν το λέω... Με 200 ευρώ αγοράζεις επώνυμo tablet που τρέχει MS-DOS, Windows 8.1 Pro. Πως ακριβώς έχει "περιορισμένες δυνατότητες";

    ikyriakidis:
    Αυτό με τις ταχύτητες Internet θα μου επιτρέψεις να το παραβλέψω γιατί καταλαβαίνω πως είσαι επηρεασμένος απο την Ελληνική πραγματικότητα, όπου το Ιντερνετ είναι ακόμα σε νηπιακό επίπεδο. Στην Ευρώπη ο κόσμος κάνει  video call στο skype μέσα στο μετρό, οπότε δεν νομίζω να υπάρχει θέμα ταχύτητας.

    Μία από τις ομορφιές του Internet είναι ότι δεν είναι ομοιόμορφο - μπορεί να υπάρχουν τα γρήγορα κομμάτια του, αλλά υπάρχουν και τα αργά κομμάτια του. Τα αργά κομμάτια του είναι συνήθως αυτά που δεν βγάζουν πολλά λεφτά. Αν έχεις ένα γραφείο, και πρέπει να έχεις remote χρήστες να μπαίνουν με VPN, να συζητήσουμε πόσο γρήγορη πρέπει να είναι η internet σύνδεσή σου, και το σημαντικότερο, από την στιγμή που το κόστος θα μείνει σε σένα και δεν θα μπορείς να το μετακυλήσεις, τι θα μπορέσεις να έχεις...

    ikyriakidis:
    Επίσης αν η Javascript είχε τα προβλήματα που αναφέρεις, δεν θα την χρησιμοποιούσαν τόσο πολύ οι μεγάλες εταιρίες, για παράδειγμα, η δημοφιλής εφαρμογή Spotify έχει όλο το interface της εφαρμογής σε js στην natvive εφαρμογή της.

    Αστικός μύθος: Αν η EcmaScript (λέγε με JavaScript) δεν είχε προβλήματα, δεν θα υπήρχε η CoffeeScript, η TypeScript και ένα κάρο άλλες (αρκετά αναλυτική λίστα εδώ: https://github.com/jashkenas/coffeescript/wiki/list-of-languages-that-compile-to-js). Δεν ξέρω αν έχεις εμπειρίες από ανάπτυξη σε node.js, αλλά όταν θα αρχίσεις να κατεβάζεις πακέτα που περιέχουν πακέτα, και δεν υπάρχει versioning των πακέτων, θα ήθελα να μου εξηγήσεις πως θα κρατήσεις σταθερές εκδόσεις για να μπορέσεις να δημιουργήσεις εφαρμογές.

    ikyriakidis:
    Όταν αναφέρεσε σε μεγάλο όγκο δεδομένων, για τι μεγέθη μιλάμε, 1mb - 1gb - 1tb? Γιατί με τα json το λύσαμε και το πρόβλημα με τα περα-δώθε που είχαμε με τα xml που βγαίνανε κανα 10αρι mb χωρίς λόγο, και υπάρχει και η Local Storage στην Html 5 με την οποία μια χαρά κάνεις τη δουλίτσα σου για τοπική αποθήκευση κλπ κλπ.

    Αστικός μύθος: Αν το JSON ήταν ο μεσσίας, δεν θα έβγαινε το BSON (δες περισσότερα http://bsonspec.org/) και ουσιαστικά θα ξανα-εφεύραμε τον τροχό...

     

    George J. 


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  21-11-2014, 12:40 75946 σε απάντηση της 75943

    Απ: Γιατί γράφει κανείς Client εφαρμογές πλέον;

    Θα μπορούσα να πω ότι μιλάω για την Αμερικάνικη πραγματικότητα, όπου η Verizon δίνει χαμηλότερες ταχύτητες DSL με μεγαλύτερο κόστος από την Ελλάδα, η AT&T δίνει χειρότερο σήμα ή καθόλου και δεν την νοιάζει λόγω μονοπωλίων. Μπορεί να ακούς για οπτικές ίνες, δεν ακούς όμως πόσο *λίγοι* μπορούν να τις αγοράσουν (λόγω διαθεσιμότητας και τιμής). Τον τελευταίο χρόνο γίνεται μεγάλη φασαρία για το θέμα, καθώς είναι εμπόδιο στη συγχώνευση Verizon και Comcast. Η Verizon πάντως ισχυρίζεται ότι κανείς δεν χρειάζεται πάνω από 10Mbps τέλος πάντων, οπότε γιατί διαμαρτύρεστε! 

    Ή θα μπορούσα να σε ρωτήσω τί προτιμάς, το Sublime Text τοπικά ή κάποιο text editor σε κάποιο site? Excel με PivotTable και απευθείας σύνδεση στη βάση ή Google Sheet που δεν δέχεται καμμία σύνδεση? GitHub for Windows ή το GitHub site (ουπς, αυτό δεν μπορεί καν να δει τα τοπικά repos). Kindle τοπικό ή Kindle Cloud? Visual Studio ή κάποιο web editor? To παλιό TweetDeck που μπορούσε να κρατήσει όλα τα tweets και να τα ψάξει, ή το καινούριο web app το οποίο σου επιτρέπει να ψάξεις μόνο όσα γουστάρει η εταιρεία? Ή φαντάσου να είσαι marketer ο οποίος θέλει να τραβάει real-time tweets για να βλέπει trends, και να τα αποθηκεύει για επεξεργασία μετά - **χωρίς** να πρέπει να ζητήσει deployment κάποιου server από το IT του.

    Αν έχεις ασχοληθεί μόνο με public facing web sites λογικό είναι να μην δίνεις μεγάλη σημασία σε θέματα που αντιμετωπίζουν άλλες κατηγορίες εφαρμογών. Για παράδειγμα, αμφιβάλλω αν το Spotify χρησιμοποιεί Javascript για τα λογιστικά του, ή για Business intelligence. Το θέμα δεν είναι αν μπορεί να γίνει κάτι, αλλά πόσο δύσκολο είναι να γίνει και πόσο γρήγορα μπορεί να τελειώσει. Η HTML 5 μπορεί να σου δίνει λίγη τοπική αποθήκευση, αλλά είναι πολύ πιο δύσκολο να τη χρησιμοποιήσεις από το να γράψεις απλά στο σκληρό. Άσε που απλά δεν υπάρχουν οι τρόποι επεξεργασίας που σου δίνει μία βάση (ακόμα και SQLite) ή κάποιο format ειδικό για τη δουλειά σου.

    Όσο για το δίκτυο δεν είναι μόνο η ταχύτητα αλλά (κυρίως) το latency. Το latency που υπάρχει σε ένα cloud environment όπως το Amazon ή το Azure είναι τέτοιο που η σύνδεση μεταξύ web server και database μπορεί να αποτύχει ή να καθυστερήσει απλά και μόνο από αυτό. Ενώ σε εφαρμογές που δουλεύουν σε εσωτερικό δίκτυο σπάνια σκέφτεσαι το retry, σε cloud environment είναι καθημερινή ανάγκη. Πού να μιλήσουμε λοιπόν για το latency μεταξύ browser και web server, είναι τόσο μεγάλο που πρέπει να αλλάξεις εντελώς την εφαρμογή. Το LinkedIn έχει πρόβλημα επειδή το API του είναι πολύ φλύαρο. Κάτι τέτοιο θα ήταν απλά αδιάφορο σε μία desktop εφαρμογή.

    Το json δεν έλυσε το πρόβλημα του όγκου των δεδομένων - δεν φτιάχτηκε ποτέ γι αυτό. Ίσα-ίσα, το πρόβλημα υπάρχει γι αυτό και υπάρχουν τα BSON και το protobuf και το response compression. Request compression δεν υπάρχει, οπότε αν θέλεις να κάνεις ένα μεγάλο request, περιμένεις. Αν θέλεις να συγκρίνεις όγκους δεδομένων, θα πρέπει να τους συγκρίνεις με ένα binary πρωτόκολλο - τα οποία επιδέχονται και request και response compression. 

    Για σκέψου μία χρηματιστηριακή εφαρμογή, όπου έρχονται συνέχεια events, τα οποία πρέπει να παρουσιαστούν στην οθόνη πολλών ατόμων, να γίνει μία ανάλυση και να ανανεωθούν γραφήματα. Ναι, υπάρχουν frameworks που δίνουν κάτι σαν το data binding του WPF, υπάρχουν web sockets για να στείλεις τα events στις εφαρμογές, αλλά τίποτε από αυτά δεν είναι τόσο εύκολο και γρήγορο όσο να το κάνεις σε μία εφαρμογή στο μηχάνημα του broker. 

    Περιπτώσεις που η Javascript δεν παίζει καθόλου - οτιδήποτε θέλει CPU, ή έστω περίπλοκη επεξεργασία. Ακόμα και να φτιάξεις thumbnails από φωτογραφίες είναι απαγορευτικό, πόσο μάλλον επεξεργασία, ή number crunching. Σε μία desktop εφαρμογή όμως μπορείς να εκτελέσεις ένα Parallel.Sum και να χρησιμοποιήσεις όλα τα cores πανεύκολα. 

    UI Latency - μία οποιαδήποτε εφαρμογή data entry έχει πρόβλημα αν υπάρχει καθυστέρηση 500ms - οι χρήστες θα αρχίσουν να γκρινιάζουν. Ναι, τα SPAs κάνουν καλύτερη δουλειά σε αυτό τον τομέα, αλλά μία desktop εφαρμογή δεν το είχε αυτό το πρόβλημα έτσι κι αλλιώς.

    Μπορώ να γράψω πολλά ακόμα, αλλά η ουσία είναι ότι υπάρχουν πολλές ανάγκες και είδη εφαρμογών, όπως και πολλοί περιορισμοί. Αν ασχολείσαι με μόνο μία κατηγορία είναι εύκολο να ξεχάσεις ότι υπάρχουν και οι άλλες, ή να νομίζεις ότι έχουν πεθάνει. 


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  21-11-2014, 15:10 75947 σε απάντηση της 75946

    Απ: Γιατί γράφει κανείς Client εφαρμογές πλέον;

    -
  •  21-11-2014, 15:30 75948 σε απάντηση της 75947

    Απ: Γιατί γράφει κανείς Client εφαρμογές πλέον;

    -

  •  21-11-2014, 16:34 75949 σε απάντηση της 75947

    Απ: Γιατί γράφει κανείς Client εφαρμογές πλέον;

    Γνωρίζω πολύ καλά τί είναι το QlikView και σίγουρα *δεν* είναι javascript ή υβριδική εφαρμογή. Χοντρή server εφαρμογή είναι. Μην μπλέκεις τον τρόπο παρουσίασης με την ίδια την εφαρμογή. Άσε που είναι προβληματικά τα ad-hoc queries - να συνδυάσεις δηλαδή διαστάσεις και οντότητες πέρα από τα ήδη καθορισμένα reports και visualizations. Η δυσκολία σχεδίασης των reports και των dashboards είναι μάλιστα ένα από τα μεγαλύτερα προβλήματα του QlikView γι αυτό μόνο οι μισοί από τους χρήστες του το έχουν ως το standard BI εργαλείο τους, σε αντίθεση με Microsoft, Oracle κλπ. 

    Όσο για την Αμερική, διάβασε λίγο τα νέα. Χαμός γίνεται, κυρίως λόγω της συγχώνευσης Verizon/Comcast και της διαμάχης για το Net Neutrality. 

    Word και Excel Online? Μάλλον δεν χρειάστηκε να κάνεις ανάλυση δεδομένων, ή να τραβήξεις δεδομένα από βάση. Δεν αρκούν τα γραφήματα του QlikView, κάποιες φορές χρειάζεσαι και τα σεντόνια. Χωρίς δυνατότητα σύνδεσης στη βάση, αυτό είναι αδύνατον, οπότε και δεν γίνεται να δουλέψεις με data στο Excel Online. Για πολλούς το PivotTable όμως είναι απαραίτητο. Το Excel επίσης μπορεί να διαβάσει και να επεξεργαστεί εκατομμύρια εγγραφές στη μνήμη, μέσω column compression. Κάτι τέτοιο δεν παίζει σε Excel Online. 

    Όσο για το Skype (που προφανώς δεν είναι javascript εφαρμογή) δουλεύει επειδή λαμβάνει υπόψη latency, καθυστερήσεις, out-of-order πακέτα, retries και στέλνει περισσότερα πακέτα απ' όσα χρειάζονται, κουκουλώνει τα χαμένα, κάνει γενικά πολύ δουλειά για να σου κρύψει τί γίνεται από πίσω.

    Το WebRTC το ξέρουμε, *θα* φέρει αυτό που desktop εφαρμογές έχουν εδώ και 20 χρόνια. Το ίδιο και το SignalR. Και για την ώρα, το Skype θα δώσει browser plugin για να δουλέψει με WebRTC γιατί δεν υπάρχει η ίδια υποστήριξη πρωτοκόλλων σε όλους τους browsers. 

    Και αυτή είναι η ουσία, το Θα. Οι web εφαρμογές ΘΑ μπορούν να κάνουν ότι και οι desktop, με την ίδια ευκολία ανάπτυξης, αλλά όχι ακόμα και όχι για τα επόμενα 5 χρόνια. Αν μάλιστα κρίνω από το πως εξελίχθηκαν τα πράγματα την τελευταία φορά που λέγανε ότι τα Network Computers (Oracle) ή το Utility computing (Sun) θα αντικαταστήσουν το desktop (κάπου το 1998), θα περιμένουμε πολύ παραπάνω.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  21-11-2014, 17:04 75950 σε απάντηση της 75947

    Απ: Γιατί γράφει κανείς Client εφαρμογές πλέον;

    Εκτός του ότι έχουμε ξεφύγει από το θέμα προ πολλού, δε μπορώ να καταλάβω ποιο είναι το νέο topic: Local vs web apps ή web interface vs native interface;

    Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!
  •  21-11-2014, 18:46 75951 σε απάντηση της 75950

    Απ: Γιατί γράφει κανείς Client εφαρμογές πλέον;

    Δεν υπάρχει topic - είναι η αντίδραση στο "Γιατί γράφει κανείς Client εφαρμογές πλέον? Υπάρχει ακόμα το WPF?? Γιατί να επενδύσει κάποιος σε αυτό και να μην πάει στο web? " το οποίο ακούγεται κάπως σαν  "Έχω σφυρί, βλέπω καρφιά". Και επειδή τα τελευταία δύο χρόνια δουλεύω σε μεγάλο (ευρωπαϊκά) travel agency hosted στο Amazon, τα latencies, το μέγεθος και η συχνότητα των requests (2MB response για μία αναζήτηση δεν είναι κουφό), τα timeouts μέσα στο ίδιο availability zone είναι καθημερινός πόνος, κάπως μου φάνηκε. Καθώς και η αγωνία κάποιων χρηστών οι οποίοι θα δουν μεν τα dashboards στο QlikView αν όμως θέλουν να σκαλίσουν για να δουν τί συνέβει θα κατεβάσουν ένα σκασμό δεδομένα στο R.

    Το ξέρατε ότι το connection timeout για τον SQL Server είναι μεν 15 sec, αλλά  αυτό καλύπτει **όλη** τη διαδικασία? To TCP connection περιμένει να γίνει σε 1.2 sec αλλιώς αρχίζουν τα retries. Αν κάτι περίεργο συμβαίνει σε ένα Amazon availability zone (που συμβαίνει συχνά), μπορείς άνετα να ξεπεράσεις το όριο. Ταχύτητα έχει μπόλικη, γιγαμπίτια ολόκληρα,  απλά εκείνο το ένα TCP connection αργεί όταν ένα μηχάνημα στη φάρμα κάνει recycle. Άσε που από το ένα στο άλλο availability zone έχεις διαφορά 1:10 στην ταχύτητα των DNS Lookups.

    Αυτό το Fallacies of Distributed Computing ?  Όποιος το έγραψε του αξίζει βραβείο


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  22-11-2014, 21:46 75955 σε απάντηση της 75951

    Απ: Γιατί γράφει κανείς Client εφαρμογές πλέον;

    Επειδή το θέμα έχει ξεφύγει από το αρχικό topic, διαχώρισα την συζήτηση και την μετέφερα εδώ.
    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  23-11-2014, 19:16 75957 σε απάντηση της 75955

    Απ: Γιατί γράφει κανείς Client εφαρμογές πλέον;

    Γράφω και τα δύο. Αποφεύγω τις web όποτε το μπορώ. Εκτός από το πρόσβαση από όλες τις συςκευές και όχι εγκατάσταση στην συσκευή του χρήστη, δεν μπορώ να δω κάτι άλλο που να τις κάνει καλύτερες από μία native εφαρμογή. 

    Το compatibility μεταξύ διαφορετικών browsers είναι προβληματικό. Η ανάπτυξη της γλώσσας σε ρυθμούς χελώνας και επάνω σε όλα αυτά έχεις τρεις εταιρείες, που δεν το θέλουν τόσο πολύ. Φανταστείτε να δώσει η apple πρόσβαση σε ρουτίνες του λειτουργικού της στον browser. Πάει το μαγαζί, το έκλεισε την άλλη ημέρα. Γιατί να κάνω upload εφαρμογή και να μου τσιμπήσει το 30%.  

    Γλώσσα με αργό ρυθμό αναβαθμίσεων, incompatibilities μεταξύ browsers, εταιρείες που δεν θέλουν να προχωρήσουν πιο γρήγορα. Και ρωτάς ακόμα γιατί; Εγώ με το ανάποδο εντυπωσιάζομαι. Γιατί γίνεται τόσος ντόρος... 

    Αν δούλευες μια οποιαδήποτε γλώσσα προγραμματισμού με αυτά τα μειονεκτήματα θα την παρατούσες καιρό πιο πριν και ούτε καν θα ρωτούσες το γιατί.  

  •  02-12-2014, 16:04 75994 σε απάντηση της 75949

    Απ: Γιατί γράφει κανείς Client εφαρμογές πλέον;

    -

     

     

     

     

     

Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems