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

Ποια θεωρειται η καλυτερη γλωσσα προγραμματισμου για αναπτυξη εφαρμογων;


work_hard_play_harder

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

Το point μου είναι το εξής:

 

Αν απλά θέλει να φτιάχνει κανείς web apps, γιατί να μην πάει κατευθείαν στο καλύτερο εργαλείο/γλώσσα για τη δουλειά αυτή; Στις περισσότερες περιπτώσεις αυτά τα εργαλεία ενσωματώνουν πράγματα που εμείς, αν τα δημιουργούσαμε από την αρχή δε θα σκεφτόμασταν καν. Οπότε, αν ο σκοπός σου δεν είναι να φτιάξεις ένα τέτοιο εργαλείο, τότε γιατί να μην το χρησιμοποιήσεις έτσι όπως είναι για να προσφέρεις κάτι χρήσιμο μέσω αυτού;

 

Assembly πιστεύω χρειάζεται να γνωρίζεις (τουλάχιστον τα βασικά γνωρίσματα κάθε αρχιτεκτονικής), αν όντως κυμαίνεσαι σε τέτοια επίπεδα και όντως ξέρεις που θα χρειαστεί. Η inline assembly είναι παγίδα, αν πχ θέλεις να τη χρησιμοποιήσεις για βελτιστοποίηση. Debugging λογισμικού σε πολύ χαμηλό επίπεδο, για γλώσσες που παράγουν assembly. Και πάλι κυρίως αν αναπτύσσεις backends compilers ή ασχολείσαι με κάποιου είδους instrumentation και αν ασχολείσαι με embedded (fpgas κα).

 

Ας πούμε εσύ είπες για Delphi 3. Δεν την γνωρίζω την γλώσσα. Εφόσον είπες για 30 χρόνια πριν θα την αντικαταστήσω με C. Γιατί ο άλλος να φτιάξει μία τέτοια διαδικτυακή εφαρμογή με C; Τι θα κερδίσει, αν αυτό που θέλει μόνο είναι να φτιάξει την εφαρμογή;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ο λογος που ειπα για την delphi ειναι επειδη οταν μαθεις ( pascal ) γιατι pascal ειναι στην ουσια και δεν θες να κατσεις να ασχοληθεις με SDK απο android , ή με X-Code για Ios τοτε απλα με μια γλώσσα μπορεις και κανεις οτι θες.

Οσο αφορα το Inline asm , δεν ξέρω στην c++ αλλα στην delphi αν τις ιδιες ρουτινες της κανεις με pascal και της συγκρινεις με inline asm rutines τοτε ειναι περιπου 5 φορες ταχυτερες ( εξαρτατε και ποσο optimize εχουν ) 

και οπως ειπα πριν θεωρω οτι οποος δηποτε σεβεται την δουλεια του πρεπει να μαθει τουλαχιστον 10-20 εντολες assembly για να καταλαβει την αφαιρετικη νοοτροπια.

δεν διαφωνω σε κατι μαζι σου.Ο λογος που ανεφερα την delphi 3 ειναι για να δειξω οτι ακομα και με μια γλωσσα 30ατιας μπορεις να κανεις παπαδες. 
 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Μας έχετε τρελάνει με την Assembly όυτε καν γλώσσα προγραμματισμού είναι.

 

Παλικάρια, η καλύτερη γλώσσα προγραμματισμού είναι εκείνη που σε κάνει να αγαπάς τον προγραμματισμό , είναι εκείνη που σε κινητοποιεί να μάθεις , να εξερευνήσεις και να αναρωτηθείς. Να χρησιμοποιήσεις αυτό το εργαλείο μέσα στο κρανίο.

 

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

 

Στο τέλος αυτό που μετράει περισσότερο είναι το κίνητρο, όταν υπάρχει κίνητρο όλα τα άλλα είναι θέμα χρόνου να λυθούν. Και αυτός που θέλει βρίσκει λύσεις στα πάντα. Καμμία γλώσσα προγραμματισμού δεν θα σε κάνει καλό προγραμματιστή. Αυτό είναι καθαρά στο χέρι σου, τα υπόλοιπα είναι μπούρδες για να περνάμε την ώρα μας.

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αυτή τη γλώσσα (assembly) (αν είναι γλώσσα) προσπάθησα να την αγγίξω άλλα δεν τα κατάφερα. Χρειάζονται πάρα πολλά για να κάνεις κάτι πολύ απλό. Μετά αλλάζουν οι αρχιτεκτονικές, οι μνήμες, αλλάζουν οι επεξεργαστές  και φτου και απ\ την αρχή, κάτι που δεν συμβαίνει με τις άλλες γλώσσες (high level).

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αυτή τη γλώσσα (assembly) (αν είναι γλώσσα) προσπάθησα να την αγγίξω άλλα δεν τα κατάφερα. Χρειάζονται πάρα πολλά για να κάνεις κάτι πολύ απλό. Μετά αλλάζουν οι αρχιτεκτονικές, οι μνήμες, αλλάζουν οι επεξεργαστές  και φτου και απ\ την αρχή, κάτι που δεν συμβαίνει με τις άλλες γλώσσες (high level).

 

Δεν έχει κάτι το περίεργο η assembly αν πρωτίστως έχεις γνώσεις ψηφιακής λογικής/σχεδίασης, οπότε και αντιλαμβάνεσαι τις διάφορες μονάδες που ολοκληρώνουν τη αρχιτεκτονική ενός επεξεργαστή, πχ καταχωρητές, αθροιστές, ολισθητές, κλπ και δεν αντιμετωπίζεις τον επεξεργαστή σαν ουρανοκατέβατο black-box.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το ονομα του τοπικ ειναι :

Ποια θεωρειται η καλυτερη γλωσσα προγραμματισμου για αναπτυξη εφαρμογων;

Γιατι συνεχιζεται να μιλατε για assembly ; 

  • Like 3
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Προγράμματα σε Assembly για χρήση του Win32

http://sebastien.kirche.free.fr/rosasm_mirror/RosAsm/applications/YeoHhs/geocities/index_geo.htm

 

Δεν είναι ότι πιο εύκολο αλλά όλα μια συνήθεια είναι. Φυσικά θα πήγαινε κανείς σε Assembly για κάτι πολύ γρήγορο στην εκτέλεση. Όμως αν κάτι εξαρτιέται περισσότερο από ρουτίνες του λειτουργικού τότε δεν έχουμε μεγάλο κόστος σε ταχύτητα αν χρησιμοποιούμε μια άλλη γλώσσα. Η c++ προφανώς είναι η ανώτερη για το σκοπό αυτό, και ταχύτητα και ανάπτυξη εφαρμογών. Από τη στιγμή όμως που μιλάμε για εφαρμογή πάμε σε "δέσιμο" με το σύστημα που θα τρέξει, άρα η όποια συμβατότητα στο μέλλον με άλλα λειτουργικά ...δεν είναι εγγυημένη. Βασικές ρουτίνες μπορεί να τρέχουν πάντα αλλά αυτές δεν είναι η εφαρμογή!

Άρα όταν λέμε ανάπτυξη εφαρμογών αναφερόμαστε σε ένα τελικό προϊόν για ένα συγκεκριμένο λειτουργικό. Αν τώρα προτιμηθεί μια λύση για εικονική μηχανή...π.χ. java ή python (νομίζω και αυτή το ίδιο κάνει με τη java, τρέχει σε δικό της περιβάλλον), τότε αφενός θα έχουμε μια εφαρμογή αλλά...εκτός από το λειτουργικό προσθέτουμε ένα επίπεδο επιπλέον ...την εικονική μηχανή!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Εγώ δεν έχω σπουδάσει, με από απολυτήριο ΤΕΛ ως προγραμματιστής είμαι, αλλά από το 1997 που τελείωσα με το Στρατό εργάζομαι σχετικά και από το 2003 Αγγλία μάλιστα.

 

Να σου κόβει και μεράκι χρειάζονται, γιατί ο προγραμματισμός είναι 80% art και inspiration και 20% γνώση των τεχνολογιών.

Προγραμματισμός είναι 1η μέρα στην δουλειά, να σου δώσουν ένα πλαστικό κουτί με κάμποσες τρύπες, και μία σου πουν γράψε εφαρμογή για να ελέγχεις την κίνηση στο λιμάνι του Esbjerg (Δανία), με βάση αυτό και τις συσκευές που είναι εκεί (laser, groundloops, weighbridges) εγκατεστημένα.

 

 

27ibfs2475g4ayyb.jpg

 

 

Χωρίς να έχεις ξαναδεί τέτοια συσκευή στην ζωή σου, ούτε κανείς άλλος από τους συναδέλφους ή managers να έχουν ιδέα επίσης.

Και να το κατεφέρνεις σε πολύ μικρό χρόνο σε σχέση με αυτόν που σου είχαν στη διάθεση :)

Χώρια που να είναι αποτελεσματικός, να δουλεύει σε λιμάνι όπως του Goteborg, με 8 πύλες και συνέχη κίνηση

Προγραμματισμός είναι 1η μέρα στην δουλειά, να σου δώσουν ένα τούβλο και να σου πουν να το λιώσεις και να κάνεις τσιπ πιριτιου και επεξεργαστή τον οποίο να προγραμματίσεις ώστε να ελέγχει τα άλλα τούβλά, και μετά να ελέγχεις και το ματριξ.

 

ΕΕΕΛΛΛΛΛΛΕΕΕΕΕΕΕΕΕΕΟΟΟΟΟΟΟΟΟΟΟΣΣΣΣΣΣΣΣΣΣΣΣΣ

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Φιλτάτοι, η Assembly δεν είναι γλώσσα προγραμματισμού, είναι γλώσσα μηχανής που απλά είναι λίγο πιο ευανάγνωστη.

 

Απόδειξη το γεγονός ότι εξαρτάται απο ποιον επεξεργαστή την εκτελέσεις , διαφορετικές αρχιτεκτονικές επεξεργαστή , άλλη γλώσσα μηχανής, άλλη Assembly.

 

Δεν το συζητάμε κάν οτι δεν περιέχει βασικές έννοιες προγραμματισμόυ. Μιλάμε για άλλη διάσταση και αν δεν έχεις βαθεία κατανόηση του hardware δεν πας ουτε βήμα πιο κάτω.

 

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

 

Πλέον η γνώση Assembly είναι απο πολύ ώς εντελώς ασήμαντη. H C/C++ παράγει πολύ έξυπνο και γρήγορα κώδικα μηχανής και για να τον ανταγωνιστείς θέλει τεράστιες γνώσεις αρχιτεκτωνικής και φυσικά είναι και 10 φορε πιο εύκολο να γράψεις κώδικα. Και εννοείται ο κώδικας δεν αλλάζει αναλογα και με τον επεξεργαστή ή ακόμα και το λειτουργικό.

 

Με λίγο λόγια , αν θέλετε κάτι δύσκολο προτιμήστε το αυτομαστίγωμα είναι λιγότερα επίπονο και πολύ πιο αποτελεσματικό γιατί με την Assembly θα κάνετε μια ωραία τρύπα στο νερό.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Φιλτάτοι, η Assembly δεν είναι γλώσσα προγραμματισμού, είναι γλώσσα μηχανής που απλά είναι λίγο πιο ευανάγνωστη.

 

Απόδειξη το γεγονός ότι εξαρτάται απο ποιον επεξεργαστή την εκτελέσεις , διαφορετικές αρχιτεκτονικές επεξεργαστή , άλλη γλώσσα μηχανής, άλλη Assembly.

 

Δεν το συζητάμε κάν οτι δεν περιέχει βασικές έννοιες προγραμματισμόυ. Μιλάμε για άλλη διάσταση και αν δεν έχεις βαθεία κατανόηση του hardware δεν πας ουτε βήμα πιο κάτω.

 

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

 

Πλέον η γνώση Assembly είναι απο πολύ ώς εντελώς ασήμαντη. H C/C++ παράγει πολύ έξυπνο και γρήγορα κώδικα μηχανής και για να τον ανταγωνιστείς θέλει τεράστιες γνώσεις αρχιτεκτωνικής και φυσικά είναι και 10 φορε πιο εύκολο να γράψεις κώδικα. Και εννοείται ο κώδικας δεν αλλάζει αναλογα και με τον επεξεργαστή ή ακόμα και το λειτουργικό.

 

Με λίγο λόγια , αν θέλετε κάτι δύσκολο προτιμήστε το αυτομαστίγωμα είναι λιγότερα επίπονο και πολύ πιο αποτελεσματικό γιατί με την Assembly θα κάνετε μια ωραία τρύπα στο νερό.

Η Assembly είναι γλώσσα προγραμματισμού. Απλά για να μεταφραστεί δε χρειάζεται compiler, αλλά Assembler. Το γεγονός ότι διαφέρει από αρχιτεκτονική σε αρχιτεκτονική (ή/κα μικροαρχιτεκτονική) δε σημαίνει πως δεν είναι γλώσσα. Με αυτή τη λογική και οι γλώσσες που δε μπορούν χωρίς τις VM από κάτω, πχ Java, δεν είναι γλώσσες.

 

Αν φτιάξεις έναν επεξεργαστή, με ποια γλώσσα προγραμματισμού θα τον δουλεύεις μέχρι να φτιάξεις compiler backends; Με C;

 

ΣΗΜΕΙΩΣΗ: Δεν είμαι της άποψης ότι πρέπει να χρησιμοποιείται για την ανάπτυξη εφαρμογών ή ακόμη και για βελτιστοποιήσεις, αλλά υπάρχει και ανάλογα στο επίπεδο του stack που κυμαίνεται κανείς μπορεί να του φανεί χρήσιμη.

  • Like 2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ναι δεν αντιλέγει κανείς ότι η Assembly είναι η χαμηλότερη βαθμίδα στις γλώσσες προγραμματισμού, αλλά είναι γλώσσα με την έννοια ότι έχεις εντολές. Ανάλογα με τον Assembler έχεις και ευκολίες ως προς το που θα μπουν τα δεδομένα, μερικά macro για ευκολία, όπως και άμεσα για κλήσεις στο λειτουργικό. Σημασία έχει ότι πρόγραμμα φτιάχνεις! Αλλά αν ζητάς κάτι απλό γιατί να το κάνεις με το δύσκολο τρόπο.

 

Οπότε το καλύτερο μάλλον πάει στο αποδοτικό ως συνάρτηση ευκολίας και απόδοσης.(να γιατί δεν προτείνω τη Μ2000 γιατί παρά την ευκολία να γράψει κανείς πρόγραμμα δεν είναι αποδοτική όπως ένας compiler)

 

Αυτό εδώ το "φιδάκι"  έχει μικρό κώδικα αλλά πολύπλοκο (σε μαθηματικά) αφού στήνει την οθόνη ανεξάρτητα από το μέγεθος και την αναλογία της. Για να το φτιάξω έκανα την απλή δουλεία να το κάνω τμηματικά και με δοκιμές. Στο τέλος το εμπλούτισα όπως ήθελα. Αυτός ο τρόπος προγραμματισμού, από το απλό να πας στο σύνθετο πρέπει να στο προσφέρει μια γλώσσα. Πρέπει να μπορείς γρήγορα να διορθώνεις.

 

Με τη χρήση αντικειμένων έχεις το πλεονέκτημα να προσθέσεις λογική χωρίς να πειράξεις αλλού που έχεις ήδη εκμεταλλευτεί τα αντικείμενα με υπάρχουσες ιδιότητες. Όμως δεν είναι τα αντικείμενα το απόλυτο καλό, αφού ο έλεγχος είναι δυσκολότερος (μιλάμε με το σκεπτικό ότι το αντικείμενο θα γίνει ένα "μαύρο κουτί", που δεν θα μας νοιάζει μέσα τι κάνει). Πάλι δηλαδή θες δοκιμές!

 

Πριν μερικές μέρες αναφέρθηκαν εδώ τα junit και άλλα καλούδια για δοκιμές (κύρια για αντικείμενα). Δηλαδή πρέπει να δούμε ολοκληρωμένα την εικόνα της γλώσσας για ανάπτυξη εφαρμογών, όχι μόνο πώς τα καταφέρνει σε αλγόριθμους, αλλά και τι εργαλεία έχει ο προγραμματιστής (και πόσο κατανοητά είναι).

 

Π.χ. στη Μ2000, έχεις την αίσθηση των παλιών μηχανημάτων όπου μπαίνεις στη λίστα αλλάζεις, βγαίνεις και τρέχει, το σταματάς πας για αλλαγή και πάλι το ίδιο. Θα ήθελα να το δω αυτό στην Python, αλλά εκεί ή έχεις μια κονσόλα και γράφεις ξερά τι θέλεις χωρίς να μπαίνεις για διόρθωση (αν κάνω λάθος διορθώστε με), ή πρέπει να γράφεις σε κάποιο επεξεργαστή κειμένου και να το στέλνεις για εκτέλεση, Δεν είναι το ίδιο. Στη Μ2000 ορίζεις γενικές μεταβλητές και μπορείς να αφήσεις αποτελέσματα εκεί, χωρίς να φύγεις από το περιβάλλον. Δεν ξέρω αν υπάρχει Python που να παίζει με breakpoints και όλα να είναι σε ένα IDΕ. (Είναι ωραία σαν γλώσσα και έχει δυνατότητες, και μάλιστα τελευταία έχω την εντύπωση ότι ξεπερνάει τη Java..)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Η Assembly είναι γλώσσα προγραμματισμού. Απλά για να μεταφραστεί δε χρειάζεται compiler, αλλά Assembler. Το γεγονός ότι διαφέρει από αρχιτεκτονική σε αρχιτεκτονική (ή/κα μικροαρχιτεκτονική) δε σημαίνει πως δεν είναι γλώσσα. Με αυτή τη λογική και οι γλώσσες που δε μπορούν χωρίς τις VM από κάτω, πχ Java, δεν είναι γλώσσες.

 

Αν φτιάξεις έναν επεξεργαστή, με ποια γλώσσα προγραμματισμού θα τον δουλεύεις μέχρι να φτιάξεις compiler backends; Με C;

 

ΣΗΜΕΙΩΣΗ: Δεν είμαι της άποψης ότι πρέπει να χρησιμοποιείται για την ανάπτυξη εφαρμογών ή ακόμη και για βελτιστοποιήσεις, αλλά υπάρχει και ανάλογα στο επίπεδο του stack που κυμαίνεται κανείς μπορεί να του φανεί χρήσιμη.

 

 

Uno momento seniore , δηλαδή μου λες τώρα εσύ οτι αν πάρω την Java και την βγάλω απο την JVM θα πρέπει να της αλλάξω την σύνταξη ?

 

Δηλαδή ο python που τρέχει σε java ή σε pypy δεν είναι python ? Που μιλαμε για εk διαμέτρου αντίθετα backends

 

H γλώσσα δεν αλλαζει αν τρέχει σε άλλη αρχιτεκτονική , για αυτό έχουμε Python και Java που τρέχει παντού ακόμα και σε embeded, mobile devices κτλ κτλ

 

Απο την άλλη η Assembly εξαρταται κατα κόρον απο την αρχιτεκτονική συστηματος, αλλάζουν οι εντολές της, οι register , πως επαναλαμβάνει κώιδκα , μιλαμε και θεμελειώδη στοιχεία της γλώσσας. Και οι εντολές της είναι καρμπόν εντολές μηχανής, μιλάμε εντελώς καρμπόν , το μόνο που αλλάζει είναι οτι αντι να χρησιμοποιεί δυαδικό συστημα χρησιμοποιεί γραμματάκια για να σου κάνει την ζωή ελάχιστα πιο ευκολη.

 

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

 

Τώρα αν εσείς με το έτσι θέλω την λέτε γλώσσα προγραμματισμού, παω πάσο εγώ θα την λέω Τζάμπο το Ελεφαντάκι.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

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

Σύνδεση

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

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