14. april 2004 - 09:56Der er
36 kommentarer og 1 løsning
Vb eller C#
jeg kunne godt tænke mig at få nogle input til om hvilket sprog der har flest fordele. Hvad kan man i C# som man ikke kan i vb ?? eller omvendt ?? hvad er bedst ??? fordele/ulemper ??
umiddelbart kan man det samme i begge sprog... dog er C# noget pænere og kan i enkelte tilfælde køre hurtigere fordi man er tvunget til at skrive sin kode ordenligt. I VB er det muligt at sætte Option Strict til off, og så kan man skrive den ene linje slam-kode efter den anden uden at kompileren brokker sig.
Personligt synes jeg også at VB.Net ofte er ulogisk bygget op, og det virker som om det har nogle "hovsa"-løsninger for at få det til at ligne det gamle vb6 så meget som muligt. Det har bl.a. medført flere forskellige globale funktioner som ikke helt giver så meget mening i et Object Orienteret miljø.
I sidste ende er det dog en smags sag, og hvad man evt. kan i forvejen.
Iøvrigt ligner C# også mere kendte sprog som Java og C++, så hvis man senere vil lære disse er C# et godt fundament. Men hvis du spørger til hvad der er bedst eller har flest fordele så tror jeg der kommer står religionskrig.
Når man vælge et .NET sprog er der ikke noget der er mere rigtig end noget andet. At der i VB skulle være lavet nogle 'hovsa' løsniger passer vist ikke helt ;) Der er lavet nogle metoder der gør at det er nemmere for en gammel VB6 programmør at skifte til .NET, men for en der skal til at starte med .NET vil man ikke støde ind i disse - hvis man altså vælger at programmere ud fra hvordan .NET frameworket er bygget op.
Så som jeg skriver i min lille klumme(se ovenstående link) så handler det mest af alt om at bruge .NET Frameworket - om man så vælger VB med semikolon eller VB.NET er knap så vigtigt.
Vælg derfor det der ligner det du er vant til at bruge istedet for at lade dig på virke af hvad der måske er 'cool'.
Jeg er RET uenig i at C# kode skulle være pænere. Det er helt klart en smagssag, og personligt mener jeg f.eks. at VB.NET er det pæneste og det nemmeste at arbejde med.
Hvis du slet ikke har nogen erfaring med programmering eller måske har lavet en smule ASP, så tror jeg VB.NET er nemmere at starte med. Den er knap så hysterisk med syntaxen, og det er HELT sikkert at du vil sidde og bande over de skide semikoloner i C#. Kort sagt er VB.NET formentlig mindre frustrerende at arbejde med, hvis du er helt grøn. VS.NETs Intellisense er fantastisk, og hjælper dig rigtigt godt med VB.NET (og C#, for den sags skyld).
Den eneste nævneværdige konkrekte fordel jeg kan se ved C# er dens auto-kommenteringsfeature, som VB.NET mangler helt. Endelig er der jo det ulykkelige kendsgerning, at C# tilsyneladende er langt det mest udbredte programmeringssprog i ASP.NET. Dvs. du ofte vil se bøger og artikler med kode eksempler i C#.
Men jeg vil altså anbefale VB.NET frem for C# alligevel.
Og hvis der er nogen der har lyst til at skændes om det, så er bolden hermed kastet op! :)
Der finders altså gratis værktøjer (Power Toys til VS.NET 2003) som giver dig mulighed for at lave auto kommentering i VB.NET ;) http://www.gotdotnet.com/team/ide/
guidmaster, Tak, den havde jeg faktisk hørt om, men jeg har desværre de hérsens fanatiske purist-tendenser: Hvis det ikke er lavet af M$ til VS.NET, så bruger jeg det ikke... :) Og ja, det er en tåbelig holdning, men jeg tror jeg venter til Whidbey kommer.
jakobg>> jeg vil nu mene at ting som eventhandlers og delegates er lavet på en ret "klodset" måde i VB.Net... Handles og AdressOf.
Arrays bliver jeg også ved med at lave forkert, men det er jo ikke sprogets skyld, men en vanesag.
Ang. de trælse ; i C#, så lærer man det meget hurtigt, og det er da ikke meget være end de evigt irreterende End's i VB.Net (End If, End Sub, End For osv. osv.)
Nå, det er ikke nogen religionskrig det her, så jeg vil stoppe. Selvfølgelig er det en smags sag, det er det altid indenfor det her. Dog kommer man hurtigt videre ved at kunne C#, da den har den typiske C-syntaks som også bruges af Java, JavaScript, C++, php m.fl.
guidmaster, Okay, dét vidste jeg så slet ikke, måske skulle jeg tjekke den ud alligevel. :)
cyberfessor, C# vs. VB.NET udvikler sig altid til en religionskrig, og det er helt rigtigt, at valget bør træffes ud fra hvilken erfaring man har i forvejen: C, C++, Java og hele dén lejr vil naturligvis altid vælge C#, mens VB og ASP-lejren nok føler sig mest hjemme i VB.NET. Mine største irritationsmomenter mht. C# er følgende: - semikoloner - case-sensivitet, kan føre til noget temmelig uoverskuelig kode - {} i stedet for End if, End Sub, osv, de kan være svære at spotte - måden man deklarerer en variabel på i C# giver bare INGEN mening for mig :)
jakobg -> hehehe jeg kunne ikke være mere UENIG end i din sidste kommentar :-) Det giver nu en langt mere læselig kode når statements står omklamret af {} istedet for at man skal lede efter en speciel tekst (END) Men vi blir nok aldrig enige alligevel ;-)
cyberfessor, Du må ikke glemme, at VS.NET netop retter den slags for dig med Intellisense: Dvs. når jeg starter med at skrive label1 og taster enter, bliver det rettet til Label1 hvis variablen først er deklareret Label1. Dvs. kode som du giver et eksempel på aldrig vil forekomme, hvis det er lavet i VS.NET. Men hvis man laver det samme nummer i C#, tror VS.NET at man refererer til noget helt andet. Man skal med andre ord selv sidde og fedte med store og små bogstaver, hvilket jeg mener er mere omstændigt. Og hvis en ekstra kreativ programmør begynder at lave flere variable med (næsten) samme navn (objtest og objTest), begynder det først for alvor at blive totalt uoverskueligt. C# tillader den slags frækheder, og det kan nemt blive uoverskueligt for en nybegynder.
repsak, Det er selvfølgelig en vanesag, hvad øjet er vant til at se efter, men jeg vil til hver en tid påstå, at en tekst på adskillige bogstaver springer mere i øjet end en enkelt væltet Tuborg-klamme. :) Og husk på, at Intellisense automatisk tilføjer "End Function", når du begynder en ny funktion, så arbejdsmæssigt er der ikke den store forskel...
Kan forresten bede VS.NET om at "rette" spacing i en linie kode i C#? Altså så Label1.Text="Hello World"; bliver rettet til Label1.Text = "Hello World";?? Med VB.NET i VS bliver den slags nemlig altid rettet, så man får en ensartet kode. Det undrer mig lidt, at man kan bruge både den kompakte og ikke-kompakte form i C#. Det er naturligvis i småtingsafdelingen, men alligevel noget der irriterer mig mht. C# vs. VB.NET.
jeg bruger slet ikke VS.NET så jeg lider ikke under alle der der ting - hehe Man kan ligeså godt lave tingene ordentligt selv. Det er en dårlig vane at sjuske og så få en computer til at rette det igennem. Det er stadig smart - helt enig, men sådan er det jo ikke ude i 'den virkelige verden'... :-)
repsak, Jeg har dagligt svært ved at få armene ned igen af ren og skær begejstring over Visual Studio .NET 2003: Det er det mest fantastiske stykke værktøj jeg nogensinde har oplevet. Så du har min allerdybeste medfølelse, og jeg håber for dig at du en dag giver VS.NET en chance. Hvordan kan det være, at du ikke bruger den nu?
*ryster på hovedet* Intellisense mig her, og Intellisense mig der... jo, det er selvfølgelig smart, og gør livet lettere når man hurtigt skal have skrevet noget kode, men... du kan på ingen måde promovere et sprog ud fra hvad en teknik som Intellisense kan gøre. Hvad med alle dem som ikke har VS.Net? skal de så frarådes at bruge VB.Net, fordi at sproget ikke er godt nok til at skrive i et program som notepad.
Ang. at oprette public variabler som kun adskiller sig på casen, så er det imod CLS-standarden, så det tror jeg ikke du vil komme ud for særlig tit. At kunne lave en public IsActive-property og en private isActive-variabel ser jeg dog kun som en fordel, da man på den måde kan have en hvis form for tilhørsforhold mellem variabler og deres properties, uden at skulle til at bruge _ eller andet gejl. Altså, en tommelfingerregel er at variabler der starter med STORT bogstav er public, og dem med småt er private.
Der er den Intellisense igen... hvad skulle man dog gøre uden den? Verden ville være fortabt... :P Så længe man bruger tab til at indent'e sin kode, så skulle der ikke være den store fare for at miste overblikket, om man bruger } eller End... dog er } mere konsekvent da den bruges til alle former for afslutning, mens at der findes en masse forskellige End's.
Ja, igen... du kan på ingen måde blive irreteret over et sprog, fordi at et program som VS.Net laver underlige ting ved det... Don't blame the language, blame the program
cyberfessor -> Jeg kunne ikke være mere enig... :-D jakobg -> Jeg tvivler ikke et sekund på at VS.NET er genialt, men 1) jeg har ikke penge til det (er ikke tilhænger af piratSW) 2) jeg synes ikke man lærer den dybere mening med sproget når al kode bliver serveret, og hvis du selv skriver koden, så bliver den saftsuseme også rettet for spaces, case og alt mulig andet. Der kommer måske nok en dag, hvor jeg må indse at VS.NET er 'det man bruger' på arbejdsmarkedet, men så må jeg tage stilling til det der :)
cyberfessor, Vi kan godt blive enige om, at VS.NET er ret dyr, men i det lange løb bliver den omkostning indhentet af forberet produktivitet. Jeg mener at .NET Frameworket er så stort og komplekst, at det er meget svært at få det fulde udbytte, hvis man eksempelvis anvender Notepad. Og jo, jeg syntes egentligt godt, at man kan promovere et sprog ud fra hvilke værktøjer man kan anvende til at skrive i det: VB.NET er nemt med VS.NET. I den sidste ende handler det om hvad man får ud af det, og med ASP.NET/VB.NET/VS.NET kombinationen kan man udrette nogen ret fede ting på kort tid og af høj kvalitet. Og ja, mit allerførste råd til alle der vil begynde med .NET er helt klart Visual Studio.NET 2003.
Jeg er selv totalt hysterisk mht. navngivning af variable, følger navnestandarder slavisk, så du og jeg vil aldrig løbe ind i den slags problemer som jeg beskriver. Men så længe det er muligt for den uerfarne programmør, dvs. sproget rent faktisk tillader det, kan der nemt snige sig uvaner ind i udviklingen. Både VB.NET og VS.NET gør meget for at hjælpe programmøren på rette spor.
repsak, Prøv at kigge på Microsofts ISV program: http://www.microsoft.com/danmark/partner/partnerskab/isv.asp Gennem det kan din arbejdsplads/virksomhed få billig adgang til MSDN og software fra M$. Tjek det ud, vi har haft rigtig meget gavn af det...
Kode SKAL da serveres, så man kan fokusere alt det spændende og netop sætte sig ind i de svære ting, istedet for at sidde og slås med trivielle problemer igen og igen. :)
At bruge flere tusind kroner på at komme i gang med .Net vil jeg ikke mene er rentabelt. Jo, der findes #SharpDevelop og WebMatrix som gode gratis alternativer, og den førstnævnte har da også en udemærket Intellisense der sagtens kan bruges.
Dog vil jeg netop mene, at man bør STARTE med en simpel texteditor og skifte når man engang har fået det grundlæggende på plads. Jeg har da stødt på folk der har arbejdet med VS.Net i et år men er totalt hjælpesløse når det tages fra dem. De kan ikke nogen som helst af klasserne eller deres properties udenad, og hved ikke hvordan at man bruger Commandline compileren. Det er rystende og ærgeligt hvis de kommer ud et sted der IKKE bruger VS.Net.
Ang. at få udbytte af hele .Net frameworket, så mener jeg det afhænger ene og alene om ens evne til at slå op i SDK'et og tyde hvad der står.
cyberfessor, Hvis man starter med Notepad og .NET er ret stor chance for at de fleste vil give op inden de rigtigt kommer igang. Og jeg er også tilbøjelig til at give dig ret i, at det er trist når man er på herrens mark fordi VS.NET bliver taget fra en. Men på den anden side, så syntes jeg at jeg har mere vigtige ting at fylde mit hoved med end udenadslære. Man skal tage imod den hjælp som man bliver tilbudt, for det hele handler om bundlinie i den sidste ende. Hvis man ikke altid vælger den bedste og mest effektive metode, så spilder man bare tiden... Vil du hellere bruge 30 sekunder i SDK'en, eller vente et kvart sekund på at Intellisense gør arbejdet for dig?
Jeg siger ikke at man skal kunne hele frameworket udenad. Dog skal man have en hvis forståelse hvordan det er bygget op. Kender man først det grundlæggende, så kommer man rigtig rigtig langt, da det hele er opbygget meget konsistent. Man behøves altså ikke at kunne skrive alle properties og klasser fejlfrit, men hvis man ikke ved hvad man skal lede efter og hvad de forskellige ting kan, så kan man få smidt alt det Intellisense i hovedet uden det hjælper.
jakobg -> Jeg synes at det er lidt ærgeligt argument at mene at VB.NET er godt - fordi at VS.NET er opfundet. Det siger vel mere om VS.NET end om VB.NET...? Iøvrigt så mener jeg ike at det er noget problem at lære udenad. Det er jo meget naturligt at hvis du arbejder meget med det så kommer det af sig selv. Jeg kan alle de klasser som jeg skal bruge til måske 90% af et program (noget er måske copy/paste fra et gammelt program). Jeg er godt klar over at min texteditor måske også liiige er det ekstreme, men jeg har 100% føling med compilere, spaces, statemente m.m. HVis man ikke kan huske 'hverdagens' almindelige klasser nu så får man et problem når man bliver 60år :-/
repsak, Min egen erfaring siger mig, at jeg er mere tilbøjelig til at opdage nye (og bedre) metoder når jeg har Intellisense'en til at hjælpe mig. Så kommer jeg mere rundt i krogene af Frameworket frem for bare altid at bruge den sammen metode som sidst. Der er som regel altid plads til forbedringer. :)
VB.NET er godt, VS.NET gør VB.NET uovertruffent! :)
Jah, men om du bruger IS eller læser artikler/reseracher/bøger whatever... det er vel det samme. Og jeg synes at dette her munder ud i at VB.NET er MEGET løst sprog, mens hvis det bruges med VS.NET så bliver der strammet lidt på det på auto-alt-muligt
Nogen der kender til IntelliSense hvor det ikke er Vs.Net?.. Jeg har set at cyberfessor har skrevet #SharpDevelop, men den kan ik lave aspx....
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.