Αγαπημένη γλώσσα προγραμματισμού

Νέες τεχνολογίες, ηλεκτρονικά, ηλεκτρολογικά, μηχανολογικά, ρομποτική, σχετικές κατασκευές κ.ά.

Επιλέξτε μια γλώσσα

C
2
8%
C++
2
8%
Java
0
Δεν υπάρχουν ψήφοι
Python
10
40%
JavaScript
3
12%
Ruby
1
4%
C#
1
4%
.NET
1
4%
PHP
0
Δεν υπάρχουν ψήφοι
Visual Basic
1
4%
Άλλο
4
16%
 
Σύνολο ψήφων: 25

Άβαταρ μέλους
foscilis
Δημοσιεύσεις: 24551
Εγγραφή: 21 Ιουν 2018, 11:42

Re: Αγαπημένη γλώσσα προγραμματισμού

Μη αναγνωσμένη δημοσίευση από foscilis » 12 Φεβ 2024, 17:48

break έγραψε:
12 Φεβ 2024, 17:20

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

Ναι αλλά "η θέση της" ήταν να σου δίνει όλα όσα χρειάζεσαι για να γράψεις εφαρμογές web (καθώς και cross-platform σκριπτάκια) σε έναν μόνον interpreter. Που καμία άλλη γλώσσα δεν το έκανε. Και ούτε το κάνει ακόμα, απ' όσο ξέρω. Έχει βέβαια και οικοσύστημα που λέει ο Imperium αλλά το σημαντικό είναι αυτό το "batteries included". Το ίδιο με την Python. Επίσης αμφότερες κάνουν πολύ πιο εύκολο να ενσωματώσεις μια βιβλιοθήκη C απ' ό,τι το κάνει η Java. Και αν μπορείς να ενσωματώσεις βιβλιοθηκη C, μπορείς και να τη σκριπτάρεις. Και ξαφνικά το οικοσύστημά σου είναι κάτι δεκάδες δισεκατομμύρια γραμμές έτοιμου κώδικα.

Αυτά τα πρακτικά πράγματα έχουν ΠΟΛΥ μεγαλύτερη σημασία από τη σύνταξη ή τη θεωρητική κομψότητα. Και όπως έδειξα με το παράδειγμα της Scala, δεν είναι τόσο εύκολο να τα πετύχεις σωστά.

Βέβαια και η PHP χιπστέρεψε τώρα τελευταία. Την προηγούμενη εβδομάδα ανακάλυψα ότι ένα report που είχαμε γράψει γύρω στο 2017 είχε σταματήσει να παίζει γιατί αποφάσισαν στην έκδοση 8 να αλλάξουν τη σειρά των ορισμάτων στη split(). Προφανώς σε ανταπόκριση στην κριτική ότι η PHP έχει ασυνεπή σειρά στα ορίσματα (συγκεκριμένα οι μισές συναρτήσεις είναι (needle, haystack) και οι άλλες μισές (haystack, needle). Η γνώμη μου είναι ότι σε αυτήν την κριτική η μόνη σωστή απάντηση είναι ΑΝΤΕ ΓΑΜΗΣΟΥ που θα αλλάξω μια τόσο θεμελιώδη συνάρτηση όσο η split να χαλάσω ό,τι εφαρμογή έχει γραφτεί τα τελευταία 20+ χρόνια επειδή εσένα σου φαίνεται άκομψο μην έχουν παντού την ίδια σειρά τα ορίσματα WHATEVER THE FUCK THAT MEANS ΓΙΑ ΔΙΑΦΟΡΕΤΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ, ΠΑΛΙΟΑΥΤΙΣΤΙΚΕ LGBTQAIPK++ ΚΑΙ ΝΑ ΞΕΡΕΙΣ ΟΤΙ ΟΛΟ ΤΟ ΥΠΟΛΟΙΠΟ ΤΟ ΒΑΖΟΥΜΕ ΜΟΝΟ ΓΙΑ ΝΑ ΜΗ ΣΕ ΠΟΥΜΕ ΚΑΤΕΥΘΕΙΑΝ ΑΓΑΜΗΤΟ ΠΟΥ ΞΕΚΑΘΑΡΑ ΕΙΣΑΙ.

Αλλά δεν έχουν όλα τα projects έναν Linus.

Imperium
Δημοσιεύσεις: 3453
Εγγραφή: 23 Απρ 2020, 12:47

Re: Αγαπημένη γλώσσα προγραμματισμού

Μη αναγνωσμένη δημοσίευση από Imperium » 12 Φεβ 2024, 18:06

Ναι αλλά "η θέση της" ήταν να σου δίνει όλα όσα χρειάζεσαι για να γράψεις εφαρμογές web (καθώς και cross-platform σκριπτάκια) σε έναν μόνον interpreter. Που καμία άλλη γλώσσα δεν το έκανε. Και ούτε το κάνει ακόμα, απ' όσο ξέρω.
Η ColdFusion νομίζω έκανε κάτι παρόμοιο, αλλά o μοναδικός χρήστης που ήξερα παραήταν παράξενος. Ο περισότερος κόσμος ούτε που την έχει ακουστά, κι ας παίζει τώρα και σε JVM.
Ποτέ μην εμπιστεύεσαι επιστήμονα που φοβάται να πετάξει με αεροπλάνο.

Άβαταρ μέλους
foscilis
Δημοσιεύσεις: 24551
Εγγραφή: 21 Ιουν 2018, 11:42

Re: Αγαπημένη γλώσσα προγραμματισμού

Μη αναγνωσμένη δημοσίευση από foscilis » 12 Φεβ 2024, 19:29

Imperium έγραψε:
12 Φεβ 2024, 18:06
Ναι αλλά "η θέση της" ήταν να σου δίνει όλα όσα χρειάζεσαι για να γράψεις εφαρμογές web (καθώς και cross-platform σκριπτάκια) σε έναν μόνον interpreter. Που καμία άλλη γλώσσα δεν το έκανε. Και ούτε το κάνει ακόμα, απ' όσο ξέρω.
Η ColdFusion νομίζω έκανε κάτι παρόμοιο, αλλά o μοναδικός χρήστης που ήξερα παραήταν παράξενος. Ο περισότερος κόσμος ούτε που την έχει ακουστά, κι ας παίζει τώρα και σε JVM.
1500 δολλαριάκια ανά πυρήνα.

Imperium
Δημοσιεύσεις: 3453
Εγγραφή: 23 Απρ 2020, 12:47

Re: Αγαπημένη γλώσσα προγραμματισμού

Μη αναγνωσμένη δημοσίευση από Imperium » 12 Φεβ 2024, 19:34

foscilis έγραψε:
12 Φεβ 2024, 19:29
Imperium έγραψε:
12 Φεβ 2024, 18:06

Η ColdFusion νομίζω έκανε κάτι παρόμοιο, αλλά o μοναδικός χρήστης που ήξερα παραήταν παράξενος. Ο περισότερος κόσμος ούτε που την έχει ακουστά, κι ας παίζει τώρα και σε JVM.
1500 δολλαριάκια ανά πυρήνα.
Α,ΟΚ, νομίζω οτι ήταν πιο φτηνά το 2005... 😉
Αλλά υπάρχουν (λέει η Βίκυ) και free versions.
Ποτέ μην εμπιστεύεσαι επιστήμονα που φοβάται να πετάξει με αεροπλάνο.

Άβαταρ μέλους
break
Δημοσιεύσεις: 1152
Εγγραφή: 04 Οκτ 2018, 22:49
Phorum.gr user: break

Re: Αγαπημένη γλώσσα προγραμματισμού

Μη αναγνωσμένη δημοσίευση από break » 13 Φεβ 2024, 11:29

foscilis έγραψε:
12 Φεβ 2024, 17:48
Αυτά τα πρακτικά πράγματα έχουν ΠΟΛΥ μεγαλύτερη σημασία από τη σύνταξη ή τη θεωρητική κομψότητα. Και όπως έδειξα με το παράδειγμα της Scala, δεν είναι τόσο εύκολο να τα πετύχεις σωστά.
Όπως το βλέπω εγώ το αντάλλαγμα είναι πρόσκαιρη διευκόλυνση με αντάλλαγμα άπειρο μελλοντικό πόνο. Πριν 20 χρόνια κάποιοι λίγοι έκαναν στα γρήγορα την δουλειά τους και εδώ και 20 χρόνια άπειρος κόσμος υποφέρει κάθε φορά που η php σπάει από έκδοση σε έκδοση προσπαθώντας να συμμαζευτεί.

Αντίστοιχα με την Python. Κάποιο έκαναν στα γρήγορα την δουλειά τους και άπειρος κόσμος θα πρέπει να υποστεί για τις δεκαετίες που έρχονται να δουλεύει μία πάναργη interpreted γλώσσα χωρίς multithreading. Βασικά με την python επιστρέψαμε τεχνολογικά πίσω στο επίπεδο της basic.

Δεν βλέπω λοιπόν πως η πρόσκαιρη διευκόλυνση είναι ΠΟΛΥ σημαντικότερη από το χάος που δημιουργείται κάθε φορά που η γλώσσα που γράφει κάποιος χομπίστας γίνεται δημοφιλής.

Άβαταρ μέλους
foscilis
Δημοσιεύσεις: 24551
Εγγραφή: 21 Ιουν 2018, 11:42

Re: Αγαπημένη γλώσσα προγραμματισμού

Μη αναγνωσμένη δημοσίευση από foscilis » 13 Φεβ 2024, 12:24

break έγραψε:
13 Φεβ 2024, 11:29


Όπως το βλέπω εγώ το αντάλλαγμα είναι πρόσκαιρη διευκόλυνση με αντάλλαγμα άπειρο μελλοντικό πόνο. Πριν 20 χρόνια κάποιοι λίγοι έκαναν στα γρήγορα την δουλειά τους και εδώ και 20 χρόνια άπειρος κόσμος υποφέρει κάθε φορά που η php σπάει από έκδοση σε έκδοση προσπαθώντας να συμμαζευτεί.
Υπάρχει μια πολύ απλή λύση για αυτό, να μη σπάνε πράγματα χωρίς ΠΑΡΑ πολύ σοβαρό λόγο. 50% πιο γρήγορη εκτέλεση; ΟΚ. "Συνέπεια στον τρόπο που περιμένουν τα ορίσματα οι array functions και οι string functions"; ΟΧΙ. Αυτό δεν έχει φυσικά να κάνει με την ουσία μιας γλώσσας, πιο πολύ με τη φιλοσοφία της κοινότητας.
Αντίστοιχα με την Python. Κάποιο έκαναν στα γρήγορα την δουλειά τους και άπειρος κόσμος θα πρέπει να υποστεί για τις δεκαετίες που έρχονται να δουλεύει μία πάναργη interpreted γλώσσα χωρίς multithreading. Βασικά με την python επιστρέψαμε τεχνολογικά πίσω στο επίπεδο της basic.
Εγώ έτρεχα τις προάλλες ένα pytorch training και έπιανε 800% CPU. Δε βλέπω πώς συμβαίνει αυτό χωρίς multithreading[*]. Και δεν έχω καταλάβει καθόλου για ποιο λόγο ένα πράγμα όπως το multithreading που έχει ισχυρή εξάρτηση από το λειτουργικό και το hardware πρέπει να υλοποιείται με primitives όταν μπορεί ανετότατα να γίνει σε επίπεδο βιβλιοθήκης. Δεν το θεωρώ ουσιαστικό στοιχείο μιας γλώσσας όπως είναι λ.χ. το αν τα statements είναι και expressions ή αν υπάρχει type safety.

Από εκεί και πέρα, interpreted και compiled έχουν συγκεκριμένα οφέλη και μειονεκτήματα το καθένα. Δεν είναι ανταγωνιστικά, απλώς κάνουν για διαφορετικές δουλειές. Αν δεις το data science για παράδειγμα, όλο το μανίκι είναι να μαζέψεις τα δεδομένα και να δεις πώς θα τα αναλύσεις. Θα κάνεις πάρα πολλούς πειραματισμούς και μικροαλλαγές, ΕΝΝΟΕΙΤΑΙ ότι προτιμάς κάτι εύπλαστο και interactive. Δεν είναι θέμα "βολικότητας", είναι θέμα καταλληλότητας.

[*] παρεμπιπτόντως έχω μετατρέψει transformer από Python σε ONNX και τον έχω κάνει compile με την optimized μαλακία της Intel. Ήταν ~40% πιο αργό!

Άβαταρ μέλους
break
Δημοσιεύσεις: 1152
Εγγραφή: 04 Οκτ 2018, 22:49
Phorum.gr user: break

Re: Αγαπημένη γλώσσα προγραμματισμού

Μη αναγνωσμένη δημοσίευση από break » 13 Φεβ 2024, 13:39

foscilis έγραψε:
13 Φεβ 2024, 12:24
Εγώ έτρεχα τις προάλλες ένα pytorch training και έπιανε 800% CPU. Δε βλέπω πώς συμβαίνει αυτό χωρίς multithreading[*]. Και δεν έχω καταλάβει καθόλου για ποιο λόγο ένα πράγμα όπως το multithreading που έχει ισχυρή εξάρτηση από το λειτουργικό και το hardware πρέπει να υλοποιείται με primitives όταν μπορεί ανετότατα να γίνει σε επίπεδο βιβλιοθήκης.
Επειδή όπως λέει και η περιγραφή της βιβλιοθήκης που μου έβαλες "In CPython, due to the Global Interpreter Lock, only one thread can execute Python code at once".

Το να σπάσεις τον κώδικα σε threads είναι δεν είναι το ουσιαστικό πρόβλημα. Το πρόβλημα είναι να συγχρονίσεις την πρόσβαση στην μνήμη μεταξύ των threads ώστε να μην κλειδώνει το ένα το άλλο. Πράγμα που στην python είναι αδύνατο γιατί αυτός που την έφτιαξε έβαλε ένα global lock για συγχρονισμό.

Αυτό που υποθέτω ότι κάνει η βιβλιοθήκη που μου έστειλες είναι ότι υλοποιεί ένα μοντέλο worker. Δηλαδή σπας ένα κώδικα άλλο thread και δεν αλληλεπιδράς μαζί του παρά μόνο για να πάρεις progress report και αποτέλεσμα όταν τελειώσει. Αυτό είναι μία υποπερίπτωση του πως χρησιμοποιείς και τι κάνει το multithreading. Κανονικό multithreading σημαίνει πολλοί παράλληλοι κώδικες να χρησιμοποιούν τα ίδια αντικείμενα στην μνήμη συγχρονίζοντας μεταξύ τους την πρόσβαση σε αυτά.

Πριν η pyhton αποκτήσει κανονικό multihreading θα πρέπει να γίνει πολύ δουλειά ώστε να μπουν πολλαπλά lock αντί για ένα global. Επίσης θα πρέπει σίγουρα να γίνει αλλαγή και στον garbage collector. Επίσης θα πρέπει να αλλάξουν και οι libraries και να γίνουν multihtreaded. Π.χ. να μπορούν να κάνουν πολλά threads ταυτόχρονα προσθήκη σε dictionaries.

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

Άβαταρ μέλους
foscilis
Δημοσιεύσεις: 24551
Εγγραφή: 21 Ιουν 2018, 11:42

Re: Αγαπημένη γλώσσα προγραμματισμού

Μη αναγνωσμένη δημοσίευση από foscilis » 13 Φεβ 2024, 15:24

Από ό,τι βλέπω όμως αυτό είναι περιορισμός της CPython, της συγκεκριμένης υλοποίησης της γλώσσας δηλαδή και τη διατήρησή του τη στηρίζουν σε συγκεκριμένο ζύγισμα των υπέρ και των κατά. Μπορείς αν θες να χρησιμοποιήσεις Jython που δεν έχει καθόλου GIL ή Cython που έχει GIL αλλά σου επιτρέπει να το απενεργοποιήσεις επιλεκτικά, μια δυνατότητα που πάντα έχεις όταν γράφεις ένα module. Προφανώς καμία υλοποίηση της Python δεν είναι drop-in replacement για μια άλλη, αλλά η ουσία είναι πως το GIL δεν είναι κάτι "χαραγμένο" στη γλώσσα. Είναι απλά μια λεπτομέρεια της (κυρίαρχης) υλοποίησης. Που παίζει και ελάχιστο ρόλο στην πιο δημοφιλή χρήση, γιατί οι βιβλιοθήκες που κάνει script η Python όχι μόνο είναι ακραία multithreaded αλλά οι πιο πολλές (π.χ. numpy) "ξεφορτώνονται" και το GIL.

Άβαταρ μέλους
break
Δημοσιεύσεις: 1152
Εγγραφή: 04 Οκτ 2018, 22:49
Phorum.gr user: break

Re: Αγαπημένη γλώσσα προγραμματισμού

Μη αναγνωσμένη δημοσίευση από break » 13 Φεβ 2024, 16:07

foscilis έγραψε:
13 Φεβ 2024, 15:24
Μπορείς αν θες να χρησιμοποιήσεις Jython που δεν έχει καθόλου GIL ...
Που από ότι βλέπω είναι υλοποίηση της python στο JVM. Οπότε κάποιος έκανε αυτό που είπα πιο πριν. Δηλαδή πήρε μία κανονική γλώσσα και της έβαλε της σύνταξη της Python.

Το ερώτημα είναι ; Γιατί να μπεις στον κόπο ; Γιατί δεν γράφεις στην σύνταξη της κανονικής γλώσσας να κάνεις την δουλειά σου ;

Να γλιτώσεις και από την μαλακία του να έχεις τα tab να είναι μέρος της σύνταξης ; Δεν ήξεραν τόσοι developers τόσες δεκαετίες τώρα που έβαζαν {} για blocks και έπρεπε να έρθει ο πύθωνας να μας δείξει τον σωστό τον τρόπο. Βρε ουστ. :D

Άβαταρ μέλους
masterridley
Δημοσιεύσεις: 810
Εγγραφή: 11 Οκτ 2020, 23:56
Phorum.gr user: masterridley

Re: Αγαπημένη γλώσσα προγραμματισμού

Μη αναγνωσμένη δημοσίευση από masterridley » 22 Φεβ 2024, 17:25

Δεν βλέπω Kotlin, άρα το poll είναι invalid.

Κατά τα άλλα,

C - φοβερή γλώσσα για την εποχή της και πολύ powerful. Είχε την τύχη να συνδεθεί με υπερδημοφιλή OS όπως Unix και να την μάθουν έτσι όλοι οι φοιτητάδες. Απ'την άλλη, ήταν ακριβώς στην σωστή απόσταση απ'το bare-metal για υλοποίηση OSes... οπότε δίκαια η επικράτηση

C++ - μια μαλακία που επικράτησε ακριβώς λόγω της πισω-συμβατότητας με C (το λέω εγώ που ήξερα κάποτε όλο το reference book απ'έξω :() Τιτάνας ο Stroustrup που κατάφερε να κολλήσει κλάσεις πάνω σε μια άσχετη γλώσσα χωρίς να σπάσει τίποτα (λέμε τώρα)

Java - τέλεια για την εποχή της, ακριβώς ό,τι έπρεπε. Το μειονέκτημα είναι ότι εφαρμόσαν πάνω της όλες τις παπαροθεωρίες που μάθαν στο uni με αποτέλεσμα να έχουμε κλάσεις τύπου RegistryDelegateFactoryInstantiatorImplementation. Κατά τα άλλα, δεν είναι τόσο αργή όσο νομίζουν οι άσχετοι.

Python - ωραία γλώσσα, μέχρι που έπιασα Kotlin και τώρα την ψιλο-σιχαίνομαι. Το πρόβλημα είναι ότι ξεκίνησε ως glue γλώσσα, αλλά μοιραία όπως πάντα, άρχισαν να την χρησιμοποιούν για να γράφουν ολόκληρα frameworks. Μπράβο μλκες. Τώρα επανεφευρίσκουν τον τροχό με type hints και τέτοια...

Javascript - απλά αστεία γλώσσα. Κάνω αυτή την περίοδο το Crafting Interpreters (shout-out στον τανίπτερο?) και κυριολεκτικά κάθε απόφαση που μπορούσε να πάρει ο Eich (ΚΑΘΕ όμως!) είναι λάθος. Ντάξει, αυτός το έφτιαξε ένα απόγευμα για να κάνει κάποια κολπάκια στον browser, αλλά ποιος ψυχάκιας είχε την ιδέα να φτιάξει ολόκληρα frameworks μ'αυτή?

Ruby - cute, δεν ξέρω πολλά

C# - στιβαρή, αλλά λίγο boring

.NET - not a language?

PHP - ξανά ό,τι έπρεπε για την εποχή της, τώρα απλά τραγική

VisualBasic - δεν έχω εμπειρία


Τέλος, που στον πούτσο είναι η Lisp/Scheme οικογένεια, η ML/Ocaml/Haskell οικογένεια, η Prolog??

Απάντηση


  • Παραπλήσια Θέματα
    Απαντήσεις
    Προβολές
    Τελευταία δημοσίευση

Επιστροφή στο “Τεχνολογία”

Phorum.com.gr : Αποποίηση Ευθυνών