To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.cad.devOpen lugnet.cad.dev in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 CAD / Development / 11073
Subject: 
What do LDraw dev people use for multiplatform development
Newsgroups: 
lugnet.cad.dev
Date: 
Thu, 27 May 2010 17:17:50 GMT
Viewed: 
31064 times
  
I all,

I've been a Delphi programmer both private and work related for over 15 years ,
but I think it's time to take a dive in the multiplatform world.

So in order to get the hang of things I decided to start a new LDraw application
in means of a study project. Not sure jet what kind of program (might turn out
to be LD4DStudio 2 or just a simple viewer).

But the first thing I must do is deciding what collection of libraries and tools
to use. I've been wondering on the internet for a couple of days and the most
promising basic library I've found is wxWidgets, so if I had to start today I
probably use this with some nice highlighter editor and get going.

But I know there are a lot of people on this board whom already did more then a
bit multiplatform development, so maybe they can give me some pointers/ideas or
warn me about pitfalls etc.

The thing I'm looking for is a true platform for standalone (closed, cause I
might be using this in my business for costumers in the future.) native (so no
scripting) application development. Things who are of the table from start are
Java and .NET (One is too slow the other too MS).

Also suggestions on what IDE/editor/debugger to use are very welcome, in short
any comment on this subject would be great.

Greetings
Roland Melkert


Subject: 
Re: What do LDraw dev people use for multiplatform development
Newsgroups: 
lugnet.cad.dev
Date: 
Thu, 27 May 2010 17:37:13 GMT
Viewed: 
31375 times
  
In lugnet.cad.dev, Roland Melkert wrote:
I all,

I've been a Delphi programmer both private and work related for over 15 years ,
but I think it's time to take a dive in the multiplatform world.

Why do you want to go multiplatform?

Good thing that .NET is off the table! It's a pain for us users, too.

/Tore


Subject: 
Re: What do LDraw dev people use for multiplatform development
Newsgroups: 
lugnet.cad.dev
Date: 
Thu, 27 May 2010 17:53:33 GMT
Viewed: 
31346 times
  
In lugnet.cad.dev, Tore Eriksson wrote:
In lugnet.cad.dev, Roland Melkert wrote:
I all,

I've been a Delphi programmer both private and work related for over 15 years ,
but I think it's time to take a dive in the multiplatform world.

Why do you want to go multiplatform?

Good thing that .NET is off the table! It's a pain for us users, too.

/Tore

Couple of reasons really:

1. Some of my customers are asking about the cost/timeframe of a non windows
version of their software.
2. I think windows only software has had it best time, Linux is maturing quickly
and Apple is gaining ground.
3. The challenge and experience gained can be handy later in my life /
profession.
4. I read about people asking for apple and Linux versions of LDraw tools all
the time, including some mails I've gotten asking for a non windows version of
my LD4DStudio.
5. Work is slow at the moment (I'm self employed) so I have more time for
study/private projects.

Roland


Subject: 
Re: What do LDraw dev people use for multiplatform development
Newsgroups: 
lugnet.cad.dev
Date: 
Thu, 27 May 2010 18:34:57 GMT
Viewed: 
35624 times
  
In lugnet.cad.dev, Roland Melkert wrote:
I all,

But the first thing I must do is deciding what collection of libraries and tools
to use. I've been wondering on the internet for a couple of days and the most
promising basic library I've found is wxWidgets, so if I had to start today I
probably use this with some nice highlighter editor and get going.

The thing I'm looking for is a true platform for standalone (closed, cause I
might be using this in my business for costumers in the future.) native (so no
scripting) application development. Things who are of the table from start are
Java and .NET (One is too slow the other too MS).

Also suggestions on what IDE/editor/debugger to use are very welcome, in short
any comment on this subject would be great.

wxWidgets isn't bad, but for serious, heavy-UI applications, Qt is far, far
better.  Its QtCreator IDE & debugger isn't bad either, and is easy to get
started with.  And QtDesigner, its drag-n-drop UI developer, is one of the few
such tools I've seen that generates useful code.  Good stuff.

May I ask, what kind of applications are you developing that require native
code, and for which Java is too slow?  These days, device drivers,
graphically-intense video games, and computationally-expensive scientific apps
are about the only things I can think of that require native code... and with
good wrapper libraries, even most of those are questionable.

Remi


Subject: 
Re: What do LDraw dev people use for multiplatform development
Newsgroups: 
lugnet.cad.dev
Date: 
Thu, 27 May 2010 19:08:48 GMT
Viewed: 
35443 times
  
In lugnet.cad.dev, Remi Gagne wrote:

wxWidgets isn't bad, but for serious, heavy-UI applications, Qt is far, far
better.  Its QtCreator IDE & debugger isn't bad either, and is easy to get
started with.  And QtDesigner, its drag-n-drop UI developer, is one of the few
such tools I've seen that generates useful code.  Good stuff.

May I ask, what kind of applications are you developing that require native
code, and for which Java is too slow?  These days, device drivers,
graphically-intense video games, and computationally-expensive scientific apps
are about the only things I can think of that require native code... and with
good wrapper libraries, even most of those are questionable.

Remi

Thanks,

I've been looking at Qt but as far I understand it's license doesn't permit
commercially static linked closed applications, something I need for my business
projects. I know you could link dynamically but that probably raises all kinds
of dependency problems.

The main reason I always worked using Delphi is the fact it produces such nice
self sustained applications it will run on any recent out of the box windows. So
while making the migration to multi platform I somehow want to preserve that
feature.

About native code, well I might just be a purist but I always find it nice to
get those extra couple of milliseconds at places where it really counts (eg a
rendering engine). Also I have developed some cad programs work wise and might
need to do more in the future, so I thought why not use Native all the time to
keep things simple.

Thanks again for your input.

Roland


Subject: 
Re: What do LDraw dev people use for multiplatform development
Newsgroups: 
lugnet.cad.dev
Date: 
Thu, 27 May 2010 19:59:46 GMT
Viewed: 
31007 times
  
Roland Melkert wrote:

I've been a Delphi programmer both private and work related for over
15 years , but I think it's time to take a dive in the multiplatform
world.

You're aware of the fact that Delphi is going multiplatform in coming
releases? First the Mac, later linux. Still, it's an unseen card, we don't
know how good it will be, and how long they (Embarcadero) will pursue the
multiplatform track this time (remember Kylix?).

There's also FPC (Free Pascal Compiler) which is relatively Delphi
compatible (non-visual parts), and multi platform since quite some time. You
can use most popular widget sets with it, and it's got both a 32 bit and a
64 bit compiler. I don't have much experience with it, but it looks
promising, and there are people doing real commercial programs in FPC.

--
Anders Isaksson


Subject: 
Re: What do LDraw dev people use for multiplatform development
Newsgroups: 
lugnet.cad.dev
Date: 
Thu, 27 May 2010 20:55:56 GMT
Viewed: 
34895 times
  
In lugnet.cad.dev, Roland Melkert wrote:
In lugnet.cad.dev, Remi Gagne wrote:

I've been looking at Qt but as far I understand it's license doesn't permit
commercially static linked closed applications, something I need for my business
projects. I know you could link dynamically but that probably raises all kinds
of dependency problems.

Qt is licensed under the LGPL which allows commercial use, either statically or
dynamically linked, without problems.  The only caveat is that if you modify Qt
itself, you must release your modifications to Qt as open source.

About native code, well I might just be a purist but I always find it nice to
get those extra couple of milliseconds at places where it really counts (eg a
rendering engine). Also I have developed some cad programs work wise and might
need to do more in the future, so I thought why not use Native all the time to
keep things simple.

If native code isn't a hard requirement, you may want to take a good look at
Python and PyQt.  Your app might run a few miliseconds slower but, compared to
C++, you'll develop it in half the time and with some 3x less code to maintain.
You users will appreciate more features & fewer bugs far more than imperceptible
performance gains ;)

Remi


Subject: 
Re: What do LDraw dev people use for multiplatform development
Newsgroups: 
lugnet.cad.dev
Date: 
Thu, 27 May 2010 21:29:05 GMT
Viewed: 
30505 times
  
In lugnet.cad.dev, Roland Melkert wrote:
I all,

SNIP
Java and .NET (One is too slow the other too MS).

Also suggestions on what IDE/editor/debugger to use are very welcome, in short
any comment on this subject would be great.

Greetings
Roland Melkert

Some years ago I was looking for the same thing for the LDraw Tools I had in
mind. As I only did it for personal use any commercial software was out of the
race.
Also the C based languages are not good for me as I did never code in that
language.
So I decided that time to use Visual Basic NET. I also do not like to have all
MS, but 80% of worlds computers run windows. And after I discovered that there
is the MONO project that brings the enviroment of .NET to Linux and MAC I
thought that my decision wasn't that bad for my goals.
I know of a project with a renderer written in .NET that has the same speed than
LDView.
Each new windows version will have the .NET enviroment installed by default. So
if all is ideal you can just copy your exe file from windows computer to Linux
computer and run that.
But due to the fact that MONO is developed by volunteers it has still some bugs.
One of my earlier versions of DATHeader runs on my Ubuntu system quite well.
Also if you have some components (dll) that are written in C for NET you can
just use that. Also the other way (vb dll) can be used in C for NET.

If you have the NET enviroment on your system and a visual studio application,
you are invited to look what my XMPD.dll can already do for you.

cu
mikeheide


Subject: 
Re: What do LDraw dev people use for multiplatform development
Newsgroups: 
lugnet.cad.dev
Date: 
Thu, 27 May 2010 22:10:30 GMT
Viewed: 
30522 times
  
In lugnet.cad.dev, Michael Heidemann wrote:
snip
I also do not like to have all
MS, but 80% of worlds computers run windows. And after I discovered that there
is the MONO project that brings the enviroment of .NET to Linux and MAC I
thought that my decision wasn't that bad for my goals. • snip

cu
mikeheide

I'm excluding .NET because it's proprietary and I don't like the way MS is
pushing it. Also Mono is reversed engineered which means it will never be
completely up to pair and or guaranteed to be compatible with the windows
version of ,NET applications.

So with the luxury of the 'starting over' moment I'm having now I will go for
something more open. Also I don't mind C++ cause I have expiriance with it.

These days all major languages are essentially the same anyway, the largest
chunk of getting started in any language (if you already are a programmer) goes
into getting familiar with used libraries.

Never the less I respect anyone using .NET because it suits there needs,
especially if they use it to build free software. I just won't consider it
myself for said reasons.

Roland


Subject: 
Re: What do LDraw dev people use for multiplatform development
Newsgroups: 
lugnet.cad.dev
Date: 
Thu, 27 May 2010 22:22:38 GMT
Viewed: 
31087 times
  
In lugnet.cad.dev, Anders Isaksson wrote:
<snip
You're aware of the fact that Delphi is going multiplatform in coming
releases? First the Mac, later linux. Still, it's an unseen card, we don't
know how good it will be, and how long they (Embarcadero) will pursue the
multiplatform track this time (remember Kylix?).

There's also FPC (Free Pascal Compiler) which is relatively Delphi
compatible (non-visual parts), and multi platform since quite some time. You
can use most popular widget sets with it, and it's got both a 32 bit and a
64 bit compiler. I don't have much experience with it, but it looks
promising, and there are people doing real commercial programs in FPC.

I didn't know of the multiplatform plans for Delphi, but considering the way it
went with Kylix (and now 64 bit) I'm not going to wait for it.

Don't get me wrong, I LOVE Delphi and always have, dating all the way back to
Turbo Pascal, but lately I'm getting the impression it's a dieing trade. And I
don't want to end up being a Delphi only developer in a world where's no need
for them :).

So I'm basically expanding my expertise, I'll probably keep using multiple
Delphi versions for existing projects for years. And if embargo (or who ever
buys Delphi next week) gets the multiplatform stuff at a competitive level I'll
be the first to change back to using Delphi full time again.

I also been keeping an eye on freepascal/Lazarus but last time I tried that it
still had a very beta or even alfa feel to it all.

Roland


Subject: 
Re: What do LDraw dev people use for multiplatform development
Newsgroups: 
lugnet.cad.dev
Date: 
Thu, 27 May 2010 22:30:12 GMT
Viewed: 
31235 times
  
In lugnet.cad.dev, Remi Gagne wrote:
<snip>
Qt is licensed under the LGPL which allows commercial use, either statically or
dynamically linked, without problems.  The only caveat is that if you modify Qt
itself, you must release your modifications to Qt as open source.

hmm, I thought LGPL mend you can only dynamically link to the library, I'll have
to take another look it seems. Thanks.


<snip>

If native code isn't a hard requirement, you may want to take a good look at
Python and PyQt.  Your app might run a few miliseconds slower but, compared to
C++, you'll develop it in half the time and with some 3x less code to maintain.
You users will appreciate more features & fewer bugs far more than imperceptible
performance gains ;)

Remi

Yes, I've heard more people talking about Python like it's the 8th world wonder,
but for some reason I can't seem to get over the fact it's 'just' a scripting
language. The biggest problem I got with it is it's typeless-ness, maybe I'm old
fashioned (at 33 year old!) but I just do like my memory management and pointers
too much :)

Roland


Subject: 
Re: What do LDraw dev people use for multiplatform development
Newsgroups: 
lugnet.cad.dev
Date: 
Fri, 28 May 2010 02:31:55 GMT
Viewed: 
30917 times
  
In lugnet.cad.dev, Roland Melkert wrote:
I all,

I've been a Delphi programmer both private and work related for over 15 years ,
but I think it's time to take a dive in the multiplatform world.

As a Delphi programmer you might give Lazarus and freepascal a whirl.  Since I
also use Delphi, I tried it to make MPDWizard cross platform and it performed
well.  One sticking point in getting LDDP converted over is that JCL/JVCL isn't
compatible but I'm working on it.

-Orion


Subject: 
Re: What do LDraw dev people use for multiplatform development
Newsgroups: 
lugnet.cad.dev
Date: 
Fri, 28 May 2010 19:16:43 GMT
Viewed: 
31289 times
  
Roland Melkert wrote:

I also been keeping an eye on freepascal/Lazarus but last time I
tried that it still had a very beta or even alfa feel to it all.

I'm not sure Lazarus is the way to go with FPC, there's too much of 'Delphi
look-alike but never getting there' over Lazarus. But there are other ways
of using FPC.

--
Anders Isaksson


Subject: 
Re: What do LDraw dev people use for multiplatform development
Newsgroups: 
lugnet.cad.dev
Date: 
Mon, 31 May 2010 18:03:37 GMT
Viewed: 
35812 times
  
In lugnet.cad.dev, Roland Melkert wrote:
<snip>
any comment on this subject would be great.

Thanks for all the tips everybody, I've been playing around this weekend and
decided to start writing something semi serious using C++ and ether wxWidgets or
Qt. And for an IDE I decided on using none (for now). This to force me into
doing everything myself and as a result (hopefully) get a better understanding
of wxWidgets etc.

While getting up to pair with these things I will start working on a simple
LDraw viewer based on the LD4DStudio LDraw handling principles. Basically
rewriting it's core renderer in C++, to better grasp C++ equivalents of Pascal
oop. This will help me brush up my (rusty) C++ skills.

So this might be the first step for a multiplatform version of LD4Dstudio,
although I wont hold my breath for it :)

Thanks again for the input, and also for LDraw in a whole. Because it's been
helping me with programming studies for years. It's just more fun to learn
things while making something useful, the world has enough 'hello world'
programs.

Greetings,

Roland


Subject: 
Re: What do LDraw dev people use for multiplatform development
Newsgroups: 
lugnet.cad.dev
Date: 
Tue, 1 Jun 2010 16:06:03 GMT
Viewed: 
35793 times
  
In lugnet.cad.dev, Roland Melkert wrote:
I all,

I've been a Delphi programmer both private and work related for over 15 years ,
but I think it's time to take a dive in the multiplatform world.


<snip>


Greetings
Roland Melkert

Hi Roland,
  I use Qt (free) with static binding for LPub4.  It works pretty well, and is
well organized, but the learning curve is big (but not too steep).
Kevin


Subject: 
Re: What do LDraw dev people use for multiplatform development
Newsgroups: 
lugnet.cad.dev
Date: 
Tue, 1 Jun 2010 22:28:35 GMT
Viewed: 
36179 times
  
I know you've already mostly decided on a direction, but I figured I'd throw in
my two cents.  LDView takes a different tack for cross-platform support: all the
back-end code is cross-platform C++, but the UI code is platform-specific.  So
my Windows UI is written in Win32 (not MFC, for various reasons), my Mac UI is
written in Cocoa, and my Linux UI is written in Qt.  (The Qt version is
maintained by a separate developer.)

Given that there is a Qt version of LDView, it would seem that the Windows and
Mac versions are a waste of time.  However, I've personally found that doing the
native UIs produces better end quality, and over time I've gotten fairly good at
keeping as much code as possible in the shared portion.  As an example of this,
I have a class in the shared code that purely handles input, and then does all
the processing on that input necessary to decide what to do.  The
platform-specific calls just tell it things like mouseDown(shiftKeyFlags,
location), or keyDown(shiftKeyFlags, keyCode), and it handles the rest,
including notification-based requests for screen redraws.

So, when the user clicks and drags the mouse in the main window of LDView, the
UI code simply sends a mouseDown() call, followed by mouseMove() calls, and the
input handler takes those and does all the rest.  Assuming LDView is in examine
mode, the mouse down location is recorded.  Then, when the first mouseMove()
call comes in, it calculates the deltas, informs the viewer to start rotating at
an appropriate speed, and then sends a redraw request notification.  The UI code
receives the redraw request notification and does whatever is necessary in the
specific UI to force the view to redraw.  The viewer itself checks to see if any
kind of animation is ongoing at the end of its frame draw.  If so, it
immediately request another redraw.  (The actual redraw happens a little later,
or there'd be infinite recursion, but you get the idea.)

This is all predicated on the fact that the actual renderer in LDView is generic
OpenGL code.  It probably wouldn't work so well otherwise, but I personally find
it to work well overall.

--Travis


Subject: 
Re: What do LDraw dev people use for multiplatform development
Newsgroups: 
lugnet.cad.dev
Date: 
Wed, 2 Jun 2010 21:23:02 GMT
Viewed: 
36411 times
  
In lugnet.cad.dev, Travis Cobbs wrote:
I know you've already mostly decided on a direction, but I figured I'd throw in
my two cents.  LDView takes a different tack for cross-platform support: all the
back-end code is cross-platform C++, but the UI code is platform-specific.  So
my Windows UI is written in Win32 (not MFC, for various reasons), my Mac UI is
written in Cocoa, and my Linux UI is written in Qt.  (The Qt version is
maintained by a separate developer.)

Given that there is a Qt version of LDView, it would seem that the Windows and
Mac versions are a waste of time.  However, I've personally found that doing the
native UIs produces better end quality, • <snip>

--Travis

Thanks for the insight,

Actually the more 'local' feel to interfaces is the reason why I'm a bit more
leaning towards wxWidgets at the moment, it uses native controls where possible
on all platforms. But Qt is clearly more featured so I'll probably be using that
for more advanced GUI's if customers are visually fixated.

Roland


Subject: 
Re: What do LDraw dev people use for multiplatform development
Newsgroups: 
lugnet.cad.dev
Date: 
Wed, 29 Jun 2011 11:44:27 GMT
Viewed: 
22460 times
  
Roland Melkert wrote:

I've been a Delphi programmer both private and work related for over
15 years , but I think it's time to take a dive in the multiplatform
world.

But the first thing I must do is deciding what collection of libraries
and tools to use. I've been wondering on the internet for a couple of
days and the most promising basic library I've found is wxWidgets, so
if I had to start today I probably use this with some nice highlighter
editor and get going.

I know this answer is coming a bit late, but you'll get it anyway.

I use Ada as my primary programming language.  You can get Ada compilers
targeting practically anything from Atmel microcontrollers over SCUD2
warheads to Intel CPUs with Microsoft Windows running on top of them.

Rumour will have it that it is easy to switch from Delphi to Ada.  I can
only tell that the switch from Borland Pascal to Ada felt like a great
improvement.

The GCC Ada compiler is commonly known as GNAT.  I use (variants of) it
for Atmel, Linux and Microsoft targets.

For graphical user interfaces I use GtkAda.  It comes with an OpenGL
API/canvas, but I haven't tried to use it (yet).

My preferred IDE is Emacs, but more sensible people have been known to
use GPS (GNAT Programming Studio?).  (Less sensible people buy a
quad-core machine and use Eclipse. ;-)

Gdb is supposedly the preferred debugger to use with GNAT, but I don't
write enough bugs to use it.

Play well,

Jacob
--
LEGO furniture:
                http://lego.sparre-andersen.dk/By/M%F8bler/


Subject: 
Re: What do LDraw dev people use for multiplatform development
Newsgroups: 
lugnet.cad.dev
Date: 
Wed, 29 Jun 2011 17:05:14 GMT
Viewed: 
22664 times
  
In lugnet.cad.dev, Jacob Sparre Andersen wrote:
Roland Melkert wrote:

I've been a Delphi programmer both private and work related for over
15 years , but I think it's time to take a dive in the multiplatform
world.

But the first thing I must do is deciding what collection of libraries
and tools to use. I've been wondering on the internet for a couple of
days and the most promising basic library I've found is wxWidgets, so
if I had to start today I probably use this with some nice highlighter
editor and get going.

I know this answer is coming a bit late, but you'll get it anyway.

I don't mind, always nice to learn something new.

I use Ada as my primary programming language.  You can get Ada compilers
targeting practically anything from Atmel microcontrollers over SCUD2
warheads to Intel CPUs with Microsoft Windows running on top of them.


I never heard of this language, after a quick lookup on wikipedia it seems
interesting. I like the strong typing ala pascal. It's something I miss in C++.

Rumour will have it that it is easy to switch from Delphi to Ada.  I can
only tell that the switch from Borland Pascal to Ada felt like a great
improvement.

The GCC Ada compiler is commonly known as GNAT.  I use (variants of) it
for Atmel, Linux and Microsoft targets.

For graphical user interfaces I use GtkAda.  It comes with an OpenGL
API/canvas, but I haven't tried to use it (yet).

My preferred IDE is Emacs, but more sensible people have been known to
use GPS (GNAT Programming Studio?).  (Less sensible people buy a
quad-core machine and use Eclipse. ;-)

Gdb is supposedly the preferred debugger to use with GNAT, but I don't
write enough bugs to use it.


Seems very interesting, but I have been working the C++ route for a while now,
using the stl as much as possible in combination with wxWidgets for gui and
boost for threading. I do use gcc (under mingw on win) for compiling and gdb for
debugging, I've been using codeblocks for an IDE but I use it more as a
overgrown editor cause I compile and debug outside it.

It all feels a bit primitive compared to the Delphi IDE but with this setup I'm
having very little platform dependencies (although I'm still working on Windows
only at the moment).

I'm hoping to present my very first application made with this next month in the
form of a new LDraw editor.
.
Still might take a better look at ADA sometime. Thanks for the information.


Play well,

Jacob

Roland


©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR