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

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

Δημοσ.

Hallo!

Το τελευταίο καιρό έχω αρχίσει να ανακαλύπτω τον μαγεικό κόσμο της clojure!!

Και πραγματατικά μέχρι στιγμης έχω μείνει με το στόμα ανοιχτό για το πόσο υπέροχη είναι!

Προερχόμενος απο τον αντικειμονοστραφή κόσμο (Java) ενας συνάδελφος μου την είχε προτείνει-προμοτάρει τόσο πολύ που είπα να τη δοκιμάσω.
Αρχικά αυτό που με 'έψησε' περισσότερο είναι το functional programming, κάτι που είχα να δω απο τη σχολή μου ακόμη (θυμάμαι ότι όλοι το μισουσαμε το συγκεκριμενο μάθημα μιας κ έπρεπε να ξεχάσεις οτι ήξερες να αρχίζεις να σκέφτεσαι διαφορετικα).

Για να μη τα πολυλογώ, αφου είδα οτι είναι μια ενδιαφέρον γλώσσα, κοίταξα λίγο να δω τη παίζει στην αγορά εργασίας και... Βράστα Χαράλαμπε!
Μιλάμε οτι στην Ελλάδα βρήκα μόνο μια (ναι μια ολόκληρη) αγγελία, και στο εξωτερικό επίσης χαμηλή η ζήτηση, ειδικά για remote θέσεις έβρισκα κάτι ξεχασμένες αγγελίες 1-2 χρόνων.
Η αλήθεια είναι οτι ψιλό απογοητέυτηκα λίγο με τη τόσο μικρή σύζητηση σε μια, όπως φαίνεται, τόσο ενδιαφέρον γλώσσα! 
Οκ, ίσως να είναι κ ο αρχικός ενθουσιασμός και αν πάω να κάνω κάτι πιο συνθετο-σοβαρό μαζί της να δω οτι τελικά δεν...(αν και δε μου φαίνεται για τέτοια τύπισσα 😛) .
Και έρχομαι να ρωτήσω, την ξέρει? την χρησιμοποιεί κανένας σας? και ειδικά επαγγελματικά? Και αν όχι συγκεκριμένα Clojure, χρησιμοποιείτε κατι άλλο σε functional programming? 

 

 

 

Δημοσ. (επεξεργασμένο)

Αν θες JVM-based functional γλώσσα τότε νομίζω ότι η scala είναι πιο δημοφιλής επιλογή - βοηθάει και το integration με το spark σε αυτό, αλλά όσον αφορά για δουλειά, πάλι μιλάμε κυρίως για Αμερική.

Επεξ/σία από pmav99
Δημοσ.

Στο εξωτερικο οι αγγελιες για functional programming ειναι λιγότερες αλλά με καλυτερες απολαβες. Επίσης οι functional developers ειναι λιγοτεροι και θεωρουνται πιο skilled αρα απο την αποψη προσφορας-ζητησης δεν εισαι χαμενος . Αν εισαι καλος στην clojure πιστευω οτι θα εχεις πλεονεκτημα εναντι των OOP προγραμματιστων. 

Δημοσ.

Αν σε ενδιαφέρει ειδικότερα το functional programming δες και τη Haskell που είναι η επιτομή του pretty much,  με ελαφρώς διαφορετκή φιλοσοφία ωστόσο (correctness vs simplicity)

  • Like 1
Δημοσ.

Καλημέρα !

Θα ήθελα αν γίνεται ο χρήστης AllisChaos, που ξεκίνησε το θέμα, να μου προτείνει κάποια καλή πηγή και γενικά σχετική βιβλιογραφία για ν' αρχίσω ν' ασχολούμαι κι εγώ... Φαντάζομαι ότι για να ενθουσιάστηκε ο ίδιος, θα βρήκε πηγές που λένε το κάτι παραπάνω σε σχέση μ' ένα κλασσικό βιβλίο προγραμματισμού. Γενικά χαίρομαι πάρα πολύ να βλέπω ανθρώπους ν' ασχολούνται με πάθος με τον προγραμματισμό, ειδικά όταν πρόκειται περί θεμάτων τα οποία δεν είναι και τόσο δημοφιλή. Στην κατηγορία αυτή εμπίπτει η clojure. Επίσης θα ήθελα να δω τι είδους εφαρμογές μπορούν να δημιουργηθούν σήμερα με μια τέτοια γλώσσα και είμαι περίεργος ν' ανακαλύψω αν αυτές δύνανται ν' απαντήσουν σε πραγματικές εμπορικές ανάγκες.

Σας ευχαριστώ,

Ο Άσπρος Γάτος

 

Δημοσ. (επεξεργασμένο)

Καλησπέρες, από αυτο το e-book διαβάζω εγώ, έχει  χιουμοριστικό στυλ με ωραίες ασκήσεις που σου κρατά το ενδιαφέρον
https://www.braveclojure.com/clojure-for-the-brave-and-true/

και ένα ωραίο github tutorial

https://github.com/ClojureBridge/curriculum

 

Πέρα απο αυτά ο δημιουργός της, Rich Hickey είναι τυπάρα και φοβερός ομιλητής, μπορείς να ψάξεις στο youtube για ομιλίες του:
https://www.youtube.com/watch?v=f84n5oFoZBc&t=6s (γενικά για προγραμματισμό)

 (clojure specific)


Όσο για το τι μπορείς να κάνεις με τη clojure... Τα πάντα! Εϊναι μια γλώσσα γενικού σκοπού, που ο Rich Hickey μετά απο πόσα χρόνια με C++, C#, Java είδε ότι το πράγμα κάπου δε τσουλάει σωστά και ότι τόσο καιρό κάνουμε απλά τη ζωή μας πιο δύσκολη με τον OOP
(btw σε τετοιο επίπεδο δεν έχω φτασει που να πηγαίνω στη δουλειά μου και να λέω ότι ααχχχ να χα τώρα εδω μια clojure)

Aλλά  μιας κ το φερε η κουβέντα, σήμερα στη δουλειά είχα το εξής πολύ απλό case:

Class ΜyDTO {

.....
Boolean hasCoupon;
getHasCoupon() { return hasCoupon; }
setHasCoupon(...) {...}
....
}

Class ΜyService {

private void myMethod() {

	if (myDTO.getHasCoupon()) {
		//do something
		...
	}
}

}


 Και το δοκιμάζω και μου πετάει ένα NPE στην

'myDTO.getHasCoupon()' 

κάθομαι κ έχω σκαλώσει και προσπαθώ να καταλάβω γιατί! και λέω εντάξει προφανώς το hasCoupon είναι null αλλά γιατί σκάει?? (συνηθισμένος απο ενα 3ημερο με clojure ομως όπου το null μπορει να χρησιμοποιηθεί κανονικά σε μια if, το οποιο είναι σαν να κάνεις 
if (false)

Χτύπησα λίγο το κεφάλι μου, είπα: Συγκεντρώσου! τώρα είσαι σε Java!! και έβαλα τον κλασσικό != null έλεγχο...

Επεξ/σία από ALLisCHAOS
Δημοσ.

 

Στις 25/3/2019 στις 5:57 ΜΜ, albNik είπε

Στο εξωτερικο οι αγγελιες για functional programming ειναι λιγότερες αλλά με καλυτερες απολαβες. Επίσης οι functional developers ειναι λιγοτεροι και θεωρουνται πιο skilled αρα απο την αποψη προσφορας-ζητησης δεν εισαι χαμενος . Αν εισαι καλος στην clojure πιστευω οτι θα εχεις πλεονεκτημα εναντι των OOP προγραμματιστων. 

εψαξα για λιγο καιρο δουλεια για scala κυριως, δε βρηκα κατι ιδιαιτερο εως καθολου. Ειμαι Σουηδια αλλα κοιταξα και τριγυρω. Οσον αφορα το πιο skilled, δεν νομιζω να ισχυει. Μιλωντας για Scala, αν γνωριζεις Java η μεταβαση ειναι πολυ ευκολη. Μετα εχεις τις παραξενιες της σαν γλωσσα, και ειναι παρα πολλες, αλλα δεν νομιζω να απαιτει τρελο skill, παρα εξασκηση

Δημοσ.
35 λεπτά πριν, najinblue3 είπε

εψαξα για λιγο καιρο δουλεια για scala κυριως, δε βρηκα κατι ιδιαιτερο εως καθολου. Ειμαι Σουηδια αλλα κοιταξα και τριγυρω. Οσον αφορα το πιο skilled, δεν νομιζω να ισχυει. Μιλωντας για Scala, αν γνωριζεις Java η μεταβαση ειναι πολυ ευκολη. Μετα εχεις τις παραξενιες της σαν γλωσσα, και ειναι παρα πολλες, αλλα δεν νομιζω να απαιτει τρελο skill, παρα εξασκηση

Δεν ειμαι σιγουρος αν συνεχισες να χρησιμοποιείς τη scala απλα ως java με διαφορετικο syntax. Το εκανα και εγω αυτο το λαθος απο C# σε F#.

Τις OOP εννοιες οπως inheritance, polymorphism, composition, encapsulation κλπ θεωρω οτι μπορεις να τις μαθεις σχετικα ευκολα.

Οι αντιστοιχες FP εννοιες οπως higher order functions, monads, immutability και πολλες αλλες που ανηκουν στην category theory πιστευω οτι ειναι πιο προχωρημενες.

 

Δημοσ.
2 λεπτά πριν, albNik είπε

Δεν ειμαι σιγουρος αν συνεχισες να χρησιμοποιείς τη scala απλα ως java με διαφορετικο syntax. Το εκανα και εγω αυτο το λαθος απο C# σε F#.

Τις OOP εννοιες οπως inheritance, polymorphism, composition, encapsulation κλπ θεωρω οτι μπορεις να τις μαθεις σχετικα ευκολα.

Οι αντιστοιχες FP εννοιες οπως higher order functions, monads, immutability και πολλες αλλες που ανηκουν στην category theory πιστευω οτι ειναι πιο προχωρημενες.

Ναι εκανα ακριβως αυτο. Νομιζα οτι ηταν απλα μια αλλη Java, αλλα ελα που ημουν λαθος 😛

Οι βασικες εννοιες του αντικειμενοστραφους πρ. νομιζω ειναι ιδιες με τη Java. Ειχα θεμα στην αρχη με τα val/var και το ολο immutability, και αυτα εννοω παραξενιες πιο πανω. 

Δημοσ.
3 ώρες πριν, najinblue3 είπε

Ναι εκανα ακριβως αυτο. Νομιζα οτι ηταν απλα μια αλλη Java, αλλα ελα που ημουν λαθος 😛

Οι βασικες εννοιες του αντικειμενοστραφους πρ. νομιζω ειναι ιδιες με τη Java. Ειχα θεμα στην αρχη με τα val/var και το ολο immutability, και αυτα εννοω παραξενιες πιο πανω. 

Το θεμα ειναι να ΜΗΝ κανεις αντικειμενοστραφη προγραμματισμο σε αυτες τις γλωσσες. Πρεπει να ξεμαθεις το OOP.

Δημοσ.

Αχχ το βλέπω... Θα τις έχουμε απλά για side project-hobby και θα λέμε που και που σε κανένα γνώστο πόσο γ@μ@ν 😛

2 λεπτά πριν, albNik είπε

Το θεμα ειναι να ΜΗΝ κανεις αντικειμενοστραφη προγραμματισμο σε αυτες τις γλωσσες. Πρεπει να ξεμαθεις το OOP.

Ισχύει, πρέπει να μάθεις να σκέφτεσαι με διαφορετικό τρόπο

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

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

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

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

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

Σύνδεση

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

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