Emerald Editor Discussion
July 20, 2017, 09:47:58 pm *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News:
 
   Home   Help Search Login Register  
Pages: 1 [2]
  Print  
Author Topic: Scripting language proposal  (Read 16785 times)
0 Members and 1 Guest are viewing this topic.
Szandor
Senior Miner
***
Posts: 92



« Reply #15 on: April 03, 2007, 07:30:32 pm »

I am thinking that one language will probably not fit all and EE might have to support multiple plug-in languages.

Just a thought,
Phil
Hmm, wouldn't that bog down the code? I would say that supporting more than one language should only be done if it can be without compromising program size or speed. I imagine that the plugin engine will be one of the things that will take most time starting up each time you open EE. Still, I do indeed see your point. Well, I only have opinions here so anyone having actual know-how, would you please tell me if I'm right or not?
Logged

"Cleverly disguised as an original signature..."
jonnymind
Miner
**
Posts: 18


« Reply #16 on: April 09, 2007, 10:48:15 am »

Hmm, wouldn't that bog down the code? I would say that supporting more than one language should only be done if it can be without compromising program size or speed. I imagine that the plugin engine will be one of the things that will take most time starting up each time you open EE. Still, I do indeed see your point. Well, I only have opinions here so anyone having actual know-how, would you please tell me if I'm right or not?

Actually not; Xchat has plugin interfaces for C (meaning, loadable plugins), perl and python, and they are all working as charm. Same for GIMP, which has C, python and scheme. There isn't any direct speed performance hit, and if the main engine is thought as "scriptable", that is, if it thought to feed output to a generic script engine and to receive inputs as generic incoming messages, plugin languages becomes more or less a matter of tastes. With C being a bit less portable (i.e if you write a C plugin you have to recompile it on all your supported platforms and add the compiled versions to the shipments).

About power vs. simplicity, once a language breaks the break even point (that is, is able to build a compiler for itself) there is no language "more powerful" than others. It becomes just a matter of user-friendly-ness in programming constructs on one side, and on application friendly-ness on how easy is to interface the application with the language. HERE you may have significant performance boosts, and even significant usability boosts. In example, if the virtual machine setup requires to reload the script from disk (either in compiled form or in source) and to setup the runtime environment at each run, or if you don't have callback hooks from the application to the scripts (i.e., you can only monolithically run a script), you can't possibly think about a "line plugin", that calls a script on each line, or on each modify. I am not sure about Ruby, but about Python, last time I checked, scripts may be fed in i.e. from memory strings, but execution had to be monolithic.

Btw, I delayed a test integration to provide self-installing packages of Falcon on all the supported platforms, so people in EE can just dl and install the dev falcon package for windows, linux or mac.

« Last Edit: April 09, 2007, 11:01:16 am by jonnymind » Logged
jonnymind
Miner
**
Posts: 18


« Reply #17 on: April 22, 2007, 10:24:49 am »

Btw, I delayed a test integration to provide self-installing packages of Falcon on all the supported platforms, so people in EE can just dl and install the dev falcon package for windows, linux or mac.

About this topic, I just put up a windows installer and linux packages (rpm, deb, tar). See http://www.falconpl.org.

Logged
rageboy
Jeweller
*****
Posts: 305

Ankit Singla


« Reply #18 on: May 12, 2007, 06:49:09 pm »

Definitely agree on the point of allowing multiple language plugins. I'm really basing all my open source experience on Pidgin (formerly gaim) and am a fan of the way they do things (except that they switched from Subversion to Monotone because of reasons I don't understand though they were given to me). They write in C and plugins can be perl or tcl and they also have some sort of binding I can't use on Windows (starts with a D) so I don't care about it. At any rate, enough plugging an IM client on a text editor forum. My point in all this is, a lot of people know C code but not scripting (me), although I'm sure the opposite is true as well. From my (likely skewed) overview of scripting and non-scripting languages, wouldn't it be easier to make any sort of self contained program in a non-scripting program?
Logged
jonnymind
Miner
**
Posts: 18


« Reply #19 on: May 20, 2007, 12:56:03 pm »

Just to inform the community that I have committed the changes I was talking about. Interested people can have a look at it just updating the svn, and using the Makefile_falcon file in the build dir. I have not tested it yet on windows, but I am going to do it asap.
Logged
rageboy
Jeweller
*****
Posts: 305

Ankit Singla


« Reply #20 on: May 20, 2007, 02:14:01 pm »

Just to inform the community that I have committed the changes I was talking about.
Can we commit? I thought we needed a login? If we do, how did you get that?
Quote
I have not tested it yet on windows, but I am going to do it asap.
I would do it, but I'm not quite sure what it does.
Logged
Phil
Administrator
Master Jeweller
*****
Posts: 427


« Reply #21 on: May 22, 2007, 04:15:38 am »

You have to PM Arantor to get a login.

Phil
Logged
jonnymind
Miner
**
Posts: 18


« Reply #22 on: May 22, 2007, 09:06:50 am »

Just to inform the community that I have committed the changes I was talking about.
Can we commit? I thought we needed a login? If we do, how did you get that?
Quote
I have not tested it yet on windows, but I am going to do it asap.
I would do it, but I'm not quite sure what it does.

The skeleton embedding I have done just adds a menu voice to run an arbitrary falcon script, whose stdin, out and err are not redirected (i.e. flow in the process console). It also provides an "application module" (glue between the application and the scripting engine) which now provides only one function, which writes a string at the current cursor position in the document.

Before continuing, we need to decide the embedding model; it means, what you can do with a script and HOW to do it. In example, you may want to have objects and methods to manipulate documents, or you may prefer to go for functions. This is a decision that should be taken by the community and voted upon IMHO, although I may provide a few options to chose from.

To have some idea, you may take a look at Falcon embedding guide:
http://www.falconpl.org/wiki/tiki-index.php?page=Embed_man

It's focused on Falcon but it may give an idea of embedding strategies also for other languages.
Logged
Pages: 1 [2]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!
Page created in 0.218 seconds with 18 queries.