Re: Ocaml applications

"Prasad Kursundikar [email protected] [ocaml_beginners]" <[email protected]>
Newsgroups gmane.comp.lang.ocaml.beginners
Message-ID <[email protected]>
Thanks all for the info. I work in  a project related to Email Archiving and indexing product. This product reads the mail from client's Microsoft Exchange server and pushes them Apache James(Java Mail server) instances . Metadata information is later added to every mail and then using Apache Lucene, we index the Email.Client then searches the mail based on his policies.Part of product is in C++(front end programs reading Exchange) and later part is in Java.I was thinking if any functional language like Ocaml could fit somewhere. The reason is code is pretty old and quite vast. The amount of time it takes to add new feature is quite high.
RegardsPK 


     On Tuesday, 12 May 2015 6:20 AM, "Hendrik Boom [email protected] [ocaml_beginners]" <[email protected]> wrote:
   

     On Mon, May 11, 2015 at 07:43:42PM -0400, Hendrik Boom [email protected] [ocaml_beginners] wrote:
> On Mon, May 11, 2015 at 10:03:34PM +0200, 'Mr. Herr' [email protected] [ocaml_beginners] wrote:
> 
> > Then it excels in systems programming: the Xen hypervisor is written
> > in OCaml I think, and work in this direction goes on with Mirage
> > (www.openmirage.org/) which will provide OS services for
> > applications that run on Xen (one might say a container on
> 
> I took a very casual look at some of ite source code, and that part 
> (qemu) appears to be written in a dialect of C or C++.
> 
> Evidently the wrong part.
> 
> Would you know just which of xen's components is written in ocaml? 
> I'm curious, because the low-level delay-sensitive hardware interaction 
> that things like hypervisors need don't seem to be ocaml's strong 
> point. Not that I think ocaml is likely to be unsuitable for the 
> project, but it will likely have to be supplemented with tight 
> real-time components that are insensitive to garbage collection delays.
> 
> Most of serious system programming is not concerned, however with 
> low-level hardware interaction. The main things you need there are 
> tools for avoiding bugs. Static typing helps a lot there, and usually 
> enables a compiler to generate fast code as well.
> 
> For my money ($0 because it's all free softwarae) I consider ocaml and 
> Modula 3 to be wotrhy competitors in the system programmming area.
> I believe Modula 3 has been furnished with true multicore parallel 
> processing by now, though garbage collection requires that all its
> processes stop and wait for it.

There's one thing neither ocaml nor Modula 3 handle well. You might 
want to write a code generator that generates new executable code and 
adds it dynamically to the already running program (yes the one that 
just generated that code). In Lisp and Scheme, this kind of extension 
is very much in the language designat least it's very much in the 
language design (provided you extend your program with more List code), 
But many implementations gie uup on doing this efficiently. They 
handle it with a raw source-code interpreter or compile to interpreted 
byte-code instead of to machine code.

-- hendrik
  #yiv0772981600 #yiv0772981600 -- #yiv0772981600ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv0772981600 #yiv0772981600ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv0772981600 #yiv0772981600ygrp-mkp #yiv0772981600hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv0772981600 #yiv0772981600ygrp-mkp #yiv0772981600ads {margin-bottom:10px;}#yiv0772981600 #yiv0772981600ygrp-mkp .yiv0772981600ad {padding:0 0;}#yiv0772981600 #yiv0772981600ygrp-mkp .yiv0772981600ad p {margin:0;}#yiv0772981600 #yiv0772981600ygrp-mkp .yiv0772981600ad a {color:#0000ff;text-decoration:none;}#yiv0772981600 #yiv0772981600ygrp-sponsor #yiv0772981600ygrp-lc {font-family:Arial;}#yiv0772981600 #yiv0772981600ygrp-sponsor #yiv0772981600ygrp-lc #yiv0772981600hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv0772981600 #yiv0772981600ygrp-sponsor #yiv0772981600ygrp-lc .yiv0772981600ad {margin-bottom:10px;padding:0 0;}#yiv0772981600 #yiv0772981600actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv0772981600 #yiv0772981600activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv0772981600 #yiv0772981600activity span {font-weight:700;}#yiv0772981600 #yiv0772981600activity span:first-child {text-transform:uppercase;}#yiv0772981600 #yiv0772981600activity span a {color:#5085b6;text-decoration:none;}#yiv0772981600 #yiv0772981600activity span span {color:#ff7900;}#yiv0772981600 #yiv0772981600activity span .yiv0772981600underline {text-decoration:underline;}#yiv0772981600 .yiv0772981600attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv0772981600 .yiv0772981600attach div a {text-decoration:none;}#yiv0772981600 .yiv0772981600attach img {border:none;padding-right:5px;}#yiv0772981600 .yiv0772981600attach label {display:block;margin-bottom:5px;}#yiv0772981600 .yiv0772981600attach label a {text-decoration:none;}#yiv0772981600 blockquote {margin:0 0 0 4px;}#yiv0772981600 .yiv0772981600bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv0772981600 .yiv0772981600bold a {text-decoration:none;}#yiv0772981600 dd.yiv0772981600last p a {font-family:Verdana;font-weight:700;}#yiv0772981600 dd.yiv0772981600last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv0772981600 dd.yiv0772981600last p span.yiv0772981600yshortcuts {margin-right:0;}#yiv0772981600 div.yiv0772981600attach-table div div a {text-decoration:none;}#yiv0772981600 div.yiv0772981600attach-table {width:400px;}#yiv0772981600 div.yiv0772981600file-title a, #yiv0772981600 div.yiv0772981600file-title a:active, #yiv0772981600 div.yiv0772981600file-title a:hover, #yiv0772981600 div.yiv0772981600file-title a:visited {text-decoration:none;}#yiv0772981600 div.yiv0772981600photo-title a, #yiv0772981600 div.yiv0772981600photo-title a:active, #yiv0772981600 div.yiv0772981600photo-title a:hover, #yiv0772981600 div.yiv0772981600photo-title a:visited {text-decoration:none;}#yiv0772981600 div#yiv0772981600ygrp-mlmsg #yiv0772981600ygrp-msg p a span.yiv0772981600yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv0772981600 .yiv0772981600green {color:#628c2a;}#yiv0772981600 .yiv0772981600MsoNormal {margin:0 0 0 0;}#yiv0772981600 o {font-size:0;}#yiv0772981600 #yiv0772981600photos div {float:left;width:72px;}#yiv0772981600 #yiv0772981600photos div div {border:1px solid #666666;height:62px;overflow:hidden;width:62px;}#yiv0772981600 #yiv0772981600photos div label {color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv0772981600 #yiv0772981600reco-category {font-size:77%;}#yiv0772981600 #yiv0772981600reco-desc {font-size:77%;}#yiv0772981600 .yiv0772981600replbq {margin:4px;}#yiv0772981600 #yiv0772981600ygrp-actbar div a:first-child {margin-right:2px;padding-right:5px;}#yiv0772981600 #yiv0772981600ygrp-mlmsg {font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv0772981600 #yiv0772981600ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv0772981600 #yiv0772981600ygrp-mlmsg select, #yiv0772981600 input, #yiv0772981600 textarea {font:99% Arial, Helvetica, clean, sans-serif;}#yiv0772981600 #yiv0772981600ygrp-mlmsg pre, #yiv0772981600 code {font:115% monospace;}#yiv0772981600 #yiv0772981600ygrp-mlmsg * {line-height:1.22em;}#yiv0772981600 #yiv0772981600ygrp-mlmsg #yiv0772981600logo {padding-bottom:10px;}#yiv0772981600 #yiv0772981600ygrp-msg p a {font-family:Verdana;}#yiv0772981600 #yiv0772981600ygrp-msg p#yiv0772981600attach-count span {color:#1E66AE;font-weight:700;}#yiv0772981600 #yiv0772981600ygrp-reco #yiv0772981600reco-head {color:#ff7900;font-weight:700;}#yiv0772981600 #yiv0772981600ygrp-reco {margin-bottom:20px;padding:0px;}#yiv0772981600 #yiv0772981600ygrp-sponsor #yiv0772981600ov li a {font-size:130%;text-decoration:none;}#yiv0772981600 #yiv0772981600ygrp-sponsor #yiv0772981600ov li {font-size:77%;list-style-type:square;padding:6px 0;}#yiv0772981600 #yiv0772981600ygrp-sponsor #yiv0772981600ov ul {margin:0;padding:0 0 0 8px;}#yiv0772981600 #yiv0772981600ygrp-text {font-family:Georgia;}#yiv0772981600 #yiv0772981600ygrp-text p {margin:0 0 1em 0;}#yiv0772981600 #yiv0772981600ygrp-text tt {font-size:120%;}#yiv0772981600 #yiv0772981600ygrp-vital ul li:last-child {border-right:none !important;}#yiv0772981600
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.