Avatar billede Daniel.E Praktikant
11. august 2005 - 16:52 Der er 14 kommentarer og
1 løsning

Python og fremtiden ?

Kan det betale sig at lære Python ??

Bliver de stadigvæk understøttet på de forskellige Linux disp. ??

Er det hurtigt ??
Avatar billede arne_v Ekspert
11. august 2005 - 17:07 #1
Det har aldrig været et vildt udbredt sprog - forvent ikke at se
20 job opslag op www.jobworld.dk som efterlyser Python kunnen

Men man bliver altid klogere af at lære et sprog

Python er så vidt jeg ved fuldt supporteret på Linux (om den kommer med
distributionen må afhænge af hvilken distribution det er)

Jeg har aldrig målt på Pythons hastighed - jeg vil formode at det er
langsommere end traditionelt compilere sprog og de store JIT sprog
(Java og .NET)

Ikke et problem efter min mening - de ting man bruger Python til tror jeg
sjældent er CPU intensive
Avatar billede bertelbrander Novice
11. august 2005 - 19:34 #2
Det er bestemt værd at lære et script sprog som f.ex. python.

Python er meget udbredt og man kan få rigtig mange biblioteker til python. Jeg er ret sikker på at python vil overleve mange år endnu.
Man kan også lave GUI med python, f.ex. med wxPython, der er wxWidgets til python.

De ting man normalt vil lave i python er ikke tunge applikationer. Hvis man har brug for at arbejde med tunge applikationer kan man lave et bibliotek i f.ex. C++ og bruge det fra python.

Du kunne også overveje Ruby. Det er et nyere sprog med nogle nyere features, men der findes ikke helt så mange biblioteker til det.
Avatar billede arne_v Ekspert
11. august 2005 - 20:32 #3
jeg skulle lige prøve

jeg har et stykke number crunching kode jeg bruger til at måle
compiler hastighed med

jeg porterede fra C til Python og fik

C      :  4 sekunder
Python : 594 sekunder

så min formodning var rigtig

men ingen vil bruge python til at lave en milliard beregninger

[sig til hvis I vil se koden]
Avatar billede simonvalter Praktikant
11. august 2005 - 20:53 #4
det vil jeg da godt se.
Avatar billede arne_v Ekspert
11. august 2005 - 20:57 #5
#include <stdio.h>
#include <time.h>

const int N = 1000000000;

int main()
{
  int i, sum;
  time_t t1, t2;
  t1 = time(NULL);
  sum = 0;
  for(i = 0; i < N; i++) {
      sum = ((sum + 1) * 2 + 1) / 2;
  }
  t2 = time(NULL);
  if(sum != N) {
      printf("Error\n");
  } else {
      printf("%d operations in %d seconds", N, t2 - t1);
  }
}
Avatar billede arne_v Ekspert
11. august 2005 - 20:57 #6
import time
N = 1000000000
sum = 0
t1 = time.time()
i = 0
while i < N:
  sum = ((sum + 1) * 2 + 1) / 2
  i = i + 1
t2 = time.time()
if sum != N:
  print "error"
else:
  print "%d operations in %d seconds" % (N, t2 - t1)
Avatar billede arne_v Ekspert
11. august 2005 - 21:05 #7
(koden er den jeg bruger i http://www.eksperten.dk/artikler/67)
Avatar billede simonvalter Praktikant
11. august 2005 - 22:21 #8
10000000 operations in 55 seconds med ruby
10000000 operations in 23 seconds med python

Men ruby er et rart sprog som der også er rimlig meget hype omkring for tiden pga ruby on rails frameworket.
Det minder mig meget om python, men jeg bryder mig ikke om indent til at forme blokke hvor ruby har "end"
Avatar billede Daniel.E Praktikant
30. august 2005 - 08:32 #9
Sorry.. for meg4et arbejde..  smid et svar alle
Avatar billede arne_v Ekspert
30. august 2005 - 08:43 #10
.
Avatar billede simonvalter Praktikant
30. august 2005 - 08:44 #11
jeg springer over
Avatar billede dustie Mester
02. oktober 2005 - 14:40 #12
Nu er ideen jo heller ikke at Python skal overtaget den plads C og C++ har. Derfor kan man heller ikke "bare" teste hvor hurtigt det er på den måde der. En af Pythons stærke sider er jo netop at selvom det er langsommere end C at køre, så er det langt hurtigere at programmere noget i end C.

Så heller sammenligne det med fx. Perl hvilket ville være mere rimeligt. Der vil Python efter min mening klart være at foretrække. Især hvis det er til mere end 100 linier kode.
Avatar billede dustie Mester
03. oktober 2005 - 02:43 #13
Og med en JIT compiler compiler som Psyco:
<snip>
"Benefits: 2x to 100x speed-ups, typically 4x, with an unmodified Python interpreter and unmodified source code, just a dynamically loadable C extension module."
</snip> (psyco.sourceforge.net)

C har sine gode sider, det samme her Python. Men man kan ikke sige det ene er bedre end det andet. Det kommer jo helt an på hvad man skal bruge det til.
Avatar billede arne_v Ekspert
03. oktober 2005 - 09:13 #14
dustie>

Jeg synes da at vi fik dækket din pointe allerede tilbage i August.
Avatar billede bauerdata Nybegynder
25. april 2007 - 01:22 #15
obs psyco.

Test viser faktor 10+ med senest pscyco.

http://www.databassen.dk:8090/bauerdata/python-program-eksempler/performance.py/

output:
first run without optimize
python:    100000000 operations in 44 seconds
then run with optimize
python:    100000000 operations in 3 seconds

Performance er jo altid interessant.
Pris Performance er også interssant.

cpu bliver billigere og billigere
programmører bliver dyrere og dyrere.

skriv 100.000 linier kode i c og vedligehold dem.
  coredump, index out off range , dangling pointers, memory leak, laaange kompileringer.
  evige diskussioner om indrykniger og kodnigs standard. gab

skriv  75.000 linier kode i python og vedligehold dem.
  læsbart , standardiseret indrykning, ingen lange kompileringer :-)

Er der performance problemer
  1. start med psyco
  2. køb en server mere til 12.000 eller stop flere cpuer ind i kassen.

Hvad der er sparet er tjent :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester