Gå til innhold

Er det noen likheter mellom c++ og php?


Gjest Slettet-YQ8U8xbZ

Anbefalte innlegg

Hvis du vil jobbe med programmering, så er det Java (og til en viss grad også andre språk på JVMen, spesielt Scala) og .NET som gjelder. Vil du jobbe med webutvikling så er det HTML, JavaScript og CSS som gjelder.

 

C++ er et veldig lavnivåspråk som er fryktelig utilgivende for alle feil du kommer til å gjøre som nybegynner og med mindre du skal jobbe med å skrive programvare rett mot hardware eller i helt spesielle bransjer (spillbransjen bruker stort sett C++, f.eks.) så kommer du ikke til å få bruk for det. PHP er vel også stort sett legacy nå til dags, jeg hører ikke om mange nystartede prosjekter som bruker PHP lenger.

 

For å lære deg programmering, bruk Python. Enkel og grei syntaks, og det er polyparadigmisk. Har man først lært seg prinsippene så er det en smal sak å lære nye språk. Å lære et nytt språk handler uansett stort sett om å lære seg biblioteker og konvensjoner, ikke så veldig mye teknisk (men ligg for all del unna Haskell :p).

Lenke til kommentar
Videoannonse
Annonse

...men å foreslå et sted å begynne, det gjør du ikke? o.0

Jada masa.

 

Don't get me wrong, jeg er en av de som faktisk liker C++. Og med C++11 er det ikke mye eksplisitt low level igjen. Men det er et stort men her:

 

#1: Disse tingene er stort sett designet for folk som allerede er smått fluent i C++ og/eller annen programmering; det er ingenting åpenbart nybegynnervennlig med de.

#2: Nøyaktig hva alle disse tingene gjør og hvorfor etc krever ganske mye modenhet. En nybegynner har ikke modenhet.

 

std::unique_ptr er i grunn et glitrende eksempel på det.

 

That being said brukte jeg selv nærmest C++ som førstespråk. Stockholm syndrome kan også kicke inn, men deterministic lifetime og destructors er kjærleik.

 

Skulle jeg lært noen å programmere i dag hadde jeg rangert en håndfull populære språk slik:

 

Smart:

Haskell

Scheme eller (Common) lisp

Tildels python og perl (:----D), litt avhengig av hva slags vinkling vi snakker her

 

er alle fine steder å begynne. Python har masse dårlige idéer, men grunnet mangel på "forstyrrende" syntax er det mange som tar hvertfall deler av det lett. Fyller på etterhvert som jeg kommer på flere smarte.

 

Frustrerende:

C og C++

 

Dumt:

Java/C#

 

Hvorfor? Vel, begge er verbose og med masse magisk som er ganske så tungt for en stakkar å bite over. Videre (og dette gjelder spesielt Java) prøver det å være high level, men har akkurat nok low level-detaljer til det egentlig ikke er det. Mangel på enkle, forståelige konstruksjoner gjør det ikke bedre, og en ganske mange "nest-dette-ned-fem-objekter" + IDE-avhengighet er ikke akkurat elevens beste venn.

 

Aids:

PHP

Javascript

 

Sier seg vel nesten selv, no? Spesielt om en har et håp om at han skulle bli flink også. Til slutt, hvertfall.

 

C++ er et veldig lavnivåspråk som er fryktelig utilgivende

Pirk, men men. Ikke bare veldig lavnivå, selv om slike operasjoner er tilgjengelige. Og ikke utilgivende bare fordi lavnivå, men fordi fart.

 

(men ligg for all del unna Haskell :p).

Tøys. Endret av Lycantrophe
Lenke til kommentar

Jeg tror jeg skal finne på ett nytt ord, som en dag kanskje kan foreslås for norsk språkråd.

 

"Programmeringsspråksnobberi".

 

Det er når en persons plass i det sosiale hirarkiet blir valg ut fra språk han kjenner og antall års erfaring. En person er "dum" for å velge "dumme" språk, og en person er "smart" for å velge "smarte" språk. Som regel er ingenting godt nok for de som troner i øverste sjiktet i dette hirarkiet.

 

Jeg oppdaget dette ordet etter å ha jobbet som X utvikler og måtte tåle noen spøkefulle kommentarer fra kolleger som arbeidet i andre språk. En dag overtok jeg ansvaret for deres kode og fant ut at koden deres var så full av teknisk gjeld og harde avhengigheter at det rett og slett var flaut. Etter det måtte jeg bare konkludere med at språkvalg ikke definerer hvem utvikleren er, og at man aldri må ta andres mening om programmeringsspråk personlig (dersom man gjør det).

 

Om trådstarter liker C++ og PHP så er det faktisk helt greit, og mer enn greit. Er man entusiastisk for programmering så er det til syvende og sist den viktigste ingrediensen. :)

Endret av rockPaperScissors()
Lenke til kommentar

Tøys.

 

Tja... Haskell er prototypen på et eksklusivt funksjonelt programmeringsspråk, og med tanke på at funksjonell programmering kun er i startgropen når det gjelder mainstream adopsjon spørs det vel hvor mye tid man bør bruke på det. Ja, jeg vet at LISP er urgammelt, men jeg vet ikke om noe sted utenfor akademika hvor LISP og funksjonell programmering har vært brukt i stor skal inntil nå veldig nylig. Clojure er vel første eksempel jeg kjenner til på en LISP dialekt som virkelig har fenget oppmerksomhet, og det er i stor grad på grunn av at den rir på ryggen til JVMen.

 

Funksjonell programmering er så drastisk annerledes fra de vanlige deklarative paradigmene (prosedyrell, OO, osv.) at det er veldig lite overføringsverdi, og så lenge deklarativ programmering fortsatt er der jobbene er vil jeg si det er her man bør begynne.

 

For all del, jeg synes selv funksjonell programmering er morsomt, men selv jeg sliter fortsatt med å skikkelig forstå tankegangen.

 

Så kan du gjerne kalle JavaScript for AIDS, men det er nå en gang på vei til å bli de facto standard for webutvikling.

 

Programmeringsspråk er verktøy, og hvis man skal jobbe med programmering så må man av og til bruke det verktøyet som passer oppgaven best, og ikke det verktøyet man selv liker best. Klart, har man det som hobby kan man så klart bruke akkurat hva man vil.

Endret av henrikwl
Lenke til kommentar

Tja... Haskell er prototypen på et eksklusivt funksjonelt programmeringsspråk, og med tanke på at funksjonell programmering kun er i startgropen når det gjelder mainstream adopsjon spørs det vel hvor mye tid man bør bruke på det.

Det kan du si. Men problemstillingen er hva som egner seg for å lære seg å programmere, ikke hva som gir deg codemonkey-jobb.

 

Ja, jeg vet at LISP er urgammelt, men jeg vet ikke om noe sted utenfor akademika hvor LISP og funksjonell programmering har vært brukt i stor skal inntil nå veldig nylig. Clojure er vel første eksempel jeg kjenner til på en LISP dialekt som virkelig har fenget oppmerksomhet, og det er i stor grad på grunn av at den rir på ryggen til JVMen.

Bank og finans er glade i både lisp og haskell.

 

Funksjonell programmering er så drastisk annerledes fra de vanlige deklarative paradigmene (prosedyrell, OO, osv.) at det er veldig lite overføringsverdi, og så lenge deklarativ programmering fortsatt er der jobbene er vil jeg si det er her man bør begynne.

Hæ? Først og fremst er det FP som typisk har de deklarative språkene, men det lar jeg gå som en glipp. Det at det ikke er overføringsverdi er bare tøys. Spesielt i kontekst av problemstillingen her.

 

For all del, jeg synes selv funksjonell programmering er morsomt, men selv jeg sliter fortsatt med å skikkelig forstå tankegangen.

Du er også biased. Du kommer fra en helt annen bakgrunn. Nye folk har ikke slike antageligs i ryggen, så det er ikke like fremmed at noe er, say, lazy, immutable og pure.

 

Så kan du gjerne kalle JavaScript for AIDS, men det er nå en gang på vei til å bli de facto standard for webutvikling.

Adopsjon impliserer ikke kvalitet. Spesielt ikke i læringssammenheng. Javascript er populært fordi det er.

 

Programmeringsspråk er verktøy, og hvis man skal jobbe med programmering så må man av og til bruke det verktøyet som passer oppgaven best, og ikke det verktøyet man selv liker best. Klart, har man det som hobby kan man så klart bruke akkurat hva man vil.

Nå vil op først og fremst lære. Hvilket verktøy er best til jobben?
Lenke til kommentar

Vel, for å holde oss til OP; for å lære kan jeg gi min personlige anbefaling (som er noe hyklersk av meg ;) ):

 

- Sitter du på et Windows OS feks, så vil jeg rett og slett anbefale C# (med WPF, da dette rammeverket tilbyr veldig mye "gøy"). Jeg begynte å lære meg programmering med dette språket delvis parallelt med C++, og er nå mer kyndig med C++.

Mtp portable software (altså, program som funker over flere platformer som linux, osx) så er min anbefaling å vente med det og heller forholde deg til en ting av gangen. Slikt kommer senere, men det kan være lurt å lufte emnet litt i ny og ne.

 

C# er mye brukt, selvsagt helst innen Microsoft sine grenser, da MS gjerne setter dem. Det kan bli brukt som interaktivt script i Unity Engine ("gratis" spillmotor som er svært bra), til å lage ASP nettsteder, og selvsagt Windows applikasjoner.

 

En kan aldri være enige om hvilket som er best, da det er her klart at det går på personlig forståelse og erfaring, samt meninger om hva som gjør det bra. Selv liker jeg C# fordi det er lett å lære (jeg begynte med det, og det gikk "fort"), du har greie klasser som gir direkte og tilrettelagt aksess til operativsystemet hos klienten, som feks. åpne/lagre filer, åpne system-mapper med et kall til en metode (My documents, etc).

 

Koble UI opp mot logikken går fort og resultatet er der med en gang. En fin plattform for nybegynnere, og for å lære seg hvordan programmering fungerer i praksis.

 

Det er vanskeligere å gjøre feil, debuggeren er god, språket er lett leselig og reglene er klare.

 

For å avslutte: Lær deg akkurat det du vil. Ønsker du å starte med C++, så gjør du det. C++ for dummies mater deg med teskje, og du får god oversikt over konseptene som er sant for omtrent all programmering. Datatyper, if/else logikk, funksjoner, klasser, aritmetikk (+, -, *), "loops" (for, while, do while etc). Alle disse tingene er overraskende like i ALLE språk, både scripting og programmering.

 

Jeg leste den boken over og over igjen, til det meste satt godt. Etter det, bygde jeg på den erfaring med mer "in-depth" om alt dette, og ting som var mer fokusert på selve språket og hva det kunne gjøre. Når du har holdt på med det lenge for å få et godt grunnlag, så er det greit å¨begynne å lese opp hvordan du skriver god og ren kode (selvsagt er det lurt å lese på slikt parallelt, men som nybegynner er det bedre å forstå hvorfor og hvordan. Kan anbefale "Scott Meyers - Effective C++". Mye bra info der.

 

Uansett, gjør akkurat det du føler for!

Lenke til kommentar

Det kan du si. Men problemstillingen er hva som egner seg for å lære seg å programmere, ikke hva som gir deg codemonkey-jobb.

Jeg mener nå at målet for ønsket om å lære seg å programmere ikke er likegyldig, og at man kan spare seg for mye tid hvis man velger hensiktsmessig allerede fra starten av.

 

Bank og finans er glade i både lisp og haskell.

Ah, ok. Jeg har jobbet mest i olje-, energi- og telekombransjen, og der er det Java og .NET for alle penga, i hvert fall på forretningsstøttesiden.

 

Hæ? Først og fremst er det FP som typisk har de deklarative språkene, men det lar jeg gå som en glipp. Det at det ikke er overføringsverdi er bare tøys. Spesielt i kontekst av problemstillingen her.

Helt riktig, det gikk litt fort i svingen. FP er så klart deklarativ, mens de jeg nevnte er de imperative.

 

Jeg ser for så vidt ikke at overføringsverdien mellom disse to paradigmene er så veldig stor, selv om det jo selvsagt er litt.

 

Du er også biased. Du kommer fra en helt annen bakgrunn. Nye folk har ikke slike antageligs i ryggen, så det er ikke like fremmed at noe er, say, lazy, immutable og pure.

Dette er selvsagt sant. Jeg har årevis med imperativ tenkning som jobber mot meg - det har ikke en helt fersking.

 

Adopsjon impliserer ikke kvalitet. Spesielt ikke i læringssammenheng. Javascript er populært fordi det er.

For så vidt sant. Men igjen; det avhenger av målet. Har man lyst til å bli webutvikler, så vil jeg vel si at LISP eller C++ ikke er de mest heniktsmessige plassene å starte.

 

Nå vil op først og fremst lære. Hvilket verktøy er best til jobben?

Tja, det har jeg vel egentlig nevnt. Jeg mener Python er et fint språk å lære seg programmering i. Med kjælenavnet "eksekverbar pseudokode" sier det litt om hvor lavterskel det er. Det er dog kun min personlige mening. Men igjen: deklarativ vs. imperativ er jo to vidt forskjellige verdner.

Lenke til kommentar

Jeg mener nå at målet for ønsket om å lære seg å programmere ikke er likegyldig, og at man kan spare seg for mye tid hvis man velger hensiktsmessig allerede fra starten av.

Målet er ikke likegyldig, nei, det har jeg heller ikke sagt (bare for å ha det klart). Men hva er hensiktsmessig for å lære seg programmering? Ta haskell, for eksempel. Immutability og sterk typing gjør at store klasser med feil nybegynnere fort gjør (og, vil jeg tro, blir latterlig frustrerte av) lukes ut ved at kompilatoren ikke godtar det. Derfor hensiktsmessig.

 

Ah, ok. Jeg har jobbet mest i olje-, energi- og telekombransjen, og der er det Java og .NET for alle penga, i hvert fall på forretningsstøttesiden.

To ting.

 

For det første er dette bransjer som i stor grad er enterprise. Særlig om de tar noe det ikke står Microsoft eller Oracle på.

 

Second, her er det snakk om forretningsstøttespesfikk software, ikke programmering generelt. Da er diskusjonen en helt annen. Her er fp (men også logic og constraint) betydelig mindre. Jeg vet ikke om jeg vil si mindre egnet, men det får være en annen diskusjon.

 

Jeg ser for så vidt ikke at overføringsverdien mellom disse to paradigmene er så veldig stor, selv om det jo selvsagt er litt.

Det er masse. Vi kan godt kjøre en diskusjon på det, men det å si at det ikke er særlig overføringspotensiale mellom paradigmene er helt utrolig fjernt.

 

For så vidt sant. Men igjen; det avhenger av målet. Har man lyst til å bli webutvikler, så vil jeg vel si at LISP eller C++ ikke er de mest heniktsmessige plassene å starte.

Hvertfall ikke C++. Lisp kan ha noe for seg. Videre har man da siktet seg inn på en verden som allerede er ganske fastlåst i form av verktøy. Det egner seg ikke nødvendigvis best for å lære programmering, men om man spesifikt vil tukle med web har man jo allerede begrenset horisonten betraktelig.

 

Tja, det har jeg vel egentlig nevnt. Jeg mener Python er et fint språk å lære seg programmering i. Med kjælenavnet "eksekverbar pseudokode" sier det litt om hvor lavterskel det er.

Python er ikke det verste stedet å starte, selv om python har en del svakheter (det og :--)).

 

Det er dog kun min personlige mening. Men igjen: deklarativ vs. imperativ er jo to vidt forskjellige verdner.

Både og.
Lenke til kommentar

Det er masse. Vi kan godt kjøre en diskusjon på det, men det å si at det ikke er særlig overføringspotensiale mellom paradigmene er helt utrolig fjernt.

Den diskusjonen er jeg mer enn gjerne med på (da selvsagt i en egen tråd). Jeg er som sagt en (muligens litt inngrodd) imperativ programmerer som sliter med å få grep om det deklarative tankesettet.

Lenke til kommentar

 

Tja... Haskell er prototypen på et eksklusivt funksjonelt programmeringsspråk, og med tanke på at funksjonell programmering kun er i startgropen når det gjelder mainstream adopsjon spørs det vel hvor mye tid man bør bruke på det. Ja, jeg vet at LISP er urgammelt, men jeg vet ikke om noe sted utenfor akademika hvor LISP og funksjonell programmering har vært brukt i stor skal inntil nå veldig nylig.

 

Noen ekspertsystemer (som har vært i bruk i mange år, som fortsatt brukes og videreutvikles) innenfor Finans er skrevet i Lisp lærte jeg for en stund siden.

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