Gå til innhold

ProgrammeringsBaren! Småprat, om det du elsker!


Anbefalte innlegg

Videoannonse
Annonse

Ville påstå at det generelt sett ikke er noen forskjell. En liste er en sekvens med elementer, og det er også en tuppel.

 

Men i forskjellige programmerings-språk, så har de ofte forskjellige egenskaper.

 

Ser at du nevnte at du bruker F# noen innlegg tilbake. Jeg har ikke brukt F# før, men skjekket wikipedia for deg.

 

I F# så har en n-tuppel n elementer, det kan ikke være mer eller mindre, og når du først har laget et n-tuppel kan du ikke legge til et element til å få et "n+1-tuppel".

 

Lister i F# er linked lists, det er tre «grunnleggende» egenskaper ved linked list. 1) Du kan se på det første elementet i listen. 2) Du kan se på resten av elementene i listen(altså alle utenom det første) og 3) Du kan legge til et element forran på listen.

 

Lister er veldig fine. :)

Lenke til kommentar

Men hvis vi ser på holdninger som fungerer for open source, er det noen grunn til at de ikke også skulle fungere for outsourcing?

Jeg tror premissene for hva som driver utviklerne fremover i et open source prosjekt er helt annerledes enn et tilsvarende stort inhouse utviklingsprosjekt. Man skal ikke se bort i fra at utviklere engasjerer seg mer i et open source prosjekt enn i jobben sin :) Men nå skal det også sies at store deler av kildekoden i mange store open source prosjekter ikke utvikles på gutterommet, men profesjonelt av betalte utviklere som en del av deres daglige jobb.

Lenke til kommentar
Noen som kan forklare for meg hva som er forskjellen på en list og tuple i programmering?

Vet ikke om det var python du mente.

Tar litt om det.

 

Man bruker list når man ønsker og gjøre forandringer i sekvensen av elementer.

>>> cars = ['bmw','opel']
>>> new_car = 'ford'

>>> cars.append(new_car)
>>> cars
['bmw', 'opel', 'ford']

>>> cars.remove('opel')
>>> cars
['bmw', 'ford']

 

Man bruker tuple når man har en sekvens som ikke trenger forandringer.

cars = ('bmw', 'opel', 'ford')
>>> cars
('bmw', 'opel', 'ford')
>>> dir(cars)
#Ser vi på metoder under tuple er det bare count og index
>>> cars.count('opel')
1
#Vi kan bruke tuple bytte for og unngå midlertidige variabler
>>> x = 44
>>> y = 22
>>> print x, y
44 22
>>> y, x = x, y
>>> print x,y
22 44
###
>>> #Man kan bruke tuple som "key" i et "dictionary"

 

Tuple er mer effektiv og bruker mindere minne.

Kjører vi en test med timeit ser vi forskjellen.

 

C:\>python -m timeit (1,2,3,4)
10000000 loops, best of 3: 0.0226 usec per loop

C:\>python -m timeit [1,2,3,4]
10000000 loops, best of 3: 0.194 usec per loop

Derfor har man en sekvens som ikke trenger forandringer er det smart og bruke tuple.

Det var vel hovedtrekkene av list/tuple sikkert noe jeg har glemt og.

Endret av SNIPPSAT
Lenke til kommentar
Gjest Slettet+56132

Bleh, meg og mine valgproblemer. Hovedmålet mitt nå som jeg prøver å lære meg å programmere er å kunne lage programmer med et GUI som gjør noe mer nyttig enn å spytte ut mattestykker. Dog, har funnet ut at Python kanskje ikke er det mest egnede desktop-developmentspråket der ute, det er i allefall genialt som hacking og jeg er på jakt etter noe som er open source (er litt open source-fanatiker).

 

Så litt på Java og ble litt hooked på det, menneh, problemet er jo at det eneste jeg hører er at Java er forferdelig treigt og dårlig og what not, men for min del virker det genialt med Swing og hele pakka. Sålangt jeg vet kommer ingen andre språk i nærheten til det (annet enn C# o.l., men de er proprietære). Noen som har noen forslag/hjelp til en stakkars newbie? :p

 

Og sånn btw, språket må fungere native på Linux, orker ikke kjøre C# gjennom Mono.

Endret av Slettet+56132
Lenke til kommentar

Bleh, meg og mine valgproblemer. Hovedmålet mitt nå som jeg prøver å lære meg å programmere er å kunne lage programmer med et GUI som gjør noe mer nyttig enn å spytte ut mattestykker. Dog, har funnet ut at Python kanskje ikke er det mest egnede desktop-developmentspråket der ute, det er i allefall genialt som hacking og jeg er på jakt etter noe som er open source (er litt open source-fanatiker).

 

Så litt på Java og ble litt hooked på det, menneh, problemet er jo at det eneste jeg hører er at Java er forferdelig treigt og dårlig og what not, men for min del virker det genialt med Swing og hele pakka. Sålangt jeg vet kommer ingen andre språk i nærheten til det (annet enn C# o.l., men de er proprietære). Noen som har noen forslag/hjelp til en stakkars newbie? :p

 

Og sånn btw, språket må fungere native på Linux, orker ikke kjøre C# gjennom Mono.

 

Da foreslår jeg du fortsetter med Python og Java. Hvis du lærer å programmere på egenhånd vil jeg si at det absolutt viktigste er at du har det moro. Java var treigt i gamledager (en del år tilbake), men det er ikke tilfelle lenger, selv om dette er fortsatt hevdes, da stort sett av folk som ikke er spesielt oppdatert på den fronten... Et kjapt søk på google (eller, skrekk og gru, faktisk benche ut noe selv) tilbakeviser denne "urbane legeden".

 

C# er også et godt alternativ, men jeg er helt enig at det er tullete hvis du er på en linuxplattform eller er interessert i multi-plattform.

Lenke til kommentar
Bleh, meg og mine valgproblemer. Hovedmålet mitt nå som jeg prøver å lære meg å programmere er å kunne lage programmer med et GUI som gjør noe mer nyttig enn å spytte ut mattestykker. Dog, har funnet ut at Python kanskje ikke er det mest egnede desktop-developmentspråket der ute

Python er bra egnet til desktop-development med GUI.

Min favoritt er wxpython,også PyQt/PYGTK er bra.

Jeg har mange små og middels store persolige proskjeter med GUI(kan jo vise litt av hvordan noen ser ut viss det er interesse for det)

Mitt siste proskjeter var et oversettelse program der jeg bruker Google AJAX Language API og lagde GUI i wxpython.

pytrans.th.png

 

Sålangt jeg vet kommer ingen andre språk i nærheten til det (annet enn C# o.l., men de er proprietære). Noen som har noen forslag/hjelp til en stakkars newbie?

Du må nok ta med python,ligger vel i forkant spør du meg.

 

men for min del virker det genialt med Swing og hele pakka.

Viss enn liker swing til GUI kan man få tilgang rett fra python igjennom Jython.

 

#!/usr/bin/env jython
from pawt import swing
import sys
from java.awt import Color, BorderLayout

def quit(e):
   sys.exit()

top = swing.JFrame("PySwing")
box = swing.JPanel(BorderLayout())
hello = swing.JLabel("Hello World!")
quit = swing.JButton("QUIT", actionPerformed=quit,
   background=Color.red, foreground=Color.white)

box.add("North", hello)
box.add("South", quit)
top.contentPane.add(box)
top.pack()
top.visible = True

 

Liker man .NET sine biliotek kan man få tilgang til igjennom ironpython.

Som du er er python mere fleksibelt enn de fleste språk.

Finnes også veldig mye biliotek til python se bare på Pypi

Lenke til kommentar

Til de fleste programmer yter det vel mer enn godt nok, men det finnes mange tilfeller der Python sannsynligvis vil dra ned, men det er ikke verre enn å velge et annet språk som egner seg mer til prosessorhungrige programmer, og python til det som ikke krever like mye.

Eksempelvis sitter en ikke å mekker pixel-for-pixel bitmaps i Python, det er C, C++ eller C# langt bedre egnet til.

Lenke til kommentar
SNIPPSAT: hva synes du om ytelsen til Python da?

Den er mer enn god nok,og du trenger nok ikke tenke på dette i de proskjeter du ønsker og gjøre.

 

Trenger man fart er det flere måter og gjøre det på se på youTube.

YouTube is coded mostly in Python. Why? “Development speed critical”.

http://kylecordes.com/2007/07/12/youtube-scalability/

Dem bruker Psyco når dem trenger fart.

Jeg har gjort flere tester med pysco og den fungere fint.

 

Men for mine små persolige proskjeter er python mer enn rask nok uten og bruke noen optimasjon metoder.

Google er kjent for og bruke mye python og har et artig proskjet unladen-swallow for og optimalisere python.

Lenke til kommentar
Noen som kan forklare for meg hva som er forskjellen på en list og tuple i programmering?

Vet ikke om det var python du mente.

Tar litt om det.

 

Man bruker list når man ønsker og gjøre forandringer i sekvensen av elementer.

 

Jeg ser at tuples vs list ble bra forklart tidligere her, så jeg skal ikke gå videre inn på det. Men når det kommer til F#, som var språket han brukte så vidt jeg forstod, så er dette et funksjonelt språk. Blant annet innebærer dette at alle variable i utgangspunktet er deklarative, dvs. at du ikke kan endre verdien eller legge til eller fjerne elementer fra listen etter at du har deklarert den.

 

Her er en fin lenke til litt om F# (og om tuples og lists også!)

http://en.csharp-online.net/FSharp_Functional_Programming—Lists

 

og også:

http://cs.hubfs.net/

 

Det er forøvrig også et språk som er ganske ulikt i måten å programmere på enn språkene i den imperative familien, slik som C-språkene og Java, da F# tilhører en annen paradigme. Dette kan være viktig å påpeke dersom du skulle spørre om hjelp ved en senere anledning, da det kan være vesentlige forskjeller i hvordan man gjør ting.

Endret av hauk184
Lenke til kommentar

Tid for å krydre tråden med noen programmeringssitater. :)

 

«Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.» – Brian W. Kernighan

 

«Premature optimization is the root of all evil.» – Donald Knuth

 

«Languages shape the way we think, or don’t.» – Erik Naggum

 

«Einstein argued that there must be simplified explanations of nature, because God is not capricious or arbitrary. No such faith comforts the software engineer.» – Fred Brooks

 

«[1949] As soon as we started programming, we found to our surprise that it wasn’t as easy to get programs right as we had thought. Debugging had to be discovered. I can remember the exact instant when I realized that a large part of my life from then on was going to be spent in finding mistakes in my own programs.» – Maurice Wilkes

 

«If debugging is the process of removing software bugs, then programming must be the process of putting them in.» – E. W. Dijkstra

 

«On two occasions I have been asked, – ‘Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?’ In one case a member of the Upper, and in the other a member of the Lower House put this question. I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question.» – Charles Babbage

 

«Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.» – Rich Cook

 

«No matter how slick the demo is in rehearsal, when you do it in front of a live audience, the probability of a flawless presentation is inversely proportional to the number of people watching, raised to the power of the amount of money involved.» – Mark Gibbs

 

«A computer program does what you tell it to do, not what you want it to do.» – Dan Greer

 

<Sonium> someone speak python here?

<lucky> HHHHHSSSSSHSSS

<lucky> SSSSS

<Sonium> the programming language

 

«Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.» – Martin Golding

 

«Code never lies, comments sometimes do.» – Ron Jeffries

 

<@Logan> I spent a minute looking at my own code by accident.

<@Logan> I was thinking "What the hell is this guy doing?"

 

«There are two ways of constructing a software design: one way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.» – C. A. R. Hoare

 

«Nobody should start to undertake a large project. You start with a small trivial project, and you should never expect it to get large. If you do, you’ll just overdesign and generally think it is more important than it likely is at that stage. Or worse, you might be scared away by the sheer size of the work you envision. So start small, and think about the details. Don’t think about some big picture and fancy design. If it doesn’t solve some fairly immediate need, it’s almost certainly over-designed. And don’t expect people to jump in and help you. That’s not how these things work. You need to get something half-way useful first, and then others will say ‘hey, that almost works for me’, and they’ll get involved in the project.» – Linus Torvalds

 

«Hofstadter’s Law: it always takes longer than you expect, even when you take into account Hofstadter’s Law.» – Douglas Hofstadter

 

<Sigurd> a sprite is anything not static

<SRElysian> a sprite is a variable object

<SRElysian> be it 2d or 3d

<TorMuck> a sprite is a fucking soda

<TorMuck> you god damn geekass bastards

 

«One of my most productive days was throwing away 1000 lines of code.» – Ken Thompson

 

«Some people, when confronted with a problem, think ‘I know, I’ll use regular expressions.’ Now they have two problems.» – Jamie Zawinski

 

«It should be noted that no ethically-trained software engineer would ever consent to write a DestroyBaghdad procedure. Basic professional ethics would instead require him to write a DestroyCity procedure, to which Baghdad could be given as a parameter.» – Nathaniel Borenstein

 

«The problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a banana, but what you got was a gorilla holding the banana and the entire jungle.» – Joe Armstrong

 

«Screwed-up initial design together with endless reinvention is why IT is such a disaster. C not good enough for you? Let’s have C++, or this other version of C++, or this one. No, let’s reimplement in Java. Or C#. Or Python. Perl. Ruby. SGML no good? … Just reinvent everything once again, use XML (it must work, it’s so big and complicated by now – how can anything that big not work), and we’ll all get rich this time. Right. Sure. I’ll just do something else, if you don’t mind.» – Tim Bradshav

 

«I have actually programmed a fair bit in Perl, like I have C++ code published with my name on it. Other things I have tried and have no intention to do again if I can at all avoid it include smoking, getting drunk enough to puke and waste the whole next day with hang-over, breaking a leg in a violent car crash, getting mugged in New York City, and travel with Aeroflot.» – Erik Naggum

 

<djahandarie> we ain't here to do e-c-e

<djahandarie> we're here to do c-s-e on the w-e-b

<djahandarie> listen to me spit these rhymes

<djahandarie> while i program lines

<djahandarie> and commit web accessibility crimes

<djahandarie> word, son

<http402> You talk like you're big on these I-Net kicks,

<http402> But your shit flows slower than a two-eighty-six.

<http402> I'm tracking down hosts and nmap scans,

<http402> While Code Igniter's got you wringing your hands.

<http402> Cut the crap rap,

<http402> Or I'll run ettercap,

<http402> Grab your AIM chat,

<http402> N' send a PC bitch-slap!

<http402> peace

<djahandarie> you're talkin 'bout down hosts and nmap scans

<djahandarie> while i got other plans

<djahandarie> you're at your new job, but you can't even do it right

<djahandarie> you just create a plight with your http rewrites

<djahandarie> i've been on the web since the age of three

<djahandarie> you just got on directly off the bus from mississippi

<djahandarie> respect yo' elders, bitch

<http402> You've been webbin' since three, but still ain't grown up,

<http402> Gotta update your config and send the brain a SIGHUP.

<http402> You say you're that old? No wonder you're slow!

<http402> You're knocking at the door while I run this show!

<http402> Elders my ass, your shit's still in school,

<http402> Hunt and pecking at the keyboard like a spaghetti-damned fool,

<http402> Rim-riffing your hard drive like a tool,

<http402> Face it. I rule.

<djahandarie> i erase my harddrives with magnets (bitch)

<djahandarie> all you can do is troll on the fagnets

<djahandarie> and son, my brain's wrapped in a nohup

<djahandarie> it wont be hurt by the words you throwup

<djahandarie> dont mind me while i emerge my ownage

<djahandarie> while you're still over there apt-getting your porridge

<djahandarie> you say i'm still in school

<djahandarie> but the fact is that i know the rule

<djahandarie> cuz you need to go back to grade three

<djahandarie> and you better plea, that they take sucky graduates from c-s-e

<http402> Time to bend over and apply a patch,

<http402> Your brain's throwing static like a CD with a scratch.

<http402> Your connection got nuked and you've met your match.

<http402> You run a single process like a VAX with a batch.

<http402> I'd pass the torch to a real winner

<http402> But it'd just scorch a while-loop spinner

<http402> Caught in a loop that you can't escape,

<http402> I run clock cycles around your words and flows,

<http402> Cuz your rhyme is like a PS fan: it blows,

<http402> Your water-cooled lyrics leak and it shows,

<http402> Take your ass back to alt.paid.for.windows.

<djahandarie> Good god, I can't even respond to that. :p

<djahandarie> You win haha

* http402 takes a bow

 

«I have always wished that my computer would be as easy to use as my telephone. My wish has come true. I no longer know how to use my telephone.» – Bjarne Stroustrup

 

«I’m reminded of the day my daughter came in, looked over my shoulder at some Perl 4 code, and said, ‘What is that, swearing?’» – Larry Wall

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