Coffee script .. és tovább
2012-11-09T10:50:57+01:00
2012-11-14T13:49:11+01:00
2022-07-19T03:48:15+02:00
  • Kezd tovább "fejlődni" a történet, mert kellet még pár új szintaktikai elem, hogy a lehetőségekhez képest shiftmentesen lehessen programozni:

    // JS Post.find(function(err,d){console.log(d.length)}) // Coffee Post.find (err,d)-> console.log d.length // .. Post.find ,, err,d ,,. console.log d.length // funkció definiálás: // JS function szorzas (x,y){ return x*y } // Coffee szorzas =( x,y )-> x*y // .. szorzas .,, x,y ,,. x*y //illetve //JS function valami(){return "valami"} // .. valami .,,. %valami
    Mutasd a teljes hozzászólást!
  • Azért gondolkodom ( implementáltam is ) ebben a megoldásban, mert egy online textarea-ban írom a teszt scripteket, és még az is változó, hogy épp pc-ről, tabletről vagy telefonon keresztül szerkesztek.

    A téma alapvető felvetése, hogy érdemes-e egy nagyobb lélegzetvételű feladathoz saját nyelvet, vagy nyelv kiterjesztést fejleszteni? Az ICF-et nézve az a meglátásom, hogy igen. A coffee eleve tartalmaz egy csomó olyan megoldást ami nagyon szimpatikus, például a /// -a regexp olvashatóvátételére és a szövegrészekhez a """-t. Az ICF-ben pedig az await - defer páros.

    Lehet, hogy felfrissítem a scala-val szerzett tapasztalataimat és onnan is felhasználok néhány megoldást.
    Mutasd a teljes hozzászólást!
  • Általában angol billentyűt használok a programozáshoz, viszont a .. -ot fényévekkel könnyebb leírni, mint a -> -t. Még a function-t is könnyebb leírni, mert ott elég fu esc entert ütni notepad++-ban . Sőt ctrl+enter-re az előtte lévő szó és az adott nyelv konstellációjától függően egy tetszőleges text bejön, például a pif és a puf as-ben a:

    private function (){ } public function (){ }

    de a coffee script eleve arról szól, hogy annyira egyszerűsít a szintaxison amennyire csak lehet, például egy select txt from Post-nak megfelelő asszinkron lekérdezés mongodb-ből ( aa a függvény ami kiírja nekem az eredményt. )

    // JS Post.find(function(r,w){for(var i=0;i<w.length;i++){ aa(w[i].text) }}) # coffee Post.find (r,w)-> aa d.text for d in w # coffee.. itt nincs nagy külömbség Post.find (r,w).. aa d.text for d in w
    Mutasd a teljes hozzászólást!
  • Én abban gondolkodnék, hogy az editoromban egy billentyűhöz (mittodomén F1-hez) hozzárendelném az arrow operátort.

    Továbbá én a Unicode-ot elterjedtnek tartom ahhoz, hogy igazán elfogadhatná a unicode arrow karaktert (&#8594;) a coffeescript a két karakter helyett: (->). Mint a Scala. És akkor nyilván az F1-hez már ezt rendelném hozzá. Itt a feature request a &#8594; -hez, (nem tudom betették-e már):

    jashkenas/coffeescript
    Mutasd a teljes hozzászólást!
  • Telefonon és tableten nem tud.

    Bár szerintem van billentyűzet direkt programozáshoz is.
    Mutasd a teljes hozzászólást!
  • Jol ertem, hogy nem tudsz >-t beirni, mert magyar billentyuzeted van..?

    Szerk: nem jol ertem, de akkor is viccesnek tunik, hogy ezert problemazol.
    Mutasd a teljes hozzászólást!
  • Folyton az jár a fejemben, hogy miképpen lehetne egyszerűbben programozni. A hobbi MMORPG fejlesztésem során ami eleddig JS-ben folyik, egyre inkább azzal szembesülök, hogy a JS nem kínál fel nyelvi szintű eszközöket az asszinkron folyamatok kezelésére.

    Így találtam rá a:
    IcedCoffeeScript

    Eddig kerültem a coffee scriptet, mert a JS az ami mindenhol fut. Viszont most beraktam egy coffee compilert az admin konzolba, ahol eddig JS részeket lehetett a szerver oldalon futtatni, így most már tetszés szerint tudok JS és coffee kódokat is használni. Ez utóbbinak a sallagmentes szintaxisa az ami megragadott, még mobil eszközön is kényelmesen beírható.

    De egyből beleütköztem a ()-> leírásának a problémájába, ami főleg a > jel miatt van ( angol bill: shift+: , magyaron altgr+>) erre csináltam egy gyors szintaxis módosítást:

    fun = (p)-> muvelet p --> fun = (p).. muvelet p fun = ()-> 42 --> fun =.. 42 fun() --> fun.. "#{x}:#{y}" --> "{..x}:{..y}" "nonbreakedText" --> %nonbreakedText fun p ..x --> fun(p).x

    Mivel a .. -ot sokkal egyszerűbb leírni ( még egy iPad-en, android-on is az alap kiosztás része )
    A js template scriptem pedig már régóta a {..param} megoldást használja, mivel így sokkal átláthatóbb, mint a #{param} formátum.

    String.prototype.temp = function(o){ return this.replace(/\{\.\..*?\}/g,function(m,c){return o[m.slice(3,m.length-1)] || "?"+m+"?" }) }

    A %szoveg megoldás meg a Rebolból jön.

    A kérdésem az, hogy szerintetek ebbe a jelölésrendszerben hol a buktató? Illetve érdemes-e a coffee script specializált változatán gondolkodni?
    Mutasd a teljes hozzászólást!
abcd