IPC Support for API lazarus / 6-IDE-CodeTools ---------------------------------------------------------------------- ik · 2011-01-26 17:54 I had a discussion with a friend about IDE's in general, and he told me one thing that should be interesting for all of us (I hope). He claim that if you have support for IPC regarding the API of the IDE, such as DBUS for example, you can allow other code to add support for the IDE, regardless of their programming language, and you can add for example support for a new programming language that is written in that programming language, merely by using that IPC for the plugins. I do not fully understand it, so I can not write pro's and con's about it, , so what do you think of such feature to be added to Lazarus, and what does it really requires from the IDE ? Will such feature will interest Lazarus dev/users ? ---------------------------------------------------------------------- Laksen · 2011-01-26 19:22 Sure, you could write plugins for IDEs allowing all languages to be used, if you used some form of IPC It would be slow as a dog though. Now I'm starting to wonder if Eclipse is using IPC ---------------------------------------------------------------------- marcov · 2011-01-26 20:30 Basically it is the standard plugin argument, taken one step futher, to make the plugin<-> program interface over IPC instead of native interfaces. There are IMHO two problems with that: -  I believe plugins are only a last resort method when proper contribution is not possible. I don't believe you will actually improve a program to scatter it over plugins. - Even if I had plugin disease, I wouldn't choose slow methods like IPC, when lazarus/fpc can communicate perfectly on plain C level. Basically this is the X client-server model where a client (application) communicates with the GUI system (the X server) over unix sockets or TCP/IP (both IPC or equivalent) So while a theoretical possibility, I fail to see an advantage or need to do it. ---------------------------------------------------------------------- garlar27 · 2011-01-26 20:41 Quote from: marcov on January 26, 2011, 09:30:38 pm- Even if I had plugin disease, I wouldn't choose slow methods like IPC, when lazarus/fpc can communicate perfectly on plain C level. Basically this is the X client-server model where a client (application) communicates with the GUI system (the X server) over unix sockets or TCP/IP (both IPC or equivalent) How do you do that? ---------------------------------------------------------------------- marcov · 2011-01-26 20:43 Quote from: garlar27 on January 26, 2011, 09:41:23 pmQuote from: marcov on January 26, 2011, 09:30:38 pm- Even if I had plugin disease, I wouldn't choose slow methods like IPC, when lazarus/fpc can communicate perfectly on plain C level. Basically this is the X client-server model where a client (application) communicates with the GUI system (the X server) over unix sockets or TCP/IP (both IPC or equivalent) How do you do that? Simple. You select the form of IPC you want to use, you define a message protocol (packet format) and start coding... Then in an year of 4, when your project has grown, you toss it out because the overhead is killing you (or 20 years, if you are the X project) ---------------------------------------------------------------------- garlar27 · 2011-01-27 12:42 @Marcov: Do you mean for that: Quote... when lazarus/fpc can communicate perfectly on plain C level. A month ago I started this thread Is there a Tutorial or Example using Messages trying to find out how can I send messages between two apps running in the same computer (just for one way synchronization). Before that I used TCP/IP comms and it was dead slow because (I think) the delay during connection... I read a little about IPC, and saw that it might be possible to connect once and keep the connection alive for as long as is needed (but I haven't tested that yet). Now comes my question:    Do you know a better way to send messages between applications? Cross Platform if possible of course. ---------------------------------------------------------------------- marcov · 2011-01-27 12:47 Quote from: garlar27 on January 27, 2011, 01:42:34 pm I read a little about IPC, and saw that it might be possible to connect once and keep the connection alive for as long as is needed (but I haven't tested that yet). Now comes my question:    Do you know a better way to send messages between applications? Cross Platform if possible of course. No. While the principles of IPC are the same, the implementations and the performance of the features on various platforms are different. In general I would only use IPC for relative small and infrequent signals, and if larger amounts need to be transfered I use networking (or unix domain sockets which are a kind of IPC networking) It is hard to advise anything anyway, with so little details of what you want to do. ---------------------------------------------------------------------- garlar27 · 2011-01-27 13:20 Maybe I should start a New thread...    I'm doing an application to test other applications before they go out to production. This application generates Keystrokes as if there where a user using the keyboard (and mouse in the future). It's planed to add Automatic Documentation capabilities.    At the moment is in Alpha state, and it's so useful and time saving and reliable (and I don't get bored to death doing those test by hand  ) that we want to add more capabilities to it.    We need to enhance the test cases' script (that's why I started that thread: I need scripts to execute Pascal routines).    Actually I'm using timers to launch the key strokes, and thats a problem since the same process can take more or less time. So I need to synchronize the "tester" with the "tested" to speed up that process (actually it takes 105 minutes to run a 66 case tests).