Miki Skrevet 9. november 2009 Del Skrevet 9. november 2009 Hva er det som avgjør at det er akkurat vb man lærer seg, altså; hva bruker man vb til som man ikke kan bruke andre språk til?Har inntrykk av at vb er litt "annenrangs", folk ser litt ned på at man velger det som språk, liksom..?Noen grunn til det? Lenke til kommentar
DeadManWalking Skrevet 9. november 2009 Del Skrevet 9. november 2009 Microsoft er problemet. Det er et språk som ikke likner på noen andre språk så man drar lite nytte av å lære det. Jeg startet med VB 6.0, nå holder jeg på med haskell, prolog, Assembly, java og C++. Prøv litt av hvert. Det har ikke så mye å si. Det eneste med VB er vel at man kan scripte VBS greier til windows maskiner. Ellers ser jeg ingen fordel. Lenke til kommentar
GeirGrusom Skrevet 10. november 2009 Del Skrevet 10. november 2009 Selv synes jeg VB er et forferdelig programmeringsspråk. Det var likevel språket jeg lærte meg som nybegynner, men det førte også til at jeg ikke forstod mange basiske ting (som type casting) når jeg begynte med andre språk. Det er også masse overflødige nøkkelord i språket (som ReadOnly/WriteOnly for properties, som er fullstendig redundant) VB 2008 er dog et betydelig bedre språk enn VB6, men det er fortsatt et temmelig dårlig språk. Lenke til kommentar
_powerade_ Skrevet 14. november 2009 Del Skrevet 14. november 2009 (endret) Nei, nei, nei! VB (.net) er langt i fra et forferdelig språk! Du kan lage så å si alt du måtte ønske i Windows med VB. Dette med språkvalg har kun med personlige preferanser å gjøre, det er det samme som med Mac vs PC, PS vs Xbox osv... Noen synes det ene er best, andre synes det helt motsatte! Hvis du søker på nettet etter C# (sharp) vs VB .net så vil du finne mange eksempler på dette. (C# (eller Java?) er som regel alternativet hvis en ikke går for VB.) Personlig synes jeg forresten det ser rart og stygt ut med alle disse ekle klammene som noen språk bruker... En annen ting er at VB for de fleste er relativt enkelt å lese og skrive - men enkelte er tydeligvis av den oppfatningen at et språk er best hvis det har en litt sær og tunggrodd syntax. Et lite eksempel: VB .Net For i As Integer = number To 0 Step -1 ' loops from number down to zero Next i C# for (int i = number; i >= 0; i--) { // loops from number down to zero } Endret 14. november 2009 av _powerade_ Lenke til kommentar
DeadManWalking Skrevet 14. november 2009 Del Skrevet 14. november 2009 Vist det kun eksisterte et språk, og det var VB.NET. Så er jeg enig i at det er et ok språk. Problemet er at det likner ikke noen andre språk, skal man ha en karriere innen programvareutvikling så er sjansen stor for at man må bruke mer enn VB.NET. Lenke til kommentar
jonnor Skrevet 14. november 2009 Del Skrevet 14. november 2009 (endret) Nei, nei, nei! VB (.net) er langt i fra et forferdelig språk! Du kan lage så å si alt du måtte ønske i Windows med VB. Dette med språkvalg har kun med personlige preferanser å gjøre, det er det samme som med Mac vs PC, PS vs Xbox osv... Noen synes det ene er best, andre synes det helt motsatte! Du kan lage så og si alt du måtte ønske i Assembler også, men det gjør ikke Assembler godt egnet av den grunn. Nei, språkvalg har ikke kun med personlige preferanser å gjøre. Det bør ihvertfall ikke ha det De forskjellige mulighetene man har i ulike språk legger til rette for ulike ting. For eksempel gjør første-klasses objekter det lettere å bruke komposisjon istedet for å arve. Duck-typing gjør det enklere å programmere mot et grensesnitt og ikke mot implementasjon. Første-klasses funksjoner gjør at callbacks blir helt naturlig. At funksjoner kan opprettes "inline" eller anonymt kan kraftig øke lesbarheten på koden. Konstrukter fra funksjonelle språk som "list comprehensions", generatorer, map og reduce er verktøy som kan gjøre enkelte algoritmer enklere å implementere på en god måte. Dynamisk typing er mer fleksibelt enn statisk, men kan la deg gå i enkelte feller som et statisk typet språk hadde fortalt deg om med en gang. Men dersom man ikke kjenner til en viss funksjonalitet og har brukt det før så vil man ikke savne det, fordi man ikke forstår nytten. Paul Graham forklarer det godt i følgende essay: http://www.paulgraham.com/avg.html En annen ting er at VB for de fleste er relativt enkelt å lese og skrive - men enkelte er tydeligvis av den oppfatningen at et språk er best hvis det har en litt sær og tunggrodd syntax. Et lite eksempel: VB .Net For i As Integer = number To 0 Step -1 ' loops from number down to zero Next i C# for (int i = number; i >= 0; i--) { // loops from number down to zero } Hvem er av den oppfatningen? Python for i in range(number, -1, -1)): # Do something with i Endret 14. november 2009 av jonnor Lenke til kommentar
GeirGrusom Skrevet 14. november 2009 Del Skrevet 14. november 2009 (endret) To ting jeg missliker mest med VB: unødvendige nøkkelord og implisitt typecasting: Public WriteOnly Property MyProperty() As String Set(ByVal value As String) SomeValue = value End Get End Property Hva er poenget med ReadOnly/WriteOnly? Er ikke de temmelig redundante dersom propertyen ikke har en setter eller en getter? public string MyProperty { set { SomeValue = value; } } Jeg synes ihvertfall at VB.NET properties er temmelig tungvint i forhold til hva som er nødvendig. Implisitt type casting som mange nybegynnere går i fella på (etter min mening) ved å hente verdier fra tekstbokser og legge dem rett i heltall eller lignende. Det kompilerer jo fint, men oppførselen til programmet er plutselig ikke helt vel definert i programkoden. Dim text As String = "104" Dim val As Integer = text Men en mer korrekt versjon er: Dim text As String = "104" Dim val As Integer = 0 If Integer.TryParse(text, val) Then MessageBox.Show("Konvertering vellykket") Hvorfor tillater i det hele tatt Visual Basic denne implisitte konverteringen? Det finnes ingen god begrunnelse for det etter min mening. Endret 14. november 2009 av GeirGrusom Lenke til kommentar
_powerade_ Skrevet 15. november 2009 Del Skrevet 15. november 2009 (endret) En annen ting er at VB for de fleste er relativt enkelt å lese og skrive - men enkelte er tydeligvis av den oppfatningen at et språk er best hvis det har en litt sær og tunggrodd syntax. Hvem er av den oppfatningen? Ok, jeg innrømmer at den kanskje var vel drøy Implisitt type casting som mange nybegynnere går i fella på (etter min mening) ved å hente verdier fra tekstbokser og legge dem rett i heltall eller lignende. Det kompilerer jo fint, men oppførselen til programmet er plutselig ikke helt vel definert i programkoden. Med Option Strict On (som burde vært default), så er vel ikke dette noe problem, da du vil få beskjed om at eksplisit konvertering ikke er tillat... Endret 15. november 2009 av _powerade_ Lenke til kommentar
GeirGrusom Skrevet 15. november 2009 Del Skrevet 15. november 2009 (endret) Ja, men det er ikke default, men det burde helt klart vært det. Endret 15. november 2009 av GeirGrusom Lenke til kommentar
MailMan13 Skrevet 25. november 2009 Del Skrevet 25. november 2009 (endret) VB miljøene har vært kilde til en del ganske interessante anti-patterns da: public sub DoStuff(i as Integer) 'do stuff end sub public sub DoStuff(i as String) 'do something else end sub public sub Main() DoStuff("10") end sub Hva skjer her? Who knows. Eller hva med forskjellen på disse på stående fot? dim a as integer = 3.5 dim b as integer = Int(3.5) dim c as integer = CInt(3.5) En klassiker til, hva skjer her? (Samme DoStuff som over.) dim i, j as integer i = "3.5" DoStuff(i) Holdt på å glemme: dim o as object if someCriteria then o = new SomeClass() else o = new SomeOtherUnrelatedClass() end if o.DoStuff() ' wth? Vet "option strict" fikser noe av det, men jeg har til gode å se et eneste VB prosjekt med mer enn 100 linjer kode som bruker det. Det er også mulig å se hva alt gjør, men alt er implisitt og man merker ikke at noe er galt før man får testet det, eller i værste fall når kunden ringer å spør hva i all verden det er som foregår i systemet. Utover at jeg liker selve språket bedre (mindre støy og redudante syntakser): - C# kode kompilerer merkbart raskere enn VB kode, i et system vi har konverterte vi ca 50 000 linjer VB kode (autogenerert ER mapper) i et av prosjektene til C# og besparelsen er svært merkbar. - Visual Studio håndterer C# mye bedre enn VB. Når man passerer noen tusen kodelinjer i et prosjekt begynner det å stoppe opp for VB. Ting som at background parseren krasjer og slutter å gi highlighting, understreke syntaxfeil, autoformat, intellisense blir treg eller slutter å virke. Eller at VB kompileren rett og slett krasjer og tar VS med seg i dragsuget. Siden C# er mye strengere på syntax og typing er det mye kjappere å parse og med færre bugs i verktøyene, som gjør VS mye mer responsivt. - ReSharper funker ikke ordentlig med VB (og nei, det finnes ikke noe like bra refactoring tool for VB) Og en personlig observasjon: Folk som har lært å programmere med C++ eller Java foretrekker C#, og er også dem som har størst sannsynlighet for å ha grunnleggende GoF og SOLID patterns i fingrene (hvorfor undervises ikke det mer sammen med VB?). Da vil en større del av koden som finnes rundt om kring i C# sannsynligvis være gjennomsnittlig bedre enn det som finnes av VB kode (som i 95% av tilfellene ikke er "option strict" engang). Om jeg skal gå inn i ett av to prosjekter hvor det ene er C# og det andre VB er alltid C# prosjektet det jeg ville valgt. Det er forsåvidt like enkelt å lage god kode i alle språk. Hvor lett det er å skrive dårlig kode er et mye bedre mål for hvor bra eller dårlig det er. I VB er det nok veldig lett å skrive svært dårlig kode. Endret 25. november 2009 av MailMan13 Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå