Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  21 1859
Hei,
kort om min bakgrunn innanfor koding og programmering:
I ungdommen lærte eg HTML, CSS, JS og litt PHP, laga diverse sider, fekk selt ei side til ei mindre bedrift.

Fikla også litt med enkel C++, og kompilerte små program som eg kjørte i kommando-vindauge.

Har no fullført IT Grunnkurs på NTNU der vi har lært ein del MATLAB; eit skriptspråk basert på C.

Så kjem spørsmålet: Vil no halde fram å kode litt på fritida, og då helst med moglegheit til å lage program med eit grafisk grensesnitt. Ser føre meg at det berre blir til Windows, men vil helst lage programfiler som ikkje er avhengige av ulike libraries ala .net.

Så input på kva språk eg bør velge er kjærkomen.
Java er visstnok et morsomt språk. Har ikke mye erfaring med det. Det har litt kule anvendelser (android-apps osv.)
Hero of Time
bronze's Avatar
Trådstarter
Har tenkt litt på java, men har litt fordommar mot at det er så ressurskrevjande i forhold til andre språk.. Ikkje at det vil ha noko å seie for mine småprogram selvfølgeleg. Hmm, android-apps ja, der sa du noko! Skal vurdere det sterkt, men vil gjerne ha litt meir input.

P.S: Ein av grunnane til at eg har ei førestilling om at java er ressurskrevjande, er at minecraft krev ein halvvegs god PC for å køyre glatt med lang fog (view range), sjølv om det ser ut som eit spel frå 1998.
At det er så ressurskrevende i forhold til andre språk gjelder ikke i like stor grad som før. Et godt skrevet java program er en god konkurrent til et tilsvarende C++ program.
Java er ikke så veldig tregt sammenlignet med andre språk: http://shootout.alioth.debian.org/u3...re-fastest.php

Jeg forslår Java eller Python. Begge to er mer høynivåspråk en C++. Ulempen er at de er tregere, men fordelen er at det går raskere å programmere. Dette gjelder spesielt Python.

Hvis du vil prøve noe helt annerledes for moro skyld kan du prøve et funksjonelt programmeringsspråk som f.eks. Scheme.
Sitat av bronze Vis innlegg
P.S: Ein av grunnane til at eg har ei førestilling om at java er ressurskrevjande, er at minecraft krev ein halvvegs god PC for å køyre glatt med lang fog (view range), sjølv om det ser ut som eit spel frå 1998.
Vis hele sitatet...
Minecraft lagger fordi det visstnok er dårlig optimalisert kode. Ikke at det er så farlig, det kjører jo tross alt greit på de fleste maskiner.
Det er sant av java er tregere enn c++, men skal du virkelig lage et 3d-spill som kommer til å ha det problemet?
Java er absolutt fint det, anbefales.
Jeg vil nå si at C#, gjerne med ASP.NET, ikke er noe du heller bør skyve helt fra deg. Det er noe av det mer sexy jeg har vært borti; spesielt om du skal kode for web.
sindre@puse.cat:~$
Synderen's Avatar
Det med valg av programmering språk når man ikke har en spesiell oppgave som skal utføres, er rett å slett smak og behag. Java og Python er begge gode språk der man har et hav av ressurser et par Google søk unna, og de begge har et godt utvalg av tredjeparts biblioteker. Selv synes jeg Java er et gørr kjedelig språk, og jeg bruker det bare når jeg må i skole sammenheng.
Selv synes jeg Python og C er gøye språk, Python er gøy fordi det går så fort å produsere et godt og bra produkt på en stilig måte. Med C er det alltid noe nytt å lære om selve datamaskinen, og hvordan ting fungerer på et mye laver nivå. I C har man ikke alle tingene som stopper deg i å begå feil som i språk som Java og Python der du er skjermet for mye grums. Det gjør C litt mer utfordrerne for min del, noe som jeg finner underholdende på en rar måte, det hjelper meg også å være mer fokusert på hva jeg faktisk gjør.
Java eller C#. Fordel med Java er dens platform-uavhengighet og korte vei til forståelse av C-familien, (samt Android som noen her har nevnt). Last ned Eclipse og Google's WindowBuilder Pro for Java så produserer du GUI-applikasjoner kjapt og smertefritt.
Sitat av bronze Vis innlegg
Har no fullført IT Grunnkurs på NTNU der vi har lært ein del MATLAB; eit skriptspråk basert på C.
Vis hele sitatet...
Har aldri hørt MATLAB omtalt som et skriptspråk. Det er et såkalt 4G-språk, et fjerdegenerasjonsspråk, og et miljø for numeriske beregninger. Å si at det er basert på C blir også feil, men det er skrevet i C (og Java). Ville bare oppklare.

Når det gjelder valg av språk: Hvis du ikke vil bruke .NET så kan jeg ikke skjønne at du vil bruke JVM heller, og dvs. at Java utgår.

Ellers var rådene du har fått her svært enkle å forutse - det er de samme rådene du får uansett hvordan du spør, fordi folk stort sett anbefaler det de selv kan. Sånn er det bare.

Vil du bli litt inspirert, og se litt mer av hva du har å velge blant, anbefaler jeg adventskalenderen jeg har kjørende, hvor jeg tar for meg 24 språk på 24 dager. Du vil ikke se Java, C# eller Python der, men et vidt spekter av muligheter.

PS: Hvis fokuset ditt er utvikling for windows ville jeg personlig anbefalt .NET, og da typisk C#. Men det er ikke designet for hobbyprogrammering, og et scriptspråk som Python eller Ruby ville nok vært mer hensiktsmessig (men det hjelper deg ikke så mye i forhold til å lage f.eks. GUI).

PPS: Jeg trodde Java var iferd med å kollapse av sin egen vekt. "Enterprise" har sluttet å bruke Java, men det finnes mye annet bra på JVM. Groovy for eksempel. Og Scala, selv om sistnevnte har fått seg noen skudd for bauen i det siste..

PPPS: Men Ruby eller Python har du valgt et språk som du kan bruke både på .NET (IronRuby og IronPython), på JVM (JRuby og Jython), og "selvstendig". Det kan være en stor fordel!
Er verdt å poengtere at NTNU fortiden prøver å introdusere Python til mange fag fordi det er gratis og har mange nyttige biblioteker for ingeniørfag. Ellers er jo Java (som jeg personlig synes er et vannvittig kjipt fag, som heldigvis er på tilbakegan) og C# modne alternativer med mye tilgjengelig informasjon og biblioteker. Ruby er jo også et alternativ, men er langt mindre utbredt til vitenskaplig programmering slik Python er, men er til gjengjeld mer poppis til webting.

I bunn og grunn har det ikke så voldsomt mye å si hva du lærer deg. Jeg ville kanskje til og med vurdere å lære meg C, siden det antagelig er det viktigste programmeringsspråket som finnes når det kommer til høy ytelse, utbredelse og kontroll over maskinvare. Hvis du noensinne skal skrive drivere, mikrokontrollerkode, høyeffektiv kode, moduler til andre språk og plattformer (matlab, unix, python), parallel kode (MPI/OpenMP/CUDA) så er det ikke egentlig mange fullgode alternativer. I tillegg vil jeg påstå at grundig C-erfaring vil være ekstremt nyttig senere i livet, siden du vil ha mye bedre forståelse av konsepter mange høynivåprogrammerere ofte ignorerer. Minneallokering, pekere (call by reference/call by value), minnesykler og forståelse av datastrukturer er ikke noe man trenger å huske på hele tiden mens man koder mer høynivåspråk, men de gangene man burde tenke på det vil det fort ha katastrofale konsekvenser å ikke forstå hva man driver med.

Svært mange språk har også knabbet store deler av C til sine egne varianter, deriblant alle språkene som blir nevnt i åpningsposten. Å kunne C er som å kunne latin - du vil ha et godt grunnlag for å lære alle andre moderne språk og du kan bli med i hemmelige organisasjoner som går med kapper og styrer verden.

Sitat av ivioynar Vis innlegg
Å kunne C er som å kunne latin - du vil ha et godt grunnlag for å lære alle andre moderne språk
Vis hele sitatet...
Dette er egentlig et bedre argument for å lære seg Lisp.
Hero of Time
bronze's Avatar
Trådstarter
Sitat av tormaroe Vis innlegg
Har aldri hørt MATLAB omtalt som et skriptspråk. Det er et såkalt 4G-språk, et fjerdegenerasjonsspråk, og et miljø for numeriske beregninger. Å si at det er basert på C blir også feil, men det er skrevet i C (og Java).
....
....
Vis hele sitatet...
Du har openbert meir peiling enn eg. Grunnen til at eg omtalte det som eit skriptspråk var fordi eg såg etter ei skildring av språket på wikipedia.
Sitat av Wikipedia
MATLAB (Matrix Laboratory) er et omfattende matematikkprogram med eget scriptspråk basert på C
Vis hele sitatet...
Når det gjeld at eg ikkje ville bruke .NET o.l. så ser eg at dette kanskje var litt ubegrunna. Det eg i bunn og grunn vil er å byrje på eit språk der det ikkje er altfor vanskeleg å lage små program (med GUI) som andre kan køyre, utan å trenge å innstallere ein drøss med libraries, og som er Windows-kjørbare (.exe ol.).

Sjølv om eg noterar blanda erfaringar ift. Java, er det dette eg heller mest mot fordi eg trur det blir lettare å halde interessa oppe når eg samtidig kan lage apps til telefonen min (android). Som ein god nummer to kjem Python, som eg ser blir anbefalt nesten uansett kor ein spør.
Sitat av bronze Vis innlegg
i bunn og grunn vil er å byrje på eit språk der det ikkje er altfor vanskeleg å lage små program (med GUI) som andre kan køyre, utan å trenge å innstallere ein drøss med libraries, og som er Windows-kjørbare (.exe ol.).
Vis hele sitatet...
Høres ut som om det er .NET du ønsker spør du meg.

Hva med å gå for IronPython da, Python på .NET ?! Med din bakgrunn vil det nok være lettere å sette seg inn i C#, og da har du bedre verktøy også, men er du interessert i Python er det ingen grunn til å la være å se på det..
Hero of Time
bronze's Avatar
Trådstarter
Sitat av tormaroe Vis innlegg
Høres ut som om det er .NET du ønsker spør du meg.

Hva med å gå for IronPython da, Python på .NET ?! Med din bakgrunn vil det nok være lettere å sette seg inn i C#, og da har du bedre verktøy også, men er du interessert i Python er det ingen grunn til å la være å se på det..
Vis hele sitatet...
Då blir det IronPython først. Dvs. eg kjem først til å sette meg inn i syntax og kodeskikk gjennom å lese ein del foilar frå NTNU. Når eg så kjem opp til eit visst nivå, vil eg byrje å sjå på korleis eg får nytta GUI.
En del info GUI løsninger i denne posten,jeg tar litt om GUI i python.
http://freak.no/forum/showthread.php?t=171603
Pyside er også en god nyhet for python,da slipper man lisens krangel med Nokia viss man noen gang kommer så langt som og gi ut noe.
Hero of Time
bronze's Avatar
Trådstarter
Har no laga eit tre-på-rad-spel som fungerer ganske bra. Språket er lett å sette seg inn i, kanskje fordi eg kjem frå matlab som er ganske likt. Dei to frustrasjonane hittil er at ein ikkje kan lagre "ekte" tabellar, kun lister inne i lister, samt at eg heile tida gløymer å skrive kolon etter def, if, else, while, for osv.

Men eg klarer uansett å representere tabellar ved lister i lister, så det er vel berre tilvenning. For augneblinken gjer eg gamle matlab-øvingar frå NTNU i python.

Edit: Kanskje nokon har interesse av at eg legg ved koda til tre-på-rad-spelet:

Kode

# -*- coding: UTF-8 -*-

def tellPlasser (tabell):
	antal = 0
	dimsn = len(tabell)
	
	for x in range(0,dimsn):
		antal = antal + tabell[x].count(0)
	
	return antal

def erVinner (tabell,symbol):
	dimsn = len(tabell)
	vinn = 0
	
	tabell2 = zip(*tabell)
	
	for x in range(0,dimsn):
		if (tabell[x][0] == symbol) and (tabell[x][1] == symbol) and (tabell[x][2] == symbol):
			vinn = 1
		elif (tabell2[x][0] == symbol) and (tabell2[x][1] == symbol) and (tabell2[x][2] == symbol):
			vinn = 1
	
	if (tabell[0][0] == symbol) and (tabell[1][1] == symbol) and (tabell[2][2] == symbol):
		vinn = 1
	if (tabell[0][2] == symbol) and (tabell[1][1] == symbol) and (tabell[2][0] == symbol):
		vinn = 1
	
	return vinn

def printBoard (tabell):
	print
	for x in range(0,3):
		for y in range(0,3):
			print tabell[x][y],' ',
		print '\n'
	print
	
tabell = [3*[0],3*[0],3*[0]]

print 'Spelet er tre på rad. Spelar med symbol X skal starte'

printBoard(tabell)

vinnar = 0

while not vinnar:
	x_pos = raw_input('Skriv kor du vil sette kryss. Skriv kva rad, eit mellomrom, og kva kolonne: ')
	if (tabell[int(x_pos[0])][int(x_pos[2])] == 0):
		tabell[int(x_pos[0])][int(x_pos[2])] = 'X'
	
	if (tellPlasser(tabell) == 0):
		break
	elif (erVinner(tabell,'X')):
		vinnar = 1
		break
	
	printBoard(tabell)
	
	o_pos = raw_input('Skriv kor du vil sette sirkel. Skriv kva rad, eit mellomrom, og kva kolonne: ')
	if (tabell[int(o_pos[0])][int(o_pos[2])] == 0):
		tabell[int(o_pos[0])][int(o_pos[2])] = 'O'
	
	if (tellPlasser(tabell) == 0):
		break
	elif (erVinner(tabell,'O')):
		vinnar = 1
		break
		
	printBoard(tabell)

printBoard(tabell)
	
if vinnar == 1:
	if (erVinner(tabell,'X')):
		print 'Spelar X vann!!'
	else:
		print 'Spelar O vann!!'
else:
	print 'Ingen vann!!'
Sist endret av bronze; 11. desember 2011 kl. 01:06.
Men eg klarer uansett å representere tabellar ved lister i lister, så det er vel berre tilvenning. For augneblinken gjer eg gamle matlab-øvingar frå NTNU i python.
Vis hele sitatet...
Ettersom du løser oppgaver som er beregnet for matlab og siden du tidligere har bekymret deg for kjøretid vil jeg anbefale deg å bruke numpy. Her har du en introduksjon til numpy biblioteket beregnet for tidligere matlab brukere: http://www.scipy.org/NumPy_for_Matlab_Users
Nå ble det jo poengtert at NTNU for tiden visstnok underviser i python. Har du sjekket om de har noen oppgaver for det liggende ute?
Hero of Time
bronze's Avatar
Trådstarter
Sitat av brunost Vis innlegg
Nå ble det jo poengtert at NTNU for tiden visstnok underviser i python. Har du sjekket om de har noen oppgaver for det liggende ute?
Vis hele sitatet...
Det har dei, men grunnen til at eg gjer matlab-øvingar, er at eg har gjort desse tidlegare når eg lærte matlab. På denne måten kan eg samanlikne det eg har gjort i matlab med det eg gjer i python, som kanskje kan vere kjekt? I alle høve er det kjekt å ha fleire oppgåver tilgjengelege, om det skulle bli naudsynt.

@Akinakes: Skal sjå på det. Takker.

Spørsmål: No har eg allereie rukke å lest gjennom alle foilane frå NTNU sin introduksjon til python. Eg kjem til å halde fram med å lære python, men kor er den beste staden å lære .NET? Planen er altså å fortsette med IronPython ei stund for å kunne lage enkle program med GUI, men eg har aldri vore borti verken Visual Basic, .NET eller C#.
Du må installere Visual Studio Express + Python Tools for Visual Studio. Fullstendig API-dokumentasjon for .NET finner du her (der er SVÆRT).

Hovedsiden for å komme igang med .NET er http://msdn.microsoft.com/en-us/bb188199

Alt om WinForms og WPF (dvs GUI) finner du på http://windowsclient.net/

Alt om ASP.NET (dvs webutvikling) finenr du på http://www.asp.net/

Alt om Silverlight (dvs mobile, RIA osv.) finner på på http://www.silverlight.net/

Her har du en haug med IronPython sample apps.
Hvis du går gjennom øvingsopplegget i itgk kan du jo også se på pythonxy, som har et matlab-lignende miljø.
http://code.google.com/p/pythonxy/