Re: Ocaml applications

"[email protected] [ocaml_beginners]" <[email protected]> Thu, 14 Apr 2016 14:52:02 +0000 (UTC)
Newsgroups gmane.comp.lang.ocaml.beginners
Message-ID <[email protected]>
Thanks a lot guys. 
RegardsPd 

    On Thursday, April 14, 2016 7:55 PM, "Gabriel Scherer [email protected] [ocaml_beginners]" <[email protected]> wrote:
 

     If you are familiar with the style of system programming used on Unix systems using C, there is a  good online book about system programming in OCaml that follows the same style:

  https://ocaml.github.io/ocamlunix/

The OCaml community has since developed other abstractions for system programming, in particular the cooperative concurrency monads libraries (Lwt or Async) to deal with asynchronicity, see the Lwt manual at
  https://ocsigen.org/lwt/manual/
but using the more low-level Unix approach (which also works on Windows if you don't use fork() or the other few unsupported features) is also fine if you are familiar with it.

> My view is if you are developing these kind of applications(non-web), latency should be low and comparable with C++/Java.
> For example, imap server in Ocaml or text search library

That should be entirely within reach.

OCaml has been used for search engine technology at Mylife ( http://lambda-the-ultimate.org/node/3903 ) and for web scraping at Ahrefs ( https://github.com/ahrefs ), and you will fine plenty of system-level programming in the MirageOS project ( https://mirage.io/ ), a library operating system, for example they have a full-OCaml TCP/IP stack.

On Thu, Apr 14, 2016 at 6:54 AM, [email protected] [ocaml_beginners] <[email protected]> wrote:

 

Thanks a lot Herr.Yes, Ruby is popular. My view is if you are developing these kind of applications(non-web) , latency should be low and comparable with C++/Java.  for example, imap server in Ocaml or text search library.  i am not sure how is compared to Java-James  or Apache Lucene . or Erlang one. Currently i am not working in the niche areas mentioned. Mainly text search.Thanks again for info.
RegardsPd
 

    On Thursday, April 14, 2016 1:04 PM, "'Mr. Herr' [email protected] [ocaml_beginners]" <[email protected]> wrote:
 

      trying some answers, see inline
 
 On 14.04.2016 05:55, [email protected] [ocaml_beginners] wrote:
  
    Hello, I am new to Ocaml and thinking of learning. 
   
 Congratulations. OCaml is one of the big sources for feature inspiration these times.
 
    What are typical use cases of Ocaml ? What kind of applications Ocaml fits in ?    
 see http://ocaml.org/learn/success.html. 
 
 To be honest OCaml is more a niche language, but with unique features, so 
 it will be used in many kinds of applications, by people who have special knowlegde and expertise in informatics.
 
 It's origins are in mathematics and logic, so a big special application is computer aided correctness proofs (formal methods).
 
     I read that its quite fast(possibly as Java) .    
 It has compact byte code, it can be run as a script, and it can be compiled to native code needing only the system libc. 
 
 And yes, it can be fast. If being fast were the main consideration, Ruby would never have seen more than a bunch of users.
 
     Does it fit in developing network servers ? How matured  Ocaml libraries are in developing socket/network  based applications ?  
     
 Read about https://mirage.io/ MirageOS: writing a minimal operating system running directly on Xen and hosting your application.
  
    May be foolish question- Does Ocaml make native C call  for writing to say Socket or File ? 
     
 It uses libc which is recommended on *nix systems because it abstracts away many details of the binary API.
 
 To be precise "native C call" should rather be "native library call", unix .so libraries are compiled to machine code
 and can be called by any other machine code respecting the calling conventions. 
 
 Other platforms: on MS Windows there is F#, which is a .NET offspring of OCaml.
 
 /Str.
  

   



  #yiv4640985972 #yiv4640985972 -- #yiv4640985972ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv4640985972 #yiv4640985972ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv4640985972 #yiv4640985972ygrp-mkp #yiv4640985972hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv4640985972 #yiv4640985972ygrp-mkp #yiv4640985972ads {margin-bottom:10px;}#yiv4640985972 #yiv4640985972ygrp-mkp .yiv4640985972ad {padding:0 0;}#yiv4640985972 #yiv4640985972ygrp-mkp .yiv4640985972ad p {margin:0;}#yiv4640985972 #yiv4640985972ygrp-mkp .yiv4640985972ad a {color:#0000ff;text-decoration:none;}#yiv4640985972 #yiv4640985972ygrp-sponsor #yiv4640985972ygrp-lc {font-family:Arial;}#yiv4640985972 #yiv4640985972ygrp-sponsor #yiv4640985972ygrp-lc #yiv4640985972hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv4640985972 #yiv4640985972ygrp-sponsor #yiv4640985972ygrp-lc .yiv4640985972ad {margin-bottom:10px;padding:0 0;}#yiv4640985972 #yiv4640985972actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv4640985972 #yiv4640985972activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv4640985972 #yiv4640985972activity span {font-weight:700;}#yiv4640985972 #yiv4640985972activity span:first-child {text-transform:uppercase;}#yiv4640985972 #yiv4640985972activity span a {color:#5085b6;text-decoration:none;}#yiv4640985972 #yiv4640985972activity span span {color:#ff7900;}#yiv4640985972 #yiv4640985972activity span .yiv4640985972underline {text-decoration:underline;}#yiv4640985972 .yiv4640985972attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv4640985972 .yiv4640985972attach div a {text-decoration:none;}#yiv4640985972 .yiv4640985972attach img {border:none;padding-right:5px;}#yiv4640985972 .yiv4640985972attach label {display:block;margin-bottom:5px;}#yiv4640985972 .yiv4640985972attach label a {text-decoration:none;}#yiv4640985972 blockquote {margin:0 0 0 4px;}#yiv4640985972 .yiv4640985972bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv4640985972 .yiv4640985972bold a {text-decoration:none;}#yiv4640985972 dd.yiv4640985972last p a {font-family:Verdana;font-weight:700;}#yiv4640985972 dd.yiv4640985972last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv4640985972 dd.yiv4640985972last p span.yiv4640985972yshortcuts {margin-right:0;}#yiv4640985972 div.yiv4640985972attach-table div div a {text-decoration:none;}#yiv4640985972 div.yiv4640985972attach-table {width:400px;}#yiv4640985972 div.yiv4640985972file-title a, #yiv4640985972 div.yiv4640985972file-title a:active, #yiv4640985972 div.yiv4640985972file-title a:hover, #yiv4640985972 div.yiv4640985972file-title a:visited {text-decoration:none;}#yiv4640985972 div.yiv4640985972photo-title a, #yiv4640985972 div.yiv4640985972photo-title a:active, #yiv4640985972 div.yiv4640985972photo-title a:hover, #yiv4640985972 div.yiv4640985972photo-title a:visited {text-decoration:none;}#yiv4640985972 div#yiv4640985972ygrp-mlmsg #yiv4640985972ygrp-msg p a span.yiv4640985972yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv4640985972 .yiv4640985972green {color:#628c2a;}#yiv4640985972 .yiv4640985972MsoNormal {margin:0 0 0 0;}#yiv4640985972 o {font-size:0;}#yiv4640985972 #yiv4640985972photos div {float:left;width:72px;}#yiv4640985972 #yiv4640985972photos div div {border:1px solid #666666;height:62px;overflow:hidden;width:62px;}#yiv4640985972 #yiv4640985972photos div label {color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv4640985972 #yiv4640985972reco-category {font-size:77%;}#yiv4640985972 #yiv4640985972reco-desc {font-size:77%;}#yiv4640985972 .yiv4640985972replbq {margin:4px;}#yiv4640985972 #yiv4640985972ygrp-actbar div a:first-child {margin-right:2px;padding-right:5px;}#yiv4640985972 #yiv4640985972ygrp-mlmsg {font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv4640985972 #yiv4640985972ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv4640985972 #yiv4640985972ygrp-mlmsg select, #yiv4640985972 input, #yiv4640985972 textarea {font:99% Arial, Helvetica, clean, sans-serif;}#yiv4640985972 #yiv4640985972ygrp-mlmsg pre, #yiv4640985972 code {font:115% monospace;}#yiv4640985972 #yiv4640985972ygrp-mlmsg * {line-height:1.22em;}#yiv4640985972 #yiv4640985972ygrp-mlmsg #yiv4640985972logo {padding-bottom:10px;}#yiv4640985972 #yiv4640985972ygrp-msg p a {font-family:Verdana;}#yiv4640985972 #yiv4640985972ygrp-msg p#yiv4640985972attach-count span {color:#1E66AE;font-weight:700;}#yiv4640985972 #yiv4640985972ygrp-reco #yiv4640985972reco-head {color:#ff7900;font-weight:700;}#yiv4640985972 #yiv4640985972ygrp-reco {margin-bottom:20px;padding:0px;}#yiv4640985972 #yiv4640985972ygrp-sponsor #yiv4640985972ov li a {font-size:130%;text-decoration:none;}#yiv4640985972 #yiv4640985972ygrp-sponsor #yiv4640985972ov li {font-size:77%;list-style-type:square;padding:6px 0;}#yiv4640985972 #yiv4640985972ygrp-sponsor #yiv4640985972ov ul {margin:0;padding:0 0 0 8px;}#yiv4640985972 #yiv4640985972ygrp-text {font-family:Georgia;}#yiv4640985972 #yiv4640985972ygrp-text p {margin:0 0 1em 0;}#yiv4640985972 #yiv4640985972ygrp-text tt {font-size:120%;}#yiv4640985972 #yiv4640985972ygrp-vital ul li:last-child {border-right:none !important;}#yiv4640985972