From: ezkcdude <zamir.evan@gmail.com>
Subject: Re: Newbie Needs Ada Advice
Date: 8 May 2007 09:49:39 -0700
Date: 2007-05-08T09:49:39-07:00 [thread overview]
Message-ID: <1178642979.016955.3670@n59g2000hsh.googlegroups.com> (raw)
In-Reply-To: <hw1whrz457.fsf@hod.lan.m-e-leypold.de>
On May 8, 11:11 am, Markus E Leypold
<development-2006-8ecbb5cc8aREMOVET...@ANDTHATm-e-leypold.de> wrote:
> ezkcdude <zamir.e...@gmail.com> writes:
> > Markus, thanks for the advice. I'm one of those people who loves to do
> > the "right" thing, and it seems to me like Ada is, in theory, a great
> > programming language. Of course, one has to be practical. The main
>
> In theory.
>
> > issues that I am trying to wrestle with is how I would implement a GUI
> > and, in general, handle graphics (display, manipulation, input/
> > output).
>
> I've been using GtkAda in the past. It is workable, but one has to
> realize that GUIs are a problem in themselves: Lot's of
> text-to-whatever-type conversion when you read stuff from the GUI back
> into your program (and if you have, say 70 fields of all different
> types in you program that means you have (at least) 140 functions
> text->typed data and typed-data->text. Some kind of generic,
> meta-programming or generation from definition obviously must take
> place then.
>
> GUIs are also rather stateful and inherently concurrent (you cannot
> prevent the use from clicking button X while you're processing another
> data entry event that might disable X).
>
> It boils down to the result that GUIs introduce a huge load of
> complexity into programs where a sequential interaction would be
> trivial.
>
> About GtkAda:
>
> - Docs: The docs are somewhat spurious: You have to be able to read
> the original Gtk-Docs against them and then you still have to be
> able to read the source to find out what really happens. Good
> examples are rare.
>
> - License: Is pure GPL whereas Gtk is LGPL. This might not matter to
> you, but I've really been bitten by the license change from GMGPL
> with linking exception, and further enraged by the abolutely
> surreal prevarication I got from AdaCore (always offensively trying
> to imply that there never was a linking exception w/o actually
> saying so -- probably because this would have clashed with the hard
> evidence :-) when asking when the license change took place -- so I
> won't forget to mention it here.
>
> - Portability: last time I checked, GtkAda only worked with Gnat (and
> specific versions too). So you'll be locked to Gnat (probably)
> which opens up all those can of worms with the different licensing
> and maturity of the compilers (which you should try to research for
> yourself, since that is a really long story).
>
> > Java seems much more ready-made for these tasks at the moment, and I
> > don't see the Ada packages have that much enthusiasm or
> > support. It's unfortunate, because like I said, Ada seems like the
> > "right" language to me for most of what my objectives are.
>
> c.l.a folks will now hate me: Have you considered a language like
> Ocaml? As with Java there is garbage collection, which is a real boon
> with a dynamic GUI, the lablgtk docs are comparably good and the
> functional style of programming interacts really well with GUI
> programming.
>
> > One idea I have, and I'd love to hear advice or comments, is to use
> > Ada as the "engine" for my program, and somehow use Java to create the
> > GUI and deal with images. Does this seem like a possibility?
>
> "Remote widget protocols" like this (i.e. haveing a separate process
> as display server to which you talk in a high level protocol and
> instantiate complete widgets) have been created in the past (wether in
> Ada I don't know). Perhaps you can find some information about this
> somewhere. it is certainly an option, but you'll still have the
> necessity to design the protocol (not so easy) and a useful GUI
> abstraction (though that might not be as difficult as it looks, since
> you would probably try for an application specific GUI abstraction.
>
> And never forget: Don't believe me. Do your own research to bolster
> whatever you gather from what I say. There are much too many unfounded
> assertions floating around in usenet.
>
> Let me add a personal judgement:
>
> | I'm one of those people who loves to do the "right" thing, and it
> | seems to me like Ada is, in theory, a great
>
> I suspect that Ada is not the right language for a lot of things any
> more. "Right" is defined by the context and what is available, also by
> who has to maintain the code later. Going for a dual-language strategy
> on a non-embedded platform seems to me the right thing today: A
> language with garbage collection and type system you're comfortable
> with for the high level stuff and C for the lowlevel / driver stuff
> (of course you have to know how to write C ... :-). The high level
> language should work with Gtk or another portable toolkit
> (wxwidgets? Qt? Any other?).
>
> Suggestions are:
>
> - Phyton + C: Very popular, but no type systems. Rumoured to be
> slow. Good syntax (i.e. readable)
>
> - Perl + C: Very large number of libs in CPAN, but lots of them of
> dubious quality. Bad, really
>
> - Ada + C: No GC in Ada (you can add the Boehm collector
> though). I'm doubtful about continued (and comparable and
> affordable) support on Unix AND Windows platforms.
>
> - Java + C: Never tried native function interfacing in Java, but its
> rumoured to be possible. I don't like the "everything is an object
> way though". It makes for clumsy callback definitions and Java
> before 1.5 is definitely hampered by the absence of parametric
> polymorphism or generics (which you need to define generic
> containers in a type safe way).
>
> - Of course the C#/.NET/Mono way: I've even seen projects that
> intended to GUIs for operating machines that way.
>
> The '+C' seems to be a constant. If you want to program portable GUIs
> (i.e. on Windows and Unix) the most efficient approach would be to look
> for the protable GUI toolkits (not many), then look for their language
> support, look how mature and maintained it is (that kicks all
> languages that have had one Gtk-whatever release 2 years ago and than
> never again) and you're left with only a handful.
>
> The other possible approach is, of course, to write a "control kernel"
> in some suitable language and interface it with a suitable GUI by
> sockets and/or pipe with some out-of-the-box or even self styled RPC
> mechanism. You already mentioned that.
>
> Regards -- Markus
>
> PS: And please don't top post.
Sorry about the "top posting". I never really thought about that.
As for your reply, thanks, so much! You guys are awesome. I'm not sure
I'm any closer to an answer, but at least, I know a lot of the
questions involved. At this point, that's enough for me.
next prev parent reply other threads:[~2007-05-08 16:49 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-03 17:13 Newbie Needs Ada Advice ezkcdude
2007-05-03 18:24 ` Dmitry A. Kazakov
2007-05-03 22:14 ` ezkcdude
2007-05-04 4:07 ` tmoran
2007-05-04 12:57 ` Bob Spooner
2007-05-04 13:38 ` Dmitry A. Kazakov
2007-05-04 14:40 ` ezkcdude
2007-05-04 19:19 ` Bob Spooner
2007-05-04 19:48 ` Dmitry A. Kazakov
2007-05-06 21:46 ` ezkcdude
2007-05-07 7:31 ` Dmitry A. Kazakov
2007-05-07 7:42 ` Alex R. Mosteo
2007-05-07 9:15 ` Dmitry A. Kazakov
2007-05-08 2:58 ` Justin Gombos
2007-05-08 11:58 ` ezkcdude
2007-05-04 4:42 ` Jeffrey R. Carter
2007-05-04 6:48 ` Jacob Sparre Andersen
2007-05-07 8:01 ` Markus E Leypold
2007-05-08 14:40 ` ezkcdude
2007-05-08 15:07 ` Pascal Obry
2007-05-08 15:27 ` ezkcdude
2007-05-08 15:54 ` Pascal Obry
2007-05-08 16:07 ` Georg Bauhaus
2007-05-08 18:42 ` Markus E Leypold
2007-05-08 16:18 ` Ali Bendriss
2007-05-08 19:23 ` Michael Bode
2007-05-08 16:11 ` Markus E Leypold
2007-05-08 16:49 ` ezkcdude [this message]
2007-05-08 18:20 ` Ludovic Brenta
2007-05-08 21:17 ` Markus E Leypold
2007-05-08 18:45 ` Markus E Leypold
2007-05-08 18:28 ` Alex R. Mosteo
2007-05-08 18:51 ` ezkcdude
2007-05-08 19:31 ` Michael Bode
2007-05-08 19:43 ` Michael Bode
2007-05-08 20:02 ` Dmitry A. Kazakov
2007-05-08 21:26 ` Markus E Leypold
2007-05-08 21:21 ` Markus E Leypold
2007-05-08 21:27 ` ezkcdude
2007-05-08 21:56 ` Markus E Leypold
2007-05-09 13:25 ` Jacob Sparre Andersen
2007-05-09 15:58 ` Markus E Leypold
2007-05-10 21:20 ` Memory mapped files and shared memory (Was: Newbie Needs Ada Advice) Jacob Sparre Andersen
2007-05-11 16:38 ` ezkcdude
2007-05-10 18:14 ` Newbie Needs Ada Advice Chip and Allie Orange
2007-05-27 5:50 ` adaworks
2007-05-29 12:54 ` ezkcdude
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox