18. august 2004 - 12:36Der er
28 kommentarer og 1 løsning
Java vs. C#
Hej. Er der en som kan komme med en kort, men præcis oversigt over hvad forskellen på java og C# er? Også argumenter for at man burde vælge det ene og det andet sprog. På forhånd tak =)
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Slettet bruger
18. august 2004 - 12:41#1
Du har liiiiige startet en religionskrig :-D hehehe.
C# er et programmeringssprog til Microsofts .NET-framework, hvor Java er et programmeringssprog til afvikling under en Java Virtuel Maskine. Sprogene kan stort set det samme, og hvis man skal se på forskelle (mht. muligheder) vil den største forskel vel ligge i at Java er en ældre mere gennemarbejdet teknologi end .NET-frameworket. Men mulighederne er "de samme".
.NET skulle også være platformsuafhængigt som Java er det, men sidste gang jeg tjekkede var Mono-projektet ikke langt fremme, så .NET (især med UI-komponenter) er ikke muligt på nuværende tidspunkt.
Java oversætter til Byte kode, C# oversætter til noget lignende der hedder MSIL (Micrsoft Intermediate Language).
Java bliver (stortset) ikke brugt nogensteder mere, C# kommer med tiden til at erstatte Java som et platformuafhængigt programmeringssprog. Endvidere kan du lave egentlige eksekverbare filer i C#.
Synes godt om
Slettet bruger
18. august 2004 - 12:42#3
Hov, supplerende er sprogene meget ens syntaktisk i hvert fald, så om du starter på det ene frem for det andet er vist nok "hip som hap".
Udviklingsværktøjer til begge teknologier findes både i kommerciel / open source / gratis licenser.
Det med at Java IKKE bruge nogensteder mere er en fisk, har du hørt om J2EE, JSP, Applet'er, J2ME (java til mobiltelefoner) osv. Den påstand du kommer med holder IKKE vand.
Mht. at kunne lave egentlige eksekverbare filer i C#, så er de ikke mere eksekverbare end at de også kræver at man har .NET-frameworket installeret. Ligeledes kan man også lave eksekverbare filer til Java, hvor man laver en binær bootstrap til at start JVM, og derefter afvikler bytecode.
Dine argumenter er en anelse for svage, kom igen :-)
EricJacobsen, jo til Oracle og andet, det er ganske vidst rigtigt :)
Synes godt om
Slettet bruger
18. august 2004 - 12:48#8
Man skal også kun compile java-kode een gang, skal stadigvæk fortolkes op imod et framwork. Dette gælder for begge dele.
Java er ikke langsomt, det er en myte. Dog er UI / Swing en del ressourcekrævende, men at påstå det er LANGSOMT er vist at gå over stregen. UI i .NET-frameworket eksekveres dog hurtigere, det giver jeg dig ret i.
C# syntax ligger meget op af C++. C# OOP ligger meget op af Java.
Inden for OOP er C# nok en lille smule foran Java.
Begge SDK'er kan downloades gratis.
Bruger man tit MS produker som SQL server er det nok en fordel med .Net (C#). Skal du lave desktop programmer er C# klart at foretrække. Java syntes på flere punkter at være notorisk langsom at afvikle.
Om man skal vælge det ene eller andet er tit et "religionsspørgsmål".
Jeg har valgt begge dele som lilleraturinput, men bossen vil kun have C# :) Tror at i fremtiden vil .Net trænge mere ind på uddannnelsesinstitutionerne end i dag. Men begge sprog er her nok om 10 år. Medmindre Bill G. køber Sun.
Corholio. Så vidt jeg har forstået, så oversætter .NET frameworket til MSIL og derfra kun en gang når det skal afvikles. Derimod så kompilerer JAVA runtime.
.NET er _ikke_ platformsuafhængigt - hvornår har man sidst hørt om at Microsoft understøter andre systemer end deres egne??
Java kører mod en virtual machine, men det gør .NET også - faktisk er .NET en ret eksakt kopi af den måde Java virker på.
Java bliver stadig brugt mange steder. Især i udlandet (f.eks. USA) har Java større indpas end i Europa, nok mest i forhold til J2EE-platformen.
Jeg arbejder professionelt med både C# .NET og Java, og synes godt om begge sprog. Fordelen ved C# er, at det har adgang til alle Windows' native funktioner, hvilket Java ikke har. Dette forhold gør .NET's desktop-GUI noget mere effektivt end Java's. Dette er dog noget Sun er ved at rette op på i den kommende Java-version: J2SE 1.5.
Dog har Java-API'et den fordel, at det indeholder langt flere funktionaliteter til f.eks. behandling af tid, kalendre osv. På dette område er .NET noget mere skrabet. Bl.a. indeholder .NET ingen funktionalitet til at beregne uger - noget som er lidt af en selvfølge i Java.
Synes godt om
Slettet bruger
18. august 2004 - 12:54#13
Nej, det er ikke korrekt. Java kompiles til bytecode som JVM'en så fortolker / afvikler. Der kompiles ikke hver gang :-)
Synes godt om
Slettet bruger
18. august 2004 - 12:55#14
*hvisker til Shaka* jeg SAGDE at du havde startet en religionskrig *g* :-)
Corholio, der er noget om at de nyere versioner af Java kan identificere "hot spots", altså kode der bliver brugt gentagne gange og det genbruger den. Men ellers skulle Java kompilere det runtime.
Med hensyn til hastighed af C# og Java se http://www.eksperten.dk/artikler/67 som viser at der ikke er nogen nævneværdig forskel (Java resultaterne afhænger meget af hvilken JVM man kører med)
Desuden er der en stor open-source kultur omkring Java, som gør det muligt at finde gratis kode til stort set hvad som helst rundt omkring på nettet - dette er ikke helt tilfældet med .NET - open-source er jo heller ikke just Microsoft's kop te.
Uanset hvordan det kompileres, afvikles både Java og .NET i en virtual machine. I .NET kompileres først til maskin-kode, når applikationen startes op i en virtual machine.
Arne v, jo, men .Net er jo også et meget nyt sprog. Antallet af hosts der udbyder .NET platformen er ikke så stort, og det tager også tid for at sprog at etablere sig blandt udviklere.
Arne v, det er rigtigt, jeg kom også i tanke om at der er forskellige programmer som f.eks. Oracle hvor man udvikler med Java. Men jeg tror at det er på vej ud. Jeg elsker Java som programmeringssprog, men er overbevist om at .NET kommer til at hyle Java ud af markedet. Det skyldes primært at Microsoft kommer til at diktere standarden, ved at levere .NET platformen sammen med Windows XP. Ikke at jeg kan lide Microsoft, bestemt ikke, men IE vs. Netscape var også en religionskrig, og den kommer nok til at ligne denne religionskrig mellem Java og C# :o)
"der er forskellige programmer som f.eks. Oracle hvor man udvikler med Java."
hvis du opfatter JDev og OC4J som værende Java verdenen, så kan jeg godt se hvordan du er nået til din konklusion, men dine forudsætninger er helt forkerte.
Hovsa. Var lige til pause, og kom tilbage og så der lå en masse mail.. "hva faen?? er der spam-geil på eksperten?" høh. Nej, jeg vidste egentlig ikke hvad jeg startede, men i skal alle ha tak for indlæg. Det har helt sikkert givet mig bedre indsigt i forskellene på C# og Java =)
Synes godt om
Slettet bruger
18. august 2004 - 23:20#29
Jeg takker for point :-) Held og lykke med den spændende verden indenfor OOP, hvad enten det måtte være Java, C# eller noget andet :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.