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

Αλλαγή από Django/Python σε κάτι άλλο


antirix024

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

Είμαι Django/Python pro και αυτή τη στιγμή εργάζομαι σε έναν μεγάλο ερευνητικό οργανισμό που τους έχω φτιάξει μια μηχανή η οποία διαχειρίζεται εκατομμύρια μετρήσεις από smart-meters σε πραγματικό χρόνο και τους βγάζει διάφορα γραφήματα, projections, analytics σε ένα web application. 

Το (βασικό) τρέχον stack μου είναι:

- Django / Python

- PostgreSQL (την χρησιμοποιώ ακόμα και για document data (json) πλέον, συνεργάζεται εξαιρετικά με την Django)

- NumPy / Pandas (για τα data analytics)

- NginX / GUnicorn (Web Server)

- Reddis (Cache, Web Sockets)

Το ξέρω ότι είναι πολυ απλό, αλλά την κάνει μια χαρά τη δουλειά του αυτό το στακ εδώ και πολλά χρόνια. 

Πολλές φορές έχω σκεφτεί να αλλάξω το stack και να πάω σε κάτι εντελώς διαφορετικό, αλλά δεν έχω βρει. Υπάρχει κάποιο άλλο σετ με εργαλεία που θα μου κάνει την ίδια δουλειά; 

Ο λόγος που θέλω να αλλάξω είναι απλά για να μάθω κάτι καινούργιο. Και να εμπλουτίσω το παλμαρέ μου. 

(για το front-end χρησιμοποιώ Javascript / Jquery αλλά αυτό δεν σκέφτομαι να το αλλάξω)

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

Λογικα ολα τα μεγαλα frameworks της Python και κυριως το Flask μπορουν να κανουν το ιδιο, οπως επισης και ολες οι αλλες μεγαλες βασεις (Mysql, Sql server, κλπ)

Το ερωτημα ειναι γιατι να κανεις κατι τετοιο σε production κωδικα/συστημα καθαρα και μονο για εκπαιδευτικους λογους; Μου ακουγεται πολυ κακη ιδεα απο αποψη business. Αν ημουν δηλαδη ο πελατης/εργοδοτης σου απο μενα θα ηταν ενα ξεκαθαρο ΟΧΙ.

Μπορεις να εκπαιδευτεις με αλλους τροπους σε προσωπικα σου εργα, κλπ αλλα σε κωδικα που δουλευει το μονο που θα προκαλεσει ειναι χασιμο χρονου του developer και πιθανα προβληματα

Just my 2 cents

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

2 hours ago, archer100 said:

Λογικα ολα τα μεγαλα frameworks της Python και κυριως το Flask μπορουν να κανουν το ιδιο, οπως επισης και ολες οι αλλες μεγαλες βασεις (Mysql, Sql server, κλπ)

Το ερωτημα ειναι γιατι να κανεις κατι τετοιο σε production κωδικα/συστημα καθαρα και μονο για εκπαιδευτικους λογους; Μου ακουγεται πολυ κακη ιδεα απο αποψη business. Αν ημουν δηλαδη ο πελατης/εργοδοτης σου απο μενα θα ηταν ενα ξεκαθαρο ΟΧΙ.

Μπορεις να εκπαιδευτεις με αλλους τροπους σε προσωπικα σου εργα, κλπ αλλα σε κωδικα που δουλευει το μονο που θα προκαλεσει ειναι χασιμο χρονου του developer και πιθανα προβληματα

Just my 2 cents

Εγώ φταίω γιατί δεν ήμουν ξεκάθαρος. 

Όχι για τα project που ήδη έχω και λειτουργούν αλλά για επόμενα project που θα είναι παρόμοια. Εννοείται δεν αλλάζω code-base σε project που τρέχουν. Ποιος θα το έκανε αυτό;

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

Ήμουν Python/Django developer και χρησιμοποιούσα για χρόνια ακριβώς το ίδιο stack που περιγράφεις.

Είχα δει κατά καιρούς παρόμοιες τεχνολογίες (κυρίως node.js αλλά και spring boot ή ruby on rails). Τελικά η γλώσσα που με κέρδισε είναι η Go. Πολύ minimal γλώσσα αλλά και πολύ ισχυρή ταυτόχρονα. Είναι απίστευτο το πόσο καλά διαχειρίζεται concurrent και asynchronous tasks. Αξίζει να τη δοκιμάσεις, μιας και πλέον έχει αρχίσει να γίνεται αρκετά mainstream - πολλές μεγάλες εταρείες έχουν υιοθετήσει τη Go ως τη βασική του γλώσσα.

Το μόνο "κακό" είναι οτι δεν έχει κάποιο built-in ORM όπως το Django για SQL βάσεις, αν και υπάρχουν καλές open source επιλογές και γι'αυτό. Προσωπικά, τα τελευταία projects που δουλεύω είναι σε MongoDB και ο Go driver για Mongo είναι μια χαρά.

Άρα, αν θες κάτι αρκετά διαφορετικό, μπορείς να δοκιμάσεις Go στο backend και μια NoSQL βάση, όπως τη MongoDB. Αντί για Nginx μπορείς να δοκιμάσεις να το κάνεις deploy ως Docker container.

Στο μόνο που δεν μπορείς να αλλάξεις την Python είναι το κομμάτι των data analytics. Pandas και Numpy είναι τα καλύτερα εργαλεία γι' αυτό.

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

Πάνω κάτω κάθε γλώσσα έχει τουλάχιστον ένα stack που κάνουν αυτά που περιγράφεις.. άλλα σε πιο καλό βαθμό κι άλλα σε χειρότερο.

Προσωπικά γράφω σε php τα τελευταία χρόνια και μπορώ να σου πω με σιγουριά πως το framework laravel (το αντίστοιχο του django) υποστηρίζει όλα όσα περιέγραψες out-of-the-box εκτός από το pandas. Για αναλύσεις δεδομένων τώρα δεν ξέρω τι χρειάζεσαι αλλά αν κινείσαι προς AI/Data science νομίζω λίγο δύσκολο με php. Σε γενικές γραμμές όμως είναι τόσο ώριμη η κοινότητα που πλέον έχεις τα πάντα με καλή υποστήριξη και σωστές πρακτικές. Για παράδειγμα στο laravel, μπορείς να ξεκινήσεις ένα καινούργιο πρότζεκτ το οποίο θα έχει authentication system + 2-factor authentication με υποστήριξη σε αυτά που ανέφερες μεταξύ άλλων. Κι όταν λέω ξεκινήσεις... δεν εννοώ να το κάνεις εσύ... εννοώ θα τα έχεις όλα αυτά πριν καν ανοίξεις ένα καινούργιο πρότζεκτ. Γενικά όμως υπάρχουν κι εδώ πολλοί συνδυασμοί. Π.χ. symfony, codeigniter κτλπ.

Node.js με/χωρίς typescript που δοκίμασα είναι όλα εφικτά ναι... αλλά η κοινότητα είναι κάπως στην αρχή. Δεν λέω μπορεί να είναι τεχνολογίες με προοπτική αλλά θυμίζει λίγο τα πρώτα βήματα της php. Κάπου έχουμε προβλήματα με την ασφάλεια και γενικά πως ο καθένας κάνει ό,τι θέλει. Κάθε χρόνο βλέπεις και ένα καινούργιο framework και καινούργιες βιβλιοθήκες. Αν κινηθείς προς τα εδώ όμως, πιθανόν να χρειαστεί να δεις κι άλλες τεχνολογίες. Για παράδειγμα αντί Postgresql και SQL databases, πας σε NoSQL με Mongo.

Τώρα C# είχα κάνει μια πρακτική και τώρα βλέπω Java για σκοπούς εκμάθησης με Spring + microservices. Η C# συνδυάζεται με τα εργαλεία της Microsoft που σου παρέχει δικό της server (IIS), δικά της frameworks (.NET) και δικές της βιβλιοθήκες. Καλά είναι τα εργαλεία της αλλά εξαρτάσαι από την Microsoft. Ίσως πρέπει να αλλάξεις ολόκληρο το stack ακόμη σε όλα όσα σου παρέχει η Microsoft. Π.χ. από postgresql ίσως είναι καλύτερα να πας σε MSSQL. Το πρόβλημα μου με τις δύο γλώσσες + τα stack τους είναι πως δεν είναι fully open-source και είναι λιγότερο δημοφιλή μεταξύ freelancers. Κατά τα άλλα μου φάνηκαν καλές enterprise επιλογές.

Εγώ θα συνιστούσα php + laravel. Θα μοιάζει πολύ με όλα όσα κάνεις σε Django

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

Δημοσ. (επεξεργασμένο)
17 hours ago, galil said:


Στο μόνο που δεν μπορείς να αλλάξεις την Python είναι το κομμάτι των data analytics. Pandas και Numpy είναι τα καλύτερα εργαλεία γι' αυτό.

Σε ευχαριστώ, ναι είναι ένα από τα challenges αυτό. Το Pandas είναι βασικό εργαλείο για τη δουλειά που κάνω. Έλεγα μηπως κάποια άλλη πλατφόρμα έχει αντίστοιχη βιβλιοθήκη. 

Όσον αφορά το ORM που λες, δεν το χρησιμοποιώ για critical tasks. Εκεί προτιμώ απευθείας raw-sql που η Django σου δίνει τη δυνατότητα. 

10 hours ago, Ponous said:

Εγώ θα συνιστούσα php + laravel. Θα μοιάζει πολύ με όλα όσα κάνεις σε Django

Σε ευχαριστώ για τα ενδιαφέροντα που λες, το πρόβλημα μου (εντελώς δικό μου) είναι ότι αντιπαθώ php (και javascript, αλλά αυτή δεν μπορώ να την αποφύγω οπότε πλέον την έμαθα και τη χρησιμοποιώ) 

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

Δημοσ. (επεξεργασμένο)
Στις 12/11/2023 στις 2:25 ΠΜ, Ponous είπε

αλλά η κοινότητα είναι κάπως στην αρχή. Δεν λέω μπορεί να είναι τεχνολογίες με προοπτική αλλά θυμίζει λίγο τα πρώτα βήματα της php. Κάπου έχουμε προβλήματα με την ασφάλεια και γενικά πως ο καθένας κάνει ό,τι θέλει. Κάθε χρόνο βλέπεις και ένα καινούργιο framework και καινούργιες βιβλιοθήκες

Η κοινότητα δεν είναι καθόλου στην αρχή. H Node.js ξεκίνησε το 2009, υπάρχουν πάνω από 1.3 εκατομμύρια packages στο npm αυτή την στιγμή και υπάρχουνε stable και εδρεωμένα frameworks για ότι χρειάζεται ως web developer σήμερον ημέρα. Security issues υπάρχουν φυσικά, όπως και σε κάθε community εκεί έξω, πόσο μάλλον στην PHP που εκεί και αν κάνει ο καθένας ότι θέλει. Aν χρησιμοποιείς actively maintained packages και παρακολουθείς και λίγο τι γίνεται δεν έχεις κανένα θέμα.

Στις 12/11/2023 στις 2:25 ΠΜ, Ponous είπε

Αν κινηθείς προς τα εδώ όμως, πιθανόν να χρειαστεί να δεις κι άλλες τεχνολογίες. Για παράδειγμα αντί Postgresql και SQL databases, πας σε NoSQL με Mongo.

Τι σχέση έχει το Node.js με τι βάση θα χρησιμοποιήσει κάποιος; Καμία. 

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

16 ώρες πριν, Maniakos είπε

Η κοινότητα δεν είναι καθόλου στην αρχή.

Το node.js βγήκε το 2009 ενώ η php το 1995. Μου επισημάνεις το adonis.js που βγήκε το 2015, το nest js που βγήκε το 2017 ενώ το σχετικά "πρόσφατο" σταθερό framework laravel βγήκε το 2011... μη μιλήσω και για τα άλλα. Ίσως η "αρχή" είναι σχετική για τον καθένα αλλά νομίζω πως το node.js έχει ακόμη χρόνο να ωριμάσει.

Εγώ το βλέπω ως εξής: Μια εταιρεία πάνω κάτω λέμε πως θέλει 10 χρόνια να ωριμάσει (βασικά να θεωρηθεί "επιτυχημένη" γιατί το 65% των startups αποτυγχάνουν στα 10 χρόνια. Με δεδομένα Αμερικής όμως αυτό). Αν λοιπόν μια εταιρεία ξεκίνησε πριν 10 χρόνια, σίγουρα ξεκίνησε με διαφορετικό stack από node+adonis/nest. Μετά από 5 χρόνια θα δεις άλλες εταιρείες με άλλο stack...πχ αυτά που λες. Για τα δικά μου τα κριτήρια το οικοσύστημα της node.js έχει ακόμη δρόμο. Δεν σημαίνει πως τα frameworks δεν είναι σταθερά ή εδρεωμένα.

16 ώρες πριν, Maniakos είπε

Security issues υπάρχουν φυσικά

Τα node modules είναι άκρως επικίνδυνα με τον τρόπο που δουλεύουν αυτή τη στιγμή. Ναι, εννοείται πως όλες οι γλώσσες έχουν κάπου κάποια προβλήματα με την ασφάλεια, αλλά τα node modules έχουν χιλιάδες πακέτα που είναι δύσκολο να τα ελέγξεις όλα τι κάνουν, όποιοσδήποτε μπορεί να τρέξει σκριπτάκι να παραβιάσει το σύστημα σου.... κι αυτό θεωρείται νορμάλ! Γι' αυτό το είπα. Καταλαβαίνω να υπάρχουν bugs... όχι όμως αυτό.

16 ώρες πριν, Maniakos είπε

πόσο μάλλον στην PHP που εκεί και αν κάνει ο καθένας ότι θέλει

Ποιος το λέει αυτό; Έχεις πρόσφατη πηγή; γιατί τα τελευταία χρόνια άλλα έχω δει.

16 ώρες πριν, Maniakos είπε

Τι σχέση έχει το Node.js με τι βάση θα χρησιμοποιήσει κάποιος;

Μιλάμε για stacks που θα μπορούσε να μάθει. Είναι πιο διαδεδομένο το stack που χρησιμοποιεί node.js + mongo db/firebase παρά το stack που χρησιμοποιεί node.js + sql. Άμα θεωρείς κάποιο άλλο stack ποιο διαδεδομένο/καλό και χρησιμοποιεί sql βάση, καλοδεχούμενο

 

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

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

Θα ξεκινήσω λέγοντας ότι ο καθένας μπορεί να γράψει σε ότι γλώσσα επιθυμεί και να πετύχει το αποτέλεσμα που θέλει. 'Οτι και αν χρησιμοποιεί κάποιος, η γλώσσα/framework ένα εργαλείο είναι στο τέλος της ημέρας το οποίο χρησιμοποιείς για να πετύχεις έναν σκοπό. Κάποιους σκοπούς το κάθε εργαλείο τους κάνει ευκολότερους, και κάποιους άλλους δυσκολότερους. Για την πλειοψηφία των projects, δεν έχει καμία σημασία και απλά διαλέγεις ότι σε εκφράζει/σου κλικάρει περισσότερο και προχωράς.

Εχω γράψει αρκετή PHP (version 5 με Zend Framework) στην ζωή μου και μπορώ να πω ότι συστήματα που είχα φτιάξει πριν 15 χρόνια είναι ακόμα in production και εξυπηρετούν χιλιάδες requests per day ακόμα και σήμερα. Τί σημαίνει αυτό; Τίποτα και πολλά ταυτόχρονα. Τίποτα γιατί το ότι τρέχει ακόμα δεν σημαίνει ότι έχει κάτι μαγικό η γλώσσα και αν κάποιος γράψει ένα σύστημα σε PHP θα έχει το ίδιο αποτέλεσμα, και πολλά γιατί δείχνει ότι μπορείς να κάνεις την δουλειά σου με ένα εργαλείο και να αντέξει σε βάθος χρόνου, χωρίς απαραίτητα να πρέπει να το γυρίσεις σε κάτι πιο μοντέρνο και γυαλιστερό στην πορεία (πάντα για εμάς με τα θνητά projects μιλάω). Οι βαρετές τεχνολογίες είναι κάτι γνωστό εξάλλου, και είναι μια καλή τακτική για να φτιάξεις το οτιδήποτε.

Δεν έχω κανένα συναισθηματικό δέσιμο με καμία γλώσσα και κανένα framework. Το μόνο που θέλω από τα εργαλεία μου είναι να δουλεύουν για μένα και όχι εγώ για αυτά. Λέω τις εμπειρίες μου και τις παρατηρήσεις μου και τίποτα παραπάνω. Απλά διευκρινίζω για να μην παρεξηγηθώ ότι αυτό είναι κάποιο language/framework war το οποίο πραγματικά δεν με ενδιαφέρει καθόλου να συμετάσχω.

Αναφορά σε κείμενο

Μια εταιρεία πάνω κάτω λέμε πως θέλει 10 χρόνια να ωριμάσει (βασικά να θεωρηθεί "επιτυχημένη" γιατί το 65% των startups αποτυγχάνουν στα 10 χρόνια. Με δεδομένα Αμερικής όμως αυτό). Αν λοιπόν μια εταιρεία ξεκίνησε πριν 10 χρόνια, σίγουρα ξεκίνησε με διαφορετικό stack από node+adonis/nest.

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

Αναφορά σε κείμενο

Το node.js βγήκε το 2009 ενώ η php το 1995. Μου επισημάνεις το adonis.js που βγήκε το 2015, το nest js που βγήκε το 2017 ενώ το σχετικά "πρόσφατο" σταθερό framework laravel βγήκε το 2011... μη μιλήσω και για τα άλλα. Ίσως η "αρχή" είναι σχετική για τον καθένα αλλά νομίζω πως το node.js έχει ακόμη χρόνο να ωριμάσει.

Ναι, και; Ο μόνος λόγος που είπα την χρονολογία ήταν για να δείξω οτι υπήρξε αρκετός χρόνος για "ωρίμανση". 10 χρόνια στην πληροφορική είναι μια αιωνιότητα (2023-2009 = 14 χρόνια Node.js) όταν όλη η ιστορία της πληροφορικής είναι 60-70 χρόνια. Κατα τα άλλα οι χρονολογίες κατ'εμέ δεν σημαίνουν τίποτα ως μέτρο σύγκρισης τεχνολογιών γιατί όσο περνάνε τα χρόνια, δεν ξεκινάει από το μηδέν η πληροφορική, υπάρχει προϋπάρχουσα εμπειρία και μαθήματα οπότε και ένα νεότερο project επωφελείται από αυτό.

'Οταν ξεκίνησε η PHP δεν υπήρχαν ούτε οι ανάγκες ούτε η εμπειρία που υπάρχει σήμερα όσον αφορά το web. Δεν φανταζόντουσαν καν πως θα χρησιμοποιηθεί και για αυτό έχει μια ιστορία στην οποία φαίνεται ότι συνεχώς αλλάζαν βασικά πράγματα της γλώσσας γιατί ούτε αυτοί δεν ξέραν που πάει η φάση ακριβώς, ούτε υπήρχε η [web] εμπειρία που υπάρχει τώρα και λογικό το βρίσκω. Παρότι εγώ δεν θα την επέλεγα για ένα νέο project γιατί θεωρώ ότι δεν είναι η καλή λύση σε ένα real time web, και γενικά νιώθω ότι έχει κάνει τον κύκλο της, η εξέλιξη που είχε το PHP community τα τελευταία χρόνια και  υπάρχει PHP8 + Laravel +  PECL σίγουρα το τιμά. Αν κάποιος θέλει να τσεκάρει περισσότερο την μοντέρνα PHP, ας ρίξει μια ματιά εδώ.

Η Node.js δεν είναι ούτε αυτή μαγική, και όπως όλα τα εργαλεία έχει τις περιέργιες της, και πόσο μάλλον η JavaScript στην οποία και βασίζεται. Από εκεί και πέρα, διευκρίνισέ μας σε τι ακριβώς δεν έχει ωριμάσει η Node.js. Εγώ αυτό που ξέρω είναι ότι το 42% του μεγαλύτερου survey στο κόσμο αυτή την στιγμή χρησιμοποιεί Node.js, οπότε μάλλον είναι αρκετά ώριμο για να καλύπτετε αυτό το 42%. Ακόμα και αν δεν είναι, από την στιγμή που τόσος κόσμος την χρησιμοποιεί το αναγκάζει να εξελιχθεί ώστε να καλύψει τις παρούσες/μελλοντικές ανάγκες του. Προσωπικά την έχω χρησιμοποιήσει σε μεγάλα projects τα τελευταία 7 χρόνια και πραγματικά δεν ένιωσα ποτέ ότι λείπει κάτι βασικό το οποίο θα έδειχνε πραγματικά μια ανωριμότητα (πχ ένα web application framework ή ένα SQL/Mongo ORM ή ακόμα και ενας SQL/Redis/[name a big tech here] driver). 

Αναφορά σε κείμενο

...security

Είναι λίγο αστείο να μιλάμε για security και PHP. 

Το average skillset του εκάστοτε community, οπότε και η ποιότητα του κώδικα που παράγει, εξαρτάται αρκετά ΚΑΙ από το entrance barrier level της γλώσσας/framework. Στην PHP λοιπόν, το entrance barrier level ήταν από την αρχή πάρα πολύ χαμηλό (και ήταν και ένας σημαντικός λόγος για τον οποίο εξαπλώθηκε η PHP τόσο πολύ στο web), και ο κάθε άσχετος έγραφε κώδικα και δημιουργούσε κακής ποιότητας και insecure plugins για τα πιο διάσημα CMS (Joοmla, WooCommerce, Drupal, etc) τα οποία ένα τεράστιο μέρος του web τα χρησιμοποιούσε (και ακομα και σήμερα υπάρχει αρκετή PHP εκεί εξω να τρέχει), με αποτέλεσμα να έχουνε ξεφτυλιστεί αρκετοί servers στο πλανήτη, ιδίως τις χρυσές εποχές της PHP. 

Παρ'ολα αυτά, για μένα το 99% του φταιξίματος το έχει πάντα ο developer και όχι η γλώσσα. Η κάθε γλώσσα κάνει αυτά που κάνει και ο developer ωφείλει να καταλάβει πως να την χρησιμοποιήσει. Η γλώσσα μπορεί να σε προστατεύσει μέχρι ένα σημείο στην τελική. Από την άλλη αν η ίδια η γλώσσα σαμποτάρει την κατανόηση, τότε απλά προχωράμε σε κάτι άλλο. 

Aλλά μιας και λέμε για Node.js, τότε και εδώ μπορώ να πω ότι θεωρώ πως το μέσο quality ενός Node.js module είναι υψηλότερο από αυτό που συναντάς στην PHP, χωρίς αυτό να σημαίνει ότι δεν υπάρχουν και εδώ security concerns. Δεν έχω κάποια νούμερα να το υποστηρίξω και το λέω από προσωπική παρατήρηση. Οποιοσδήποτε μπορεί απο μόνος του να κάνει μια βόλτα σε μερικά από τα μεγαλύτερα PHP projects εκεί έξω, αλλά και μικρότερα modules από διάφορους contributors, και αντιστοίχως σε Node.js και να αποφασίσει με τα μάτια του για την ποιότητα του κώδικα που βλέπει. Υπάρχει και η περίπτωση του να απογοητευτεί και με τα δύο και τελικά να πάει σε μια τρίτη λύση.

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

@antirix024, αν δεν έχεις κάποιο πραγματικό λόγο να αλλάξεις stack πχ επειδή θές να κάνεις κάτι το οποίο δεν γίνεται σε Django/Python αλλά γίνεται σε κάτι άλλο γίνεται πιο εύκολα/πιο ευχάριστα, κάτσε εκεί που είσαι. Ο δεύτερος λόγος να μάθεις κάτι άλλο/εξτρα είναι το να γίνεις πιο ανταγωνιστικός/πιο εύκολα προσλήψιμος σε σχέση με τον ανταγωνισμό οπότε θα σου πρότεινα να διάλεγες κάτι hot αυτή την περίοδο (πχ Node.js + React.js). Ο τρίτος λόγος για να μάθεις κάτι άλλο είναι επειδή πολύ απλά θες να εξερευνήσεις το τοπίο. Αν κάτι σίγουρα θα σε συμβούλευα να κάνεις με ότι και αν κάτσεις στο backend, είναι να δεις λίγο περισσότερο τις frontend τεχνολογίες. Ακόμα και αν δεν τις χρησιμοποιήσεις, πάντα κάτι παίρνεις και έχεις και μια πιο σφαιρική άποψη με τα προβλήματα που αντιμετωπίζει η πληροφορική γενικότερα στην σήμερον ημέρα.

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

Συμφωνώ στο ότι δεν κάνει η γλώσσα το προγραμματιστή κι όλα εξαρτάται από τον ίδιο αλλά όσο κι αν μ' αρέσουν αυτές οι συζητήσεις, το θέμα δεν είναι αν η node.js είναι καλύτερη της php αλλά το θέμα είναι τι stacks θα προτείναμε αντί Django/Python. Γι' αυτό σε κάποια θα απαντήσω συνοπτικά για να μην κουράσουμε και τους υπόλοιπους

13 ώρες πριν, Maniakos είπε

Εχω γράψει αρκετή PHP (version 5 με Zend Framework) στην ζωή μου

Έτσι την έπαθα κι εγώ. Ξεκίνησα με php 5 και πραγματικά μίσησα το stack. Μετά πήγα σε Node.js (μεταξύ άλλων) και μετά ξανά σε php 7.4 + laravel λόγω δουλειάς, symfony και συνεχίζω. Από προσωπική εμπειρία τα λέω αυτά. Όταν επέστρεψα σε php7.4+ αναθεώρησα την άποψη μου για την php και άλλα stacks.

13 ώρες πριν, Maniakos είπε

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

Εννοούσα πως κρίνουμε κάτι σε βάθος χρόνου. Κάποια από αυτά που ανέφερες ακόμη δεν συμπλήρωσαν 10 χρόνια ζωής, αυτό.

13 ώρες πριν, Maniakos είπε

Είναι λίγο αστείο να μιλάμε για security και PHP. 

Εγώ βασικά για Node.js είπα πως δεν έχει καλό security. Τα node modules για μένα είναι μεγάλο πρόβλημα όπως δουλεύουν σήμερα. Εδώ όμως θα διαφωνήσω σε αυτό που λες διότι αυτό που ξέρω είναι πως security issues έχουμε κυρίως σε php6-, σε legacy codes και τα γνωστά frameworks τύπου wordpress, joomla κτλπ. Εδώ ακριβώς είναι που κατάλαβα πόσο καλή είναι η κοινότητα της php διότι πλέον έχεις βιβλιοθήκες οι οποίες υλοποιούν όλα τα πρωτόκολλα ασφαλείας, και πολλές αλλαγές στην ίδια την γλώσσα με το σύστημα τύπων κτλπ. Με λίγα λόγια υπάρχει εξέλιξη. Άρα όχι. Δεν το βρίσκω αστείο να μιλάμε σήμερα για security + php όταν κάθε καινούργιο API, web app, ή έστω πρότζεκτ που θα κάνεις θα έχει ήδη ενσωματωμένες βιβλιοθήκες για authentication, authorization κτλπ με καθημερινή υποστήριξη. Αυτά στη Node.js δεν είναι η νόρμα, γι' αυτό και λέω πως ως κοινότητα έχει ακόμα δρόμο να ωριμάσει. Αστείο είναι να συγκρίνουμε ακόμη την php5 ενώ είμαστε σε php8.2 (σε λίγο php 8.3)

13 ώρες πριν, Maniakos είπε

Το average skillset του εκάστοτε community, οπότε και η ποιότητα του κώδικα που παράγει, εξαρτάται αρκετά ΚΑΙ από το entrance barrier level της γλώσσας/framework

Αυτό. Αυτός ακριβώς είναι ο λόγος που θεωρώ πως το Node.js θέλει ακόμα χρόνο να ωριμάσει. Ότι περιγράφεις ήταν στο php5 και είδα πόσο άλλαξαν τα πράγματα τώρα. Σε node.js συναντώ ότι περιγράφεις. Μπορεί όχι σε τέτοιο βαθμό αλλά στον βαθμό που πρέπει για να συμπεράνω πως είναι ακόμα στην αρχή.

Τέσπα, για να μην ζαλίσουμε και τους υπόλοιπους, από ότι κατάλαβα και οι δύο από εμπειρία μιλάμε. Προσωπικά δεν είμαι fan καμιάς γλώσσας και στο μέλλον το πιο πιθανό είναι πως θα ρίξω μια ματιά και σε node.js γιατί γενικά γουστάρω το αντικείμενο. Με τα σημερινά δεδομένα όμως, θεωρώ πως στη Node.js δεν έχεις περισσότερα βοηθήματα έχεις σε python, php, c# κα. Έχεις όσα χρειάζεσαι για να φτιάξεις ό,τι θες.... όχι περισσότερα. Αν έχω λάθος, θα το μάθω όταν ξαναπιάσω την Node.js

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

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

@Ponous, FYI η node.js την εποχή της PHP5-αρχές 7 ήταν μόνο με callbacks που ήταν εμετός. Εγώ είχα πάει στο ενδιάμεσο σε Rails για αυτόν τον λόγο. Με async/await που προσθέσανε μετά, ο κώδικας που γράφεις έγινε ανθρώπινος.

Ας μην κουράσουμε άλλο, νομίζω είπαμε αυτά που θέλαμε.

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

On topic: Αν ξεκινούσα νέα γλώσσα θα ήταν η Elixir μιας και είναι functional και λατρεύω functional programming. 

Off topic:   

On 15/11/2023 at 01:24, Ponous said:

Τα node modules είναι άκρως επικίνδυνα με τον τρόπο που δουλεύουν αυτή τη στιγμή. Ναι, εννοείται πως όλες οι γλώσσες έχουν κάπου κάποια προβλήματα με την ασφάλεια, αλλά τα node modules έχουν χιλιάδες πακέτα που είναι δύσκολο να τα ελέγξεις όλα τι κάνουν, όποιοσδήποτε μπορεί να τρέξει σκριπτάκι να παραβιάσει το σύστημα σου.... κι αυτό θεωρείται νορμάλ! Γι' αυτό το είπα. Καταλαβαίνω να υπάρχουν bugs... όχι όμως αυτό.

Μα και η php έχει τον composer που έχει ακριβώς την ίδια λογική με το npm.

p.s πάνω που το λήξατε είπα να πω και εγώ το κοντό μου :P 

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

Δημοσ. (επεξεργασμένο)
15 ώρες πριν, Xvipes είπε

Μα και η php έχει τον composer που έχει ακριβώς την ίδια λογική με το npm.

Το πρόβλημα δεν είναι οι package managers. Το πρόβλημα είναι ο έλεγχος που υπάρχει γύρω από το npm και ο τρόπος που χειρίζεσαι τις αλλαγές. O Ryan Dahl, αυτός που έφτιαξε το Node.js, αποφάσισε να δημιουργήσει το Deno.js γιατί θεωρεί πως έκανε πολλά λάθη με την Node.js. Σε μια ομιλία του το είπε ξεκάθαρα πως μερικά από τα πράγματα που μετανιώνει είναι το package.json, node_modules και η ελλειπής ασφάλεια. Είναι εμφανές άλλωστε. Δοκίμασε να κάνεις ένα "npm init". Θα βρεις ένα φάκελο με χιλιάδες πακέτα ενώ καλά καλά το πρότζεκτ δεν το ξεκίνησες. Τα μισά θα είναι κίτρινα και θα σου γράφουν "deprecated" κιόλας 😄

15 ώρες πριν, Xvipes είπε

Επιθέσεις υπάρχουν παντού. Άλλο να είναι πρόβλημα της αρχιτεκτονικής κι άλλο επειδή υπήρχε bug. Σε αυτή την περίπτωση υπήρχε bug, το οποίο και επιλύθηκε. Ο τρόπος με τον οποίο δουλεύουν τα node modules και ο τρόπου που χρησιμοποιούνται από την κοινότητα αυτή τη στιγμή είναι που με ενοχλεί. Πιο παλιά, και με τα πακέτα στην php δεν υπήρχε καλός έλεγχος και πολλές βιβλιοθήκες ενώ ήταν η νόρμα, ήταν άκρως επικίνδυνες (φαντάσου πως κάποτε ήταν συνηθισμένο για sql να χρησιμοποιείς mysqli χωρίς έλεγχο των strings). Άλλος τα πακέτα τα έκανε install από phar, άλλα από pecl, άλλα απλά τα κατέβαζε. Με τα χρόνια όμως έφτιαξε κι αυτό.

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

Δημοσ. (επεξεργασμένο)
Στις 20/11/2023 στις 11:22 ΠΜ, Xvipes είπε

On topic: Αν ξεκινούσα νέα γλώσσα θα ήταν η Elixir μιας και είναι functional και λατρεύω functional programming. 

Χεχ, δεν την ανέφερα πριν για να μην πολυπλοκέψω την συζήτηση αλλά και εγώ έχοντας περάσει αρκετό χρόνο με Clojure σε production use, είμαι πλέον εδώ και κανα έτος με Elixir/Phoenix στα νέα projects και μάλλον εδώ θα μείνω για πολύ καιρό. Το σίγουρο είναι πάντως ότι σε PHP δεν γυρνάω 😛

Eγώ σε γενικές γραμμές ικανοποιημένος είμαι με τα node modules πάντως. Τέλεια δεν είναι όπως τίποτα εξάλλου και σίγουρα ούτε το PECL. Παρ'ολα αυτά το npm έχει κάτι αρκετά χρήσιμο, και δεν το έχουνε όλοι οι package managers, και αυτό είναι το ότι αν εγκαταστήσεις 2 packages (A + Β) με ένα ίδιο dependency (Γ), μπορείς για το ίδιο dependency (Γ) να έχεις διαφορετικές εκδόσεις, ανάλογα με το τι χρειάζεται το Α και το Β. Αυτό σημαίνει λιγότερο breakage με κάθε upgrade των πακέτων. Αυτός είναι όμως και ο λόγος που τα node modules πιάνουνε και αρκετά περισσότερο χώρο από την άλλη. Διαλέξτε και πάρτε.

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

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

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

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

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

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

Σύνδεση

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

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