Unkillable zombie blog

This blog just won't die

Dec 28, 2009

Amilo mini sucks

Yes, this is an X-Sucks post.

Around May 2009, i bought a Fujitsu-Siemens Amilo Mini UI-3520. This is a small netbook. It was probably the cheapest netbook i could find at this time, but it was also one of the smaller and lighter ones.

My experience with it has not been a happy one however.

  • Upon arrival, the battery was dead. I had to send the whole thing back, and get a new one.
  • After a few months the screen begun flickering. Note that I’ve used it very little (it mostly sits on my bookshelf). Since it is still in the warranty i sent it back for repair. I was told today that the motherboard needs replacing and there is none in stock, either here or in the factory in Germany. No word on when i’ll have it back.
  • The keyboard is rather horrible. The keys are very small and i keep making typos. My sister’s Acer Aspire One has a far better keyboard, and it was marginally more expensive.
  • The pre-installed Windows XP came with broken WiFi drivers that required an update to work. How could they miss that before shipping?
Click to read and post comments

May 04, 2009

Why PHP sucks.

Με αφορμή ένα facebook status message ενός φίλου (ναι, την μισεί και αυτός :p ), είπα να γράψω οτι είναι στραβό με την PHP κατα την γνώμη μου.

Εχουμε λοιπόν:

  1. Χιλιάδες functions στο default namespace.
    Είναι πραγματικά απίστευτο. Μέχρι πρόσφατα η PHP δεν υποστήριζε namespaces και υπάρχουν κυριολεκτικά χιλιάδες functions στο default namespace. Εντελώς απαράδεκτο.
  2. Unicode. Πού είναι? οεο!
    Έχουμε 2009 και η PHP δεν υποστηρίζει Unicode. Μοιάζει μα ανέκδοτο αλλά δεν είναι.
  3. Κανένα database abstraction.
    Πόσο δύσκολο είναι ένα καλύτερο API για database access που να μην είναι δεμένο σε μια συγκεκριμένη database? Υπάρχουν διάφορα modules/scripts κλπ για να το λύνουν αυτό , παρόλα αυτά πάρα πολλά project χρησιμοποιούν functions συγκεκριμένες σε μια μόνο database. Και δεν μιλάω για χρήση ORM. Απλά ένα DB API όπως της Python.
  4. Χάος με deprecated functions.
    Συχνά functions σπάνε την συμβατότητα, αλλάζουν όνομα και υπάρχουν διαφορετικές και ασύμβατες functions παράλληλα. Παράδειγμα: mysql_* με mysqli_* και mysql_escape_string vs mysql_real_escape_string.
  5. Δεν υπάρχουν στάνταρ στις functions.
    Η σειρά των παραμέτρων αλλάζει ανάμεσα σε string μεθόδους. Παράδειγμα
  6. Ασυνεπές περιβάλλον Με τα .ini αρχεία ο developer δεν μπορεί να γνωρίζει είναι διαθέσιμο και τι όχι.
    Επιπλέον, υπάρχουν functions όπως η money_format() που δεν είναι portable και χωρίς σημαντικό λόγο. Η money_format() δεν είναι fork() ή κάποιο system call δεμένο σε μια πλατφόρμα. Γιατί το υλοποίησαν με non-portable τρόπο?
  7. Βλαμμένες χακιές
    Πχ magic_quotes. Το magic quotes ήταν μια χαζή ιδέα γεμάτη προβλήματα. Η ιδέα εγκαταλείφθηκε αλλα άφησε τα απομεινάρια της. Ο developer δεν γνωρίζει αν είναι ενεργοποιημένα ή όχι, και πρέπει να ελέγχει με get_magic_quotes_gpc().
    Φυσικά έχουμε και το register_globals. Μια ακόμα βλαμμένη ιδέα που καταργήθηκε. Ήταν μια πηγή απο bugs και απο σοβαρά κενά ασφαλείας. Δείτε εδώ για περισσότερα.
  8. Δεν προάγει διαχωρισμό HTML , κώδικα και SQL.
    Υπάρχουν MVC frameworks αλλα η συντριπτική πλειοψηφία του PHP κώδικα είναι “όλα αχταρμάς”. Τα περισσότερα βιβλία και tutorial σε μαθαίνουν την λογική όλα μέσα. Για κάθε PHP project που είναι καλά σχεδιασμένο/γραμμένο υπάρχουν άλλα χίλια που θες να βγάλεις τα μάτια σου και να τα φάς.

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

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

posted at 15:11  ·   ·  php  sucks  rant  greek
Click to read and post comments