Παρασκευή 22 Αυγούστου 2014

Τετάρτη 13 Αυγούστου 2014

Net πλατφόρμα σε όλα τα λειτουργικά συστήματα.

Ο προγραμματισμός σε .Net, δηλαδή σε γλώσσες που υποστηρίζουν τον κώδικα Net της Microsoft, μπορεί να γίνει σε διάφορα λειτουργικά, ακόμα και στο Linux.


Για το σκοπό αυτό υπάρχει το MonoDevelop ένα σύστημα που μπορεί να δημιουργήσει εφαρμογές για Linux, Windows και Mac OSX. Παρέχεται ένα ενσωματωμένο περιβάλλον ανάπτυξης (IDE). Λέγεται ενσωματομένο γιατί μέσα από αυτό δημιουργούμε την εφαρμογή και την τρέχουμε με χρήση σημείων διακοπής (ώστε να εξετάζουμε τι γίνεται). Αν και φαντάζει πιλοτίριο αεροπλάνου...δεν είναι τόσο πολύπλοκο.


Το είδος των εφαρμογών φαίνεται στο πλαίσιο διαλόγου νέα λύση. Στην ορολογία του Net η λέξη λύση (Solution) δηλώνει όλα τα αναγκαία αρχεία που χρειάζονται για να δώσουν λύση σε αυτό που ζητάμε, να έχουμε δηλαδή την αρεστή εφαρμογή. Έτσι οι λύσεις μπορούν να δωθούν ανάλογα με το στόχο, το είδος δηλαδή που θέλουμε. Ένα από αυτά είναι το ASP.NET για τη δημιουργία εφαρμογών διαδικτύου (τρέχουν στην πλευρά του εξυπηρετητή και παρέχουν κύρια δυναμικές σελίδες με χρήση βάσης δεδομένων)

Οι γλώσσες συγγραφής είναι δυο τύπου ΝΕΤ, η C# και η VB (καμία σχέση με την vb6) και οι βαριές C και C++. Οι δυο τελευταίες είναι για προχωρημένους προγραμματιστές. Ουσιαστικά οι δυο πρώτες είναι εδώ οι ενδιαφέρουσες, γιατί συνδιάζονται με το σύστημα συγγραφής και παρέχονται όλα τα καλούδια για να φτιάξουμε γρήγορα και με καλό έλεγχο αποσφαλμάτωσης, λύσεις για εφαρμογές.

H C# όπως και η VB εδώ ανοίκουν στις λεγόμενες γλώσσες κοινής υποδομής, έτσι ο τελικός κώδικας τόσο της πρώτης όσο και της δεύτερης γλώσσας τρέχουν στο ίδιο περιβάλλον, στο περιβάλλον ΝΕΤ, όπου αυτό παρεμβάλλεται μεταξύ του χρήστη και του κώδικα. Ουσιαστικά οι γλώσσες αυτές δεν παράγουν προγράμματα σε γλώσσα μηχανής. Παλαιότερα αυτό ήταν ένα ζήτημα. Διότι ό,τι δεν παρήγαγε γλώσσα μηχανής έτρεχε αργά. Δεν συμβαίνει αυτό σήμερα γιατί στην ουσία ο ενδιάμεσος κώδικας είναι πολύ αποτελεσματικός. Και με τις δυο γλώσσες κάνουμε τα ίδια πράγματα. Η διαφορά είναι στο πώς φαίνεται στο χρήστη. Δηλαδή αν αρέσει ο απλός περιγραφικός τρόπος της VB, ή ο σπαρτιάτικος τύπου C της C#. Συγκρίνοντας αυτές τις γλώσσες με τη C, η τελευταία είναι μεν  "τα πάντα όλα", αλλά στερείται της χρήσης των αντικειμένων, άμεσα, ενώ η C++ ενώ έχει υποστήριξη αντικειμένων στερείται μια τυποποίηση για αυτά. Η ελευθερία δηλαδή των C και C++ στις επιλογές δημιουργεί πρόβλημα προσαρμογής, διερεύνησης και επιλογής των κατάλληλων μερών της εφαρμογής.

Η χρήση των γλωσσών της κοινής υποδομής (CIL), δίνει έτοιμες και μετρημένες επιλογές, με στόχο την γρήγορη ανάπτυξη.  Το μειονέκτημα εδώ είναι ότι δεν ξεκινάει κανείς με κάτι απλό, σε ένα βασικό επίπεδο, αλλά από τρία σκαλοπάτια παραπάνω. Πρέπει να έχει καλύψει το πρώτο σκαλοπάτι, την χρήση απλού προγραμματισμού, ανακύκλωση, εκτέλεση υπό συνθήκη, αρχικοποίηση μεταβλητών. Πρέπει να έχει καλύψει το δεύτερο σκαλοπάτι τη χρήση του συναρτησιακού προγραμματισμού, το πέρασμα τιμών με αναφορά ή με τιμή, τους τύπους χρήστη μεταβλητών. Πρέπει επίσης να καλύψει το τρίτο σκαλοπάτι, την χρήση των αντικειμένων, τις ιδιότητες και τις μεθόδους, τα γεγονότα και πως αυτά συνδέονται με τις φόρμες.

Συνέπεια αυτής της απαίτησης για γνώση πέρα από ένα μικρό λεξιλόγιο (όπως στη C), είναι να μένει στα αζήτητα για τους νέους προγραμματιστές, ένα κατά τα άλλα θαυμάσιο σύστημα παραγωγής λύσεων.

Το ενδιαφέρον λοιπόν θα πρέπει να εστιάζεται στα καλά που παρέχει το σύστημα, όπου οι λύσεις τρέχουν σε όλα τα λειτουργικά, στο ότι είναι δωρεάν, στο ότι υπάρχουν παραδείγματα και έτοιμος κώδικας για να ξεκινήσει κανείς.
Έτσι η γνώση που μπορεί να λείπει για τα τρία επίπεδα που αναφέρθηκαν παραπάνω μπορεί να αντληθεί από την χρήση του συστήματος. Όπως ένας οδηγός αυτοκινήτου γίνεται οδηγός πάνω στο αυτοκίνητο. Για το προγραμματισμό η επίβλεψη από κάποιον ειδικό είναι πάντα επιθυμητή, αλλά όχι απαραίτητη.

Γ.Κ.