From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id E30BA7FEE7 for ; Thu, 27 Jul 2017 19:35:01 +0200 (CEST) Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=gary.trakhman@gmail.com; spf=Pass smtp.mailfrom=gary.trakhman@gmail.com; spf=None smtp.helo=postmaster@mail-oi0-f49.google.com Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of gary.trakhman@gmail.com) identity=pra; client-ip=209.85.218.49; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="gary.trakhman@gmail.com"; x-sender="gary.trakhman@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of gary.trakhman@gmail.com designates 209.85.218.49 as permitted sender) identity=mailfrom; client-ip=209.85.218.49; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="gary.trakhman@gmail.com"; x-sender="gary.trakhman@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-oi0-f49.google.com) identity=helo; client-ip=209.85.218.49; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="gary.trakhman@gmail.com"; x-sender="postmaster@mail-oi0-f49.google.com"; x-conformance=sidf_compatible IronPort-PHdr: =?us-ascii?q?9a23=3A1c/y0BG2UAzXZKttg0vVtJ1GYnF86YWxBRYc798d?= =?us-ascii?q?s5kLTJ7yo8mwAkXT6L1XgUPTWs2DsrQf2rqQ6/iocFdDyK7JiGoFfp1IWk1Nou?= =?us-ascii?q?QttCtkPvS4D1bmJuXhdS0wEZcKflZk+3amLRodQ56mNBXdrXKo8DEdBAj0OxZr?= =?us-ascii?q?KeTpAI7SiNm82/yv95HJbQhFgDmwbaluIBmqsA7cqtQYjYx+J6gr1xDHuGFIe+?= =?us-ascii?q?NYxWNpIVKcgRPx7dqu8ZBg7ipdpesv+9ZPXqvmcas4S6dYDCk9PGAu+MLrrxjD?= =?us-ascii?q?QhCR6XYaT24bjwBHAwnB7BH9Q5fxri73vfdz1SWGIcH7S60/VC+85Kl3VhDnlC?= =?us-ascii?q?YHNyY48G7JjMxwkLlbqw+lqxBm3oLYfJ2ZOP94c6zaYN0aWHFBXt5PWCNdHoOy?= =?us-ascii?q?YYwPD+8bMuZZqYn2ul8CoBS6CAWpAu7k1z1GiWLs3aAi3OshHwPJ0gwuEdwNrX?= =?us-ascii?q?rassn6ObwIXuyp1qTF1ynPY+9U1Dr79YPGcgohofaJXb9ocMTe01MvFgPYhVuO?= =?us-ascii?q?s4zqJTCV1uQIs2eB6eprSOWii2E9pAFrojmj3NssipPTiYIWylDE8D92wIAuKN?= =?us-ascii?q?23TU50e9+kEJ9Kuy6GMIt2R9ovTmd1syg0zb0GvIS0fCkMyJk/xh7fbeaHc4mS?= =?us-ascii?q?7R75WuaROy90hXJ/d7K/gBay9lKsxfH7VsmxyFpKsyxFktjStnwUzBzc8NaHSv?= =?us-ascii?q?x8/ki/wzqP2RrT5+dZKk43jarWM4AtzqI0m5YJsknOHjX6lFvrgKKVbEkp9eyl?= =?us-ascii?q?5uL6abv8vJCcLZV7igTmP6QuhMO/BeM4PxALX2eB+OS80KTv/Ur4QLlWl/E2nK?= =?us-ascii?q?bUvZTAKcQUoa65BABV0oI95BqlEzim19EYkWEGLFJDZh2Hk5DkN0/SLP38F/uy?= =?us-ascii?q?gFShnC11y/zbPbDtGJrAI3zbnLfkZ7l96kpcyAQpzdBY4pJZEr4BL+jpWk7xrt?= =?us-ascii?q?DYEgU5PBa3w+bnDdVyzIUeVHmAAq+cKqzSsFuI6vgzLOmLYY8ZoCz9JOQ95/7y?= =?us-ascii?q?kX85nkcQcrWz0psSbHC0B/BmI0SCYXrwmdoBCmcLvg8mTOPwklGCUDhTZ2yzX6?= =?us-ascii?q?0m/D07BpimXs//QdWIgbeB1Sq/VrYeWGlAC12WWSPtaYyCWvoWQCmXOYlqmzgY?= =?us-ascii?q?WLOhDYItyEfq/EXxwr9ja+7V4TEwtJT51dEz6feZ3UU5/DlwSsCcyH2lTmdun2?= =?us-ascii?q?pOSSVgj45lpkko5V6ZwOBEmfVbFdla4bsdXQ4gJNjA1eV5C9X7XCrOe96ITBCt?= =?us-ascii?q?RdDwUmJ5dc4439JbOxU1IN6llB2WmnfzDg=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0D5AABWI3pZhjHaVdFdDggHAQUBCwEYA?= =?us-ascii?q?QUBCwGEE20nhSqaRIJChl6HO4dBLIUbAoNlQhUBAQEBAQEBAQEBARIBAQEICws?= =?us-ascii?q?IKC+CMySCQQEBAQECASMdARsSDAMBCwYFCw0NHQICIgERAQUBChIGARIICgeJf?= =?us-ascii?q?QEDDQgQo08/jAqCBAUBHIMJBYNVChknAwpWgysBAQEBBgEBAQEBAQEZAgYSgxa?= =?us-ascii?q?DTYFhgnQwgxOBLGGCZoJhAQSIAwyXV4IohSeMVoJjj1mUKjOBFQ8mgSxTJF4ah?= =?us-ascii?q?G0fgTQ/QDYBiX8BAQE?= X-IPAS-Result: =?us-ascii?q?A0D5AABWI3pZhjHaVdFdDggHAQUBCwEYAQUBCwGEE20nhSq?= =?us-ascii?q?aRIJChl6HO4dBLIUbAoNlQhUBAQEBAQEBAQEBARIBAQEICwsIKC+CMySCQQEBA?= =?us-ascii?q?QECASMdARsSDAMBCwYFCw0NHQICIgERAQUBChIGARIICgeJfQEDDQgQo08/jAq?= =?us-ascii?q?CBAUBHIMJBYNVChknAwpWgysBAQEBBgEBAQEBAQEZAgYSgxaDTYFhgnQwgxOBL?= =?us-ascii?q?GGCZoJhAQSIAwyXV4IohSeMVoJjj1mUKjOBFQ8mgSxTJF4ahG0fgTQ/QDYBiX8?= =?us-ascii?q?BAQE?= X-IronPort-AV: E=Sophos;i="5.40,421,1496095200"; d="scan'208,217";a="232986697" Received: from mail-oi0-f49.google.com ([209.85.218.49]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 27 Jul 2017 19:35:00 +0200 Received: by mail-oi0-f49.google.com with SMTP id e124so153158041oig.2 for ; Thu, 27 Jul 2017 10:35:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=T0La0vx6jKZ0+EwxylSrqJC2I8dsKYdPbsvksiAm2b4=; b=S4ZgGHsq9NtnTXKUo2DLLvSIrGxV3dzMrvcSSj3BEOSntHOaFQGcpBlq2WUgmCBJjh dtjKHM2LiuCcQsrax8ikd2NzTcO8WMWllSHoHJDWtuFlO9RyC6TgVj/aDiibgsiNS52X N7U0Qc4v8xN0A6eZgNt43puG0Z0EDPHJutFaDF8MgFtGmpstWl7A3hOGIpWTx5ybS0z4 YmMf/9wHR8G8CKbs7tpv9/qoMyocpBlu2/Eiu5o7T2naAf2pTMFFDwsQoeJIAY2S35oQ tDPxxKS0k2hxDMW4muk6Dms1TojRw33r4Q9rLMOZRbT035we+AuUwghmZHUhjeGGmViH MpGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=T0La0vx6jKZ0+EwxylSrqJC2I8dsKYdPbsvksiAm2b4=; b=IbZPdqn7c+rEZKWGCNDzZkYDekwg+JSCAzu+AfBwG2Z7O6xAsZbBFjnlGPiTtMdzTq fCoV1MxbJOS29jPjBLBwM+B4SkXyRdkhAmC1I799Oz29PGpY5D4P2GxCb/1VckEDNFSu G4y62y9zrVejOs4ezlmqDBsidAYz2NnzVKM6tBZ1949SPQ7fQKLJYSyQfvG6RRuya+v0 lTIF7rjEYOW/bNHlY9n8LMGGmIgMywc9fezUViO+66K+Q4SL63iz2BovWNY9zPVt/L8q thghAAvqIAoiTahJEjfTZX2WA7idWtQHoRXijS/HDakaRBzjy5hvOGsMNah58mIWcVjL s6kw== X-Gm-Message-State: AIVw112hVjt2FTZytrDwVQQfQAc/JLrta23r5a7REBLjN1dk1PeHXqY4 JjA/yLzUeUeXZsYQVILdVuHt4d8jXA== X-Received: by 10.202.50.197 with SMTP id y188mr4990770oiy.76.1501176898480; Thu, 27 Jul 2017 10:34:58 -0700 (PDT) MIME-Version: 1.0 References: <20170725203527.dr43f6cjmdqqiq7p@delli7.univ-savoie.fr> In-Reply-To: From: Gary Trakhman Date: Thu, 27 Jul 2017 17:34:47 +0000 Message-ID: To: Michael C Vanier , "caml-list@inria.fr" Content-Type: multipart/alternative; boundary="001a113cf1e2c76e4005554ffb7b" Subject: Re: [Caml-list] A student feedback on OCaml --001a113cf1e2c76e4005554ffb7b Content-Type: text/plain; charset="UTF-8" Having used OCaml as a professional but not an enthusiast (I have a clojure-depth), I am not polarized but ambivolent three months in of daily use. I enjoy the type system and life inside the bounds of a shared codebase, but I'm finding a lot of the edge-system-integration (lack of 3rd party libs) adding up. Our company (Arena) fills in many of the gaps with python due to its relevance as a data-science language and our problem space, but I still think keeping everything in a JVM single process monolith (like I have in my past) saves a lot of process-churn and overhead. Shelling out for _anything_ breaks abstraction boundaries and requires complexity around build systems, etc., and we find ourselves doing it for things like making SOAP calls, parsing XLS files, etc. All these prevent me from spending more time writing OCaml code. Things like shared infrastructure, plentiful libraries, a fast shared GC in something like the JVM or CLR (or python or JS VM) can affect productivity more than the language design itself. Saying a language is 'better' depends on your use-cases, team-scale factors and tradeoffs. I myself can be very productive in a dynamic language, but I'm becoming convinced that a type-system can really matter in larger codebases, larger teams, or bitrot-prevention in code that is rarely touched and out of mind. Anyway, I provide these 2-cents because I think there are few people that come to work in OCaml (or any functional language) by happen-stance and it might be valuable feedback to someone. Being really excited about a language makes it easier to gloss over shortcomings. On Thu, Jul 27, 2017 at 12:49 PM Michael C Vanier wrote: > It's a cute drawing. It's hard to know more without any context. I > teach both Python and OCaml to undergraduates, but the students have to > learn Python first (to get a firm grasp on basic programming). My > experience with OCaml (which I vastly prefer to Python) is that it's > polarizing. Some students absolutely love it, but others struggle with > the language and have a hard time getting their programs to compile even > after weeks of effort. Such students are obviously going to prefer other > languages. > > Mike > > > On 7/25/17 4:35 PM, Christophe Raffalli wrote: > > Hello, > > > > Here is a student feedback: > > > > https://lama.univ-savoie.fr/~raffalli/pics/caml-versus-python.png > > > > Cheers, > > Christophe > > > -- > Caml-list mailing list. Subscription management and archives: > https://sympa.inria.fr/sympa/arc/caml-list > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs > --001a113cf1e2c76e4005554ffb7b Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Having used OCaml as a professional but not an enthusiast = (I have a clojure-depth), I am not polarized but ambivolent three months in= of daily use.=C2=A0 I enjoy the type system and life inside the bounds of = a shared codebase, but I'm finding a lot of the edge-system-integration= (lack of 3rd party libs) adding up.=C2=A0 Our company (Arena) fills in man= y of the gaps with python due to its relevance as a data-science language a= nd our problem space, but I still think keeping everything in a JVM single = process monolith (like I have in my past) saves a lot of process-churn and = overhead.=C2=A0 Shelling out for _anything_ breaks abstraction boundaries a= nd requires complexity around build systems, etc., and we find ourselves do= ing it for things like making SOAP calls, parsing XLS files, etc.=C2=A0 All= these prevent me from spending more time writing OCaml code.=C2=A0 Things = like shared infrastructure, plentiful libraries, a fast shared GC in someth= ing like the JVM or CLR (or python or JS VM) can affect productivity more t= han the language design itself.

Saying a language is = 9;better' depends on your use-cases, team-scale factors and tradeoffs.= =C2=A0 I myself can be very productive in a dynamic language, but I'm b= ecoming convinced that a type-system can really matter in larger codebases,= larger teams, or bitrot-prevention in code that is rarely touched and out = of mind.

Anyway, I provide these 2-cents because I t= hink there are few people that come to work in OCaml (or any functional lan= guage) by happen-stance and it might be valuable feedback to someone.=C2=A0= Being really excited about a language makes it easier to gloss over shortc= omings.

On= Thu, Jul 27, 2017 at 12:49 PM Michael C Vanier <mvanier@cms.caltech.edu> wrote:
It's a cute drawing.=C2=A0 It's hard to kno= w more without any context.=C2=A0 I
teach both Python and OCaml to undergraduates, but the students have to
learn Python first (to get a firm grasp on basic programming).=C2=A0 My
experience with OCaml (which I vastly prefer to Python) is that it's
polarizing.=C2=A0 Some students absolutely love it, but others struggle wit= h
the language and have a hard time getting their programs to compile even
after weeks of effort. Such students are obviously going to prefer other
languages.

Mike


On 7/25/17 4:35 PM, Christophe Raffalli wrote:
> Hello,
>
> Here is a student feedback:
>
> https://lama.univ-savoie.fr/~r= affalli/pics/caml-versus-python.png
>
> Cheers,
> Christophe


--
Caml-list mailing list.=C2=A0 Subscription management and archives:
https://sympa.inria.fr/sympa/arc/caml-list
Beginner's list: http://groups.yahoo.com/group/ocam= l_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs
--001a113cf1e2c76e4005554ffb7b--