d2jsp
Log InRegister
d2jsp Forums > Off-Topic > International > Magyar > Mekprogramozzuk Topic
Prev16364656667249Next
Add Reply New Topic New Poll
Member
Posts: 35,964
Joined: Dec 27 2007
Gold: 0.00
Oct 25 2014 01:03pm
Quote (Jason89 @ Oct 25 2014 06:59pm)
Ezt értsem úgy, hogy tolod a C++-t? :)


én csak c++-t tolok :~)
Member
Posts: 4,795
Joined: Apr 26 2007
Gold: 289.00
Oct 25 2014 01:13pm
Quote (xGurke @ 25 Oct 2014 20:03)
én csak c++-t tolok :~)


Milyen téma érdekel? "Normál" C++, template magic vagy TMP? Melyik szabvány (régebbi, C++11, C++14)?
Member
Posts: 53,925
Joined: Apr 15 2007
Gold: 11,500.00
Trader: Trusted
Oct 25 2014 01:22pm
Quote (Jason89 @ 25 Oct 2014 19:57)
Ha már F#, akkor inkább Clean. Jóval régebben jelent meg, és elég letisztult funkcionális nyelv, én nagyon szeretem. Esetleg még Erlang.
Az a Selector osztályom nem C, hanem C++. :) C-ben nyelvi szinten nincsen osztály fogalom, meg template se. Mondjuk a legjobban a C-t szeretem.

Amit igazán utálok: php meg a javascript. A java-t se szeretem, de megtűrom -- míg az első kettőt nem. :P


tudom h cpp
php az nekem olyan hogy meghallom és kacarászok egyet :D vagy elszomorodom, nem is tudom mikor melyik

javascript az viszont nagyon vegyes érzéseket vált ki
egy rendes IDE-vel (VS már elég jól tolja), meg a következő ECMA kiadással (típusosság, classek) már lehet hogy nem fogom utálni, sőt
most viszont még inkább csak utálom. :D

Clean/Erlang: próbálok olyan közegben maradni, ami emerging, illetve "közel" áll hozzám.. F# pont ilyen

ráadásul épp ezért szeretem mert az minden egyszerre, oo, functional, imperative, precompiled, (lehet benne mvc, vagy wpf appot írni), stb, és mégis erősen típusos, pedig ki sem kell írni a típusokat, csak kb 15%-ban (mert az ML-nyelvosztályba tartozik, annak a feloldó algoritmusát használja)..
így a legtökéletesebb sandbox-nak tartom, ahol az ember azt tehet meg, amit csak akar, de ezt legalább egy kurva erős szintaktikával
ráadásul tud curryzni (let distribution = distribution n EngineMetrics.holeCount), ez pl függvényből függvényt csinál, csak hozzáad két paramétert -- más általános nyelvekben még ezt sem láttam eddig

Scala is azért terjedt el, mert Java bytecode-ot generál
F# is azért van terjedőben, mert .NET IL-t generál

abban bízom hogy 3-5 éven belül elindulnak az F# projectek is (külföldön már ez megy, btw kb 1.5x annyit keresnek a funkcionális programozók, mint a Java/C#-os társaik)
+ ugyebár ennek passzív profitja is van (gondolkodás mód), hogy ezzel foglalkozik az ember.. kicsavarja az ember agyát (hogy nem imperatívan ír meg mindent) mint az állat

ezt már lehet hogy postoltam, most hirtelen csak megint ezt találtam meg az archives között, imádom ezeknek a szintaktikáját :D csak sajnos project nincs rá nagyon (még), így nem tudok vele élesben foglalkozni

Code
//WunderAlgorithm [|9; 45; 00; 0000|] [|14; 30; 00; 0000|] [|24; 60; 60; 1000|]

let wunderAlgorithm (a: int[]) (A: int[]) (tops: int[]) =

if a.Length <> A.Length then failwith "InvalidArgumentExceptionYouIdiot"
if a |> Array.exists(fun item -> item < 0) then failwith "AreYouEvenSweden?"

let add n m top =
match n+m with
| v when v % top + 1 > 0 -> (v / top, v % top)
| _ -> (0, n+m)

let rec ursion d =
match d with
| v when v = a.Length-1 ->
[ add (a.[d]) A.[d] tops.[d] ]
| v ->
let dv = ursion (d+1)
let f = fst dv.[dv.Length - 1]
let (cr, cv) = add (f+a.[d]) A.[d] tops.[d]
[(cr, cv)] |> List.append dv

let l = ursion 0 |> List.rev

let result = List.choose (fun elem ->
match elem with
| v ->
Some(snd elem) ) l

result |> List.append [fst l.[0]]


This post was edited by Anarkin on Oct 25 2014 01:23pm
Member
Posts: 4,795
Joined: Apr 26 2007
Gold: 289.00
Oct 25 2014 01:26pm
Quote (Anarkin @ 25 Oct 2014 20:22)
tudom h cpp
ráadásul tud curryzni (let distribution = distribution n EngineMetrics.holeCount), ez pl függvényből függvényt csinál, csak hozzáad két paramétert -- más általános nyelvekben még ezt sem láttam eddig

Eiffel :)
Meg persze Clean is.

Ha már pénz is lényeg. A jó C programozók elég szép summát keresnek. Mert a jó C programozó kihalófélben van. És nem lehet mindent F#-ban meg java-ban írni.
Member
Posts: 53,925
Joined: Apr 15 2007
Gold: 11,500.00
Trader: Trusted
Oct 25 2014 01:29pm
Quote (Jason89 @ 25 Oct 2014 20:26)
Eiffel :)
Meg persze Clean is.

Ha már pénz is lényeg. A jó C programozók elég szép summát keresnek. Mert a jó C programozó kihalófélben van. És nem lehet mindent F#-ban meg java-ban írni.


erre kellesz te!

mondjuk régen mindig az hajtott hogy game engine-t sose fogok programozni, de manapság már abból is csak 3-4 fajta van, azt is C#-al vagy JavaScriptel scriptelik ._. (Unity ilyen), szóval ez a trauma se aktuális már
Member
Posts: 4,795
Joined: Apr 26 2007
Gold: 289.00
Oct 25 2014 01:38pm
Quote (Anarkin @ 25 Oct 2014 20:29)
erre kellesz te!

mondjuk régen mindig az hajtott hogy game engine-t sose fogok programozni, de manapság már abból is csak 3-4 fajta van, azt is C#-al vagy JavaScriptel scriptelik ._. (Unity ilyen), szóval ez a trauma se aktuális már


Amugy az Eiffel "curry"-zésére érdemes ránézni, mert írtó jópofa. C++-ba ilyet esetleg csak hackeléssel lehet csinálni (de meg lehet :) ). Ez annyira jó dolog, hogy a saját nyelvembe meg fogom csinálni értelmes módon.

A javascript-et azért tekintem közellenségnek, mert a böngészők azt tekintik "assembly" nyelvnek, ami egy kva szar ötlet volt. És ettől sajnos évtizedekig nem fognak szabadulni. Ha már a java-t választották volna, akkor egy fokkal jobb lenne. Viszont a java sajnos nem sandbox környezetben fut, ami security leak-hez vezet (erre rengeteg példát lehet mutatni). Nem vagyok biztos benne, hogy az IL-t lehet-e sandbox módban futtatni. Megjegyezném, hogy erre a célre a C sem jó, mert az se sandbox-olt. Egyébként hihetetlen, hogy a java-t nem hagyták meg sandbox-ban (nagyon régen az volt), pedig az iszonyat jó lenne a mai viszonylatban.
Member
Posts: 53,925
Joined: Apr 15 2007
Gold: 11,500.00
Trader: Trusted
Oct 25 2014 01:42pm
fejtörő, ha már feléledt a topiX

Code

// pl így lehet használni, sima fluid api-s osztály

// var myClass = new MyClass();
// myClass
// .WithColor(Colors.Red);
// .WithScale(2);
// .WithColor(Colors.Green); -- de semmi sem gátol meg, hogy mégegyszer meghívjuk ugyanazt a függvényt

public class MyClassOriginal
{
public Color Color { get; private set; }
public Size Size { get; private set; }
public int Scale { get; private set; }

public MyClassOriginal WithColor(Color color)
{
Color = color;
return this;
}

public MyClassOriginal WithSize(Size size)
{
Size = Size;
return this;
}

public MyClassOriginal WithScale(int scale)
{
Scale = scale;
return this;
}
}


hogyan oldaná meg ezt valaki?
legyen mondjuk java/csharp a nyelv
van rá idő
Member
Posts: 4,795
Joined: Apr 26 2007
Gold: 289.00
Oct 25 2014 01:47pm
Quote (Anarkin @ 25 Oct 2014 20:42)
fejtörő, ha már feléledt a topiX

Code
// pl így lehet használni, sima fluid api-s osztály

    // var myClass = new MyClass();
    // myClass
    //  .WithColor(Colors.Red);
    //  .WithScale(2);
    //  .WithColor(Colors.Green);    -- de semmi sem gátol meg, hogy mégegyszer meghívjuk ugyanazt a függvényt

    public class MyClassOriginal
    {
        public Color Color { get; private set; }
        public Size Size { get; private set; }
        public int Scale { get; private set; }

        public MyClassOriginal WithColor(Color color)
        {
            Color = color;
            return this;
        }

        public MyClassOriginal WithSize(Size size)
        {
            Size = Size;
            return this;
        }

        public MyClassOriginal WithScale(int scale)
        {
            Scale = scale;
            return this;
        }
    }


hogyan oldaná meg ezt valaki?
legyen mondjuk java/csharp a nyelv
van rá idő


Mi a feladat?
Member
Posts: 35,964
Joined: Dec 27 2007
Gold: 0.00
Oct 25 2014 01:47pm
Quote (Jason89 @ Oct 25 2014 07:13pm)
Milyen téma érdekel? "Normál" C++, template magic vagy TMP? Melyik szabvány (régebbi, C++11, C++14)?


c++11 és bármi jöhet, még csak ~3 hónapja kezdtem el dolgozni és már ez alatt is sokat tanultam ^_^
Member
Posts: 53,925
Joined: Apr 15 2007
Gold: 11,500.00
Trader: Trusted
Oct 25 2014 01:49pm
Quote (Jason89 @ 25 Oct 2014 20:38)
Amugy az Eiffel "curry"-zésére érdemes ránézni, mert írtó jópofa. C++-ba ilyet esetleg csak hackeléssel lehet csinálni (de meg lehet :) ). Ez annyira jó dolog, hogy a saját nyelvembe meg fogom csinálni értelmes módon.

A javascript-et azért tekintem közellenségnek, mert a böngészők azt tekintik "assembly" nyelvnek, ami egy kva  szar ötlet volt. És ettől sajnos évtizedekig nem fognak szabadulni. Ha már a java-t választották volna, akkor egy fokkal jobb lenne. Viszont a java sajnos nem sandbox környezetben fut, ami security leak-hez vezet (erre rengeteg példát lehet mutatni). Nem vagyok biztos benne, hogy az IL-t lehet-e sandbox módban futtatni. Megjegyezném, hogy erre a célre a C sem jó, mert az se sandbox-olt. Egyébként hihetetlen, hogy a java-t nem hagyták meg sandbox-ban (nagyon régen az volt), pedig az iszonyat jó lenne a mai viszonylatban.


szerintem annyira nem elrugaszkodott a valóságtól
volt egy jó hosszú google videó (valamelyik google IO-n) ahol a szakértő egy pár soros algoritmust úgy széthackelt 45 perc alatt, hogy majdnem c-gyors lett

ott van például a LUA nyelv, sok sok helyen használják, embeddelhető nyelv akármibe
pl WOW-ba így kell addonokat írni (sose wowoztam), de tudományos helyeken is használják

még az implementációját is meg lehet nézni (C-s), látszik hogy működik, ott a Stack, meg a globális dolgok, stb, csak úgy mint JavaScriptnél is láthatjuk azokat, ha pl VS-ben debuggoljuk a JScript Engine-t

egyik sem piszkálható assembly/bytecode/IL szinten (se a javascriptben nincs rá mód, se a lua-ban -- asszem), mégis tudnak azok is relatíve gyorsak lenni

10-15% performance loss (illetve a managed vs unmanaged történet) a mai világban csak ott jelenik meg kb, ahol feldolgozó algoritmusok futnak,
vagy pl gyártósorokon, hardware eszközön, ahol PONTOSAN 4 perc 23 másodperc 16 nanomásodperc alatt kell lefutnia valaminek (mert ezt egy GC-s környezetben nem igazán lehet garantálni, vagy csak olyan munkával, hogy akkor már egyszerűbb megírni natívan, célzott környezetre)

Quote (Jason89 @ 25 Oct 2014 20:47)
Mi a feladat?


ja az kimaradt, vagy csak túl implicit volt :D
hát hogy COMPILE time garantáljuk, hogy csak egyszer hívhatóak meg a függvényei

This post was edited by Anarkin on Oct 25 2014 01:50pm
Go Back To Magyar Topic List
Prev16364656667249Next
Add Reply New Topic New Poll