Gå til innhold

Anbefalte innlegg

Det finnes mange bedre alternativer til C for normal applikasjonsutvikling.

 

Tja, hvilket verktøy som er best blir fort subjektivt, etter min mening kommer det først og fremst an på hva man kan godt.

 

Så for de som kan C eller C++ best, så blir det mest effektivt å bruke det språket.

 

 

Det er jeg kjempeuenig i. For å dra sammenligningen veldig mye lenger for å understreke poenget kan en ikke si det er like enkelt å lage et program som skriver ut en Fibbonaci rekke i Assembly som det er i Haskell.

 

C kalles portabel assembler, og funksjonen som trengs er en one-liner

 

int fib(int n) 
{
       return  (n < 2) ? n : fib(n-1) + fib(n-2);
}

resten greier en nybegynner. ;)

 

Det er mange ting C++ er uegnet til, både på grunn av minnebehandling og på grunn av syntaks som andre språk ville gjort en bedre jobb.

 

Smak og behag, jeg kan ikke fordra Pascal notasjon... og når det gjelder minne, så foretrekker jeg faktisk å styre det selv, men for andre så kan jo GC benyttes:

http://www.linuxjournal.com/article/6679

 

Det var jo lenge her en tråd hvor noen ønsket å lese en fil til en string, som kan gjøres med én linje i kanskje alle andre programmeringsspråk enn C++.

 

char *s = read_file(fname);

 

og read_file() funksjonen skrev man jo for 10+ år siden... :D

 

I et IDE ville en segmentation fault gitt deg et breakpoint :) mye hendigere ^^

 

Rart at han som ikke fikk det til, benyttet en IDE. :p

Lenke til kommentar
Videoannonse
Annonse

Sikkert en dårlig IDE. I Windows får du en melding som spør:

"Unhandled exception blblablabla" Så får du to knapper: "Close" og "Debug"

 

Trykker du debug, starter Visual Studio, markerer linjen som førte til segmentation fault(heter ikke segmentation fault i windows dog) som gul, og setter en pil i margen, viser deg feilmeldingen, stack trace, variabler osv.

 

Jeg har aldri vært borti noen som mener at C++ er det språket som er best egnet til alt alltid :O

Endret av GeirGrusom
Lenke til kommentar
Jeg har aldri vært borti noen som mener at C++ er det språket som er best egnet til alt alltid :O

 

Sa jeg det? Nei.

 

Hva dine innlegg her har å gjøre med Debugging via gdb, skjønner jeg ikke. Hvorfor du ønsker å ta en debatt om C++ vs C# med en hardbarka C programmerer er også noe rart, men uansett ta og start en egen tråd! :)

Lenke til kommentar
Var ikke jeg som startet :p

 

Var denne konstruktivt ment:

 

"Er dette reklame for debugging 1985-style?"

 

?!

 

Neppe, og hvis du ikke har annet å bidra med enn off-topic gørr som bare virker på looser boksen din, så diskuterer du med feil person. Intet gleder meg mer enn at middelmådige programmerere nå holder seg langt unna C, og koder sine råtne applikasjoner i C# på Vista.

 

Hva er din PB på clean compile med C#? Neppe mer enn 50 linjer...! :p

 

Passe rød i toppen nå? Hehe.

Lenke til kommentar

Jeg er ingen middelmådig programmerer, og med litt søk hadde du sikkert funnet ut av det.

 

Men jeg setter ikke pris på at du prøver å angripe mine evner fremfor å holde deg på et profesjonelt nivå.

 

Console debugging er for meg noe jeg drev med når det var få andre alternativer.

 

edit: Dessuten bruker jeg Windows 7 :p

Endret av GeirGrusom
Lenke til kommentar
Det er mange ting C++ er uegnet til, både på grunn av minnebehandling og på grunn av syntaks som andre språk ville gjort en bedre jobb.
C++ er ikke et quick'n'dirty språk, til alt annet er det meget godt egnet.
Eksempelvis er GUI noe som på tross av gode GUI biblioteker i C++ kan være betydelig enklere å få til i andre språk.
Nå er jeg rimelig lei av å rydde opp etter propagandaen din. Til gui-utvikling i c++ har du Qt som kjører på alt, og er minst like enkelt å programmere som noe annet. For de som liker GUI programmering i VS, kommer de til å elske Qt designer. Ta en titt her:

Dette har jeg informert deg om tidligere.

Ta for eksempel C# (som jeg kan best) som har LINQ (Language Intergrated Query) for å jobbe med data i arrays (collections) XML datakilder eller SQL datakilder, lambdauttrykk og automatisk garbage collection.

Dette er ting som helt klart gjør at C# for en fordel ovenfor C++ i mange oppgaver. Selv om oppgaven kan løses i C++ er ikke løsningen like elegant som den ville vært i C#.

Tror du på dette selv? Du har rik tilgang til verktøy for XML og SQL i C++. Morsomt at du drar fram Linq som eksempel på hvor gyllent det er i MS verden. Har du prøvd å bruke Linq mot de mest populære SQL-databasene, eller har du bare brukt MS-SQL?

 

Takk for flott innføring i gdb kernel! Vurder å legge den inn i egen side hos linuxguiden.no, det blir helt sikkert verdsatt :thumbup:

Endret av Del
Lenke til kommentar
Det er mange ting C++ er uegnet til, både på grunn av minnebehandling og på grunn av syntaks som andre språk ville gjort en bedre jobb.
C++ er ikke et quick'n'dirty språk, til alt annet er det meget godt egnet.

 

alt annet?

Naturligvis ikke, web-utvikling er en av de få unntakene. På samme måte er C av og til det eneste reelle alternativet (eksempelvis embedded utvikling), men C kan som kjent ansees som en delmengde av C++. Poenget står likevel, og adresserte listen til Geir. Personlig har jeg ingen preferanser i forhold til C og C++, de blir begge brukt med stort hell i store prosjekter. C# derimot...
Lenke til kommentar
Har du prøvd å bruke Linq mot de mest populære SQL-databasene, eller har du bare brukt MS-SQL?

 

Jeg har bare brukt det mot MySQL siden jeg ikke har noen prosjekter på gang som bruker MS-SQL.

 

 

Det er også innebygget støtte i .NET for Oracle, MS-SQL, Oledb og Odbc, og en kan enkelt få tak i biblioteker til andre databasemotorer, som MySQL Connector.NET som en kan laste ned fra MySQL siden.

 

Hvorfor skal en bruke C++ fremfor andre språk, som på en generell basis vil kreve mindre kode for å gjøre den samme jobben?

Endret av GeirGrusom
Lenke til kommentar
Har du prøvd å bruke Linq mot de mest populære SQL-databasene, eller har du bare brukt MS-SQL?

 

Jeg har bare brukt det mot MySQL siden jeg ikke har noen prosjekter på gang som bruker MS-SQL.

Interessant, bruker du MySQL Connector/Net? Du er klar over at du får C++ og C Connector fra samme kilde?
Det er også innebygget støtte i .NET for Oracle, MS-SQL, Oledb og Odbc, og en kan enkelt få tak i biblioteker til andre databasemotorer, som MySQL Connector.NET som en kan laste ned fra MySQL siden.
Dette er riktig, men bildet er ikke så rosenrødt, og det har jeg en følelse av at du egentlig er fullt klar over.
Hvorfor skal en bruke C++ fremfor andre språk, som på en generell basis vil kreve mindre kode for å gjøre den samme jobben?
Dette er en lang historie som helst bør tas i egen tråd. Ditt bruksområde danner et godt utgangspunkt for å påpeke grunnene.
Lenke til kommentar

Vel, LINQ bruker interfaces, extensions og lambda uttrykk for å fungere, så dersom et bibliotek implementerer disse interfacene, så skal LINQ fungere på dem, selv om biblioteket ble skrevet før C# 3.0 (på grunn av at det består av extensions)

 

Så det burde være så rosenrødt som det høres ut som.

Lenke til kommentar
Neppe, og hvis du ikke har annet å bidra med enn off-topic gørr som bare virker på looser boksen din, så diskuterer du med feil person. Intet gleder meg mer enn at middelmådige programmerere nå holder seg langt unna C, og koder sine råtne applikasjoner i C# på Vista.

Gjekk deg ned et par hakk, dropp attituden og slutt å lek digg. GeirGrusom har svart deg høflig og ordentlig. Slutt å oppfør deg som en drittunge.

 

On-topic:

Jeg synes GDB er perfekt å kombinere med Valgrind.

Endret av Dead_Rabbit
Lenke til kommentar
  • 1 måned senere...
hvis man liker gdb og har muligheten til å instalere apps så er cgdb et veldig fint alternativ..

det er en mye brukt debugger på uio (hos noen i alle fall)

 

Heh, denne var flott. Jeg er en ekte GDB junkie, man har aldri brukt denne.

Etter å ha prøvd den i en 5 minutters tid ser det ut som om den har utvidet GDBs egen text user interface med farger, men har noen irriterende bugs...

Lenke til kommentar
  • 1 måned senere...

Den beste debuggeren har nettopp blitt enda bedre, med versjon 7 har den nå bidirectional debugging for x86 og x86_64. Dvs. at du kan spole både fremover og bakover i koden. Du får denne GDB-versjonen som standard i Ubuntu 9.10 som nå er ute i beta. Kombiner gjerne med å gi siste beta av kdevelop for kde4 en testrunde, du finner informasjon om hvordan du kan legge inn den på Ubuntu 9.04 her:

http://blogs.fsfe.org/drdanz/?p=51

ellers er emacs alltid et godt valg.

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...