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

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

Δημοσ.

Το μέλλον, σύμφωνα με τα σημερινά δεδομένα (γιατί αυτά τα πράγματα είναι ρευστά) είναι το parallelization... τομέας στο οποίον το oop καλώς ή κακώς υστερεί εκ φύσεως. Όσο για το τι πρέπει να μάθει κάποιος που θέλει να ασχοληθεί σοβαρά με το άθλημα, η δική μου πρόταση είναι: όσα περισσότερα μπορεί, και procedural και oop και functional ... για το παρόν. Για το μέλλον θα δείξει.

  • Απαντ. 40
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Συχνή συμμετοχή στο θέμα

Δημοσ.

Το ότι μπορείς να γράψεις μια ΒΔ σε C ή C++ με γραφικό περιβάλλον κτλ φυσικά γίνεται και μάλιστα με εξαιρετικά κομψά αποτελέσματα αλλά ο κόπος που απαιτείται συγκριτικά με την ανάπτυξη της σε μια πιο μοντέρνα γλώσσα (πχ. C#) και ένα ενιαίο framework (πχ. .NET ή VCL) είναι κατά την ταπεινή μου άποψη πολύ μεγαλύτερος ακόμα και αν είσαι αρκετά έμπειρος προγραμματιστής καθώς η C (λιγότερο η C++ αν δεν σε σαγηνεύουν βέβαια οι εξωτικές τεχνικές της) επιτρέπει απροσεξίες που μόνο ειδικά εργαλεία μπορούν να ανιχνεύσουν όσο το μέγεθος του κώδικα (της πολυπλοκότητας κτλ) αυξάνει. Υπό το πρίσμα αυτό λοιπόν σαφέστατα κάποια εργαλεία υπερτερούν από κάποια άλλα σε κάποιες εργασίες και αντίστροφα, οπότε "use the right tool!" κάθε φορά.

 

Υ.Γ.

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

Δημοσ.

...

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

 

Αυτό ακριβώς είναι το key-point που προσπάθησα να θίξω κι εγώ, πιο... περιφραστικά :lol:

Δημοσ.

Αυτό ακριβώς είναι το key-point που προσπάθησα να θίξω κι εγώ, πιο... περιφραστικά :lol:

Yeap! Το "αξίωμα" αυτό συνήθως οι περισσότεροι το ξεχνάνε :D

Δημοσ.

"Ο συντομότερος δρόμος είναι αυτός που γνωρίζει καλύτερα..."

 

Αυτό θα το στήριζε μόνο ένας φιλόλογος.

 

Εγώ είμαι υπέρ της αρχής : Ο συντομότερος δρόμος (δηλαδή ο δρόμος με την μικρότερη απόσταση απ'το σημείο εκκίνησης έως το τέρμα) είναι αυτός που καλύπτει την μικρότερη απόσταση.

 

Πως σας φαίνεται αυτό; Λίγο μαθηματικό-ρεαλιστικό ακούγεται.

Δημοσ.

Yeap! Το "αξίωμα" αυτό συνήθως οι περισσότεροι το ξεχνάνε :D

 

Έτσι, φίλε DirectX! :)

 

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

Δημοσ.

Έτσι, φίλε DirectX! :)

 

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

 

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

 

Δηλαδή θέλεις να μου πεις πως 4 < 2 διότι είμαι οικείως με τον αριθμό 4; Όχι εγώ θα λεγα ότι γνωρίζω δεν γνωρίζω τον αριθμό 2 αυτός είναι και ο μικρότερος (συντομότερος). Εάν είναι έτσι θα καθόμουν κάθε φορά που θέλω να μιλήσω με κάποιον από απόσταση να εφεύρω το τηλέφωνο. Όμως δεν το κάνω και μάντεψε γιατί! Γιατί κάποιος άλλος το έκανε, εγώ αν ήθελα να ασχοληθώ με την τεχνολογία αυτή θα δούλευα κάτι πάνω σε αυτό που ήδη υπάρχει αφού αποδεδειγμένα μας πήγε μπροστά.

 

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

Δημοσ.

"Ο συντομότερος δρόμος είναι αυτός που γνωρίζει καλύτερα..."

 

Αυτό θα το στήριζε μόνο ένας φιλόλογος.

 

Εγώ είμαι υπέρ της αρχής : Ο συντομότερος δρόμος (δηλαδή ο δρόμος με την μικρότερη απόσταση απ'το σημείο εκκίνησης έως το τέρμα) είναι αυτός που καλύπτει την μικρότερη απόσταση.

 

Πως σας φαίνεται αυτό; Λίγο μαθηματικό-ρεαλιστικό ακούγεται.

 

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

 

EDIT:

Κι οι άλλοι που θα το έχουν βελτιώσει το αμάξι τους με έτοιμες βελτιώσεις του εμπορίου ή custom, από τις πρώτες 3-4 μέρες, μπορεί να έχουν πάει και να έχουν έρθει καμιά ντουζίνα χιλιάδες φορές στο μεταξύ.

Δημοσ.

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

 

 

Εγώ προσωπικά γιατί λες "εσύ" να είσαι σίγουρος ότι θα μάθαινα να οδηγώ ελικόπτερο το πολύ μέχρι να φτάσουν 1 φορά στον προορισμό τους. Εν τέλει +1 άνθρωπος που ξέρει να οδηγεί ελικόπτερο... Η ηττοπάθεια δεν είναι προσόν μου.

Δημοσ.

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

...

Είμαι σίγουρος!

Δημοσ.

"Ο συντομότερος δρόμος είναι αυτός που γνωρίζει καλύτερα..."

 

Αυτό θα το στήριζε μόνο ένας φιλόλογος.

 

Εγώ είμαι υπέρ της αρχής : Ο συντομότερος δρόμος (δηλαδή ο δρόμος με την μικρότερη απόσταση απ'το σημείο εκκίνησης έως το τέρμα) είναι αυτός που καλύπτει την μικρότερη απόσταση.

 

Πως σας φαίνεται αυτό; Λίγο μαθηματικό-ρεαλιστικό ακούγεται.

 

Αν μιλάμε μαθηματικά ή περιπατιτικά φυσικά, αν μιλάμε τώρα για ανάπτυξη λογισμικού τούτο δεν ισχύει διότι εκεί υπάρχει και υπερισχύει η εμπειρία, η πείρα η οποία κάνει την διαφορά στην ταχύτητα διάσχισης των σημείων. Συνεπώς, αν κάποιος είναι άριστος γνώστης της C και μπορεί να αναπτύξει σε αυτή το ζητούμενο (μια ΒΔ) φυσικά μπορεί να το πράξει ταχύτερα από το να υποχρεωθεί να κάνει το ίδιο σε C# που του είναι άγνωστη ή δεν έχει μεγάλη εξοικείωση μαζί της, παρόλο που συνολικά η ανάπτυξη ενός τέτοιου λογισμικού είναι ταχύτερη σε C# από ότι σε C. Άρα εδώ η θέση σου δεν ισχύει διότι συγκρίνει ανόμοια μεταξύ τους πράγματα, όμως παρόλα αυτά έχεις (όπως προείπα άλλωστε σε προγενέστερο post μου) δίκιο διότι αν ο προγραμματιστής αποφασίσει να αφιερώσει χρόνο στην εκμάθηση πχ. της C# θα διευκολύνει οπωσδήποτε περισσότερο τον εαυτό του (αν και αυτό το γνωρίζει μόνο ο ίδιος -δεν είναι απαραίτητο) και ίσως γίνει ταχύτερος. Αλλά αυτό θα πρέπει να το κάνει δίχως πίεση χρόνου να παραδώσει ένα σοβαρό project διότι δεν φταίει σε τίποτα ο "αναθέτον αυτό" να γίνει πειραματόζωο του μαθητευόμενου (σε μια νέα γλώσσα) προγραμματιστή. Συνεπώς αν σου ζητηθεί "κάτι" που γνωρίζεις ήδη πως γίνεται και δεν έχεις χρόνο να μάθεις έναν νέο τρόπο (και δεν θες να ρισκάρεις ή δεν σε παίρνει να ρισκάρεις) χρησιμοποίησε αυτά που ξέρεις (για να τελειώσεις μια ώρα αρχύτερα -δίχως bugs και άλλες ταλαιπωρίες).

Δημοσ.

...

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

...

Ακόμα κι αυτό δεν είναι απόλυτο. Βασικά στις μέρες μας σχεδόν τίποτα δεν είναι απόλυτο.

 

Για να εξηγήσω τι εννοώ στο συγκεκριμένο παράδειγμα με την ΒΔ, αν ξέρεις ήδη C όχι μόνο είναι πολύ ταχύτερο να μάθεις (αν δεν ξέρεις ήδη) π.χ. το MySQL connector API από το να μάθεις μια άλλη γλώσσα, αλλά μαθαίνοντάς το γίνεσαι σε C συγκρίσιμα παραγωγικός στη διαχείριση ΒΔ με όσους χρησιμοποιούν π.χ. Java, C#, PHP, κλπ για την ίδια δουλειά.

Δημοσ.

Ακόμα κι αυτό δεν είναι απόλυτο. Βασικά στις μέρες μας σχεδόν τίποτα δεν είναι απόλυτο.

 

Για να εξηγήσω τι εννοώ στο συγκεκριμένο παράδειγμα με την ΒΔ, αν ξέρεις ήδη C όχι μόνο είναι πολύ ταχύτερο να μάθεις (αν δεν ξέρεις ήδη) π.χ. το MySQL connector API από το να μάθεις μια άλλη γλώσσα, αλλά μαθαίνοντάς το γίνεσαι σε C εφάμιλλα παραγωγικός στη διαχείριση ΒΔ με όσους χρησιμοποιούν π.χ. Java, C#, PHP, κλπ για την ίδια δουλειά.

 

Είναι μια ρεαλιστική άποψη, από την άλλη πλευρά θεωρώ ότι το μυστικό όσον αφορά περισσότερο μοντέρνα frameworks (και τις γλώσσες τους) είναι το κούμπωμα που προσφέρουν μεταξύ των υπηρεσιών τους σε επίπεδο φιλοσοφίας (καθώς έχουν μια κοινή αρχιτεκτονική / δομή) και εφαρμογής (API) οπότε μαθαίνοντας ένα τμήμα τους είναι αρκετά εύκολο μετά να μάθεις και ένα ακόμα κτλ χτίζοντας και επεκτείνοντας την εξοικείωση μαζί τους. Πράγμα που με ξέχωρες μεταξύ τους του βιβλιοθήκες δεν ισχύει καθώς οφείλεις να μάθεις τις ιδιαιτερότητες τους και ύστερα να τις κουμπώσεις (με το ανάλογο middleware) μεταξύ τους ώστε να πάρεις ένα συνολικό αποτέλεσμα. Δεν λέω ότι δεν γίνεται, κάθε άλλο! - απλά προσωπικά δεν το προτιμώ (αν και υπό συνθήκες μπορεί να είναι απαραίτητο).

Δημοσ.

Έτσι όπως το λες είναι φίλε DirectX!

 

Επί της ουσίας οι HL C-derived γλώσσες είναι άμεσα συγκρίσιμες με C + libraries/APIs, με την ειδοποιό διαφορά πως οι HL έχουν στανταρισμένα libraries/APIs που συνήθως μοιράζονται πακέτο μαζί με τη γλώσσα ( π.χ STL ) ή/και το λειτουργικό (π.χ. .net) προς διευκόλυνση και portability.

 

Η κάθε προσέγγιση έχει τα υπέρ και τα κατά της, για αυτό και χρειάζονται και τα μεν και τα δε, συχνά ακόμα και στο ίδιο πρότζεκτ.

Δημοσ.

Δεν μπαίνω στην διαδικασία να συγκρίνω γλώσσες προγραμματισμού γιατί η κάθε μία έχει τα υπέρ και τα κατά της. Δυστυχώς κάθε γλώσσα έχει λίγο πολύ και τα όρια της. Σε καμία περίπτωση δεν θα συγκρίνουμε την C# και το .NET με την C. Manages VS Unmanaged code. Φίλε migf1, όσο και αν δεν μας αρέσει, επειδή κάποτε έφερα βόλτα πολλές εταιρείες για να βρω δουλειά, όντας άνεργος, σε καμία εδώ στην Ελλάδα, δεν μου είπαν ότι θα δουλέψω σε C. .NET, Java και στην χειρότερη C++. Για C ούτε κουβέντα. Δεν έχει εμπορική εφαρμογή δυστυχώς. Για εμένα αυτή η γλώσσα αποτέλεσε την αφετηρία για να μάθω τα βασικά εώς προχωρημένα θέματα προγραμματισμού, με έμαθε να προγραμματίζω, για να πάω αργότερα πχ σε Java και να έχω ένα X υπόβαθρο. Τώρα, τα βλέπουμε και μόνοι μας στο forum, η C, χρησιμοποιείται κατά κόρον στις σχολές για να μαθαίνουν οι νέοι για λιστούλες, stackούλες(στοιβούλες) κτλ. κτλ. Σιγά σιγά, την πετάνε και αυτήν και ξεκινούν με αντικειμενοστρεφής γλώσσες, πχ πρώτο εξάμηνο Java. Καλύτερα πιστεύω γιατί πρέπει να αποκτήσουν και στις σχολές επαφή με γλώσσες προγραμματισμού που μπορείς να δημιουργήσεις μία εφαρμογή με GUI, χωρίς να φτύσεις αίμα. Προσωπική εμπειρία, έχω τελειώσει μία από τις καλύτερες σχολές στην Ελλάδα της Πληροφορικής, και μέχρι το τέλος, δεν μας είχαν δείξει ούτε μία εφαρμογή πως να την φτιάξουμε οπτικά. C/C++ τα πάντα μία κονσόλα και δώσε και μεγάλη βάση σε linux (λειτουργικά συστήματα και τέτοια). Δεν διαφωνώ ότι αυτά μου έδωσαν κάτι πολύ δυνατό, αλλά όταν βγήκα, ήμουν στο μηδέν και χρειάστηκε να μελετήσω από το μηδέν για να ζητήσω δουλειά. Αυτό είναι σίγουρα κάτι που το έχουν αντιμετωπίσει πολλοί.

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

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

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

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

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

Σύνδεση

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

Συνδεθείτε τώρα

  • Δημιουργία νέου...