01. maj 2002 - 09:40Der er
23 kommentarer og 1 løsning
Vb.net VS. C#
På vores arbejdsplads skal vi nu slå over i .net
Vi har hidtil programmeret i VBScript, så man skulle mene at vi bør vælge VB.net, men jeg har hørt, at det ligger så langt fra VBScript at det vil være det samme om vi starter på C# eller VB.net. Hvad mener du?
Og hvad med fremtiden, hvad bliver det fortrukne sprog? Jeg tænker mht. hjælp på nettet?
Danmark vil mindske afhængigheden af globale techgiganter, men det kræver mere end politiske formuleringer og strategier, understreger PROSA’s formand Niels Bertelsen.
Slettet bruger
01. maj 2002 - 09:42#1
VB.net ligger ikke langt fra VB. Så hvis i er hjemme i dette sprog så bliv ved med det.
VBScript og VB.NET kan ikke sammenlignes. VB.NEt er et fullverdig objektorientert programmeringsspråk mens VBScript er et script språk.
C# er nok et språk som blir stort...jeg personlig tror ikke at VB.NET kommer til å vokse seg til å nå de helt store høyder.
En av fordelene med å bruke .NET, er at det er 26 (sist jeg kikket) understøttede språk. Det vil si at man kan sitte å kode på samme prosjekt i 26 forskjellige språk, så npr det gjelder hvilket språk dere skal velge, så mener jeg at dere skal skrive i det som dere føler er enklest. Det gir selvfølgelig noen ulemper når man skal "kikke over skulderen" på andre for å hjelpe hvis de sitter og koder i Eiffel.NET når man selv koder i VB.NET.
C++.NET er det mest kraftfulle, mest effektive, men mest besværlige å kode i. C# kjører en smule hurtigere enn VB.NET, men det er neppe en forskjell som man med menneskelige sanser kan registrere.
moonduck >> vel...egentlig heter med Managed C++.NET.
Det er en etterfølger til C++ som er et utrolig kraftig språk (hvis man kan kode ordentlig i det). Grunnen er at man har *full* kontroll over alt man foretar seg med en computer. Man er blandt annet nødt til å styre minnet til maskinen manuelt. Hvis man sammenligner det med C++, så er det ikke så merkelig at dette språk er mest benyttet til store applikasjoner verdden over. Tilogmed Windows er skrevet i C++...
Jeg kjenner hverken C++ eller C++.NET, men dette er hva jeg har lest meg til.
nute> Jeg har bare svært ved at tro at Managed C++ skulle være hurtigere (performancemæssigt) end c# da c# jo er skrevet med Framework liggende i baghovedet hvorimod Managed C++ "blot er en opgradering" af C++.
Og med min viden om Managed C++ går hele ideen jo af .NET frameworket hvor hovedtanken er en højere produktivitet for udvikleren, og den ydede produktivitet har jeg svært ved at se i Managed C++ ligegyldigt hvor godt man kender C++.
moonduck skriver>>"da c# jo er skrevet med Framework liggende i baghovedet"
Præcis! Det jeg har læst mig til, er at C# ER det mest kraftfulde af alle understøtttede sprog. Netop fordi det er skrevet specielt til .NET Frameworket. De andre naturligt understøttede sprog er blot optimerede sprog, hvorfor nogle avancerede funktioner ikke her er understøttet. Et konkret eksempel kan jeg dog ikke give.
pelkjaer> Man kan nok ikke sige at der er nogle avancerede funktioner der ikke er understøttet i VB.NET som der er i C# de har jo adgang til de samme klasser og basalt set de samme funktioner. Forskellen ligger i Syntax og her kan jeg umiddelbart ikke se nogle begrænsninger.
Jeg tror mere det er performancemæssigt at C# vinder.
moonduck >> Managed C++ (MC++) er hurtigere enn C# fordi output'et blir optimert.
Som når man sammenligner alle prog språk, så bør det heller ikke være noen tvil i denne sammenheng om at et språk har sine styrker og svakheter. Noen ting kjører raskere i C# mens andre ting kjører raskere i VB.NEt, men overall, så har MC++ et lite overtak på den generelle performance.
Performance til de språk som er understøttet i .NET kommer nærmest ene og alene an på hvordan de respektive compilere er skrevet. Dette kan relateres til hvor lenge en compiler har vært under utvilking. Compilere til C++ har eksistert i "100 år", mens compilere til C# og VB.NET ikke har vært på banen i mer enn 6-7 år (høyst).
Og som jeg skrev tidligere...MC++ *er* vanskelig å skrive i...det *er* et tungt språk, så produktiviteten i dette språk kan ikke sammenlignes med produktiviteten i fx. C#.
Det er også nærliggende å tro at siden .NET frameworket er skrevet i C#, så er det dette språk som er det raskeste. Men for å dra en liten (merkelig) analogi til den virkelige verden...kun fordi en person er født i et land, gjør ham ikke til en språklig "guru". Jeg har faktisk mødt engelskmenn som snakket dårligere engelsk enn meg. Hvorfor ? Well...fordi engelsk var et av mine beste fag på skolen, og jeg var interessert i alt som hadde med england å gjøre. Ham jeg møtte var ikke særlig kvikk og han var likeglad med hvordan han snakket. "han var jo engelsk" ;-) Analogien her går nettopp på det jeg skrev litt lenger oppe...jeg hadde mer erfaring (utdannelse) i engelsk enn engelskmannen på lik linje som man har mer erfaring med å bygge compilere til C++ fremfor andre understøttede språk til .NET.
Igjen...dette er *kun* noe jeg har lest meg til, og ikke ressonnert meg frem til på egen hånd. Jeg siterer fordi det er logisk (i mine øyne) og jeg argumenterer ut fra det grunnlag.
Jeg vil mene at valget bliver helt op til den enkelte. Har man stor erfaring med Java vil jeg afgjort vælge C#. Syntaksen for de 2 sprog er nærmest identisk med Interface-formulering, brackets osv. Kender man derimod meget til VB/VBA vil jeg vælge VB.NET. Igen ud fra argumentationen omkring syntaks, dvs. formuleringen af koden. Performancemæssigt vil jeg sige, at man skal meget langt ud i yderligheder, for at opleve forskel. Begge sprog oversættes til Common-language, som vel kan siges at være et semi-kompileret sprog. Oversættelsen er identisk, uanset hvilket sprog du skriver i, og derfor vil performance også være identisk.
Men jeg giver også ret i de kommentarer, der går på at VB og VB.NET ikke er identiske - som det er anført, så er VB.NET helt og holdent objektorienteret. Så uanset valget af sprog, så start med at få en sikker forståelse for Objektorienteret tankegang.
for ovenstående - hjælpen på nettet har jeg fundet stort set lige veldokumenteret på begge sprog, hidtil... (Sorry - havde ikke nærlæst spm). Men jeg vil så dog sige, at uanset hvilket sprog du læser din "hjælp" på - så kan man meget nemt omsætte dette til det et andet sprog, hvis man blot har kigget en enkelt eller 2 bøger igennem til området. Så jeg vil bestemt ikke vælge sprog ud fra hjælpens formuleringer på nettet, men egne præferencer og erfaringer..! /Søren
sbhansen >> "Oversættelsen er identisk, uanset hvilket sprog du skriver i, og derfor vil performance også være identisk". Så det du påstår er at alle compilere oversetter til MSIL 100% identisk ?? Tilogmed den artikkel som er postet av moonduck stiller spørsmålstegn med nettopp dette. Min påstand tidliger om at det avhenger av compileren blir understøttet
<snip> As for the speed of items such as loops and string concatenation, that will depend on the compiler </snip>
En annen ting er at det blir stilt spørsmålstegn til at alle språk er like hurtige:
<snip> Microsoft officials say VB .NET and C# will compile to the same IL, so the result will be the same speed. I must admit I'm skeptical, but there is no way to test this at this time. </snip>
Tester utført av teamet bak boken "Professional ASP.NET 1.0" (som er skrevet ut fra final versjon, "beviser" at C# er ca 5% raskere enn VB.NET og MC++ er en smule raskere enn C# igjen.
Lad mig lige sætte en ting fast: Der er INGEN forskel på VB.NET og C# ! (bortset fra syntax) De kalder de samme biblioteker, de compiles til det samme intermediate code, metoder og funktioner er de samme osv osv osv osv. Hele .NET frameworket er netop bygget op således at du kan "opbygge" din eget syntax til frameworket som kalder de samme funktioner. Det er netop dette der er sket med VB, C++, Java, Perl osv osv. Man har lavet en syntax-fortolker der kalder DLL'erne der hører til .NET frameworket.
I starten var VB.NET det klart mest dokumenterede sprog på nettet, men C# er efterhånden ved at overtage. Alle de andre sprog er meget lidt dokumenterede. Så jeg vil sige; Vælg det sprog som minder mest om det du er vant til (af de to nævnte). Og finder du et eksempel på nettet skrevet i det andet sprog, så kræver det ikke en særlig høj IQ at oversætte det til sit eget.
tja...dette kommer nok til å utvikle seg til samme type evighetsdiskusjon ála den som utløses når en eller annen vil vite hvordan man disabler høyre klikk på sin webside.
Det kommer *alltid* til å være noen som mener det ene, og noen andre som mener noe annet. Spørsmålet er vel hvem man velger å tro på til sist.
Jeg har lige læst lidt op på emnet bragt op i denne diskussion og faktisk taber VB.NET ansigt når man undersøger det nærmere, men kun i visse tilfælde.
F.eks. kan man i VB.NET bruge "On Error Resume Next" og caseinsensetiv sammenligning disse ting gør at VB.NET i nogle tilfælde performer dårligere men man kan jo blot styre uden om disse ting som er et levn fra VB6. Eller sagt på en anden måde VB.NET er i nogle situationer langsommere da der er en hvis tilbagekompabilitet at tage højde for(Det har C# som sådan ikke) Og generelt bruger VB.NET ca. 5% ekstra kraft på at opretholde denne tilbagekompabilitet som primært skyldes ramallokeringen af Microsoft.VisualBasic.dll
Men stadig er en 5% jo ikke højere en fejlmarginen i almindelig eksekvering så derfor ingen grund til at råbe vagt i gevær.
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.