knutinh Skrevet 25. juli 2017 Del Skrevet 25. juli 2017 Takk for kommentar. Det høres ut som om vi har veldig overlappende behov. Det siste året har jeg byttet ut Matlab med Python/Numpy/Scipy for mine signalbehandlings- og algoritmebehov (hovedsaklig RF- og FPGA-greier). Mitt inntrykk er at Python-svarene jeg finner på Google og SO er av høyere kvalitet enn Matlab-svarene på de tilsvarende sidene. Jeg mistenker at dette kan komme av at Matlab-spørsmål også blir besvart gjennom lukket support.Uansett så er jeg fornøyd med Spyder IDE'en og visualiseringsmulighetene med matplotlib. Matplotlib er riktignok et hakk eller to treigere enn Matlab på store datasett, men jeg klarer stort sett å holde meg under den merkbare grensen. Og hele miljøet du trenger får du gjennom f.eks Anaconda.Hvis du tar en kikk på Numpy for Matlab-brukere, ser du fort at det i mange tilfeller er en 1-til-1-mapping mellom Matlab- og Numpy-funksjonalitet. Dette gjør det veldig enkelt å porte Matlab til Python.For meg er det to enorme fordeler med Python fremfor Matlab:- Python er et langt mer elegant språk enn Matlab. For meg virker det som at Matlab ikke klarer å bli kvitt eldgammelt rusk fra fortiden, og det gjør hele språket til et stort lappeverk av rare funksjoner, klønete syntaks og ulogisk oppførsel.- Det er noen quirks med Python også. Hvor mange år har man slitt med 2.7 vs 3.x? Matlab har et stort antall funksjoner, og det er helt klart et tveegget sverd. Det betyr at rask binærkode finnes for ting som er vanskelig å uttrykke effektivt med blas & co, men det betyr også at utvikleren må kjenne til funksjonen. Jeg liker at C-manualen er en tynn blekke sammenlignet med dokumentasjonen til C++. For kjerne-funksjonen (det du må skrive for å kunne kompilere vhdl og c-kode automatisk, embedded matlab) er MATLAB etter mitt biased syn vel så kompakt og strukturert som numpy der hvor de er forskjellig - som rett nok ikke er så ofte). Det jeg skriver i Python kan mye lettere deles med andre siden mottaker ikke er avhengig av dyr programvare. Og jeg kan også enklere utvikle off-site uten å styre med lisensserverene på jobb. Og dette er et stort problem med MATLAB. Jeg vil at alle vitenskaplige publikasjoner som benytter custom beregninger/datasett/visualisering av noe slag (som vel er de fleste) skal publisere kildekode og datasett i størst mulig grad slik at enhver kan trykke på "play" for å gjenskape grafer og tabeller som påvirker konklusjonen. Om beregningen tar 3 minutter eller 30 er mindre interessant, men man bør ha et stabilt rammeverk som gir samme resultat om 30 år, selv om datamaskiner blir 128-bit, Linus Torvalds begynner med rosedyrking og Mathworks konker. Lisenskravet er et kraftig argument mot å bruke matlab til dette. Så også at 10 år gammel Matlabkode ikke nødvendigvis kjører i dag, evt kjører men gir et annet resultat. Når jeg utvikler er jeg stort sett ikke begrenset av kjøretiden på det jeg skriver Det sammenfaller med slik jeg bruker MATLAB. Og hvis noe tar for lang tid så kan jeg alltids mekke noe mex kode i C for en liten subfunksjon. En morsom bonus: det er mulig å breake koden i MATLAB, steppe inn i kompilert mex fil, og så fortsette steppingen i (eksempelvis) Visual Studio i C-koden. -k Lenke til kommentar
knutinh Skrevet 25. juli 2017 Del Skrevet 25. juli 2017 (endret) Uansett, poenget er at det er tullete å krangle om hvilket språk som er best. Jeg ser ingen som krangler, jeg ser argumenter. Livet har bare så mange timer, og det tar tid å bli god nok i et språk til å vurdere om språket egner seg for deg. Derfor settter jeg pris på innspill fra dere som kan mer om f.eks. Fortran og Julia enn meg selv.Det handler om personlige preferanser og hva man forsøker å gjøre. Hvis dere bare behersker ett språk, eller nekter å bruke noen språk, så går dere glipp av veldig mye. Slike programmerer anser jeg ikke som veldig gode. Man burde kunne bruke et hvilket som helst språk hvis man må.Sweeping statements om hvem som er "gode programmerere" og hvem som ikke er det anser jeg som temmelig uproduktivt. Jeg har jobbet i noen år uten å være i nærheten av en database eller et Javascript. Jeg er helt sikker på at noen da vil stemple meg som en "dårlig programmerer". Det tar jeg med knusende ro så lenge jeg har en interessant jobb og kan betale husleie og mat. Poenget er at det finnes utrolig mange måter å gjøre seg nyttig og brødfø seg. Noen er generalister, andre spesialister. Noen er "spesialist" i så måte at de bare skriver kode (i et hvilket som helst språk). Andre er "generalist" ved at de kan skrive C++ kode men også løse diff ligninger, lodde, drifte, lede, selge eller noe annet fint. -k Endret 25. juli 2017 av knutinh Lenke til kommentar
Flin Skrevet 25. juli 2017 Del Skrevet 25. juli 2017 Jeg har jobbet i noen år uten å være i nærheten av en database eller et Javascript. Men hvis du en dag skulle få bruker for databaser så hadde du fått det til. Du hadde ikke fått panikk. Og jo jeg mener det er krangling, det er den samme "diskusjonen" som alltid oppstår. Litt på samme måte som tabs vs spaces. Lenke til kommentar
Gjest Slettet+5132 Skrevet 25. juli 2017 Del Skrevet 25. juli 2017 Og jo jeg mener det er krangling, det er den samme "diskusjonen" som alltid oppstår. Litt på samme måte som tabs vs spaces. Jeg ville påstå debatten har vært ganske sivilisert. Du finner aldri det perfekte programmeringsspråket, men det er greit å diskutere fordeler og ulemper med hvert av dem. Det virker som om de fleste deltakere har tatt ganske bevisste valg av programmeringsspråk for sitt bruk, men det skader aldri å bli påminnet om svakheter med akkurat det valget og andre muligheter tilgjengelig. Lenke til kommentar
endrebjo Skrevet 25. juli 2017 Del Skrevet 25. juli 2017 Det er noen quirks med Python også. Hvor mange år har man slitt med 2.7 vs 3.x?Du har helt rett i at overgangen fra Python 2 til 3 ble altfor rotete. I mine øyne var det likevel en nødvendig overgang, og det er en tilsvarende opprenskning jeg mener Matlab behøver. Uansett trenger du ikke å tenke mer på Python 2 i dag. Alt du trenger finnes i Python 3, og Python 3 er godt støttet i alle oppdaterte OS (inkludert gamle travere som RHEL/CentOS 6 gjennom EPEL). Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå