Permalänk
Avstängd

Artikel om Erlang (och C++)

Här har vi en artikel om Erlang. Det är ett extremt coolt språk, tycker jag. Bl.a. säger de att en Erlang programmerare är lika produktiv som 5 st C++ programmerare. (Antagligen hade de inte pratat med Gosh, som hade förklarat att en duktig C++ programmarera är minst 20 ggr så produktiv som vilken annan programmerare som helst)

http://www.idg.se/2.1085/1.213789/svensk-sprakdoldis-gor-succ...

Någon som testat Erlang och deklarativa språk? Det står lite intressant info på wikipedia också.

Permalänk
Glömsk

Jag har inte använt Erlang till något större projekt. Däremot har det diverse mindre funktioner som jag tycker är väldigt trevliga, framförallt pattern matching på bitnivå. Info här: http://www.erlang.se/euc/00/bit_syntax.html

Detta är något jag skulle vilja se i Haskell, som jag använder oftare.

Visa signatur

...man is not free unless government is limited. There's a clear cause and effect here that is as neat and predictable as a law of physics: As government expands, liberty contracts.

Permalänk
Medlem

(Snälla, inte en språkkrigstråd till, även om trådskaparen i princip ber om ett)

Har inte jobbat något med Erlang, även om det ser lite intressant ut. Lite synd att det klumpas ihop med språk som Haskell och Lisp och får den orättvisa stämpeln "akademikerspråk", vilket ju givetvis betyder att språket är värdelöst om man vill göra vettiga saker :(. Sen beror det ju på vilken paradigm man tycker är bäst att jobba i, trivs man bra med objektorientering så kanske Erlang är fel... Vissa saker gör ju sig bra i objektorienterad form.

Permalänk
Medlem

Jag har köpt Erlang-boken men inte gjort mer än att läsa om språket än. Mitt intryck är att det är ett domänspecifikt språk snarare än ett generellt användbart språk. Men nästa gång jag ska skriva en server eller liknande för personligt bruk är det troligt att jag ger Erlang en chans.

Förhoppningsvis kommer de grejer som är bra med Erlang att tas med i andra framtida språk som är mindre nischade.

Visa signatur

Alla män är dödliga. Sokrates var dödlig. Alltså är alla män Sokrates.

Permalänk
Medlem

Har skrivit några labbar när jag pluggade i erlang och lekt lite, men inte gjort något stort. Jag tycker det känns lite ålderdomligt att använda vilket är synd, speciellt när det finns så mkt cutting edge-features i språket/miljön... Att lätt kunna hotswappa kod, utmärkt stöd för concurrency osv. Men så finns det tex tre sätt att terminera uttryck på, punkt, komma eller semikolon, beroende på var det står och en del annat som gör en mindre glad och gör att det ligger närmare att använda ett annat språk istället när man sitter hemma o hobbykodar.

Om man jämför med Haskell som Psionicist tog upp tycker jag Haskell känns mycket smidigare och modernare att använda, samma sak som om jag jämför med Python istället. (Dock ska till Erlangs försvar sägas att jag programmerat mycket mer i både Haskell & Python)

Fö finns det en cool film om språket, Erlang: The Movie. Hittas bl.a. på google video: http://video.google.com/videoplay?docid=-5830318882717959520 (Speciellt du borde titta på den saddam, dom demar på Sun-datorer )

Permalänk
Avstängd

Jag har labbat lite med Erlang. I början var det meckigt, men sen lossnade det. Jag gillar att det inte är så lågnivå grejer. Det var bara att programmera på. Det finns folk som tror att Erlang och liknande språk är den rätta vägen att hantera många cpuer och parallellitet. Tydligen så skalar Erlang extremt bra på många cpuer, utan att man gör något speciellt i koden. Man bara skriver vanlig Erlang kod, och den blir automatiskt skalbar på många cpuer.

Det finns folk som tror att man bör använda Erlang för logiken och skalbarheten, och sen binder ihop det med t.ex. C++ för grafiken och sånt. Och då får man bra skalbarhet.

Erlang har intressanta egenskaper, som de räknar upp i artikeln. Skalbarhet, patchning under dirft, etc.

Permalänk
Medlem

Att erlang skulle vara 5x effektivare än andra språk tycker jag känns jävligt bull samt att hela artikeln är rätt vinklad. Min personliga erfarenhet av erlang är att det är rätt drygt att ha o göra med speciellt med tanke på syntax som inte är av denna värld samt att det gav ett väldigt omordernt intryck (om ett programmeringsspråk nu kan göra det)

Visa signatur

"Say unto thine own heart, I am mine own redeemer"
Don't touch me when I'm crazy of that airplane glue

Permalänk
Medlem

Som sagt var: det går alltid att få såna där undersökningar att visa vad man vill. Men om den nu vill visa att erlang är ett "5x mer effektivt språk" för extremt parallella applikationer kan det mycket väl stämma. Sedan är ju syntax bara syntax. Allt behöver inte vara C-style... ML-style elelr derivat därav funkar minst lika bra

Visa signatur

void@qnet
teeworlds, stålverk80, evil schemer, c, c++
Languages shape the way we think, or don't.

Permalänk
Avstängd

Jag hörde att koppla ihop 2 telefoner med C++ tog en halv MB kod. Att göra det i Erlang tar några hundra rader. Detta är ganska typiska siffror när man jfr typ funktionella problem som man skrivit i objektorienterade paradigmet. Det finns alltså stora besparingar att göra. Jag tror inte alls det är skitsnack.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av saddam
Jag hörde att koppla ihop 2 telefoner med C++ tog en halv MB kod. Att göra det i Erlang tar några hundra rader. Detta är ganska typiska siffror när man jfr typ funktionella problem som man skrivit i objektorienterade paradigmet. Det finns alltså stora besparingar att göra. Jag tror inte alls det är skitsnack.

Du la fram samma argument i den andra tråden, du lär få samma motargument; Erlang är ett språk som är vinklat mot just detta (Ericsson utvecklar det ju), det är klart som fan att man kopplar ihop telefoner enklare med det då. Finns troligtvis saker som tar en halv MB kod att göra i Erlang som går på några hundra rader kod i C++.

Alla språk har sina användningsområden, så länge de är turingkompletta och inte esoteriska är det meningslöst att bråka om vilket som är bäst. Däremot kan jag tycka att det är synd att vissa språk (typ Erlang, Haskell, Lisp) får en stämpel som "akademikerspråk" eller svåra, oanvändbara, eftersom de inte är det och mycket väl kan användas effektivt. Men kom inte och snacka om mängd kod på det sättet. Det funkar inte så.

Permalänk
Avstängd

Jag försökte visa att det finns exempel på när Erlang kod blir mycket mindre än motsvarande C++ kod, 5ggr mindre eller så. DarkBob verkade inte tro på det.

Sen tror jag även att andra tillämpningar än televäxlar också blir mindre kod. När jag skrev en telefonväxel var det faktiskt inte mycket telespecifika grejer. Knappt nånting, det var mest message passing. Så om man har apps med mycket message passing, så tror jag att det Erlang kan vara en ide att titta på. Skulle inte förvåna mig om koden blir 5 ggr mindre isåfall. Precis det som de säger i artikeln.

Jag tror alltså inte 5 ggr mindre kod för vissa typer av applikationer, är skitsnack och påhitt, DarkBob och You.

You, var det inte du som ville slippa mera språkkrig?

PS. Det heter Turing fullständigt. Inte Turing komplett.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av saddam
PS. Det heter Turing fullständigt. Inte Turing komplett.

saddam VS You
1-0

Visa signatur

www.filipsprogram.tk - lite freeware
"Delight, herregud. Talang är bara förnamnet."

Permalänk
Medlem

Ja absolut... Ett språk skrivet i ett språk som är inriktikt på en sak gör oftast det bättre än ett språk inriktat på nått annat Det är klart att det inte är skitsnack, bara att titta på t.ex. många av programmen på language shootout så ser man hur mycket kompaktare erlang är jämtemot C och C++. Det gäller många av andra funktionella språk också.

Att räkna på det sätt du gör är dock aningen missvisande, eftersom det alltid går att konstruera liknande exempel, speciellt om man får använda specialfunktioner/lib vilket man skulle kunna se det som i erlang-fallet (det är ju gjort för telefonväxlar =). Visst kan man se det som att det är "innbyggt" i språket, men då får man nästan räkna med koden som behövs för det supportsystemet och runtimen.

Vad jag vill säga är helt enkelt: det är svårt att säga att nått är bättre än nått annat. Att mäta antal rader kod är nästan alltid fel.

The right tool for the right job.

Visa signatur

void@qnet
teeworlds, stålverk80, evil schemer, c, c++
Languages shape the way we think, or don't.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av saddam
Jag hörde att koppla ihop 2 telefoner med C++ tog en halv MB kod. Att göra det i Erlang tar några hundra rader. Detta är ganska typiska siffror när man jfr typ funktionella problem som man skrivit i objektorienterade paradigmet. Det finns alltså stora besparingar att göra. Jag tror inte alls det är skitsnack.

Man får väl ha koll på vad det är man mäter och hur man mäter det. De refererar juh inte till undersökningen i artikeln (eller missade jag det?). Själv skulle jag väl räkna på hur utvecklingstid och kvalite på det utvecklade om jag skulle mäta effektivitet. Men som jdv sa, the right tool for the right job är juh att föredra.

Visa signatur

"Say unto thine own heart, I am mine own redeemer"
Don't touch me when I'm crazy of that airplane glue

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av saddam
Jag försökte visa att det finns exempel på när Erlang kod blir mycket mindre än motsvarande C++ kod, 5ggr mindre eller så. DarkBob verkade inte tro på det.

Sen tror jag även att andra tillämpningar än televäxlar också blir mindre kod. När jag skrev en telefonväxel var det faktiskt inte mycket telespecifika grejer. Knappt nånting, det var mest message passing. Så om man har apps med mycket message passing, så tror jag att det Erlang kan vara en ide att titta på. Skulle inte förvåna mig om koden blir 5 ggr mindre isåfall. Precis det som de säger i artikeln.

Jag tror alltså inte 5 ggr mindre kod för vissa typer av applikationer, är skitsnack och påhitt, DarkBob och You.

Nyckelord: vissa (typer) av applikationer. Alltså är Erlang inte alltid bättre, som artikeln (och du) påstår. Säger som jdv; right tool for the job – jämföra språk (spec. antal rader kod) är meningslöst…

Och om televäxlar mest handlar om message passing så är det klart att Erlang är bra på detta, och då är det förmodligen bra på andra tillämpningar där message passing är viktigt. Säger sig självt ju.

Citat:

Ursprungligen inskrivet av saddam
PS. Det heter Turing fullständigt. Inte Turing komplett.

Okej. Särskrivning är dessutom en dålig vana.

Permalänk
Avstängd

Om det verkar som att jag påstår att Erlang alltid producerar mindre kod än C++ så menar jag inte så, förstås. Jag menar att för vissa typer av problem så passar Erlang grymt mycket bättre än typ C++. Jag skriver tidigare, angående 1/5 av antalet kodrader:
"Detta är ganska typiska siffror när man jfr typ funktionella problem som man skrivit i objektorienterade paradigmet."

dvs att det är dumt att lösa funktionella problem med C++

Permalänk
Glömsk

*Tråd rensad*

Vill inte se några mer diskussioner om terminologi.

Ber om ursäkt om jag raderade något inlägg för mycket.

Visa signatur

...man is not free unless government is limited. There's a clear cause and effect here that is as neat and predictable as a law of physics: As government expands, liberty contracts.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Psionicist
*Tråd rensad*

Vill inte se några mer diskussioner om terminologi.

Ber om ursäkt om jag raderade något inlägg för mycket.

Äsch, precis när man googlat fram lite skojig statistik.. aja, det var väl lika bra

Så för att återgå till ämnet: Om man bortser från Erlang, hur enkelt är det att bygga messagepassing effektivt i andra språk? Och finns det något stort språk/vm med kod-hotswappingen eller är det inte så användbart i praktiken kanske? För en stor website tex använder man ju ändå flera servrar för samma funktion så då borde det inte ge så mycket (även om det är coolt att det går)

Permalänk
Avstängd
Citat:

Ursprungligen inskrivet av Psionicist
*Tråd rensad*

Vill inte se några mer diskussioner om terminologi.

Jag tycker det är onödigt att skapa en ny tråd där vi kan diskutera terminologi. Menar du att vi bör göra det? Jag trodde att så länge TS och andra inte misstycker, så fortsätter diskussionen? Flera var ju inne och hade synpunkter?

VB,
Jag vet inte om message passing. Men tydligen är Erlang väldigt bra på processhantering. De ska tydligen vara riktigt extremt lättviktiga och Erlangs stora styrka. Står mer info om detta på wikipedia.

Permalänk
Citat:

Ursprungligen inskrivet av saddam
Jag hörde att koppla ihop 2 telefoner med C++ tog en halv MB kod. Att göra det i Erlang tar några hundra rader. Detta är ganska typiska siffror när man jfr typ funktionella problem som man skrivit i objektorienterade paradigmet. Det finns alltså stora besparingar att göra. Jag tror inte alls det är skitsnack.

Det krävs färre rader kod att göra en webbserver i C# än i C++, vilket språk är bäst? Fundera över vad som gör ett språk bra.

Visa signatur

System.out.print(madness ? this.is.SPARTA : "");

Permalänk
Avstängd
Citat:

Ursprungligen inskrivet av Ghost_Overdoze
Det krävs färre rader kod att göra en webbserver i C# än i C++, vilket språk är bäst? Fundera över vad som gör ett språk bra.

Inom algoritmisk informationsteori så är en tumregel att ju färre rader, desto simplare. Ju simplare, desto bättre. Så måttstocket på "simpel" är få rader. Inom algoritmisk informationsteori. Jag tycker det är en ganska bra måttstock, därför att det är lätt att kvantifiera. Dessutom är det underförstått att man inte skapar rader som är jättestora. Så har man man "standard" rader, så är det så att ju färre rader desto bättre.

Och i Erlang så får du färre rader än i t.ex. C++.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av saddam
Så måttstocket på "simpel" är få rader.

Borde ju snarare vara ju färre instruktioner desto bättre.

Permalänk
Avstängd
Citat:

Ursprungligen inskrivet av You
Borde ju snarare vara ju färre instruktioner desto bättre.

Jo det är en bättre formulering. Det korrekta begreppet är egentligen "Entropi". Men jag visste inte hur jag skulle förklara det utan att använda matematik. Kanske är "Information" en bättre översättning.

Permalänk
Avstängd

En till artikel om Erlang. Snubben påstår att han själv kan skriva hela serverdelen av Spotify på några veckor. Om det nu är sant, så tyder det på att man blir mycket produktiv i Erlang.

http://www.idg.se/2.1085/1.215303/jag-vill-prata-allvar-med-s...

Permalänk
Medlem
Citat:

En duktig Erlangprogrammerare skulle kunna skriva [...] nästa version av internetprotokollet på några veckor

Trollar killen IDG eller?

Tycker han generellt har en enorm övertro på Erlang. Sen säger han inte att han skulle kunna skriva serverdelen av Spotify på några veckor, han säger att han "skulle kunna skriva en webbtjänst som klarar mycket hög belastning" – kan vara fullständigt irrelevant beroende på vad han menar med en webbtjänst.

Permalänk
Medlem

Imo verkar det va mycket snack och lite verkstad på erlangfolket. De föreläsningarna vi hade i erlang va mer säljsnack än undervisning. Joe Armstrong var väl med och utvecklade språket, tro faen att han försöker sälja in det med sånna argument.

Visa signatur

"Say unto thine own heart, I am mine own redeemer"
Don't touch me when I'm crazy of that airplane glue

Permalänk
Avstängd

Jag tror nog att det är säljsnack till viss del. Men klart är att man blir mer produktiv i Erlang än t.ex. C++ för message passing server system. Frågan är hur mycket mer.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av saddam
Jag tror nog att det är säljsnack till viss del. Men klart är att man blir mer produktiv i Erlang än t.ex. C++ för message passing server system. Frågan är hur mycket mer.

Nej, frågan är hur ofta man kan utnyttja Erlangs fördelar.

Permalänk
Avstängd
Citat:

Ursprungligen inskrivet av You
Nej, frågan är hur ofta man kan utnyttja Erlangs fördelar.

Jag anser att frågan är snarare om Erlang har några fördelar och om det finns fördelar, hur stora är de? Är det bara marknadssnack, eller finns det fördelar?

Klart är att Erlang som utvecklades för message passing serversystem verkar vara bra på det (det tycker antagligen inte du, men jag tycker det). Men hur bra? Tillräckligt bra för att gå över till Erlang?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av saddam
Klart är att Erlang som utvecklades för message passing serversystem verkar vara bra på det (det tycker antagligen inte du, men jag tycker det). Men hur bra? Tillräckligt bra för att gå över till Erlang?

Har inte påstått att Erlang inte är bra på message passing, har bara ifrågasatt hur ofta man kan utnyttja faktumet att Erlang är bra på det.