Gå til innhold

  

29 stemmer

  1. 1. Språk eller konsept, hva er viktigst?

    • Hail power to the programming language. Språket jeg jobber i gjør meg mer produktiv (fordi jeg kan gjøre foo og bar).
      7
    • Konseptene er det viktigste, språket man skriver i har mindre betydning. En god programmerer er en god ingeniør/arkitekt uavhengig av programmeringsspråk.
      22


Anbefalte innlegg

Videoannonse
Annonse

Nå er ikke jeg noen kløpper på programmering men driver litt med det på fritiden. Jeg har aldri følt at et språk har begrenset meg på hva jeg vil lage, det er heller konseptene og min uviten som har satt begrensningene.

 

Når jeg først har lært meg et konsept så kan det enkelt overføres til et annet språk.

Lenke til kommentar

Hvis du bare kan Blub kan det være en begrensning i seg selv.

 

Programmers get very attached to their favorite languages, and I don't want to hurt anyone's feelings, so to explain this point I'm going to use a hypothetical language called Blub. Blub falls right in the middle of the abstractness continuum. It is not the most powerful language, but it is more powerful than Cobol or machine language.

 

And in fact, our hypothetical Blub programmer wouldn't use either of them. Of course he wouldn't program in machine language. That's what compilers are for. And as for Cobol, he doesn't know how anyone can get anything done with it. It doesn't even have x (Blub feature of your choice).

 

As long as our hypothetical Blub programmer is looking down the power continuum, he knows he's looking down. Languages less powerful than Blub are obviously less powerful, because they're missing some feature he's used to. But when our hypothetical Blub programmer looks in the other direction, up the power continuum, he doesn't realize he's looking up. What he sees are merely weird languages. He probably considers them about equivalent in power to Blub, but with all this other hairy stuff thrown in as well. Blub is good enough for him, because he thinks in Blub.

 

When we switch to the point of view of a programmer using any of the languages higher up the power continuum, however, we find that he in turn looks down upon Blub. How can you get anything done in Blub? It doesn't even have y.

 

By induction, the only programmers in a position to see all the differences in power between the various languages are those who understand the most powerful one. (This is probably what Eric Raymond meant about Lisp making you a better programmer.) You can't trust the opinions of the others, because of the Blub paradox: they're satisfied with whatever language they happen to use, because it dictates the way they think about programs.

 

Fra Beating the averages

 

Men dersom du har vært eksponert for det ultimate språket så kan du sikkert implementere det i Blub...

  • Liker 1
Lenke til kommentar

Men dersom du har vært eksponert for det ultimate språket så kan du sikkert implementere det i Blub...

LISP FTW!!!

 

:)

 

Problemstillingen i spørsmålet vi blir stilt her er sammensatt. Språk er viktige i den grad de er ulike. Mange språk skiller seg kun fra hverandre ved svært få og små ulikheter. På den andre siden har man ulike programmeringsparadigmer, og språk understøtter de ulike paradigmene på veldig ulike måter.

 

Jeg snakker om f.eks. objekltorientert programmering, funksjonell programmering, metaprogrammering osv. (ikke så lett å linke til wikipedia i dag (: )

 

Det er viktig å lære disse ulike konseptene. For å gjøre det på en god måte må man lære ulike språk. Med andre ord ønsker jeg å svare begge alternativene, men faller ned på det siste - konseptene er viktigest.

  • Liker 2
Lenke til kommentar

Begge deler er like viktig. Og like vanskelig.

 

Man kan være helt "Jon Skeet" i C#. Det hjelper ikke hvis du blir plassert foran en Haskell-, Clojure- eller Lisp-løsning og blir bedt om å fikse et problem så snart som mulig. Selv om problemet er det samme du har jobbet med i flere år, bare i et annet språk...

 

Og på den annen side så kan du være helt l33t i alle språk. Du spiser Lua til frokost, og driter COBOL til lunch. Men det hjelper ikke hvis du tror en Model er en pen dame, og en Controller jobber i et flytårn...

 

-C-

  • Liker 1
Lenke til kommentar

Bra innlegg her, spesielt ditt innlegg om Blub, asicman.

 

Dere som har kjennskap til Lisp (eller annet språk høyere opp i hirarkiet av kraftfulle språk). Hvordan merket dere at det var på tide å bevege seg fra Blub. Var det som en akademisk øvelse, tilfeldighet, eller oppnådde dere ett nivå i Blub der språket og verktøyene holdt dere tilbake?

Lenke til kommentar

Hvis du bare kan Blub kan det være en begrensning i seg selv.

 

[...]

 

Fra Beating the averages

 

Men dersom du har vært eksponert for det ultimate språket så kan du sikkert implementere det i Blub...

 

For å tilføye en annen vinkling for å vurdere betydningen, språk mot konsept.

 

When you find your self working in a primitive environment, realize that the programming practices described in this book can help you even more than they can in mature environments. As David Gries pointed out, your programming tools don't have to determine how you think about programming (1981). Gries makes a distinction between programming in a language vs. programming into a language. Programmers who program "in" a language limit their thoughts to constructs that the language directly supports. If the language tools are primitive, the programmer's thoughts will also be primitive.

 

Programmers who program "into" a language first decide what thoughts they want to express, and then they determine how to express those thoughts using the tools provided by their specific language.

 

Jeg tolker dette til at forståelse av konseptene utgjør mye større forskjell om du jobber i ett enklere språk, aka. Blub.

Lenke til kommentar
Gjest Slettet+9871234

Merk at der skjer en mobil revolusjon. Mobile platformer (smarttelefoner etc.) "er mer proprietære" enn vanlige datamaskiner. Ofte er man tvunget til å bruke et bestemt språk for å lage en mobil web app. iPhone / iPad bruker Objective-C, ... etc

 

Se:

 

http://en.wikipedia.org/wiki/Mobile_application_development

 

http://stackoverflow.com/questions/3868202/list-of-programming-languages-for-mobile-devices

 

Litteratur:

 

http://www.springer.com/engineering/signals/book/978-1-4020-5968-1

 

Part II: Mobile Phone Programming Languages. 2. Python for Symbian Phones; J.Scheible. 3. Java 2 Micro Edition; G.P.Perrucci, A.Häber. 4. Symbian/C++; M.Pedersen, F.Fitzek. 5 Open C; E.Penttinen, A.Saukko. 6. Qtopia Greenphone; T.Arildsen, M.Jørgensen. 7. Maemo Linux; M.Sillanpää. 8. Windows Mobile Programming; R.Wind, et al..
Lenke til kommentar
Gjest Slettet+9871234

Dette

 

Er programmingsspråket man jobber i avgjørende for at du oppnår suksess? Eller er det viktigere å tenke konsepter, håndtverk og gjøre det beste ut av det man har for hånden?

 

var opprinnelig post.

 

Det avgrenser da ikke konteksten språket brukes i slik jeg kan se det.

Lenke til kommentar

Dere som har kjennskap til Lisp (eller annet språk høyere opp i hirarkiet av kraftfulle språk). Hvordan merket dere at det var på tide å bevege seg fra Blub. Var det som en akademisk øvelse, tilfeldighet, eller oppnådde dere ett nivå i Blub der språket og verktøyene holdt dere tilbake?

Saken er at man ikke merker begrensningene i et språk/verktøy om man ikke kjenner til andre/bedre verktøy. Så nei, jeg begynte ikke med andre språk pga. opplevde begrensninger. Jeg hørte at flere og flere av programmererne jeg ser opp til begynte å snakke om viktigheten av å lære seg andre språk og paradigmer. På et tidspunkt valgte jeg å utvide min egen horisont, og ble overrasket over å finne eleganse jeg ikke ante fantes (Ruby). Jeg fortsatte med flere språk, og ble enda mer overrasket (Erlang). Og da jeg nådde Lisp (Clojure) skjønte jeg endelig hvor begrenset jeg hadde vært (C#).

Lenke til kommentar

Dette

 

Er programmingsspråket man jobber i avgjørende for at du oppnår suksess? Eller er det viktigere å tenke konsepter, håndtverk og gjøre det beste ut av det man har for hånden?

 

var opprinnelig post.

 

Det avgrenser da ikke konteksten språket brukes i slik jeg kan se det.

 

Så for meg språket og konseptenes betydning i de situasjonene hvor det finnes valgmulighet, Viaweb løsningen i lenken til asicman er ett bra eksempel på språkets betydning i ett ikke-utviklet marked.

 

Siden du tar opp eksempelet med mobilprogrammering hvor man er mer knyttet til visse verktøy. Vil du si at spisskompetansen hindrer din utvikling som programmerer, eller har verktøyene mindre betydning ettersom "konseptene er viktigst"? Altså, du kan utvikle deg som programmerer fordi du ikke lar begrensingene i verktøyene være til hinder. Som iflg. forskjellen på å programmere "in" og "into" ett språk (se sitat fra Code Complete noen poster tilbake).

 

Dere som har kjennskap til Lisp (eller annet språk høyere opp i hirarkiet av kraftfulle språk). Hvordan merket dere at det var på tide å bevege seg fra Blub. Var det som en akademisk øvelse, tilfeldighet, eller oppnådde dere ett nivå i Blub der språket og verktøyene holdt dere tilbake?

Saken er at man ikke merker begrensningene i et språk/verktøy om man ikke kjenner til andre/bedre verktøy. Så nei, jeg begynte ikke med andre språk pga. opplevde begrensninger. Jeg hørte at flere og flere av programmererne jeg ser opp til begynte å snakke om viktigheten av å lære seg andre språk og paradigmer. På et tidspunkt valgte jeg å utvide min egen horisont, og ble overrasket over å finne eleganse jeg ikke ante fantes (Ruby). Jeg fortsatte med flere språk, og ble enda mer overrasket (Erlang). Og da jeg nådde Lisp (Clojure) skjønte jeg endelig hvor begrenset jeg hadde vært (C#).

 

Skjønner jeg har mye å lære. :)

Lenke til kommentar
Gjest Slettet+9871234

Siden du tar opp eksempelet med mobilprogrammering hvor man er mer knyttet til visse verktøy. Vil du si at spisskompetansen hindrer din utvikling som programmerer, eller har verktøyene mindre betydning ettersom "konseptene er viktigst"? Altså, du kan utvikle deg som programmerer fordi du ikke lar begrensingene i verktøyene være til hinder. Som iflg. forskjellen på å programmere "in" og "into" ett språk (se sitat fra Code Complete noen poster tilbake).

Litt kryptisk spørsmål, men skal du utvikle applikasjoner for iPhone, iPad etc er det nok en fordel om du har en Mac og bruker Objective-C. Der er kompromiss løsninger som:

 

http://www.dragonfiresdk.com/

 

Tid er penger, så slike løsninger kan noen ganger bli dyre. Da kan det for lønne seg å kjøpe en Mac og begynne å utvikle applikasjoner i Objective-C for iPhone og / eller iPad.

 

iPhone + iPad Development in Windows without a Mac or Objective - C

The Objective-C language is a simple computer language designed to enable sophisticated object-oriented programming. Objective-C extends the standard ANSI C language by providing syntax for defining classes, and methods, as well as other constructs that promote dynamic extension of classes.

Kilde: Objective-C: A Superset of C

 

Altså, du kan utvikle deg som programmerer fordi du ikke lar begrensingene i verktøyene være til hinder.

 

Dersom det eneste verktøyet du har er en hammer, begynner alt å ligne en spiker :roll: .

 

For meg personlig er følgende godt nok så langt:

 

HTML5 + CSS3 + JavaScript (med biblioteker som jQuery, jQuery mobile, modernizr) + PHP på nettet. Jeg har ganske god erfaring med administrasjonspanelet til phpBB samt koden. Koden er programmert i PHP 4 som mange mener er et herk. Imidlertid er det imponerende hva man har fått til i PHP 4.

 

Plattfformer som WordPress og Drupal kan være godt nok til noen formål. Hvorfor skal man finne opp hjulet på nytt?

 

Merk denne: Drupal 7 Mobile Web Development Beginner’s Guide

 

som er forventet i februar 2012. Merk at de fleste websteder kan utvikles med Drupal, nå også mobile. Drupal 8 er sikkert like rundt hjørne og så vidt jeg vet vil Drupal 8 gjøre mer bruk av OOP.

 

Når det gjelder dektop applikasjons utvikling og utvikling av applikasjoner for mobile plattformer, kan det være pedagogisk å starte med Pyhton og deretter lære, C, Objectiv-C (som jo er en supermengde av C) og deretter C++ (som jeg personlig foretrekker fremfor C#).

 

Merk følgende:

 

By 2013, mobile phones will overtake PCs as the most common Web access device worldwide. According to Gartner's PC installed base forecast, the total number of PCs in use will reach 1.78 billion units in 2013. By 2013, the combined installed base of smartphones and browser-equipped enhanced phones will exceed 1.82 billion units and will be greater than the installed base for PCs thereafter.

 

Mobile Web users are typically prepared to make fewer clicks on a website than users accessing sites from a PC. Although a growing number of websites and Web-based applications offer support for small-form-factor mobile devices, many still do not. Websites not optimized for the smaller-screen formats will become a market barrier for their owners — much content and many sites will need to be reformatted/rebuilt.

 

Du finner kilde og ytterligere informasjon her:

 

http://www.dinitside.no/phpBB3/viewtopic.php?f=6&t=11

 

Så noen ganger har du ikke noe valg. Andre ganger kan du bruke det språket du behersker best og da er det etter min menig å tute å kjøre med det.

Endret av Slettet+9871234
Lenke til kommentar

Litt kryptisk spørsmål, men skal du utvikle applikasjoner for iPhone, iPad etc er det nok en fordel om du har en Mac og bruker Objective-C. Der er kompromiss løsninger som:

Det er ikke en fordel, det er et krav som står spesifikt i lisensvilkårene når du registrerer deg som iPhone/iPad utvikler. Du MÅ utvikle programmet på en mac, og du må bruke et språk som kompilerer til native code (dog de som regel ser igjennom fingrene med dette)

Lenke til kommentar
Gjest Slettet+9871234

Ok, men hvorfor denne http://www.dragonfiresdk.com/ ?? :roll:

 

Jeg har ikke en Mac, men min datter som sverger til Mac, har en iMac samt en MacPro.

 

Jeg vurderer om jeg skal kjøpe en Mac neste gang jeg kjøper ny datamaskin.

 

Men det er jo proprietære løsninger.

 

Nå går det som det suser med JavaSkript for generell webutvikling som endelig ser ut til å ha blitt er språk godtatt av de mange utviklere.

 

Jfr.

 

http://javascriptlibraries.com/

 

http://jquery.com/

 

http://jquerymobile.com/

 

Og disse to

 

http://www.modernizr.com/

 

http://yepnopejs.com/

 

i tandem som gjør at du bare trenger inkludere modernizr i <head> siden yepnope er inkludert i modernizr og vips så er mange kompatibilitets problemer og hacks løst.

 

Why not just concatenate all my scripts and put them at the bottom?

 

While this is not a bad practice, it is advice from the early days of performance driven script loading. Since then, we've found that in many cases, you can get better performance. For instance, if you concatenate all of your JavaScript into a single file, you are often loading large chunks of JavaScript that don't actually run on the page that you're on. These are wasted bytes, and cost you time and user-experience street cred. Also, it's been shown that loading a small amount of scripts in parallel is actually faster than loading them all concatenated together, since they can all download at the same time (yes, even though there are more http requests).

 

More specifically, a lot of the time, code is specific to a certain situation, yepnope capitalizes on this fact, and allows you to load your scripts based on the situation you find yourself in. Many times, this manifests itself as Feature Tests. Feature Tests check for the availability of a feature in the executing browser environment. Usually when a feature is not supported, a "polyfill" is loaded in to offer backwards compatibility in non-supporting browsers. With yepnope, the only people who pay the cost of the polyfill file are those who need it.

 

If yepnope saves you from loading a single JavaScript file, it probably paid for itself. Everything after that is just gravy.

 

Ved utvikling av applikasjoner for smarttelefoner og "mobile websiter", er det uhyre vikig å være minimalsistisk og ikke laste mer enn akkurat det som trengs, jfr. modernizer customize. Hver eneste Kb teller på mobile plattformer.

Endret av Slettet+9871234
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...