

Για disassembly/reverse engineering, debugging, cracking... όλο και θα χρειαστεί η Assembly
Κώδικας: Επιλογή όλων
function MultiDispatcher(v interface{}...) interface{}{
switch v[0].(type){
case int:
switch v[1].(type){
case string:
return intStringCall(v[0].(int), v[1].(string))
case int:
return intIntCall(v[0].(int), v[1].(int))
}
case string:
switch v[1].(type){
case time.Time:
return stringTimeCall(v[0].(string), v[1].(time.Time))
case map[int]string:
return stringMapCall(v[0].(string), v[1].(map[int]string))
}
default:
panic("Unsupported argument combination")
}
}
Γιατί όχι java ; Εξαιρετικά δημοφιλής, διδάσκεται σε όλα τα παν/μια, πηγαίνει σφαίρα (συγκρινόμενη με την python), multithreaded, κλπ κλπ.
Θεωρητικά, ίσως.
Μόνο γιατί κάααποτε παρείχε προοπτικές εργασίας (μεροκάμματον), όχι γιατι την αγαπούσαν οι χρήστες της.Εξαιρετικά δημοφιλής,
διδάσκεται KAI MIΣEITAI σε όλα τα παν/μια,διδάσκεται σε όλα τα παν/μια,
H "ανάγκη που δεν υπήρχε" φάνηκε στα εκατομύρια χρηστων, και στο οτι είναι πλέον με διαφορά η πρώτη σε χρήση γλώσσα στον πλανήτη (σορυ javascript)Γιατί έπρεπε να εφευρεθεί μία ακόμα basic από κάποιον που δεν είχε καμία δουλειά να φτιάχνει γλώσσες για να ικανοποιήσει μία ανάγκη που δεν υπήρχε ;
Από γλωσσολογικής άποψης είναι ΠΑΡΑ πολύ φλύαρη. Ουσιαστικά δεν κάνεις δουλειά χωρίς IDE. Και όχι για να σε βοηθάει με σύνθετα πράγματα. Απλώς για να συμπληρώνει ένα κάρο εντελώ τετριμμένες υποχρεωτικές μαλακίες που αν το κάνεις εσύ θα πάθεις καρπιαίο στους 2 μήνες.
Ε το REPL είναι αυτό που λέω "άλλα προτερήματα".
foscilis έγραψε: ↑12 Φεβ 2024, 16:57Από γλωσσολογικής άποψης είναι ΠΑΡΑ πολύ φλύαρη. Ουσιαστικά δεν κάνεις δουλειά χωρίς IDE. Και όχι για να σε βοηθάει με σύνθετα πράγματα. Απλώς για να συμπληρώνει ένα κάρο εντελώ τετριμμένες υποχρεωτικές μαλακίες που αν το κάνεις εσύ θα πάθεις καρπιαίο στους 2 μήνες.
Και αυτό διαπερνά τη φιλοσοφία της συνολικά.
Για παράδειγμα το @Override είναι τελείως αρρωστημένος μαλάκας όποιος το σκέφτηκε.
Υπάρχει λόγος. Ονομάζεται "Αλγεβρα". Με την πλέον ευρεία έννοια.
Εντάξει γενικά δεν είναι του πεταματού, έχει γραφτεί τρομερό software σε αυτήν (και σαν ποσότητα και σαν πράγματα που γίνονται με αυτό, π.χ. Apache Lucene). Αλλά αγαπημένη δεν την έχει κανένας.Imperium έγραψε: ↑12 Φεβ 2024, 17:02foscilis έγραψε: ↑12 Φεβ 2024, 16:57Από γλωσσολογικής άποψης είναι ΠΑΡΑ πολύ φλύαρη. Ουσιαστικά δεν κάνεις δουλειά χωρίς IDE. Και όχι για να σε βοηθάει με σύνθετα πράγματα. Απλώς για να συμπληρώνει ένα κάρο εντελώ τετριμμένες υποχρεωτικές μαλακίες που αν το κάνεις εσύ θα πάθεις καρπιαίο στους 2 μήνες.
Και αυτό διαπερνά τη φιλοσοφία της συνολικά.
Για παράδειγμα το @Override είναι τελείως αρρωστημένος μαλάκας όποιος το σκέφτηκε.
Ναι, αλλά τα IDE κάνουν αυτόματο refactoring! Σε λίγο το έχεις αυτό;
Πάντως, και πάλι για να λέμε του στραβού το δίκιο, μπορεί η java να είναι ΓΤΠΚ, αλλά to JVM...
Η δημοτικότητα δεν είναι κριτήριο αξίας όπως φάνηκε άλλωστε και από την PHP. Αυτά τα εκατομμύρια απλώς ακολούθησαν το ρεύμα. Θα είχαν ακολουθήσει οποιαδήποτε άλλη γλώσσα στην θέση της.
Που αν θυμάμαι καλά γιατί έχω καιρό να ασχοληθώ με android έβαλε στην Java πράγματα που είχε προσθέσει η C# όπως properties.Το γεγονός οτι η java δεν φτούραγε φάνηκε και με την kotlin, η οποία, υπενθυμίζω είναι πλέον και η επίσημη γλώσσα του Android με την σφραγίδα
Αλίμονο, ποτέ δεν είπα τέτοιο πράγμα.
Τα εκατομύρια γενικά ακολουθούν όταν βρίσκουν κατι που τους λύνει τα χέρια.Αυτά τα εκατομμύρια απλώς ακολούθησαν το ρεύμα. Θα είχαν ακολουθήσει οποιαδήποτε άλλη γλώσσα στην θέση της.
Χαχα, δεν τόξερα οτι παίχτηκε τέτοια μαλακία στον κόσμο της Scala!foscilis έγραψε: ↑12 Φεβ 2024, 17:18Για το JVM πάντως έχω να σχολιάσω ότι κλάσεις που έγιναν compile το 1998 θα παίξουν με την τελευταία έκδοση της Java (21 νομίζω). Εντάξει με κάποιες προφανείς εξαιρέσεις, ξερωγω δεν υπάρχουν πια applets. Αλλά τέλος πάντων έχει υποδειγματική προς τα πίσω συμβατότητα.
ΑΥΤΟ ακριβώς το τεράστιο προτέρημα, ίσως το πιο αξιόλογο σε όλον τον κόσμο της Java, οι χίπστερ που γράφουν τη Scala κατάφεραν να μην το σεβαστούν. Προγράμματα που έγιναν compiled με Scala 2.11 δεν παίζουν σε Scala 2.12 και προγράμματα που έγιναν compiled σε Scala 2.12 δεν παίζουν σε Scala 2.13. Και μάλιστα ενώ ο πηγαίος κώδικας είναι ουσιαστικά σχεδόν ο ίδιος! Όλες τις αλλαγές τις έκαναν στο πώς δουλεύει το παραγόμενο bytecode που στοχεύει μια εικονική μηχανή με 30 χρόνια προς τα πίσω συμβατότητας. Και κυρίως για αισθητικούς λόγους ("μου φαίνεται πιο κομψό να είναι έτσι αυτό κι ας σπάει ό,τι κώδικα έχει γραφτεί ως σήμερα") και κάτι εντελώς γελοία "κέρδη" 5% στο χρόνο μεταγλώττισης. Και χωρίς καν να τους κόψει να αλλάξουν το major number, έστω να υποψιάζεσαι ρε φίλε ότι 2 -> 3 είναι κάτι που θα σου γκρεμίσει τα πάντα, όόόόχι, 2.12 -> 2.13 γιατί ΕΤΣΙ.
Παίρνω πίσω το "αρρωστημένος μαλάκας" που είπα για αυτόν με το Override γιατί πραγματικά δε μου μένει λέξη να περιγράψω τους απίθανους αρχιμαλάκες της Scala.