1. Is there a good Windows or cross-platform Euphoria IDE?

Hi Everyone,

First, I would like to say that I just learned that Judith Evans passed away. My condolences go out to her friends and family. She is one of the people I have really missed since leaving Eu, and I was hoping to be able to make contact with her again.

I've been away for quite some time, and I've recently wanted to get back into coding with Euphoria. However, I'm having a problem with the IDE. I'm not sure if this is an issue because it hasn't been updated in a while, or if I'm just that rusty. Is Judith's IDE still being used? I downloaded it and win32lib from links in the wiki, but I can't seem to get them to work. I also tried EuVide, but I'm having similar issues. Are there any IDE users who could point me in the right direction?

new topic     » topic index » view message » categorize

2. Re: Is there a good Windows or cross-platform Euphoria IDE?

VirtualB said...

Are there any IDE users who could point me in the right direction?

I like to use either WEE or Geany. If you decide to go the Geany route, there is a syntax file I can provide.

-xecronix

new topic     » goto parent     » topic index » view message » categorize

3. Re: Is there a good Windows or cross-platform Euphoria IDE?

We (still) do not have an official IDE. There's a list of supported text editors on the Editors page.

-Greg

new topic     » goto parent     » topic index » view message » categorize

4. Re: Is there a good Windows or cross-platform Euphoria IDE?

Hi

An official IDE would require committing to an official toolkit......

Cross platform toolkits - wxEu and eugtk.

Chris

new topic     » goto parent     » topic index » view message » categorize

5. Re: Is there a good Windows or cross-platform Euphoria IDE?

ChrisB said...

Cross platform toolkits - wxEu and eugtk.

Agreed. But, This topic has plagued this community for a very long time. Honestly, this topic deserves the attention of a strike team. 3 OpenEuphoria volunteers voted in to decide:

  • What toolkit to include with OpenEuphoira
  • What IDE should be included with OpenEuphoria
  • How to make sure that the official toolkit and IDE will work on each platform it's is installed on.

Why 3 and not all? Because years have gone by and as a community this has not been decided on yet. There will be heated debates and long conversations and finally the decision to not include anything will likely again emerge. 3 people have a better chance at making something happen. Those of us that are not part of the strike team will need to accept that not everyone can be happy about the outcome of this decision. I wish we could compare ourselves to Lazarus Project. But we need to start from where we are now.

What if we cant pick a toolkit... even if we reduce the number of people that can influence the decision?

That's a sad day for OpenEuphoria. But in the event that it can't be done, a very distant second best option might be to officially adopt a 3rd party IDE by creating plugins, syntax files, etc.

Just a thought.


Forked into: UI Committee Round 2

new topic     » goto parent     » topic index » view message » categorize

6. Re: Is there a good Windows or cross-platform Euphoria IDE?

xecronix said...

Why 3 and not all?

Ok, I vote for multiplatform euIUP. So if xecronix votes the same way the problem is "solved."

Find euIUP http://jeremy.cowgar.com/euiup/.

I have respect fo Jeremy Cowgar's intuition. The GUI is small (under 3MB) and fits well with Euphoria thinking. IUP does not need a IDE because you can learn to put things into boxes that resize themselves.

It is enough to get users quickly writing programs. Once hooked, they can move to larger libraries.

This will make documenting Euphoria much easier.

When Redy works on Linux we can promote it as a standard GUI.

_tom

new topic     » goto parent     » topic index » view message » categorize

7. Re: Is there a good Windows or cross-platform Euphoria IDE?

_tom said...

Ok, I vote for multiplatform euIUP. So if xecronix votes the same way the problem is "solved."

Find euIUP http://jeremy.cowgar.com/euiup/.

I have respect fo Jeremy Cowgar's intuition. The GUI is small (under 3MB) and fits well with Euphoria thinking.

I like IUP in and of itself, but I have a few issues with Jeremy's wrapper specifically:

  • Jeremy has "Euphoria-ized" the code so porting code from native IUP C to Euphoria is not one-to-one.
  • IUP receives several updates every year but development on Jeremy's wrapper stalled out in 2010.
  • The learning curve for IUP is completely different compared to Win32Lib and wxEuphoria.
    Maybe if someone reworked the wrapper to use create() and various set/get functions, it would be easier to use.
_tom said...

IUP does not need a IDE because you can learn to put things into boxes that resize themselves.

Some people will always want an IDE and some of those people will want the IDE to provide a drag-and-drop GUI designer. I think that is one of the single biggest features that would draw people to Euphoria. Writing code is easy and designing a GUI should be easy as well.

_tom said...

It is enough to get users quickly writing programs. Once hooked, they can move to larger libraries.

IUP is designed much differently than other GUI toolkits. I have used IUP and wxWidgets in their native languages and I can attest that switching one's mindset between them is a bit of a struggle sometimes. Everything in IUP is a string and it just feels unnatural to me.

_tom said...

This will make documenting Euphoria much easier.

Not sure what you mean. Having one GUI toolkit makes documenting easier? Having a simpler toolkit makes documenting easier?

_tom said...

When Redy works on Linux we can promote it as a standard GUI.

I am still not sure if it's a good idea to use a non-native toolkit nowadays. In the Java world, Swing was all the rage through the late 90's and early 2000's but in the past decade it has been superseded mostly by JavaFX and SWT. Java has several "official" toolkits and they still have the same problem we have with choosing the "right" one for most developers.

Basically what I'm saying is, I'm not sure if we should ever choose an official toolkit and maybe just pick one we want to start with and work on it from there. As the saying goes, "if you build it he will come," so maybe if you start the project to build an IDE, other people will jump on board to help out.

-Greg

new topic     » goto parent     » topic index » view message » categorize

8. Re: Is there a good Windows or cross-platform Euphoria IDE?

_tom said...

Ok, I vote for multiplatform euIUP. So if xecronix votes the same way the problem is "solved."

Find euIUP http://jeremy.cowgar.com/euiup/.

I have respect fo Jeremy Cowgar's intuition. The GUI is small (under 3MB) and fits well with Euphoria thinking.

Correct. If the community appointed/elected you, me and one other person as arbitrator on this topic and the 2 of us decided IUP was the way to go, then yes... problem solved and IUP would be bundled with OpenEuphoria. And, BTW, I agree that IUP deserves consideration in the matter.

The truth is, all of the toolkits mentioned so far in this thread deserves consideration. As do the notions that the right solution hasn't been written yet or that there is no solution.

So if arbitrators were appointed/elected their job would be:

  • Come up with a list of problems that are solved by having a toolkit and/or IDE included with OpenEuphoria. This will require community input.
  • Compare the available options to see how they can help solve these problems.
  • Consider what new problems the solution causes.
  • Pick a solution
ghaberek said...

Basically what I'm saying is, I'm not sure if we should ever choose an official toolkit and maybe just pick one we want to start ...maybe if you start the project to build an IDE, other people will jump on board to help out.

There is a lot of merit to this approach. I'm not sure I agree with you on this matter but I'm still open to the idea. I like to think that Lazarus is a fine benchmark in which to compare OpenEuphoria. In my mind, most of the problems we would consider solved by an official toolkit/ide were solved by Lazarus. But Lazarus is *NOT* the official IDE of Freepascal. I would argue that Freepascal does not have an official IDE. Rather Freepascal is the official compiler for Lazarus. This I believe supports your opinion.

On the other hand, nearly all of OpenEuphoria counter-parts have toolkits wrapped up and included with the base distribution.

  • Freepascal -GTK and Win32
  • Freebasic - GTK and Win32
  • Python - TK
  • Perl - TK
  • Ruby - TK
  • Java - Swing/AWT

That is not to say other toolkits don't exist for these languages. Of course they do. But this gives us an idea of what they ship with. I believe the inclusion of a toolkit helps lower the barrier to entry for newcomers and promotes early adoption of the language for them.

Python actually ships with an "IDE" too. Though I never use idle. Euphoria ships with ed. So the idea of shipping with an IDE is not foreign to Euphoria. Though it may be time for an upgrade.

new topic     » goto parent     » topic index » view message » categorize

9. Re: Is there a good Windows or cross-platform Euphoria IDE?

Thanks xecronix, I'll give those a try. I was just hoping that Eu would have a better offering at this point. In my opinion, Judith's IDE rivaled Visual Studio, and anything short of what Euphoria had to offer when I left 14 years ago seems like a great step backward to me.

new topic     » goto parent     » topic index » view message » categorize

10. Re: Is there a good Windows or cross-platform Euphoria IDE?

ghaberek said...

Some people will always want an IDE and some of those people will want the IDE to provide a drag-and-drop GUI designer. I think that is one of the single biggest features that would draw people to Euphoria. Writing code is easy and designing a GUI should be easy as well.

-Greg

I completely agree with this. I am certainly one who sees a lot of value in having a tool that will allow me to quickly and easily design a GUI. I'm sure that not everyone will agree with this, but I feel that having to hand code my GUI is a waste of time and effort when a tool could do it for me. It seems to me that this type of thinking is why there are high-level languages, such as Euphoria, as well as editors with code coloring and completion.

I realize that I've been away for a long time, and I don't really know how things are done here, or even who's in charge of running openEuphoria, but it's hard for me to believe (and this isn't a dig at anyone) that things haven't progressed in this area. In my opinion, Eu is an incredible language that should be right up there with the best of them, but I have to think that you're losing many many potential users because of the degree of difficulty in getting it to work. To me, it's like marketing a car with lots of power, great mpg, and a ton of built-in features, but telling the potential buyer that he or she has to go find the wheels, the gas tank and the engine in different places, then find a way to put them together. If new users didn't have to deal with this type of thing, I think Euphoria would spread like wildfire.

new topic     » goto parent     » topic index » view message » categorize

11. Re: Is there a good Windows or cross-platform Euphoria IDE?

VirtualB said...

To me, it's like marketing a car with lots of power, great mpg, and a ton of built-in features, but telling the potential buyer that he or she has to go find the wheels, the gas tank and the engine in different places, then find a way to put them together

Great analogy.

Chris

new topic     » goto parent     » topic index » view message » categorize

12. Re: Is there a good Windows or cross-platform Euphoria IDE?

_tom said...

Ok, I vote for multiplatform euIUP. So if xecronix votes the same way the problem is "solved."

Find euIUP http://jeremy.cowgar.com/euiup/.

I have respect fo Jeremy Cowgar's intuition. The GUI is small (under 3MB) and fits well with Euphoria thinking. IUP does not need a IDE because you can learn to put things into boxes that resize themselves.

Make it so. grin

new topic     » goto parent     » topic index » view message » categorize

13. Re: Is there a good Windows or cross-platform Euphoria IDE?

ghaberek said...

I'm not sure if we should ever choose an official toolkit and maybe just pick one we want to start with and work on it from there.

I agree fully with this. It's not like we need an official toolkit. The community can develop one (or someone can engage in commercial activity and build one for sale), and then the community can support and recommend it.

new topic     » goto parent     » topic index » view message » categorize

14. Re: Is there a good Windows or cross-platform Euphoria IDE?

EuVide

I looked at EuVide project page. It appears that the project was written/lead by a team of 3 people. This is a funny coincidence.

Who lead EuVide

I don't know what the product looks like, how good it is/isn't or any thing else about it really. It only runs on Windows (which I don't have) and there are no screen shots to show off the features.

WxIDE

Similarly, I don't know much about wxIDE because I can't find many screen shots for that IDE either. Maybe it's good? I typically have trouble with wx in general but, if there were compelling screen shots maybe I'd try harder. smile It seems to have been last updated 2 1/2 years ago. Is it still a viable option?

I did find one screen shot for wxIDE.

Redy

This is another Windows only solution at the moment. However, after examining the project, it looks like it would not take a lot of work to get it to run on top of GTK. About 20 functions would would need to implemented... I think. However, that is not inline with what ryanj has in mind for his project. Additionally, if the screen shots are up to date, the code editor is not as advanced as some of the other options yet.

That said, I feel like this project is a GREAT start to what could eventually be for OpenEuphoria what Lazarus is for Freepascal. Though again, not really a goal for the project.

IUP

If an IDE were started using IUP, this could also be of significant advantage to OpenEuphoria. This toolkit really has some huge advantages over some of the other options. The biggest one is it's small size. This means that a very lite weight dll could be provided with OpenEuphoria that would guarantee that "things" written using IUP would run on the target machine. Additionally, the IUP license makes it easy to do just that.

Sadly, I don't know of a single project ever written using IUP and OpenEuphoria. So, I have nothing to study to base any claims of suitability. If someone knows of any, I'd be happy to look at them.

GTK

Today, WEE + Glade offers the only cross-platform OpenEuphoria GUI, drag and drop IDE solution that I'm aware of. You can swap out WEE for your favorite text editor but, WEE does offer some OpenEuphoria features not found elsewhere.

Unfortunately, Windows users claim that it is difficult to get GTK to run. This sounds like a packaging and education problem to me but I'm not in a position that I can help out with these issues. Except to say, Dia and Geany both easily installed on Windows the last time I tried. Maybe things have changed since my Windows XP days some years ago.

I'm not sure that EuGTK actually has a hosted project repository. (like github, sourceforge, scm.openeuphoria.org, anything really). If that statement is true, I consider that a strike against GTK.

For what it's worth

That's how I see the state of these things now. Where do we go from here? Well that's up to the individuals that make up this community. Options:

  • Lone Wolf - Someone could attempt to build OpenEuphoria Lazarus like project.
  • Strike team - A few volunteers can work on a solution together.
  • Ignore - Maybe it's not an OpenEuphoria problem at all. Rather a problem that only exists in the users space?
  • Fragment - Several Lone Wolves can attempt to create a solution
  • Converge - The entire community could pick one solution to converge on for a week or so. If that goes well, maybe converge on a project again sometime in the future.


Forked into: Porting Redy to linux

new topic     » goto parent     » topic index » view message » categorize

15. UI/IDE committee

xecronix said...

Agreed. But, This topic has plagued this community for a very long time. Honestly, this topic deserves the attention of a strike team. 3 OpenEuphoria volunteers voted in to decide:

  • What toolkit to include with OpenEuphoira
  • What IDE should be included with OpenEuphoria
  • How to make sure that the official toolkit and IDE will work on each platform it's is installed on.

Why 3 and not all? Because years have gone by and as a community this has not been decided on yet. There will be heated debates and long conversations and finally the decision to not include anything will likely again emerge. 3 people have a better chance at making something happen. Those of us that are not part of the strike team will need to accept that not everyone can be happy about the outcome of this decision.

I like this idea.

Here's what's going to happen. xecronix and _tom, you two will be on the committee. You will pick the third member of the committee within one week from now.

Then the committee will have 31 days from the end of that week (or 38 days from now) to come up with a solution. If you can't come to an agreement by then, then it's over.

However, once the committee picks a choice, then it'll be adopted and committed to trunk.

I don't really have the power to just 'make it so', but it's been a few days and no one has objected to this approach, so I'm comfortable with it.

If there are serious objections to this approach, then I'll take it to a community-wide vote. But if there aren't, then I think it's safe to assume that a majority of the community agrees and we should go forth with this concept.

new topic     » goto parent     » topic index » view message » categorize

16. Re: UI/IDE committee

+1 from me

Chris

new topic     » goto parent     » topic index » view message » categorize

17. Re: UI/IDE committee

jimcbrown said...

I like this idea.

Here's what's going to happen. xecronix and _tom, you two will be on the committee. You will pick the third member of the committee within one week from now.

Then the committee will have 31 days from the end of that week (or 38 days from now) to come up with a solution. If you can't come to an agreement by then, then it's over.

However, once the committee picks a choice, then it'll be adopted and committed to trunk.

I don't really have the power to just 'make it so', but it's been a few days and no one has objected to this approach, so I'm comfortable with it.

If there are serious objections to this approach, then I'll take it to a community-wide vote. But if there aren't, then I think it's safe to assume that a majority of the community agrees and we should go forth with this concept.

This sounds good to me and I feel I have a lot to contribute to this topic. I would like to be considered for position of third committee member.

-Greg
Forked into: The Euphoria Editor

new topic     » goto parent     » topic index » view message » categorize

18. Re: UI/IDE committee

jimcbrown said...

Here's what's going to happen. xecronix and _tom, you two will be on the committee.

I am willing to work on the committee. I am also willing to make room for anyone who has better technical ability.

From 17 Oct to 25 Oct I will not have internet access (it's going to be a 40 km bike ride to access a hamburger internet link.)

jimcbrown said...

You will pick the third member of the committee within one week from now.

Consider this a formal request for committee members. Contact us on the forum, or use "Misc Menu|Contact Admin" to contact _tom or all administrators directly.

jimcbrown said...

Then the committee will have 31 days from the end of that week (or 38 days from now) to come up with a solution. If you can't come to an agreement by then, then it's over.

Long enough to come up with a reasoned choice. Even a final coin toss would be progress in solving a decade old issue.

jimcbrown said...

However, once the committee picks a choice, then it'll be adopted and committed to trunk.

Since the Euphoria language itself will not be impacted, any GUI choices now can always evolve to better choices. The important thing now is to just get started.

jimcbrown said...

I don't really have the power to just 'make it so', but it's been a few days and no one has objected to this approach, so I'm comfortable with it.

If there are serious objections to this approach, then I'll take it to a community-wide vote. But if there aren't, then I think it's safe to assume that a majority of the community agrees and we should go forth with this concept.

The openEuphoria project lacks a dictator (even a benevolent one); that is one reason why it seems that progress is slow. This is also a strength because everyone's opinions do count.

_tom

new topic     » goto parent     » topic index » view message » categorize

19. Re: UI/IDE committee

_tom said...
jimcbrown said...

Here's what's going to happen. xecronix and _tom, you two will be on the committee.

I am willing to work on the committee. I am also willing to make room for anyone who has better technical ability.

I think that is acceptable, assuming that you and xecronix can agree on the replacement.

_tom said...
jimcbrown said...

You will pick the third member of the committee within one week from now.

From 17 Oct to 25 Oct I will not have internet access (it's going to be a 40 km bike ride to access a hamburger internet link.)

Ok, the two of you have two weeks to pick the committee members. The 31 days starts after the two weeks has elapsed (so if you pick early, the committee gets extra time to make a decision).

new topic     » goto parent     » topic index » view message » categorize

20. Re: UI/IDE committee

jimcbrown said...

Here's what's going to happen. xecronix and _tom, you two will be on the committee.

Thank you! And I accept.

new topic     » goto parent     » topic index » view message » categorize

21. Re: UI/IDE committee

I have posted news on the home page.

I started a wiki page http://openeuphoria.org/wiki/view/GuiCriteria.wc#category_GuiCriteria for ideas on how to pick the GUI.

_tom

new topic     » goto parent     » topic index » view message » categorize

22. Re: UI/IDE committee

OK, I'm on board with the idea of adopting IUP as the cross platform gui of choice.

To be honest I am very annoyed with myself for not trying it before, as it is quite short and sweet.

I got it to work on Phix, apart from 1) a bug in (my) call back handler exposed by cbtest, 2) pplot doing nowt, and 3) euchat being a non-starter for me because Phix has neither sockets nor regular expressions, but 6 other demos are running just fine.

To achieve that, I had to curb the excessive use of namespaces and gratuitous builtin overrides - while iup:open might look nice and clever to you, IMO it /*will*/ clobber some open that has been working fine for years, so it is IupOpen now [==C].
I merged the includes into a single iup.e file, as the quickest way to ensure removal of any duplicates/overrides; that can be undone later if there really is any need to do so. Combined it is still shy of 5000 lines, and I'd like to keep it that way.

I downloaded the latest iup.chm and cd.chm files, only to find that neither has an index ;-(
I have managed to unpack and rebuild them, and started the slow process of creating all the index entries.
I plan to rename all the Eu wrapper functions to match the C names, to help integration with Edita. I have also renamed all of the c_func/proc constants from hXXX to xXXX because that is another Edita/Help thing, and it should not matter anyway.
Yesterday I managed to index 94 entries and integrate them into the Edita help system (so that F1 jumps right to the docs), but there may be as many as 1100 more, so I'd have to chip away at that as time allows.

I have added error handling when the dlls cannot be opened, changed the version to "3.3.0p1", fixed a handful of free(0), as that's an error in Phix, and a couple of "probable logic errors": get_string_array/elsif sequence(classname) and iup_append/elsif sequence(child).

Unfortunately there is a bug in Phix regarding switch with fallthru, whereby it makes a mess of optimising the jump table, and may take me some time to figure out a proper fix, so for now IupGetParam (was get_param) has to do things longhand.
cdCanvasVertex (was canvas_vertex) was using hCd, not the hCdCanvas parameter (fixed)
canvas_put_image_rect_rgba was using xcdCanvasPutImageRectRGB not xcdCanvasPutImageRectRGBA (fixed)
init_bitmap is not using xcdInitBitmapMAP (still outstanding)
rgb_2_map does not use the rgb parameter (still outstanding)

I would be happy to serve on the "iup comittee", as long as it is understood my primary focus is on Phix, with getting the same stuff to run seamlessly on OpenEuphoria an important but secondary goal.

First things first though, obviously I need to fix the bugs just found, then port a few programs to iup, maybe try to cobble up a starter IDE, all before any final decision.

Pete

new topic     » goto parent     » topic index » view message » categorize

23. Re: UI/IDE committee

petelomax said...

maybe try to cobble up a starter IDE

That would be very nice!

new topic     » goto parent     » topic index » view message » categorize

24. Re: UI/IDE committee

petelomax said...

I would be happy to serve on the "iup comittee", as long as it is understood my primary focus is on Phix, with getting the same stuff to run seamlessly on OpenEuphoria an important but secondary goal.

The decision is not up to me, but I think it makes sense for both OE and Phix to standardize on the same GUI/API.

new topic     » goto parent     » topic index » view message » categorize

25. Re: UI/IDE committee

jimcbrown said...
petelomax said...

I would be happy to serve on the "iup comittee", as long as it is understood my primary focus is on Phix, with getting the same stuff to run seamlessly on OpenEuphoria an important but secondary goal.

The decision is not up to me, but I think it makes sense for both OE and Phix to standardize on the same GUI/API.

Hmm... there isn't an IUP committee yet but perhaps there should be. I like the idea that Phix and OE could standardize on the same GUI.

The three biggest issues that I see with IUP are all solvable. And they are:

  • No one is actively maintaining IUP wrappers.
  • No one has used it to create anything as of yet.
  • There doesn't seem to be a Mac OS X port.
IUP Docs said...

The library is available for several compilers:

  • GCC and CC, in the UNIX environment
  • Visual C, Borland C, Watcom C++ and GCC (Cygwin and MingW), in the Windows environment

The library is available for several operating systems:

  • UNIX (SunOS, IRIX, and AIX) using Motif 2.x
  • UNIX (FreeBSD and Linux) using GTK+ (since 3.0)
  • Microsoft Windows XP/2003/Vista/7 using the Win32 API
new topic     » goto parent     » topic index » view message » categorize

26. Re: UI/IDE committee

xecronix said...

The three biggest issues that I see with IUP are all solvable. And they are:

  • No one is actively maintaining IUP wrappers.

Oh... Wait. Greg has just created a new IUP wrapper and a program that can help automate the process of keeping an IUP wrapper up to date. This may not be an issue anymore.

xecronix said...
  • No one has used it to create anything as of yet.

And Greg has created a WEE clone using the new IUP wrapper. And it looks great! Follow this thread for more details.

xecronix said...
  • There doesn't seem to be a Mac OS X port.

This may still be a problem though. Do we have anyone using OS X that can verify that this is or isn't a problem? I would also consider Raspberry Pi potentially problematic but I can look at setting up IUP and the Euphoria Editor Greg wrote on the Pi tonight. If I get it working I'll create a package for it. This is exciting!

new topic     » goto parent     » topic index » view message » categorize

27. Re: UI/IDE committee

xecronix said...
xecronix said...
  • There doesn't seem to be a Mac OS X port.

This may still be a problem though. Do we have anyone using OS X that can verify that this is or isn't a problem?

I don't have OSX, but looking on the web it looks like it's possible with a significant caveat:

http://sourceforge.net/p/iup/mailman/message/21672382/

xecronix said...

I would also consider Raspberry Pi potentially problematic but I can look at setting up IUP and the Euphoria Editor Greg wrote on the Pi tonight. If I get it working I'll create a package for it. This is exciting!

Looks like someone has already gotten Iup working on Raspbian.

https://www.mail-archive.com/iup-users@lists.sourceforge.net/msg01156.html

new topic     » goto parent     » topic index » view message » categorize

28. Re: UI/IDE committee

jimcbrown said...

I don't have OSX, but looking on the web it looks like it's possible with a significant caveat:

http://sourceforge.net/p/iup/mailman/message/21672382/

Yuk. That's not going to go over well. There is a GTK+ Download: Mac OS X page. Maybe that would help?

jimcbrown said...

Looks like someone has already gotten Iup working on Raspbian.

https://www.mail-archive.com/iup-users@lists.sourceforge.net/msg01156.html

Neat! But we will need the IM and CD libraries to use the more advanced IUP controls.

-Greg

new topic     » goto parent     » topic index » view message » categorize

29. Re: UI/IDE committee

I spent some time trying to compile iup on Mac OSX yesterday. Getting the GTK libraries isn't too hard these days: MacPorts (installs to /opt/local, slow, compiling takes hours) or Homebrew (installs soft-links to /usr/local, fast, installs binaries instead of compiling in most cases)

There are two modes of GTK on OSX: one that uses X11 app and the appearance uses the default GTK theme, and one called gtk-quartz-engine and uses native widgets. The X11 code works fine, and I use it with WEE all the time. The quartz stuff is not clear what works and what is deprecated, but I'm hoping to try it out more later. It would be a lot nicer if iup could skip GTK and use native OSX widgets directly.

The iup core library could be compiled with either mode, but I hit a snag with a missing dependency on a "cd" library. Turns out to be CanvasDraw, but I didn't get a chance to try it yet.

Anyway, this is me volunteering to test the OSX side of things.

new topic     » goto parent     » topic index » view message » categorize

30. Re: UI/IDE committee

PeteE said...

It would be a lot nicer if iup could skip GTK and use native OSX widgets directly.

http://webserver2.tecgraf.puc-rio.br/iup/en/toolkits.html said...

Why Not Mac? The first Mac driver was developed for MacOS 9 and had several memory limitations so it was abandoned. With Mac OS X we have the opportunity to do something better. Today IUP runs on Mac OS X using X11 with Motif or GTK. We plan for the future to build a native driver, but it is not a Tecgraf priority.

PeteE said...

The iup core library could be compiled with either mode, but I hit a snag with a missing dependency on a "cd" library. Turns out to be CanvasDraw, but I didn't get a chance to try it yet.

This may help. http://webserver2.tecgraf.puc-rio.br/iup/en/building.html Pay close attention to the directory structure and the order you need to do things.

PeteE said...

Anyway, this is me volunteering to test the OSX side of things.

Schweet!

new topic     » goto parent     » topic index » view message » categorize

31. Re: Is there a good Windows or cross-platform Euphoria IDE?

Judith's IDE has been updated (by me) and a version 1.0.6 is available from the Archive. I have a couple of later versions (one which works on Eu3.1.1; the other needs at least 4.0.5), neither of which has been made public. Both work pretty well still on a newish machine and Windows 10, using one or other of the latest two issues of Win32Lib. Please contact me if you want further help.

As a designer it is still, in my view, the best, but it is very long in the tooth and not cross-platform. Quite a few of the features have been overtaken by events so rather bloat things. As far as I can gather the user base is too small to justify further significant development work.

I cannot say I am a fan of the syntax of the Win32Lib library, nor of the others which have tended to follow its style, so I am warming to the Iup lobby that is building up on this thread. Still, creating something as good as Judith's designer is still a long way off.

new topic     » goto parent     » topic index » view message » categorize

32. Re: Is there a good Windows or cross-platform Euphoria IDE?

A couple of days in and this where we are now.

  • What toolkit to include with OpenEuphoira? TODO
  • What IDE should be included with OpenEuphoria? At this point, is it fair to say that the IDE included with OpenEuphoria should be something like The Euphoria Editor or WEE?
  • How to make sure that the official toolkit and IDE will work on each platform it's is installed on? TODO
  • Come up with a list of problems that are solved by having a toolkit and/or IDE included with OpenEuphoria. TODO: The reason for this list of problems is so that we know when/if we have a complete solution. This list should be driven by community input.
  • Compare the available options to see how they can help solve these problems. TODO
  • Consider what new problems the solution causes. TODO: The most likely problems will include multi-platform deployment of the solution and maintainers for both code and packaging.
  • Pick a solution. TODO: But an early front runner is IUP and The Euphoria Editor


Forked into: What problems does an Official IDE or Toolkit solve?

new topic     » goto parent     » topic index » view message » categorize

33. Re: Is there a good Windows or cross-platform Euphoria IDE?

I'll be up-front about this: I think OE should adopt the wxWidgets library.

It's a full-featured, cross-platform library. So not only do you get GUI controls, but you get support for stuff that other libraries leave out, like printing, graphics and audio. (Although the audio support leaves something to be desired).

I'm also voting to statically compile it. wxBasic did that, and weighed in at less than 1000K.

I know there's the whole "Euphoria should be minimal" argument. But it's stuff like that which drives me back to using other languages.

For example, for my current application, I need to render a bitmap of an FFT. It should be easy, right?

But OE only supports 256 color bitmaps. Rendering lines, fonts or shapes? They aren't there anymore. Color support? I need to write my own routine to handle the palette. Fonts? All the old libraries are tied to DOS, so they don't work anymore.

I'd also like to play back an audio file. Again, there's no native support in OE.

These things should be supported by OE. But they're not, so I'm currently writing a thin wrapper for Tk using the Tcl Wrapper, mainly because it can plug into the awesome Snack sound toolkit. Grumble.

Full disclosure: Only my stubborn insistence that OE have a library which supports native widgets (and possibly statically compile to the library) keeps EuGTK from getting my whole-hearted approval. grin

One "nice to have" for OE would be a better way to declare callbacks. I understand there are issues with scoping, and arguments for minimalism about using routine_id(). But it's always feels clunky. There's got to be a more elegant way to do things.

new topic     » goto parent     » topic index » view message » categorize

34. Re: Is there a good Windows or cross-platform Euphoria IDE?

dcuny said...

I'll be up-front about this: I think OE should adopt the wxWidgets library.

I agree 100%. When last we spoke you were working on an wrapper generator for wxWidgets. I'm all for that, but I've been down that road several times before and I always get lost. Conversely, I was able to write a complete wrapper generator for IUP in a few hours over a couple of days. That gave me the complete IUP library in its native API (as opposed to Jeremy's version) which allowed me to follow the documentation nearly verbatim to get The Euphoria Editor started in a few days.

dcuny said...

One "nice to have" for OE would be a better way to declare callbacks. I understand there are issues with scoping, and arguments for minimalism about using routine_id(). But it's always feels clunky. There's got to be a more elegant way to do things.

My wrapper for IUP adds this neat little function:

public function Icallback( sequence name, atom rid = routine_id(name) ) 
    return call_back( rid ) 
end function 

So I can easily do things like this in my code:

function action_cb( atom self ) 
 
    return IUP_DEFAULT 
end function 
 
IupSetCallback( button, "ACTION", Icallback("action_cb") ) 

Is that easy or what? I learned a while ago that when routine_id() is called as a part of a default parameter, it runs in the caller's scope, so that it returns the expected result at the point of the call.

-Greg

new topic     » goto parent     » topic index » view message » categorize

35. Re: Is there a good Windows or cross-platform Euphoria IDE?

ghaberek said...

I learned a while ago that when routine_id() is called as a part of a default parameter, it runs in the caller's scope, so that it returns the expected result at the point of the call.

You've got to be kidding me.

I just went round in circles with this. I wanted to write:

function create_callback(sequence routineName) 
   integer routineId = routine_id(routineName) 
   ... 
end function 

But it scoped the visibility of the routines to where it was defined instead of where it was called. I ended up having to write:

function create_callback(integer routineId) 
   ... 
end function 

And got halfway through also writing a little rant about it before deciding not to press the post button...

Is this documented somewhere? I don't see it in the manual, and I just looked again.

- David

new topic     » goto parent     » topic index » view message » categorize

36. Re: Is there a good Windows or cross-platform Euphoria IDE?

This also confuses me:

public function Icallback( sequence name, atom rid = routine_id(name) ) 
    return call_back( rid ) 
end function 

From your example, it looks like you can not only do an assignment to a non-constant value, but you can pass one of the parameter values.

Where is this in the manual defined? The manual says:

PROCDECLARE ==: [SCOPETYPE] 'procedure' IDENTIFIER '(' [PARMLIST] ')' [STMTBLK] 'end' 'procedure' 
PARMLIST ==: PARAMETER [',' PARMLIST] 
PARAMETER ==: DATATYPE IDENTIFER 

Maybe it's just that my Google-fu skills are lacking, but I can't find any mention default parameter values in the on-line manual.

There are some examples where they are used, but that's not quite the same.

- David


Forked into: routine_id scope

new topic     » goto parent     » topic index » view message » categorize

37. Re: Is there a good Windows or cross-platform Euphoria IDE?

dcuny said...

I'll be up-front about this: I think OE should adopt the wxWidgets library.

It's a full-featured, cross-platform library. So not only do you get GUI controls, but you get support for stuff that other libraries leave out, like printing, graphics and audio. (Although the audio support leaves something to be desired).

I'm also voting to statically compile it. wxBasic did that, and weighed in at less than 1000K.

Statically link for all 5 supported platforms? Including osx, unix like, and ARM systems too? 32 bit and 64 bit? If so, this could make application deployment better. How would this solution affect xlate and compile?

new topic     » goto parent     » topic index » view message » categorize

38. Re: Is there a good Windows or cross-platform Euphoria IDE?

What if, instead of adopt an external API we create a backend agnostic high level euphoria GUI API? If it use IUP, WXWidgets, QT etc under the hood, it dont matter. The API will be the same, and controled by us, the euphoria guys. No need to check docs in alien languages.

An example is Bacon's Basic Converter HUG (High Level Universal Gui) - http://www.basic-converter.org/hugdoc.html and freepascal's Lazarus, but this last is too big, many man years. We could have a high level sound API too. The way it interacts with OS (via bundled libs, SDL, SFML, OPENAL etc) dont matter and is totaly transparent.

sorry my bad english ;)

new topic     » goto parent     » topic index » view message » categorize

39. Re: Is there a good Windows or cross-platform Euphoria IDE?

My plan has always been to statically link the wrapper code directly against the wxWidgets shared libraries, so that the end result looked the same as the original libraries, but with the extra "shim" code stored inside.

I've built wxWidgets from source many times on Windows and Linux and I can tell you that I've rarely seen the sum of all shared libraries below 30 MB, even without debug symbols and after compressing them with UPX. I think wxWidgets 3.0 adds a lot more to the library that increases the total size (like propgrid, ribbon, stc, and webview) which, of course, we would want to wrap so we'd need to include it.

Here are the sizes of the files currently on my machine:

wxWidgets 3.0.2

Original Compressed Name
5,297 KB 2,932 KB wxbase30u_gcc_custom.dll
2,306 KB 1,430 KB wxbase30u_net_gcc_custom.dll
2,115 KB 1,278 KB wxbase30u_xml_gcc_custom.dll
5,278 KB 3,462 KB wxmsw30u_adv_gcc_custom.dll
2,933 KB 1,886 KB wxmsw30u_aui_gcc_custom.dll
12,377 KB 7,143 KB wxmsw30u_core_gcc_custom.dll
2,089 KB 1,321 KB wxmsw30u_gl_gcc_custom.dll
3,591 KB 2,319 KB wxmsw30u_html_gcc_custom.dll
2,152 KB 1,341 KB wxmsw30u_media_gcc_custom.dll
3,635 KB 2,371 KB wxmsw30u_propgrid_gcc_custom.dll
2,746 KB 1,679 KB wxmsw30u_ribbon_gcc_custom.dll
4,599 KB 2,823 KB wxmsw30u_richtext_gcc_custom.dll
5,093 KB 2,700 KB wxmsw30u_stc_gcc_custom.dll
2,164 KB 1,375 KB wxmsw30u_webview_gcc_custom.dll
5,619 KB 3,674 KB wxmsw30u_xrc_gcc_custom.dll
61,992 KB 37,742 KB Total

wxWidgets 2.8.12

Original Compressed Name
1,754 KB 1,120 KB wxbase28u_gcc_eu.dll
406 KB 258 KB wxbase28u_net_gcc_eu.dll
360 KB 182 KB wxbase28u_xml_gcc_eu.dll
1,352 KB 846 KB wxmsw28u_adv_gcc_eu.dll
741 KB 455 KB wxmsw28u_aui_gcc_eu.dll
5,148 KB 3,120 KB wxmsw28u_core_gcc_eu.dll
1,062 KB 652 KB wxmsw28u_html_gcc_eu.dll
413 KB 269 KB wxmsw28u_media_gcc_eu.dll
359 KB 226 KB wxmsw28u_qa_gcc_eu.dll
1,563 KB 838 KB wxmsw28u_richtext_gcc_eu.dll
952 KB 516 KB wxmsw28u_xrc_gcc_eu.dll
14,114 KB 8,488 KB Total

-Greg

new topic     » goto parent     » topic index » view message » categorize

40. Re: Is there a good Windows or cross-platform Euphoria IDE?

elias_maluko said...

What if, instead of adopt an external API we create a backend agnostic high level euphoria GUI API? If it use IUP, WXWidgets, QT etc under the hood, it dont matter. The API will be the same, and controled by us, the euphoria guys. No need to check docs in alien languages.

But isn't that what IUP, wxWidgets, and QT already provide? They're abstracting the native GUI for each platform (Win32, GTK+, Cocoa, Motif, etc.) so that the programmer only has to deal with a single cross-platform interface. Abstracting these toolkits into a single unified toolkit seems redundant to me.

-Greg

new topic     » goto parent     » topic index » view message » categorize

41. Re: Is there a good Windows or cross-platform Euphoria IDE?

xecronix said...

Statically link for all 5 supported platforms? Including osx, unix like, and ARM systems too?

Hey, I'm a user. I just want to deliver solutions to my clients (all one of them) as simply as possible. Technical details are for other people to work out. blink

I believe I statically compiled wxBasic for Windows, Linux and OS X. It's been a while, and I've blocked the gory details of dealing with MAKE files from memory. I never had to deal with ARM systems.

For wxBasic, I ended up creating two versions - one with wxWidgets, and one without that was simply a command-line version.

If you're not willing to bifurcate the OE codebase, then you'll obviously have to use .dlls.

There's always going to be the questions of what you want to support. Will a GUI-enabled version of OE be to the exclusion of other projects? At what point do you decide that something is part of the "kitchen sink", or something is not?

It's great for users to create projects, but if OE is going to adopt a vision, I think this needs to be part of the core. The difference between using ed and WEE is night and day - it's makes the language one that I want to use, because I don't feel I have to re-invent the wheel.

new topic     » goto parent     » topic index » view message » categorize

42. Re: Is there a good Windows or cross-platform Euphoria IDE?

ghaberek said...

...and I can tell you that I've rarely seen the sum of all shared libraries below 30 MB

Ooops. Forgot I always used UPX.

- David

new topic     » goto parent     » topic index » view message » categorize

43. Re: Is there a good Windows or cross-platform Euphoria IDE?

elias_maluko said...

What if, instead of adopt an external API we create a backend agnostic high level euphoria GUI API? If it use IUP, WXWidgets, QT etc under the hood, it dont matter. The API will be the same, and controled by us, the euphoria guys. No need to check docs in alien languages.

An example is Bacon's Basic Converter HUG (High Level Universal Gui) - http://www.basic-converter.org/hugdoc.html and freepascal's Lazarus, but this last is too big, many man years. We could have a high level sound API too. The way it interacts with OS (via bundled libs, SDL, SFML, OPENAL etc) dont matter and is totaly transparent.

sorry my bad english ;)

I have always though this would be the best, though will take the most work. you do wind up with a common denominator committee API that nobody really likes. some will need to bypass the API to do things other GUI can't so the idea of write once run anywhere never really happens.

python had the AnyGui project, which worked ok but never got far beyond the proof of concept stage. ok for simple programs though.

this is not far from what Ryan is doing with Redy, there are well defined files to provide the GUI primitives from any wrapper.

new topic     » goto parent     » topic index » view message » categorize

44. Re: Is there a good Windows or cross-platform Euphoria IDE?

ghaberek said...
elias_maluko said...

What if, instead of adopt an external API we create a backend agnostic high level euphoria GUI API? If it use IUP, WXWidgets, QT etc under the hood, it dont matter. The API will be the same, and controled by us, the euphoria guys. No need to check docs in alien languages.

But isn't that what IUP, wxWidgets, and QT already provide? They're abstracting the native GUI for each platform (Win32, GTK+, Cocoa, Motif, etc.) so that the programmer only has to deal with a single cross-platform interface. Abstracting these toolkits into a single unified toolkit seems redundant to me.

-Greg

Sure. But wrap giant libraries like WxWidgets or QT, provide documentation and keep it updated seems harder than create a simple High level API (look the link of HUG). Provide a 1 to 1 wrap (c/cplusplus to euphoria) and wait the euphoria programmer look for documentation in a C manual is not a wise option to me.

new topic     » goto parent     » topic index » view message » categorize

45. Re: Is there a good Windows or cross-platform Euphoria IDE?

elias_maluko said...

An example is Bacon's Basic Converter HUG (High Level Universal Gui) - http://www.basic-converter.org/hugdoc.html

Thanks for the tip. I like the simplicity of the docs.

new topic     » goto parent     » topic index » view message » categorize

46. Re: Is there a good Windows or cross-platform Euphoria IDE?

ne1uno said...

I have always though this would be the best, though will take the most work. you do wind up with a common denominator committee API that nobody really likes. some will need to bypass the API to do things other GUI can't.

That's why its important to provide a simple primitive base component (like a canvas) that can be used to render custom components.

ne1uno said...

so the idea of write once run anywhere never really happens.

The web itself provides the biggest write once run anywhere. We use buttons, labels, write texts in forms, watch video, and nobody complain that the gui dont looks like native. The problem here is the bad looking (and half implemented) controls provided by non native guis. Look at old TCL/TK guis, Swing Gui with Metal look and feel, FLTK and Fox Toolkit. All provide that ugly dated look and very fell customization options. Thats why i said once to Ryan that he should team with a designer to provide the look and feel for Redy. Maybe we, the programmers dont see, but programmer's art (in general) is ugly ;)

ne1uno said...

python had the AnyGui project, which worked ok but never got far beyond the proof of concept stage. ok for simple programs though.

I believe that happened because that was not bundled with python. Even today the python guys prefer TK because its the default bundled GUI for python.

ne1uno said...

this is not far from what Ryan is doing with Redy, there are well defined files to provide the GUI primitives from any wrapper.

I think Ryan is drawing the components by itself, not relying on wrapped external controls.

xecronix said...

Thanks for the tip. I like the simplicity of the docs.

Your welcome

new topic     » goto parent     » topic index » view message » categorize

47. Re: Is there a good Windows or cross-platform Euphoria IDE?

elias_maluko said...

The web itself provides the biggest write once run anywhere. We use buttons, labels, write texts in forms, watch video, and nobody complain that the gui dont looks like native. The problem here is the bad looking (and half implemented) controls provided by non native guis. Look at old TCL/TK guis, Swing Gui with Metal look and feel, FLTK and Fox Toolkit. All provide that ugly dated look and very fell customization options. Thats why i said once to Ryan that he should team with a designer to provide the look and feel for Redy. Maybe we, the programmers dont see, but programmer's art (in general) is ugly ;)

I agree there are a lot of "ugly" GUIs out there. Most of the ones you're citing aren't intrinsically ugly though. Most of them were developed in the Win95 era, and took on the look and feel of the time. Many simply haven't been updated since then, because the developers are more focused on other matters.

But people do complain that a GUI doesn't look native. The Metal design was quite stylish. It failed because people wanted a native look and feel, which is the approach that Swing takes today.

I agree that REDY could use a makeover - the scrollbars look like they came from the Motif toolkit. But skinning widgets isn't particularly difficult. The real issue is supporting all the various functionality (mouse, keyboard shortcuts) that can differ from platform to platform.

And a GUI API needs to provide more than just a canvas that renders with pretty widgets. It also needs to provide menus, dialogs, printing, audio, and so on. On Gnome and OS X, window-based menus are going to look out of place. Applications should use the default font of the theme, and present at the correct resolution (point size and DPI).

A pure-Euphoria GUI is certainly possible, but why would you want one? It would never be as feature-complete as the ones your users currently are using (although they might not initially notice). What benefit is there in settling for less?

- David

new topic     » goto parent     » topic index » view message » categorize

48. Re: Is there a good Windows or cross-platform Euphoria IDE?

elias_maluko said...

Provide a 1 to 1 wrap (c/cplusplus to euphoria) and wait the euphoria programmer look for documentation in a C manual is not a wise option to me.

That's where the IDE comes in. If you've got type declarations, your IDE can pop up intellisense hints.

- David

new topic     » goto parent     » topic index » view message » categorize

49. Re: Is there a good Windows or cross-platform Euphoria IDE?

dcuny said...

But people do complain that a GUI doesn't look native. The Metal design was quite stylish. It failed because people wanted a native look and feel, which is the approach that Swing takes today.

I believe people complain when the software don't look professional. Write an app with windows 95 look in 2015 seems strange even to computer illiterates. The whole QT gui framework don't use native controls and is used to make Gui heavy apps like Maya 3D.

dcuny said...

The real issue is supporting all the various functionality (mouse, keyboard shortcuts) that can differ from platform to platform.

This! This is the point! if your menu, edit box, window decoration(borders and min/max/close buttons) and scroll bars don't *behave* like native, the user will note and complain. In my view it should behave (even if this don't look like native). Thats why i said that Web and its Web apps are a good example of write once and run anywhere. The edit boxes and scroll bars works like native all the rest is only limited by designer's view.

To enrich the discussion, theres even a new trend in using undecorated window with a webview embedded to make the gui using web technologies (HTML and javascript). This is a known approach in mobile apps, but now for desktops too. See github's Electron (http://electron.atom.io). The good: You have access to video, audio, 2d canvas, 3d with webgl canvas... out of the box The bad: Your app will weight 100mb+

Note that my initial suggestion was just to make a simple GUI API for euphoria like HUG (http://www.basic-converter.org/hugdoc.html). We could use native or no under the hood. Why not dream? We could even use Electron under the hood ;D

new topic     » goto parent     » topic index » view message » categorize

50. Re: Is there a good Windows or cross-platform Euphoria IDE?

elias_maluko said...

The problem here is the bad looking (and half implemented) controls provided by non native guis. Look at old TCL/TK guis, Swing Gui with Metal look and feel, FLTK and Fox Toolkit. All provide that ugly dated look and very fell customization options. Thats why i said once to Ryan that he should team with a designer to provide the look and feel for Redy. Maybe we, the programmers dont see, but programmer's art (in general) is ugly ;)

ne1uno said...

this is not far from what Ryan is doing with Redy, there are well defined files to provide the GUI primitives from any wrapper.

I think Ryan is drawing the components by itself, not relying on wrapped external controls.

dcuny said...
elias_maluko said...

The web itself provides the biggest write once run anywhere. We use buttons, labels, write texts in forms, watch video, and nobody complain that the gui dont looks like native. The problem here is the bad looking (and half implemented) controls provided by non native guis. Look at old TCL/TK guis, Swing Gui with Metal look and feel, FLTK and Fox Toolkit. All provide that ugly dated look and very fell customization options. Thats why i said once to Ryan that he should team with a designer to provide the look and feel for Redy. Maybe we, the programmers dont see, but programmer's art (in general) is ugly ;)

I agree there are a lot of "ugly" GUIs out there. Most of the ones you're citing aren't intrinsically ugly though. Most of them were developed in the Win95 era, and took on the look and feel of the time. Many simply haven't been updated since then, because the developers are more focused on other matters.

But people do complain that a GUI doesn't look native. The Metal design was quite stylish. It failed because people wanted a native look and feel, which is the approach that Swing takes today.

I agree that REDY could use a makeover - the scrollbars look like they came from the Motif toolkit. But skinning widgets isn't particularly difficult. The real issue is supporting all the various functionality (mouse, keyboard shortcuts) that can differ from platform to platform.

And a GUI API needs to provide more than just a canvas that renders with pretty widgets. It also needs to provide menus, dialogs, printing, audio, and so on. On Gnome and OS X, window-based menus are going to look out of place. Applications should use the default font of the theme, and present at the correct resolution (point size and DPI).

A pure-Euphoria GUI is certainly possible, but why would you want one? It would never be as feature-complete as the ones your users currently are using (although they might not initially notice). What benefit is there in settling for less?

I felt that it was necessary to create widgets from scratch for several reasons, which is perhaps a discussion for another time. Because i wanted to focus on finishing all the API and functionality, i had to use very basic drawing code for now. It is really easy to draw filled rectangles with lines for highlights and shadows. Besides, i like the simple boxy 3D look. Much of my gui design has been influenced by Geoworks Ensemble from the '90s, which in my opinion was an amazing design (both visual style and behavior).

I do like some of the themes i have seen on linux, with round corners, soft edges, and gradients. I plan to add a theme engine to try different styles, but i need a much better graphics library first.

I do find it quite annoying when programs used half-baked gui libraries that don't behave as expected, like when you hit tab and it doesn't go to the next textbox. My intention is for Redy to follow basic standards, while allowing room to innovate new ideas. I fully intend for Redy to have features that a professional gui is expected to have:

  • Obey regional settings and user preferences (font and dpi settings, date/time format, color schemes, unicode, ltr or rtl languages, etc.)
  • Look and feel that is close enough to native to not annoy people
  • Full keyboard navigation and control (tab focus, alt/ctrl key combos, function keys, etc.)
  • Layout that works well on any resolution
  • User-customize-able layout for toolbars and panels
  • Complete set of tool button icons
  • Full multi-monitor support
  • Drag-and-drop, clipboard support, and undo
new topic     » goto parent     » topic index » view message » categorize

51. Re: UI/IDE committee

jimcbrown said...

Ok, the two of you have two weeks to pick the committee members. The 31 days starts after the two weeks has elapsed (so if you pick early, the committee gets extra time to make a decision).

Ok, the deadline has been passed.

When will the committee be able to make a public announcement about the proposed solution? Or is http://openeuphoria.org/forum/m/129097.wc it?

new topic     » goto parent     » topic index » view message » categorize

52. Re: UI/IDE committee

jimcbrown said...
jimcbrown said...

Ok, the two of you have two weeks to pick the committee members. The 31 days starts after the two weeks has elapsed (so if you pick early, the committee gets extra time to make a decision).

Ok, the deadline has been passed.

When will the committee be able to make a public announcement about the proposed solution? Or is http://openeuphoria.org/forum/m/129097.wc it?

I say we go with "Iup for Euphoria." It is multi-platform and available today.

When someone shows me a more elegant solution I will endorse it.

_tom

new topic     » goto parent     » topic index » view message » categorize

53. Re: UI/IDE committee

_tom said...

I say we go with "Iup for Euphoria." It is multi-platform and available today.

When someone shows me a more elegant solution I will endorse it.

_tom

Sure it is nice, but when you have to deal with pointers as with IupGetParams (http://openeuphoria.org/forum/m/129119.wc), it is a bit complicated for beginners compared to the EuIup version (https://bitbucket.org/jcowgar/euiup/src then demos/getparams.ex).

On the other side, I could not get EuIup to work on Windows. It works for me only on Linux.

Jean-Marc

new topic     » goto parent     » topic index » view message » categorize

54. Re: UI/IDE committee

horse + donkey = mule 

It follows that

Microsoft + Linux + OS X = ? 

You can not please anyone with a multi-platform gui it seems.

Is IUP simpler than wxWidgets? An opinion from the wxWidget maintainers would help. Can "IUP for Euphoria" be wrapped to look more like EuIUP? (Note that EuIUP is no longer being maintained.)

My learning curve for IUP so far is steep. I have simple things working but not the fancy stuff. "Iup for Euphoria" is a valuable addition to Euphoria worthy of promotion even if it doesn't become the "official" toolkit.

_tom

new topic     » goto parent     » topic index » view message » categorize

55. Re: UI/IDE committee

jmduro said...

Sure it is nice, but when you have to deal with pointers as with IupGetParams (http://openeuphoria.org/forum/m/129119.wc), it is a bit complicated for beginners compared to the EuIup version (https://bitbucket.org/jcowgar/euiup/src then demos/getparams.ex).

I am aware of this and I plan to address it. At the same time, we can't always avoid calling memory directly when we're working with third-party libraries. When in Rome, as they say.

jmduro said...

On the other side, I could not get EuIup to work on Windows. It works for me only on Linux.

I don't think it works with the latest libraries. Or maybe it's trying to use STDCALL and the library expects CDECL.

-Greg

new topic     » goto parent     » topic index » view message » categorize

56. Re: UI/IDE committee

ghaberek said...

I am aware of this and I plan to address it. At the same time, we can't always avoid calling memory directly when we're working with third-party libraries. When in Rome, as they say.

I made a proposal for IupGetParam here: http://openeuphoria.org/forum/m/129127.wc

Jean-Marc

new topic     » goto parent     » topic index » view message » categorize

57. Re: UI/IDE committee

_tom said...
horse + donkey = mule 

It follows that

Microsoft + Linux + OS X = ? 

You can not please anyone with a multi-platform gui it seems.

Is IUP simpler than wxWidgets? An opinion from the wxWidget maintainers would help. Can "IUP for Euphoria" be wrapped to look more like EuIUP? (Note that EuIUP is no longer being maintained.)

My learning curve for IUP so far is steep. I have simple things working but not the fancy stuff. "Iup for Euphoria" is a valuable addition to Euphoria worthy of promotion even if it doesn't become the "official" toolkit.

_tom

To make it short, the UI/IDE committee was not able to make a decision?

Andreas

new topic     » goto parent     » topic index » view message » categorize

58. Re: UI/IDE committee

I completely missed Tom's post from the other day. Probably because I had responded to Jean-Marc at the nearly same time. So here are my responses.

_tom said...

You can not please anyone with a multi-platform gui it seems.

I would agree that one cannot have great multi-platform GUI toolkit. You can have something that's good enough or something that is native to that platform. wxWidgets sure gets close but even then there are some things that are out of place because they are non-native implementations.

_tom said...

Is IUP simpler than wxWidgets? An opinion from the wxWidget maintainers would help.

IUP is a great deal simpler than wxWidgets. There is a decent comparison for this on the IUP page here: http://webserver2.tecgraf.puc-rio.br/iup/en/toolkits.html

The primary difference is that IUP is simply a GUI toolkit, whereas wxWidgets is more like a development platform similar to Microsoft .NET. wxWidgets has additional libraries and classes for other functions like networking, document/view framework, console applications, etc. IUP is just a means to add a GUI to your application.

The number one thing I like about IUP over wxWidgets is that IUP is written in C and can be interfaced directly with Euphoria. Since wxWidgets is written in C++, we need the "shim" library that wxEuphoria provides.

_tom said...

Can "IUP for Euphoria" be wrapped to look more like EuIUP? (Note that EuIUP is no longer being maintained.)

I do not know if there is much value to be added with converting the entire API for IUP into EuIUP style. I think the existing API is already quite Euphoria-like and not all that different from Win32Lib or wxEuphoria. The only difference is that there's no central create() routine and instead there are separate routines to create each type of control separately. Almost everything else is handled through the IupGet/SetAttribute() functions.

_tom said...

My learning curve for IUP so far is steep. I have simple things working but not the fancy stuff. "Iup for Euphoria" is a valuable addition to Euphoria worthy of promotion even if it doesn't become the "official" toolkit.

After playing with IUP for a few months now, I can say that I do not think the learning curve for it is all that steep. I think that once you "get it" and start to think in terms of how IUP works, it becomes a snap to throw a quick GUI together without much effort. You can get a lot done just by consulting the documentation and sample files provided by the IUP project. This is why I have been insisting on keeping the API as-is: it makes the learning curve much easier for the user.

The main idea to keep in mind is that there isn't a lot of "fancy stuff" to get working. IUP is very, very simple. It doesn't even have a ListView control!

http://lists.luaforge.net/pipermail/iup-mail/2007-October/000070.html

Antonio Scuri scuri at tecgraf.puc-rio.br 
Thu Oct 4 11:59:28 GMT+3 2007 
 
 Hi, 
 
 We do not have ListView control yet. We are working on version 3.0 with 
several new and probably in 3.1 there will be a native ListView. 
 
 But we have IupMatrix that can do what you need, except to show an image in 
the cell. To do that you have to use the DRAW_CB callback and draw the image 
using the CD library.  
 
Best Regards, 
Antonio Scuri 
 
> -----Original Message----- 
> From: Jeremy Cowgar [mailto:jeremy at cowgar.com]  
> Sent: quinta-feira, 4 de outubro de 2007 03:02 
> To: iup at tecgraf.puc-rio.br 
> Subject: ListView Control? 
>  
> Is there a list view control for Iup? I've played with it now  
> for a few hours and I think it's just what I am looking for,  
> except, I cannot find a ListView control. I see the ListBox  
> and the Grid controls, but what I am speaking of is something  
> like a multicolumn listbox. For instance, the list view on an  
> email client that shows the message date, title, from, status, etc... 
>  
> Thanks for any input! 
>  
> Jeremy 
> 

Version 3.17 came out last week and there's still no ListView control to speak of. But they did fix my tab-closing issue in GTK!

andi49 said...

To make it short, the UI/IDE committee was not able to make a decision?

Andreas

If I have to call it now, I will put it this way:


IUP is the supported GUI toolkit for Euphoria. It will not be included as part of Euphoria but it will be provided as a separate download in the same package formats (exe, deb, etc.). Install Euphoria. Install IUP. Get started making GUI applications right away. No building, no linking, no source control, no third-party dependencies. Demos and documentation will be provided in the download. Support is available via the forum.

OS X support will not be provided until we have someone with OS X expertise and hardware on the development team. Using IUP on OS X requires a separate installation of GTK for OS X.

This is all, of course, a work in progress. We have a lot of converted samples and a primary flagship application to demonstrate the usage of IUP in Euphoria. I need to work on the documentation as well. Not sure if we can automate that without relying too heavily on the source code. The include headers do not provide any documentation. It's all provided in the source code and then pulled out with Doxygen. I may take a similar approach to wxEuphoria but that will require rewriting my automated wrapper, but that probably needs to get done anyway.

-Greg

new topic     » goto parent     » topic index » view message » categorize

59. Re: UI/IDE committee

Ho,ho,ho

simple question (I repeat myself)

I just want to know (i do not care if it is IUP or GTK or WXWIDGETS or WIN32 or whatever...)

To make it short, the UI/IDE committee was not able to make a decision?

Andreas

new topic     » goto parent     » topic index » view message » categorize

60. Re: UI/IDE committee

andi49 said...

Ho,ho,ho

simple question (I repeat myself)

I just want to know (i do not care if it is IUP or GTK or WXWIDGETS or WIN32 or whatever...)

To make it short, the UI/IDE committee was not able to make a decision?

Andreas

Well I guess one of us actually has to actually say one way or the other, don't we? blink

IUP is the supported GUI toolkit for Euphoria.


That being said, the work to provide IUP for Euphoria is not complete but continues to make progress.

-Greg

new topic     » goto parent     » topic index » view message » categorize

61. Re: UI/IDE committee

ghaberek said...

Well I guess one of us actually has to actually say one way or the other, don't we? blink

IUP is the supported GUI toolkit for Euphoria.


That being said, the work to provide IUP for Euphoria is not complete but continues to make progress.

-Greg

Hi

Thank you, now it is clear, IUP is THE toolkit for Euphoria. Maybe, it should also appear on the OpenEuphoria Homepage.

So, i think (or hope) there should be a link to download the wrapper and the shared libs (eg. .so and .dll).
On a prominent place (maybe I'am wrong...).

What i like to say is, the now 'supported GUI toolkit for Euphoria' is not even on this page http://openeuphoria.org/wiki/view/Starting%20Euphoria%20Gui%20Programming.wc

Who should test it? If it is not easy to download or even to find?

Who should know there is a supported toolkit if it is not even mentioned on the Homepage?

Who should help to improve it?

Or is it a secret, only for 'internal' use? Or even a pet-project for the 'UI/IDE committee'?

Andreas


Forked into: GUIs FOR EUPHORIA

new topic     » goto parent     » topic index » view message » categorize

62. Re: UI/IDE committee

Andreas, these are very good questions. But first let me preface the rest of this response by saying thanks to Greg who has worked very hard to provide an excellent wrapper and GUI programming option to OE. In addition to providing a wrapper the IDE he's been working on is coming along nicely. These should be exciting times for OE in the near future.

In my opinion, the committee has failed though. While an official GUI was stated earlier this week, there has been no discussions on how to integrate the project with OE. In fact, what was accomplished is the creation of another dll/wrapper that exists in the community user space. While this by it's self isn't a bad thing, my hopes were that we would have discussed at least some of the obvious concerns such as distribution and keeping true to some of the other OE goals. Since I've mentioned this in e-mail and publicly on these forums I'll only briefly mention high level discussion that should happen between the committee members if the project is going to succeed beyond the success of the already existing similar projects such as Wx and GTK.

  • Cross platform distribution of the IUP solution (dll & wrapper)
  • Integration of the above with the OE build and packaging processes
  • Cross platform distribution of OE user's programs
  • Complied vs Interpreted usage of OE user's programs. (Closely related to the above)
  • DLL/Wrapper sync (ie what happens when a customer upgrades IUP)
  • DLL location
andi49 said...

So, i think (or hope) there should be a link to download the wrapper and the shared libs (eg. .so and .dll).
On a prominent place...

If the above concerns are discussed and addressed you would not need to worry about these things and you could just focus on building your program. This path of downloading wrappers and DLLs from the archive or other places has proven to not be a very effective long term solution to this problem in the past. Proof of that is the fact that we are having this conversation now.

andi49 said...

Who should test it? If it is not easy to download or even to find? Who should help to improve it?

This is an open source project and is currently being worked on in a very public way. In fact, the project is housed at a defacto community repository. Greg has been soliciting help from testers since the beginning. Given that we have a small community, everyone should probably help support the project either by forking the code and working on it, or testing the code and creating bug reports, or finding ways to help with documentation. Bitbucket easily supports all of these avenues.

https://bitbucket.org/ghaberek/editor

andi49 said...

Who should know there is a supported toolkit if it is not even mentioned on the Homepage?

Sure, I agree. Maybe some news about the project on the homepage is warranted. But, I would expect an Official GUI to have a section in the Official Documentation. Clearly we're not there yet.

andi49 said...

Or is it a secret, only for 'internal' use? Or even a pet-project for the 'UI/IDE committee'?

I wouldn't call Greg's IUP efforts a pet-project but more of a proof of concept. He has a program that is generating the wrapper from the C header files. If this concept works long term, this is a big win for OE. Again, not a secret though. He's mentioned it in the forums and on the project bitbucket homepage. https://bitbucket.org/ghaberek/editor

I hope I've provided a realistic state of things for the community.

-Xecronix

new topic     » goto parent     » topic index » view message » categorize

63. Re: UI/IDE committee

xecronix said...

In my opinion, the committee has failed though.

Hi

Disagree totally.

I've been using Eu in it's various guises since 2001 (ish) and this last month or two (apart from the change from 3.xx to 4.xx) has been the biggest leap I have seen in Eu.

You and the other committee have put in some great effort, please keep it up.

I agree with all the aims of the conmittee, and while you may not be able to achieve all of them straight away, you are only a very short hop from them. Perhaps make stages / signposts - eg get a windows version working, then move to also getting a Linux version working, then getting cross platform smoothness.

Exciting times indeed. Many many thanks to all the UI/IDE committee.

Cheers

Chris Burch

new topic     » goto parent     » topic index » view message » categorize

64. Re: UI/IDE committee

xecronix said...

In my opinion, the committee has failed though.

Thank you for being brave enough to say that.

xecronix said...

While an official GUI was stated earlier this week, there has been no discussions on how to integrate the project with OE.

I didn't realize it at the time, but the deadline for the committee was between two major US holidays (US Thanksgiving and the Winter Solstice holidays like Yule and Hannaka). Furthermore, we had a third holiday in the middle of the commitee's work as well (Halloween). As all three committee members are from or are in the US, this may have been a factor in what happened.

ChrisB said...

Disagree totally.

I've been using Eu in it's various guises since 2001 (ish) and this last month or two (apart from the change from 3.xx to 4.xx) has been the biggest leap I have seen in Eu.

You and the other committee have put in some great effort, please keep it up.

I agree with all the aims of the conmittee, and while you may not be able to achieve all of them straight away, you are only a very short hop from them.

Interesting point. If the committee approach worked out in general, but just ran out of time before it could finish everything, then I think it certainly makes sense to extend the deadline (and perhaps, now that a more realistic view of how long everything will take is known, several goal posts to mark intermediate stages).

new topic     » goto parent     » topic index » view message » categorize

65. Re: UI/IDE committee

Tom's rambling on choosing a GUI for Euphoria.

We need a GUI today, so IUP is the supported GUI toolkit for OpenEuphoria. If someone makes a convincing argument for a better toolkit we will adapt. What remains is documentation and examples, a slick installation method, and ultimately bundling with the Euphoria distribution. A lot of practical details remain before you get a "click and run" download of IUP; it is a bit early for a grand announcement about IUP. You can preview Iup for Euphoria at: https://bitbucket.org/ghaberek/editor/overview IUP will be a great addition to Euphoria.

GUI of the day is IUP (Interface User Portable)

  • multi-platform
  • wrapper by G. Haberek
  • interface by Tecgraf
  • looks like it has a maintainable future
  • lacks documentation, examples, tutorial
  • first impression: a practical way to add a GUI to a small program
  • could use: more Euphoric feel
  • Progress report: 70,000 words of documentation grabbed from IUP and 30 examples working.
  • Iup is used with: Euphoria, Bacon, Chicken, Lua, Python, and others

Multi-platform GUI options

GTK

  • great on Linux
  • works on Windows, but install requires a large set of dependencies

wxWidgets

  • multi-platform
  • has documentation, examples, editor, designer
  • should be the dominant GUI
  • I am not clear about who is maintaining the wrapper
  • I am not clear about an effortless installation
  • could use: more Euphoric feel
  • debatable: is IUP or wxWidgets "easier" to use?

Note: Can't define "Euphoric feel" but we do have opinions about it.

Survey of languages and GUI options

Class Promoter Language GUI Notes
Corporate
Microsoft Net Windows all integrated
Apple Swift OS X all integrated
Google Go
Mozilla Rust
Oracle Java AWT
Tekgraf Lua IUP
Academic
Python
Pascal
Lisp
Unix
C
Perl
Tk/Tcl
Independent
OpenEuphoria

Other than Microsoft and Apple, everyone is scrambling to get a GUI working. No obvious winners here. The ideal GUI package remains elusive for everyone.

Language success needs:

  • corporation or benefactor
  • money
  • open-source
  • a nice name
  • hoola-hoop factor

The Euphoria family--OpenEuphoria, Phix, Euphoria--is the only Friendly, Flexible, and Fast programming available. It's just too good to ignore.

How to get a GUI working

(1) Program OS directly.

Euphoria --> GUI

Suitable only for the determined.

(2) Use a toolkit.

Euphoria --> toolkit --> GUI

Suitable for one operating system: win32lib, tinEWG, euGTK

(3) Add an interface for multi-platform use

Euphoria --> toolkit --> interface --> GUI

Suitable for many uses: wxWidgets, IUP, euGTK

(4) Piggyback another language.

Euphoria --> toolkit --> ( language + interface ) --> GUI

Workable with a large install: AWT from Java, Net from Mono (example is JAPI wrapper Euphoria to Java)

Installations increase in size as you go from (1) to (4). Ease of distributing programs goes down as you go from (1) to (4).

Some creative thinking:

REDY

  • works only on Windows so far

wxBasic

  • D. Cuny integrated wxWidgets into his own language

Bach

  • K. Boechert integrated IUP into a custom build of RDS2.4 Euphoria

Agar

  • multi-platform and opensource
  • feature is that modern graphics cards are exploited

The UI/IDE committee?

  • We have failed to produce the ultimate GUI solution that other programming languages will copy from us.
  • We have a supported GUI that will be useful to many Euphoria programmers.
  • The committee idea resulted in a burst of progress.
  • Euphoria is better than when we started.

Thanks to Greg and xecronix

_tom

+1
new topic     » goto parent     » topic index » view message » categorize

66. Re: UI/IDE committee

jimcbrown said...

Interesting point. If the committee approach worked out in general, but just ran out of time before it could finish everything, then I think it certainly makes sense to extend the deadline (and perhaps, now that a more realistic view of how long everything will take is known, several goal posts to mark intermediate stages).

On the other hand, it's been a month and a half since I wrote this, and no new overall deadline or dates for accomplishing goal posts have been marked by the committee.

The last post thus far: http://openeuphoria.org/forum/m/129181.wc

I find this state of affairs very discouraging.

new topic     » goto parent     » topic index » view message » categorize

67. Re: UI/IDE committee

_tom said...

Agar

  • multi-platform and opensource
  • feature is that modern graphics cards are exploited

I thought Agar could be a winner candidate but I was not able to get it run even in C so that was a bad point to start with.

Current version 1.4.1 has also not been update since 2011.

Jean-Marc

new topic     » goto parent     » topic index » view message » categorize

68. Re: UI/IDE committee

jimcbrown said...

On the other hand, it's been a month and a half since I wrote this, and no new overall deadline or dates for accomplishing goal posts have been marked by the committee.

The last post thus far: http://openeuphoria.org/forum/m/129181.wc

I'll admit, I've been doing almost zero development since November. I just haven't had the time. The holiday season hit me really hard this year.

Productivity will return as my schedule allows. I started my IUP/Editor project on a particularly free weekend last October where I could power through it quickly.

jimcbrown said...

I find this state of affairs very discouraging.

What's disappointing to me is the reality that we just don't have enough manpower to really see these things through.

Ron laid out several roles in that post you linked to, and asked for people to "please get involved" but no one has stepped forward to contribute.

I'm preaching to the choir on this, but without more volunteers I don't think we can get much done in a timely manner.

-Greg

new topic     » goto parent     » topic index » view message » categorize

69. Re: UI/IDE committee

I have been plodding away working at "converting" the examples in the "C" folder on the Iup site and the changes to the existing version of the library that would make it easier to use.

If you want helpers count me in. I would be happy to help with documentation as well as the above, but someone needs to direct the effort if our (limited?) resources are to be best used.

new topic     » goto parent     » topic index » view message » categorize

70. Re: UI/IDE committee

dr_can said...

I have been plodding away working at "converting" the examples in the "C" folder on the Iup site and the changes to the existing version of the library that would make it easier to use.

If you want helpers count me in. I would be happy to help with documentation as well as the above, but someone needs to direct the effort if our (limited?) resources are to be best used.

Thankyou, help is desperately needed.

Greg will be able to set you up so can upload example programs (an area where I have been having problems).

The first round of documentation has been uploaded.

  • the "reference manual" this requires grunt work at the moment that is not easily delegated
  • I have started translating some of the tutorials -- a good place to help (I will get these uploaded so they can be examined)

Library changes that I have noticed (with the understanding that the wrapper is automated and not be be faulted...)

  • needs defaults
  • constants with "IUPconstantname" are not being used
  • changes to make it more "Euphoric" would be welcome

Any kind of tutorial would be valuable. I can help with formatting in the Creole markup style so don't worry about the details.

_tom

new topic     » goto parent     » topic index » view message » categorize

71. Re: UI/IDE committee

jimcbrown said...

I find this state of affairs very discouraging.

But not hopeless. I have learned that a "drop in" multi-platform GUI is asking for a lot. You can find opinions on the web that this (multi-platform idea...) is an unreasonable objective.

_tom

new topic     » goto parent     » topic index » view message » categorize

72. Re: UI/IDE committee

Hi

It's a shame, but I think I agree to a point that the the UI/IDE comitte has run out of steam, through no fault of their own. I suspect that it's a combo of these two factors

  • Real world commitments (ie life)
  • Too lofty a target - ie cross platform invisible compatibility

It might be worthwhile, as I said before to limit the project to Windows only, since, I believe, that this is the most popular operating system, first,

What can I do to help?

Cheers

Chris

new topic     » goto parent     » topic index » view message » categorize

73. Re: UI/IDE committee

_tom said...
dr_can said...

I have been plodding away working at "converting" the examples in the "C" folder on the Iup site and the changes to the existing version of the library that would make it easier to use.

If you want helpers count me in. I would be happy to help with documentation as well as the above, but someone needs to direct the effort if our (limited?) resources are to be best used.

Thankyou, help is desperately needed.

Greg will be able to set you up so can upload example programs (an area where I have been having problems).

Please send me an e-mail so I have your e-mail address, then I will send you an invite via Bitbucket to join the repository.

_tom said...

The first round of documentation has been uploaded.

  • the "reference manual" this requires grunt work at the moment that is not easily delegated
  • I have started translating some of the tutorials -- a good place to help (I will get these uploaded so they can be examined)

Thank you for your continued efforts on this. Can we rename "documentation" to just "docs?" The word "documentation" seems too verbose.

I'm also wondering how we can provide online documentation via the Wiki.

_tom said...

Library changes that I have noticed (with the understanding that the wrapper is automated and not be be faulted...)

  • needs defaults
  • constants with "IUPconstantname" are not being used
  • changes to make it more "Euphoric" would be welcome

I'm considering re-writing the wrapper so that it can be smart about ignoring changes, or only wrapping things it hasn't wrapped before.

Feel free to create some issues to address these tasks (list them as either enhancement or proposal).

We need to narrow in on what "more Euphoric" really means. I'm open to this; I'm just not sure what others are looking for.

_tom said...

Any kind of tutorial would be valuable. I can help with formatting in the Creole markup style so don't worry about the details.

Agreed. We can add these to the Wiki.

-Greg

new topic     » goto parent     » topic index » view message » categorize

74. Re: UI/IDE committee

ChrisB said...

It might be worthwhile, as I said before to limit the project to Windows only, since, I believe, that this is the most popular operating system, first,

Most of the work for cross-platform compatibility has already been done. Both IUP (Tecgraf) and Euphoria provide the appropriate pre-built binaries for Windows and Linux. I've yet to have much difficulty supporting both Windows and Linux with IUP. We just need some additional effort towards testing and packaging.

ChrisB said...

What can I do to help?

Ron laid out a lot of the requirements here: http://openeuphoria.org/forum/m/129181.wc

Anything you can do to fill in the gaps there would be helpful. Even just testing and opening issues would be helpful.

If you need access to the repository, please send me an e-mail so I have your e-mail address, then I will send you an invite via Bitbucket to join.

-Greg

new topic     » goto parent     » topic index » view message » categorize

75. Re: UI/IDE committee

There has been recent discussions about project direction and organization, lofty goals, volunteers, time commitments, and limited scope. These are all valid concerns but they are also very manageable.

Chris's idea in particular about limiting the scope of the project is a good one. But honestly, I disagree with the limitation decision being based solely on OS. Instead, I would like to see the limitations further expanded based on interpreted vs compiled user programs. In particular, I'd like to consider a interpreted solution before a compiled one simultaneously released for Windows 10 64 bit, some other Windows 32 bit, latest Ubuntu 32/64 bit and latest Fedora 64 bit. This is very achievable with IUP from where we are today.

Once the above is solved for process, conventions, automation (packaging and testing), tools, documentation, and tutorials, my opinion is that we should extend the interpreted only solution to the other supported platforms. Afterwards, we can repeat the process for compiled programs.

I can start by providing architecture for the solution at higher level. Then create a road map and milestones for the project. All of which would be supported by tangible tickets. If there are volunteers to work the tickets, I can provide organizational skills needed to see this thing to completion.

-xecronix

new topic     » goto parent     » topic index » view message » categorize

76. Re: UI/IDE committee

xecronix said...

Instead, I would like to see the limitations further expanded based on interpreted vs compiled user programs. In particular, I'd like to consider a interpreted solution before a compiled one simultaneously released for Windows 10 64 bit, some other Windows 32 bit, latest Ubuntu 32/64 bit and latest Fedora 64 bit. This is very achievable with IUP from where we are today.

I'm not sure I understand the problem here. What constitutes an "interpreted solution?" Can you elaborate?

-Greg

new topic     » goto parent     » topic index » view message » categorize

77. Re: UI/IDE committee

ghaberek said...
xecronix said...

Instead, I would like to see the limitations further expanded based on interpreted vs compiled user programs. In particular, I'd like to consider a interpreted solution before a compiled one simultaneously released for Windows 10 64 bit, some other Windows 32 bit, latest Ubuntu 32/64 bit and latest Fedora 64 bit. This is very achievable with IUP from where we are today.

I'm not sure I understand the problem here. What constitutes an "interpreted solution?" Can you elaborate?

-Greg

  • Programmer - Someone hacking away at Open Euphoria or directly responsible for building/packaging OE.
  • User - Someone that uses OE to write programs
  • Customer - Someone that executes programs the User writes.

Sure. When a Euphoria user writes a cross platform program (s)he'll want to have some assurance that the program will run unmodified on each supported platform even if the user doesn't have access to each platform. Euphoria enjoys an interpreted execution as well as compiled execution. So, if a customer does nothing more than install Euphoria a user can be assured that his program will run interpreted on the customers box.

$> eui IUPApp.ex     

So there really isn't a huge technical problem here but there should be a road map with mile stones and package maintainers working with Euphoria programmers to ensure this can happen.

new topic     » goto parent     » topic index » view message » categorize

78. Re: UI/IDE committee

ghaberek said...

Feel free to create some issues to address these tasks (list them as either enhancement or proposal).

I have added some "trivial proposals" to iup4eu repository. Just some ideas that may make iup4eu nicer to use.

_tom

new topic     » goto parent     » topic index » view message » categorize

79. Re: UI/IDE committee

_tom said...

I have added some "trivial proposals" to iup4eu repository. Just some ideas that may make iup4eu nicer to use.

The automated process (wrapper and eudoc) creates constants like "IUP_MAX," but the argument in a function is "MAX." The prefix "IUP_" does not get used and creates noise in the docs. Can the IUP_ prefix be avoided?

I think it would cause problems, in the long term, if there was a blanket replacement along the lines of

public constant IUP_RUN = "RUN" 

with

public constant RUN = "RUN" 

However the source says:

/* Avoid using these definitions. Use the strings instead. */ 

and I'd be ok with just removing them all (as per "Define __IUPDEF_H to avoid the inclusion of this header"). In that case there should be a note for anyone translating from C to replace IUP_RUN etc with the string literal "RUN".
Then again, just leaving them in as-is and not bothering to mention them (much) in the docs should be fine.

_tom said...

Lowercase Arguments
A line like
IupSetAttribute(txt, "MULTILINE", "YES" )
would be nicer as
IupSetAttribute( txt, "multiline", "yes" )
Just to make typing a bit simpler.

The IUP docs do state that attribute names must be in upper case, but values are case insensitive (just saying).
Just before reading your note I added some "if name!=upper(name) then ?9/0 end if"s but have no real objection to "name = upper(name)".

Pete

new topic     » goto parent     » topic index » view message » categorize

80. Re: UI/IDE committee

Trivial Proposals

The idea is to explore some options before the syntax of iup4eu gets locked into place.

This is an invitation to everyone to invent their own trivial proposals.

About the IUP_ prefix

There is a bunch of constants that get created (by the automated wrapper) that don't do anything--they just clog up the support docs. They are used as arguments to routines so do not properly invade the namespace of programs.

I guess I can make a list and just erase them from the docs. But, why have them clog up the wrapper?

Lazy Lowercase

Thinking like a lazy typist I prefer "multiline=yes" to "MULTILINE=YES". Note that IUP already tolerates "MULTILINE=yes".

We don't really have to follow the standards set by IUP.

IUPname vs IUP:name

We now have:

include iup.e 
 
IupOpen() 

In the other wrapper, euIUP, names are not prefixed but you need namespace control:

include iup.e as IUP 
 
IUP:open() 

Thinking like a lazy typist some functions will work without any prefix, a few will need an identifier like g:open(). This saves typing caps and one or two characters!

I understand Greg prefers the prefixes.

Support Docs

Support is now: docs, wiki, forum, and helpful Euphoria members.

This is "New Speak" so we don't use "documentation" which has too many syllables and a unwanted Latinate suffix.

Good idea from ghaberek.

_tom

new topic     » goto parent     » topic index » view message » categorize

81. Re: Is there a good Windows or cross-platform Euphoria IDE?

As a user of euphoria since it was paid for, and still the worlds worst coder who needs the helping hand of an IDE, (still using Judiths, wasn't she brilliant), just want to say thanks to the developers for addressing this need, I think the lack of a good IDE is one of the main reasons Euphoria has not had the take-up seen by other languages.

Thanks, looking forward to it.

new topic     » goto parent     » topic index » view message » categorize

82. Re: UI/IDE committee

_tom said...

About the IUP_ prefix

But, why have them clog up the wrapper?

One less step when translating C to Eu.
It is also the case that I can add an F1 lookup to IUP_MAX but cannot so easily do that for "MAX".

new topic     » goto parent     » topic index » view message » categorize

83. Re: UI/IDE committee

The IUP API is what it is and I have no intention of changing it to fit Euphoria. It's a third-party library developed by Tecgraf, and I think they've done a pretty good job of making it simple and easy to use. If we try to whittle it down even further to make it "fit" Euphoria, I think that would be a disservice to IUP, Tecgraf, and Euphoria users everywhere. It's especially concerning if someone comes to Euphoria from C with experience using IUP (or vise-versa), but then suddenly the IUP API is completely foreign because of our changes.

I certainly don't agree with stripping the IUP_ prefix from constant names. Constants should denote what they're for and where they come from. That's just good API design: How to Design a Good API and Why it Matters (PDF, 566 KB).

keynote.pdf said...
  • Names Should Be Largely Self-Explanatory (emphasis mine)
    • Avoid cryptic abbreviations
  • Be consistent - same word means same thing
    • Throughout API, (Across APIs on the platform)
  • Be regular–strive for symmetry


  • Code should read like prose

Regardless, the use of those constants, as Pete pointed out, is deprecated in IUP. A compromise I will make is that iupdef.e will no longer be included by default. Those wishing to use the deprecated constants will have to include iupdef.e manually. We should still include iupkey.e, however, because its constants and functions are required for handling keypress events.

And don't get me wrong, I've got no problem with exapanding on IUP for Euphoria's purpose, especially when we can utilize some features in the process. Default parameter values is a great example of this. And jmduro's expanded version of IupGetParam is another example.

I'm on the fence about "helping" the user convert attribute names to uppercase. On one hand, this isn't something that IUP does natively. But on the other, it is required for attributes to work correctly, but is not enforced by the library itself, which seems contradictory. I say we put it to a vote. Those interested in converting attribute names to uppercase within the IUP wrapper should mark a vote on the issue that Tom created: #5 - Lowercase Arguments (there is a "Vote for this issue" link to the right). If there are several votes by the time I get to working on that issue (at least a few weeks from now), then I will make the change.

-Greg

new topic     » goto parent     » topic index » view message » categorize

84. Re: UI/IDE committee

ChrisB said...

Hi

...

What can I do to help?

Cheers

Chris

dr_can said...

... If you want helpers count me in. I would be happy to help with documentation as well as the above, ...

I will work on documenting the signatures and constants for the wrapper. This is messy so I don't wish this work on anyone.

Anyone can help with:

  • converting c examples to OE
  • converting tutorial (c or lua) example code to OE

What I have so far is now uploaded to the iup4eu repository:

  • /support/tutorial-Donovan
  • /support/tutorial-LyrioScuri

These have been taken from the IUP documentation. So far, only a few bits have been converted to OE.

Take a look at:

https://bitbucket.org/ghaberek/iup4eu

thanks

_tom

new topic     » goto parent     » topic index » view message » categorize

85. Re: UI/IDE committee

ghaberek said...

I'm on the fence about "helping" the user convert attribute names to uppercase. On one hand, this isn't something that IUP does natively. But on the other, it is required for attributes to work correctly, but is not enforced by the library itself, which seems contradictory. I say we put it to a vote. Those interested in converting attribute names to uppercase within the IUP wrapper should mark a vote on the issue that Tom created: #5 - Lowercase Arguments (there is a "Vote for this issue" link to the right). If there are several votes by the time I get to working on that issue (at least a few weeks from now), then I will make the change.

I can't vote on that page for some reason (maybe because I dddon't have a bitbucket account), but please count my vote in favor of this change here.

new topic     » goto parent     » topic index » view message » categorize

86. Re: UI/IDE committee

jimcbrown said...

I can't vote on that page for some reason (maybe because I dddon't have a bitbucket account), but please count my vote in favor of this change here.

Yeah, you need to log in with a Bitbucket account. That prevents rogue anonymous contributions to things like wiki and voting. I will remember that you voted. smile

-Greg

new topic     » goto parent     » topic index » view message » categorize

87. Re: UI/IDE committee

jmduro said...
_tom said...

Agar

  • multi-platform and opensource
  • feature is that modern graphics cards are exploited

I thought Agar could be a winner candidate but I was not able to get it run even in C so that was a bad point to start with.

Current version 1.4.1 has also not been update since 2011.

Jean-Marc

I was able to compile and run the latest Agar development version (http://libagar.org) from the SVN trunk on Debian 8.3 AMD64.

I will try to build an euphoria wrapper for it.

Jean-Marc

new topic     » goto parent     » topic index » view message » categorize

88. Re: UI/IDE committee

jmduro said...
jmduro said...
_tom said...

Agar

  • multi-platform and opensource
  • feature is that modern graphics cards are exploited

I thought Agar could be a winner candidate but I was not able to get it run even in C so that was a bad point to start with.

Current version 1.4.1 has also not been update since 2011.

Jean-Marc

I was able to compile and run the latest Agar development version http://libagar.org from the SVN trunk on Debian 8.3 AMD64.

I will try to build an euphoria wrapper for it.

Jean-Marc

Link does not work, removed the brackets.

http://libagar.org

Andreas

new topic     » goto parent     » topic index » view message » categorize

89. Re: UI/IDE committee

andi49 said...

Link does not work, removed the brackets.

http://libagar.org

Andreas

Thank you Andreas,

You can even forget the link: I tried to get it work with the wrapper but I got segmentation faults and even worse, the window manager did not react as previously until I rebooted. I don't know if it behaves so on 64-bit only or not, but I think it is not worth continuing with this library wrapper: I give up.

Jean-Marc

new topic     » goto parent     » topic index » view message » categorize

90. Re: UI/IDE committee

_tom said...

Lazy Lowercase

Thinking like a lazy typist I prefer "multiline=yes" to "MULTILINE=YES". Note that IUP already tolerates "MULTILINE=yes".

We don't really have to follow the standards set by IUP.

I just realised and I don't think this was mentioned,

IupSetAttribute(ih,"multiline","yes") 

could easily be supported by a simple upper() on p2, however

IupSetAttributes(ih,"title=Window") 

would be much messier, a simple upper() would obviously set the title to "WINDOW" instead of "Window".

Pete

new topic     » goto parent     » topic index » view message » categorize

91. Re: Is there a good Windows or cross-platform Euphoria IDE?

VirtualB said...

Hi Everyone,

First, I would like to say that I just learned that Judith Evans passed away. My condolences go out to her friends and family. She is one of the people I have really missed since leaving Eu, and I was hoping to be able to make contact with her again.

I've been away for quite some time, and I've recently wanted to get back into coding with Euphoria. However, I'm having a problem with the IDE. I'm not sure if this is an issue because it hasn't been updated in a while, or if I'm just that rusty. Is Judith's IDE still being used? I downloaded it and win32lib from links in the wiki, but I can't seem to get them to work. I also tried EuVide, but I'm having similar issues. Are there any IDE users who could point me in the right direction?

As a user of Euphoria 3 since it was paid for, and of Judith's (rip) IDE since then, I feel I need to point out one or six points:

  • Win32Lib was produced to simplify the interface to Windows
  • The IDE was started as an IDE for Win32Lib, so the IDE is essentially a Windows application.
  • Judith worked on this tirelessly for years - 12-14 hours a day according to her husband.
  • Several features were added as IDE-generated controls rather than simply Windows API entries.
  • She worked on this till just before IDE 4 was released originally, but her slowly worsening dementia made it hard and harder for her to achieve the solid codebase she wanted. Hence the number of operational bugs in the later features.
  • If anyone else is really, truly, thinking of writing an IDE, especially along similar lines, they should be aware that it is a major, major undertaking. With no "done that, what's next" time; it would last forever. Especially if the base interpreter is changed on a daily/weekly/monthly basis.

I use it frequently, but then I still use Eu3, and I do struggle with the odd little bugs in EuVIDE. But I find a way round them, so I use coloured buttons and tables regularly. For simple programs, it just works and works and works. I have a vast respect for what she achieved, and as others have said, I am greatly saddened at her passing. If it could be used as a basis for a multi-platform replacement, I would cheer. Sadly, I am a user not a developer. But I can see so many operational and visual differences between, primarily, Windows & Linux. that I can't see anyone or any group really taking it on as a hobby(!) project. There's been lots and lots of talk and little action, IMHO. That's not a criticism.

As far as the original query goes, I can't help with Eu4, but if Mr VirtualB (I'm a real B!) is using Eu3 I could maybe help...but then I guess I would get called a dinosaur! I'm not often on this forum, so an email would get a quicker response - andy hat kestreltelecom with a dot put in at the obvious place!

Andy

new topic     » goto parent     » topic index » view message » categorize

92. Re: Is there a good Windows or cross-platform Euphoria IDE?

I was wondering if a wrapper on a Javascript UI framework, through a web browser, would fit the need.

I took a look at many of those and one of them seems to be more in the Euphoria style: Qooxdoo.

Jean-Marc

new topic     » goto parent     » topic index » view message » categorize

93. Re: Is there a good Windows or cross-platform Euphoria IDE?

jmduro said...

I was wondering if a wrapper on a Javascript UI framework, through a web browser, would fit the need.

I took a look at many of those and one of them seems to be more in the Euphoria style: Qooxdoo.

Jean-Marc

I had a similar idea of using a web browser as a container for a GUI. My idea was to create a localhost web server that would have significantly less /hardware restrictions than a typical web server. (configurable of course) Then you could simply write typical client/server "web" applications and take advantage of all Web 2.0 has to offer.

new topic     » goto parent     » topic index » view message » categorize

94. Re: UI/IDE committee

ghaberek said...

What's disappointing to me is the reality that we just don't have enough manpower to really see these things through.

Ron laid out several roles in that post you linked to, and asked for people to "please get involved" but no one has stepped forward to contribute.

I'm preaching to the choir on this, but without more volunteers I don't think we can get much done in a timely manner.

-Greg

Agreed. It sounds like the committee was indeed successful in solving most of the technical problems, identifying the steps needed to finish it, and pointing out the roadmap and identifying new tasks and new roles to accomplish this.

It sounds like, given enough time or enough manpower (or both), that this will eventually reach the finishing point, but unfortunately we need a lot of the former given that that's no forseeable increase in the latter.

The committee therefore has not actually failed, but it can not give us a realistic new deadline to actually reach the final goal.

xecronix said...

There has been recent discussions about project direction and organization, lofty goals, volunteers, time commitments, and limited scope. These are all valid concerns but they are also very manageable.

Chris's idea in particular about limiting the scope of the project is a good one. But honestly, I disagree with the limitation decision being based solely on OS. Instead, I would like to see the limitations further expanded based on interpreted vs compiled user programs. In particular, I'd like to consider a interpreted solution before a compiled one simultaneously released for Windows 10 64 bit, some other Windows 32 bit, latest Ubuntu 32/64 bit and latest Fedora 64 bit. This is very achievable with IUP from where we are today.

Once the above is solved for process, conventions, automation (packaging and testing), tools, documentation, and tutorials, my opinion is that we should extend the interpreted only solution to the other supported platforms. Afterwards, we can repeat the process for compiled programs.

I can start by providing architecture for the solution at higher level. Then create a road map and milestones for the project. All of which would be supported by tangible tickets. If there are volunteers to work the tickets, I can provide organizational skills needed to see this thing to completion.

-xecronix

I took a quick look at the wiki https://bitbucket.org/ghaberek/iup4eu/wiki/Home and the tickets page https://bitbucket.org/ghaberek/iup4eu/issues but did not see this.

That said, I might have just missed it. And even if it's really not there, adding it probably won't help - the real issue is we need more volunteers.

Even without them though, the group will probably get this done. Eventually. It will just take a lot of time. That said, I don't feel that we should impose the decision of the committee on the community unless we can accomplish this task within a reasonable period of time.

This is why, if there are no new developments by the end of March 31st 2016 (in the last time zone, GMT-12), I would like to hold a vote on this subject to establish a proper mandate.

new topic     » goto parent     » topic index » view message » categorize

95. Re: UI/IDE committee

jimcbrown said...

This is why, if there are no new developments by the end of March 31st 2016 (in the last time zone, GMT-12), I would like to hold a vote on this subject to establish a proper mandate.

Progress may look slow. Actual progress is fast if you subtract time spent on other pressing things. Ok, net result is that progress is slow.

The good news is that we are gaining more help. C Newbould has uploaded his improvements--thanks for your help. Pete Lomax has found alternative documentation. Others are showing interest. The iup4eu project is alive.

Maybe not for March 31, but when OE4.1 is released we will have something valuable.

_tom


Forked into: Committee for the 4.1.0 Release Candidate

new topic     » goto parent     » topic index » view message » categorize

96. Re: UI/IDE committee

jimcbrown said...

This is why, if there are no new developments by the end of March 31st 2016 (in the last time zone, GMT-12), I would like to hold a vote on this subject to establish a proper mandate.

It has been decided - the way forward will now be to support and ship LazGUI ( http://openeuphoria.org/forum/129400.wc#129400 ) as the official OpenEuphoria GUI.

Judith's IDE will also be ported to use and support LazGUI, instead of w32lib. This will become the official IDE of OpenEuphoria and it will also ship with the next OpenEuphoria release.

Jeremy Cowgar will officially head both efforts. We expect this to be finished in time for the OpenEuphoria 6.0.0 RC1 release.

new topic     » goto parent     » topic index » view message » categorize

97. Re: UI/IDE committee

jimcbrown said...
jimcbrown said...

This is why, if there are no new developments by the end of March 31st 2016 (in the last time zone, GMT-12), I would like to hold a vote on this subject to establish a proper mandate.

It has been decided - the way forward will now be to support and ship LazGUI ( http://openeuphoria.org/forum/129400.wc#129400 ) as the official OpenEuphoria GUI.

Judith's IDE will also be ported to use and support LazGUI, instead of w32lib. This will become the official IDE of OpenEuphoria and it will also ship with the next OpenEuphoria release.

Jeremy Cowgar will officially head both efforts. We expect this to be finished in time for the OpenEuphoria 6.0.0 RC1 release.

Hallo,

the real funny thing is: Your 1.April joke is more realistic to be happen than any other 'official OpenEuphoria GUI'

Andreas
Happy 1.April

new topic     » goto parent     » topic index » view message » categorize

98. Re: UI/IDE committee

andi49 said...

Hallo,

the real funny thing is: Your 1.April joke is more realistic to be happen than any other 'official OpenEuphoria GUI'

Andreas
Happy 1.April

Perhaps the joke was on me after all.

new topic     » goto parent     » topic index » view message » categorize

99. Re: UI/IDE committee

jimcbrown said...
andi49 said...

Hallo,

the real funny thing is: Your 1.April joke is more realistic to be happen than any other 'official OpenEuphoria GUI'

Andreas
Happy 1.April

Perhaps the joke was on me after all.

sure

i missed this smile

Andreas

new topic     » goto parent     » topic index » view message » categorize

100. Re: UI/IDE committee

andi49 said...
jimcbrown said...
jimcbrown said...

This is why, if there are no new developments by the end of March 31st 2016 (in the last time zone, GMT-12), I would like to hold a vote on this subject to establish a proper mandate.

It has been decided - the way forward will now be to support and ship LazGUI ( http://openeuphoria.org/forum/129400.wc#129400 ) as the official OpenEuphoria GUI.

Judith's IDE will also be ported to use and support LazGUI, instead of w32lib. This will become the official IDE of OpenEuphoria and it will also ship with the next OpenEuphoria release.

Jeremy Cowgar will officially head both efforts. We expect this to be finished in time for the OpenEuphoria 6.0.0 RC1 release.

Hallo,

the real funny thing is: Your 1.April joke is more realistic to be happen than any other 'official OpenEuphoria GUI'

Andreas
Happy 1.April

Good one! lol

new topic     » goto parent     » topic index » view message » categorize

101. Re: UI/IDE committee

All said and done, it would be better to integrate wxEuphoria completely AND remove some of the old file and other Key words and use the corresponding facilities that are in wxEuphoria/wxWidgets. Call it Euphoria version 4.2 or version 5.1

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu