Citat:
Ursprungligen inskrivet av Peo_Bond
Jag får en stark känsla av att du har "hajjat" den objektorienterade principen men inte riktigt förstått vad man ska ha de andra till. Stämmer detta?
Du har helt rätt. Gosh vet ingenting om de andra paradigmerna. Hur vet jag det? Jo, han räknade upp alla språk han sysslat med, och alla tillhörde imperativa paradigmet eller objektorienterade. Scheme, dvs det funktionella paradigmet, verkade vara något främmande av döma hans kommentarer om SICP boken som jag länkade till.
Det jag förgäves försökt förklara flera ggr är att det är stor skillnad på paradigmerna. De enda språk han sysslat med är som typ, norska och danska samt svenska. Alla är mer eller mindre lika varandra: verb efter dativ, och ackusativ efter nominativ (eller whatever, jag är askass på grammatik och kommer inte ens ihåg vad de sakerna betyder, jag bara hittade på några grammatiska regler). Java är likt C++ som är likt C# etc.
Däremot, att lära sig ett helt annat språk som kanske inte ens har någon grammatik alls - hur gör man då?? Man kanske läser vart 3e ord. Man kanske inte ens har vokaler i språket. DET är något helt annat språk. Men Gosh tror att alla språk funkar som C/Pascal/Basic/Fortran/etc eller C++/Java/C#/Simula/etc. Men det finns språk som är heeeeelt annorlunda och man tänker helt bakvänt. Man känner sig helt lost. Och såna språk tillåter en att lösa vissa typer av problem på ett mycket enkelt sätt, det har inte att göra med libraries. Får man ett "bakvänt problem" så löser man det omedelbart i ett sånt konstigt språk - för hela språket är helt bakvänt. Det förstår inte Gosh, för han har aldrig sett såna språk. Han tror att alla språk är som C++/Java/C#/Simula. Själv tycker jag Smalltalk är elegant. Simula gillar jag inte. Erlang är elegant. Likaså Scheme. Jag har försökt förklara att det finns språk som är jättekonstiga, men det går liksom inte in. Gosh förstår inte vad jag menar när jag säger att det finns språk där man tänker helt bakvänt. Han har aldrig sett såna språk. Hans universum är litet, det består bara av Windows programmering av vanliga administrativa system, typ.
Så, Peo_Bond, du har helt rätt, han känner inte till något annat. Och det är ingen ide att försöka förklara, det går inte in. Eller så är det vi som är kassa på att förklara, och kommer med helt obegripliga förklaringar.
T.ex. Selotodo försöker förklara för Gosh att adaptivt optimerande kompilatorer har sina fördelar, men det går inte heller in. Själv förstår jag utmärkt vad Selotodo försöker säga, men det är väl bara för att jag är KTHare och konstig, som förstår det. Med mina egna ord, av Selotodos utmärkta förklaring: En vanlig C++ kompilator gör sina optimeringar en enda gång vid kompileringen och thats it. Det blir inga andra optimeringar än så, oavsett hur många ggr du kör koden. Men Java kommer att göra optimeringar under run time och för varje gång du kör koden så fortsätter Java att fortsätta göra optimeringar hela tiden. Till slut kan du få optimerad kod som är bättre än C++. Java samlar information hela tiden under varje körning och kan optimera mycket mera än C++, som gör en enda optimering vid compile time. Java gör optimeringar vid run time, hela tiden. Därför kan Java ha vissa fördelar gentemot C++. Rent teoretiskt kan Java producera bättre kod än C++, pga adaptivt optimerande kompilator. Det är detta Selotodo försöker säga, på ett utmärkt och lättfattligt sätt. Enligt mig. Men återigen, bortse från vad jag säger - för jag är konstig och KTHare. För övrigt, de som gjorde JRockit (en svensk adaptivt optimerande JVM) gick samtidigt på KTH med mig.
För övrigt är Gosh inställd på att C++ alltid är bäst vid alla tillfällen. Om man tar en duktig Java utvecklare med tillgång till alla Java klasser, och en lika duktig C++ utvecklare med tillgång till alla C++ klasser - jag är inte övertygad om att C++ snubben är mer produktiv än Java snubben. Jag tror tvärtom att det går snabbare att utveckla ett projekt i Java än C++. Om vi har två olika team som är exakt lika duktiga, så tror jag Java teamet lyckas bäst. Om vi möter Gosh tvillingbror som är lika duktig, men specialiserat sig på Java, så tror jag faktiskt att Java tvillingen är mer produktiv, när det gäller vanlig applikationsprogrammering.
För övrigt ni som anser att C# inte ursprungligen var en kopia av Java, så finns det en hel del folk som tror tvärtom faktiskt. Det är bara att googla lite på nätet.
http://www.osnews.com/comments/20346
"Of course there were improvements over Java. Microsoft could look at Java, copy it, and make improvements where necessary. It wasn't like they came up with the improvement by themselves either. There was a lot of talk at the time of things Java could have done better and many of those things made it into C#. I don't mean to say that C# is worthless (I don't particularly like it or Java, but I think both have some value), but it isn't anywhere near the greatest advance in software development.
I worked with many of the very early versions of C# prior to its first release, it was embarrassing how exactly like Java C# was. I remember the first time I reviewed some preliminary documentation for C# thinking to myself, "Wow Microsoft, you changed 'main' to 'Main'. Way to make it your own..."
http://www.answerbag.com/q_view/7113
"No [C# is no copy], though it may seem like it at first glance. In reality C# can be thought of as an extension of Java. Java was obviously a major influence on the design of C#, probably because it did so much to revolutionize object oriented programming."
Sen finns det förstås folk som säger tvärtom. Som ni, t.ex. Men jag hajade till när jag såg C#, och det gjorde flera av mina KTH kompisar. Men återigen, vi KTHare är konstiga. Även riktiga MS fanatiker som jag vet, erkänner att C# är en kopia av Java. MS har ju en lång historia av att köpa upp eller kopiera annan teknologi. Samtidigt finns det folk som anser tvärtom, att MS aldrig kopierar eller köper upp annan teknologi. Vi kommer aldrig få ett erkännande av MS om Java och C#.
MS påstår t.ex. att Windows är det mest stabila system som finns. Och när det kraschar, så är det inte Windows fel (men hur kan Windows krascha om det är så stabilt?). Att Windows kraschar beror på; dåliga drivare, dåliga applikationer, dåligt RAM, etc. (Lustigt att t.ex Solaris kan köra dåliga hemsnickrade drivare och dåliga applikationer utan att krascha). Så om MS påstår att Windows är stabilt nog att köra aktiebörser på, så kommer nog aldrig MS erkänna nånting om C# eller Java. Det finns faktiskt folk som anser på fullaste allvar att Windows är bland de stabilaste system som finns, om man vet vad man gör. Men det är ju fel att tänka så, ett OS ska tåla lite misshandel utan att krascha. Kraschar det av lite misshandel så är det inte stabilt. Det är ungefär som: "Windows är det mest stabila system som finns, förutsatt man inte installerar några program alls". Men ett OS ska tåla lite installation av program.
Det går alltså inte att bevisa någonting om C# eller Java. Vi kanske ska låta diskussionen om Java kontra C# bero. Vi kommer ingen vart.
Och du Azoapes, du har inte förstått någonting av vad jag försöker säga dig.
För övrigt heter det Turing fullständigt. Inte Turing komplett. Om man tittar på Chomsky hierarkin så är det lustiga att NFA == DFA. Jag hade problem att förstå det, tills jag såg beviset. Då förstod jag. Det är lite häftigt faktiskt, att icke determinism inte tillför något när vi pratar om ändliga automater!