{"id":663,"date":"2008-05-10T09:29:03","date_gmt":"2008-05-10T14:29:03","guid":{"rendered":"http:\/\/blogs.law.harvard.edu\/hoanga\/2008\/05\/10\/programming-languages-for-your-wince-d"},"modified":"2008-05-10T09:29:03","modified_gmt":"2008-05-10T14:29:03","slug":"programming-languages-for-your-wince-device","status":"publish","type":"post","link":"https:\/\/archive.blogs.harvard.edu\/hoanga\/2008\/05\/10\/programming-languages-for-your-wince-device\/","title":{"rendered":"Programming languages for your WinCE device"},"content":{"rendered":"<p>I got this <a href=\"http:\/\/emobile.jp\/products\/sh\/s01sh2\/index.html\">WinCE device<\/a> that I&#8217;ve been trying to wrangle into a nice cozy environment to do useful things so the first thing I started looking at was the availability of development tools that I can use directly on the device.<\/p>\n<p>In general, I prefer Ruby however I&#8217;m not wedded to it since I&#8217;d prefer a language that is more<\/p>\n<ul>\n<li>More mature for the host OS it&#8217;s running on<\/li>\n<li>Can actually DO something besides Hello World<\/li>\n<li>Actually can access standard libraries that would come with the desktop version (I don&#8217;t just want the language core)<\/li>\n<li>Maintained to some degree<\/li>\n<li>Not a PITA to install<\/li>\n<\/ul>\n<p>After looking around I dug up the following :<\/p>\n<ul>\n<li><a href=\"http:\/\/uema2.s8.xrea.com\/ruby-mswince\/\">Ruby WinCE<\/a><\/li>\n<ul>\n<li>Has Ruby 1.8.6<\/li>\n<li>Maintained to some degree<\/li>\n<li>Not much docs in English (that&#8217;s fine I read Japanese)<\/li>\n<li>The installer is basically unzip and plop into a directory somewhere<\/li>\n<li>Not much docs on what to do with it<\/li>\n<li>Looks like a &#8220;I got it compiled don&#8217;t know if it really works&#8221; project<\/li>\n<li>Seems there can be <a href=\"http:\/\/www.google.com\/search?hl=en&amp;q=ruby+wince+strerror&amp;btnG=Google+Search&amp;meta=\">string handling issues<\/a><\/li>\n<\/ul>\n<li><a href=\"http:\/\/www.target-earth.net\/gadgets\/code\/rubyce.html\">Ruby CE<\/a><\/li>\n<ul>\n<li>Also Ruby 1.8.6 based<\/li>\n<li>Seems to be in active development<\/li>\n<li>Looks like the developer is actually trying to get real code working with it<\/li>\n<li>More documentation on how to install and bootstrap it<\/li>\n<li>Seems more promising for using it for real coding over Ruby WinCE<\/li>\n<li>No lazy installer.  Zip files that need splatting on the filesystem<\/li>\n<\/ul>\n<li><a href=\"http:\/\/www.mazama.net\/scheme\/pscheme.htm\">Pocket Scheme<\/a><\/li>\n<ul>\n<li>An implementation of the Scheme programming language (Not all of it though)<\/li>\n<li>UTF-8 support (woot!)<\/li>\n<li>Rather well maintained<\/li>\n<li>The interpreter\/IDE integrates better with the OS<\/li>\n<li>Supports cut and paste better<\/li>\n<li>Actually has working sockets<\/li>\n<li>Can do file manipulation<\/li>\n<li>Code samples!<\/li>\n<li>Lazy Installer<\/li>\n<\/ul>\n<li><a href=\"http:\/\/pythonce.sourceforge.net\/\">Python CE<\/a><\/li>\n<ul>\n<li>A Python implementation for WinCE devices<\/li>\n<li>Looks actively maintained<\/li>\n<li>Actually has a wiki for documentation and it doesn&#8217;t seem THAT dead<\/li>\n<li>Python 2.5 support looks like its available<\/li>\n<li>Installer available<\/li>\n<li>Docs seem pretty good<\/li>\n<\/ul>\n<li><a href=\"http:\/\/www.comp.nus.edu.sg\/~luzm\/ppchugs\/\">PPC Hugs<\/a><\/li>\n<ul>\n<li>A Haskell (Hugs-based) implementation for WinCE<\/li>\n<li>Looks like someone&#8217;s school project<\/li>\n<li>Marked as alpha quality<\/li>\n<li>No idea what actually works<\/li>\n<li>Looks like another &#8220;It Compiles&#8221; projects<\/li>\n<li>Doesn&#8217;t look like its actively maintained<\/li>\n<li>Documentation looks sparse<\/li>\n<li>No lazy installer<\/li>\n<\/ul>\n<li><a href=\"http:\/\/perlce.sourceforge.net\/\">Perl CE<\/li>\n<ul>\n<li>An implementation of Perl for Pocket PC<\/li>\n<li><a href=\"http:\/\/www.rainer-keuchel.de\/wince\/perlce.html\">First page I hit<\/a> made it look like it was a dead project<\/li>\n<li>Docs seem sparse to me<\/li>\n<li>Looks like it has an installer (as long as you can find which version you need)<\/li>\n<\/ul>\n<li><a href=\"http:\/\/www.eggheadcafe.com\/forumarchives\/pocketpc\/Sep2005\/post23841938.asp\">WinCE Emacs<\/a><\/li>\n<ul>\n<li>Okay okay, not REALLY a programming language but&#8230; Emacs LISP is close enough&#8230;<\/li>\n<li>Looks like you&#8217;re stuck at Emacs 20.7<\/li>\n<li>Not sure keybindings on WinCE device will be liveable for a Emacs neophyte like me<\/li>\n<li>Not sure if there is active development to bring more recent Emacs versions<\/li>\n<li>Seems to have a lazy installer<\/li>\n<li><a href=\"http:\/\/www.emacswiki.org\/cgi-bin\/wiki?action=browse;oldid=EmacsOnPDA;id=Emacs_and_EmacsWikiMode_on_PDAs\">Emacs Wiki Page on WinCE Emacs<\/a><\/li>\n<\/ul>\n<\/ul>\n<p>Also <a href=\"http:\/\/www.pocketpcfaq.com\">pocketpcfaq.com<\/a> has a <a href=\"http:\/\/www.pocketpcfaq.com\/developer\/languages.htm\">nice listing of languages<\/a> you can run on your WinCE device.<\/p>\n<p>Too bad I didn&#8217;t find any of the following:<\/p>\n<ul>\n<li>OCaml<\/li>\n<li>Erlang<\/li>\n<li>Common Lisp<\/li>\n<\/ul>\n<p>So after looking at the choices, I think I&#8217;m down to Pocket Scheme, Ruby CE, and Python CE.   I guess I&#8217;ll try them all and report which one seems like the easiest to just goof around with and get something useful done on a CE device.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I got this WinCE device that I&#8217;ve been trying to wrangle into a nice cozy environment to do useful things so the first thing I started looking at was the availability of development tools that I can use directly on the device. In general, I prefer Ruby however I&#8217;m not wedded to it since I&#8217;d [&hellip;]<\/p>\n","protected":false},"author":703,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1101,972,260,1209],"tags":[],"class_list":["post-663","post","type-post","status-publish","format-standard","hentry","category-geek","category-programming","category-tech","category-windoze"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/archive.blogs.harvard.edu\/hoanga\/wp-json\/wp\/v2\/posts\/663","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/archive.blogs.harvard.edu\/hoanga\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/archive.blogs.harvard.edu\/hoanga\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/hoanga\/wp-json\/wp\/v2\/users\/703"}],"replies":[{"embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/hoanga\/wp-json\/wp\/v2\/comments?post=663"}],"version-history":[{"count":0,"href":"https:\/\/archive.blogs.harvard.edu\/hoanga\/wp-json\/wp\/v2\/posts\/663\/revisions"}],"wp:attachment":[{"href":"https:\/\/archive.blogs.harvard.edu\/hoanga\/wp-json\/wp\/v2\/media?parent=663"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/hoanga\/wp-json\/wp\/v2\/categories?post=663"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/hoanga\/wp-json\/wp\/v2\/tags?post=663"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}