Hi, I'm writing for this list hoping to get some good insights on what I'm going to say. I started with BASIC for Timex 2068/ZX Spectrum, then learned Pascal. Had a lot of years when my programming was only some Access databases and Excel macros. After these 'gray' years, I became interested very much in programming again and learned Python. More recently, I began projects in C and C++.
C++ is a very complex language that I really dislike, although I'm implementing my PhD research on it (about clustering), because of speed of execution. I like somehow C, because it's simpler and one can know what to expect, even though I didn't have my graduation or other studies in Computer Science or related fields. And C is fast! On the other hand, Python is slow at run time. I began to like very much, but the absence of (optional) static typing gave me some problems trying to find bugs at runtime. I also need programming for my job, although it's not exclusively a programming job, many times I program in PHP, add some SQL and Bash. I've heard of Lisp, but it always felt as not a "serious" thing, with slow execution and aimed at smaller scripts or compiled programs. These were my perceptions until recently. Going from Lisp to Scheme, to Rebol, to Red Lang, reading a lot, I came across PicoLisp and 'fell in love' with what is promised by the language. It's pratical... So, right now, I'm at 41 years old, striving for simpleness, and I'm looking for a programming language that I can adopt (hopefully) through the rest of my life, maybe also to a career change aiming at working at consultation in management/IT/decision-aid applications. This is my context. I'd appreciate some enlightenment on some topics. Please consider that I haven't learned Lisp yet! I keep reading that execution speed is not very important. Well, it certainly depends on the subject. Computers are quicker nowadays but the quantity of data is increasing at also an increasing rate. So, for example, when considering a time series with 100 000 elements, what is the magnitude of slowness that I can expect from PicoLisp compared to C++? 20x? And what about if the number of elements grow by a factor of ten, can I expect the time to increase less than, 10x or more than 10 times the previous? This can be the difference between getting a small break and check results after some minutes or to have to leave some computation running all night. And about memory consumption compared to the benchmark C++? I've read that PicoLisp has simplified structure representations in memory, but I'd like to know some rough number about it. Another question is about the integrated database. I use PostGresSQL and MySQL to handle my data. In MySQL, there are tables with +10 million rows, others with +10^4 only. The idea to have an integrated database is excellent, but at what speed? How much slower than those two databases? Can the fields be indexed somehow? Continuing with the integrated database, is it possible to build 'queries' of several joins and unions using Pilog? Now regarding PicoLisp and C++ integration. I'd like to build a project in some language (hope not to have to use C++) that uses a POSIX C++ API in the financial arena. I've seen several examples of PicoLisp 'talking' to C and it's said that C and C++ share the same protocol (ABI?). Is it possible to build a PicoLisp program that uses that C++ API (probably full of objects and complexities) for input and output? Can I learn from examples given in PicoLisp documentation, or is it needed some CS degree to be able to decipher the process? In C, C++, I can access data structures via pointers for great speed. I guess I can achieve the same in PicoLisp somehow, is is right so? (remember I haven't get my feet wet in Lisp yet). Now, for the two last questions: It's said that normally PicoLisp will find some type errors during run time at an early stage. But since I got burnt with Python in the past, I'd like to know if there are tests available or easily programmable to force some variables to only accept values of some type. With lint? Since PicoLisp is interpreted and since the original author Alexander Burger builds and sells himself applications for clients, isn't there an issue that the code is given as is to those clients? Or is there some JIT code that can be build that hides somehow the code from the users? If you got down here, thank you for reading my long message. Luis -- UNSUBSCRIBE: mailto:[email protected]?subject=Unsubscribe
