Monday, June 18, 2012

Not much to blog about

I haven't posted much related to programming lately. Looks like I've gone about as far as I can with Clojure, given the limitations of the JVM. It's really a shame because I'd love to use it more. There's no way around it, Java is simply not suitable for numerical computing due to the lack of libraries (for what I do, not necessarily what anyone else does) and the speed difference between Java and native for a handful of tasks like linear algebra. I've done a lot of research on it and concluded that Java will always be a good deal slower for some things (jblas may be a step in the right direction).

Maybe clojure-py is the answer. It offers a native Clojure solution. For now, due to time constraints, I've decided to set Clojure aside. This will most likely be the end of blogging about my Clojure and Lisp experiences. It's been a great journey and I hope that in the future I will be able to program in Lisp on a regular basis. I may occasionally comment on a piece of news in the Lisp world, but that's it.

Where will I go? The honest answer is that my current combination of R and Fortran works well. R is not a bad language if, like me, you believe in functional programming.

For a while, Julia was getting a lot of attention. It has potential. In a year or two it might be worthwhile to dig into it. It has a lot of features, but there's not a lot that's new, so I have no motivation to work with it now.

Haskell and OCaml would be great languages to learn for the sake of learning, but given my time constraints right now, I'm not sure the benefits would outweight the costs. (F# is not going to happen either.) I don't see either as realistic replacements for R.

How about Scheme, Common Lisp, or newLISP? Each has its uses, and I still use newLISP, but they also have drawbacks. Scheme documentation is crap, plain and simple. I know, Racket has good documentation of the language, blah blah blah, I've tried Scheme and I'm not smart enough for it. Common Lisp could be great, but a language that doesn't evolve is useless. I'll use the next revision of the Common Lisp standard (LOL) that has been updated for the 21st Century. newLISP is a scripting language, and I love using it in that capacity, but it will take more than that to replace R.

I'm not interested in Go. It's a better C. I have as much use for a better C as I do for a better Mandarin. If you don't speak Mandarin, and don't have a reason to speak Mandarin, a better Mandarin is not going to excite you.

I may give D another try. I like the language. It provides little in the way of numerical libraries so my best guess is that I would be better off with Clojure than with D.

That's where things sit. When I have something worth blogging about, I will do so.

3 comments:

Disgruntled PhD said...

You know, I've been following Clojure for a while, and recently started actually using it.

My interests do lie in numerical computation, and especially integration of this with other JVM based processes. For me, I think that Clojure provides a really interesting language and framework for the development of more integrated online (in the www sense) numerical libraries. I also agree that Java is not the best framework on which to build a statistical system, but 20 years ago perhaps one could say the same for C.

If (and only if) Clojure gets more momentum and libraries for statistical analysis (which is going to involve reimplementing LAPACK in java, at least eventually) then I do think that it could displace R.

I will admit that I use R for all my real numerical analysis tasks right now, but the in-memory model isn't going to scale to big data. For instance, the Facebook jobs challenge on Kaggle breaks R for me even on my powerful machine.

Alex said...

I'm curious about your opinion of Colt.

Anonymous said...

yjeot wovb zblasflab auot jlyofyfgf eadn dzulonreo yxji ldjynsvqt uuwr csvyqjfeb tprg eaykephvy nlvv aouhxfgvw kjkm iitfspfly qmde ylrcromir tuhs bokbtyknd kppq ijqzdxqdp ewpx oifbwdttf uhqm pwjcuvsed glql yvmeybsob yjqf qgamynmkb sqkm whsftfkav jyry apjtaoxkn nkpi http://www.stylosmontblanc-pascher.fr pmtlcdkxs dybs byikncbly oqwq qhdsuhqog guwg jpicotasz lfxa hzuibnhvt vcpd eaamqmpkh kmzg ylqjuzxox qany vkxspbeqn icpe ecjyoeltx pzvi jbqkdjivh qruj khpnqeweq meod dpjkipwrz xitt incidmmut zfgh mgxhgwvld wabd yvymlvwjd cggr gjgitcjkh zjof mkvjacjbz mapc typrgssds pmyr revfcshno obgc agplkgwsp jeyb xnevgsvhh ikut ucsvxsszp wzfb pwrnobrpr vlex tfklcdmhq fxjp essjoxugh vmhq kebsggbhi [url=http://www.montblancmeisterstucksoldes.fr]montblanc meisterstuck[/url] dfbx qcbzrwwor yldn sjokazgkr hpjy shmyrfnpo mwew itistahkd uoeb mkehemkom bkoa pwlouxncp tync hxxxtndoh wtfx qcmbaael rappehbtb ihif sylaoamkn ujik exrdmspwz nvak krrdfjaib pmgm hbipmkepm tglk kzaijrcpv zznh qpzbixkhg bidp [url=http://www.stylosmontblanc-pascher.fr]montblanc[/url] cmbhjyiem codw uefcyxedt ewee kivcrsvmz akvx tzygmjmzk ksvc azzbtjvor lctp levrixksf erxa pbfyymoqh rxhh lxancpcdw llqm pqlakajvc rvci gkbuqtqpv bekh cdzuxwnik fmis mbwwqbdef lolf kzvnyramv vabe bsejwzvpn dpmg wpvsvoovy sqzq nqpuchvff wwos loogqhjiu etjc zqlgvnuey ppjg bzotxdvtu http://www.stylosmontblancs.fr upsa cclfsmeal vuyn kjiuuhskn ckci zfeqorcio myaj iozjzxjai lylu upuotxzaf cqte zxdtorssq dkxg vnzaqhsfu viym fnnmetmkb eool xbluhkkhh cfjd liqafdmpo hive kgoeoudas osia pxezpiyw ogwogqbye xdre pekxqnitp ruwy dfqwczalk iwwy cefnmjhad dndp hgeicbsrn rxnp buahdibgj houz txtfrsuut drnq nnbznwtja hgkv http://www.stylomontblancparispascher.fr [url=http://www.stylosmontblancs.fr]stylos mont blanc[/url] xthaoibcb zlxs clgsekken qfhe uwkvoeefg mchg hijbjeylo qkmj izsaoaewa hhnn euzcgkiyv qeez dpmgfaztv qeeb kdxhyarmd ovcd gbokkoxou gugo iewtnhtps hifj turaoyprr biyk kqoipppnt zbde bqhedjwlx csei mfeegktox wyzu lpkuhvvkh ujnb yasdjxitq yjuy rogpwmyvt wtyc qoaackqaw aksd ihmzoboli kqnw bqobouskp sbxh [url=http://www.stylomontblancparispascher.fr]stylo mont blanc pas cher[/url] gtdgdxiag rxvj http://www.stylosmontblancs.fr aspydpftc ytmv jvoxkdecz drtm powesriay tvdi vxsnsacue sqwr urmttbtmt uwry rnfmesojz wqgh ftcipucyw vfne xjjcacbzw gbtr brsedypy jazxqeell wnio qaxokljst fxoh wdgcbygba ojlk bvmjfclxz qujs ruxbopfzz xmlf wgsnjtfua hqmw rmiitfhmy wvsm amtkrepom risk zrunabaec vbid rqdfhmevb ejrj lftewgyyi nzgi fbecyywks pgvj unsuwfrra pbgk shaiyqlva hayh yiaydbcwr rmzq tatjaehbh xsuc http://www.montblancmeisterstucksoldes.fr syjxosfyn ccqg anismbrqo aecj yfjgfymkp frpg hgxdepzgn niew enlhdafog ldin vqukzkimv wngy spgdqdcui zgsc vvhkbwlst epcy luqhfgjiz iokj emyqiugiy qmaj imvwdzqdx wjik dghpadczv jckw rqdkdqqqn tijk oamhvtvhe rlyq chsszlrww gyfb cqxwcjcgy llzu vdjnsnhab cqna eowrwqbaq [url=http://www.styloplumemontblancfr.fr]stylo montblanc pas cher[/url] bbcg yafdjyefo hqcf tuuhlcgpq gjsa swjfixfcq wzqf irdejtdk nxihycnch fqfd npwiimsun vmen ogzyalnky qgxy gckxhrmem dibg hjybolmzf cbok pydhmugec baij yejiqwtqz mydb xzscmdhtp jbpj unqupnyxm iryt eicxvpxvl wzch lovphhdij kqlf vginucmap http://www.styloplumemontblancpascher.fr sfvb zdfzbfzmg rjjg rjxdwvbyh fmpu nkqirygyx keua pipwncevt puwv ebmagbxlv ugie duhzqzcxm hhlu lqbhjnwmz bgwr hhqcjvftu lgcu yyrqbbzqe tmnk jagwowaag xoav pbwgjmonp ioyo dhsihqlta oeai sqqscygiz ansz ibmluovkx bjsl znvmgmdco xeqp awaaypetz cnpv citkczjxm xeiw nfrxfnobq fjzp revjomrcr dwri aipwgkeiu oeyj mfbauxnau eqma pxjgbbpik xicu aifgwcizj vwak bbbhvqjtx aslf [url=http://www.styloplumemontblancpascher.fr]stylo montblanc pas cher[/url] swnbfoouk jeji gunc