Re: Euphoria isn't dying - just needs a jolly good kick!
- Posted by MatthewMacGregor Oct 08, 2014
- 7499 views
Brief introduction: I've been a longtime observer of Euphoria, and did some work with 3.1.1 a few years back. Here are my thoughts on language adoption:
- There is little need for another general purpose programming language (as mentioned by g1i1ch and others), which seems to be where OpenEuphoria is currently positioned.
- Investing in learning a new language and the associated frameworks is like starting a long-term relationship. It's not something to be taken lightly.
- Coders will learn a new language for one of three reasons: marketable skills, best tool for the job, or curiosity.
- OpenEuphoria is not situated to provide strong marketable skills (nobody's hiring Eu coders). Some of us will use it because of curiosity, but this means the language will remain niche.
- In my opinion, this leaves best tool for the job as the ideal position for the language.
The obvious question is which job is OpenEuphoria ideally situated for? It appears that most of the current base uses the language as a general purpose tool, but it's going to be tough to attract new users that way. Consider the positioning of popular languages:
- php: robust web development, scripting
- javascript: client web, desktop, server (node.js), games, ...
- java / c#: general purpose desktop, enterprise web development
- python, perl: sysadmin, general purpose scripting
- c, cpp: systems programming, client application programming, game development (Cpp)
Every language on the list above (including php) could be thought of as a general purpose programming language, and the list is by no means exhaustive. Each language has also found a niche where it is one of a handful of default tools (in a field crowded with alternatives). It's not fair to put Euphoria up against this list of general-purpose languages (even if it's also excellent at solving these same problems).
I didn't mention Lua, but I think it's worth special consideration since Lua has many similarities to OpenEuphoria. The reason Lua is known at all outside of academic circles is because it is an ideal embedded language (we use it for this at my work). Because of this it is the language of choice for AAA game companies to embed and allow for user mods. There are entire industries that have formed around the Lua modding community, and it has also made its way into popular game frameworks:
- CoronaSDK (mobile)
- Love (desktop)
- Marmalade (mobile/desktop)
- MOAI (mobile/desktop)
Lua is no better than Euphoria but it's just perfect for embedding and therefore it's got a following.
Okay, now back to OpenEuphoria. These were the reasons why I was originally attracted to the development environment (more so than the language itself):
- Very small runtime (a few MB vs. a large framework for java, python, etc)
- Easy deployment (exe)
- Extremely fast
- Cross platform
- Easy access to native libraries (way easier than other scripting languages)
- Few (no?) dependencies
- Translate to c for pure performance
I believe that these strengths are rather unique among scripting languages.
These advantages seem to point at a client side niche rather than server side (where they are less advantageous). I think they are absolutely perfect for a game framework (desktop), which could attract a decent amount of attention to the language. Indie game development is all the rage right now - and there's not a hands down code-only/scripting winner in the desktop gamedev category. Easy access to native libraries and easy deployment makes this a killer combo.
OpenEuphoria is also perfectly situated as a first language, and I think this could be combined with a game development framework as the perfect one-two punch. By attracting new coders with a cool game framework and making it dead easy to get started (would require lots of tutorials, etc) I think Euphoria could be given the necessary "kick in the pants".
In conclusion, in order to gain new users it's not enough to position as a general-purpose programming language. OpenEuphoria must find a niche where its unique strengths are leveraged. OpenEuphoria could reposition by building out a robust game-centric API and tune it for beginners. This needn't be part of the core platform, but a framework built on top of it. It could be given a cool name and logo and launched to get some attention from the (very busy) indie gaming press.
Behind the game engine is the robust OpenEuphoria platform itself, an excellent general-purpose tool. Once coders learn the ropes by making some games, they'll stay and contribute to the core community.