<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Design &amp; Architecture</title><link>https://www.dotnetzone.gr:443/cs/forums/16/ShowForum.aspx</link><description>Θέματα αρχιτεκτονικής και σχεδιασμού εφαρμογών (design patterns, object orientation, κ.α.)</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: x = x + 1 ... μα αυτό δε γίνεται</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/38799.aspx</link><pubDate>Fri, 04 Jan 2008 21:56:53 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:38799</guid><dc:creator>PALLADIN</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/38799.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=16&amp;PostID=38799</wfw:commentRss><description>&lt;FONT size=1&gt;
&lt;P&gt;Θα συμφωνήσω απόλυτα με τους φίλους Παναγιώτη και Άγγελο.&lt;/P&gt;
&lt;P&gt;Ο &lt;FONT size=1&gt;συνδυασμός &lt;/FONT&gt;OOP + FP είναι το μέλλον... η F# είναι μια πολύ pragmatic υλοποίηση και πιστεύω ότι θα γίνει η elite γλώσσα στο .net&lt;/P&gt;
&lt;P&gt;(&lt;FONT size=1&gt;&lt;FONT size=1&gt;Όσοι φίλοι παίζουν με JVM ας δουν και την Scala&lt;/FONT&gt;&lt;/FONT&gt;)&lt;/P&gt;&lt;/FONT&gt;</description></item><item><title>Απ: x = x + 1 ... μα αυτό δε γίνεται</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/38795.aspx</link><pubDate>Fri, 04 Jan 2008 20:01:50 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:38795</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/38795.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=16&amp;PostID=38795</wfw:commentRss><description>&lt;P&gt;Άγγελε, κάντο αυτό οι σοβαρές εταιρείας που ασχολούνται με χρηματοοικονομικά. Εκτός Ελλάδος, αυτές οι εταιρείες χρησιμοποιούν ακόμα C++ και τα multithreading libraries της Intel για να πετύχουν τη μέγιστη δυνατή απόδοση - γιατί τους ενδιαφέρει ο πολύ γρήγορος κώδικας. Για φαντάσου να είσαι η JP Morgan και να πρέπει να πάρεις αποφάσεις σε real-time για συναλλαγές δις, υπολογίζοντας δείκτες για τις συναλλαγές της τελευταίας ώρας. &lt;/P&gt;
&lt;P&gt;Εντός Ελλάδος, κάποιοι παραμένουν σε VB6 κι ας θέλει μέρες να βγάλουν ένα report γιατί ... φοβούνται να αλλάξουν τον κώδικα (Γειά σου Γιώργο! Και χαιρετίσματα σε&amp;nbsp;όσους&amp;nbsp;φάγαμε τις περσινές γιορτές στη δουλειά και τη Ρουμανία!&amp;nbsp;)&lt;/P&gt;</description></item><item><title>Απ: x = x + 1 ... μα αυτό δε γίνεται</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/38794.aspx</link><pubDate>Fri, 04 Jan 2008 19:55:28 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:38794</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/38794.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=16&amp;PostID=38794</wfw:commentRss><description>&lt;P&gt;Μην σας φαίνεται περίεργη η λογική των functional γλωσσών, ούτε είναι low-level ο Armstrong. Ίσα-ίσα, είναι πολύ high level. Αυτό τον καιρό γίνεται πάρα, μα πάρα πολύ συζήτηση για τις functional γλώσσες στο χώρο του .NET, και ειδικά για την F#. Ο λόγος είναι ότι οι functional γλώσσες είναι η μόνη πρακτική επιλογή για τη δημιουργία εφαρμογών που θα εκμεταλλεύονται multi-core υπολογιστές. Σήμερα έχουμε quad-core τσιπάκια, αύριο θα έχουμε 8 ή 16, σε συστοιχίες 4+ επεξεργαστών, για ένα σύνολο 8 (σήμερα) μέχρι ...ήντα επεξεργαστές πολύ σύντομα.&lt;/P&gt;
&lt;P&gt;Οι τεχνικές που χρησιμοποιούμε οι περισσότεροι για multi-threading επεξεργασία είναι εξαιρετικά αργές , βαρειές&amp;nbsp;και δύσκολες στον προγραμματισμό - για δύο επεξεργαστές. Σε περιβάλλον περισσότερων επεξεργαστών καλά-καλά δεν υπάρχει μαθηματική απόδειξη ότι μπορούν να δουλέψουν&amp;nbsp;σε παραπάνω από δύο επεξεργαστές&amp;nbsp;(δηλαδή, μπορεί η εφαρμογή σου που δουλεύει φέτος, να έχει deadlock του χρόνου) ενώ δεν υπάρχει εύκολος τρόπος να χρησιμοποιήσεις όλους τους επεξεργαστές που έχει το μηχάνημα αν δεν ξέρεις εκ των προτέρων πόσοι είναι. Καθώς οι ταχύτητες των επεξεργαστών έπαψαν να αυξάνονται, οι επιδόσεις του multithreading χτύπησαν ταβάνι&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Το multithreading είναι αργό γιατί δεν εκμεταλλεύεται τους επεξεργαστές και την τοπολογία τους για ένα task, αλλά απαιτεί να σπάσει το task σε πολλά threads. &lt;/LI&gt;
&lt;LI&gt;Είναι βαρύ γιατί κάθε thread έχει ένα πολύ μεγάλο overhead και υπόκειται σε thread-switching το οποίο είναι επίσης βαρύ&lt;/LI&gt;
&lt;LI&gt;Δύσκολο ... δεν χρειάζεται να το πούμε αυτό. Η πολυπλοκότητα ενός προβλήματος αυξάνεται συνδυαστικά με τον αριθμό των επεξεργαστών. Και δεν μιλάμε να εκμεταλλευτεί κανείς NUMA αρχιτεκτονικές, όπου ο κάθε επεξεργαστής έχει ένα γρήγορο bus προς τη δική τουνήμη&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Στην καρδιά του προβλήματος είναι ότι αντί να λέμε στον υπολογιστή τί θέλουμε να υπολογίσει, του λέμε πως να το υπολογίσει και μάλιστα πως να στήσει τη stack του, τα locks του, ένα κάρο πράγματα άσχετα με τον υπολογισμό. Ένα λάθος και έγινε χαμός. Οι functional γλώσσες λύνουν το πρόβλημα γιατί μας επιτρέπουν να πούμε τί θέλουμε να υπολογίσουμε και μετά η γλώσσα (o compiler, o interpreter, κάποιος optimizer) επιλέγει τον καλύτερο τρόπο να το κάνει αυτό. Εμείς λέμε π.χ. ότι ένας πίνακας είναι το γινόμενο δύο άλλων πινάκων. Η γλώσσα θα αναλάβει να σπάσει τους πίνακες στους 32 επεξεργαστές, να φροντίσει να μην υπάρχει locking, να φορτώνονται σωστά οι cache των επεξεργαστών κλπ.&lt;/P&gt;
&lt;P&gt;Κλασσικό παράδειγμα functional γλώσσας είναι η .... SQL. Σε ένα select λέμε τί θέλουμε να μας φέρει, όχι πως, με ποια σειρά θα διαβάσει το σκληρό, ποιούς buffer θα χρησιμοποιήσει, ούτε καν ποιά indexes ή πως θα κάνει τα joins. Στο 99% των περιπτώσεων ένα σωστά φτιαγμένο select είναι δεκάδες ή εκατοντάδες φορές ταχύτερο από ένα cursor, ακριβώς γιατί η κάθε βάση καταφέρνει να βρει ένα πολύ καλύτερο τρόπο εκτέλεσης του query απ' ότι ο προγραμματιστής. Η βάση ξέρει και τί επεξεργαστές έχει, πόση διαθέσιμη μνήμη και πόσους χρήστες οπότε μπορεί να βρει ένα πολύ καλύτερο τρόπο εκτέλεσης.&lt;/P&gt;
&lt;P&gt;Οι functional γλώσσες προβλέπεται να γίνουν mainstream σε μερικά χρόνια ... πως λέμε 1-2 και να παραμείνουν και&amp;nbsp;ειδικά στο χώρο του .NET. Αυτό οφείλεται στο ότι η Microsoft έχει ήδη μία functional .ΝΕΤ γλώσσα, την F# η οποία μπορεί να δουλέψει μαζί με οποιαδήποτε άλλη γλώσσα του .NET στα πλαίσια μίας εφαρμογής. Μπορείς άνετα να φτιάξεις το GUI σε C# ή VB.NET (φτου, φτου) και τους αλγόριθμους σε F#&lt;/P&gt;</description></item><item><title>Απ: x = x + 1 ... μα αυτό δε γίνεται</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/38793.aspx</link><pubDate>Fri, 04 Jan 2008 19:42:34 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:38793</guid><dc:creator>anjelinio</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/38793.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=16&amp;PostID=38793</wfw:commentRss><description>Διαβάζω το post σου, και χαμογελάω γιατί πριν 5 χρόνια θα έλεγα κι εγώ τα ίδια φίλε μου. Χρειάζεται να περάσεις απο ένα "&lt;i&gt;complexity threshold&lt;/i&gt;"&amp;nbsp; και να ξανα-ανακαλύψεις αρκετούς functional τροχούς&amp;nbsp; πριν το "&lt;i&gt;πιάσεις&lt;/i&gt;" - όχι ότι το έχω κι εγώ "&lt;i&gt;πιάσει&lt;/i&gt;" ακόμα, έτσι; &lt;br&gt;&lt;br&gt;Πάντως, οι περισσότερες εταιρίες που ασχολούνται με χρηματο-οικονομικά, derivatives, risk managment, physics, simulation και οτιδήποτε εμπλέκει βαρύ computation είναι κατα παράδοση functional, και η μαμά Microsoft έχει βγάλει μια functional γλώσσα για .NET, την F#, με την οποία παίζω τα βράδια σε VS 2005 &amp;amp; VS 2008.&lt;br&gt;&lt;br&gt;Μεγάλες ( &lt;i&gt;μέγιστες &lt;/i&gt;) &lt;a href="http://mlton.org/pipermail/mlton-user/2007-January/000951.html"&gt;εταιρίες&lt;/a&gt;, τις οποίες όμως εμείς οι "&lt;i&gt;ταπεινοί&lt;/i&gt;" προγραμματιστές δε θα μάθουμε ποτέ, γράφουν χρόνια σε OCaml και διατυμπανούν "F# Hackers welcome".&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;... &lt;i&gt;αν κάποιος λοιπόν δε θέλει να δεί τα σημάδια&lt;/i&gt; ... &lt;br&gt;</description></item><item><title>Απ: x = x + 1 ... μα αυτό δε γίνεται</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/38790.aspx</link><pubDate>Fri, 04 Jan 2008 13:47:42 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:38790</guid><dc:creator>afnman</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/38790.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=16&amp;PostID=38790</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;anjelinio:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;Σε μια μαθηματική "φράση", δε θα γράφαμε ποτέ χ = χ + 1. Μάλιστα κάποιος θα κοίταζε απορημένος την έκφραση αν δεν είχε προγραμματιστικό background.&lt;br&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;Σε μια&amp;nbsp; μαθηματική φράση δεν θα βάζαμε ουτε το 1+1=10&amp;nbsp;&amp;nbsp; και να ειχε προγραμματιστικο background ,θα το κοιτουσε απορημενος. αν δεν σκεφτοταν δυαδικά.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;anjelinio:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;Ο τρόπος του functional κόσμου είναι να μη μοιράζεις μεταβλητές μεταξύ λειτουργικότητας. Κομμένο το ByRef δηλαδή στη VB, και μόνο value types ή όλες οι μεταβλητές readonly και προσεχτικά, αν γράφεις C#. [**]&lt;br&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;&amp;nbsp;Πιο ευκολα θα λυνω τα προβληματα μου, σχεδιαζοντας hardwares με πύλες NAND. :P&lt;br&gt;&lt;br&gt;&lt;br&gt;Ο τυπος ειναι fan του low-level programming.....&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description></item><item><title>Απ: x = x + 1 ... μα αυτό δε γίνεται</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/36950.aspx</link><pubDate>Mon, 05 Nov 2007 01:39:04 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:36950</guid><dc:creator>anjelinio</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/36950.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=16&amp;PostID=36950</wfw:commentRss><description>Νομίζω κι εγώ το ότι να επιχειρήσεις να αλλάξεις τις υπάρχουσες γλώσσες, έτσι ώστε να υπακούουν ένα "μαθηματικό" συμβολισμό, είναι ουτοπικό. Τουλάχιστον για το mainstream κόσμο. &lt;br&gt;&lt;br&gt;Το επιχείρημα όμως ότι τo να μή μοιράζεσαι state είναι πολύ καλή πρακτική τόσο για τα λιγότερα λάθη που θα προκύψουν, όσο και για τον πιθανό παραλληλισμό μιας διαδικασίας, είναι πιστεύω valid. Και μας σπρώχνουν "διακριτικά" προς τα 'κεί, δίνοντάς μας LINQ, Workflow και εύκολα services.&lt;br&gt;&lt;br&gt;Ίσως σε μερικά χρόνια, με τον ένα τρόπο ή τον άλλο, κάθε "node" λειτουργικότητας να έχει μειωθεί σε ένα input -&amp;gt; process -&amp;gt; output structure, υλοποιημένο ως ένα service. Χρησιμοποιώντας Workflow "δένεις" αυτά τα αυτόνομα nodes μεταξύ τους σε "αλυσίδες" ώστε να δημιουργήσεις έτσι με τη σύνθεση τη λύση στο πρόβλημά σου. &lt;br&gt;&lt;br&gt;Ίσως όμως με τα features που θα έρθουν στις γλώσσες, να μπορείς σύντομα εύκολα να προγραμματίσεις έτσι, στο επίδεδο του source κώδικα που γράφεις κάθε μέρα. Έτσι ώστε, αν θές, το χ = χ + 1 να μην ισχύει πλέον - ή ακόμη καλύτερα, να μη χρειάζεται να ισχύει, γιατί δεν προγραμματίζεις πλέον έτσι ! &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description></item><item><title>Απ: x = x + 1 ... μα αυτό δε γίνεται</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/36948.aspx</link><pubDate>Sun, 04 Nov 2007 21:47:47 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:36948</guid><dc:creator>tommaσ</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/36948.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=16&amp;PostID=36948</wfw:commentRss><description>&lt;br&gt;Όταν λέμε x = x + 1 στον προγραμματισμό στην πραγματικότητα ο συμβολισμός δεν είναι μαθηματικός άρα το να τον κοιτάξουμε με μαθηματικό τρόπο είναι τελείως λανθασμένος. &lt;br&gt;&lt;br&gt;Στην συγκεκριμένη περίπτωσή όταν λέμε χ δεν εννοούμε κάποια άγνωστή μεταβλητή με τον μαθηματικό τρόπο σκέψεις. Εννοούμε κάποια καταχωρημένη θέση σε κάποιο μοντέλο αποθήκευσης. Όπως όταν γράφουμε χ = χ + 1 δεν εννοούμε αυτό που σημαίνει στο μαθηματικό τύπο. Αλλά ότι στην συγκεκριμένη θέση μνήμης (που έχει έναν αριθμό) προσθέτουμε στον αριθμό του + 1.&lt;br&gt;&lt;br&gt;Ο τρόπος που προγραμματίζουμε μοιάζει πολύ με τις γλώσσες (πλην της ελληνικής κατά την δική άποψη). Η κάθε λέξη άπλα συμβολίζει κάτι και δεν είναι αποτέλεσμα ούτε μαθηματικών τύπων ούτε λογικής συνάρτησις&lt;br&gt;&lt;br&gt;Δηλαδή ότι cat = ένα ζώο με συγκεκριμένες ιδιότητες , δεν έχει κάποια λογική . Απλά είπαμε στην τύχη ότι θα το ονομάζουμε έτσι . Βέβαια δεν μπορούμε να ξέρουμε αν η τύχη υπακούει σε κάποιους ανώτερους κανόνες που δεν μπορούμε να καταλάβουμε( Αυτό όμως είναι άλλο).&lt;br&gt;&lt;br&gt;Έτσι ακριβός συμβαίνει και με τον προγραμματισμό ... έχουμε πει ότι "κάτι συγκεκριμένο" = "αυτό το πράγμα" . Δεν νομίζω ότι είναι κάτι το παράλογο.</description></item><item><title>x = x + 1 ... μα αυτό δε γίνεται</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/36925.aspx</link><pubDate>Sat, 03 Nov 2007 07:20:24 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:36925</guid><dc:creator>anjelinio</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/36925.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=16&amp;PostID=36925</wfw:commentRss><description>Έβλεπα προχτές αυτά τά καταπληκτικά video(&lt;A href="http://channel9.msdn.com/Showpost.aspx?postid=351659"&gt;1&lt;/A&gt;, &lt;A href="http://channel9.msdn.com/Showpost.aspx?postid=352136"&gt;2&lt;/A&gt;) στο Channel9 απο το &lt;A href="http://www.jaoo.org/conference/"&gt;JAOO&lt;/A&gt;, όπου "πρωταγωνιστεί" ο κύριος (Dr) Joe Armstrong. Ο Joe λέει, δούλευε στα εργαστήρια της &lt;I&gt;Ericsson&lt;/I&gt;, όπου δημιούργησαν μια γλώσσα προγραμματισμού, την &lt;I&gt;Erlang&lt;/I&gt;, ή οποία είναι functional και dynamically typed, αλλά το κύριο χαρακτηριστικό της είναι ότι είναι τρελά concurrent-able. Παραλληλίζει απο φύσης ας πούμε. &lt;BR&gt;&lt;BR&gt;Στο video λοιπόν, ο Joe υποστηρίζει ότι ο τρόπος με τον οποίο προγραμματίζουμε, δεν ανταποκρίνεται στο φυσικό κόσμο. Με την έννοια, ότι δεν υπάρχει shared state, κάποιο αντικείμενο ή ιδέα, το οποίο να μοιράζεται σε παραπάνω απο έναν. &lt;BR&gt;&lt;BR&gt;Όταν βλέπουμε κάτι, στην πραγματικότητα και οι δύο ανταποκρινόμαστε σε πολλαπλά, αλλά ατομικά, μυνήματα που μας μεταφέρει το φώς. Δύο άνθρωποι μπορεί να βλέπουν το ίδιο αντικείμενο απο ακριβώς την ίδια θέση και με τις ίδιες συνθήκες, αλλά σε καμμία περίπτωση δε θα σχηματίσουν το ίδιο ακριβώς "&lt;I&gt;μοντέλο&lt;/I&gt;" της πραγματικότητας στο μυαλό τους. &lt;BR&gt;&lt;BR&gt;Ακόμη κι αυτό ήταν δυνατό, τα μοντέλα θα ήταν ακόμη δύο. Δε μοιράζονται. όπως και τίποτα δε μοιράζεται, στην πραγματικότητα ... (&lt;I&gt;καλό ε&lt;/I&gt;)&lt;BR&gt;&lt;BR&gt;Λέει επίσης, ότι ο τρόπος που γράφουμε κώδικα, κατα συνέπεια, δεν είναι λογικός. &lt;BR&gt;&lt;BR&gt;Σε μια μαθηματική "φράση", δε θα γράφαμε ποτέ χ = χ + 1. Μάλιστα κάποιος θα κοίταζε απορημένος την έκφραση αν δεν είχε προγραμματιστικό background.&lt;BR&gt;&lt;BR&gt;Ο τρόπος του functional κόσμου είναι να μη μοιράζεις μεταβλητές μεταξύ λειτουργικότητας. Κομμένο το ByRef δηλαδή στη VB, και μόνο value types ή όλες οι μεταβλητές readonly και προσεχτικά, αν γράφεις C#. [**]&lt;BR&gt;&lt;BR&gt;Η αλήθεια είναι ότι αν το σκεφτείς, συνήθως όταν βρίσκεις τον εαυτό σου πάνω απο ένα debugger τελικά κυνηγάς μια μεταβλητή της οποίας η τιμή είναι λάθος, και ψάχνεις να βρείς&amp;nbsp; π ο ι ό ς&amp;nbsp; και&amp;nbsp; π ό τ ε&amp;nbsp; έθεσε τη λάθος τιμή - λέει πάλι ο Joe κάπου στο video. &lt;BR&gt;&lt;BR&gt;Το σκέφτηκα λίγο, κι έχει δίκιο ... :D&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;** - Δεν είναι τόσο hardcore όλοι, αυτή είναι η αρχή, αλλά αυτό δε σημαίνει ότι δεν υπάρχουν functional γλώσσες που να προσεγγίζονται απο θνητούς ... .&lt;BR&gt;</description></item></channel></rss>