From: Francois Berenger <berenger@riken.jp>
To: caml-list@inria.fr
Subject: Re: [Caml-list] OCaml vs Ada and/or GUI options
Date: Wed, 11 Sep 2013 10:00:50 +0900 [thread overview]
Message-ID: <522FC0C2.8080600@riken.jp> (raw)
In-Reply-To: <20130910230928.2d51cd39@atmarama.noip.me>
You could also clearly decouple the "engine" of your software
from its GUI.
As was done in MLDonkey and plan9's sam test editor:
http://plan9.bell-labs.com/sys/doc/sam/sam.html
On 09/11/2013 06:09 AM, Gour wrote:
> Hello,
>
> TL;DR: Which type-safe language (I'm considering OCaml & Ada)
> would you recommend me for writing multi-platform open-source GUI app
> using some GUI (except GTK) bindings and why?
>
> Long version...
> Some years ago I was considering which language to use for
> writing multi-platform open-source GUI application. Considering it's
> meant to be done as hobby project, I wanted to avoid C(++), fiddling
> with pointers, memory allocation and other low-level stuff and hoped to
> use some more type-safe language to eliminate certain kind of bugs nad
> have more fun when programming.
>
> The idea of FP seemed interesting and I did start learning Haskell which
> was fun, but few potential contributors who showed up for the project,
> found Haskell's learning curve too steep and I admit that reading too
> many papers about category theory, monads everywhere was not too
> appealing to me as well.
>
> Contributors run away and I had to postpone the project.
>
> Later, when considering to revive idea of doing the project I did
> consider D, but found out it still too unstable and GTK bindings are
> practically the only choice.
>
> Some further exploration has brought me to Ada which seems to be very
> mature language, has performant compiler GNAT and even Qt bindings.
>
> Moreover, Ada's 2012 features with contracts & multi-core support look
> nice.
>
> For a short time I did considered OCaml, but although pleased with the
> language itself (although, based on my familiarity with both, I consider
> Haskell's syntax a bit cleaner), only GTK bindings were not satisfying.
> I know the bindings are mature, but GTK itself has poor support on
> Windows & Mac OS, small team of core devs, does not look good on
> non-Linux etc. and the recent steps with GTK3 & roadmap for GTK4 (where
> the GTK devs say that the toolkit is meant for 'small apps only' does
> not look promising). On top of that, I only see projects moving from GTK
> to Qt...
>
> For a short time I explored some exotic languages like Nimrod
> (interesting, but small community, only GTK bindings), then Cobra & F# -
> despite getting encouraging input: "I'd recommend F# hands down. OCaml
> is still a 1990s language."
> (http://stackoverflow.com/questions/12437792/converting-ocaml-to-f-is-there-an-ocaml-ide-with-gui-debugging-like-visual-stu/13076028#13076028),
> somehow I do not like idea of embracing NET/Mono considering that even
> do not have Mono installed on my (Debian) machine.
>
> Go lang is not interested for me, do not like Java stuff, Rust is not
> finished... which led me to Ada (or Python+Cython+PyQt as last resort).
> Actually, I was thinking to write backend stuff in Ada and then possibly
> use PyQt as GUI front-end.
>
> However, in a recent time when visiting OCaml's web site I could see
> that lot of things are going on...compiler is getting improved with
> multi-core support, lablQt, wxOCaml bindings, OPAM, editor tools...
>
> It looks as there is some kind of OCaml revival or am I completely
> wrong?
>
> Whatever it is, now I'm again looking closely to OCaml and although I am
> aware that the two languages are meant for programming in quite
> different styles/paradigms, I'd be grateful if someone can shed some
> comment and/or enhance my observations:
>
> a) both Ada and OCaml seems to have mature & robust compiler generating
> native code and although language-shootout's benchmarks are in favour of
> Ada, I believe that in practice OCaml compiler can generate quick-enough
> code for 'general GUI app' which is not too behind C(++) code
>
> b) both Ada & OCaml languages seems to be suitable languages for good
> engineering practice writing type-safe code discovering lot of bugs
> duing the development/compile phase albeit using different paradigms
> (e.g. imperative vs FP)
>
> c) both languages seems to have decent tools support - I am mostly
> satisfied using Vim - Ada has GNAT IDE and gprbuild system, but OCaml
> OPAM seems to improve situation a lot.
>
> d) Ada has mature GTK bindings and two projects with Qt bindings, but
> the more mature ones are not certain about Qt5 support. Otoh, OCaml's
> GTK bindings seems to be mature, but that does not influence me much
> considering general status of GTK's multi-platform support.
>
> I see that there is labltk project, some work on lablqt as well as
> wxOCcaml...Tk could be interesting 'cause I heard that it looks nice in
> newer releases and it is not so bloated.
>
> Lablqt initiative is inspiring, but does not, afaict, enjoy much support
> withing community, while wxOCaml project is tempting due to the reason
> that for long time (even while playing with Haskell) I was looking at wx
> bindings 'cause those are the only ones using native toolkits and
> looking good everywhere, although *today* I might be more please if
> OCamlPro would be behind lablqt for the simple reason of the state of Qt
> project vs wxWidgets.
>
> Another concern is whether wxOCaml is just a testing prototype or
> something one can count on?
>
> e) both Ada & OCaml are suited for open-source projects, but my
> impression is that OCaml's community is larger with much more projects
> and things going on while the Ada's open-source community is pretty
> limited and/or closed withing proprietary projects only.
>
> In #ocaml I was told that neither Ada nor OCaml are very suitable for
> writing GUI apps, but I still believe there is use-case for classical
> desktop apps and that it's not true that everything has to run within
> browser. :-)
>
> Can anyone provide some comments about my (imperfect) analysis and
> correct and misunderstanding I might have as well as providing some
> points which might be relevant to properly decide which
> language/ecosytem might be more suitable for my need of writing
> multi-platform open-source app using some GUI bindings?
>
> Besides that, I also have need for using Sqlite3 as well as 3rd party C
> lib providing some calculation functions. Any tool helping generating
> bindings for C libs?
>
>
> Sincerely,
> Gour
>
next prev parent reply other threads:[~2013-09-11 1:01 UTC|newest]
Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-10 21:09 Gour
2013-09-10 21:38 ` Paolo Donadeo
2013-09-11 5:24 ` Adrien Nader
2013-09-11 7:21 ` Kakadu
2013-09-11 8:21 ` [Caml-list] " Gour
2013-09-11 8:14 ` Gour
2013-09-11 18:17 ` Adrien Nader
2013-09-11 19:31 ` Gour
2013-09-11 19:53 ` Adrien Nader
2013-09-11 20:41 ` Gour
2013-09-11 21:01 ` Adrien Nader
2013-09-12 5:44 ` Gour
2013-09-12 6:31 ` Adrien Nader
2013-09-12 5:36 ` Gour
2013-09-12 6:48 ` Adrien Nader
2013-09-12 7:26 ` Gour
2013-09-11 20:06 ` Jon Harrop
2013-09-11 20:48 ` Anthony Tavener
2013-09-11 21:04 ` Adrien Nader
2013-09-12 14:40 ` [Caml-list] " Jon Harrop
2013-09-12 14:51 ` Alain Frisch
2013-09-12 14:57 ` Lukasz Stafiniak
2013-09-12 15:04 ` Alain Frisch
2013-09-14 3:05 ` Jon Harrop
2013-09-14 7:10 ` Kakadu
2013-09-14 11:37 ` Jon Harrop
2013-09-15 8:32 ` Kakadu
2013-09-14 23:51 ` Francois¡¡Charles Matthieu¡¡Berenger
2013-09-11 22:17 ` [Caml-list] " Richard W.M. Jones
2013-09-12 13:49 ` [Caml-list] " Jon Harrop
2013-09-12 13:58 ` Richard W.M. Jones
2013-09-11 9:49 ` David MENTRE
2013-09-11 10:14 ` Kakadu
2013-09-11 15:21 ` David MENTRE
2013-09-12 1:31 ` Francois Berenger
2013-09-11 18:43 ` Adrien Nader
2013-09-11 18:36 ` Adrien Nader
2013-09-11 19:34 ` [Caml-list] " Gour
2013-09-11 19:45 ` Adrien Nader
2013-09-11 22:06 ` [Caml-list] " Jacques Garrigue
2013-09-12 3:25 ` Ivan Gotovchits
2013-09-12 6:41 ` Adrien Nader
2013-09-12 11:49 ` Gerd Stolpmann
2013-09-11 19:17 ` [Caml-list] " Gour
2013-09-11 22:03 ` [Caml-list] " Jacques Garrigue
2013-09-12 8:16 ` Alain Frisch
2013-09-11 12:26 ` Jon Harrop
2013-09-11 18:48 ` Adrien Nader
2013-09-11 13:22 ` Paolo Donadeo
2013-09-11 13:33 ` Kakadu
2013-09-11 14:09 ` Paolo Donadeo
2013-09-11 19:36 ` Jon Harrop
2013-09-11 19:45 ` [Caml-list] " Gour
2013-09-12 12:55 ` [Caml-list] " Jon Harrop
2013-09-11 18:57 ` Adrien Nader
2013-09-11 19:01 ` Rudi Grinberg
2013-09-11 19:15 ` Adrien Nader
2013-09-11 8:10 ` [Caml-list] " Gour
2013-09-11 1:00 ` Francois Berenger [this message]
2013-09-11 5:07 ` [Caml-list] " rixed
2013-09-11 8:26 ` [Caml-list] " Gour
2013-09-11 9:23 ` rixed
2013-09-11 12:54 ` Leo White
2013-09-11 12:59 ` Gour
2013-09-11 19:06 ` Adrien Nader
2013-09-11 8:16 ` Gour
2013-09-11 9:00 ` Francois Berenger
2013-09-11 19:19 ` Gour
2013-11-17 20:12 ` [Caml-list] " Gour
2013-09-11 7:38 ` Gabriel Kerneis
2013-09-11 8:20 ` [Caml-list] " Gour
2013-09-11 11:42 ` Gerd Stolpmann
2013-09-18 11:42 ` [Caml-list] " Gour
2013-09-18 12:24 ` Gerd Stolpmann
2013-09-20 4:47 ` Gour
2013-09-19 8:11 ` Alain Frisch
2013-09-19 8:30 ` Daniel Bünzli
2013-09-19 8:47 ` Andreas Rossberg
2013-09-20 4:51 ` Gour
2013-09-20 12:04 ` Gerd Stolpmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=522FC0C2.8080600@riken.jp \
--to=berenger@riken.jp \
--cc=caml-list@inria.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox