1. (rant) Three kinds of languages
- Posted by _tom (admin) Oct 24, 2017
- 1802 views
By now you will realize that (rant) is a warning that I am experimenting with documentation.
There are three kinds of programming languages: clever, messy, and simple. Clever languages have features like overloading, polymorphism, inheritance, monads, self-modifying code, and various forms of automagic. Studying a clever language is enlightening; you will be amazed by how inventive programming can be and learn the meanings of some big words. However, most programing is done with a messy language. Messy languages have historical leftovers mixed with some interesting ideas; this means a programmer will extol some feature at the cost of tolerating bad language design. Messy languages are often described as easy to learn and that is true if you like surprises. Messy languages are the conventional languages. Finally, the ideal is a simple language. Simple languages-- OpenEuphoria and Phix --are simple to learn, simple to use, and perform exceptionally well. You want to program in a simple language.
_tom
2. Re: (rant) Three kinds of languages
- Posted by Icy_Viking Oct 24, 2017
- 1749 views
Euphoria and Phix are great languages. Speaking of Euphoria, what is the original creator of Eu up to these days? Also, isn't there a new wrapper for wxWidgets in the works? I think it would be nice if Eu 4.0 had a graphics library like 3.1 did. However, wrappers can make up for most of this. Struct support would also be a nice feature. I hear this is planned for the next release?
3. Re: (rant) Three kinds of languages
- Posted by _tom (admin) Oct 25, 2017
- 1727 views
Euphoria and Phix are great languages. ... next release?
Robert Craig has retired from language creation--we remain grateful that he made the source-code for Euphoria available to us.
A new wxWidgets is being developed by ghaberek. That is a monster project for one person so we must remain patient. He also created iup4eu.
Eu3 had graphics for DOS. You can not expect anything similar with Windows or Linux.
OE4.1 is short on developers at the moment; struct support will not come quickly.
The most I can do is (rant); after collecting enough rants I hope to redo the documentation.
_tom
4. Re: (rant) Three kinds of languages
- Posted by rneu Oct 25, 2017
- 1731 views
There are three kinds of programming languages: clever, messy, and simple... ... ... .. Finally, the ideal is a simple language. Simple languages-- OpenEuphoria and Phix --are simple to learn, simple to use, and perform exceptionally well. You want to program in a simple language. _tom
This is exactly what I meant when I posted here: http://openeuphoria.org/forum/131148.wc#131148
After trying Euphoria for a few days, it seems to me to be an ideal language for teaching programming to beginners.. .. It is simple and at the same time safe... .. I think Euphoria can be promoted as an ideal language for beginners, including kids, who are starting to learn programming.
5. Re: (rant) Three kinds of languages
- Posted by _tom (admin) Oct 25, 2017
- 1708 views
This is exactly what I meant when I posted here: http://openeuphoria.org/forum/131148.wc#131148
Three kinds is a writing exercise. The raw material comes from people like you...thanks.
There are three kind of programming languages: clever, messy, and simple. Clever languages have features like OOP, lambda, monad, and maybe automagic. Enlightening to learn but never close to simple. However, most programming is done with a messy language. Messy languages mix historical leftovers with some interesting ideas. These are the conventional languages. Fiery supporters tell you they are easy (do you enjoy surprises?) and great (do you enjoy complexity?). Finally, the ideal is a simple language. Simple languages-- OpenEuphoria and Phix --are simple to learn, simple to use, and perform exceptionally well. You want to program in a simple language.
A better version I hope. It sort of includes the popular languages without naming names.
_tom
6. Re: (rant) Three kinds of languages
- Posted by ghaberek (admin) Oct 25, 2017
- 1756 views
Also, isn't there a new wrapper for wxWidgets in the works?
A new wxWidgets is being developed by ghaberek.
I inadvertently took a break from this over the summer (life has a way of doing that to you) but I'm back in the swing of things now.
I've got a lot of code on my laptop that I need to push back up to Github. Still working through a few issues in the Windows build. Linux seems to work great though!
I'm hoping to have another alpha out for the one-year anniversary in December. I'd at least like to have enough controls to duplicate this Control Gallery example.
That is a monster project for one person so we must remain patient.
Volunteers are always welcome. At some point soon I'm going to need help building the documentation and porting the examples.
He also created iup4eu.
I also maintain the libui wrapper for Euphoria, if you're interesting in yet another UI library. I don't know why I have such a fascination with this.
-Greg
Forked into: Some wxEuphoria updates
7. Re: (rant) Three kinds of languages
- Posted by petelomax Oct 25, 2017
- 1703 views
supporters tell you they are easy (do you enjoy surprises?)
Heh. No surprises.... I just now found (and fixed) this one in Phix:
for i=1 to length(s) do ?s[i] exit end for
gave index out of bounds when length(s) was zero [because the zero iterations jump was messed up].
Unfortunately I couldn't quite fully fix it - you now get an "invalid/unsupported construct" when the compiler cannot cope,
ie: when an unconditional jump occurs immediately before an end for (use a simple if rather than for construct, innit!).
Lest anyone start to panic, it is a pretty rare and rather silly thing to do, that I have obviously never seen or tried to do before.
I suppose, at least, that such major and embarrassing surprises are getting down towards about one a year now.
Pete
8. Re: (rant) Three kinds of languages
- Posted by _tom (admin) Oct 26, 2017
- 1662 views
Bugs occur in software; we learn to be tolerant. Deliberate language design surprises do not deserve tolerance.
Surprise!
Two kinds of surprise:
- oopsie surprise...this is a bug
- design surprise...the language is wierd
oopsie surprise
The OE switch may crash under the interpreter but work correctly when compiled. This is a bug that must still be resolved. Most of the time switch works correctly.
This surprise is unintentional.
-- works in OE; used to crash Phix (now fixed) sequence s = {} for i=1 to length(s) do ? s[i] exit end for -- probably what most coders would have written if length(s) then ? s[1] end if
The oopsie surprise is small, rare, and fixed.
design surprise
-- example one def greet(): print( "hello" ) x=1 if x==1: print( "it is one" )
This syntax is based on indentation. If you leave the colon : out you get an "invalid syntax" message; not very helpful. Why is a colon : needed? The colon is a superfluous syntax element. Not simple; not beginner friendly.
This surprise is deliberate.
-- example two function greet() puts(1, "hello" ) end function
This syntax uses keywords in the same way for all language elements. Simple.
-- example three function greet() puts(1, "hello" ) end function
Since the keywords make the syntax work you can write code in any way. Still simple.
_tom
9. Re: (rant) Three kinds of languages
- Posted by petelomax Oct 26, 2017
- 1704 views
I also maintain the libui wrapper for Euphoria, if you're interesting in yet another UI library.
I managed to get that working on Phix, but all three demos crash, apparently somewhere deep inside uiMain(), as soon as I press escape. Any ideas?
Got any pre-built dlls for that, by any chance?
I don't know why I have such a fascination with this.
While searching for that dll I extracted this little list from some thread or other, just cos you said that, should keep you busy for a while...
https://github.com/vurtun/nuklear
https://github.com/hugoam/kiui
https://github.com/cnjinhao/nana
https://github.com/wjakob/nanogui
https://github.com/dalerank/nngui
https://github.com/garrynewman/GWEN
https://bitbucket.org/duangle/oui-blendish/overview
https://github.com/vorg/MowaLibs
http://tekui.neoscientists.org/overview.html
https://github.com/ocornut/imgui
Have fun, Pete
UPDATE: I just tried a 64bit dll, and that does not crash, but changing gettingstarted.ex to:
?1 uiControlShow(mainwin) ?2 uiMain() ?3 uiUninit() ?4
on pressing escape, only 1 and 2 get shown, not 3 or 4 - is that as expected?
Forked into: libui-euphoria release