Alexander Shukaev wrote: > Dear Linda, > > It feels like Perl is not very trendy these days. Trendy? How _trendy_ is international support? International and perl support were the first things to be provided as optional modules not because they were trendy, but considered essential. Perl is usually used for 'plumbing' type tasks. It hooks things together and can transform them. However, it's hard to consider 'plumbing' trendy -- but one wouldn't build a house w/o plumbing because it isn't 'trend'. But you say you haven't seen much in perl+vim -- how have you looked? I tried searching for vim plugins and scripts and adjuncts on "search.cpan.org". I came up with about 270 hits. Among those are things that provide vim functionality to create IDE's debuggers, packages, use for wiki creation to do LaTex typesetting from vim, website creation addons, and tons of system administration scripts. Computer system administration isn't very trendy -- but without it, you'd have nothing you are using today. No internet, no world connections, no trends except what are set by the large corporations... Maybe "utility" or "usefulness" should be considered before trendy (or at least, as well)? How many filters can you write in python, without using a separate file? Or -- more precisely, how many python 1-liners can people easily write and use? Does python even have an option to execute a line of code from the command line or use it as a filter? What is the option in python to write and execute a line of code? Can you write a 1 line python filter capitalizes all occurrences of your name and replace all occurances of :-) with their unicode equivalent, of a white smiling face (☺) using it's name "white smiling face" .. could you do it in any of the languages you mention? You can in perl. It's the only language that has full unicode support. Isn't multicore/multithreaded, 'Trendy'? Recently someone did a program to test timekeeping in python. It used 9 threads. I completed in 67.35 seconds using 181.94% cpu (100%=1 core, so 1.82 cores on a 12 core machine. As a curiosity I wrote the exact same program in perl to see how it would perform (cuz I thought the MD5sum was slow)... I was turned on my head. Same** program in perl took 3.36 seconds using 870% cpu. **-I didn't use any perl tricks -- I tried to follow the python example as closely as possible (to see code for each, and compare, see http://www.perlmonks.org/?node_id=1076596). So for the 9 threads: lang #thrds #cores_used %efficency clocktime cputime(Usr+Sys) python 9 1.82 20.2% 67.35s 122.53s perl 9 8.70 96.7% 3.36s 29.23 From the above, stated as percentages or multipliers, perl is 478% more efficient in making use of multicore resources. In real time, python takes 64 seconds longer over the base time that was needed, of 3.36s. Python is 1900% SLOWER. Someone mentioned python might not be optimal in parallelism due to threading problems. So look at the actual amount of CPUtime used for each to do the work. 122.53/29.23. For heavy number crunching, perl (with max precision possible in x86-64 HW, takes less than 1/4th the time, i.e. perl is 4.2x the speed of python. Python may be trendy, but for getting actual work done, perl is not only considerably faster, but has most all the libraries needed to do it's work *built-in*. -- know wondering about what to 'import'. I could go on for WAY too long, on this, but lets look at who *sets* the trends... The most complicated and central function in text processing -- the regular expression. Did python choose posix RE or extended RE syntax? Nope. javascript and python and most modern languages have copied the perl's regex syntax and features -- and note-- perl has no problem trying to make things *easier* for python developers. When perl implemented named subexpressions or captures in Regex's, in addition to the perl syntax, the Python syntax as added as well to make things easier for those familiar with that syntax. Perl's Regex engine has been described as the 'best of breed' -- with java, javascript, ruby, python et al, all adopting the Regex syntax developed in Perl. If it wasn't for the groundwork laid by perl, you wouldn't be doing scripting in the other languages you are today -- as they would have had to develop, "at least_, their own regex engine. So ok, the other languages are more trendy -- but many are where they are at today because of groundwork laid by perl. Aside from that, you are not really including the languages (are you?) Aren't they DLL's that are loaded if present and not loaded if not used? Are you providing the DLL's for each language? Usually, what is added is the ability to load the DLL if it is present. So really, you don't need to include perl -- just the ability to make use of it at run time if it is present, right? Or did you really link all of those languages in with your vim binary? If that's the case... then that's a bigger problem. For most (all -- not sure about LUA) of those languages, the actual support for them is in an external library -- so the users don't actually 'pay' for the languages they don't use as they are not loaded and -- if they don't use them -- they don't even need to be on their machine. > Support for that many languages was added because certain popular plugins are written partly (or fully) in these languages rather than Vim Script. Python is probably the most popular language for extending Vim right now, perhaps after Vim Script. Ruby goes next, then Lua. But I've never came across a single plugin which would rely on Perl to be honest. May I ask why you think that Perl is so important for that Vim distribution? #2 on the list for http://www.vim.org/sponsor/vote_results.php. was an IDE. You should check out:. https://metacpan.org/release/Vim-Debug. It's already been done for perl and from the documentation it should be extensible to other languages.. But it IS written in perl... So you honestly didn't come across a single plugin that would rely on perl? Where did you look?