mboost-dp1

Dit foretrukne programmeringssprog?


Gå til bund
Gravatar #51 - Wikzo
30. sep. 2007 09:04
Efter at have set denne afstemning er jeg blevet interesseret i at lære noget af alt denne hersens programmering. Jeg kender absolut intet til det på nuværende tidspunkt, men det vil da være lidt sjovt at lære noget ganske simpelt.

Hvilket sprog kan I anbefale (så simpelt og let som muligt), og hvilke guides/bøger? :)

Har ingen intentioner om at lære noget af det helt store, men kunne godt tænke mig at grave lidt dybere ned i computerprogrammernes koder og se, hvordan de fungerer.
Gravatar #52 - Procsus
30. sep. 2007 09:16
Jeg kunne oze godt tænke mig at høre, hvad I (gosu/1337/sygK0) programmører ville foreslå som et startersprog, sårn en - 'start med den, så den, så den etc.-liste'. :D
Gravatar #53 - Wikzo
30. sep. 2007 09:33
Jeg har fundet frem til en hjemmeside - Javabog.dk - og har netop reserveret et eksemplar af bogen (kan bedst lide at have manualer/bøger i fysisk form) på biblioteket.

Kan I anbefale Java og Javabog.dk?
Gravatar #54 - myplacedk
30. sep. 2007 09:59
#50
Nej, der er ikke generelle performance-problemer med Java. Bare så folk der ikke har forstand på det, går ud fra at din joke ikke er baseret på et ikke-sandt faktum. :)
Gravatar #55 - myplacedk
30. sep. 2007 10:12
#51
Hvilket sprog kan I anbefale (så simpelt og let som muligt), og hvilke guides/bøger? :)

Det kommer helt an på hvad det skal bruges til. Hvis du alligevel ikke gider gå i dybden med programmering, kan du jo prøve at lege med Javascript i hjemmesider. Jeg har set flere fine små værktøjer lavet som HTML og Javascript, i en fil der ligger lokalt.

#52
Jeg kunne oze godt tænke mig at høre, hvad I (gosu/1337/sygK0) programmører ville foreslå som et startersprog, sårn en - 'start med den, så den, så den etc.-liste'. :D

Hvis du ikke har planer om at blive übergeek eller prof. programmør, synes jeg du skal vælge ét sprog, og holde dig til det. Når du har lært det er det langt nemmere at lære andre sprog (det er programmering og systemudvikling der er udfordringen, ikke sproget), men der er ingen grund til at lære et sprog med det ene formål, at kassere det når du har lært det.

#53
Kan I anbefale Java og Javabog.dk?

Ja til begge dele.

Jeg synes Java er et rigtigt godt sted at starte, hvis man vil studere programmering på et seriøst plan. Først og fremmest er Java strengt objekt-orienteret og typestærkt. Det gør det en anelse sværere at komme i gang, men det tvinger dig mere til faktisk at lære at programmere, i stedet for bare at klaske noget sammen der aldrig bliver godt.

Men Java har også nogle politiske/religiøse/frihedsmæssige fordele frem for fx. Microsofts produkter. Mange er ligeglade med dette punkt, mens andre mener at dette alene er nok til ikke at røre C# osv.

Java kan bruges til alt fra små konsol-programmer over GUI desktop-programmer og op til enterprise-applikationer, webapplikationer, selv mobil-telefoner kan programmeres med Java.

Og hvis du vil leve af det, er det vist ikke så svært at få et job. Fx. på min arbejdsplads hyrer vi vist al kvalificeret arbejdskraft for tiden.

Jeg kan i øvrigt anbefale at bruge Eclipse når du progammerer. Men brug evt. Notepad el. lign. til det første program eller to, så har du en ide om hvad det er Eclipse gør for dig.
Gravatar #56 - henrikmk
30. sep. 2007 10:55
Jeg foretrækker REBOL.
Gravatar #57 - zin
30. sep. 2007 11:44
#54:
Faktum er desværre at Java af logiske årsager er teoretisk langsommere, eftersom oversættelsesprocessen går fra Java til JVM til maskinkode som så bliver afviklet på CPU'en, hvor de fleste andre platforms-afhængige sprog går direkte fra denne form til maskinkode. Java vil derfor aldrig blive så hurtigt som et andet platforms-afhængigt sprog*.
Men med nudagens CPU'er og RAM hastigheder er det ikke noget man mærker.


*:
Bemærk: Denne samligning er i tilfældet at en person programmerer en optimal løsning (eller den værste løsning) overhovedet i begge sprog - så vil Java være langsommere. Hvis dette ikke mødes vil det være ligegyldigt (antaget at den dårlige løsning ikke ligger i Java ellers betyder det selvfølgelig en hel del!).
Ydermere, med platforms-afhængig mener jeg f.eks. C++, C eller lignende som man normalt ikke bare kan skrive og compilere i f.x. linux og så flytte til en PPC eller SPARC-baseret computer.

Men joken er god uanset! ;)
Gravatar #58 - Acro
30. sep. 2007 12:12
Lad være med at vælge Java for at komme i gang. Det skal også kunne bruges bagefter, og der er man altså noget begrænset med Java. Hvor mange steder er det lige, man kan få hostet JSP? Jeg gætter på, at selv Ruby hostes hos flere udbydere. Swing er også elendigt at lave brugerflader i og med, og så giver Java-applikationer aldrig den samme oplevelse som en integreret Win32-applikation (eller GTK under Linux).

Hvis man skal starte med noget objektorienteret, vil jeg klart anbefale C#. Det minder syntaktisk om Java, men mange af de ting, man kan brokke sig over at mangle i Java, er integreret i C#. Ser man bort fra religiøse fantaster, vil jeg vove at påstå, at C# er et noget bedre sprog end Java, fordi det netop udvider det. Det har også et godt framework bag, hvor der er meget stor udvikling. Java har også et kæmpe framework, men det er af meget svingende kvalitet og på grund af alderen, er der mange ting, der er i biblioteket, men der frarådes at anvende.

Med hensyn til hosting, brugerflader til Windows-applikationer og meget andet, er .NET et langt bedre valg end Java. Platformsuafhængighed får man også, hvis man kører Mono på Linux, og det fungerer faktisk forrygende.
Gravatar #59 - myplacedk
30. sep. 2007 12:20
#57
Faktum er desværre at Java af logiske årsager er teoretisk langsommere,

Ham der betaler for CPU-tiden er ligeglad med teorien, især når den er så hullet.

eftersom oversættelsesprocessen går fra Java til JVM til maskinkode som så bliver afviklet på CPU'en,

Oversættelsen fra Java-kildekode til Java bytecode sker én gang for alle, og har ingen betydning for performance overhovedet.
Oversættelsen fra bytecode til native bliver forhåbentligt cachet af JIT-compileren

Det store API og oversættelse fra bytecode til native code ved opstart tager lidt tid. Men det er kun ved opstart, derefter er disse faktorer ligegyldige.

Til visse ting er C og C++ hurtigere. Java er ikke bedst til alt. Men du kan ikke afvise sproget fordi det generelt er langsomt, for det er det ikke. Slet ikke langsomt nok til at jeg kan se det sjove i joken, baseret på en så gammel og slidt skabelon.

In Soviet Russia, the jokes laughs at you! ;-)
Gravatar #60 - ysangkok
30. sep. 2007 12:22
Java, Erlang, Prolog, Lua, COBOL mangler klart IMHO.

Derudover skulle der have været en stemme til alle de esoteriske sprog. Mine faviritter er Piet, Shakespeare og Chef.

Jeg er ikke god nok til maskinkode for at forstå hvordan de virker, men jeg ved at det gør de.

Der er en meget god implementation af Piet som hedder "npiet". Den kan trace programmet som et billede så man kan se hvordan det virker. Meget interessant.
Gravatar #61 - myplacedk
30. sep. 2007 12:33
#58
Lad være med at vælge Java for at komme i gang. Det skal også kunne bruges bagefter, og der er man altså noget begrænset med Java. Hvor mange steder er det lige, man kan få hostet JSP?

Til under 100 kr. om måneden? Den den slags budgetter er Java ikke godt. Men hvis det er et job du tænker på, tror jeg din arbejdsgiver er ret ligeglad med om hjemmesiden koster 100 eller 1.000 kr/md at få hostet. Det er ikke engang én udvikler i én dag. Og er det bare et semi-seriøst Java-udviklingshus, har de da sine egne servere. Og det kan du klare uden software-udgifter, hvis du endelig vil vende 25-ørerne.

Swing er også elendigt at lave brugerflader i og med, og så giver Java-applikationer aldrig den samme oplevelse som en integreret Win32-applikation (eller GTK under Linux).

Det vil jeg så give dig ret i. Man kan sagtens lave fine GUI-programmer i Java, hvis Java-kompetencer er hvad man har. Men hvis GUI-softwaren er en meget central komponent, så er der sikkert bedre valg.

Hvis man skal starte med noget objektorienteret, vil jeg klart anbefale C#.

C# har klart en fordel ved at være nyere end Java. Som du selv siger, står Microsoft her på Suns skuldre.

Ser man bort fra religiøse fantaster,

Det kan godt være at C# er et bedre sprog end Java, men jeg bryder mig altså ikke om at blive kaldt en "religiøs fantast", bare fordi jeg ikke kan acceptere af frasige mig de friheder, Microsoft gerne vil have mig til.

Et af mine hovedargumenter imod C# er netop platformsafhængigheden. Jeg gider ikke en længere diskution om emnet, dem er der så mange af. Men hvis frihed og platformsuafhængighed betyder noget, så taler det for Java. Det er muligt du kan acceptere hvad C# kan tilbyde på disse punkter, men det gør det ikke bedre end Java.

Først og fremmest: Lad dog være med at påstå at Java ikke kan bruges til noget. Jeg fortæller netop at Java kan bruges til en hel masse (prøv lige at programmere en Nokia S40-telefon i C#), og at fx. min arbejdsgiver hyrer næsten hvem som helst der kan noget. Det er jo næsten at kalde mig en løgner.

Fair nok at du foretrækker C#, men tag lige og hold det objektivt.
Gravatar #62 - Spunkmeier
30. sep. 2007 12:41
#37:

Nu ikke så hurtig med at afskrive sprog som ML og LISP. Jeg fornemmer generelt en stigende interesse for funktionelle sprog, også i erhvervslivet.

Tjek f.eks. en jobannonce fra et Wall Street-firma:

"Experience with functional programming languages (OCaml, SML, Scheme, Haskell, Lisp, F#, Erlang, etc) is important. Applicants should also have experience with UNIX and a deep understanding of computers and technology."

Jeg synes det er forfriskende at se at kompetencer inden for disse sprog rent faktisk efterspørges.
Gravatar #63 - owrflow
30. sep. 2007 13:32
[,.]
OffTopic: hvorfor skal man mindst skrive 10 tegn?
Gravatar #64 - Acro
30. sep. 2007 13:40
myplacedk (#61) skrev:
Til under 100 kr. om måneden? Den den slags budgetter er Java ikke godt. Men hvis det er et job du tænker på, tror jeg din arbejdsgiver er ret ligeglad med om hjemmesiden koster 100 eller 1.000 kr/md at få hostet. Det er ikke engang én udvikler i én dag. Og er det bare et semi-seriøst Java-udviklingshus, har de da sine egne servere. Og det kan du klare uden software-udgifter, hvis du endelig vil vende 25-ørerne.

Hvis man skal lære det, så er det formentlig primært at interesse og for sjov. Så skal det også være muligt at hoste noget til en forholdsvis rimelig pris. Du har dog helt ret i, at når vi taler projekter, så er udgiften det mindste af det hele (og det gælder i øvrigt også licenser og tilsvarende), men nu lærer man nok heller ikke Java på hobbybasis for at blive ansat direkte derefter. Softwareudvikling er mere end at kunne kode, selvom mange udviklere ikke kan andet.

myplacedk (#61) skrev:
Det kan godt være at C# er et bedre sprog end Java, men jeg bryder mig altså ikke om at blive kaldt en "religiøs fantast", bare fordi jeg ikke kan acceptere af frasige mig de friheder, Microsoft gerne vil have mig til.

Et af mine hovedargumenter imod C# er netop platformsafhængigheden. Jeg gider ikke en længere diskution om emnet, dem er der så mange af. Men hvis frihed og platformsuafhængighed betyder noget, så taler det for Java. Det er muligt du kan acceptere hvad C# kan tilbyde på disse punkter, men det gør det ikke bedre end Java.

Først og fremmest: Lad dog være med at påstå at Java ikke kan bruges til noget. Jeg fortæller netop at Java kan bruges til en hel masse (prøv lige at programmere en Nokia S40-telefon i C#), og at fx. min arbejdsgiver hyrer næsten hvem som helst der kan noget. Det er jo næsten at kalde mig en løgner.

Hvad er det for nogle friheder? Nu nævnte jeg jo netop Mono i mit indlæg, så der er ikke noget at gøre med en afhængighed. Jeg kender en masse, der kører Mono til at drive bl.a. deres websted. Det fungerer fint. Jeg kender endnu flere, der kører f.eks. Ubuntu og har Mono-programmer kørende med GTK#-integration (Banshee, Tomboy og andre er endda ret populære værktøjer).

Ja, man kan ikke skrive programmer til S40 i C#, men nu handler det om at vælge det bedste sprog til opgaven. Ikke at fastlåse sig på et sprog og så bruge det til alle opgaver. Jeg kan sagtens skrive Java, hvis det er den bedste mulighed, men derfor behøver jeg ikke også vælge Java, når det ikke er det bedste valg. Man skal ikke se sig blind på sproget. Java er ikke det bedste til alt, selvom det kan køre på det meste; det virker endda som en ret logisk konsekvens.
Gravatar #65 - myplacedk
30. sep. 2007 14:18
#64
Hvis man skal lære det, så er det formentlig primært at interesse og for sjov. Så skal det også være muligt at hoste noget til en forholdsvis rimelig pris.

Java kan altså bruges til andet end hjemmesider. Jeg bruger det selv til rigtigt mange ting, og jeg savner ikke nogen "host" (og har ikke egen server).

Hvad er det for nogle friheder? Nu nævnte jeg jo netop Mono i mit indlæg, så der er ikke noget at gøre med en afhængighed.

Prøv at sammenlign licenserne. Jeg har ikke noget specifikt projekt i tankerne, og kan ikke pege noget specifikt ud, som generer mig nu og her. Dette er udelukkende fordi jeg ikke bruger det.

Kort sagt: Mono er en joke. Så længe Microsoft står bag C# får brugerne aldrig den frihed mindst én konkurrent kan give. Det er min påstand, og den står jeg ved.
Jeg skal ikke længere end til Wikipedia for inspiration til argumenter:

http://en.wikipedia.org/wiki/Mono_%28software%29
Mono’s implementation of those components of the .NET stack not submitted to the ECMA for standardization has been the source of patent violation concerns for much of the life of the project. In particular, discussion has taken place about whether Microsoft could destroy the Mono project through patent suits.

The concerns primarily relate to technologies developed by Microsoft on top of the .NET Framework, such as ASP.NET, ADO.NET and Windows Forms, i.e. parts composing Mono’s Windows compatibility stack. These technologies are today not fully implemented in Mono and not required for developing Mono-applications. Not providing patented capabilities would weaken interoperability,


Vi kan godt blive enige om at Richard Stallmann er lige entusiastisk nok, men essensen i hvad han står for er sådan set god nok. Og han siger:

Richard Stallman skrev:
Mono is a free implementation of Microsoft's language C#. Microsoft has declared itself our enemy and we know that Microsoft is getting patents on some features of C#. So I think it's dangerous to use C#, and it may be dangerous to use Mono. There’s nothing wrong with Mono. Mono is a free implementation of a language that users use. It's good to provide free implementations. We should have free implementations of every language. But, depending on it is dangerous, and we better not do that.


Hyg dig bare med C# og Mono. Eller C# og Windows. Eller whatever. Men Java er altså mere fri, og det kan JEG lide.

Ja, man kan ikke skrive programmer til S40 i C#, men nu handler det om at vælge det bedste sprog til opgaven.

Det var dig der indikerede, at Java ikke kan bruges til noget. Det tog mig 2 sekunder at finde på noget jeg bruger Java til, som C# ikke kan bruges til. (Ud over at passe mit job.)
Selvfølgelig vælger man det bedste sprog til opgaven, men der er jo ingen opgave her.

Java er ikke det bedste til alt,

Det er der vist heller ikke nogen der har påstået. Men det kan bruges til meget. Hvis du vil modargumentere det, så gør det dog, i stedet for blot at modsige det, og så argumentere for noget vi alle er enige om.
Gravatar #66 - zin
30. sep. 2007 15:16
#59:
Gamle, klassiske jokes har lov til at leve længere. :-)
At du ikke kan mærke ironien er ikke mit problem.
Som jeg også skrev så er den "langsomhed" som teoretisk set eksisterer i dag med Java så urealistisk lille og ubetydelig at det nærmest er latterligt.
Gravatar #67 - TullejR
30. sep. 2007 15:33
#58

Med Java kan man jo også lave grafiske brugerflader med Qt, der formentligt er det mest advancerede framework på området.
Fx hvor genialt er det ikke lige at man kan bruge css-lignende stylesheets??
Eller at Qt har et Clearlooks theme til Gnome, standard-theme til KDE, win 98/xp/vista themes og aqua-themes? Det ser hammer godt ud uanset hvor man bruger det :-)
Gravatar #68 - arne_v
30. sep. 2007 15:44
#57

Faktum er desværre at Java af logiske årsager er teoretisk langsommere, eftersom oversættelsesprocessen går fra Java til JVM til maskinkode som så bliver afviklet på CPU'en, hvor de fleste andre platforms-afhængige sprog går direkte fra denne form til maskinkode. Java vil derfor aldrig blive så hurtigt som et andet platforms-afhængigt sprog*.


Sikke noget sludder.

Hvis man lige erindrer at Java byte code kan decompiles, så er det basal logik at det argument ikke er sandt.
Gravatar #69 - zin
30. sep. 2007 18:24
#68:
Logikken er ikke sand, men argumentet er. At jeg ikke kan huske detaljerne fordi det er over et år siden jeg havde faget på universitetet er vel ikke min skyld? ^^,
Uanset hvad er det noget i den samme retning. Java-koden afvikles af den virtuelle maskine, som så igen afvikles af den egentlige maskine. Der er et "ekstra" trin med.
Gravatar #70 - FlowerChild
30. sep. 2007 18:42
tæller batch?
Gravatar #71 - arne_v
30. sep. 2007 18:56
#69

Hvis vi kalder:
s = Java source code
b = Java byte code
n1 = most optimal native code from compiling Java source code to native
n2 = most optimal native code from compiling Java byte code to native
c = javac Java compiler
j = JVM JIT compiler
x = practically non existing java source to native compiler (gcj style)
d = Java decompiler

Så gælder det definitorisk at:
n1 = x(s)
b = c(s)
n2 = j(b)
s = d(b)

Deraf følger at:
n1 = x(s) = x(d(b))
og at hvis man laver JIT compileren som:
j(b) = x(d(b))
så vil n2 altid være lige så hurtig som n1.

Det eneste overhead der logisk set må være ved JIT fremfor AOT er opstarts overhead.
Gravatar #72 - myplacedk
30. sep. 2007 19:08
#69
At jeg ikke kan huske detaljerne fordi det er over et år siden jeg havde faget på universitetet er vel ikke min skyld? ^^,

Jeg tror det er pointen du har glemt. ;-)
Ja, JIT-compileren tager tid. Nej, det betyder normalt ikke noget. Især ikke efter softwaren er startet op.
Gravatar #73 - m910q
1. okt. 2007 06:24
mIRC-scripting her :)
Gravatar #74 - Cyrack
1. okt. 2007 06:36
arne_v skrev:
Hvis man lige erindrer at Java byte code kan decompiles, så er det basal logik at det argument ikke er sandt.


Det kan al bytecode (reelt kan alt kode decompiles, bare ikke 1:1) så hvad er din pointe? Der er en grund til MS har lanceret Dotfuscator.

Og inden folk flyver i flæsket på Java så husk at .net lider under samme problemetik og der brokker folk sig sjældent over performance, så mon ikke Java har fået et dårligt ry pga. JVM'en skal starte op først mens .Net VM er indlæst ved opstart?
Gravatar #75 - vision-dk
1. okt. 2007 09:06
Stemte C#, men bruger også python af og til.
Gravatar #76 - ussmarineofficerdick
1. okt. 2007 09:32
Hvor er Objective-C ?
Gravatar #77 - mrmorris
1. okt. 2007 10:37
Det mest inflydelsesrige sprog igennem de sidste 10 år, og dét sprog vel nok de fleste universiteter og coporations bruger er ikke med. Det er da genialt. Det er lige som at spørge hvem der er den dummeste amerikaner, uden at have Bush som valgmulighed
Gravatar #78 - weevil
1. okt. 2007 10:48
Jeg sidder som Java udvikler og føler mig lidt overset i denne afstemning :)
Gravatar #79 - Mazon
1. okt. 2007 11:54
VM baserede sprog er potentielt hurtigere end ikke VM baserede sprog, simpelthen pga de runtime optimeringer der kan laves, som en AOT compiler ikke har muligheder for. Men i simple løsninger uden voldsom arv og simple "ikke-optimer-bare" metoder vil ikke vm baserede sprog være hurtigere. De vil under alle omstændigheder også være langsommere under opstart - men nu tager en Empty class under 1 sek at starte op for mig (P4 2.4 GHz, Java 1.6, coldstart).

Men ja, underlig afstemning ikke at have Java med - det er lidt hul i hovedet.
Gravatar #80 - arne_v
1. okt. 2007 12:24
#74

Pointen som jeg udpenslede ret detaljeret i #71 er at 1:1 decompiling gør det særdeles nemt at bevise at JIT kan ikke være dårligere til at optimere end AOT.
Gravatar #81 - Borg[One]
1. okt. 2007 13:58
Et par generelle kommentarer til tråden her...

# Afstemningen
Det er lidt problematisk, at det ikke er klart defineret hvad der ligger inde for scopet.
Umiddelbart ville jeg ikke nævne script-sprog som VBS, eller Java Script, i en afstemning om programmeringssprog.
Ved at fravælge alt scripting, kunne man også blive fri for alle dem der spørger om scripting til IRC, WoW, cmd-filer og hvad der ellers findes af programmer, med indbygget script-sprog.

At man så udelader det helt store pendant til C# java, må man formode er en fejl.

#BegynderProgrammering

Som flere gør opmærksom på, komer det an på hvad det er i vil programmere.
Vil i skrive et lille lokalt program, eller vil i lave noget hjemmeside-snedigt.

Umiddelbart er det der er hurtigst, og giver det flotteste resultat, noget hjemmeside-fnidder. Det er så HTML i skal have fat i, og hvis det fanger kan i gøre siden mere smart, med eksempelvis PHP, Javascript eller nogeet ASP-fnidder.

# Java vs C#
Hvorfor skulle det ikke være muligt at flytte C#-programmer?
Mig bekendt danner man bytecode, der skal bruges en fortolker til, når man compiler C# - fuldstændig på lige fod med java.

# Alle de andre sprog der bliver nævnt
Nu er tråden her lidt diffus, men jeg tror de fleste kan hoste op med et obskurt sprog eller to, der sandsynligvis ikke er nævnt - og helt ærlig...det er ikke synderlig interessant at man kan finde ud af skrive JCL, PL1 eller Jython...

#80 thank you...!
Gravatar #82 - mrmorris
1. okt. 2007 14:53
#74 Ja, i en perfekt verden (teoretisk) har du jo ret. Nu er problemet bare, at en Java klasse og dens classloader kan blive recompilet på enhvert givent tidspunkt. Og det er selvfølgelig glimrende når man har sit program kørende på en app server.

Problemet er når vi snakker klient program, hvor brugeren sidder og venter og applikationen dermed ikke er responsiv fordi der sker en transition fra fortolkning til compileret kode. De sidste optimeringer HotSpot laver sker ca. 2 min inde i programkørslen. På dette tidspunkt har nogle (incl. jeg selv) for længst lukket ned for programmet og bandet over Java.

Microsoft tog et simplere skridt, ved simpelthen at JIT'te det hele og kun én gang (deraf, ingen classloader i C#).

Derfor tror jeg især ikke på JavaFX teknologien, den vil aldrig komme i nærheden af den hastighed (responsiveness/usability) som Flash relaterede teknologier (YouTube etc.) demonstrerer.
Gravatar #83 - myplacedk
1. okt. 2007 15:45
#77
Det mest inflydelsesrige sprog igennem de sidste 10 år, og dét sprog vel nok de fleste universiteter og coporations bruger er ikke med. Det er da genialt. Det er lige som at spørge hvem der er den dummeste amerikaner, uden at have Bush som valgmulighed

Jeg kunne godt tænke mig at vide hvilket sprog DU tænker på...
Gravatar #84 - myplacedk
1. okt. 2007 15:50
#81
Java vs C#
Hvorfor skulle det ikke være muligt at flytte C#-programmer?
Mig bekendt danner man bytecode, der skal bruges en fortolker til, når man compiler C# - fuldstændig på lige fod med java.

Problemet er bla. win32-bindinger og patenter. Det er simpelt hen håbløst at lave en komplet implementering uden Microsofts hjælp.

Fx. i Linux er bedste (eneste?) mulighed Mono. Jeg har ikke selv leget med det, men af de mange, mange kommentarer og erfaringerne jeg har hørt om, lyder det ligesom wine (som gør det muligt at køre nogle native Windows-programmer i Linux). Dvs. implementationen er ukomplet. Det bliver bedre og bedre, og flere og flere ting kører som det skal. Men helt godt bliver det nok aldrig.

Jeg har selv Windows-software som kører glimrende i Wine, ting som fungerer delvist, og ting som slet ikke virker i Wine. Præcist som jeg hører folks erfaringer er med Mono. Så kan jeg ikke se hvad det er værd.
Gravatar #85 - mrmorris
1. okt. 2007 16:42
#89:

Det burde være ret indlysende, måske bortset fra ham der har oprettet denne poll (dig?). Tag et kig på Tiobe's oversigt. Hvilket sprog dominerer i denne 5 årige oversigt over mest brugte sprog?
http://www.tiobe.com/tiobe_index/images/tpci_trend...

/Casper
Gravatar #86 - Mazon
1. okt. 2007 16:48
#82
At man JIT'er en gang, svarer jo i princippet til AOT kompilering, hvorfor det ikke ubetinget er smart.
I nyere Java (1.5+) laver man såkaldt Class Data Sharing, dvs man gemmer den parsede byte code (men ikke jit'et kode). Så memory-mapper de det direkte ind, hvilket fungere ret godt.

Jeg har *aldrig* oplevet et java program der var "langsomt" i starten og så blev mærkbart hurtigere efter en periode på "2 minutter". Typisk oplever jeg at en ordenlig klat class loading (f.eks swing + tilhørende ressourcer) kan tage nogle sekunder - præcis som .Net (som også tager en pæn rum tid ved kold start).

I øvrigt tager det meget lidt tid at jit compile - den compiler jo kun enkelte metoder (hotspots).
Gravatar #87 - myplacedk
1. okt. 2007 16:56
#85
(Jeg går ud fra det er mig du skriver til.)
Jeg er ikke i tvivl om hvilket sprog JEG savner mest, hvilket er tydeligt hvis du læser mine kommentarer. Da så mange andre har kommenteret at Java mangler, og dit indlæg umiddelbart så lidt mere ... overvejet ud, håbede jeg du tænkte på et andet sprog.
Gravatar #88 - Mazon
1. okt. 2007 17:13
@mrmorris
prøv at lege med -XX:+PrintCompilation en anden gang, så kan du checke om det er jit der spøger.
Du kan læse flere ting her:
http://java.sun.com/javase/technologies/hotspot/vm...

som godt kan være underholdende at pille ved :) - ja pænt geeky
Gravatar #89 - iluka
1. okt. 2007 21:29
#52
Jeg kunne oze godt tænke mig at høre, hvad I (gosu/1337/sygK0) programmører ville foreslå som et startersprog, sårn en - 'start med den, så den, så den etc.-liste'. :D


Der er 100 meninger om hvor det er lettest, smartest, mest fremtidigssikret etc. at starte, og du får stortset aldrig en programmør til at svarre andet end hans ynglingssprog.

Så her er mit råd: Vælg Java eller C#! De er lette at gå til og du lærer ikke alle de dårlige vaner som scriptingsprog giver dig (php, vbscript etc).

Fuck hvilket sprog du lærer, hvis du bliver god til det har jeg et job til dig, og så skal jeg squ nok få lært dig de sprog vi arbejder med. De typer der prøver at fylde dig med argumenter for eller imod java/C# skal du ikke lytte til. Nogle af deres argumenter er saglige, andre er direkte latterlige. Faktum er at en hver programmør der er bare halvdelen af sin løn værd, kan skifte fra c# til Java eller vice versa på yderst begrænset tid.

Nå ja mit ynglingssprog? C#! Men jeg har i tidens løb udviklet i mindst 10 forskellige sprog, og fået betaling for at udvikle en en lille håndfuld. Og på de tider har de nok været mine ynglingssprog. Man har et standpunkt til man tager et nyt. Lær at programmere så kan du jo altid "specialisere" i en bestemt platform dig når du er blevet dygtig.
Gravatar #90 - arne_v
2. okt. 2007 03:30
#58

Java har også et kæmpe framework, men det er af meget svingende kvalitet


Hvilke dele af Java API er af lav kvalitet ?

og på grund af alderen, er der mange ting, der er i biblioteket, men der frarådes at anvende.


Og det mener du ikke at der er i .NET ?

Java har stadigt flere deprecated methods end .NET har obsolete methods+properties, men Java tilføjer ca. 400 om året og .NET tilføjer ca. 1000 om året, så det er jo et område hvor vi kan regne med at .NET snart overhaler Java.

[quote]Platformsuafhængighed får man også, hvis man kører Mono på Linux, og det fungerer faktisk forrygende.[quote]

MS .NET er en glimrende platform.

Mono er supporteret på mange platforme (ikke nær så mange som Java, men pænt mange).

Der er bare den lille hage at Mono != MS .NET ...

Folk kan jo selv læse på projektets hjemme side, men den korte version er:
- de understøtter næsten alt .NET 1.1 (2003)
- de understøtter en stor del af .NET 2.0 (2005)
- de understøtter lidt af .NET 3.0 (2006)
Gravatar #91 - arne_v
2. okt. 2007 03:47
#81

Umiddelbart ville jeg ikke nævne script-sprog som VBS, eller Java Script, i en afstemning om programmeringssprog.


Problemet er at grænsen mellem script og programmerings sprog er lidt uklar idag.

JavaScript ikke et programmerings sprog. Hvis jeg nu compiler (!) en JavaScript klasse med MS's compiler og bruger den klasse i et C# program. Hvordan adskiller den JavaScript kode sig fra C# koden.

Hvorfor skulle det ikke være muligt at flytte C#-programmer?
Mig bekendt danner man bytecode, der skal bruges en fortolker til, når man compiler C# - fuldstændig på lige fod med java.


Det kan man principielt godt.

Det kan man reelt godt. Du kan sagtens køre en simpel console app i C# bygget med Visual Studio på Linux med Mono.

Men for rigtige applikationer er der nofte ogle problemer:
- Mono er ca. 3 år bagefter MS .NET
- nogle features i .NET er meget vanskelige at portere, fordi de er afhænge af native Windows funktionalitet (COM, OLE DB etc.)
- det er relativt nemt at bruge native Windows funktionalitet i egen kode (tilgang til registry, brug af WMI, anden bruge af Win32 API etc.)
Gravatar #92 - arne_v
2. okt. 2007 03:52
#82

.NET JIT'er kun metoderne efterhånden som de bliver brugt (man kan så bruge NGEN men det er jo AOT).

Jeg er også meget skeptisk overfor JavaFX.

Men nogen hos SUN må have tænkt "So ein ding mussen wir auch haben".
Gravatar #93 - TheUnknownSaint
2. okt. 2007 07:33
#2 Hvorfor?

http://gtk.php.net/

Har ikke selv rodet med det, men har hørt nogen sige at det er fedt..

PHP-GTK is an extension for the PHP programming language that implements language bindings for GTK+. It provides an object-oriented interface to GTK+ classes and functions and greatly simplifies writing client-side cross-platform GUI applications.
Gravatar #94 - Cyrack
2. okt. 2007 11:19
#93 - TheUnknownSaint

Hvis GTK+ så bare var pænt at arbejde med... men ja, PHP kan bruges til applicationsprogrammering, og det er faktisk relativt let at portere en webapp til GTK+ hvis man har en bare nogenlunde kodestandard.

@arne_v:

Sorry for det langsomme svar, men jeg overså din post om at Java > native :-(
Gravatar #95 - zin
4. okt. 2007 21:37
#71:
Nu er det muligt at jeg ikke følger med meget længere - men som jeg kan se det sammenligner du matematisk ukompileret kode med kompileret kode. Mit argument ligger udenfor dette - den kompilerede kode skal jo afvikles på en klient - af en virtuel maskine (JVM), som så igen normalt er skrevet i C (så vidt jeg mindes) eller lignende. Ergo har du altså noget java kode -> java "byte" kode (kompilering, så vidt jeg husker) -> JVM som så igen skal afvikles. Der igennem vil der forekomme minimale forskelle i afviklingshastigheden og derfor vil et Java program aldrig være hurtigere end et program skrevet i f.eks. C på en Windows maskine (SPARC er undtaget eftersom CPUen kan afvikle kompileret Java kode).
Men forskellen er, som jeg allerede har nævnt flere gange, minimal nu om dage - men førhen var det et mareridt pga. ting som allerede er blevet nævnt af andre i denne tråd.
Begrav den.
Gravatar #96 - arne_v
4. okt. 2007 22:13
#71

Jeg tror at du taler om fortolkning ?!?!

Det er vel en ca. 10 år siden at Java fik JIT kompilering.

Og nej - en SPARC kan ikke afvikle Java byte code.
Gravatar #97 - hjorth
4. okt. 2007 22:14
#95

Som nævnt tidligere i tråden har java den fordel, at bytekoden først oversættes lige før den udføres. På oversættelsestidspunktet ved man derfor en del om det miljø, koden udføres i, og denne viden kan udnyttes til at lave optimeringer, som du ikke kan lave, medmindre du bruger JIT-oversættelse.

Der står lidt om det her http://kano.net/javabench/. De siger selv, at de er helt unbiased, så det må nødvendigvis være rigtigt :)
Gravatar #98 - Windcape
10. okt. 2007 10:32
Det burde være ret indlysende, måske bortset fra ham der har oprettet denne poll (dig?). Tag et kig på Tiobe's oversigt. Hvilket sprog dominerer i denne 5 årige oversigt over mest brugte sprog?
http://www.tiobe.com/tiobe_index/images/tpci_trend...

/Casper

.... hvorfor er COBOL ikke på den liste ? Mig bekendt har det da været størrere/ligeså stort som java...
Gravatar #99 - Windcape
10. okt. 2007 10:36
Nå, det var fordi den kun viste top 10.

Hvis vi kigger industri sprog, ser det sådan her ud:

1. Java (21%)
2. C (14%)
3. VB (11%)
4. C++ (9.5%)
5. C# (3.7%)
6. PL/SQL (1.9%)
7. Delphi (1.5%)
8. COBOL (0.6%)

Jeg har bevist undladt webudvikling, da jeg ikke synes det er relevant at sammenligne COBOL med PHP på nogen som helst måde.

.NET udvikling er stadigvæk minimal i forhold til Java og C :)
Gravatar #100 - myplacedk
10. okt. 2007 11:03
Interessant faktum:

Selv om COBOL er så lille, så er COBOL-evner næsten det samme som job-garanti.
Spørg enhvert konsulent-firma, om du kan få en COBOL-konsulent. Svaret er nok "nej, men hvis du finder nogen, så har jeg et job til vedkommende".

På min arbejdsplads uddanner vi selv COBOL-udviklere. Markedet er støvsuget for dem, og der mangles stadig.

Pointen er: Vælg ikke sprog efter hvor mange job-annoncer der er, hvis du har andre faktorer. Vælg det/de sprog du bedst kan lide.
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login