Gå til innhold

Diskusjon rundt brukervennlighet og anvendbarhet av ulike språk


Anbefalte innlegg

Merk: Følgende tråd er splittet ut ifra tråden Vil gjerne bli programmør! da denne diskusjonen utartet seg til å omhandle koding framfor utdanningsløp m.m. for å jobbe med programmering.

 

 

 

(...)

 

Jeg vil si at det desidert letteste å begynne med er VisualBasic. Mange vil si at dette ikke er programmering, årsaken til det er at det ikke er objektorientert. Fordelen med å begynne med VB er at det er ekstremt lett å komme igang, du kan fort skape noe og se resultater av koden din. Du får altså fort en forståelse av hva programmering innebærer. Du får trening i hvordan du f.eks hvordan du bruker løkker. Jeg vil anbefale deg å allerede nå begynne å se på programmering i VB, slik at du kan leke deg litt før du begynner med objektorientert programmering senere.

 

Java, C og andre objektorienterte språk er en del tyngre men også kraftigere verktøy. De er ikke platformavhengige slik VisualBasic er.

 

Jeg er ganske uenig. I alle fall hvis du mener han skal begynne med VB6, som er utdatert, koster penger, osv osv...

 

VB har liksom kommet til VB.Net, og når man først skal i gang med det, så ser jeg ikke problemet med å heller velge C#, som så mange går over til etterhvert.

 

Hvordan du mener det er vanskelig å få til en kjapp applikasjon, så lurer jeg på om du har sett på VisualStudio en gang. Express-utgaven er til og med gratis, og i starten kan man lett lage noe nesten bare ved drag&drop

Endret av Skagen
Lenke til kommentar
Videoannonse
Annonse
Jeg er ganske uenig. I alle fall hvis du mener han skal begynne med VB6, som er utdatert, koster penger, osv osv...

 

VB har liksom kommet til VB.Net, og når man først skal i gang med det, så ser jeg ikke problemet med å heller velge C#, som så mange går over til etterhvert.

 

Hvordan du mener det er vanskelig å få til en kjapp applikasjon, så lurer jeg på om du har sett på VisualStudio en gang. Express-utgaven er til og med gratis, og i starten kan man lett lage noe nesten bare ved drag&drop

 

 

Den gangen jeg drev med programmering så var C og java mye vanskeligere å håndtere enn VB, men det er mulig at dette har forandret seg nå. Sist jeg programmerte noe som helst i C og java så måtte man først konsturere GUI med kode for så å lage kode bak dette, mens man i VB hadde GUI klar, kunne dra knapper og annen skit inn i denne, for enkelt å komme i gang med den "matnyttige", eller interessante, delen av programmeringen. Da jeg hold på med dette så var jeg veldig lite interessert i å bruke lang tid på å kode ett interface før jeg fikk testet ideene jeg hadde.

 

Nå er det sant at VB er gått over i VB.net, men jeg mener allikevel at VB6 er flott for å få en enkel innføring i hva programmering går ut på, uten å måtte forholde seg til objekter og annet viss-vass som gjør det hele mer komplisert for en nybegynner. Mulig jeg er helt på jordet, i så fall så tar jeg det til meg og gjemmer meg under stenen jeg krøp frem fra. :D

Lenke til kommentar
Du kan se på forelesningene til begynnerkurset i programmering til MIT. Der lærer du å programmere med scheme (en lisp-dialekt). Du kan også laste ned boka som forelesningene bygger på gratis. Både forelesningene og boka er kjent som noe av det aller beste hva angår å lære seg programmering. Uansett om du er nybegynner eller profesjonell vil du sikkert lære masse av disse.

 

Her er linken: http://swiss.csail.mit.edu/classes/6.001/a...ssman-lectures/

 

Problemet med SICP er at man lærer utrolig lite som er praktisk anvendbart i dag. I tillegg vil jeg påstå mye av det er rimelig vanskelig. Derfor vil i alle fall ikke jeg anbefale det til en nybegynner, da det rett og slett kan ta motivasjonen fra deg. Jeg vil heller anbefale å begynne med å lese en bok som tar for seg et mer populært språk og som ikke er like teoretisk.

Endret av Skagen
Lenke til kommentar

Lite praktisk anvendbart? Du lærer deg å bygge programmer på en veldig enkel og elegant måte. Scheme er også et svært lett språk å lære seg, de lærer deg hele scheme i første time, resten er hvordan man bruker de elementære byggeklossene til å lage mer kompliserte systemer. Det er tross alt begynnerkurset dems i programmering. Personlig syns jeg man skal lære seg teorien for gode programmeringsmetoder først, så kan man evt. bytte til C# eller Java eller hva som er moderne og populært senere.

Lenke til kommentar

Det er en veldig bra bok og bra leksjoner, for all del (leser SICP selv), men for en nybegynner kan den muligens bli litt for teoretisk av seg. Mange vil komme i gang og lage brukbare programmer raskest mulig, og det gjør man hvertfall ikke med SICP. En annen ting er at programmering i Scheme (og funksjonell programmering generelt) følger en ganse annerledes tankegang, så det kan kreve en stor tilvenning å gå over til andre språk som følger en objektorientert eller prosedyreorientert programmeringsstil.

 

Edit: men så fins det forskjellige 'typer' nybegynnere da. Skal ikke slå alle over en kam eller hva det heter. Men min oppfatning av mange er at de bare vil lage programmer med en gang.

Endret av Jaffe
Lenke til kommentar

Nuvel, de første programmene folk lager er vel gjerne konsollbaserte kalkulatorerer og sånn. Ser ikke helt at det skal være et stort problem med SICP eller Scheme. Overgangen fra funksjonell til imperativ/OOP tror jeg også er mindre enn en overgang andre veien. Forhåpentligvis har man da vendt seg til programmering med minst mulig sideeffekter, som jo er den største kilden til bugs. I tillegg tror jeg funksjonelle språk kommer til å bli mer populære, og ikke minst nødvendige, når prosessorene får fler kjerner og man får større behov for å parallellisere koden. Bare se hvordan C# og C++ prøver å bli mer funksjonelle, dog med variert suksess og horribel syntax. Jeg skulle hvertfall ønske at mitt første møte med programmering var av den funksjonelle sorten og ikke (p)OOP.

Lenke til kommentar

Om du mener det er horribel syntax i C og/eller C# er ganske knekkende likegyldig for denne tråden.

 

Jeg skjønner heller ikke hva du skal frem til med innlegget ditt. VB.NET, C#.NET eller noe slikt ser jeg absolutt ikke problemet med å starte med. Det er litt mer motiverende når du faktisk kan se noe litt mer spennende enn konsoll skje på skjermen.

Lenke til kommentar

Beklager hvis jeg såret følelsene dine. Jeg mente ikke at C++ eller C# har horribel syntax. Men syntaxen for å få til noe som likner på halvveis funksjonell programmering, som de har hacket sammen etter de lagde språket, *er* horribel i forhold til f.eks lisp eller haskell.

 

Det er heller ingenting galt i å starte med imperative/OOP-språk, jeg syns bare at funksjonell programmering er et bedre paradigme. Det er vel lov å ha personlige meninger og preferanser?

 

Personlig driter jeg i om det er gui eller konsoll på de første programmene, det er ikke akkurat som det er supermotiverende å ha en gui-kalkulator vs en konsoll-kalkulator. Det som motiverer meg er kompleksiteten og formen på koden man skriver. Hver sin smak antar jeg.

Lenke til kommentar

Slik du skrev det var det som om det var en objektiv mening at C / C# hadde horribel syntax. Noe jeg synes er en vel drøy påstand.

 

Ved å ta et kjapt overblikk over de språkene som er mest utbredt, tror jeg uansett du vil sitte med et overtall C-syntaktiske språk.

 

Hva du personlig synes er best i starten er en ting, men det er et faktum at for noen som har liten eller ingen erfaring innen programmering er det noe mer motiverende å få opp et vindu og se litt mer "spennende" ting skje på skjermen.

 

PS: Det er INGEN her som imponeres av formuleringene og fremmedordene dine, så du kan like godt droppe det med en gang. Det blir bare idiotisk, rett og slett.

Lenke til kommentar
Slik du skrev det var det som om det var en objektiv mening at C / C# hadde horribel syntax. Noe jeg synes er en vel drøy påstand.

Da uttrykte jeg meg kanskje ikke klart nok, eller så misforstod du. Jeg brukte det faktum at C++ og C# har blitt utvidet med biblioteker og språklige forandringer for å tillate funksjonell programmering som et argument for at jeg tror funksjonell programmering kommer til å bli viktig de neste tiåra. Problemet er bare at når du utvider et språk for noe det ikke er beregnet for, så blir syntaxen som oftest horribel. Perl er jo et flott eksempel på det.

 

Ved å ta et kjapt overblikk over de språkene som er mest utbredt, tror jeg uansett du vil sitte med et overtall C-syntaktiske språk.

Det stemmer, men jeg ser ikke hva det har med noe som helst å gjøre.

 

Hva du personlig synes er best i starten er en ting, men det er et faktum at for noen som har liten eller ingen erfaring innen programmering er det noe mer motiverende å få opp et vindu og se litt mer "spennende" ting skje på skjermen.

Kanksje for noen. Men det fins da masse andre enkle spennende ting å lage hvor du ikke behøver GUI. Raytracer, fraktalgeneratorer, IRC-boter for å nevne noen.

 

PS: Det er INGEN her som imponeres av formuleringene og fremmedordene dine, så du kan like godt droppe det med en gang. Det blir bare idiotisk, rett og slett.

Trodde ikke jeg brukte så mange fremmedord jeg. Alle er vel ganske vanlige ord innenfor programmeringsverden?

 

Selv så er jeg ikke så imponert over at du velger å angripe meg for en liten sidekommentar om syntaxen til et språk. Hvis du vil fortsette får du gjerne gjøre det. Kunne ikke brydd meg mindre om du tar det som en personlig fornærming og skal påpeke hvor teit jeg var som sa det, men jeg gidder ikke å bli dratt med ned i en så latterlig diskusjon. God kveld.

Endret av teflonpanne
Lenke til kommentar

Det er en god grunn til at objektorientert programmering har slått såpass godt an.

Du kan jo telle hvor mange programmer som er skrevet i C++, Java og C#

 

Fordelene med objektorientert programmering, er at programmer blir veldig lett å bygge ut, og selve grunnkjernene av et program kan deler av koden erstattes, eller tillegge nye funksjoner på en logisk og enkel måte.

 

Det er forskjell på praktisk anvendt programmering, og teoretisk programmering.

Mange sier at Visual Basic er et fint sted og starte, jeg er uenig. Grunnen er at i praktisk anvendelse er Visual Basic et tungt språk å programmere i

 

C språkene derimot, har en syntaks som jeg finner veldig naturlig, og veldig egnet i praktisk programmering.

Lenke til kommentar
Det er en god grunn til at objektorientert programmering har slått såpass godt an.

Du kan jo telle hvor mange programmer som er skrevet i C++, Java og C#

Mye av grunnen er nok at tradisjonelt sett så har funksjonelle programmer vært vesentlig tregere og brukt mer minne enn OOP. Det spilte ganske stor rolle før, men ikke så mye i dag. Så er jo også OOP mer behagelig enn ren C, så C++ var liksom det neste logiske skrittet.

 

Fordelene med objektorientert programmering, er at programmer blir veldig lett å bygge ut, og selve grunnkjernene av et program kan deler av koden erstattes, eller tillegge nye funksjoner på en logisk og enkel måte.

Joda, men modularitet er jo noe du finner i alle høynivåspråk.

 

Det er forskjell på praktisk anvendt programmering, og teoretisk programmering.

Mange sier at Visual Basic er et fint sted og starte, jeg er uenig. Grunnen er at i praktisk anvendelse er Visual Basic et tungt språk å programmere i

Det er jeg enig i. Det ligger liksom i navnet, Visual Basic. Du har omtrent bare løkker og funksjoner, ikke så mye annet.

 

C språkene derimot, har en syntaks som jeg finner veldig naturlig, og veldig egnet i praktisk programmering.

Jepp, imperative språk er som oftest det man tenker på som mest naturlig. Men om det er fordi de fleste av oss begynte med imperative språk eller ikke er jeg ikke sikker på. Du kan jo se på quicksort i haskell og C:

Haskell

qsort []	 = []
qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++ qsort (filter (> x) xs)

C

void qsort(int a[], int lo, int hi) {
{
 int h, l, p, t;

 if (lo < hi) {
l = lo;
h = hi;
p = a[hi];

do {
  while ((l < h) && (a[l] <= p)) 
	  l = l+1;
  while ((h > l) && (a[h] >= p))
	  h = h-1;
  if (l < h) {
	  t = a[l];
	  a[l] = a[h];
	  a[h] = t;
  }
} while (l < h);

t = a[l];
a[l] = a[hi];
a[hi] = t;

qsort( a, lo, l-1 );
qsort( a, l+1, hi );
 }
}

 

Jeg syns hvertfall haskell-versjonen er ganske mye mer naturlig og lettere å forstå hva algoritmen gjør enn c-versjonen.

Endret av teflonpanne
Lenke til kommentar
Jeg syns hvertfall haskell-versjonen er ganske mye mer naturlig og lettere å forstå hva algoritmen gjør enn c-versjonen.

 

Du føler det sikkert sånn, men for folk som ikke kjenner språket (som meg) så er det ikke så lett.

C derimot er mye lettere å forstå for folk som har drevet med andre språk som ligner mer eller mindre på C (og de er det veldig mange av).

Lenke til kommentar

Skjønner at det ikke er så lett å forstå for noen som ikke kan språket, men det samme gjelder jo med C (selv om det er sant som du sier at de fleste kan et eller annet C-lignende språk). Men selve algoritmen er ikke helt trivielt å se ved første øyekast, uansett om du kan C, og det er jo den som betyr noe. Jeg burde kanskje lagt til denne teksten fra siden som jeg hentet eksemplet fra:

 

"Functional programs are often easier to understand. You should be able to understand the program without any previous knowledge of either Haskell or quicksort. The same certainly cannot be said of the C program. It takes quite a while to understand, and even when you do understand it, it is extremely easy to make a small slip and end up with an incorrect program. Here is a detailed explanation of the Haskell quicksort:

 

qsort [] = []

qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++ qsort (filter (>= x) xs)

 

The first line reads: "When you sort an empty list ([]), the result is another empty list". The second line reads: "To sort a list whose first element is named x and the rest of which is named xs, sort the elements of xs that are less than x, sort the elements of xs that are greater than or equal to x, and concatenate (++) the results, with x sandwiched in the middle."

Endret av teflonpanne
Lenke til kommentar

Foretrekker selv å skrive koden selv fremfor å bruke drag 'n drop funksjonalitet og automatisk generert kode.

 

Hva så om det er "vanskelig" å få til fancy gui. Det viktigste er jo at du faktisk har forståelse for det programmet du selv lager. Hva programmet gjør bør være målet, hvordan programmet gjør det er det nest viktigste, derretter får måten hvordan programmet presenterer resultatet på komme etterpå.

 

Man bør etter min mening lære seg å krype før man begynner å gå.

 

Jeg tror også at en ved å lære seg det grunnleggende tidlig vil få mye igjen for det senere.

 

Selvfølgelig er det viktig med et godt gui for at et program skal nå ut til "vanlige brukere" men en som ønsker å programmere litt for seg selv for å lære om programmering har på ingen måte vondt av å se programmer som kjører bare med utskrift til console, og oppretter/leser fra noen filer hist og pist.

Lenke til kommentar

Når man har programmert en stund, så forsvinner litt av gleden med å programmere alt manuelt, man er avhengig av å spare inn tid.

Den beste måten å gjøre det på, er å bruke IDE-er og tilleggsprogrammer som kan generere brukergrensesnitt for deg, og selvsagt en velfungerende debugger.

 

Men for nybegynnere tror jeg det er fint å ta det hele fra starten.

 

Når det gjelder funksjonell programmering vs. objektorientert programmering, så har nok jeg en ganske ensidig vinkel å se dette fra, da jeg aldri har rørt haskell, og brukt mye tid på C, C++, Assembly, Visual Basic, C# og nå også D.

Så jeg skal ta en titt på haskell før jeg uttaler meg om brukeligheten eller ikke.

 

ny post når jeg har prøvd haskell litt.

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...